Cubietruck SD Image build automation
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
custom
README
TODO
build-kernel-bootloader.sh
build-sdcardimage.sh
connect-console-via-serial.sh
customize-mounted-rootfs.sh
generate-build-info.sh
get-info.sh
install-sdcardimage-on-device.sh
lib.sh
prerequisites.sh

README

ABOUT
=====

Script(s)/configs to generate a SD Card Image containing a custom OS
which would run a Cubietruck :). Check out "support status" section
for what's working and what isn'nt.

MOTIVATION:
===========

I am building a NAS using ARM based board (Cubietruck/Cubieboard3).
Therefore I needed a custom kernel and custom rootfs packaged into 
a custom SD Card image. These usually requires a lot of commands to
type in and is time consuming. I wanted to reduce this as much and
focus on tweaking/building an images to suit the objectives of my
projects. This project aims to reduce repetitions to the bare minimun 
and get a predictable build in the process :)
 
SUPPORT STATUS
=====================

Description                      |SD Card Image   |Details
:--------------------------------|:---------------|:--------------
NAND support                     | NA             |
SD card support                  | Working        |
RootFS                           | -              |
 Ubuntu Core 12.04 LTS           | Not working    |
 Linaro Nano                     | Working        |
 Debian Wheezy                   | Not working    |
2B RAM support                   | Working        |
Default User                     | -              |
-> administrator                 | Working        | Password: "admin"
-> linaro                        | Working        | Password: "linaro" . For Linaro based RootFS
SSH server                       | -              |
->OpenSSH server                 | Working        |
Custom packages support          | Working        | 
NTP                              | -              |
->ntpd                           | Working        |
Ethernet support                 | -              |
->DHCP IP                        | Working        | custom/rootfs/etc/network/interfaces
->Sunxi-GMAC driver support      | Working        |
-->Driver loaded at startup      | Working        | custom/rootfs/etc/modules
-->Static MAC address on boot    | Working        | custom/rootfs/etc/network/interfaces
->Sunxi-EMAC driver support      | NA             |
-->Driver loaded at startup      | Not loaded     | Sunxi-GMAC replaces Sunxi-EMAC driver
-->Static MAC address on boot    | NA             |
Wifi support                     | -              |
->AP6210 driver support	         | Working        | 
-->Driver loaded at startup      | Working        |
-->Static MAC address on boot    | Working        |
->DHCP IP                        | Not working    |
NIC Bonding                      | Not working    | custom/rootfs/etc/network/interfaces - Kernel configs: CONFIG_BONDING
HDD support                      | -              |
->SATA support                   | Working        |  
->RAID support                   | Not working    |  
->Disk spindown support          | Not working    |  
->Disk turnoff support           | Not working    |  
ZFS support                      | Not Planned    | ZFS is very unstable on 32bit hardware. 
                                 |                | Rationale: http://www.cubieforums.com/index.php/topic,1258.msg7779/topicseen.html#msg77793D MALI support
CedarX acclerated video	         | Not Planned    |
Bluetooth support                | Not Planned    |
MALI support                     | Not working    |
LEDS support                     | -              | 
->LEDS driver support            | Working        | Kernel config: CONFIG_LEDS_SUNXI=y
->Default setup via FEX file     | Working        | output/*.fex 
-->Enabled triggers              | Working        | Kernel confgs: CONFIG_LEDS_TRIGGERS=y, CONFIG_LEDS_TRIGGER_*=y
->Control via /sys/class/leds/*  | Working        |
->Disabled LEDS on boot          | Not Working    |
Hardware sensor support          | -              |
->CPUFreq                        | Working        | 
-->Default governor at startup   | interactive    | custom/rootfs/etc/default/cpufrequtils - See http://www.cubieforums.com/index.php/topic,1413.msg8743.html#msg8743
->HDDtemp                        | Working        | 
Boot                             | -              | 
->Resize rootfs partition        | Not working    | custom/rootfs/etc/init.d/cubian-*   - Courtesy: http://www.igorpecovnik.com/2013/12/24/cubietruck-debian-wheezy-sd-card-image
->Reconfigure OpenSSH            | Not working    | custom/rootfs/etc/init.d/cubian-*   - Courtesy: http://www.igorpecovnik.com/2013/12/24/cubietruck-debian-wheezy-sd-card-image

This project is NOT maintained anymore. Please use the following alternative:
- [igorpecovnik/Cubietruck-Debian](https://github.com/igorpecovnik/Cubietruck-Debian)

Caption
-------

NA           = Not Applicable
Working      = It has been tested and it does work
Not Working  = It has not been tested 
               OR it has been tested and it does not work
Not Planned  = Not plan to be supported

INSTALLATION:
=============

TLDR:

 bash build-sdcardimage.sh

For the other ones:

Setup pre-requisites:

 bash prerequisites.sh

Build image(s):
 
 SD Image:
 bash build-kernel-bootloader.sh

DOCUMENTATION
=============

Files are documented.

SOURCE
======

Main source repository: https://github.com/davidandreoletti/cubietruck


REQUIREMENTS
============

Succesfully tested on Ubuntu 12.04 LTS with Bash 4.2.25

CONTRIBUTORS:
=============

If you would like to contribute, feel free to do so. This is a Pull request
friendly project.

AUTHOR
======

David Andreoletti <http://davidandreoletti.com> - Original author

THANKS
======

REFERENCES
==========

Those are references I used to get to some of the objectives

http://cubieboard.org - Initial documentation for building a custom kernel/SD image/NAND image - Cubieboard makers :)
http://dl.cubieboard.org/public/users/soloforce/Construct_Your_Own_Debian_Linux_for_CubieBoard_zh-new.pdf - 
https://github.com/equinoxorg/eko_client/wiki/Creating-a-Redeployable-SD-Card-Image - How to partition a block device
https://github.com/codeshredder/cubieboard2 - Miccelleanous documentation about Cubieboard.
https://github.com/shmily/Cubieboard - Cubieboard Image build
http://eewiki.net/display/linuxonarm/BeagleBoard - Mics Kernel/SD Image creation 
http://www.denx.de/wiki/view/DULG/UBootVersions - u-boot official documentation
http://wiki.osdev.org/Loopback_Device#Hard_Disk_Images - Loop back devices in a nutshell
http://tinyapps.org/docs/mount_partitions_from_disk_images.html - Mount partitions from disk images
http://bill.station51.net/index.php?post/2010/01/30/HOWTO:-Booting-from-SD-card-using-U-Boot - Booting from SD Card with U-Boot
http://wiki.openmoko.org/wiki/U-Boot_commands - U-Boot command from the Openmoko project
http://www.cubieforums.com/index.php?topic=229.0 - Supported partition, partition size and offset
http://unix.stackexchange.com/questions/25258/ttyusb0-permission-changes-after-restart - Set permanent write permission on ttyUSB
https://github.com/mpepping/osx-pl2303 - Open Source OSX driver for Prolific PL2303 serial to USB adapters
http://www.prolific.com.tw - Proprietary driver for Prolific PL2303 serial to USB adapters
 - I used this one on OSX 

MAC address
-----------
http://www.denx.de/wiki/view/DULG/WhereCanIGetAValidMACAddress - Get Locally Administrated MAC address

Wifi
----
http://bernaerts.dyndns.org/linux/74-ubuntu/230-ubuntu-setup-wifi-commandline

http://www.cubieboard.cmabreu.com.br/
http://linux-sunxi.org/A20-Cubietruck
http://packages.ubuntu.com/lucid/ubuntu-minimal
http://www.solid-run.com/mw/index.php/Ubuntu_Core
http://wiki.dave.eu/index.php/Running_Ubuntu_Core
https://github.com/DavidBercovitz/ubuntu-core/blob/master/ubuntuCoreSetup.sh
https://help.ubuntu.com/community/Repositories/Ubuntu
http://www.omappedia.com/wiki/OMAP_Ubuntu_Core
https://launchpad.net/ubuntu/precise/armhf
http://forum.doozan.com/read.php?6,8491
http://old-releases.ubuntu.com/releases/ubuntu-core/releases/12.04.0/release/
http://snapshots.linaro.org/ubuntu/images/server/553
https://github.com/cubiebook/cubiebook

http://sigpipe.me/?p=10 - Cedar X 
http://www.memetic.org/raspbian-benchmarking-armel-vs-armhf/
http://hands.com/~lkcl/allwinner_linux_proposal.txt
https://github.com/hramrach/linux-sunxi
http://elinux.org/images/a/ad/Arm-soc-checklist.pdf
http://www.cnx-software.com/development-kits/linux-development-boards/
http://forum.doozan.com/read.php?6,10087

Rootfs customization
--------------------
http://omappedia.org/wiki/OMAP_Ubuntu_Core

AllWinner's linux kernel and current attempts to get their changes in mainline kernel 
--------------------------------------------------------------------------------------
http://linux-sunxi.org/Mainline_Kernel_Howto - AllWinner Community trying to get linux-sunxi work into the mainline kernel
http://lwn.net/Articles/554822/ - Merging Allwinner support
http://lists.debian.org/debian-arm/2013/06/msg00009.html - Thread about how to convince (among others topic related to Allwinner) Allwinner to merge their kernel work in mainline kernel 

NTP
---
http://derekmolloy.ie/automatically-setting-the-beaglebone-black-time-using-ntp/ - Set NTP
https://wiki.gentoo.org/wiki/Localization/HOWTO
http://ubuntuforums.org/showthread.php?t=862620 - test ntp

GPIO
----
https://groups.google.com/forum/#!topic/cubieboard/Oot7xZSKLpI - Fex config

APT
---
http://raphaelhertzog.com/2010/09/21/debian-conffile-configuration-file-managed-by-dpkg/ 

ALTERNATIVES
============

https://github.com/EddyBeaupre/armStrap - Well polished scripts yet not customizable enough for my needs (custom kernel repo to compile from for instance)