RockpiS/dev/Debian
ROCK Pi S > Development > Build Debian
Contents
Rockchip Debian SDK
Below is the instructions of how to build image for ROCK Pi S on a HOST PC.
Get the source code
You need Git to get multiple git repositories to build the image.
Install Git if you don't have it.
sudo apt-get update sudo apt-get install git
Clone the source code
git clone -b stable-4.4-rockpis https://github.com/radxa/rockchip-bsp.git cd rockchip-bsp git submodule init git submodule update
You will get
build kernel README.md rkbin rootfs u-boot
Directories usage introductions:
- build:
- Some script files and configuration files for building u-boot, kernel and rootfs.
- kernel:
- kernel source code, current version is 4.4.143
- rkbin:
- Prebuilt Rockchip binaries, include first stage loader and ATF(Arm Trustzone Firmware).
- rootfs:
- Bootstrap a Debian based rootfs, support architechture armhf and arm64, support Debian Jessie and Stretch.
- u-boot:
- u-boot as the second stage bootloader
Install toolchain and other build tools
sudo apt-get install gcc-aarch64-linux-gnu device-tree-compiler libncurses5 libncurses5-dev build-essential libssl-dev mtools sudo apt-get install bc python dosfstools
Build u-boot
Need to checkout branch to stable-4.4-rockpis.
Build u-boot with default rockpi-s-rk3308_defconfig.
./build/mk-uboot.sh rockpis #For ROCK Pi S
The generated images will be copied to out/u-boot folder
ls out/u-boot/ idbloader.img rk3308_loader_589MHz_uart2_m0_v1.26.111.bin trust.img uboot.img
Build kernel
Need to checkout branch to stable-4.4-rockpis.
Build kernel with default rk3308_linux_defconfig.
./build/mk-kernel.sh rockpis #For ROCK Pi S
Change kernel config(optional)
Optionally, if you want to change the default kernel config
cd kernel export ARCH=arm64 export CROSS_COMPILE=aarch64-linux-gnu- make rockchip_linux_defconfig make menuconfig cd .. ./build/mk-kernel.sh rockpis #For ROCK Pi S
You will get the kernel image and dtb file
ls out/kernel/ Image rockpi-s-linux.dtb
Make rootfs image
To build 32bit rootfs:
export ARCH=armhf
To build 64bit rootfs:
export ARCH=arm64
Building a base debian system by ubuntu-build-service from linaro.
cd rootfs sudo apt-get install binfmt-support qemu-user-static cpio gdisk sudo dpkg -i ubuntu-build-service/packages/* # ignore the broken dependencies, we will fix it next step sudo apt-get install -f RELEASE=stretch TARGET=desktop ARCH=$ARCH ./mk-base-debian.sh
This will bootstrap a Debian stretch image, you will get a rootfs tarball named linaro-stretch-alip-xxxx.tar.gz.
Building the rk-debain rootfs with debug:
VERSION=debug ARCH=$ARCH ./mk-rootfs-stretch.sh && ./mk-image.sh
This will install Rockchip specified packages and hooks on the standard Debian rootfs and generate an ext4 format rootfs image at rootfs/linaro-rootfs.img.
Combine everything into one image
build/mk-image.sh -c rk3308 -t system -r rootfs/linaro-rootfs.img
This will combine u-boot, kernel and rootfs into one image and generate GPT partition table. Output is
out/system.img
Flash the image
When install system image, system.img to uSD card, need APP Etcher or tool dd.
Troubleshooting
Check ROCK Pi S FAQs first, if it doesn't help, start a new post on the forum https://forum.radxa.com/c/dev