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

Difference between revisions of "RockpiE/dev/Debian"

< RockpiE‎ | dev
(Troubleshooting)
(FAQs)
Line 134: Line 134:
 
== FAQs ==
 
== FAQs ==
  
==== 1.With an USB to TTL serial cable connected with UART2 pins (pin#10, pin#8, ping#6 on 40-PIN Header) on ROCK Pi E, system log is shown as follows. ====
+
==== 1.I have built one ROCK Pi E system image using rockchip-bsp SDK. With an USB to TTL serial cable connected with UART2 pins (pin#10, pin#8, ping#6 on 40-PIN Header) on ROCK Pi E, the last one line of system logs is shown as follows. ====
  
     [    0.001996] Console: colour dummy device 80x25
+
     [    0.932225] bootconsole [uart0] disabled
    [    0.002413] console [tty0] enabled
+
    [    0.002743] bootconsole [uart0] disabled
+
  
In fact the system starts up with no system log information shown on screen. If your ROCK Pi E system supports Ethernet/WiFi and SSH, you can access ROCK Pi E by SSH.
+
In fact the system starts up. If your ROCK Pi E system supports Ethernet/WiFi and SSH, you can access ROCK Pi E via SSH.
  
The FIQ Debugger is disabled by default. If you want to use debugger console, you can modify ROCK Pi E device tree, rk3328-rock-pi-e.dts to enable fiq_debugger node.
+
If you read the kernel command line of system log, you will find that the default console is ttyS2 (1500000n8). But due to uart2 is disabled by default in file rk3328-rock-pi-e.dts, there will be no more system logs on the screen.
  
    fiq_debugger: fiq-debugger {
+
To enable console ttyS2, you need to enable uart2 node. Add the following lines at the end of file rk3328-rock-pi-e.dts.
        compatible = "rockchip,fiq-debugger";
+
 
        rockchip,serial-id = <2>;
+
    &uart2 {
        rockchip,signal-irq = <159>;
+
        rockchip,wake-irq = <0>;
+
        /* If enable uart uses irq instead of fiq */
+
        rockchip,irq-mode-enable = <0>;
+
        rockchip,baudrate = <1500000>;  /* Only 115200 and 1500000 */
+
        interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_LOW>;
+
 
         status = "okay";
 
         status = "okay";
 
     };
 
     };

Revision as of 03:38, 28 May 2020

    ROCK Pi E >  Development >  Build Debian

Rockchip Debian SDK

Below is the instructions of how to build image for ROCK Pi E 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-rockpie 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.154.
  • 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-rockpie
   git fetch origin
   git rebase origin/stable-4.4-rockpie
   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-rockpie.

Build u-boot with default rock-pi-e-rk3328_defconfig.

   ./build/mk-uboot.sh rockpie     #For ROCK Pi E

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

   ls out/u-boot/
   idbloader.img  rk3328_loader_ddr333_v1.16.250.bin  trust.img  uboot.img

Build kernel

Need to checkout branch to stable-4.4-rockpie.

Build kernel with default rockchip_linux_defconfig.

   ./build/mk-kernel.sh rockpie    #For ROCK Pi E

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 rockpie    #For ROCK Pi E


You will get the kernel image and dtb file

   ls out/kernel/
   Image  rk3328-rock-pi-e.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 rk3328 -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.

FAQs

1.I have built one ROCK Pi E system image using rockchip-bsp SDK. With an USB to TTL serial cable connected with UART2 pins (pin#10, pin#8, ping#6 on 40-PIN Header) on ROCK Pi E, the last one line of system logs is shown as follows.

   [    0.932225] bootconsole [uart0] disabled

In fact the system starts up. If your ROCK Pi E system supports Ethernet/WiFi and SSH, you can access ROCK Pi E via SSH.

If you read the kernel command line of system log, you will find that the default console is ttyS2 (1500000n8). But due to uart2 is disabled by default in file rk3328-rock-pi-e.dts, there will be no more system logs on the screen.

To enable console ttyS2, you need to enable uart2 node. Add the following lines at the end of file rk3328-rock-pi-e.dts.

   &uart2 {
       status = "okay";
   };

Troubleshooting

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