apc-8750-linux
Kernel configuration and build instructions for Linux on the Via APC 8750.
I assume you've installed Raspbian and wish to configure the kernel in order to add drivers, modules, etc.
Raspbian images and instructions can be found at http://www.raspbian.org/ApricotImages
My work is largely derived from that of Mike Thompson and Clément "Royal Panda" from the APC forums. You can find a lot of information in the thread there: http://forum.apc.io/discussion/31/raspbian-port/
Linux kernel
Grab the kernel by cloning the APC 8750 repository from VIA:
$ git clone git://github.com/apc-io/apc-8750.git
The repository as-is is set up for cross-compiling. If you wish to compile on
the APC itself (should be about 4 hours for a complete kernel and modules) then
remove the CROSS_COMPILE
setting from the Makefile in the kernel root.
I'll assume you have some patience and are compiling this on the APC like I did.
Before compiling, I applied the patches from the Raspbian ApricotImages web page, you can download those here: apc_apricot_r3_kernel.patch
Don't worry about patching the kernel config, throw away the .config
file and
use the one in this repository.
To build the kernel
$ make oldconfig
$ make ubin
Then install the new kernel, making copies of the old modules in case you need to restore them (I'm assuming you're running Raspbian off the SD card, so you can access the card to fix things up.)
$ sudo mv /lib/modules/2.6.32.9-default /lib/modules/2.6.32.9-default.orig
$ sudo make modules_install
$ sudo mv /boot/uzImage.bin /boot/uzImage.bin.old
$ sudo cp uzImage.bin /boot
Finally, it's likely your display will get screwed in auto detection. If that's
the case, use the fw_setenv
command before rebooting to set the video mode.
Here's what I did for 1024x768 on HDMI out. You'll want to read this page and
figure out what you need: http://forum.apc.io/discussion/178/apc-video-modes
$ sudo fw_setenv wmt.display.param 4:6:1:1024:768:60
(For what it's worth, my APC was happy displaying resolutions up to 1440x900, but there's a speed impact of doing that.)
Notes about the kernel config
-
IPv4 Netfilter is disabled. Via's engineers evidently had their source on a case-insensitive operating system at some point, so the
ip_ECN
andip_ecn
files in netfilter have clashed. I've not yet located the originals to rectify this error. -
By default
CONFIG_ANDROID_PARANOID_NETWORK
was set, I've turned this off. Otherwise most non-root network services won't run.
Getting Ralink RT5370 wifi chipset to work
This is one of the recommended dongles from APC, but it won't work with the drivers supplied in the kernel, and the vendor supplied drivers don't compile against APC's ancient kernel.
To make it work, you must do two things. Ensure the firmware-ralink package is installed, and then download and compile the drivers from the compat-drivers project: https://backports.wiki.kernel.org/
I used compat-drivers-3.8-1
, referenced from
https://backports.wiki.kernel.org/index.php/Releases
Ensure you've made symlinks to the root of your kernel source tree to both
/lib/modules/2.6.32.9-default/build
and
/lib/modules/2.6.32.9-default/source
.
Unpack the compat-drivers source and pick out the rt2x00
drivers
$ ./scripts/driver-select rt2x00
$ make && sudo make install
When installed, the modules will use the 'updates' directory and leave your old
modules intact. Reboot (or run make unload
to get rid of the old modules),
and off you go.
Finally, ensure you've installed the right packages (assuming you're using WPA, because, who wouldn't?)
$ sudo apt-get install wpasupplicant wireless-tools
And add a stanza to /etc/network/interfaces
to configure the dongle:
auto wlan0
iface wlan0 inet dhcp
wpa-ssid <YOUR-NETWORK-ESSID>
wpa-psk <YOUR-NETWORK-PASSPHRASE>