Difference between revisions of "Rockpi4/dev/Debian"
(→Get the source code) |
|||
Line 26: | Line 26: | ||
build kernel README.md rkbin rootfs u-boot | build kernel README.md rkbin rootfs u-boot | ||
− | + | Directories usage introductions: | |
* build: | * build: | ||
** Some script files and configuration files for building u-boot, kernel and rootfs. | ** Some script files and configuration files for building u-boot, kernel and rootfs. | ||
* kernel: | * kernel: | ||
− | ** kernel source code | + | ** kernel source code, current version is 4.4 |
* rkbin: | * rkbin: | ||
− | ** | + | ** Prebuilt Rockchip binaries, include first stage loader and ATF(Arm Trustzone Firmware). |
* rootfs: | * rootfs: | ||
− | ** rootfs | + | ** Bootstrap a Debian based rootfs, support architechture armhf and arm64, support Debian Jessie and Stretch. |
* u-boot: | * u-boot: | ||
− | ** u-boot | + | ** u-boot as the second stage bootloader |
== Install toolchain and other build tools == | == Install toolchain and other build tools == |
Revision as of 02:19, 5 December 2018
ROCK Pi 4 > Development > Build Debian
Contents
Rockchip Debian SDK
Below is the instructions of how to build image for ROCK Pi 4.
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 --recursive https://github.com/radxa/rockchip-bsp.git
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
- 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
Build u-boot
./build/mk-uboot.sh rockpi4b #For ROCK Pi 4 Mode B
The generated images will be copied to out/u-boot folder
ls out/u-boot/ idbloader.img rk3399_loader_v1.12.112.bin trust.img uboot.img
Build kernel
./build/mk-kernel.sh rockpi4b #For ROCK Pi 4 Mode B
You will get the kernel image and dtb file
ls out/kernel/ Image rockpi-4b-linux.dtb
Make rootfs image
Building a base debian system by ubuntu-build-service from linaro.
sudo apt-get install binfmt-support qemu-user-static 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=armhf ./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=armhf ./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` .
Please notice that when setting ARCH to armhf, you build a 32-bit rootfs. And when setting ARCH to arm64, you build a 64-bit rootfs.
Combine everything into one image
build/mk-image.sh -c rk3399 -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
Follow instructions here
Troubleshooting
Go to Pi 4 FAQs