My kernels for Allwinner A10 and A20-based devices

Compared to base defconfig or some other kernels you may find around, these will always have support for:

  • all USB Ethernet NICs, USB 3G modems and USB webcams, USB DisplayLink VGA
  • most USB soundcards, USB serial converters and USB DVB receivers
  • IPv6 and Netfilter (iptables/ip6tables)
  • Bluetooth
  • ham radio networking
  • BATMAN Mesh networking
  • “TEMPer” USB HID temperature sensor

Note: if you find this work useful, you're welcome to support the development and hosting by making a donation; a detailed listing of donations received so far is publicly available.



Note that “Server” in the name only related to the most common usage of this kernel, don't be surprised that this kernel also includes a lot of “desktop” features – like support for webcams, soundcards, joysticks etc. This is targetted for the case where someone will use this kernel with an external USB graphics adapter, such as DisplayLink.




Here we assume that your Allwinner-based device is already booted up and you have SSH or direct console access.

Step 1: Modules

Copy linux-image-*.deb to your target device and install it there:

dpkg -i linux-image-*.deb

If you do not use a Debian-based distribution or can't boot your device into a working state to use dpkg, you will need to unpack the .deb file manually and place the contents of lib/modules/ from inside it into the same location in your root FS.

Step 2: The kernel itself

Installing uImage (the kernel image itself) is not currently automated via the .deb package, so you need to copy it manually.

First, ensure your /boot/ partition is mounted: check what files you have in /boot/. There should be at least some, including the previous version of uImage. If your /boot/ is empty, try mounting it with mount /dev/mmcblk0p1 /boot and then check again.

Until you have verified that the new kernel boots fine, keeping the previous uImage is generally a good idea, just rename it into something different (e.g. uImage.old):

cp /boot/uImage /boot/uImage.old

After that, copy uImage-* into /boot/, naming it simply uImage:

cp uImage-* /boot/uImage

In case your new kernel doesn't boot, you can simply insert your the SD card into some other device, mount the boot partition and restore the previous uImage.

a10/kernel.txt · Last modified: 2015-02-26 21:53 UTC by rm