Sunday 26 September 2010

Maverick, Smarttop/Smartbook kernels

All Efika MX Smarttop and MX Smartbooks are now shipping with a pre-release Ubuntu Maverick with Xfce. Source filesystems are available on PowerDeveloper.

Also shipping today: the Smartbook kernel (-efikasb, also a pre-release) and an update to the Smarttop kernel (-efikamx) built from the same point in the git tree. This is in another branch - efikasb-10.07.11.

These kernels match the Maverick support. In this sense installing them on top of Karmic systems is a bad idea. It will produce an unbootable system unless you find a way to not have udev and upstart mount their own /dev and subordinate filesystems. We will make an update in a little while that fixes this for older Linux distributions.

Known issues so far:

  • on Smarttop some DVI monitors again don't work. We are still investigating solutions which work on ALL systems
  • on Smartbook there is a ~5 pixel blank at the end of the panel and the entire display is shifted up slightly
  • Default kernel ships with devtmpfs enabled which means any systems before Ubuntu Lucid (i.e. all previously shipping with Karmic) are recommended NOT to update. We are investigating a solution to make Karmic work with it, and a kernel update for the meantime
  • Smartbook battery driver occasionally doesn't report "current_avg" properly
  • Smartbook lid close event automatically suspends the system, but when it comes back all USB devices are dead. Possibly needs a udev script to handle this.
  • No flash-kernel package support for EfikaMX in Maverick yet so no initramfs created automatically.
  • 2010-09-28 TO2 boards still have SD card detection problems (steev from Gentoo is looking into this last time I checked).
So, if you're not going to be running Maverick, the kernel you have (2.6.31-008 or 2.6.31.14 previous release) will work fine for you. Don't update with the standard kernel, get the "nodevtmpfs" version if you're using Karmic.

Major and minor fixes depending on how you look at it:

  • Several bugs with with the internal variable "pixclk_limit" have been fixed whereby a user with a 1280x720@60 mode set would find that it would corrupt the display after a few blanks or a few hours of runtime. This manifested itself either as garbage on the display for the bottom 3rd of the monitor, or a lockup, or both.
  • The kernel now supports a real 32-bit display mode but needs a recompile to activate it. The Smartbook only has a 16-bit display controller so it is probably better to run in 16-bit and let the OS dither and manage the display, as 32-bit direct mode will cause significant banding.
  • block IO scheduler now defaults to "noop" since having CFQ was soaking CPU cycles without giving any benefit (scheduling block IO to take advantage of "closer" blocks is meaningless on an SSD).
  • ramzswap is back in lieu of being able to include zram.
  • oprofile is enabled in the default configuration. You need to manually load the module before you run oprofile.
  • faster kernel memcpy and kernel preemption enabled
  • Several ARM kernel fixes due for 2.6.35 and 2.6.36 backported
  • RT2870 driver is less chatty (no dmesg lines full of empty #)
  • CRC32 performance optimization meant for 2.6.35 backported
The Maverick filesystems are current as of the freeze implemented before the Maverick beta 2. You can find them at Linux Support. The Kernels are available at Kernel Support.

UPDATE 2010-09-27: to boot the Smartbook from SD card you need to make a "boot.scr" by making a small text file (the simplest can be "run bootcmd_sdhc") and running a command line as so:

mkimage -A arm -O linux -a 0 -e 0 -T script -C none -n "Boot SDHC" -d myscript.txt boot.scr


A U-Boot unification for both platforms that relies on boot.scr for everything (thus letting you have full control over everything from the Linux side, and preconfigured scripts) is coming soon. If anyone has any ideas for preconfigured, board-specific environment variables (such as console="ttymxc0,115200" or so) that can be appended to bootargs or make scripting easier, we are all ears :)

UPDATE 2010-09-28: The Xfce Maverick is mislabeled "maverick-final" - it is not the final Maverick (not released for another 2 weeks..) nor our final update on the matter. However it is the final version for currently shipping products and will be on every new unit. I hope that clarifies it.

14 comments:

  1. Let me be to first to say 'yay'.

    Yay! ; )

    Good job, Genesi team!

    *fetches a brand new SD and goes to install tons of stuff*

    ReplyDelete
  2. Any chance to create a bootable SD card from it, which boots into Linux without touching a serial console? (or a howto describing how to do it?) My serial adapter for my EFIKA MX (TO2) seems to be broken, and as u-boot is only accessible through serial, I'm locked into using my latest working kernel and Linux. An SD image, which could boot Linux without user intervention could fix this situation...

    ReplyDelete
  3. That is great work Matt. Thank you and congratulations to all the team!

    ReplyDelete
  4. Peter you shouldn't need to bother, if you're using 2.6.31.14 already.. just copy the stuff over and reboot. The modules are not signed/versioned and the kernel version is identical, so no mishaps should happen.

    If you need to make an SD card, just make one.. you need a ~32MB FAT partition at the front, ext2/3/4 at the back (2 partitions :) then just

    mount p2 /mnt
    mkdir -p /mnt/boot
    mount p1 /boot
    tar axvf maverick-minimal.tar.lzma -C /mnt
    tar axvf boot-foo.tar.lzma -C /mnt
    tar axvf modules-foo.tar.lzma
    sync && umount p1 p2

    For Smartbook you need a little boot.scr script on /mnt/boot too which I forgot to ship.. but you know where you can get that since you have access to Labs. I'll put it on PD later today.

    I am loathe to make a preinstallable SD card as simply doing the above will create one. If I put up SD cards then there will be 2GB of data I need to update next time. This takes forever and impacts the time needed to actually do the kernel work to fix the bugs :)

    ReplyDelete
  5. OK, so I don't need installing u-boot to the SD card to boot from it? That's good news! I hope to test it this evening! I changed u-boot settings a bit, I hope, I did not break this feature...

    ReplyDelete
  6. Matt, I think you meant:

    mount p2 /mnt
    mkdir -p /mnt/boot
    mount p1 /mnt/boot
    tar axvf maverick-minimal.tar.lzma -C /mnt
    tar axvf boot-foo.tar.lzma -C /mnt
    tar axvf modules-foo.tar.lzma -C /mnt
    sync && umount p1 p2


    I know most people would immediately spot it, but some poor chap might end up overwriting his host's /lib/modules.

    ReplyDelete
  7. I have now a working rescue SD card, so I experimented a bit. As booting the new kernel from the SD card had troubles (mmc not found on my TO2 nettop), I installed the new kernel and maverick to pata.

    It definitely boots the new kernel, as it uses a 1280x720 resolution, which I have never seen before.

    Booting Maverick stops quite early, with the following messages at the bottom of screen:

    init: ureadahead main process (1033) terminated with status 5
    mountall: Disconnected from Plymouth
    init: plymouth main process (1034) killed by SEGV signal
    init: plymouth-splash main process (1201) terminated with status 2

    And nothing happened ever since (10+ minutes). So, while the new kernel seems to boot, Maverick seems to fail. But as I have now a working rescue SD card, I'm free to experiment. Thanks for the hint! :)

    ReplyDelete
  8. OK, workaround found: http://www.powerdeveloper.org/forums/viewtopic.php?p=13833#13833

    ReplyDelete
  9. I have the EfikaMX Smartbook T03 I like it.(with Maverik xubuntu 10.10)
    I have updated at yesterday.

    I feedback the more important things to improve:

    - I see that after suspend closing the lid , when I press the power button it get up but the keyboard and mouse doesn't respond ( it's the same usb problem?) so I must press power down go continue to use it.

    - When I shutdown it doesn't power off , it reamin waiting forever with the message checking unattended upgrade ( I must press power down to switch off)

    ReplyDelete
  10. robyinno,

    We know the usb suspend bug. There probably needs to be a udev rule to fix this..

    As for shutdown/power off we are working this out. With Karmic it works fine, on Maverick it doesn't. I think some other syscall is being used.. and it is not going down the right path.

    ReplyDelete
  11. Fine! In fact I have imagined that with Karmic was working , Maverick is very new... still in beta...

    Thanks again

    ReplyDelete
  12. I could literally hear the sound of sharp metal piercing chitin coming from 80ee6ca ; )

    ReplyDelete
  13. For the 4 pixel gap I have found that "fbset -move down" twice fixes things for me temporarily. However, changing VTs causes the problem to appear again.

    ReplyDelete
  14. Hrm, I made the SD card as per the instructions (for the smarttop). However, is ther something I need to do/press to get it to boot from the SD card?

    ReplyDelete