-
Notifications
You must be signed in to change notification settings - Fork 3
modern kernel
This page documents an ongoing attempt to run modern linux kernel on N8x0 tablets.
Also, this page assumes you already have bootable Gentoo configured (bootmenu parts can be left off since we're booting to Gentoo partition directly here).
What works:
- Screen (including X)
- MMC
- Wifi
- Touchscreen and keypad on N800
- LED on N800
What wasn't tested yet:
- Bluetooth (should work, already in kernel)
- Camera (should work, already in kernel)
- FM (TEA5761) (should work, already in kernel)
- Touchscreen on N810 (TSC2005) (should work, already in kernel)
- Keypad & keyboard on N810 (LM8323) (should work, already in kernel)
- USB (TUSB6010) (should work, already in kernel)
- LED on N810 (LP5521) (should work, already in kernel)
- Charging
What doesn't work:
- Sound on N810 (TLV320AIC33, no driver)
- GPS on N810 (GPS5300, no driver)
- Sound on N800 (TSC2301). See this.
-
Disable
nokia-osso-linuxUSE and/or switch to$N8X0_OVERLAY/profiles/default/linux/arm/10.0/{n800,n810}profile -
Update
sys-fs/udevto latest stable version -
Install kernel sources from n8x0 overlay (actually, this is a 3.1 + openwrt N8x0 patchset):
emerge n8x0-sources -
Use this kernel config to build kernel (tweak CONFIG_CMDLINE and/or FS drivers if required)
-
Install kernel modules to your N8x0 device
-
(On device) Copy over
/mnt/initfs/usr/lib/hotplug/firmware/{3826.arm,bc4fw.bin}to$GENTOO_ROOT/lib/firmware/ -
(On device) Remove udev net rules so that wlan0 doesn't get renamed into smth random:
rm $GENTOO_ROOT/etc/udev/rules.d/70-persistent-net.rules -
(On device) Add wifi driver
modules="p54spi"to/etc/conf.d/modules: -
(On device) Disable unneeded init stuff:
rc-update del nit-boot-basics rc-update del osso-dsp-loader -
(On device) Fix device names in
/etc/X11/xorg.conf(touchpad is/dev/input/event1, keypad is/dev/input/event0, pwrbutton is/dev/input/event2) -
(On desktop) Download Maemo Flasher and unpack it
-
Poweroff N8x0 and connect it to desktop via USB
-
Tell flasher to boot kernel (this won't permanently flash it so reboot will return things to previous state):
$FLASHER_ROOT/flasher-3.5 -b -l -k $KERNEL_ROOT/arch/arm/boot/zImage -
Turn on device and watch it booting 3.1 kernel
Observations:
- Do not compile wifi driver in-kernel (it'll cause boot to hang during wifi firmware lookup)
- elinux.org has more complete (but a bit outdated already) data