Panda How to kernel 3 1 rcx
Introduction
Continuing Happy 20th Birthday Greetings to Linux!! The merge window for 3.1 is over and the 3.1-rc1 kernel has been released. Lots of work on the omap platforms and on pandaboard. Let's see what -rc1 has brought. (This is a still a WIP though, so beware of taking any of this on face value)
rc1
There is still an issue with the setting up of the wl12xx:
[ 0.181457] error setting wl12xx data
The extremely simple workaround available for 3.0, moved to twl_common.c, doesn't produce the working wlan as in 3.0.
Switching to HDMI as worked in 3.0 does not work in 3.1-rc1, but switching back does work.
More to come as these issue are investigated.
DVI Patch
This patch is necessary to make 720p resolution available.
0003-omap4-pandaboard-dvi720p.patch
Apply it like so: (from inside the kernel sources directory)
patch -p1 < 0001-omap4-pandaboard-dvi720p.patch
Then use either of the following configs
make ARCH=arm omap2plus_defconfig or make ARCH=arm panda_dvi_defconfig
Compile as above.
I2C Patch
i2c character device driver
Ever since 2.6.38, the i2c character device driver support from user space has been broken for OMAP44xx. * A fix has been submitted for the linux-omap-2.6 branch, but it may be a while till it gets into an -rcx. See http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git;a=commit;h=39fe1a6fafe1e85c183379af9f3ceda7cd24bd65 for the commit. * A quick fix for this issue is available File:Omap44xx-i2c-fix.patch
Apply it like so: (from inside the kernel sources directory)
patch -p1 < Omap44xx-i2c-fix.patch
Compile as above.
Building
Building 3.1-rc1 is basically the same as How to build 2.6.38 kernel, but of course you need the 3.1-rc1 sources. The omap2plus_defconfig works and illustrates the wl12xx issue, with or without a patch to twl_common.c. config.3.1-rc1.1 works with the dvi patch and i2c patch.
Testing
fbtest on DVI Port
After booting run fbtest to see a nice test pattern from the dvi port.
Switching primary display to the HDMI port which doesn't work any more
# Enable HDMI echo "1" > /sys/devices/platform/omapdss/display1/enabled # Disable overlay0 (an overlay must be disabled before changing its properties) echo "0" > /sys/devices/platform/omapdss/overlay0/enabled # Set the manager of overlay0 to display1 which is HDMI echo "tv" > /sys/devices/platform/omapdss/overlay0/manager # Enable overlay0 echo "1" > /sys/devices/platform/omapdss/overlay0/enabled
And content on overlay 0 of primary lcd would be transferred to HDMI. It works similarly for all other overlay's.
Switching primary display to the DVI port which does switch back to DVI from a non working HDMI
See: http://omappedia.org/wiki/Bootargs_for_enabling_display for lots of useful info on the display subsystem. Be aware that the display, manager and overlay numbers don't match the panda configuration.
# Disable HDMI echo "0" > /sys/devices/platform/omapdss/display1/enabled # Disable overlay0 (an overlay must be disabled before changing its properties) echo "0" > /sys/devices/platform/omapdss/overlay0/enabled # Set the manager of overlay0 to display0 which is DVI echo "lcd2" > /sys/devices/platform/omapdss/overlay0/manager # Enable overlay0 echo "1" > /sys/devices/platform/omapdss/overlay0/enabled
The above commands should be run from the serial console and the cable should be in the destination port before running the commands.
fbtest on HDMI Port
Once a fix is available, run fbtest to see a nice test pattern from the HDMI port.
i2cdetect
You can run i2cdetect and the results should look like this:
# i2cdetect -y -r 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- UU UU UU UU -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --