The Mer Wiki now uses your Mer user account and password (create account on https://bugs.merproject.org/)


N9 Kernel update project

From Mer Wiki
Revision as of 13:09, 12 November 2012 by L4mer (Talk | contribs)

Jump to: navigation, search

Contents

Summary

The N9 kernel currently used with various Mer images is based on old 2.6.32 maemo kernel. This page collects needed info for any developers who might want to help in updating that kernel to latest linux-stable version.

Note for N950 users: the N950 support is there but it's not tested very well as we develop with N9 mostly, so issues may appear. N950 patches also very welcome though.

Contact info

  • IRC: #mer and #nemomobile @irc.freenode.net
  • Mailing list: mer-general@lists.merproject.org

Developement

Development git:

git clone git@github.com:nemomobile/kernel-adaptation-n950-n9.git
  • master branch is the latest development branch
  • The git tree is public, if you want to contribute patches, read process below:
  • Patch process:
    • 1. Send patches first to relevant upstream subsystem list (like linux-omap, linux-usb, etc.)
    • 2. Once patches seem to be ok for upstream create a pull request in github like following:
      • NOTE: Pull request section below is under construction, instructions incomplete!
      • 2.1 fork the nemomobile/kernel-adaptation-n950-n9 tree into a personal kernel repo in github (use the "fork" button in github web interface)
      • 2.2 push your changes to your forked PERSONAL kernel github tree
      • 2.3 send a pull request from your personal repo to nemo-mobile/kernel-adaptation-n950-n9 tree (again from the github web interface)
    • 3. If the patch seems ok for N9 kernel, we'll take it in, if not, you will receive comments what to fix.
    • Exceptions:
      • Mer/Nemo specific patches (like config changes) can skip step 1.
      • Drivers that cannot be made upstream compatible, can skip step 1. (like PVR, etc.)

Build instructions from git

    • Use Mer SDK and SB2 to build. NOTE: install the nemo-n950 target to SB2.
    • Install needed packages (inside Mer-SDK chroot)
sudo zypper in make
sb2 -t nemo-n950 -m sdk-install -R zypper in perl ncurses-devel
    • Building (inside Mer-SDK chroot):
sb2 make n9_mer_defconfig
sb2 make -j4 zImage
sb2 make -j4 modules
sb2 make modules_install INSTALL_MOD_PATH=./mods

Deploying to device (kind of "flashing")

  • Pre-requisite: have MOSLO set up on your N9 like this
  • We use helper scripts that prepare the modules etc
./prepare_modules.sh
  • Then use copy script (NOTE: do this outside Mer-SDK chroot)
    • Plug N9 to USB and let it boot so the filesystem gets mounted
    • Then "flash" the kernel (it's just a simple cp actually...)
sudo ./copy_kernel.sh /<path-to>/<mounted>/<N9 filesystem>

Packaging

Packaging development project:

updating kernel package

osc co <kernel pack>
  • do changes in your local mer-n9-linux git master branch
  • tag the kernel:
git tag nemo-n9-3.5.3.YYYYMMDD.X # e.g. "git tag nemo-n9-3.5.3.20121018.1"
  • create a tarball from the package (replace YYYYMMDD.X with date and a running number X for that date starting from 1)
git archive --format=tar --prefix=kernel-3.5.3.YYYYMMDD.X/ nemo-n9-3.5.3.YYYYMMDD.X |bzip2 > kernel-3.5.3.YYYYMMDD.X.tar.bz2
  • remove the old tarball in your local OBS checkout of kernel-adaptation-n950
rm *.tar.bz2
  • move the tarball to your OBS checkout of kernel-adaptation-n950
mv path/to/kernel-3.5.3.YYYYMMDD.X.tar.bz2 .
  • update changelog:
gedit kernel-adaptation-n950.changes # manually add changelog entry
  • update changes and commit
osc addremove
osc ci -m "latest changes from git..."

TO DO list for kernel update

Work item Person fixing it Other comments
USB networking phdeswer 2 different patches have been sent to linux-omap, can also be solved by using CONFIG_SOC_OMAP3430 (as it only influences USB and is in no way specific to 3430. This option will be removed though at some point in time.)
Display drivers jnikula DONE
PowerVR 3D drivers missing jnikula DONE
Audio driver parts missing free for taking!
CPU frequency tables missing, N9 running only at 600MHz currently Tieto Patch is ready. Will be pushed soon.
CMT (cellular modem) drivers free for taking!
Touch driver board configuration done / jnikula Driver merged, thanks jnikula :)
Volume buttons board config free for taking!
WLAN driver fixing (driver exists but no wlan0 i/f, could be missing board config) Tieto Driver merged, WLAN firmware package update ongoing.
Nokia H4P bluetooth driver missing tieto scan works fine. Connection established need to be tested.
RM-680 / RM-696 Board configs / device tree free for taking! There is a LOT of board configs missing, not sure though if we should actually use device tree instead these days. Someone (tm) should investigate.
Port needed Mer specific patches from old N950 kernel OBS pack deztructor There are not so much patches remained actual, see #2.6.32 Kernel Update

2.6.32 Kernel Update

Update to the 3.5.x series is a huge step. While it is going on 2.6.32-20112201+0m6 kernel used in Nemo Mobile is updated to the 2.6.32-20121301+0m8 (corresponding to Harmattan PR 1.3 N9 kernel, information about update can be found here.

Personal tools