Discussion:
Microwindows/nano-X/kernel Config problem
David Rye
2007-08-27 12:41:16 UTC
Permalink
Hi All,

Apologies in advance for the cross-post and the length. I have a
problem (apparently) with kernel configuration and
nano-x/microwindows (release 0.91) on the gumstix.

I am making gumstix-buildroot release 1513 for 400MHz basix as follows...

I first built the buildroot default configuration, then configured
the kernel for rebuild by:
"cd build_arm_nofpu/linux-2.6.21gum/"
"rm arch/arm/boot/compressed/vmlinux"
"make clean" (belt and braces...)
"make ARCH=arm menuconfig" and select
Device Drivers --->
Graphics support --->
[ ] Backlight & LCD device support --->
<M> Support for frame buffer devices
[ ] Enable firmware EDID
[*] Enable Video Mode Handling Helpers
[ ] Enable Tile Blitting Support
--- Frame buffer hardware drivers
< > Epson S1D13XXX framebuffer support
<M> PXA LCD framebuffer support
LCD Panel (None of the above) --->
[*] PXA LCD command line parameters
< > 2700G LCD framebuffer support
< > Virtual Frame Buffer support (ONLY FOR TESTING!)
Logo configuration --->

Next I changed the buildroot options:
"cd <gumstix-buildroot>"
"make menuconfig" and selected
Package Selection for the target ---> and added
[*] microwin
(and a couple more...)

Finally I rebuilt the rootfs and kernel by
"cd <gumstix-buildroot>"
"rm rootfs.arm_nofpu.jffs2"
"rm uImage"
"make"

[Note: I found a small config error in the microwin 0.91 makefile,
plus 4 errors in microwin C files. Two of these are documented in
patches at
http://www.nabble.com/Microwindows-nano-X-pblm-tf3893974.html#a11126573.
I will separately post the other errors that I found if anyone is interested.]

After flashing the kernel and rootfs on to the gumstix I re-booted to
get the u-Boot prompt so that the bootargs could be set:

GUM> setenv bootargs console=ttyS0,115200n8 root=1f01
rootfstype=jffs2 reboot=cold,hard
video=pxafb:mode:640x480-16,active,hsynclen:64,hsync:0,right:97,left:1,upper:0,lower:0,vsynclen:45,vsync:0,pixclockpol:1,pixclock:25176
GUM> saveenv

A "printenv" looks OK, as does the kernel command line during the
boot, BUT when I attempt to run the nano-X server I get the following error:

# nano-X
m. Check kernel config
Cannot initialise screen

When I do "pxaregs lccr" all of the register values are zero. My
understanding is that the configuration via the kernel command line
should have 'stuck'.

I then made a little script to set the registers from user mode:

#!/bin/sh
#
pxaregs LCCR0 0x003008f9 # 00000000 00110000 00001000 11111001
pxaregs LCCR1 0x0060fe7f # 00000000 01100000 11111110 01111111
pxaregs LCCR2 0x0000b1df # 00000000 00000000 10110001 11011111
pxaregs LCCR3 0x04300001 # 00000100 00110000 00000000 00000001
#

This script does correctly configure the lccr registers, but when I run nano-X
I get the same error. I have also tried with hw_setenv and
hw_printenv, but get the same error on running nano-X.
Microwindows/nano-X seems to be built correctly - all of the test
apps that I have tried do start, but fail to find the nano-X server
because it won't run.

SO... What am I doing wrong?? It feels like there is some small but
important thing that I am neglecting to configure, but I can't figure
out what it is. Could it be a permissions problem? Why don't the
bootargs 'stick'...

Any assistance gratefully received!


Regards,

David.

Dr David Rye
Australian Centre for Field Robotics
The Rose Street Building J04
The University of Sydney 2006, Australia
www.acfr.usyd.edu.au
Ph: +61 2 9351 2286 Fax: +61 2 9351 7474
Craig Hughes
2007-08-27 16:34:26 UTC
Permalink
Post by David Rye
When I do "pxaregs lccr" all of the register values are zero. My
understanding is that the configuration via the kernel command line
should have 'stuck'.
Did you compile-in the pxafb? Or is it built as a module? If the
latter, then you'll need to set the options in /etc/modprobe.conf
instead of on the kernel command line (via bootargs), and then
modprobe the pxafb after booting.

C
Greg Haerr
2007-08-29 19:31:46 UTC
Permalink
: # nano-X
: m. Check kernel config
: Cannot initialise screen

This message will also occur if nano-X doesn't have a match
for the framebuffer type as returned from the ioctl in
drivers/scr_fb.c. Your registers may be correct and
setup, but the return value doesn't match the allowed
FB_ values in a case statement. I don't have the code
here, check scr_fb.c for more details.

Regards,

Greg

Loading...