X11 HowTo ?

sam
I try to get X11 working. Following the instructions from
http://code.google.com/p/mini2440/ I was able to build a kernel and a
rootfs. The kernel does not work propperly as it has no support for yaffs
(which I have to use as I cannot get uboot running on 256 MB flash). The
built rootfs (converted to yaffs) can be used by the original kernel, but
it does not work propperly, i.e. busybox prints endless messages about
things it cannot do.

Anyway, if I use the original kernel and rootfs then I can chroot into my
built rootfs, which I put on a sd-card.

When I try Xfvdev in this chroot environment, I get this error message:

[root@FriendlyARM /]# Xfbdev -screen 240x320x16
_XSERVTransSocketOpenCOTSServer: Unable to open socket for inet6
_XSERVTransOpen: transport open failed for inet6/FriendlyARM:0
_XSERVTransMakeAllCOTSServerListeners: failed to open listener for inet6
FBIOPUT_VSCREENINFO: Invalid argument

Fatal server error:
no screens found

Backtrace (1 deep):
0: Xfbdev [0x4638c]

FatalError re-entered, aborting
Segmentation fault caught

Aborted
[root@FriendlyARM /]#            

The "-screen 240x320x16" does not have any effect, the error is always the
same. 

Anybody any idea about this? Is there maybe a build script out there to
create the original rootfs (root_qtopia-20100108.tar.gz) from scrach? Maybe
a patchd Xfbdev?

davef
***
The built rootfs (converted to yaffs) can be used by the original kernel
***

Just interested, which rootfs did you build for YAFFS?

gene.sally
You'll need to patch the framebuffer with the geometry for the screen.

This is in the hw/kdrive/src/kmode.c file.  For the 800x480 screen, you
need the following entry in the kdMonitorTimings vector at the top of the
file.  Your screen size is the smaller one, so you'll need to adjust this
entry to match the geometry / configuration of that panel; but you get the
idea.

    {    800,    480,    72,    50000,                
         56,        64,        240,    KdSyncPositive, 
         37,        23,        66,     KdSyncPositive, 
    },


Also, update the 

#define MONITOR_TIMING_DEFAULT 

With the entry in the vector that you just added.  This vector is in some
sort of order, but you can put your entry anywhere.

Then recompile the x framebuffer server, run it with the parameter

  -screen 240x320

and Bob's your uncle.

As for the errors you're seeing at start-up, 

_XSERVTransSocketOpenCOTSServer: Unable to open socket for inet6
...
...

add the following to the launch of Xfbdev:

        -nolisten tcp 

Take care,
gene

sam
davef: I made a ext2 rootimage using openembedded, mounted it as a loopback
and built a yaffs with mkyaffs2image-128M.

gene.sally: Looks like the ting I was looking for :-) Maybe you could post
the entries for 240x320, too?

It looks like the Codesourcery compiler, that came on DVD, is acting
strange. I can build a working kernel with it. But I cannot build a working
busybox, it always crashes when "init" should come up. The same code
compiled with the toolchain that "buildroot" generates leads to a working
busybox. Could be the reason for my crashing uboot, too.

davef
Tnx for the info.

I got BusyBox working, on my rootfs by compiling BusyBox as static.  I am
going to try again to make it use the shared libs.

Have you done a ldd on Busybox and ensured that those libs are included?
(or arm-linux-readelf -d)

Good luck.

sam
Yes,I did. The static linked busybox crashes, too.

But I advanced on buildroot: 

The generated image works, I've just to add the missing entries in /dev and
the tools from the root_qtopia.img where I have no sourcecode for
(led_runner ...)

"fbv" works and I can display immages on the framebuffer.

Anyway, Xfbdev does not work, I still get this:
# Xfbdev -screen 240x320
Warning: mode not found, using default
error: Invalid argument

Fatal server error:
no screens found

I made an entry for 240x320 in hw/kdrive/src/kmode.c (I copied the 1. entry
for iPaq and modified it), but it obviously does not match. Any help
welcome :-)

sam
Could somebody please tell me how to bring this info from fbset in a form
suitable for hw/kdrive/src/kmode.c ?

# fbset -i

mode "240x320-66"
    # D: 5.882 MHz, H: 21.626 kHz, V: 65.733 Hz
    geometry 240 320 240 320 16
    timings 170000 1 26 2 5 5 2
    rgba 5/11,6/5,5/0,0/0
endmode

Frame buffer device information:
    Name        : s3c2410fb
    Address     : 0x33940000
    Size        : 153600
    Type        : PACKED PIXELS
    Visual      : TRUECOLOR
    XPanStep    : 0
    YPanStep    : 0
    YWrapStep   : 0
    LineLength  : 480
    Accelerator : No
#

sam
I've solved the problem. Here's how to:

1) As gene.sally said: Xfbdev failes in the 1. Place, if there's no
matching modeline in hw/kdrive/src/kmode.c - So I modified the 1. entry
(for IPAQ) to match my screen:

    {   240,    320,    66,     0,
            0,      0,      0,     KdSyncNegative,
            0,      0,      0,     KdSyncNegative,
    },

The "66" is the Clock from "fbset -i", where it says 'mode "240x320-66"'.

Then I changed MONITOR_TIMING_DEFAULT to 0 some lines down:

    #define MONITOR_TIMING_DEFAULT  0

2) The dbdev does not allow to change settings, so all ioctl with
FBIOPUT_VSCREENINFO fail. In fact it's just alled once for this display.
Comment out the lines 666 to 673 in hw/kdrive/fbdev/fbdev.c, where it says:

    /* display it on the LCD **** COMMENT OUT THIS CODE */
/*    k = ioctl (priv->fd, FBIOPUT_VSCREENINFO, &priv->var);
    if (k < 0)
    {
        perror ("1: FBIOPUT_VSCREENINFO");
        return FALSE;
    }
*/

Now recompile and it works.

ambitious
Hi all,
I'm new to mini2440 board and i wanna to use wxWIdget lib for designing a
GUI in the mini 2440, i really designed the GUI in Linux ( ubuntu ) using
the WxWidget for Direct Frame Buffer port, after that i downloaded the
program and unfortunately when i trying to run it under the mini2440 board
this error was given to me.

 
[root@FriendlyARM /]# ./Hello [J
./Hello: line 1: syntax error: word unexpected (expecting ")")

could i know that is the wrong?and how i can know where where the error was
comes,from Linux PC or from the Board.

Second: if i wanna just run the executed programed debend on the WxWidget
library, what i have to do.

Great thanks send you all of you.

M.Hamed

serafim
I can't find the hw/kdrive/src/kmode.c file...
Where is it?

tks,

Serafim

stereo_m
sam: How did you compile fbv for mini2440? Could you upload your compiled
binaries as I would like to try it but don't know how to compile it? For
example to rapidshare or something..

Francesco Piraneo G.
To serafim

You can found the kmode.c in your xserver source directory; but I've also
the same problem, I applied the patch but nothing is working at all... some
piece of the mosaic is still missing...

Francesco

Coburn64
I successfully got Xorg running on my Mini2440. However, the screen is like
20 pixels from the left.

serafim
@Coburn64

Can you say the tutorial you follow to run the Xorg.
Or write the step you made.

I'm trying to resolve this error all week, and nothing.

tks,
Serafim

Walter Ribeiro
Congratulation Sam! Was great you tip, about to change kmode.c and fbdev.c 


Thank you very much!