www.muru.com

www.muru.com

  booting n8x0 with current kernel

unofficial n800 usb host mode

dynamic tick timer for linux

unofficial omap linux patches

linux for psion 5mx and revo kernel patches

proboot linux bootloader for psion 5mx pro

xpsitouch linux touch panel button handler for psion

linux fast serial port enabler for w83627hf

amd 76x native power management for linux

misc amd64 stuff for linux

powerbook 5300/1400 trex pcmcia driver for linux

pjb-100 personal jukebox usb driver for linux-2.6

xawtv-3.76 patch for remote X11 displays

dog toys

 
  

          


BOOTING NOKIA N8X0 WITH CURRENT KERNEL, VERSION 2008-07-03

Here are some notes on how you can boot current linux-omap tree on your
Nokia N8X0. I've only tested this with N810, but most of it should apply
to N800 also.

As bunch of omap patches are not yet in the mainline kernel, linux-omap
is the closest thing to mainline kernel at this point. Some things won't
work, such as WLAN as there's currently no way to compile firmware for
it against the current kernels.

I'm using Debian sid created with debootstrap, but this should work for
basically any distro. I'm booting my kernel to internal MMC so I the
NAND flash contains untouched Maemo. To do this, just load the kernel
with flasher -k zImage-n8x0 -l -b instead of using -f so you don't overwrite
Maemo kernel.


TODO LIST

Here are things that would be nice to have in case somebody has time to
hack on them:

- Update system time from retu during boot

- Copy initfs to a directory and set up chroot scripts for starting
  bluetooth and bsme individually

- Build xomap for Debian sid

- Build Maemo kernel with CONFIG_KEXEC so Maemo can load the kernel to
  boot to MMC..


NOTES

Here are few issues you may run into:

- External MMC card must be in the slot to keep the right order

- If ssh -Y or ssh -X to your N8X0 does not work, make sure target has
  lo configured in /etc/network/interfaces. It should say:

  auto lo
  iface lo inet loopback


RETU WATCHDOG

Update: With the recent patches retu watchdog behaves like a regular
Linux /dev/watchdog. Following scripts are not needed any longer.

Retu watchdog must be kicked during init as it cannot be disabled.
This can be done with a shell script.

Create following script as /sbin/retu-wd:

#!/bin/sh

mount -t sysfs sysfs /sys > /dev/null 2&>1

while [ 1 ]; do
      echo 60 > /sys/devices/platform/retu-watchdog/period
      sleep 30
done

And then create following as /etc/init.d/retu-watchdog:

#!/bin/sh

case "$1" in
start)
	killall retu-wd > /dev/null 2>&1
	/sbin/retu-wd &
	;;
stop)
	killall retu-wd
	;;
esac


Then make them executable:

# chmod a+x /sbin/retu-wd
# chmod a+x /etc/init.d/retu-watchdog

And start it up automatically:

# ln -s /etc/init.d/retu-watchdog /etc/rc1.d/S40retu-watchdog
# ln -s /etc/init.d/retu-watchdog /etc/rc2.d/S10retu-watchdog

If you want to see the watchdog counter value, you can do:

# cat /sys/devices/platform/retu-watchdog/counter


POWER MANAGEMENT

Power management works, but does not do voltage scaling like the Maemo kernel.

To enable hitting deep sleep state during idle, make sure your init script
enables it once during init:

# echo 1 > /sys/power/sleep_while_idle

As long as screen is blanked and USB cable is disconnected, N8X0 will hit
deep sleep during idle. You can blank the screen with:

# echo 3 > /sys/class/graphics/fb0/blank


BLUETOOTH AND BSME

First, copy the bluetooth firmware to the right location:

# cp /media/initfs/mnt/initfs/usr/lib/hotplug/firmware/*.bin /lib/firmware/

Then bluetooth will work after you set the hardware address during boot:

# chroot /media/initfs/ /linuxrc
# /etc/init.d/bluetooth restart

Note if using a serial jig, this seems to need system booted on
battery, and not using a power supply.


BATTERY CHARGING

I think battery charging works if you run the linuxrc as noted
under bluetooth section..


USB ETHERNET

You might want to have something like this in /etc/network/interfaces:

auto lo
auto usb0

iface lo inet loopback

iface usb0 inet static
	address 192.168.168.2
	netmask 255.255.255.0
	gateway 192.168.168.1

Then you'll probably want someting into your /etc/resolv.conf too.
Note that if using this same distro as chroot environment from Maemo,
you'll want to have nameserver 127.0.0.1 in /etc/resolv.conf. This
won't work with Debian though.


MOUTING NAND FLASH

# mkdir /media/initfs
# mkdir /media/rootfs

# mount -tjffs2 /dev/mtdblock3 /media/initfs
# mount -tjffs2 /dev/mtdblock4 /media/rootfs


KEYBOARD ON N810

Current patch series has a patch that makes the N810 keyboard to work
with console. Ideally the input layer would handle the sticky keys
instead of the driver.


SERIAL CONSOLE

Note that currently the 8250 serial port does not support clock management.
So if you have disabled serial clocks for better power management, and
try to access serial ports, you'll get "Unhandled fault: external abort on
linefetch" errors. This will get properly solved when we'll have an omap
specific serial driver that supports power management.

If you want to use a serial console, you need to remove the serial clock
patch, and add following to /etc/inittab:

T2:23:respawn:/sbin/getty -L ttyS1 115200 vt100

You may need to create the dev entry first when booting to
single user mode:

# mknod /dev/ttyS1 c 4 65


CURRENT PATCH SERIES

Here are the patches against current linux-omap tree (requires n810 flashed to diablo):
n8x0-2008-08-14.tar.gz
n8x0-2008-07-03.tar.gz

These older obsolete patches work only with pre-diablo bootloader:
n8x0-2008-05-20.tar.gz
n8x0-2008-05-15.tar.gz
n8x0-2008-05-12.tar.gz
n8x0-2008-04-29.tar.gz
n8x0-2008-04-28.tar.gz



          
        
          

back to main page