Difference between revisions of "IoTGateway/BSP/Linux/Linux BSP User Guide Debian9 for rk"

From ESS-WIKI
Jump to: navigation, search
 
(46 intermediate revisions by 3 users not shown)
Line 2: Line 2:
  
 
Debian9
 
Debian9
 +
 +
== <span style="color:#0070c0">Linux BSP Document</span> ==
 +
 +
[https://github.com/rockchip-linux/docs Rockchip Linux Document]
  
 
== <span style="color:#0070c0">Get Docker Image</span> ==
 
== <span style="color:#0070c0">Get Docker Image</span> ==
  
  
<syntaxhighlight lang="bash">$docker pull advrisc/u16.04-rklbv1
+
<syntaxhighlight lang="bash">$ docker pull advrisc/u16.04-rklbv1
 
</syntaxhighlight>
 
</syntaxhighlight>
 
== <span style="color:#0070c0">Run Docker example</span> ==
 
== <span style="color:#0070c0">Run Docker example</span> ==
Line 35: Line 39:
 
$ ../bin/repo sync
 
$ ../bin/repo sync
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
== <span style="color:#0070c0">Build U-boot</span> ==
 
== <span style="color:#0070c0">Build U-boot</span> ==
  
Line 61: Line 64:
  
  
<syntaxhighlight lang="bash">$cd rk3399
+
<syntaxhighlight lang="bash">$./build.sh recovery
$./build.sh recovery
 
 
</syntaxhighlight>In /output/rockchip_rk3399_recovery/images create recovery.img
 
</syntaxhighlight>In /output/rockchip_rk3399_recovery/images create recovery.img
 
== <span style="color:#0070c0">Build Buildroot rootfs</span> ==
 
== <span style="color:#0070c0">Build Buildroot rootfs</span> ==
Line 74: Line 76:
  
  
<syntaxhighlight lang="bash">$cd rk3399/rootfs/
+
<syntaxhighlight lang="bash">$cd rootfs/
 
$sudo apt-get install binfmt-support qemu-user-static live-build
 
$sudo apt-get install binfmt-support qemu-user-static live-build
 
$sudo dpkg -i ubuntu-build-service/packages/*
 
$sudo dpkg -i ubuntu-build-service/packages/*
Line 85: Line 87:
 
<syntaxhighlight lang="bash">$VERSION=debug ARCH=arm64 ./mk-rootfs-stretch-arm64.sh
 
<syntaxhighlight lang="bash">$VERSION=debug ARCH=arm64 ./mk-rootfs-stretch-arm64.sh
 
</syntaxhighlight>
 
</syntaxhighlight>
=== <span style="color:#0070c0">Creating the ext4 image(</span> ===
+
=== <span style="color:#0070c0">Creating the ext4 image</span> ===
  
  
 
<syntaxhighlight lang="bash">$./mk-image.sh
 
<syntaxhighlight lang="bash">$./mk-image.sh
</syntaxhighlight> check All Debian Image in rockimg folder
+
$cd ..
 +
$./mkfirmware.sh debian
 +
</syntaxhighlight> Then please check Image in rockdev folder
 +
== <span style="color:#0070c0">How to do about update DS100 and DS100L Platform?</span> ==
 +
 
 +
If DS100 in Linux(Debian9), you want to upgrade to Linux(Debian9)
 +
 
 +
*[[IoTGateway/BSP/Linux/Update_SOP1_Image_DS100_and_DS100Lite|Update&nbsp;Image DS100 and DS100Lite]]
 +
 
 +
If DS100 in Android(7.1.2), you want to upgrade to Linux(Debian9)
 +
 
 +
*[[IoTGateway/BSP/Linux/Update_SOP2_Image_DS100_and_DS100Lite|Update&nbsp;Image DS100 and DS100Lite]]
 +
 
 +
 
 +
 
 +
== <span style="color:#0070c0">Download DS100 Debian Demo Images</span> ==
 +
 
 +
*[https://www.dropbox.com/s/pqi08ptkvap76y2/DIV0004_DS100_20181107.7z?dl=0 DS100 Debain Demo Image]
 +
 
 +
== <span style="color:#0070c0">Boot From SD Card Image (DS100-Lite/DMS-53)</span> ==
 +
 
 +
=== Step1 Download&nbsp; ===
 +
 
 +
&nbsp; <small>&nbsp; Download tool'''''<big>rockdev.tar.gz</big>''''' and '''''<big>SDDiskTool_v1.56.7z</big>.'''''</small>
 +
 
 +
<small>&nbsp; &nbsp; Download path&nbsp;: </small>[https://github.com/ADVANTECH-Rockchip/rk3399_tools/tree/linux_4.4 https://github.com/ADVANTECH-Rockchip/rk3399_tools/tree/linux_4.4]
  
 +
=== Step2&nbsp;Create Upadte Image (In Linux env) ===
  
== <span style="color:#0070c0">How to do about update DS100 and DS100L Platform?</span> ==
+
<span style="color:#FF0000;">'''If you linux env is 64 bits, you need to Install some tool.'''</span>
 +
 
 +
 
 +
<syntaxhighlight lang="bash">$sudo dpkg --add-architecture i386
 +
$sudo apt-get update
 +
$sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
 +
</syntaxhighlight> &nbsp; step 2-1&nbsp; $tar zxvf rockdev.tar.gz &nbsp; step 2-2&nbsp; Copy all linux Image to rockdev/Image folder
 +
&nbsp; step 2-3&nbsp; Check your Image path&nbsp;in rk3399-package-file
 +
 
 +
&nbsp; step 2-4&nbsp; $./rk3399-mkupdate.sh
 +
 
 +
&nbsp; step 2-5&nbsp; Creat the update.img&nbsp; in rockdev/update.img
 +
 
 +
=== Step3&nbsp;Create SD Card (In Windows env) ===
 +
 
 +
&nbsp; step 3-1&nbsp; Unzip SDDiskTool_v1.56
 +
 
 +
&nbsp; step 3-2&nbsp; Run SD_Firmware_Tool
 +
 
 +
&nbsp; step 3-3&nbsp; Insert the SD card to your PC and push the botton&nbsp;"Resotore"
 +
 
 +
&nbsp; step 3-4 Choose firmware (choose the update.img)&nbsp;
 +
 
 +
&nbsp; step 3-5&nbsp;Chooes the SD Boot and&nbsp; push the botton "Create"
 +
 
 +
&nbsp; step 3.6 Finished
 +
 
 +
== <span style="color:#0070c0">Upgrade OS Image on EMMC from a SD card</span> ==
 +
 
 +
=== '''Produce update.img''' ===
 +
 
 +
Please make sure there are included resource.img, misc.img&nbsp; and recovery.img in the Image folder. ( So does the package-file ).
 +
 
 +
PS: Both&nbsp;resource.img and misc.img derived from DS100 Android build.
 +
 
 +
=== '''Make an EMMC downloader SD card''' ===
 +
 
 +
Every step described as above.&nbsp;on "Second: Choose function mode", please check&nbsp;the checkbox "Upgrade Firmware".
  
 +
=== '''Update OS image on EMMC.''' ===
  
*[[IoTGateway/BSP/Linux/Update SOP1 Image DS100 and DS100Lite|Update SOP1 Image DS100 and DS100Lite]]
+
#Insert the&nbsp;EMMC downloader SD card on a booted DUT.
 +
#Enter command "boot recovery".
 +
#The system will do a recovery step.
 +
#Turn off the DUT after the yellow text disappears on screen.
 +
#Removing the SD card and turn on DUT.
 +
#The system will remove user data and reboot.
  
*[[IoTGateway/BSP/Linux/Update SOP2 Image DS100 and DS100Lite|Update SOP2 Image DS100 and DS100Lite]]
+
== <span style="color:#0070c0">Modules</span> ==
  
Download AndroidTool_Linux_v2.55.zip and DriverAssitant_v4.5.zip
+
=== EWM-C117-4G Module ===
  
[https://github.com/ADVANTECH-Rockchip/rk3399_tools/tree/linux_4.4 https://github.com/ADVANTECH-Rockchip/rk3399_tools/tree/linux_4.4]
+
*[[:File:EWM-C117_for_RK3399_ds100.docx|EWM-C117_for_RK3399_ds100.docx]]
  
Step1 Connect with the OTG port and PC.
+
=== EWM-W163M201E ===
  
[[File:20180719 181034.jpg|500px|20180719_181034.jpg]]
+
*[[:File:EWM-W163M201E_porting_guide_on_DS100.docx|EWM-W163M201E_porting_guide_on_DS100.docx]]
  
Step2 Double click DriverInstall.
+
*[[:File:EWM-W163_firmware.7z|EWM-W163_Firmware]]
  
[[File:DriverAssitant.jpg|700px|DriverAssitant.jpg]]
+
=== EWM-W188 ===
  
Step3 ADB or Debug console, send command "reboot bootloader"
+
*[[:File:EWM-W188_Bluetooth_porting_guide_for_ds100-debian.docx|EWM-W188_Bluetooth_porting_guide_for_ds100-debian.docx]]
  
[[File:JJ1.jpg|700px|242.jpg]]
+
=== EWM-C145-4G Module ===
  
Step4 Select the image path.
+
*[[:File:EWM-4G_porting_guide_on_DS100_new.docx|EWM-4G_Porting_Guide_On_DS100]]
  
[[File:JJ1.jpg|700px|2422.jpg]]
+
== <span style="color:#0070c0">Add CIFS</span> ==
  
Step4 Finish the update
+
=== Support CIFS ===
  
  
<syntaxhighlight lang="bash">Update Debian
+
<syntaxhighlight lang="bash">Add CIFS config in kernel config 
0x00000000 loader     rk3399_loader_v1.14.115.bin
+
CONFIG_FAT_DEFAULT_IOCHARSET="utf8"
0x00000000 parameter  parameter-debian.txt
+
CONFIG_TMPFS=y
0x00004000 uboot      uboot.img
+
CONFIG_TMPFS_POSIX_ACL=y
0x00006000 trust      trust.img
+
+CONFIG_CIFS=y
0x0000A000 boot       boot.img
+
+CONFIG_CIFS_XATTR=y
0x0003A000 oem        oem.img
+
+CONFIG_CIFS_POSIX=y
0x0005A000 rootfs     linaro-rootfs.img
+
CONFIG_SQUASHFS=y
 +
CONFIG_NFS_FS=y
 +
CONFIG_NFS_V3_ACL=y
 +
</syntaxhighlight><syntaxhighlight lang="bash">$sudo apt-get update
 +
$sudo apt-get install cifs-utils
 +
$mkdir /tmp_mount
 +
$sudo mount.cifs //xxx.xxx.xx.xx/clayder /tmp_mount -o username=clayder<--example
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
*//xxx.xxx.xx.xx/clayder Network PC share folder
 +
*/tmp_mount DS100 target folder
 +
 +
 +
 +
== <span style="color:#0070c0">Video player Test</span> ==
 +
 +
Player 4K Video Example
 +
  
<syntaxhighlight lang="bash">Update Buildroot
+
<syntaxhighlight lang="bash"># export DISPLAY=:0.0
0x00000000 loader     rk3399_loader_v1.14.115.bin
+
# su linaro -c "gst-launch-1.0 uridecodebin uri=file:///usr/local/test.mp4  ! rkximagesink" </syntaxhighlight>
0x00000000 parameter  parameter-debian.txt
 
0x00004000 uboot      uboot.img
 
0x00006000 trust      trust.img
 
0x0000A000 boot       boot.img
 
0x0003A000 oem        oem.img
 
0x0005A000 rootfs     rootfs.ext4
 
</syntaxhighlight><br/>
 

Latest revision as of 03:07, 7 November 2019

Linux BSP Version

Debian9

Linux BSP Document

Rockchip Linux Document

Get Docker Image

$ docker pull advrisc/u16.04-rklbv1

Run Docker example

$docker run -it --name rk_linux --privileged -v /home/adv/rk3399_v20:/home/adv/BSP:rw advrisc/u16.04-rklbv1:latest /bin/bash 


Install Some tools For Rockchip Linux v2.07 version

$sudo apt-get install libssl-dev
$sudo apt-get install texinfo
$sudo apt-get install liblz4-tool 
$sudo apt-get install genext2fs
$sudo apt-get install time

Getting Debian Source Code

Step1 : To pull down the Linux source tree to your working directory from the repositories as specified in the default manifest

$ mkdir rk3399
$ mkdir bin
$ cd rk3399/
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ../bin/repo
$ chmod a+x ../bin/repo
$ ../bin/repo init -u https://github.com/ADVANTECH-Rockchip/linux-manifest.git -b rk3399_linux_v2.0
$ ../bin/repo sync

Build U-boot

$cd rk3399/u-boot/
$./make.sh evb-rk3399

Build Kernel

Build DS-100 Kernel

$cd rk3399/kernel/
$make ARCH=arm64 rockchip_ds100_defconfig
$make ARCH=arm64 rk3399-ds100.img -j8

Build DS-100Lite Kernel

$cd rk3399/kernel/
$make ARCH=arm64 rockchip_ds100l_defconfig
$make ARCH=arm64 rk3399-ds100l.img -j8

Build Recovery

$./build.sh recovery
In /output/rockchip_rk3399_recovery/images create recovery.img

Build Buildroot rootfs

$./build.sh rootfs

Build Rootfs

Building base debian system by ubuntu-build-service from linaro

$cd rootfs/
$sudo apt-get install binfmt-support qemu-user-static live-build
$sudo dpkg -i ubuntu-build-service/packages/*
$sudo apt-get install -f
$RELEASE=stretch TARGET=desktop ARCH=arm64 ./mk-base-debian.sh
In rootfs creat linaro-stretch-alip-xxxxx-1.tar.gz

Building rk-debian rootfs

$VERSION=debug ARCH=arm64 ./mk-rootfs-stretch-arm64.sh

Creating the ext4 image

$./mk-image.sh
$cd ..
$./mkfirmware.sh debian
Then please check Image in rockdev folder

How to do about update DS100 and DS100L Platform?

If DS100 in Linux(Debian9), you want to upgrade to Linux(Debian9)

If DS100 in Android(7.1.2), you want to upgrade to Linux(Debian9)


Download DS100 Debian Demo Images

Boot From SD Card Image (DS100-Lite/DMS-53)

Step1 Download 

    Download toolrockdev.tar.gz and SDDiskTool_v1.56.7z.

    Download path : https://github.com/ADVANTECH-Rockchip/rk3399_tools/tree/linux_4.4

Step2 Create Upadte Image (In Linux env)

If you linux env is 64 bits, you need to Install some tool.


$sudo dpkg --add-architecture i386
$sudo apt-get update
$sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
  step 2-1  $tar zxvf rockdev.tar.gz   step 2-2  Copy all linux Image to rockdev/Image folder

  step 2-3  Check your Image path in rk3399-package-file

  step 2-4  $./rk3399-mkupdate.sh

  step 2-5  Creat the update.img  in rockdev/update.img

Step3 Create SD Card (In Windows env)

  step 3-1  Unzip SDDiskTool_v1.56

  step 3-2  Run SD_Firmware_Tool

  step 3-3  Insert the SD card to your PC and push the botton "Resotore"

  step 3-4 Choose firmware (choose the update.img) 

  step 3-5 Chooes the SD Boot and  push the botton "Create"

  step 3.6 Finished

Upgrade OS Image on EMMC from a SD card

Produce update.img

Please make sure there are included resource.img, misc.img  and recovery.img in the Image folder. ( So does the package-file ).

PS: Both resource.img and misc.img derived from DS100 Android build.

Make an EMMC downloader SD card

Every step described as above. on "Second: Choose function mode", please check the checkbox "Upgrade Firmware".

Update OS image on EMMC.

  1. Insert the EMMC downloader SD card on a booted DUT.
  2. Enter command "boot recovery".
  3. The system will do a recovery step.
  4. Turn off the DUT after the yellow text disappears on screen.
  5. Removing the SD card and turn on DUT.
  6. The system will remove user data and reboot.

Modules

EWM-C117-4G Module

EWM-W163M201E

EWM-W188

EWM-C145-4G Module

Add CIFS

Support CIFS

Add CIFS config in kernel config 
CONFIG_FAT_DEFAULT_IOCHARSET="utf8"
CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_CIFS=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
CONFIG_SQUASHFS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3_ACL=y
$sudo apt-get update
$sudo apt-get install cifs-utils
$mkdir /tmp_mount
$sudo mount.cifs //xxx.xxx.xx.xx/clayder /tmp_mount -o username=clayder<--example
  • //xxx.xxx.xx.xx/clayder Network PC share folder
  • /tmp_mount DS100 target folder


Video player Test

Player 4K Video Example


# export DISPLAY=:0.0
# su linaro -c "gst-launch-1.0 uridecodebin uri=file:///usr/local/test.mp4  ! rkximagesink"