Size: 7972
Comment:
|
Size: 17778
Comment: Flash-kernel from 3.24 onwards creates bootscripts compatible with both u-boot-sunxi as well as with mainline u-boot
|
Deletions are marked like this. | Additions are marked like this. |
Line 5: | Line 5: |
Support for boards using the Allwinner "sunxi" (sun4i, sun5i, sun7i etc) family of processors, e.g. A10, A13, A20 etc. = Install Using Debian Installer = |
Support for boards using the Allwinner "sunxi" (sun4i, sun5i, sun7i etc) family of processors, e.g. A10, A13, A20, etc. = Install Using Debian-Installer = |
Line 11: | Line 11: |
The following should work out of the box: * Cubietruck Other platforms are still usable but may require more manual intervention to install. |
Debian-installer should work out of the box on all the following sunxi-based systems, but as the developers do not have access to all of them, the installer has only been tested on particular systems. If you have used the installer on one of the untested systems, please submit an installation-report to the Debian project (cf. the [[http://d-i.debian.org/manual/en.armhf/ch05s04.html#submit-bug|Submitting Installation Reports]] chapter in the Debian installation-guide). === Systems tested and confirmed working === ||'''System'''||'''Device Tree Blob'''|| ||Cubietech Cubieboard2||`sun7i-a20-cubieboard2.dtb`|| ||Cubietech Cubietruck (Cubieboard3)||`sun7i-a20-cubietruck.dtb`|| === Systems for which the installer has support code, but on which installation has not been tested yet === ||'''System'''||'''Device Tree Blob'''|| ||Cubietech Cubieboard||`sun4i-a10-cubieboard.dtb`|| ||INet-97F Rev 02||`sun4i-a10-inet97fv2.dtb`|| ||!LinkSprite pcDuino||`sun4i-a10-pcduino.dtb`|| ||Mele A1000||`sun4i-a10-a1000.dtb`|| ||Miniand Hackberry||`sun4i-a10-hackberry.dtb`|| ||Olimex A10-OLinuXino-LIME||`sun4i-a10-olinuxino-lime.dtb`|| needs non-mainline u-boot; manual installation: [[InstallingDebianOn/Allwinner/A10-OLinuXino-LIME]] || ||Olimex A10s-Olinuxino Micro||`sun5i-a10s-olinuxino-micro.dtb`|| ||Olimex A13-Olinuxino||`sun5i-a13-olinuxino.dtb`|| ||Olimex A13-Olinuxino Micro||`sun5i-a13-olinuxino-micro.dtb`|| ||Olimex A20-Olinuxino Micro||`sun7i-a20-olinuxino-micro.dtb`|| ||!PineRiver Mini X-Plus||`sun4i-a10-mini-xplus.dtb`|| The installer can also be used on other sunxi-based systems as long as device-tree support for them is available, but on those systems manual intervention during the installation is required (see [[#Systems not supported Out-of-the-box|below]]). |
Line 19: | Line 38: |
Support for installing to a SATA devices from the network is currently available in the Debian Installer [[http://d-i.debian.org/daily-images/armhf/daily/|daily builds]]. | Support for installing to a SATA device from the network is currently available in the Debian Installer [[http://d-i.debian.org/daily-images/armhf/daily/|daily builds]]. Booting the installed system directly from a SATA disk requires a u-boot with AHCI support (see the corresponding [[#u-boot-ahci-support|uboot information]] below). |
Line 22: | Line 42: |
=== U-boot Bootloader === ''TBD'': This needs a u-boot with AHCI support (WIP, upstream). |
|
Line 164: | Line 180: |
= Mainline kernel and linux-sunxi.org 3.4 kernel = There are two different Linux kernel series for sunxi-based systems: * mainline kernel * linux-sunxi.org kernel Development for sunxi-based systems had originally begun based on an Allwinner android kernel. The [[https://linux-sunxi.org/Linux_Kernel|linux-sunxi.org 3.4 kernel series]] is based on this android kernel and is maintained by a group of volunteers at linux-sunxi.org. The mainline kernel is the "official" Linux kernel series released by Linus Torvalds. Beginning with kernel 3.8, several developers have been working on integrating sunxi support into the mainline kernel. An overview of the progress can be found in the [[https://linux-sunxi.org/Linux_mainlining_effort|linux-sunxi.org]] wiki. Debian uses the same kernel on all supported architectures and therefore supports only the mainline kernel. The disadvantage of the mainline kernel compared to the linux-sunxi.org kernel is that not all sunxi-specific drivers have yet been ported. The mainline kernel contains support for serial console, USB, SATA, Ethernet and MMC/SD, but it has no display and audio drivers for sunxi hardware, i.e. while running a headless server usually works without problems with the mainline kernel, it currently cannot be used for media center applications and the like and as there is no local display support, its use on tablets and other mobile devices is very limited. While the installer always uses the mainline kernel, it is possible to manually install a linux-sunxi.org kernel on a Debian system later on, but in that case you are on your own with regard to kernel updates and bootloader setup. Several of the automatic mechanisms in Debian to smoothly handle kernel updates and bootloader configuration will not work properly with the linux-sunxi.org 3.4 series. = U-boot versions for sunxi-based systems = == Overview == There are several u-boot versions for sunxi-based systems: * the original Allwinner u-boot * u-boot-sunxi * mainline u-boot You can mostly ignore the original Allwinner u-boot for Debian purposes. Compared to u-boot-sunxi it is rather old and relies on proprietary bootloader components ("boot0"/"boot1") to perform basic hardware initialization. About the only use case for it is booting from the NAND flash available on some sunxi-based boards in conjunction with using an android or android-derived kernel version that contains the original Allwinner NAND flash driver for Android. [[https://github.com/linux-sunxi/u-boot-sunxi|U-boot-sunxi]] is derived from the original Allwinner u-boot and is maintained by a group of volunteers at linux-sunxi.org. It contains an SPL component that takes care of the basic hardware initialization and therefore does not need the proprietary boot0/boot1 loaders from Allwinner. It can boot locally from MMC/SD card and over the network by TFTP, but it cannot access the NAND flash. The current version (as of 08/2014) has been updated to the featureset of mainline u-boot v2014.04; it does not have [[#u-boot-psci-support|PSCI]]-, [[#u-boot-ahci-support|AHCI]]- and [[#u-boot-ehci-support|EHCI]]-support. [[http://www.denx.de/wiki/U-Boot/WebHome|Mainline u-boot]] is the official upstream u-boot version. Work is currently in progress to integrate the sunxi-specific parts of u-boot-sunxi into mainline u-boot. When this process is completed, u-boot-sunxi can be replaced by mainline u-boot. As of u-boot release v2014.07, sunxi support in mainline u-boot is limited to the A20 SoC and the Cubietech Cubietruck board, but support for additional SoCs and boards is available in the current development tree and will probably be part of the next mainline u-boot release (v2014.10). An overview of the current status is available in the [[https://linux-sunxi.org/Mainline_U-boot|linux-sunxi.org wiki]]. Mainline u-boot has so-called "custodian trees" for each supported platform, in which platform-specific changes get integrated first before being merged into the central u-boot git repository for the next release. The sunxi custodian tree is available at http://git.denx.de/u-boot-sunxi.git/ and contains the most current sunxi platform support patches for mainline u-boot, including [[#u-boot-psci-support|PSCI]]-, [[#u-boot-ahci-support|AHCI]]- and [[#u-boot-ehci-support|EHCI]]-support for various systems. During the v2014.10 development cycle for mainline u-boot, some rather invasive changes have been introduced. This includes restructuring the build system and introducing a new default environment and a new generic bootcmd handling. The new default environment is not fully compatible with some older bootscripts written for u-boot-sunxi, but flash-kernel >= 3.24 creates bootscripts that work with both the old and the new default environment. If you are using a flash-kernel version older than 3.24 and intend to change from u-boot-sunxi to mainline u-boot, you should update flash-kernel first. == Creating a bootable SD-Card with u-boot == Information about how to install a u-boot image for sunxi-based systems onto an MMC/SD-card can be found at the [[https://linux-sunxi.org/Bootable_SD_card|linux-sunxi.org wiki]]. <<Anchor(u-boot-psci-support)>> == SMP/PSCI support == For SMP support on Allwinner SOCs, i.e. for using more than one CPU core, the mainline Linux kernel requires support for PSCI (Power State Coordination Interface) in u-boot, which is not available in the u-boot-sunxi tree at https://github.com/linux-sunxi/u-boot-sunxi. If you need support for multiple cores (e.g. if you have a system based on the A20 SoC), you have two options: * You can use the "sunxi-next" branch of Hans de Goede's u-boot-sunxi git repository at https://github.com/jwrdegoede/u-boot-sunxi, which is based on a snapshot of u-boot-sunxi from https://github.com/linux-sunxi/u-boot-sunxi, but has patches for PSCI support applied. * If your system is supported by mainline u-boot, you can use the sunxi custodian tree at http://git.denx.de/u-boot-sunxi.git/. <<Anchor(u-boot-ahci-support)>> == AHCI support == AHCI support allows u-boot to boot the kernel, initrd and dtb from a SATA harddisk. U-boot itself has still to be installed on an SD card, but the rest of the system can be put onto a (much faster) harddisk. This feature is (as of 08/2014) available in mainline u-boot for [[http://git.denx.de/?p=u-boot/u-boot-sunxi.git;a=commit;h=a6e50a88d8d3724fc75f1c6959b80a6c7c69cbad|Cubietech Cubieboard 1+2 and Cubietruck]]. For the Cubieboard2 and the Cubietruck you can alternatively also use the "sunxi-mainlining-with-smp-and-ahci-wip" branch of Ian Campbell's git repository at git://gitorious.org/ijc/u-boot.git. It is based on an older u-boot-sunxi snapshot and combines PSCI and AHCI support for these two systems. <<Anchor(u-boot-ehci-support)>> == EHCI support == EHCI support allows u-boot to boot the kernel, initrd and dtb from a USB mass storage device such as a USB memory stick or a USB harddisk. U-boot itself has still to be installed on an SD card, but the rest of the system can be put onto a USB device. This feature is available in mainline u-boot for certain devices, among them: [[http://git.denx.de/?p=u-boot/u-boot-sunxi.git;a=commit;h=fc36a588283838bbaf502ab32b6dcb92aee51ec2|Cubietech Cubietruck]], [[http://git.denx.de/?p=u-boot/u-boot-sunxi.git;a=commit;h=0061e46462da670ba0f6811d407df438692f137d|Cubietech Cubieboard 1+2 and Olimex A13-OLinuXino Micro]]. |
|
Line 170: | Line 294: |
= Board Specific Information = == Cubietech Cubietruck == Wifi requires non-free firmware DebianPkg:firmware-brcm80211 at least version 0.42 plus an additional firmware file which is not yet packaged but can be installed with: {{{ wget -O /lib/firmware/brcm/brcmfmac43362-sdio.txt http://dl.cubieboard.org/public/Cubieboard/benn/firmware/ap6210/nvram_ap6210.txt }}} Message such as {{{brcmfmac: brcmf_fil_cmd_data: Failed err=-23}}} are expected and do not represent a actual problem. |
.
Contents
Introduction
Support for boards using the Allwinner "sunxi" (sun4i, sun5i, sun7i etc) family of processors, e.g. A10, A13, A20, etc.
Install Using Debian-Installer
Supported Platforms
Debian-installer should work out of the box on all the following sunxi-based systems, but as the developers do not have access to all of them, the installer has only been tested on particular systems. If you have used the installer on one of the untested systems, please submit an installation-report to the Debian project (cf. the Submitting Installation Reports chapter in the Debian installation-guide).
Systems tested and confirmed working
System |
Device Tree Blob |
Cubietech Cubieboard2 |
sun7i-a20-cubieboard2.dtb |
Cubietech Cubietruck (Cubieboard3) |
sun7i-a20-cubietruck.dtb |
Systems for which the installer has support code, but on which installation has not been tested yet
System |
Device Tree Blob |
|
Cubietech Cubieboard |
sun4i-a10-cubieboard.dtb |
|
INet-97F Rev 02 |
sun4i-a10-inet97fv2.dtb |
|
LinkSprite pcDuino |
sun4i-a10-pcduino.dtb |
|
Mele A1000 |
sun4i-a10-a1000.dtb |
|
Miniand Hackberry |
sun4i-a10-hackberry.dtb |
|
Olimex A10-OLinuXino-LIME |
sun4i-a10-olinuxino-lime.dtb |
needs non-mainline u-boot; manual installation: ?InstallingDebianOn/Allwinner/A10-OLinuXino-LIME |
Olimex A10s-Olinuxino Micro |
sun5i-a10s-olinuxino-micro.dtb |
|
Olimex A13-Olinuxino |
sun5i-a13-olinuxino.dtb |
|
Olimex A13-Olinuxino Micro |
sun5i-a13-olinuxino-micro.dtb |
|
Olimex A20-Olinuxino Micro |
sun7i-a20-olinuxino-micro.dtb |
|
PineRiver Mini X-Plus |
sun4i-a10-mini-xplus.dtb |
The installer can also be used on other sunxi-based systems as long as device-tree support for them is available, but on those systems manual intervention during the installation is required (see below).
Installing to SATA
Support for installing to a SATA device from the network is currently available in the Debian Installer daily builds. Booting the installed system directly from a SATA disk requires a u-boot with AHCI support (see the corresponding uboot information below).
NOTE: These instructions assume the use of a TFTP server, which should already be installed. However the installer images can also be loaded via other means, e.g. from MMC.
Prepare the TFTP Server
Download the kernel vmlinuz, installer initrd.gz and the appropriate Flattended Device Tree (FDT) Blob (or DTB) for the board and copy them to a path on your TFTP server. e.g.
# mkdir -p /srv/tftp/didaily/armhf/daily/{netboot,device-tree} # cd /srv/tftp/didaily/armhf/daily/ # wget -P netboot http://d-i.debian.org/daily-images/armhf/daily/netboot/vmlinuz http://d-i.debian.org/daily-images/armhf/daily/netboot/initrd.gz # wget -P device-tree http://d-i.debian.org/daily-images/armhf/daily/device-tree/sun7i-a20-cubietruck.dtb
Create a script to boot the installer. e.g. /srv/tftp/didaily/cubietruck:
#setenv diargs <EXTRA ARGUMENTS> setenv fdt_addr 0x43000000 setenv ramdisk_addr_r 0x48000000 setenv kernel_addr_r 0x47000000 setenv dibase /didaily/armhf/daily tftp ${kernel_addr_r} ${dibase}/netboot/vmlinuz setenv bootargs "console=ttyS0,115200 -- ${diargs}" tftp ${fdt_addr} ${dibase}/device-tree/sun7i-a20-cubietruck.dtb fdt addr ${fdt_addr} 0x40000 tftp ${ramdisk_addr_r} ${dibase}/netboot/initrd.gz bootz ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr}
then to make a script which u-boot can run:
# mkimage -T script -A arm -d /srv/tftp/didaily/cubietruck /srv/tftp/didaily/cubietruck.scr
Running the Installer
At the u-boot prompt, boot the images which were just downloaded via the script:
uboot> setenv autoload no uboot> dhcp uboot> tftp ${scriptaddr} /didaily/cubietruck.scr uboot> source ${scriptaddr}
Install in the usual way. Use setenv diargs foo=bar to pass arguments to the installer (e.g. for preseeding)
Booting the Installed System
At the u-boot prompt run the following:
uboot> scsi scan uboot> setenv device scsi uboot> setenv partition 0 uboot> load ${device} ${partition} ${scriptaddr} boot.scr uboot> setenv bootargs console=ttyS0,115200n8 root=/dev/sda2 rootwait uboot> source ${scriptaddr}
This can be made the default with:
uboot> setenv device scsi uboot> setenv partition 0 uboot> setenv bootargs console=ttyS0,115200n8 root=/dev/sda2 rootwait uboot> setenv boot_debian scsi scan\;load \${device} \${partition} \${scriptaddr} boot.scr\;source \${scriptaddr} uboot> setenv bootcmd run boot_debian uboot> saveenv uboot> boot
Systems not supported Out-of-the-box
This is a bit more fiddly.
First find a suitable device tree blob (DTB) for your board. You might find one in the daily builds, or upstream. Otherwise you might need to write one yourself (or find someone who is willing to do it for you).
Once you have a suitable DTB you can populate the TFTP server with the vmlinuz, initrd.gz and the DTB and create a suitable installer boot script by modifying the one above.
Boot the installer and preceed as usual. Towards the end you will encounter:
┌─────────────────┤ [!] Continue without boot loader ├──────────────────┐ │ │ │ No boot loader installed │ │ No boot loader has been installed, either because you chose not to or │ │ because your specific architecture doesn't support a boot loader yet. │ │ │ │ You will need to boot manually with the /vmlinuz kernel on partition │ │ /dev/sda1 and root=/dev/sda2 passed as a kernel argument. │ │ │ │ <Continue> │ │ │ └───────────────────────────────────────────────────────────────────────┘
This is expected. Make a note of the partitions and continue. Once the installer has completed the you need to boot the resulting system but using the DTB from TFTP in order to fix things up:
uboot> setenv fdt_addr 0x43000000 uboot> setenv ramdisk_addr_r 0x48000000 uboot> setenv kernel_addr_r 0x47000000 uboot> setenv dibase /didaily/armhf/daily uboot> setenv autoload no;dhcp uboot> tftp ${fdt_addr} ${dibase}/device-tree/sun7i-a20-cubieboard2.dtb uboot> fdt addr ${fdt_addr} 0x40000 uboot> scsi scan uboot> load scsi 0 ${kernel_addr_r} /vmlinuz uboot> load scsi 0 ${ramdisk_addr_r} /initrd.img uboot> setenv bootargs console=ttyS0,115200n8 root=/dev/sda2 rootwait uboot> bootz ${kernel_addr_r} ${ramdisk_addr_r}:${filesize} ${fdt_addr}
This should now boot you to a login prompt.
Login and install flash-kernel and the u-boot-tools:
# apt-get install flash-kernel u-boot-tools
Now you need to create a flash-kernel database entry. Start by copying the entries for Cubietech Cubietruck from /usr/share/flash-kernel/db/all.db to /etc/flash-kernel/db. Now you need to modify the Machine and DTB-Id fields.
For the Machine use the output of:
# cat /proc/device-tree/model ; echo
For DTB-Id if you used a DTB from the daily builds then use that name for DTB-Id. If you got the DTB from somewhere else then install it as /boot/dtb-$(uname -r) and omit the DTB-Id field. In this case you will need to take care around kernel upgrades.
Now run flash-kernel and reboot. At this point you should be able to boot using the process from Booting the Installed System above. If this fails the boot again using the manual method described above and try again e.g. fix your /etc/flash-kernel/db.
Once you have it working run reportbug flash-kernel and report a wishlist bug to support your platform. Be sure to include the contents of /etc/flash-kernel/db and say where the DTB came from.
Installing to MMC
Support for the sunxi MMC controller will be in upstream Linux v3.16, however it has been backported to the v3.15 Debian kernel. However at the time of writing Debian Installer is using v3.14 and hence cannot install to MMC on this platform.
TBD: Describe installation to MMC once D-I switches to v3.15.
Mainline kernel and linux-sunxi.org 3.4 kernel
There are two different Linux kernel series for sunxi-based systems:
- mainline kernel
- linux-sunxi.org kernel
Development for sunxi-based systems had originally begun based on an Allwinner android kernel. The linux-sunxi.org 3.4 kernel series is based on this android kernel and is maintained by a group of volunteers at linux-sunxi.org.
The mainline kernel is the "official" Linux kernel series released by Linus Torvalds. Beginning with kernel 3.8, several developers have been working on integrating sunxi support into the mainline kernel. An overview of the progress can be found in the linux-sunxi.org wiki.
Debian uses the same kernel on all supported architectures and therefore supports only the mainline kernel. The disadvantage of the mainline kernel compared to the linux-sunxi.org kernel is that not all sunxi-specific drivers have yet been ported. The mainline kernel contains support for serial console, USB, SATA, Ethernet and MMC/SD, but it has no display and audio drivers for sunxi hardware, i.e. while running a headless server usually works without problems with the mainline kernel, it currently cannot be used for media center applications and the like and as there is no local display support, its use on tablets and other mobile devices is very limited.
While the installer always uses the mainline kernel, it is possible to manually install a linux-sunxi.org kernel on a Debian system later on, but in that case you are on your own with regard to kernel updates and bootloader setup. Several of the automatic mechanisms in Debian to smoothly handle kernel updates and bootloader configuration will not work properly with the linux-sunxi.org 3.4 series.
U-boot versions for sunxi-based systems
Overview
There are several u-boot versions for sunxi-based systems:
- the original Allwinner u-boot
- u-boot-sunxi
- mainline u-boot
You can mostly ignore the original Allwinner u-boot for Debian purposes. Compared to u-boot-sunxi it is rather old and relies on proprietary bootloader components ("boot0"/"boot1") to perform basic hardware initialization. About the only use case for it is booting from the NAND flash available on some sunxi-based boards in conjunction with using an android or android-derived kernel version that contains the original Allwinner NAND flash driver for Android.
U-boot-sunxi is derived from the original Allwinner u-boot and is maintained by a group of volunteers at linux-sunxi.org. It contains an SPL component that takes care of the basic hardware initialization and therefore does not need the proprietary boot0/boot1 loaders from Allwinner. It can boot locally from MMC/SD card and over the network by TFTP, but it cannot access the NAND flash. The current version (as of 08/2014) has been updated to the featureset of mainline u-boot v2014.04; it does not have PSCI-, AHCI- and EHCI-support.
Mainline u-boot is the official upstream u-boot version. Work is currently in progress to integrate the sunxi-specific parts of u-boot-sunxi into mainline u-boot. When this process is completed, u-boot-sunxi can be replaced by mainline u-boot. As of u-boot release v2014.07, sunxi support in mainline u-boot is limited to the A20 SoC and the Cubietech Cubietruck board, but support for additional ?SoCs and boards is available in the current development tree and will probably be part of the next mainline u-boot release (v2014.10). An overview of the current status is available in the linux-sunxi.org wiki. Mainline u-boot has so-called "custodian trees" for each supported platform, in which platform-specific changes get integrated first before being merged into the central u-boot git repository for the next release. The sunxi custodian tree is available at http://git.denx.de/u-boot-sunxi.git/ and contains the most current sunxi platform support patches for mainline u-boot, including PSCI-, AHCI- and EHCI-support for various systems.
During the v2014.10 development cycle for mainline u-boot, some rather invasive changes have been introduced. This includes restructuring the build system and introducing a new default environment and a new generic bootcmd handling. The new default environment is not fully compatible with some older bootscripts written for u-boot-sunxi, but flash-kernel >= 3.24 creates bootscripts that work with both the old and the new default environment. If you are using a flash-kernel version older than 3.24 and intend to change from u-boot-sunxi to mainline u-boot, you should update flash-kernel first.
Creating a bootable SD-Card with u-boot
Information about how to install a u-boot image for sunxi-based systems onto an MMC/SD-card can be found at the linux-sunxi.org wiki.
SMP/PSCI support
For SMP support on Allwinner SOCs, i.e. for using more than one CPU core, the mainline Linux kernel requires support for PSCI (Power State Coordination Interface) in u-boot, which is not available in the u-boot-sunxi tree at https://github.com/linux-sunxi/u-boot-sunxi. If you need support for multiple cores (e.g. if you have a system based on the A20 SoC), you have two options:
You can use the "sunxi-next" branch of Hans de Goede's u-boot-sunxi git repository at https://github.com/jwrdegoede/u-boot-sunxi, which is based on a snapshot of u-boot-sunxi from https://github.com/linux-sunxi/u-boot-sunxi, but has patches for PSCI support applied.
If your system is supported by mainline u-boot, you can use the sunxi custodian tree at http://git.denx.de/u-boot-sunxi.git/.
AHCI support
AHCI support allows u-boot to boot the kernel, initrd and dtb from a SATA harddisk. U-boot itself has still to be installed on an SD card, but the rest of the system can be put onto a (much faster) harddisk. This feature is (as of 08/2014) available in mainline u-boot for Cubietech Cubieboard 1+2 and Cubietruck.
For the Cubieboard2 and the Cubietruck you can alternatively also use the "sunxi-mainlining-with-smp-and-ahci-wip" branch of Ian Campbell's git repository at git://gitorious.org/ijc/u-boot.git. It is based on an older u-boot-sunxi snapshot and combines PSCI and AHCI support for these two systems.
EHCI support
EHCI support allows u-boot to boot the kernel, initrd and dtb from a USB mass storage device such as a USB memory stick or a USB harddisk. U-boot itself has still to be installed on an SD card, but the rest of the system can be put onto a USB device. This feature is available in mainline u-boot for certain devices, among them: Cubietech Cubietruck, Cubietech Cubieboard 1+2 and Olimex A13-OLinuXino Micro.
Install Using SD Card Images
See Linux sunxi projects Bootable OS Images page.
NOTE: Obviously YMMV with these images.
Board Specific Information
Cubietech Cubietruck
Wifi requires non-free firmware firmware-brcm80211 at least version 0.42 plus an additional firmware file which is not yet packaged but can be installed with:
wget -O /lib/firmware/brcm/brcmfmac43362-sdio.txt http://dl.cubieboard.org/public/Cubieboard/benn/firmware/ap6210/nvram_ap6210.txt
Message such as brcmfmac: brcmf_fil_cmd_data: Failed err=-23 are expected and do not represent a actual problem.