Difference between revisions of "RK3188-SOM"

(Debian Wheezy)
Line 8: Line 8:
  
 
First of all you need to install the support packages on your pc
 
First of all you need to install the support packages on your pc
sudo apt-get install qemu-user-static debootstrap binfmt-support
+
'''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.
 
Next you need to choose the version of Debian in this case we are building a wheezy image.
targetdir=rootfs
+
'''targetdir=rootfs
 
distro=wheezy
 
distro=wheezy
 
+
'''
 
   
 
   
  
 
Now we will build first stage of Debian rootfs :
 
Now we will build first stage of Debian rootfs :
mkdir $targetdir
+
'''mkdir $targetdir
sudo debootstrap --arch=armhf --foreign $distro $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.
 
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 /usr/bin/qemu-arm-static $targetdir/usr/bin/
sudo cp /etc/resolv.conf $targetdir/etc
+
sudo cp /etc/resolv.conf $targetdir/etc'''
  
 
   
 
   
Line 36: Line 36:
  
 
Inside the chroot we need to set up the environment again
 
Inside the chroot we need to set up the environment again
distro=wheezy
+
'''distro=wheezy
export LANG=C
+
export LANG=C'''
  
 
   
 
   
  
 
Now we are setup the second stage of debootstrap needs to run install the packages downloaded earlier
 
Now we are setup the second stage of debootstrap needs to run install the packages downloaded earlier
/debootstrap/debootstrap --second-stage
+
'''/debootstrap/debootstrap --second-stage'''
  
 
   
 
   
Line 49: Line 49:
  
 
   
 
   
cat <<EOT > /etc/apt/sources.list
+
'''cat <<EOT > /etc/apt/sources.list
 
deb http://ftp.uk.debian.org/debian $distro main contrib non-free
 
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-src http://ftp.uk.debian.org/debian $distro main contrib non-free
Line 56: Line 56:
 
deb http://security.debian.org/debian-security $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
 
deb-src http://security.debian.org/debian-security $distro/updates main contrib non-free
EOT
+
EOT'''
 
   
 
   
  
 
Update Debian package database:
 
Update Debian package database:
apt-get update
+
'''apt-get update'''
  
 
   
 
   
Line 67: Line 67:
  
 
   
 
   
apt-get install locales dialog
+
'''apt-get install locales dialog
dpkg-reconfigure locales
+
dpkg-reconfigure locales'''
  
 
   
 
   
Line 78: Line 78:
  
 
Set a root password so you can login
 
Set a root password so you can login
passwd
+
'''passwd'''
  
 
   
 
   
  
 
Build a basic network interface file so that the board will DHCP on eth0
 
Build a basic network interface file so that the board will DHCP on eth0
echo <<EOT >> /etc/network/interfaces
+
'''echo <<EOT >> /etc/network/interfaces
 
allow-hotplug eth0
 
allow-hotplug eth0
 
iface eth0 inet static
 
iface eth0 inet static
Line 90: Line 90:
 
gateway 192.168.1.1
 
gateway 192.168.1.1
 
EOT
 
EOT
 
+
'''
 
   
 
   
  
Line 98: Line 98:
  
 
Set the hostname
 
Set the hostname
echo nameme > /etc/hostname
+
'''echo nameme > /etc/hostname
 
+
'''
 
   
 
   
  
 
Enable the serial console, Debian sysvinit way
 
Enable the serial console, Debian sysvinit way
echo T0:2345:respawn:/sbin/getty -L ttyS0 115200 vt100 >> /etc/inittab
+
'''echo T0:2345:respawn:/sbin/getty -L ttyS0 115200 vt100 >> /etc/inittab
 
+
'''
 
   
 
   
  
 
We are done inside the chroot, so quit the chroot shell
 
We are done inside the chroot, so quit the chroot shell
exit
+
'''exit'''
  
 
   
 
   
  
 
Tidy up the support files
 
Tidy up the support files
sudo rm $targetdir/etc/resolv.conf
+
'''sudo rm $targetdir/etc/resolv.conf
sudo rm $targetdir/usr/bin/qemu-arm-static
+
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.
 
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 NAND ===
 
=== Booting from USB-stick ===
 
=== Booting from USB-stick ===
 
== Android ==
 
== Android ==

Revision as of 02:47, 23 October 2014

Linux

Booting from SD-card

Creating root filesystem

Debian Wheezy

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 192.168.1.254 netmask 255.255.255.248 gateway 192.168.1.1 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

Android