User:Ajh

From Openmoko

(Difference between revisions)
Jump to: navigation, search
m (renaming initrd-versatile.img file was wrong)
m (Installation)
 
Line 152: Line 152:
 
When asked, do not install a kernel, instead copy the existing from the installation image to /mnt/boot/. Same goes for the modules and /lib/firmware/. Create /mnt/boot/append-GTA02 with an additional console parameter as loglevel=8 console=tty1.
 
When asked, do not install a kernel, instead copy the existing from the installation image to /mnt/boot/. Same goes for the modules and /lib/firmware/. Create /mnt/boot/append-GTA02 with an additional console parameter as loglevel=8 console=tty1.
  
To get ssh over USB networking to rock'n'roll on your newly installed ARMedslack to work properly you have to edit /mnt/etc/rc.d/rc.inet1.conf. Remember to add the name for the interface manually.
+
To get ssh over USB networking to work properly on your newly installed ARMedslack, you have to edit /mnt/etc/rc.d/rc.inet1.conf. Remember to add the name for the interface manually.
 
<pre>
 
<pre>
 
# Config information for eth0:
 
# Config information for eth0:

Latest revision as of 08:26, 26 October 2010

Page about my (ajh, tuyp200 on IRC) experimentation and use of the Openmoko Freerunner.

Contents

[edit] ARMedslack

[edit] Installing ARMedslack on MicroSD

[edit] Setting up installation image

Here's instructions on how to get ARMedslack going on your Freerunner using an Andy-tracking kernel and Qi as bootloader. This describes my experiences and some pitfalls that I encountered. This is still work in progress.

First step of installing ARMedslack is to prepare your MicroSD card and installing Qi as bootloader. I had a working SHR-image on flash so I could use it to edit my images on the MicroSD card when problems arose. I prepared three primary partitions on the MicroSD card.

  1. /dev/mmcblk0p1 100MB type Linux ext2 (installation image, 40MB is enough though)
  2. /dev/mmcblk0p2 15GB type Linux ext3 (target partition)
  3. /dev/mmcblk0p3 900MB type Linux Swap

On your desktop computer, get installation image from ARMedslack website ftp://ftp.armedslack.org/armedslack/armedslack-12.2/isolinux/initrd-versatile.img

wget ftp://ftp.armedslack.org/armedslack/armedslack-12.2/isolinux/initrd-versatile.img
rename g g.gz initrd-versatile.img
gunzip initrd-versatile.img.gz
mkdir rootfs
cd rootfs
su -c "cpio -i <../initrd-versatile.img"

The next step is to modify the installation image a bit. On the desktop computer I cross-compiled an Andy-tracking kernel from the git repository which I used to boot up the installation image and later on to boot up the installed ARMedslack distribution. The kernel and modules are copied to the installation image as described later.

In the installation image, change etc/inittab so that sysinit directive is prefixed with the id of tty1 (a busybox init feature). This enables you to see what's going on in the init scripts during boot.

# /etc/inittab
# Boot-time system configuration/initialization script.
# This is run first except when booting in single-user mode.
tty1::sysinit:/etc/rc.d/rc.S

Next I added the correct rootfs to etc/fstab

proc             /proc            proc        defaults         0   0
/dev/mmcblk0p1  /       ext2    defaults,rw     1       1

I added lines to the very beginning of etc/rc.d/rc.S to be sure that filesystems would be mounted and all the necessary modules would be loaded.

/bin/mount -n -t proc proc /proc
/bin/mount -n -t sysfs sysfs /sys
/bin/mount -n -o remount,noatime,rw /
/sbin/modprobe ipv6
/sbin/modprobe ar6000
/sbin/modprobe btusb
/sbin/modprobe s3cmci
/sbin/modprobe l2cap
/sbin/modprobe rfcomm
/sbin/modprobe sco
/sbin/modprobe hidp
/sbin/modprobe bnep
/sbin/modprobe bluetooth
/sbin/modprobe slhc
/sbin/modprobe ppp_generic
/sbin/modprobe ohci_hcd
/sbin/modprobe g_ether

Also, to get dropbear started before keymap selection, I added a line for it before the prompting for keyboard layout.

# Don't automatically blank the screen, or it will go black during the install
# process when stray keystrokes might be dangerous:
/bin/setterm -blank 0

# Added line to get dropbear early startup.
/etc/rc.d/rc.dropbear start

if ! cat /proc/cmdline | grep -q 'kbd=' 2> /dev/null ; then
  echo
  echo
  echo "<OPTION TO LOAD SUPPORT FOR NON-US KEYBOARD>"

I then added things to etc/rc.d/rc.inet1 just after the part where a local DHCP server is tried. I wanted a ssh shell over USB to get into the installation image once booted.

# In case we use udev -
# Try to get information from a local DHCP server and store that for later:
if ! grep -wq nodhcp /proc/cmdline ; then
  for EDEV in $(cat /proc/net/dev | grep ':' | sed -e "s/^ *//" | cut -f1 -d: |
grep -v lo) ; do
   if grep -q $(echo ${EDEV}: | cut -f 1 -d :): /proc/net/wireless ; then
     continue # skip wireless interfaces
   fi
    /sbin/dhcpcd -t 10 -T $EDEV 1>$TMP/dhcpc/dhcpcd-${EDEV}.info 2>/dev/null &
  done
fi

# Added for USB networking.
/sbin/ifconfig usb0 192.168.0.202 netmask 255.255.255.0
/sbin/route add -net 192.168.0.0 netmask 255.255.255.0 usb0

For dropbear to start early, one must create a etc/motd.net manually.

echo "Hello." >etc/motd.net

Then I copied the cross-compiled kernel and the modules to the image. uImage-moredrivers-GTA02_andy-tracking-973a41fce60e5f6e.bin to /boot/uImage-GTA02.bin and untar modules-GTA02_andy-tracking-973a41fce60e5f6e.tar.gz to / of the installation image. Create /boot/append-GTA02 with the line loglevel=8. Create a tar file of your installation image and untar it to your MicroSD card's first partition (/dev/mmcblk0p1).

The final step is to boot your Freerunner with Qi and USB cable attached to desktop computer. Hopefully you will see everything going well on the screen of your Freerunner and get a cdc_ether up in your desktop computer.

[edit] Installation

After booting up your Freerunner from the first partition on your MicroSD card you should ssh into your Freerunner as usual. This should now be a installer image that you are used to get when bootin the Slackware installation CD-ROM. Set up NAT on your desktop computer so that we can download packages straight from ftp://ftp.armedslack.org.

iptables -t nat -A POSTROUTING -s 192.168.0.202 \
-d ! 192.168.0.0/24 -j SNAT --to-source IP_ADDR_OF_DESKTOP
echo 1 >/proc/sys/net/ipv4/ip_forward

Setup default gateway and nameservers on Freerunner.

route add default gw 192.168.0.200
echo "nameserver 208.67.222.222" >>/etc/resolv.conf
echo "nameserver 208.67.220.220" >>/etc/resolv.conf

Modify the end of /sbin/probe so that we get our MicroSD partitions as targets for installation and swap.

else # old format and no RAID:
  if cat /proc/partitions | grep md 1> /dev/null 2> /dev/null ; then
    cat /proc/partitions | grep md | while read line ; do
      SMASHED_LINE=$line
      MAJOR=`echo $SMASHED_LINE | cut -f 1 -d ' '`
      if [ "$MAJOR" = "9" ]; then
        list_md `echo $SMASHED_LINE | cut -f 3 -d ' ' | tr -d '/'` \
                `echo $SMASHED_LINE | cut -f 4 -d ' '`
      fi
    done
  fi
  # Added to get MicroSD cards to show up in setup.
  if cat /proc/partitions | grep mmcblk 1> /dev/null 2> /dev/null ; then
    cat /proc/partitions | grep mmcblk | while read line ; do
      SMASHED_LINE=$line
      MAJOR=`echo $SMASHED_LINE | cut -f 1 -d ' '`
      if [ "$MAJOR" = "179" ]; then
        list_md `echo $SMASHED_LINE | cut -f 3 -d ' ' | tr -d '/'` \
                `echo $SMASHED_LINE | cut -f 4 -d ' '`
      fi
    done
  fi

Start setup as usual.

When asked for source media, choose HTTP/FTP site and enter server ftp://ftp.armedslack.org and enter path to packages as /armedslack/armedslack-12.2/slackware. When asked, do not install a kernel, instead copy the existing from the installation image to /mnt/boot/. Same goes for the modules and /lib/firmware/. Create /mnt/boot/append-GTA02 with an additional console parameter as loglevel=8 console=tty1.

To get ssh over USB networking to work properly on your newly installed ARMedslack, you have to edit /mnt/etc/rc.d/rc.inet1.conf. Remember to add the name for the interface manually.

# Config information for eth0:
IFNAME[0]="usb0"
IPADDR[0]="192.168.0.202"
NETMASK[0]="255.255.255.0"
USE_DHCP=""
DHCP_HOSTNAME=""

To be on the safe side of things I also added lines to load necessary modules in /mnt/etc/rc.d/rc.S.

# Mount sysfs next, if the kernel supports it:
if [ -d /sys ]; then
  if grep -wq sysfs /proc/filesystems ; then
    if ! grep -wq sysfs /proc/mounts ; then
      /sbin/mount -v sysfs /sys -n -t sysfs
    fi
  fi
fi

# Added just in case.
/sbin/modprobe ipv6
/sbin/modprobe ar6000
/sbin/modprobe btusb
/sbin/modprobe s3cmci
/sbin/modprobe l2cap
/sbin/modprobe rfcomm
/sbin/modprobe sco
/sbin/modprobe hidp
/sbin/modprobe bnep
/sbin/modprobe bluetooth
/sbin/modprobe slhc
/sbin/modprobe ppp_generic
/sbin/modprobe ohci_hcd
/sbin/modprobe g_ether

stty onlcr 0>&1


To get your newly installed ARMedslack to boot you must rename your kernel in /dev/mmcblk0p1 partitions /boot directory so that Qi skips to the next partition.

cd /boot
rename 2 2-notinuse *

[edit] Getting Xorg to run

[edit] Touch screen

In order to get the touch screen working, we have to install tslib and xf86-input-tslib.

wget http://download.berlios.de/tslib/tslib-1.0.tar.bz2
tar -jxf tslib-1.0.tar.bz2
cd tslib-1.0
./configure --prefix=/usr
make
su -c "make install"

And then compile xf86-input-tslib

wget http://pengutronix.de/software/xf86-input-tslib/download/xf86-input-tslib-0.0.6.tar.bz2
tar -jxf xf86-input-tslib-0.0.6.tar.bz2
cd xf86-input-tslib-0.0.6
./configure --prefix=/usr
make
su -c "make install"

Edit your /usr/etc/ts.conf and uncomment option for raw input and add grab_events=1

# Uncomment if you wish to use the linux input layer event interface
module_raw input grab_events=1

Create a calibration configuration

echo "-67 38667 -4954632 -51172 121 46965312 65536" >/etc/pointercal

If you're going to use runlevel 4 and a graphical login screen like xdm, you have to add some environment variables to /etc/rc.d/rc.4

# If all you have is XDM, I guess it will have to do:
export TSLIB_TSDEVICE=/dev/input/event1
export TSLIB_CONSOLEDEVICE=none
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_PLUGINDIR=/usr/lib/ts
export TSLIB_CONFILE=/usr/etc/ts.conf
export TSLIB_FBDEVICE=/dev/fb0
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib
if [ -x /usr/bin/xdm ]; then
  exec /usr/bin/xdm -nodaemon
elif [ -x /usr/X11R6/bin/xdm ]; then
  exec /usr/X11R6/bin/xdm -nodaemon
fi

If you wish to be able to type your login credentials with a virtual keyboard, you need to start one in /etc/X11/xdm/Xsetup_0

#!/bin/sh
# $Xorg: Xsetup_0,v 1.3 2000/08/17 19:54:17 cpqbld Exp $
#xconsole -geometry 480x130-0-0 -daemon -notify -verbose -fn fixed -exitOnFail
/usr/local/bin/rapukbd &

I had my virtual keyboard configured to pop up in the lower part of the screen, so I moved the login window to the top. Added a line to /etc/X11/xdm/Xresources

xlogin*geometry: 480x320+0+0

Set your xsession up in your home directory $HOME/.xsession and make the file executable.

# Used when started from xdm.
/usr/local/bin/rapukbd &
xterm -ls -bg black -fg gray -bw 0 &
/usr/local/bin/matchbox-window-manager -use_titlebar no -use_cursor no -use_desktop_mode plain

If you're going to start X11 somehow from runlevel 3, use your $HOME/.xinitrc instead.

Finally something relevant to /etc/X11/xorg.conf

Section "ServerLayout"
        Identifier "Default Layout"
        Screen 0 "Screen0" 0 0
        InputDevice "Mouse0" "CorePointer"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "tslib"
        Option      "Device" "/dev/input/event1"
        Option      "CorePointer" "true"
        Option      "SendCoreEvents" "true"
        Option      "Width" "480"
        Option      "Height" "640"
        Option      "ScreenNumber" "0"
        Option      "Protocol" "Auto"
EndSection

Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        DisplaySize 200 200
EndSection

Section "Device"
        Identifier  "Videocard0"
        Driver      "fbdev"
EndSection

Section "Screen"
    Identifier  "Screen0"
    Device      "Videocard0"
    Monitor     "Monitor0"
    DefaultDepth 16
EndSection
Personal tools

Page about my (ajh, tuyp200 on IRC) experimentation and use of the Openmoko Freerunner.

ARMedslack

Installing ARMedslack on MicroSD

Setting up installation image

Here's instructions on how to get ARMedslack going on your Freerunner using an Andy-tracking kernel and Qi as bootloader. This describes my experiences and some pitfalls that I encountered. This is still work in progress.

First step of installing ARMedslack is to prepare your MicroSD card and installing Qi as bootloader. I had a working SHR-image on flash so I could use it to edit my images on the MicroSD card when problems arose. I prepared three primary partitions on the MicroSD card.

  1. /dev/mmcblk0p1 100MB type Linux ext2 (installation image, 40MB is enough though)
  2. /dev/mmcblk0p2 15GB type Linux ext3 (target partition)
  3. /dev/mmcblk0p3 900MB type Linux Swap

On your desktop computer, get installation image from ARMedslack website ftp://ftp.armedslack.org/armedslack/armedslack-12.2/isolinux/initrd-versatile.img

wget ftp://ftp.armedslack.org/armedslack/armedslack-12.2/isolinux/initrd-versatile.img
rename g g.gz initrd-versatile.img
gunzip initrd-versatile.img.gz
mkdir rootfs
cd rootfs
su -c "cpio -i <../initrd-versatile.img"

The next step is to modify the installation image a bit. On the desktop computer I cross-compiled an Andy-tracking kernel from the git repository which I used to boot up the installation image and later on to boot up the installed ARMedslack distribution. The kernel and modules are copied to the installation image as described later.

In the installation image, change etc/inittab so that sysinit directive is prefixed with the id of tty1 (a busybox init feature). This enables you to see what's going on in the init scripts during boot.

# /etc/inittab
# Boot-time system configuration/initialization script.
# This is run first except when booting in single-user mode.
tty1::sysinit:/etc/rc.d/rc.S

Next I added the correct rootfs to etc/fstab

proc             /proc            proc        defaults         0   0
/dev/mmcblk0p1  /       ext2    defaults,rw     1       1

I added lines to the very beginning of etc/rc.d/rc.S to be sure that filesystems would be mounted and all the necessary modules would be loaded.

/bin/mount -n -t proc proc /proc
/bin/mount -n -t sysfs sysfs /sys
/bin/mount -n -o remount,noatime,rw /
/sbin/modprobe ipv6
/sbin/modprobe ar6000
/sbin/modprobe btusb
/sbin/modprobe s3cmci
/sbin/modprobe l2cap
/sbin/modprobe rfcomm
/sbin/modprobe sco
/sbin/modprobe hidp
/sbin/modprobe bnep
/sbin/modprobe bluetooth
/sbin/modprobe slhc
/sbin/modprobe ppp_generic
/sbin/modprobe ohci_hcd
/sbin/modprobe g_ether

Also, to get dropbear started before keymap selection, I added a line for it before the prompting for keyboard layout.

# Don't automatically blank the screen, or it will go black during the install
# process when stray keystrokes might be dangerous:
/bin/setterm -blank 0

# Added line to get dropbear early startup.
/etc/rc.d/rc.dropbear start

if ! cat /proc/cmdline | grep -q 'kbd=' 2> /dev/null ; then
  echo
  echo
  echo "<OPTION TO LOAD SUPPORT FOR NON-US KEYBOARD>"

I then added things to etc/rc.d/rc.inet1 just after the part where a local DHCP server is tried. I wanted a ssh shell over USB to get into the installation image once booted.

# In case we use udev -
# Try to get information from a local DHCP server and store that for later:
if ! grep -wq nodhcp /proc/cmdline ; then
  for EDEV in $(cat /proc/net/dev | grep ':' | sed -e "s/^ *//" | cut -f1 -d: |
grep -v lo) ; do
   if grep -q $(echo ${EDEV}: | cut -f 1 -d :): /proc/net/wireless ; then
     continue # skip wireless interfaces
   fi
    /sbin/dhcpcd -t 10 -T $EDEV 1>$TMP/dhcpc/dhcpcd-${EDEV}.info 2>/dev/null &
  done
fi

# Added for USB networking.
/sbin/ifconfig usb0 192.168.0.202 netmask 255.255.255.0
/sbin/route add -net 192.168.0.0 netmask 255.255.255.0 usb0

For dropbear to start early, one must create a etc/motd.net manually.

echo "Hello." >etc/motd.net

Then I copied the cross-compiled kernel and the modules to the image. uImage-moredrivers-GTA02_andy-tracking-973a41fce60e5f6e.bin to /boot/uImage-GTA02.bin and untar modules-GTA02_andy-tracking-973a41fce60e5f6e.tar.gz to / of the installation image. Create /boot/append-GTA02 with the line loglevel=8. Create a tar file of your installation image and untar it to your MicroSD card's first partition (/dev/mmcblk0p1).

The final step is to boot your Freerunner with Qi and USB cable attached to desktop computer. Hopefully you will see everything going well on the screen of your Freerunner and get a cdc_ether up in your desktop computer.

Installation

After booting up your Freerunner from the first partition on your MicroSD card you should ssh into your Freerunner as usual. This should now be a installer image that you are used to get when bootin the Slackware installation CD-ROM. Set up NAT on your desktop computer so that we can download packages straight from ftp://ftp.armedslack.org.

iptables -t nat -A POSTROUTING -s 192.168.0.202 \
-d ! 192.168.0.0/24 -j SNAT --to-source IP_ADDR_OF_DESKTOP
echo 1 >/proc/sys/net/ipv4/ip_forward

Setup default gateway and nameservers on Freerunner.

route add default gw 192.168.0.200
echo "nameserver 208.67.222.222" >>/etc/resolv.conf
echo "nameserver 208.67.220.220" >>/etc/resolv.conf

Modify the end of /sbin/probe so that we get our MicroSD partitions as targets for installation and swap.

else # old format and no RAID:
  if cat /proc/partitions | grep md 1> /dev/null 2> /dev/null ; then
    cat /proc/partitions | grep md | while read line ; do
      SMASHED_LINE=$line
      MAJOR=`echo $SMASHED_LINE | cut -f 1 -d ' '`
      if [ "$MAJOR" = "9" ]; then
        list_md `echo $SMASHED_LINE | cut -f 3 -d ' ' | tr -d '/'` \
                `echo $SMASHED_LINE | cut -f 4 -d ' '`
      fi
    done
  fi
  # Added to get MicroSD cards to show up in setup.
  if cat /proc/partitions | grep mmcblk 1> /dev/null 2> /dev/null ; then
    cat /proc/partitions | grep mmcblk | while read line ; do
      SMASHED_LINE=$line
      MAJOR=`echo $SMASHED_LINE | cut -f 1 -d ' '`
      if [ "$MAJOR" = "179" ]; then
        list_md `echo $SMASHED_LINE | cut -f 3 -d ' ' | tr -d '/'` \
                `echo $SMASHED_LINE | cut -f 4 -d ' '`
      fi
    done
  fi

Start setup as usual.

When asked for source media, choose HTTP/FTP site and enter server ftp://ftp.armedslack.org and enter path to packages as /armedslack/armedslack-12.2/slackware. When asked, do not install a kernel, instead copy the existing from the installation image to /mnt/boot/. Same goes for the modules and /lib/firmware/. Create /mnt/boot/append-GTA02 with an additional console parameter as loglevel=8 console=tty1.

To get ssh over USB networking to rock'n'roll on your newly installed ARMedslack to work properly you have to edit /mnt/etc/rc.d/rc.inet1.conf. Remember to add the name for the interface manually.

# Config information for eth0:
IFNAME[0]="usb0"
IPADDR[0]="192.168.0.202"
NETMASK[0]="255.255.255.0"
USE_DHCP=""
DHCP_HOSTNAME=""

To be on the safe side of things I also added lines to load necessary modules in /mnt/etc/rc.d/rc.S.

# Mount sysfs next, if the kernel supports it:
if [ -d /sys ]; then
  if grep -wq sysfs /proc/filesystems ; then
    if ! grep -wq sysfs /proc/mounts ; then
      /sbin/mount -v sysfs /sys -n -t sysfs
    fi
  fi
fi

# Added just in case.
/sbin/modprobe ipv6
/sbin/modprobe ar6000
/sbin/modprobe btusb
/sbin/modprobe s3cmci
/sbin/modprobe l2cap
/sbin/modprobe rfcomm
/sbin/modprobe sco
/sbin/modprobe hidp
/sbin/modprobe bnep
/sbin/modprobe bluetooth
/sbin/modprobe slhc
/sbin/modprobe ppp_generic
/sbin/modprobe ohci_hcd
/sbin/modprobe g_ether

stty onlcr 0>&1


To get your newly installed ARMedslack to boot you must rename your kernel in /dev/mmcblk0p1 partitions /boot directory so that Qi skips to the next partition.

cd /boot
rename 2 2-notinuse *

Getting Xorg to run

Touch screen

In order to get the touch screen working, we have to install tslib and xf86-input-tslib.

wget http://download.berlios.de/tslib/tslib-1.0.tar.bz2
tar -jxf tslib-1.0.tar.bz2
cd tslib-1.0
./configure --prefix=/usr
make
su -c "make install"

And then compile xf86-input-tslib

wget http://pengutronix.de/software/xf86-input-tslib/download/xf86-input-tslib-0.0.6.tar.bz2
tar -jxf xf86-input-tslib-0.0.6.tar.bz2
cd xf86-input-tslib-0.0.6
./configure --prefix=/usr
make
su -c "make install"

Edit your /usr/etc/ts.conf and uncomment option for raw input and add grab_events=1

# Uncomment if you wish to use the linux input layer event interface
module_raw input grab_events=1

Create a calibration configuration

echo "-67 38667 -4954632 -51172 121 46965312 65536" >/etc/pointercal

If you're going to use runlevel 4 and a graphical login screen like xdm, you have to add some environment variables to /etc/rc.d/rc.4

# If all you have is XDM, I guess it will have to do:
export TSLIB_TSDEVICE=/dev/input/event1
export TSLIB_CONSOLEDEVICE=none
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_PLUGINDIR=/usr/lib/ts
export TSLIB_CONFILE=/usr/etc/ts.conf
export TSLIB_FBDEVICE=/dev/fb0
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib
if [ -x /usr/bin/xdm ]; then
  exec /usr/bin/xdm -nodaemon
elif [ -x /usr/X11R6/bin/xdm ]; then
  exec /usr/X11R6/bin/xdm -nodaemon
fi

If you wish to be able to type your login credentials with a virtual keyboard, you need to start one in /etc/X11/xdm/Xsetup_0

#!/bin/sh
# $Xorg: Xsetup_0,v 1.3 2000/08/17 19:54:17 cpqbld Exp $
#xconsole -geometry 480x130-0-0 -daemon -notify -verbose -fn fixed -exitOnFail
/usr/local/bin/rapukbd &

I had my virtual keyboard configured to pop up in the lower part of the screen, so I moved the login window to the top. Added a line to /etc/X11/xdm/Xresources

xlogin*geometry: 480x320+0+0

Set your xsession up in your home directory $HOME/.xsession and make the file executable.

# Used when started from xdm.
/usr/local/bin/rapukbd &
xterm -ls -bg black -fg gray -bw 0 &
/usr/local/bin/matchbox-window-manager -use_titlebar no -use_cursor no -use_desktop_mode plain

If you're going to start X11 somehow from runlevel 3, use your $HOME/.xinitrc instead.

Finally something relevant to /etc/X11/xorg.conf

Section "ServerLayout"
        Identifier "Default Layout"
        Screen 0 "Screen0" 0 0
        InputDevice "Mouse0" "CorePointer"
EndSection

Section "InputDevice"
        Identifier  "Mouse0"
        Driver      "tslib"
        Option      "Device" "/dev/input/event1"
        Option      "CorePointer" "true"
        Option      "SendCoreEvents" "true"
        Option      "Width" "480"
        Option      "Height" "640"
        Option      "ScreenNumber" "0"
        Option      "Protocol" "Auto"
EndSection

Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        DisplaySize 200 200
EndSection

Section "Device"
        Identifier  "Videocard0"
        Driver      "fbdev"
EndSection

Section "Screen"
    Identifier  "Screen0"
    Device      "Videocard0"
    Monitor     "Monitor0"
    DefaultDepth 16
EndSection