Cubieboard / Cubietruck Debian SD image

My goal is to build and maintain headless stable base to deploy various services (web, mail, samba, …). The images are compiled from scratch and sometimes patched if necessary. Images are suitable for any microSD card larger than 1G and can be installed to NAND or SATA. First boot takes longer time (around 2m) than usual (25s). It regenerates SSH keys, sets your MAC address, resizes partition to fit your SD card and downloads the package lists (apt-get update). It will reboot one time automatically on first boot to take effect for changes.

  • Debian Wheezy, Jessie or Ubuntu Trusty based
  • Kernel 3.4.105 with broad hardware support, headers and some firmware included
  • Build ready – possible to compile external modules. Successfully tested with this wireless adapter
  • Ethernet adapter with DHCP and SSH server ready on default port (22) with regenerated keys @ first boot
  • Wireless adapter with DHCP ready but disabled (/etc/network/interfaces, WPA2: normal connect or AP mode)
  • Enabled audio devices: analog, HDMI, spdif and I2S
  • Advanced IR driver with RAW RX and TX (disabled by default / you need an IR diode)
  • PWM ready on pin PB2 (Cubietruck)
  • Bluetooth ready (working with on-board device / disabled by default – insserv brcm40183-patch)
  • I2C ready and tested with small 16×2 LCD. Basic i2c tools included.
  • SPI ready and tested with ILI9341 based 2.4″ TFT LCD display.
  • Drivers for small TFT LCD display modules.
  • Clustering / stacking
  • USB redirector – for sharing USB over TCP/IP (disabled by default /etc/init.d/rc.usbsrvd)
  • root file-system auto resize
  • Graphics desktop environment upgrade ready
  • NAND, SATA and USB install script included (/root)
  • Disabled LED blinking, logo, boot messages (/etc/init.d/, kernel.config, kernel parameters in uEnv.txt)
  • Total memory is 2000Mb (disabled all memory reservations for GPU)
  • Serial console enabled
  • Enabled automatic security updating
  • Login script shows Cubietruck / Cubieboard 2 auto MOTD with current CPU temp, hard drive temp, ambient temp from Temper if exits & actual free memory
  • MAC address from chip ID, manual optional
  • root password=1234 and expires at first login
  • sunxi-tools included: fex2bin, bin2fex, nand-part
  • Performance tweaks:
    • /tmp & /log = RAM, ramlog app saves logs to disk daily and on shut-down (ramlog is replaced with busybox-syslogd on Jessie)
    • IO scheduler NOOP for SD, CFQ for sda (mechanical hard drive). (change in /etc/sysfs.conf)
    • journal data writeback enabled. (/etc/fstab)
    • commit=600 to flush data to the disk every 10 minutes (/etc/fstab)
    • optimized CPU frequency scaling 480-1010Mhz with interactive governor (/etc/init.d/cpufrequtils)
    • eth0 interrupts are using dedicated core
  • Known bugs or limitations
    • Wireless driver is broken in last image. Fix: download and install updated kernel – alter boot scripts because it has different name
    • Some drivers compile successfully some displays fatal error: mach/sys_config.h: No such file or directory. Currently no idea how to fix this.
    • On board Bluetooth firmware loading sometime fail. Reboot helps.
    • NAND install script sometime fails. Dirty but working workaround – installing Lubuntu to NAND with Phoenix tools and run the nand-install again.
    • Gigabit ethernet transfer rate is around 50% of its theoretical max rate (hardware or firmware issue)
    • Shutdown, reboot and battery troubles regarding poor AXP chip driver (fixed in mainline kernel).
    • Due to bad PCB placement, there is some crosstalk between Wifi and VGA in certain videomodes.
    • No serial console under Jessie & Ubuntu
    • No LIRC under Ubuntu
Cubieboard 2

Debian Wheezy is recommended download. It’s rock stable, most tested and supported. Jessie and Ubuntu Trusty is for people who wants to go with the flow. Both should be fully operational but not recommended for beginners and/or services deployment. Your donations keeps this development alive. Thank you!

  • Debian Wheezy, Jessie or Ubuntu Trusty based
  • Kernel 3.19.0 RC5 with broad hardware support, headers and some firmware included
  • Build ready – possible to compile external modules. Successfully tested with this wireless adapter
  • Ethernet adapter with DHCP and SSH server ready on default port (22) with regenerated keys @ first boot
  • Bluetooth ready
  • root file-system auto resize
  • SATA and USB install script included (/root)
  • Total memory is 2000Mb
  • Serial console enabled
  • Enabled automatic security updating
  • Login script shows Cubietruck / Cubieboard 2 auto MOTD with hard drive temp, ambient temp from Temper if exits & actual free memory
  • MAC address from chip ID, manual optional
  • root password=1234 and expires at first login
  • Performance tweaks:
    • /tmp & /log = RAM, ramlog app saves logs to disk daily and on shut-down (ramlog is replaced with busybox-syslogd on Jessie)
    • IO scheduler NOOP for SD, CFQ for sda (mechanical hard drive). (change in /etc/sysfs.conf)
    • journal data writeback enabled. (/etc/fstab)
    • commit=600 to flush data to the disk every 10 minutes (/etc/fstab)
    • eth0 interrupts are using dedicated core
  • Known bugs or limitations
    • Some drivers compile successfully some displays fatal error: mach/sys_config.h: No such file or directory. Currently no idea how to fix this.
    • Mainline kernel have only basic functionality
    • No NAND driver.
Cubieboard 2

Debian Wheezy is recommended download. It’s rock stable, most tested and supported. Jessie and Ubuntu Trusty is for people who wants to go with the flow. Both should be fully operational but not recommended for beginners and/or services deployment. Your donations keeps this development alive. Thank you!

Unzipped images can be written with supplied imagewriter.exe on Windows XP/2003/Win7 or with DD command in Linux/Mac (dd bs=1M if=filename.raw of=sd card device). Kernel package should be uncompressed under root user to / Change boot parameter if your old kernel has different name.


Kernel 3.4.106 .deb – compiled 17.2.2015 Kernel 3.19.0 RC5 .deb – compiled 23.1.2015 Build script Report issue

Mainline kernel is possible to unpack over or use side by side with old kernel. You only need to adjust boot scripts and reboot.

v3.2 / 24.1.2015
v3.1 / 16.1.2015
v3.0 / 29.12.2014
v2.9 / 3.12.2014
v2.8 / 17.10.2014
v2.7 / 1.10.2014
v2.6 / 22.8.2014
v2.5 / 2.8.2014
v2.4 / 11.7.2014
v2.3 / 2.7.2014
v2.2 / 26.6.2014
v2.1 / 13.6.2014
v2.0 / 2.6.2014
v1.9 / 27.4.2014
v1.8 / 27.3.2014
v1.7 / 26.2.2014
v1.6 / 9.2.2014
v1.52 / 7.2.2014
v1.5 / 22.1.2014
v1.4 / 12.1.2014
v1.3 / 3.1.2014
v1.23 / 1.1.2014
v1.2 / 26.12.2013
v1.0 / 24.12.2013

Cross compile environment

If you want to compile your own image or kernel for Cubieboards you will need to set-up development environment. Since there are troubles regarding the proper compiler I suggest you to use proven configuration. This image / kernel was successfully compiled on Ubuntu 14.04 LTS x64 – you are going to need server image and 15-20G of space. Install only basic system and get build script from Github.

  1. Download Ubuntu 14.04 LTS x64
  2. Create Virtual machine with 15-20G
  3. Install minimal system and execute the following code
sudo apt-get -y install git
cd ~
git clone
chmod +x ./Cubietruck-Debian/
cd ./Cubietruck-Debian

Edit configuration at the beginning of the script and run it afterwards. The compilation takes 30-60 minutes (on average desktop PC) and you might be asked for some input. Your will find compiled images in the directory defined in variable DEST/output. In case of success you will find zip compressed images for VGA/HDMI and kernel with modules and headers.

Optional customization

keyboard: apt-get install console-setup console-data && dpkg-reconfigure keyboard-configuration
system language: dpkg-reconfigure locales
time zone: dpkg-reconfigure tzdata
screen resolution: edit /boot/uEnv.txt and change it/reboot.


If you want to try a semi simple desktop environment:

apt-get -y install xorg
apt-get -y install lightdm
apt-get -y install xfce4 xfce4-goodies tango-icon-theme gnome-icon-theme

Check this site for others.


You can post questions below or in the project topic on the Cubieforums.

904 thoughts on “Cubieboard / Cubietruck Debian SD image

  1. Hi
    When I enable csi1 in debian Wheezy for cubietruck (3.4.105) the following errors occur

    [CSI]Welcome to CSI driver
    [CSI]registered sub device,input_num = 0
    [CSI]V4L2 device registered as video1
    [ccu-err] clk_enable: invalid handle
    [CSI]sensor initial success when csi open!
    [ccu-err] clk_disable: invalid handle

    how can i fix it?

    thanks in advance

  2. Dear Igor,

    is it possible to add ftdi drivers for usb2serial support? If yes, how to do this?
    i was not able to add the right drivers until now.

    Thanks in advance.

      1. Dear Igor,
        thanks, for your prompt reply.
        I just try to compile an image.

        Could you please add it also to the Ubuntu images with one of your next releases.

  3. Hi,

    i used the 2nd image and can’t get cifs working
    “mount error: cifs filesystem not supported by the system”

    Is their any chance to fix it?

  4. Help!
    I loaded the debian wheezy to the SD card, run the nand-sata-Script. Run it after reboot again.
    But as it could be, it doesnt boot from nand after removing SD card.
    Even if the two Partitions were created and some files are in there.
    Did I forgot something so far?

    The next Problem is that none of my PCs (Xubuntu,Win7,Win8) can flash with Phoenix tools.
    Win8 & Win7 ignore the truck, xubuntu cant bring up the suit.

    Any idea what i can do to get anything to run. Can I somehow check if the files in nand are correct? What does the phoenix tools do, so that after flashing it will (hopefully) work?

    1. Steven recently found a solution for fixing NAND boot without a need for Phoenix tools but I haven’t tested yet. This is also the answer what those tools do :) + partitioning and installing the system. Why PT don’t see your CT – I assume you read the manual? – hard to say.

  5. Hi, Igor
    i ‘m using trusty & kernel 105 & have a problem . sd card not resize(expand) on first boot and when i try to resize it , it ‘s not work ! my cmd is : resize2fs /dev/mmcblk0p1
    another question is can i remove old kernel & boot files after add new kernel (dpkg -i *.deb) ? how ?

    thanks for answer,

  6. Hi Igor.

    Here in Brazil, working with IP telephony platform Asterisk.

    Today I work with Raspberry PI, use the image available in project site.

    I’m auditioning cubiboard 3, I downloaded the version of your img.

    I’m installing Asterisk 11 + Freepbx, I wonder if the possibility of generating a ja img with “Debian, Asterisk and Freepbx”?

    Leomar Soares

    1. I’m just about to try one of these great images on my to new Cubietruck to run FreeSwitch and FusionPBX in high availability mode using postgres multimaster replication. Keep your eye on the forums on that site, there’e nothing there yet but I will post how I get along.

  7. I built the kernel with necessary options. Now I have

    How can I make uImage file from it?

    1. I don’t use uImage kernel type anymore – it’s possible to convert it but probably that’s not the case here? If you use my image you only need to install all those .deb files with: dpkg -i *.deb as root user. Than you need to alter boot.scr (change the version number or a name of kernel file) by editing boot.cmd and converting it to .scr with: mkimage -C none -A arm -T script -d boot.cmd boot.scr (they are located in /boot). Sorry because this part is not automated yet.

      1. I’m sorry, forgot to mention. I’m running on nand.
        I guess I should use debootstrap and chroot, install those deb packages and create uImage with mkimage.
        Any simpler way?

        1. Install deb packages (you can download my build above) on your live system than you need to convert /boot/vmlinuz* to uImage & copy this file to the first nand partition. I think this is all and reboot. Backup previous kernel before that you will be able to restore if this fails.

  8. I would like to add a RTL8192DU wireless driver when compile the image. What is the best way to do it? Thank you for your help.

    1. You mean that it will become a permanent part of kernel tree? Does this driver works well if you compile the usual way?

        1. Yes and no. First try compiling the driver with supplied headers which are in /usr/src/ … it’s better to avoid kernel compilation if not absolutely necessary.

  9. installed wheezy with your 109.rc5 image. then i followed your suggestion on installing a desktop (xfce4). it starts for login, but the usb connected terminal and mouse does not work (no effect). rdp works, so it may be just a driver for the keyboard not installed in the kernel, given that your image is for headless.
    any hints what i should install?
    thank you!

    1. I have no info that desktop already works on mainline kernel. Currently it’s useful only for server deployments.

  10. thank you for the swift answer. i checked the bash file and saw that the sda1 is hard wired several places. unfortunately, i am not an experienced bash writer and i dare not improve your code. it would be useful if i could have more than one partition working with different installations (i.e. different sd cards).
    thank you !

    (ps. i tried to donate to you, but having no paypal account and paypal insists that i open one and does not just accept my credit card, i did not succeed. do you have an euro account with a bank which you could inform me of by email?)

    1. Yes, I will add this feature once but not right away since it’s not a high priority issue. Thanks, I will send you the data.

  11. i tried to use the script to move the data to a partition other than sda1. i saw that the script fixes the target as sda1. i changed this, but after the move (which seemed to work), the system was not bootable. what went wrong? why did you not use the list of available devices to select from, as the text suggests?
    thank you for your help and for the good debian!

    1. The script alters boot script (boot.cmd – alter + convert to boot.scr) on SD card. Check that. Probably it’s pointing to sda1. I know script is limited – once I will add / fix it but for now it’s the best we have.

  12. Hi Igor.
    Thanks for your great work.
    I am testing the Kernel 3.19.0 RC5 (3.2) on a Cubietruck.
    I have several questions:
    1. The Wheezy and Trusty can boot on Cubietruck while Jessie can’t. I changed the /etc/apt/source.list to point to Jessie in Wheezy install and do `apt-get upgrade && apt-get dist-upgrade` to upgrade to Jessie from Wheezy then failed to boot. Anything wrong with Jessie?
    2. I am trying `Docker` which requires kernel version greater than 3.8 on Trusty. Then I found the `iptable_nat` module is missing. Are you planning to build images with needed kernel modules (currently I know `iptable_nat` is missing) for `Docker`?
    3. I tried to build image with `iptable_nat` based on your script. I made two changes:
    1) In `Cubietruck-Debian/`, change BRANCH=”mainline”
    2) In `lib/`, add `iptable_nat` to `MODULES` in `cubietruck)`
    The result is I have an image with kernel 3.4.105 built. And I don’t know if `iptable_nat` is added or not.
    What should I change to build an image with kernel 3.19 and the `iptable_nat` module?

    1. Thanks. Jessie should work, but it’s possible that I made some error in last build. It’s also possible that kernel must be updated. My primary focus is stable Wheezy image the rest is usually tested quickly. I am planning to rebuild images soon and will check if there is any unknown issue with Jessie. It happened before. Upgrade should be possible but also sometimes fails. That’s the reason I made a special image. If you need certain modules, kernel must be recompiled. You made some mistake inside configuration – you need to add – enable desired functionality inside kernel configuration file (lib/config/linux-sunxi-next.config) and BRANCH name is “next”, not “mainline”. Try again. BTW. Adding to board configuration means only which modules should be loaded at boot time. If you don’t have that module in kernel, this is useless.

  13. Thanks a lot for this project.

    I need to make tc (Traffic Control) work on my cubietruck.
    Is it worth trying to build with these options? Should I even try? Is there a chance that it could work?

    # QoS and/or fair queueing

      1. Which branch/version should I use? The latest version of next branch seems to have bugs. I get many errors like “chroot: ‘/bin/bash’ not found” and “no such file/dir”.

  14. Hey,

    i compiled my newest Crunchbang release on your github sources with kernel 3.4.106. Automatic boot off the sd card fails, because u-boot fails with “Unknown command part – try help”. Manually booting via commands of boot.scr works.

    I digged a bit deeper and found out that u-boot fails when running the env “scan_dev_for_boot_part” in first line at command part.

    Do you have any idea how to fix it?

    Current workaround is to “setenv devtype mmc” and “run_dev_for_boot”.

    Thanks for your help!

  15. Hi you write
    Total memory is 2000Mb (disabled all memory reservations for GPU)

    what is when i will install a desktop. what must i do for the memory reservations for the GPU?

    1. For a simple desktop upgrade nothing. You need extra memory for video decoding and 3D acceleration / advanced graphics mode. Both functions are in development stage and you won’t need this in normal usage.

  16. Hi,

    has anyone succeeded to use “rtcwake -m mem” with CubieTruck 2? Is there a known workaround to hibernate CT and wake it up after some time again?

    Thanks, Timo

  17. Thank you for the update i use my cubietruck with your image. works great .
    i downloaded the latest 2 times and i installed it 3 times each on sd card what i need works exept one the blinking leds . I had to add the script manualy the script was not on the sd card . Was it a error in the installation . Or was it a error that is was not added to the image that i downloaded. i use the wheezy. Sorry for my english . thanks again for your great work.

    1. It was not added since I solve this within board definitions (fex/bin). It’s possible that I made some bug. I’ll take a look. You can get find a script @Github.

  18. Hi!
    First: Thanks for the great work!

    Then: I’ve been running your image on a cubietruck since v2.8. I have installed it to hdd and boot from sd, updated the kernel to v2.9 (3.4.105) once (figuring out that I needed to mount /dev/mmcblk0p1 it was the hardest part). I am currently using the cubietruck as smb-server, have mpd running with audio output over spdif and think about setting up a wiki. All in my own network of course, I don’t intend to make it accessible from the internet.

    As I’m not so familiar with the linux stuff, I still have some questions:
    * From reading the comments, I have guessed that the 3.4.105 kernel is the old kernel and the 3.19 is called “mainline”. Is that correct?
    * If I understand it correctly, the box titled “Developers:” suggests that it is possible to install and use both kernels. Do I understand that correctly? What are the adjustments to the boot scripts that are mentioned there?
    * What are the benefits from using the newer kernel? Are there reasons to use the new one or are there reasons to keep using the old kernel?

    1. Mainline kernel is official linux kernel but it’s lack of most drivers for our boards. Currently it’s usable only for some headless server. Samba, web, NFS,… yes, GPIO, multimedia, … no. It’s possible to boot both kernels on latest image but it’s not yet user friendly changing. Boot script is slightly different. Check boot-next.cmd and boot.cmd at Github / lib / config.

  19. Hi Igor,
    first of all thank you for your great work!
    I have some problems with booting your image from SD-Card. It always gives me:
    *** Warning – bad CRC, using default environment
    With another Image like Cubian it boots fine. I tried both Kernel Versions and none of them is working.

    Greetings, Tobias

  20. Hi Igor,
    thx for this distro. Sorry, maybe my question is a little bit Installed it to nand, works fine via eth0. I want the cubietruck to connect to my wifi automatically, but i can not connect. Is it correct to change the wlan0 entry in /etc/network/interfaces or is there any other network manager? You wrote “Wireless adapter with DHCP ready but disabled (/etc/network/interfaces, WPA2: normal connect or AP mode)”. What do you mean by this? In other distros, i wrote just “allow-hotplug wlan0, iface wlan0 inet static, address ….” and so on, and the ct had no trouble to connect. Here, i cannot connect manually via “ifup wlan0″ etc. Thank you for your help!
    Best regards!

      1. There were major changes in building process in last few builds. The result should be the same. What did you need to alter?

          1. Is there some error in the kernel log? This way the issue might be solved quickly. Note that there is no wireless in mainline kernel, only in 3.4.x

            1. No, if wireless is not working I must made some bug in latest release(s), because I changed the way kernel is build. I suspect that firmware is not loading properly. Can you provide some log? Wifi was working well since v1.2 or something. My Cubietruck is currently in production environment so I can’t do much testing. I test builds on other boards (Banana, Orange, Lime) which are almost identical, except small differences. Wifi is among them.

            2. Feb 11 00:55:02 localhost kernel: [ 282.384667] dhd_bus_devreset: == WLAN ON ==
              Feb 11 00:55:02 localhost kernel: [ 282.388835] F1 signature read @0x18000000=0x1591a962
              Feb 11 00:55:02 localhost kernel: [ 282.392188] bcmsdh_config_hw_oob_intr: Enter
              Feb 11 00:55:02 localhost kernel: [ 282.399514] DHD: dongle ram size is set to 245760(orig 245760)
              Feb 11 00:55:02 localhost kernel: [ 282.408230] dhd_bus_select_firmware_name_by_chip: firmware_path=/lib/firmware/ap6210/fw_bcm40181a2.bin
              Feb 11 00:55:02 localhost kernel: [ 282.413254] Final fw_path=/lib/firmware/ap6210/fw_bcm40181a2.bin
              Feb 11 00:55:02 localhost kernel: [ 282.417906] Final nv_path=/lib/firmware/ap6210/nvram_ap6210.txt
              Feb 11 00:55:02 localhost kernel: [ 282.423989] _dhdsdio_download_firmware: dongle image file download failed
              Feb 11 00:55:02 localhost kernel: [ 282.427384] dhd_dev_reset: dhd_bus_devreset: -35
              Feb 11 00:55:02 localhost kernel: [ 282.432048] dhd_prot_ioctl : bus is down. we have nothing to do
              Feb 11 00:55:02 localhost kernel: [ 282.435391] dhd_dev_reset: dhd_bus_devreset: -35
              Feb 11 00:55:02 localhost kernel: [ 282.442325] dhd_customer_gpio_wlan_ctrl: call customer specific GPIO to insert WLAN RESET
              Feb 11 00:55:02 localhost kernel: [ 282.527985] sdio wifi power state: off
              Feb 11 00:55:02 localhost kernel: [ 282.624842] =========== WLAN placed in RESET ========
              Feb 11 00:55:02 localhost kernel: [ 282.627312] wl_android_wifi_on: Failed
              Feb 11 00:55:02 localhost kernel: [ 282.630120] dhd_open: failed with code -35
              Feb 11 00:55:02 localhost kernel: [ 282.632224] wl_android_wifi_off in

            3. Firmware location was changed in latest build. Quick fix is to create a link, execute as root: ln -s /lib/firmware/$(uname -r)/ap6210 /lib/firmware/ap6210

            4. This is now happening:

              Feb 11 15:38:16 localhost kernel: [ 14.837583] dhd_wlfc_init(): successfully enabled bdcv2 tlv signaling, 79
              Feb 11 15:38:16 localhost kernel: [ 14.840144] wl_android_wifi_on: Success
              Feb 11 15:38:16 localhost kernel: [ 14.845760] CFG80211-ERROR) wl_cfg80211_attach_post : p2p0: p2p_dev_addr=02:22:f4:f8:be:19
              Feb 11 15:38:16 localhost kernel: [ 15.383715] PHY: sunxi_gmac-0:00 – Link is Up – 100/Full
              Feb 11 15:38:16 localhost kernel: [ 23.830092] eth0: no IPv6 routers present
              Feb 11 15:38:16 localhost kernel: [ 25.030183] wlan0: no IPv6 routers present
              Feb 11 15:38:17 localhost kernel: [ 79.732533] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
              Feb 11 15:38:17 localhost kernel: [ 79.751020] Bluetooth: BNEP filters: protocol multicast
              Feb 11 15:39:30 localhost kernel: [ 152.614246] bcmsdh_sdmmc mmc1:0001:2: wlan0: (WE) : Wireless Event too big (65305)
              Feb 11 15:39:30 localhost kernel: [ 152.628319] CFG80211-ERROR) wl_notify_scan_status : scan is not ready

            5. Some errors are o.k. This is due to bad driver but I guess it should work now. Does it? If not you will need to wait until I or someone else found a time to take a closer look. Thanks for donation!

  21. Dear Igor,

    thank you again for your great Work!
    Today I downloaded and installed the actual wheezy image with the mainline kernel. It installed smooth, but I have one problem in my setup. CT is used as a nfs fileserver with an installed 3TB SATA 3.5 HDD. I have proper reading rates over GBit network (~40MB/s) but only about 5MB/s writing rate. The raw writing rate (measured with dd) is about 40MB/s.
    Do you have any clue why the nfs writing rate is such bad? With your old image (2.7 with 3.4.104 Kernel) it was twice as much. I installed the new image in the hope of getting better data rates :-(. Network performance is about 540GBit/s.
    So there must be something with the nfs configuration.

    Thanks in Advance!


      1. Hi Tilman,

        thank you for the Tip. Unfortunately this did not do the trick. Caching is better now, but for large files the writing rate is still way below 10kB/s.
        There mus be an issue with the HD-Drive or the driver. Are there any SATA tweaks known? The drive should be capable of >100Kb/s so this seems to be an driver issue?


        1. Hi Buggi,
          my CT still runs Igor’s v2.9 kernel 3.4.105 (2014-12-03), I’ve not tried the mainline kernel yet. Hopefully I’ll switch to v3.2 this weekend. My actual NFS performance is ~35MB/s write and 40 MB/s read. Maybe it helps to adjust the mount (I use “rsize=32768,wsize=32768″) and the export (“async,no_subtree_check”) options?

          1. Hi Tilman,

            performance always gets worde. Actual writing performance: 2,6MB/s :-(. Reading performance: 27MB/s.
            The harddisk sounds as if it would write the data twice as the read/write head always moves the whole process. I still think there must be something with the driver. But thanks anyway for your help!


            1. Hi Buggi,
              yesterday I switched to v3.2, kernel 3.4.105-cubieboard. NFS performance is still good (same as before). Did you check the output of “hdparm -I /dev/sda”? E.g. DMA should be “udma6″. What kind of on-disk-filesystem do you use (mine is ext4). Are the partitions properly aligned (1-MiB boundaries)?

          2. Hi Tilman,

            sorry, my last comment was misguiding. DMA-mode is correct (udma6). If I write directly to the disk (i.e. via dd command) the disk is fast. It is only slow if data is written over the nfs network. This leads to the conclusion that the HD-driver should be okay, but there is something wrong with nfs…

            Thanks again!

  22. @Igor Pečovnik:
    the “Allwinner Security System cryptographic accelerator” module is outdated and buggy.

    19:54 sunxi-ss is not supported anymore on 3.4 anyway
    19:54 oO
    19:55 the patch for 3.4 is old and have bug

    you can found sunxi-ss on or within the mailing list

  23. Hi Igor,
    I just installed your current image with 3.19RC5 on the Cubieboard2. Thanks for your great distribution btw.
    But I realized that there is no usbserial-driver included under /lib/modules/3.19.0-rc5-cubieboard/kernel/drivers/usb/ . I’m only seeing storage but no serial module.
    Would it be possible for you to provide the kernel module in the future and possibly mail it to me now?
    I do need this module pretty badly for an lcd-module.

    Thank you very much for your support.
    Best Regards,

  24. Hi Igor,

    you write that “Mainline kernel have only basic functionality”.
    Could you quickly explain? What is include by “basic” and what is missing? (Nand ok :) other?)

    Thanks for your great work

    1. In mainline kernel a lot of things needs to be fixed, developed / rewritten. Usually you can’t just drag / drop stuff from old kernels and expect that it will work. Some things might crash the kernel or prevent compilation. Kernel is way too huge to be a work of one person – it’s a community project per se and I am doing the best I can to bring this modern kernel to our tiny devices. Since I fixed headers it’s easier to add drivers on your own. Theoretical ground is set but in reality not many drivers can be compiled without a problem. Your feedback is very important here – drivers which are working can be added or enabled if exists to/in main kernel tree quicker and those who are not working maybe someone else already fixed. Thank you for your feedback. Without it I would already stop doing this :)

  25. Hello Igor,

    at first thank you for this great work!
    With actual image (v3.2) I run into a little error message on boot sequenze:
    [FAIL] setting sysfs variables (…) unknown attribute block/mmcblk0/queue/scheduler failed!
    Can I ignore this message or do I have to worry?
    My way: SD->NAND->SSD

    1. Thanks. Not critical, ignore or fix … I set some settings for SD card in /etc/sysfs.conf and now since you don’t have it this error shows up. Comment the line where you find block/mmcblk0/queue/scheduler. It’s in the end of file.

  26. Hi Igor,
    something has changed since version 2.8. (I’m using wheezy 3.1)
    I can’t find uEnv.txt and also scirpt to disable led blinking.
    is boot.cmd replacement for uEnv.txt?.



    1. Yes. Boot procedure has been changed – unified over all boards and kernels. There are some exceptions – Cubox and new Cubieboard … Kernel is now gzip packed and I am using mainline/latest u-boot source. Boot.cmd must be compiled to boot.scr after editing.

      1. Dear Igor,

        I have a problem using Cubietruck with my TV, because missing some lanes (OS screen size is bigger than TV). Is there definitive manual how to correct this issue? Thanks for help

        1. You can set a screen resolution in kernel command line /boot/boot.cmd Which one is best for your TV, you will have to experiment. My default settings is: disp.screen0_output_mode=EDID:1280x720p60 Change it, convert boot.cmd to boot.scr and reboot.

  27. Hey!

    Is there a way to update the things you change in git in an automatical way?
    For example the small fix in the .bashrc ..?


    1. After you have flashed lubuntu on nand, you should boot Igor’s image from SD card and run the script for nand installation. Flashing lubuntu on nand just fixes something (I don’t know what) on nand…
      Good luck.

      1. Thankyou Orcrist ..

        I did that, but still fail.
        Kindly please tell me which Lubuntu image and which Igor’s image that you use ?

          1. just reporting …

            the flashing process done.
            Just that my experience, the script looks like didn’t reach ‘whiptail –title “Reboot required” –msgbox “Press OK to reboot!” 7 60′

            I just blindly reboot the board, re login … and the board self reboot.

            But basically … it works !

            Thankyou for your great work Igor.

  28. Thanks for the new version – tried it first on CB2 with success!

    The next try for CB1: – the binary downloaded and flashed to a SD (version from 19.1.15) — *not* successful:
    –> the green led is stable but *no* start to login prompt, no output to screen (HDMI)
    Anybody who has a hint for me how to start with CB1?

        1. I add CB1 image blindly. No Cubieboard 1 around so I will need some more information to fix this. What kind of error do you get – you will probably need to hook up a serial console.

  29. I am totaly new to Debian/Linux and want to start a desktop environment.
    I installed your lightdm, xorg and xfce4 and try to startx.
    There are some output but i get no grafix.
    What i have to do?

    1. Huh. I changed a lot of things in latest release and it’s possible that this is a bug. Try a bit older version or wait a week for a bug-fixed release. I am working hard to release fixes ASAP. I tested Banana desktop upgrade yesterday and it was working without a problem. Board is similar but image / kernel is already fixed for reported & noticed bugs.

  30. Hello Igor,

    first of all i want to thank you for your work. You did a great job.

    But i have a question: is there any reason why you walk the loop way via SD cards if the result is booting from nand?
    or better: Would it be possible to offer nand images in addition?

    Jens :)

    1. Thanks. This way is easier and method can be extended for many boards, there is no support for NAND in mainline kernel, you need proprietary flash program, …

  31. Worked great! I went with the latest Debian Jessie pushed it to sata (1tb) and then put a Mate Desktop on it. No real challenges or issues. You did good, thank you!!


  32. Hi Igor,

    Thanks for the great image!

    Just one question: is there any reason for the new nand-sata-install script to not rsync permissions, owner, and group of files (ie not using rsync options -pgo respectively the -a) when copying the content from the SD card to NAND/HDD? I don’t know how the old version worked, I just recently got my cubietruck…

    I ran into a lot of problems (ie sudo not working, man paged could not be updated by apt-get etc) after NAND install. After I changed the script to

    RSYNCAR=”-avc –delete –stats –human-readable”

    and reinstalled all went smooth..

    1. Thanks. Before it was O.K. … but since I was playing around with parameters to establish some progress bar … Of course I try only if booting was successful, nothing else. I will add note on this. There is another bug, rsync gives out different output with different versions and scripts break again. I am pushing fixes to Github.

        1. You should, because it’s better than previous version – just use a file provided under “Bugs & limitation”.

          1. I’m using wheesy 3.1 kernel 3.4.105. on CT. It works great on SD but I can’t get it to boot from ssd after I run . The script writes to the ssd ok but on reboot CT just flashes blue led and system hangs. I did set up as per your instructions on your github/faq. Any advice would be great thanks.

            1. Instructions on Github are deprecated since v3.0 due to kernel packing change. Use new script (/root/ Problems might also occur if you made some upgrading. Certain combinations of u-boot and kernel doesn’t boot.

        1. I add CB1 and CB2 images without testing them. I don’t have the board. Sorry. Thanks, I’ll check what’s the problem.

  33. Some months ago, i wrote about my problem with certain dvb drivers and the coherent pool of only 256 kB. I tried to enlarge the coherent pool to 1 MB by a kernel option but this only resulted in a non-bootable system.
    I’m happy it’s working with the latest changes of your great image! For anyone needing to change this setting, this is how it works:
    1.) open “/boot/boot.cmd” in an editor
    2.) add “coherent_pool=1M” without the quotation marks
    3.) execute “mkimage -A arm -T script -C none -n boot -d /boot/boot.cmd /boot/boot.scr” to generate a new “boot.scr” file

  34. Hi Igor ,
    Sorry ,but my schooltime is a Long Time away :-( So my english is Not so Good !
    I try the Cubietruck with your Image from SD Card . Works Fine ,is Booting .
    When i will get it on the NAND , it Looks Fine until ,the step with the First boot ( with sd Card ).
    I get this error:
    cp: cannot stat `/boot/uEnv.txt': No such file or directory
    cp: cannot stat `/boot/lime*': No such file or directory
    cp: cannot stat `/boot/uImage': No such file or directory
    You have a idea ?

    1. This is somehow strange. Are you using latest image? Boot from clean image (wait for auto restart), when booted second time, conduct (the name changed in latest release – one script for all), choose NAND install and follow instructions. First it needs to partition your NAND, than you need to reboot and start the script again and follow instructions. At the end, CT will shutdown. Remove SD and than you boot from NAND.

    2. Thanks ,for you help !
      Now i am Not shure i used the newest Image ;-( i try it directly After my work ! The new image is the 3.1 right ?
      So i will get a Perfect Night for trying this ;-) thank you !!!

          1. So first i want to say Thank You :-)
            I start the procedure complete new … first Lubuntu for the NAND , after this with the new Image (new script-2inOne)
            ========= i thought 100% is ready =====but it come up to 132% *smile
            But it is working !!!! THX

            1. You are welcome :) When I fix the script in functionality I was too lazy to fix this “130% bug”. Next time :) – I found other bug and both are now fixed @Github – manual update is necessary.

  35. Hi Igor,

    Thanks for making a modern kernel version available for the cubietruck!

    My cubietruck came pre-installed with a cubian install, running kernel 3.4.79, which I set up to boot from NAND with root on a SATA drive.

    I decided I wanted to try your latest version instead, so I copied the image onto an SD card, then updated boot.scr so that it boots of the SATA, rather than the SD, and copied the kernel modules into /lib/modules. It all appears to work fine, apart from missing the hfsplus (mac) file system support which I use for my external drives, so I shall try to compile the module myself.

    Booting off the SD card with the root filesystem on the SATA seems a bit silly, but you have said above that the mainline kernel needs a new bootloader – are there any instructions for upgrading uBoot, and getting the new kernel onto the NAND?


      1. I’ve tried rebuilding the whole mainline image, and it all appears to build with no issues, but when I try an boot the image it goes so far through the U-Boot, prints out “Starting kernel …” and then just stops, so I think it doesn’t like the kernel for some reason.

        I tried copying the kernel modules for HFS into your 3.1 build and it refused to load them due to the kernel name being different (mine built as cubietruck, 3.1 is built as cubieboard).

        Finally, I changed the BOARDNAME to cubieboard, rebuilt, and now I can use the kernel modules I’ve built with your 3.1 mainline image, which is not the best solution, but it works.

        1. Each board has different u-boot but kernel is the same. Using proper configuration is important. Mainline kernel is currently useful for server usage and this is covered good enough.

          1. Turns out the problem was the card! It fails to boot from a standard 2Gb SD card, but with the 8Gb SDHC card it’s fine.

  36. Hi,
    first of all, thank you for your tireless effort to offer this excellent debian image.
    I first tested release 2.8 and had some issues with it, but it worked fine. Now I wanted to try your new release 3.1 and i could still grab it from your server before you posted other mirrors.
    Although the checksums appear to be ok, the cubie does not want to boot properly. The blue LED is on for about 5 secs, then nothing else happens. There is no VGA or HDMI output. I’ve tested it with different sd cards, same issue. Other images still work (your release 2.8 still works, even flashed on the same sd cards; android boots from sd, cubian x as well).
    I thought maybe something went wrong with the download…. well now i have to use those dev-host mirrors, but the webpage always wants me to use a weird downloader (apparently infected, as far my antivirus tells me)… can you upload it somewhere else please or do you know a workaround?

    1. Image has been build with wrong boot loader. It’s fixed & working now. I am using dev-host as a second best temporary options – more & better download options will be available soon. On Dev-host is possible to download without their download manager but you need to un-check it – default is on.

      1. Hi Igor,

        thank you for your quick response. I see, ok then I have to try the new version… Yeah, I figured that the 2 download buttons should stand for different download methods. Somehow, even if I uncheck the downloader check box it offers me the downloader again. Sometimes the box simply doesn’t show up at all… I disabled the script blocker in FF, no change. Tried it with Opera now, it’s working, but the download takes 3 hours xD

        Thanks anyway :)

        1. I had many troubles for last few days and currently I can’t provide better / faster download option. As I already mentioned, I am working on a better long term solution with your help.

          1. Hi Igor,

            I’ve downloaded and tried the latest image as you suggested, as you told me that the boot loader might be broken. Well, even with the apparently working build my CT doesn’t want to boot… Do you have any suggestions? I’m using a slow 4 gig SD class 4 (wanted to push the system to sata) and I’ve tried both suse image writer and win32 image writer…


            1. Using different SD card. HDMI must be attached at first boot if you want to use it, otherwise VGA out is the primary video output. Try different versions (3.4 and 3.19). Both are tested and works.

  37. Hi

    Thanks for your images. Maybe you could provide, at least sha256sum of each .zip (or .raw) on your website, and ideally a gpg signature?

    Thanks :)

    1. Yes, I agree, that this would be nice to have. The zips contain md5sums AFAIR, but that is not really that what you thought of at all in two ways I guess ;)

  38. As it seemed, my try to post magnet links here last night was not in the favor of this blog’s comment checker. ;) So to give it a second try, I post a GoogleDrive Share with 4 Torrents for downloading:

    Reason for this was, because i was accidently downloading the wrong image first, then accidently quit my browser twice downloading the right image and so on. This got all annoying because the DL speed seemed to be quite a bit slow for spoiled Broadband users like me. But instead of complaining … I just decided to seed them as Torrents on my fresh installed Cubietruck_Debian_3.1_jessie_3.4.105

    For now and some undefined time comming, I will stay seeding them, so feel free to download them, and of course seed as well.

    BTW: Thank you so much Igor, for taking the time and effort to create those great Cubietruck images!

  39. magnet:?xt=urn:btih:fbb83f098514fb5d0e22b8ce90e4844b3147f2d0&


  40. Ijust accidently downloaded unwanted the wrong image, and that made me realize that the download is actually kind of slow.
    In stead of complaining I would like to ask why you don’t use Bittorrent as a cheaper and with high demand also faster solution?



    1. My download server is going to be fixed within this week. Currently running on a backup which is … slow, yes :(

      1. Hi. Ah ok. I was just a bit annoyed by the pace (patience isn’t exactly my leisure, could be improved), but instead of being annoyed I prefer to try to make the world a tiny little easier for others sometimes ;)

        But a different topic:
        I just stumbled opon your script. I’m not the complete crack at all, but wouldn’t it be more convenient to use sysfsutils for this purpose?
        In sysfs.conf this does the job pretty well here:
        # darken LED’s
        class/leds/blue:ph21:led1/brightness = 0
        class/leds/green:ph07:led4/brightness = 0
        class/leds/orange:ph20:led2/brightness = 0
        class/leds/white:ph11:led3/brightness = 0

        So I don’t know if I’m missing on some disadvantage there, but I use sysfsutils anyway to set other things (eg. cpufreq_governor asf.).

        1. It’s an old script which will be kicked out someday :) There is another option – you can disable leds in board configuration too (.bin files).

  41. I have some issues with the following Image: Cubietruck_Debian_3.1_wheezy_3.4.105 and Nand install. If I run the installation everything running well with SD. After (2x) and I remove the SD card, the cubietruck begins with boot procedure, but after some seconds it’s stop and the green as well the white led, lights permanently, and nothing go more.

    I did the same with one older image (2.6) and here everything running well, boot from nand and also with SSD and Nandboot.

    Thanks for your support.

    1. I broke NAND & SATA install during last update. Booting process changed and I need to update those scripts too. I am working on it.

      1. Great job Igor, this image is amazing
        But I have tha same problem and I can’t use my cubieboard.
        it seems that the /boot does not have the necessary files
        There are way to download the previous release, or fix this issue?
        until the launch of the next version

        English isn’t my first language, excuse me any mistakes.

        1. Yes, true. I tested the image – it boots but no video output. I guess mainline uboot is not ready to cover old Cubietruck kernel. This combination is working fine on Olimex and Banana boards. Rolling back and reup images. Sorry.

  42. I really, really like the image. It’s just that there are some displays which simply produce artifacts if I start the board directly (putting the power source in). I almost always get strange artifacts, starting with a green line on the left side of the screen during boot. On The other hand I can reboot the dive as often as I like using the command line and it always works. The logs do not show anything differently from my working sreens. I don’t have this problem with cubieez, cubian or archlinux. I have the problem on all three Images here (Wheezy, Jessie, Trusty).

    1. Hmm? I guess this might be related with screen resolution? Try using different disp.screen0_output_mode= parameter, the same as it is on Cubian or others. Maybe just delete it. BTW. Thanks!

  43. Hi Igor,
    I installed your wheezy image on my cubietruck, and used the script to boot first from sd and then from ssd.
    1, my /boot is empty, no uEnv.txt or other files. Is this ok?
    2, I wanted to install a driver for the touchcreen faytech with 7″. But the installation fails, because there was no /etc/X11/xorg.conf.
    So I tried with Xorg -configure to generate one, but this fails also. The last lines from logging:
    [ 1144.779] compiled for 1.12.1, module version = 2.3.1
    [ 1144.779] Module class: X.Org Video Driver
    [ 1144.779] ABI class: X.Org Video Driver, version 12.0
    [ 1144.779] (WW) Falling back to old probe method for fbdev
    [ 1144.779] (WW) Falling back to old probe method for vesa
    [ 1144.784] No devices to configure. Configuration failed.
    [ 1144.788] Server terminated with error (2). Closing log file.

    But startx works, I’ve the desktop. So what I’ve to do to generate the xorg.conf file?
    Thanks very much for any hints.

  44. Thanks for your hard work.

    I have one Question about the mainline image.
    Why isn’t there a NAND Driver inside? Any Kernel background or something?
    Can i build with your script an image with NAND Driver and mainline kernel for cubietruck?

    Thanks a lot.


  45. Does this image work with the original cubieboard (e.g. 1)? I have installed cubian on the NAND but seem to have stability issues with the network. I just lose it after a while and have no way to troubleshoot because I only have SSH access. All I can do is a reboot.

  46. What is your recommended method of updating from one release to a new one?
    Is there a way to update without writing a new image, thus completely start from the beginning every time?

    1. From / with next release it will be possible to update via .DEB packages – currently under testing. You can try it by yourself – note: you need to fix boot scripts to make it work. Don’t be confused by the name of the kernel – many boards share the same one.

    1. Hi Igor,
      Just to say : Job perfectly done!
      Keep on going with this project, especially the part with the hadoop and clustering.
      Ones again Thank you : it was of great help to me.
      Greetings from Bulgaria

  47. Hi Igor,
    I’m using the CTDebian_1.9_vga image with the kernel upgraded up to 3.4.104. It’s impossible for me to have a hdmi output signal.

    nand_root=/dev/nand2 rootwait
    extraargs=rootfstype=ext4 sunxi_ve_mem_reserve=128 sunxi_g2d_mem_reserve=0 sunxi_no_mali_mem_reserve sunxi_fb_mem_reserve=16 disp.screen0_output_mode=EDID panic=10 consoleblank=0

    disp_init_enable = 1
    disp_mode = 0
    screen0_output_type = 3
    screen0_output_mode = 4
    screen1_output_type = 3
    screen1_output_mode = 4
    fb0_framebuffer_num = 3
    fb0_format = 10
    fb0_pixel_sequence = 0
    fb0_scaler_mode_enable = 0

    Is it something missing in the vga image which prevent me from having a hdmi display?

    Thanks for your support

    1. You are booting the image from NAND which means you need to edit script.bin (convert to fex + edit + convert back to bin) file which is on the first NAND partition /dev/nand1 … BTW: In latest images /dev/nand1 is mounted under /boot, so this procedure is less confusing.

Leave a Reply

Your email address will not be published. Required fields are marked *