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

Difference between revisions of "RockpiS/dev/Debian"

< RockpiS‎ | dev
(Rockchip Debian SDK)
(Build u-boot)
Line 66: Line 66:
  
 
     ls out/u-boot/
 
     ls out/u-boot/
     idbloader.img  rk3308_loader_589MHz_uart2_m0_v1.26.111.bin trust.img  uboot.img
+
     idbloader.img  rk3308_loader_uart0_m0_emmc_port_support_sd_20190717.bin trust.img  uboot.img
  
 
== Build kernel ==
 
== Build kernel ==

Revision as of 07:06, 29 May 2020

    ROCK Pi S >  Development >  Build Debian

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

Update the source code

   cd rockchip-bsp
   git checkout stable-4.4-rockpis
   git fetch origin
   git rebase origin/stable-4.4-rockpis
   git submodule update

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_uart0_m0_emmc_port_support_sd_20190717.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