Tuesday 25 October 2011

Git repository for "Legacy" 2.6.31 kernel moved..

We have finally abandoned gitorious.org for hosting our kernel git tree and moved it (with a significantly less confusing branch history, and much better performance on using the repo) to our GitHub account.

You can now access the kernel source from http://github.com/genesi/linux-legacy

Instructions on how to access the repository are on the above page (new URLs etc.)

Monday 10 October 2011

Maverick October

Minor update to fix some annoying bugs and pull in some performance updates

No kernel update. Just userspace fixes to improve user experience:
  • Preinstall NEON optimized libc functionality. Note this means that TO2 systems may become unstable unless users edit the installed filesystem /etc/ld.so.preload file to remove the library location (you do not need to uninstall the imx-libc-neon package as any updates will only change the file on TO3+ systems). This will improve system performance on very large memory copies, string searching and so on (not so much on tiny amounts of data, in fact system performance may slow down on these). Multimedia and Xorg are the biggest beneficiaries.
  • Preinstall libpixman 2.23 for enhanced performance on Xorg fallbacks (this significantly speeds up things like changing the backdrop in GNOME. Unfortunately other apps that use pixman (firefox is the biggest example) use an internal version and do not directly benefit except from improved system graphics performance.
  • Updated packages for imx-boot-scripts fixes some PulseAudio problems, SPDIF module loading, and bumps the compressed swap cache to 128MB (ramzswap default)
  • Uninstall and remove cache for "prelink" as it seems to do more harm than good for performance (including spending a lot of time scanning the system every week, and soaking up compressed swap cache for no good reason)
  • Fix software-center not running
  • Maverick Updates that were pushed the day we released the image (including apt, tzdata and firefox update to fix the DigiNotar SSL certificate security issue)
For users not willing to reinstall, you can fix software-center by running the following in a terminal (this will take around 10 minute to complete):
sudo update-apt-xapian-index
sudo dpkg-reconfigure software-center

Thursday 22 September 2011

Maverick September, Linux Kernel 2.6.31.14.26

New Linux release with a new kernel (2.6.31.14.26) with the following fancy updates:
  • Reinstated reservation of framebuffer and GPU memory due to quirks in the Linux kernel limiting the amount of DMA-capable memory you can allocate in a single block (and a lack of contiguous memory causing a crash rather than returning an error and letting drivers work around it). This means systems which were getting the full 512MB of memory in the last update will now be getting 448MB again. Sorry. We will revisit this again in a later kernel revision.
  • Fixed the "HDMI display goes into blank and never comes out unless you hotplug the HDMI cable" issue, which was down to overly aggressive power management.
  • Align framebuffer stride to 32 bytes to allow it to be GPU accelerated reliably (Z430 only)
  • Mainline: pull in unwinding support for div0 (now we can see what causes the Wireless Div0)
  • Mainline: pull in an optimization for copy_page
  • Don't wait to run the HDMI hotplug handler, and don't turn off the HDMI chip to solve an issue in particular with the Samsung SyncMaster E1920 which didn't like it when we did either.
  • HDMI now defaults to using IT modes instead of CEA modes where reasonable duplicates existed (tech: siihdmi.useitmodes=1 by default, siihdmi.useitmodes=0 for old behavior). This should make sure that if your TV does it by the specifications, most people should now have "underscanned" modes instead of "overscanned" modes. Also fixes a ton of very badly designed TVs.
  • "siihdmi.seventwenty" and "siihdmi.teneighty" options to the HDMI module now run through an extended list of possible modes, rather than restricting to exactly 1280x720 or 1920x1080 - now the switches are slightly misnamed as they will find the nearest native mode to these resolutions (such as 1360x768 which is a common plasma panel size) if the monitor reports them as preferred. This means most people won't need to disable siihdmi.seventwenty to get native panel resolution. 1080p now equals 1440x900, 1680x1050 or 1920x1080 if your panel supports it. For televisions which usually report exactly 720p or 1080p the behavior is absolutely unchanged, and if none of the native modes are found, it will pick 720p or the closest to the preferred mode (in case it was culled for being an incompatible mode) as before.
  • GPU kernel driver simplified and optimized
  • BFS scheduler patched in, PREEMPT disabled, CONFIG_HZ tweaked for i.MX timers. Gives us some performance back. CPU frequency driver disabled (locked to "performance") due to the driver being rather flakey. Smartbook battery life should be only minimally affected.
  • SPI NOR works again (thanks BoundaryDevices)
  • SGTL5000 audio is now a little more efficient (thanks BoundaryDevices)
Driver updates
  • Xorg driver: PictOpAdd, PictOpIn blend modes
  • Xorg driver: less memory hungry, more efficient (code size) allocation of memory
  • Xorg driver: Xv optimizations.
  • GPU: OpenVG: should now work without crashing all the time
  • GPU: EGL: Some texture/glReadPixels corruption bugs fixed (glcompbench now runs without corrupted textures, for example, but FSL 3DMMP_x still has garbage)
Multimedia
  • MM: multimedia via GStreamer - MPEG4 (Standard, H.264, VC-1), MPEG2 video acceleration.
  • MM: mfw_v4lsink to use IPU overlay for best performance
  • MM: mfw_xvimagesink for optimized Xv performance with reduced buffer copying.
  • MM: no requirement for any binary codec drivers (all opensource, ask if you want it..)
  • NOTE: NO audio codecs are included. As we do not license MP3 or AAC formats, your use of these codecs is your own responsibility.. If Totem or another GStreamer capable media player asks you to install new codecs, Genesi is not responsible for the quality of these codecs, and cannot assist users in installation of these codecs.
Known Issues:

  • MM: mfw_v4lsink will not work properly with siihdmi.teneighty=1 - this is a bandwidth issue and cannot be fixed. It might work fine doing windowed playback at 720p or less, though, your mileage may vary (wildly). Note that the MX51 is not rated for video playback above WXGA. You will need to run "gstreamer-properties" and set your video sink to "mfw_xvimagesink" to get around this. Note that mfw_v4lsink does not show anything when you click "Test" here.
  • MM: mfw_xvimagesink has a green line at the bottom in fullscreen (and perhaps Windowed mode too). Performance is adequate for videos less than 720p, for 720p and above there may be a few frame skips. This is actually a display driver bug combined with a limitation of the GPU (I420 and NV12 video must be converted to YUY2 using the CPU before blitting). Also there may be visible tearing. An updated OpenGL-based video renderer is in the works.
  • Note the i.MX51 is not rated to accelerate video above 720p.
  • Wireless driver still throws div0's at random intervals.
  • Performance in X.org Compositing window managers (Metacity for example) is somewhat sluggish in general (although window dragging is much, much faster). Compositing is disabled by default.
  • Firefox 3.6.22 is shipped by default but Mozilla don't have a "First Run" page for it, so the first time Firefox is started there will be a rather pretty "404" page telling you that you could upgrade to Firefox 6 or 7 - unfortunately this is not available at this time (Genesi do not plan to make it available for Maverick).
  • GNOME background switching in the Appearance panel seems like it locks the system, but it's just slow. An updated version of "libpixman" is required to solve this. We will make this available as soon as it completes testing (2.23).
  • GNU libc memory copies and string handling is not optimized for modern ARM processors. Genesi has a solution and it will be made available as soon as it completes testing (imx-libc-neon)
  • The updates.efikamx.info package repository is ridiculously out of date. Will be fixed shortly and March/May/July users can just update at that point without reinstalling..
  • Some source code is not available on GitHub - please just mail me and I'll send you a copy while we work this out.

Saturday 23 July 2011

Maverick July, Linux Kernel 2.6.31.14.24

An update is available on PowerDeveloper for reinstallation of systems from scratch.

Kernel Changes (2.6.31.14.24)
  • Due to GPU and IPU changes, the system now has the full 512MB of memory available with no reserved blocks for GPU (64MB) or IPU framebuffer (32MB). Total available memory is up from 407MB. Framebuffer dynamically allocates a maximum of 24MB for a 1080p display, or 4MB on Smartbook. GPU resource allocation is completely dynamic with a maximum allocation of around 128MB of system memory.
  • Headless operation now works again by setting up a less restrictive dummy framebuffer (it is a real VESA/CEA standard 640x480 mode), and not trying to set modes where there was no monitor data available.
  • Backlight: no longer blanks when disabling the video overlay
  • HDMI: fixed mode selection on many displays. Driver renamed to 'siihdmi' so as not to conflict with Freescale's BSP driver. Lots of performance optimizations. Hotplug support. Revert to default selection of a 720p video mode rather than 1080p to improve out-of-the-box system performance.
  • Kernel: wire sys_accept4 for new udev and potentially a little better system performance.
  • SD: card voltage is driven at a more compatible level hopefully fixing most peoples' MicroSD cards in the battery slot on the Smartbook
  • Minor debug output cleanups
  • Update to BSP 11.05
    • IPU: Triple buffering, lower power on screen blank, virtual screen size fixed (3x height to accomodate the triple buffer)
    • GPU: MMU enabled. New microcode and better resource and power gating.
    • S/PDIF, headphone and some GPIO pad control changes for better system operation
    • CPU frequency operation updated
    • SAHARA module now works
Distribution Changes
  • Linux kernel 2.6.31.14.24 (as above)
  • Overrides and differences to standard Maverick:
    • Override Update Manager prompt to update to Natty (fixes Maverick to Natty transition being totally unsupported and not recommended)
    • Upstart script for Efika MX:
      • Loads audio modules dynamically
      • CPU frequency driver is disabled by default on Smarttop for better performance. Smartbook users will have it enabled for better battery life.
      • eCryptfs loaded on demand
      • Creates a 64MB compressed in-memory swap (ramzswap) drive. This increases CPU performance negligibly, but reduces disk access which is more expensive.
    • Minor settings differences
    • flash-kernel has been replaced by a stripped down "prep-kernel" script which does the same thing, but better (and only for the Efika MX)
  • Installer now no longer creates a swap partition. Please use swapfiles!
  • Installer now aligns partitions to 4MB for better performance
  • OEM configuration is now far more reliable (fixed in Ubuntu upstream, finally)
  • Advanced, new Xorg driver utilizing the C2D API. Supports Triple buffered Xv overlay.
  • Compliance fixes and optimizations for OpenGLES and EGL.
  • Preparation for multimedia codec and FlashPlayer release
Known Issues


  • PulseAudio has some known problems with CPU usage, audio may stutter
  • Xorg driver has a rare issue whereby it's context gets reset, reducing overall performance
  • Boot partition may eventually fill up after installing many kernel updates. Please "dpkg --purge" older kernels once you have verified the new ones are installed and working.
  • SPDIF doesn't seem to be loaded for HDMI Audio-enabled displays, will be fixed in an update to imx-boot-scripts
  • Recent updates to imx-lib (libvpu, libipu, and so on and so forth) may not install correctly through Update Manager due to some file conflicts.

All updated packages in the installer will be made available on the package repository shortly.

Sunday 1 May 2011

Don't Upgrade To Natty Narwhal (11.04), Please...

Many Efika MX users are going to be looking at a little dialog box right now from Update Manager telling them that a new Ubuntu software release is ready to be installed.

At this time upgrading to Natty Narwhal (11.04) may sound exciting, but it is not supported on any Efika MX products. Upgrading will brick your system.

We will be shipping a clean installation image, one for Maverick which disables the prompt along with an update to the package repository that will do this for installed systems, and one for Natty shortly, but we will not be supporting upgrades from Maverick to Natty from an installed system.

To reiterate, please do not tell Update Manager to "Upgrade to Natty Narwhal (11.04)" on Efika MX.

Thursday 3 March 2011

Maverick Installer (March 2011), Package Repository Signed

A new Maverick image has been created as a convenience for users. Changes from the previous image are relatively minor:
  • Includes the 2.6.31.14.20 (2011.03) kernel update which adjusts the DVI monitor support
  • Includes the xserver-xorg-video-imx driver update that fixes the minor graphical corruption in GNOME panels
  • A package source for http://packages.efikamx.info/ has been added by default, along with the correct key for the signed repository for seamless, non-interative updates
  • New version of Firefox (3.6.14) and several security updates released in the last week from Ubuntu upstream

One Annoying Bug

Note, however, there is one regression which has been plaguing us for a very long time. Due to the way the oem-config tool is run from Ubuntu, a race condition can occur that is exacerbated by the accelerated graphics drivers and boot improvements we have made recently. It happens at random, but the net effect is that rather than booting into the oem-configuration system to set up the system with a new user account, define passwords, timezones, keyboard layouts and so on, it will instead start the GDM desktop manager. The system is usable in this state (the username and password are both "oem" by the way) but a fixed user account is both unfriendly and unsecure.

There is only one fix right now: don't log in, but use the power button in the lower right of the GDM screen to Restart the system until oem-configuration runs successfully. The bug has been logged for nearly 6 months, reproduced on other platforms, and duplicated, but finally has a fix. Unfortunately the fix is not for Maverick. We are coordinating with the Ubuntu developers to solve it for Maverick very soon.

Package Repository
    The package repository is also now signed. If you have added the repository to your /etc/apt/sources.list.d directory or /etc/apt/sources.list file already you can do the following to fetch the key:
    wget http://packages.efikamx.info/Repository.key
    sudo apt-key add Repository.key
    rm Repository.key
    Or if you like to use GPG (but don't mind that it gets installed into your GPG keyring)
    gpg --recv-key 67841ED0 --keyserver keyserver.ubuntu.com
    gpg -a --export 67841ED0 | sudo apt-key add -
    Have fun :D

    Tuesday 1 March 2011

    Package Repository

    Users may wish to add this to their APT sources (using the method of your choice):
    deb http://packages.efikamx.info/ maverick main universe
    We have provided all the pertinent kernel, 2D, 3D and settings files shipped in the image for people who do not want to trash their system. The repository and builds are currently unsigned, but we're working on that. There is no deb-src reference as the source is in our github area and we don't feel like we should be duplicating it in a different way.

    A couple of packages are missing (like the debug version of the kernel), but they'll be uploaded once the archive key is in place.

    Pertinent updates from the latest Maverick image:
    • Small kernel fix for DVI monitors. The kernel will no longer attempt to find 1080p or 720p modes on DVI since it's uncommon to connect via DVI to a monitor capable of 720p, and we feel that getting 1366x768 or native resolution is more useful to users. The HDMI vs. DVI monitor switch is determined by the presence of the HDMI OUI in the EDID CEA Extension block, and double checked against the presence of HDMI "basic audio" support.
    • A minor graphics corruption bug in the Xorg driver where tooltips would leave trails on the GNOME panels, or become totally white with compositing enabled.