After much mucking around, and nearly bricking my GFN in the process, I've got a working GFN running a 3.4 kernel.
It was not a clean process. To start, I had to tweak the LDFLAGS setting in /etc/makepkg.conf
- Code: Select all
#LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro"
LDFLAGS="-O1,--sort-common,--as-needed,-z,relro"
Next I had to clean up some patches to account for changes in the src, as well as drop some patches. Most notably I dumped the AUFS 3 patches out of the process as they were breaking the build. Once that was done I could complete a kernel build without issue, huzzah!
Too bad it wouldn't boot. I got nailed by the Kirkwood/u-boot/3.2 bug. Fortunately someone over at Doozan's forums has been experimenting on this front and has a patched up modern u-boot that deals with the issue.
http://forum.doozan.com/read.php?3,6965Once I upgraded, I thought I bricked my GFN, no boot, no netconsole. Turns out I hadn't completely destroyed it, but it'd only boot off USB, the boot env was gone. More pain later I finally got a working env sorted and successfully booted into 3.4!
http://pastebin.ca/2156370 - u-boot env
http://pastebin.ca/2156372 - dmesg showing 3.4
So far, so good! 3.4 nets me an improved udlfb module that supports the xorg damage extension. When enabled this results in a dramatic improvement in perf for my USB displaylink adapter. Unfortunately, ALARM's xorg build does not have the patch for fbdev applied to allow it to support this feature... so I punted and built libdlo and xorg-displaylink from AUR instead. Note, I had to set LDFLAGS back to stock for these to work.
https://aur.archlinux.org/packages.php?ID=26552 - just add 'arm' and build and install
http://aur.archlinux.org/packages.php?ID=33110 - grab the submitted updated PKGBUILD from the thread rather than the one in AUR, add 'arm', build and install
To enable the displaylink driver, you need a config stub file in /etc/X11/xorg.conf.d ala:
- Code: Select all
Section "Device"
Identifier "dl"
Driver "displaylink"
Option "ReportDamage" "true"
Option "fbdev" "/dev/fb0"
EndSection
This assumes you've got a working displaylink device. If you have a bastard child unit that shows up as a mass storage device, toss this into your udev rules dir:
- Code: Select all
ATTR{idVendor}=="17e9", ATTR{bConfigurationValue}=="2", RUN+="/usr/bin/dlconfig %p"
/usr/bin/dlconfig should look like:
- Code: Select all
#! /bin/bash
if [ -e /sys$1/bConfigurationValue ]; then
/sbin/modprobe udlfb console=1 fb_defio=0 shadow=0
echo 1 > /sys$1/bConfigurationValue
/sbin/modprobe fbcon
fi;
Make sure fb_defio is set to 0 if using the displaylink driver in xorg. If not, set it to 1 and use fbdev instead.
With all that, xfce wasn't happy, it'd load but the background never got set. Any menus wouldn't show up, windows tried clustering in the upper right corner, it just didn't play nice. Dropping down to twm and suddenly I'm in GFN + USB Video nirvana. The mouse pointer is glassy smooth instead of jerky, firing up video intensive apps like Paintown the screen doesn't loose sync randomly, and the update rate is MUCH higher. For giggles I went so far as to install mplayer and watch various video streams online, including an 800kbps techno feed and the machine managed to pull it off. It wasn't perfect, but it was usable. 640x480 seems to be the limit for 30fps activity, any larger a window and USB2's limitations start impacting you.
Unfortunately, the other reason I wanted to test 3.4 has gone missing, zram is no longer present nor do I see where to configure it in the kernel conf so I'll have to chase that down.
Known issues so far:
- The new uboot hangs scanning the USB bus for mass storage devices if my Kensington K33926 dock is plugged in at power up. The work around is to leave it unplugged until u-boot moves on to autobooting.
- Reboots don't, the system halts correctly, shuts down the USB port, turns the status LED off, and then just sits there. I need to get a serial cable going so I can take a closer look at what's going on to sort this one.
- 3.4 + displaylink == unhappy gtk apps, xfce in particular just doesn't like it.