Difference between revisions of "RK3188-SOM"

(Writing Rockchip loader)
m (Building kernel)
Line 8: Line 8:
==== Building kernel ====
==== Building kernel ====
<code>./mkbootimg --kernel RK3188-SOM/arch/arm/boot/Image --ramdisk initrd.img -o boot.img</code>
==== Creating root filesystem ====
==== Creating root filesystem ====
===== Debian Wheezy =====
===== Debian Wheezy =====

Revision as of 04:37, 23 October 2014


Booting from SD-card

Writing Rockchip loader

dd if=loader.img of=/dev/sde conv=sync,fsync
dd if=parameter of=/dev/sde conv=sync,fsync seek=$((0x2000))
dd if=boot.img of=/dev/sde conv=sync,fsync seek=$((0x2000+0x2000))

Building kernel

./mkbootimg --kernel RK3188-SOM/arch/arm/boot/Image --ramdisk initrd.img -o boot.img

Creating root filesystem

Debian Wheezy

dd if=/dev/sdc of=parameter.img count=$((0x2000)) skip=$((0x2000)) dd if=/dev/sdc of=boot.img count=$((0x8000)) skip=$((0x2000+0x2000)) In this post we will explain how you can create your own Debian rootfs with pre-installed packages of your choice, which to allow tiny Linux images to be created. All steps below should work on any Debian host (Debian/Ubuntu etc) and are verified with Ubuntu 12.04LTS. First of all you need to install the support packages on your pc:

sudo apt-get install qemu-user-static debootstrap binfmt-support

Next you need to choose the version of Debian in this case we are building a wheezy image. targetdir=rootfs distro=wheezy

Now we will build first stage of Debian rootfs : mkdir $targetdir sudo debootstrap --arch=armhf --foreign $distro $targetdir

Next copy the qemu-arm-static binary into the right place for the binfmt packages to find it and copy in resolv.conf from the host. sudo cp /usr/bin/qemu-arm-static $targetdir/usr/bin/ sudo cp /etc/resolv.conf $targetdir/etc

If everything is right we now have a minimal Debian Rootfs sudo chroot $targetdir

Inside the chroot we need to set up the environment again distro=wheezy export LANG=C

Now we are setup the second stage of debootstrap needs to run install the packages downloaded earlier /debootstrap/debootstrap --second-stage

Once the package installation has finished, setup some support files and apt configuration.

cat <<EOT > /etc/apt/sources.list deb http://ftp.uk.debian.org/debian $distro main contrib non-free deb-src http://ftp.uk.debian.org/debian $distro main contrib non-free deb http://ftp.uk.debian.org/debian $distro-updates main contrib non-free deb-src http://ftp.uk.debian.org/debian $distro-updates main contrib non-free deb http://security.debian.org/debian-security $distro/updates main contrib non-free deb-src http://security.debian.org/debian-security $distro/updates main contrib non-free EOT

Update Debian package database: apt-get update

set up locales dpkg scripts tend to complain otherwise, note in jessie you will also need to install the dialog package as well.

apt-get install locales dialog dpkg-reconfigure locales

Install some useful packages inside the chroot apt-get install openssh-server ntpdate

Set a root password so you can login passwd

Build a basic network interface file so that the board will DHCP on eth0 echo <<EOT >> /etc/network/interfaces allow-hotplug eth0 iface eth0 inet static address netmask gateway EOT

Note: Your board will be accessible over SSH on IP address defined above !

Set the hostname echo nameme > /etc/hostname

Enable the serial console, Debian sysvinit way echo T0:2345:respawn:/sbin/getty -L ttyS0 115200 vt100 >> /etc/inittab

We are done inside the chroot, so quit the chroot shell exit

Tidy up the support files sudo rm $targetdir/etc/resolv.conf sudo rm $targetdir/usr/bin/qemu-arm-static

Now you have your Debian rootfs. Next step is to build Kernel, Uboot and to make your SD-card as explained in our early posts and Build instructions but instead to use the rootfs in the posts you can use your own minimal rootfs which you created above. The rootfs image created above is approx 150MB, it could be made smaller if you remove more packages.

Booting from NAND

Booting from USB-stick