Please enable javascript, or click here to visit my ecommerce web site powered by Shopify.
Jump to: navigation, search

Difference between revisions of "RockpiN10/dev/Debian"

< RockpiN10‎ | dev
(Flash the image)
Line 143: Line 143:
 
==== Flash the image ====
 
==== Flash the image ====
  
When install system image, system.img to uSD card, need APP '''Etcher''' or tool '''dd'''.
+
* [[rockpiN10/install/eMMC | Install on eMMC]]
 +
* [[rockpiN10/install/microSD | Install on microSD]]
  
 
==== Troubleshooting ====
 
==== Troubleshooting ====
  
 
Check [[RockpiN10/FAQs |ROCK Pi N10 FAQs]] first, if it doesn't help, start a new post on the forum https://forum.radxa.com/c/rockpiN10.
 
Check [[RockpiN10/FAQs |ROCK Pi N10 FAQs]] first, if it doesn't help, start a new post on the forum https://forum.radxa.com/c/rockpiN10.

Revision as of 04:53, 21 January 2021

    ROCK Pi N10 >  Development >  Build Debian

Rockchip Debian SDK

Below is the instructions of how to build image for ROCK Pi N10 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 rk3399pro 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.167.
  • 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

Update the source code

cd rockchip-bsp
git checkout rk3399pro
git fetch origin
git rebase origin/rk3399pro
git submodule update

Install toolchain from Linaro

wget https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz
sudo tar xvf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz  -C /usr/local/
export CROSS_COMPILE=/usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
export PATH=/usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin:$PATH

Check if Linaro toolchain is the default choice:

which aarch64-linux-gnu-gcc
/usr/local/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc

Install 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 rk3399-pie-gms-express-baseline.

Build u-boot with default rk3399pro_defconfig.

./build/mk-uboot.sh rockpin10     #For ROCK Pi N10

The generated images will be copied to out/u-boot folder

ls out/u-boot/
idbloader.img  rk3399pro_loader_v1.20.115.bin rk3399pro_npu_loader_v1.02.102.bin trust.img  uboot.img

Build kernel

Need to checkout branch to rk3399pro-toybrick-stable.

Build kernel with default rockchip_linux_defconfig.

./build/mk-kernel.sh rockpin10    #For ROCK Pi N10
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 rockpin10    #For ROCK Pi N10

You will get the kernel image and dtb file

ls out/kernel/
Image  rk3399pro-rockpi-n10-linux.dtb

Make rootfs image

Check out the rootfs source. The repository is https://github.com/radxa/rk-rootfs-build.git and the branch is debian.

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-buster.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 rk3399pro -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

Troubleshooting

Check ROCK Pi N10 FAQs first, if it doesn't help, start a new post on the forum https://forum.radxa.com/c/rockpiN10.