Porting/Kernel

[edit] Upstream kernel with Maemo 5

1. Kernel patches from https://github.com/pali/linux-n900

2. CSSU-Devel from http://talk.maemo.org/showthread.php?t=84292

3. BME-Replacement from http://talk.maemo.org/showthread.php?t=93183

4. Fixup for wifi firmware:

mkdir -p /lib/firmware/ti-connectivity
ln -s ../wl1251-fw.bin /lib/firmware/ti-connectivity/wl1251-fw.bin
ln -s ../wl1251-nvs.bin /lib/firmware/ti-connectivity/wl1251-nvs.bin

5. Fixup for Dialer application (rtcom-call-ui):

Create new file /etc/event.d/userspace-fixes with content:

start on started hildon-desktop
service
console none
script
        if ! hal-device /org/freedesktop/Hal/devices/platform_soc_audio_logicaldev_input 2> /dev/null; then
                hal-device --add /org/freedesktop/Hal/devices/platform_soc_audio_logicaldev_input < /dev/null
                hal-set-property --udi /org/freedesktop/Hal/devices/platform_soc_audio_logicaldev_input --key input.jack.type --strlist-pre "a"
                hal-set-property --udi /org/freedesktop/Hal/devices/platform_soc_audio_logicaldev_input --key input.jack.type --strlist-rem "a"
        fi
end script

[edit] Porting

=====================
bootreason, twl4030-adc (done)
=====================

files:
/sbin/preinit (done)
/sbin/getbootstate (done)
/sbin/bsi-read (not finished, not used)
/etc/X11/Xsession.d/10hildon_welcome (done)
/etc/init.d/fb-progress.sh (done)
/usr/sbin/bme_RX-51 (done)
 
old paths:
/proc/bootreason
/dev/twl4030-adc

new paths:
/proc/atags
/sys/class/power_supply/rx51-battery/charge_full_design

=====================
component_version
=====================

files:
/etc/event.d/sgx (not needed?)
/etc/init.d/softupd.rcS
/etc/init.d/rcS
/sbin/preinit (done)
/usr/bin/testserver (not used)
/usr/lib/apt/methods/http (done)
/usr/lib/apt/methods/https (done)
/usr/lib/hildon-desktop/ham-notifier-status-menu-item.so (done)
/usr/lib/hildon-desktop/ham-updates-status-menu-item.so (done)
/usr/lib/libossoproductinfo.so.0.7.3 (done)
/usr/lib/libsysinfo.so.0
/usr/lib/mce/modules/* (done)
/usr/lib/microb-engine/libxul.so (done)
/usr/sbin/hald

old paths:
/proc/component_version

new paths:
/proc/cpuinfo

FIXME: bootmode is available only in raw /proc/atags when bootloader suppors OMAP atag table

=====================
hal
=====================

files:
usr/lib/hildon-desktop/bluetooth_headset_status_menu_item.so
usr/lib/librtcom-call-ui.so.0.0.0
usr/lib/mafw-plugin/mafw-gst-renderer.so
usr/lib/telepathy/telepathy-stream-engine
usr/sbin/fmtxd

old paths:
/org/freedesktop/Hal/devices/platform_soc_audio_logicaldev_input

new paths:
/org/freedesktop/Hal/devices/platform_rx51_audio_sound_card_0_logicaldev_input
(FIXME: will above path not chaning??)

=====================
gpio-switch
=====================

files:
/sbin/mce
/etc/event.d/cmt-act-dead
/usr/lib/mce/modules/libcamera.so
/usr/sbin/softupd
/usr/sbin/sscd
/usr/share/hal/fdi/policy/10osvendor/10-omap-gpio.fdi
/opt/lib/qt4/plugins/mediaservice/libqtmedia_v4lengine.so
/sbin/preinit (done)
/usr/bin/testserver
/usr/lib/testserver/modules/handlers/*

old paths:
/sys/devices/platform/gpio-switch/

new paths:
/sys/class/gpio/

FIXME: For sscd and softupd we need some LD_PRELOAD library

=====================
musb_hdrc
=====================

files:
sbin/mce
usr/lib/dsme/libstate.so.0.0.0
usr/lib/hal/hald-addon-usb-cable
usr/lib/hildon-desktop/usb_plugin.so
usr/sbin/fmtxd
usr/lib/testserver/modules/handlers/sos_usb.so.0.0.0
usr/sbin/bme_RX-51

old paths:
GADGETPATH='/sys/devices/platform/musb_hdrc/gadget'
LUN0='gadget-lun0'
LUN1='gadget-lun1'

new paths:
GADGETPATH='/sys/devices/platform/musb-omap2430/musb-hdrc.0.auto/gadget'
LUN0='lun0'
LUN1='lun1'

looks like gadget path is changing, maybe /sys/bus is stable?
GADGETPATH='/sys/bus/platform/devices/musb-hdrc.0.auto/gadget'

=====================
twl4030_usb
=====================

files:
/etc/event.d/bme
/sbin/mce
/usr/sbin/bme_RX-51
/usr/sbin/fmtxd
/usr/lib/hal/hald-addon-usb-cable
/usr/lib/testserver/modules/handlers/sos_usb.so.0.0.0

old paths:
/sys/class/i2c-adapter/i2c-1/1-0048/twl4030_usb/vbus

new paths:
/sys/class/i2c-adapter/i2c-1/1-0048/48070000.i2c:twl@48:twl4030-usb/vbus
(FIXME: will above path not chaning??)

=====================
hci_h4p
=====================

files:
etc/event.d/bluetooth-sysinfo
etc/modprobe.d/maemo.conf
usr/bin/testserver
usr/lib/testserver/modules/handlers/phone_info.so.0.0.0

/sys/devices/platform/hci_h4p/bdaddr

TODO:
bluetooth subsystem has its own mechanism for setting mac address (need to backport new bluez tools)

=====================
wl12xx
=====================

* Renamed to wl1251
* Replace /usr/bin/wl1251-cal
* Fix configuring bt coex
* Fix process of configuring permament mac address (maybe request_firmware ?)

* bt_coex_mode is used only in /usr/sbin/wlancond

=====================
others
=====================

/sys/kernel/reboot_mode (used by /usr/sbin/softupd)
/proc/cpuinfo (board info not available when using DT boot)

Upstream kernel should set reboot_mode so NOLO will know correct boot reason

* touchscreen "disable" sysfs node is missing in upstream kernel
* problem with default poll mask on sysfs (broke commit http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=1af3557abdef34ee036a6de4cb79e24468544b8d)

hulda-child[2119]: setup_sysfs_poll:366: g_io_channel_new_file() for /sys/kernel/high_watermark failed: No such file or directory
hulda-child[2119]: setup_sysfs_poll:366: g_io_channel_new_file() for /sys/kernel/low_watermark failed: No such file or directory

See also N900 kernel usage audit: https://talk.maemo.org/showthread.php?t=93938