User Tools

Site Tools


Navigation Menu

Flight-Control

<
Previous mounth
04/18/2024
>
Next mounth
SMTWFTS
16
14
14
15
15
16
16
17
17
18
18
1920
1721222324252627
1828293001020304
1905060708091011
2012131415161718









Hot Projects

SEEDStack

SEEDStack - Open 3D printable seed/sprouting systemDIY Food Hacking

UCSSPM

UCSSPM - Unified Clear-Sky Solar Prediction ModelOpen Solar Power

picoReflow

picoReflow - DIY PID Reflow Oven Controller based on RaspberryPiDIY Reflow Soldering

PiGI

PiGI - DIY Geiger Counter based on RaspberryPiRasPi Geiger Counter

DIY ARA-2000

Active Wideband Receiver Antenna for SDR - ARA-2000Wideband Antenna

DSpace

DSPace - Map everythingMap everything!

Mission-Tags

This is an old revision of the document!


picoPrint Software Documentation

Install Gentoo Linux on Cubieboard2

Install & bootstrap crossdev

$ emerge -av crossdev

Create a stable armv7a-hardfloat-linux-gnueabi tool chain for the Cubieboard2:

$ crossdev -S -t armv7a-hardfloat-linux-gnueabi

Install and compile u-boot

$ mkdir gentoo-cb2
$ cd gentoo-cb2
$ git clone https://github.com/linux-sunxi/u-boot-sunxi.git
$ cd u-boot-sunxi

Start clean and configure Cubieboard2 default u-boot parameters

$ CROSS_COMPILE=armv7a-hardfloat-linux-gnueabi- make distclean
$ CROSS_COMPILE=armv7a-hardfloat-linux-gnueabi- make Cubieboard2_config

should return

Configuring for Cubieboard2 - Board: sun7i, Options: CUBIEBOARD2,SPL,SUNXI_GMAC,STATUSLED=244,STATUSLED1=245,FAST_MBUS

Build u-boot

$ CROSS_COMPILE=armv7a-hardfloat-linux-gnueabi- make -j4

should return something like

tools/mkimage -A arm -T firmware -C none \
        -O u-boot -a 0x4a000000 \
        -e 0 \
        -n  "U-Boot 2014.01-rc1-09153-gc75ea90 for sunxi board" \
        -d u-boot.bin u-boot.img
Image Name:   U-Boot 2014.01-rc1-09153-gc75ea9
Created:      Wed Jan  8 10:47:48 2014
Image Type:   ARM U-Boot Firmware (uncompressed)
Data Size:    227820 Bytes = 222.48 kB = 0.22 MB
Load Address: 4a000000
Entry Point:  00000000
tr "\000" "\377" < /dev/zero | dd ibs=1 count=32768 \
                of=spl/sunxi-spl-pad.bin 2>/dev/null

and produce the following files we will need:

-rw-r--r-- 227884 Jan  8 10:47 ./gentoo-cb2/u-boot-sunxi/u-boot.img
-rwxr-xr-x 17644  Jan  8 10:47 ./gentoo-cb2/u-boot-sunxi/spl/u-boot-spl.bin

Install and compile kernel

Get the sources

$ cd ..
$ git clone https://github.com/linux-sunxi/linux-sunxi.git
$ cd linux-sunxi
$ git checkout sunxi-3.4

Prepare the kernel

Use default config to get something to start with

$ CROSS_COMPILE=armv7a-hardfloat-linux-gnueabi- ARCH=arm make sun7i_defconfig

Tweak your kernel according to your wishes

$ CROSS_COMPILE=armv7a-hardfloat-linux-gnueabi- ARCH=arm make menuconfig

The kernel seems to fail to compile when the following settings are enabled:

  • Networking support → [*] RF Switch subsystem support

Solution: Disable RF Switch subsystem support (not needed on CB2 anyways).

  • Power Management options → [*] Run-time PM core functionality

Solution: Disable Run-time PM core functionality or apply the following patch.

--- arch/arm/mach-sun7i/pm/standby/mem_printk.c 2014-01-08 12:42:26.641644236 +0100
+++ /tmp/mem_printk.c   2014-01-08 12:42:18.706835502 +0100
@@ -165,7 +165,7 @@
        int  negative = 0;                //defualt is positive value
        int  i;
        int  j;
-       char digit_string[] = "0123456789ABCDEF";       
+       char * digit_string = "0123456789ABCDEF";       
        
        if(value == 0)
        {
@@ -211,7 +211,7 @@
        char stack[16];
        int  i;
        int  j;
-       char digit_string[] = "0123456789ABCDEF";       
+       char * digit_string = "0123456789ABCDEF";       
        
        if(value == 0)
        {
@@ -366,7 +366,7 @@
 {
        //fill with space ' ' when align request,
        //the max align length is 16 byte.
-       char fill_ch[] = "                ";
+       char * fill_ch = "                ";
        if (len < align)
        {
                //fill at right

Compile kernel

$ CROSS_COMPILE=armv7a-hardfloat-linux-gnueabi- ARCH=arm make -j4 uImage
Image Name:   Linux-3.4.75-00001-g9cfbbed-dirt
Created:      Wed Jan  8 12:55:16 2014
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    4385184 Bytes = 4282.41 kB = 4.18 MB
Load Address: 40008000
Entry Point:  40008000
  Image arch/arm/boot/uImage is ready

Compile modules

$ CROSS_COMPILE=armv7a-hardfloat-linux-gnueabi- ARCH=arm make -j4 modules

Install and compile sunxi-tools

$ cd ..
$ git clone https://github.com/linux-sunxi/sunxi-tools.git
$ cd sunxi-tools
$ make bin2fex fex2bin
$ git clone https://github.com/linux-sunxi/sunxi-boards.git
emerge -pv nginx pycurl mjpg-streamer

Discussion

Enter your comment. Wiki syntax is allowed:
L T P B᠎ Y