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

From ESS-WIKI
Jump to: navigation, search
 
(53 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 18: Line 22:
  
  
<syntaxhighlight lang="bash">$sudo apt-get install ibssl-dev  
+
<syntaxhighlight lang="bash">$sudo apt-get install libssl-dev
 
$sudo apt-get install texinfo
 
$sudo apt-get install texinfo
 
$sudo apt-get install liblz4-tool  
 
$sudo apt-get install liblz4-tool  
Line 26: Line 30:
 
== <span style="color:#0070c0">Getting Debian Source Code</span> ==
 
== <span style="color:#0070c0">Getting Debian Source Code</span> ==
  
<span style="font-size:medium">'''<span style="font-family: times new roman,times,serif"><small>Step1&nbsp;: To pull down the Android source tree to your working directory from the repositories as specified in the default manifest</small></span>'''</span>
+
<span style="font-size:medium">'''<span style="font-family: times new roman,times,serif"><small>Step1&nbsp;: To pull down the Linux source tree to your working directory from the repositories as specified in the default manifest</small></span>'''</span>
 
<syntaxhighlight lang="bash">$ mkdir rk3399
 
<syntaxhighlight lang="bash">$ mkdir rk3399
 
$ mkdir bin
 
$ mkdir bin
Line 42: Line 46:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
== <span style="color:#0070c0">Build Kernel</span> ==
 
== <span style="color:#0070c0">Build Kernel</span> ==
 +
 +
== <span style="color:#0070c0">Build DS-100 Kernel</span> ==
  
  
Line 47: Line 53:
 
$make ARCH=arm64 rockchip_ds100_defconfig
 
$make ARCH=arm64 rockchip_ds100_defconfig
 
$make ARCH=arm64 rk3399-ds100.img -j8
 
$make ARCH=arm64 rk3399-ds100.img -j8
 +
</syntaxhighlight>
 +
== <span style="color:#0070c0">Build DS-100Lite Kernel</span> ==
 +
 +
 +
<syntaxhighlight lang="bash">$cd rk3399/kernel/
 +
$make ARCH=arm64 rockchip_ds100l_defconfig
 +
$make ARCH=arm64 rk3399-ds100l.img -j8
 
</syntaxhighlight>
 
</syntaxhighlight>
 
== <span style="color:#0070c0">Build Recovery</span> ==
 
== <span style="color:#0070c0">Build Recovery</span> ==
  
  
<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 64: 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 75: 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:#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
  
== <span style="color:#0070c0">How to do about update DS100 and DS100L Platform?</span> ==
+
&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.''' ===
 +
 
 +
#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.
 +
 
 +
== <span style="color:#0070c0">Modules</span> ==
 +
 
 +
=== EWM-C117-4G Module ===
 +
 
 +
*[[:File:EWM-C117_for_RK3399_ds100.docx|EWM-C117_for_RK3399_ds100.docx]]
 +
 
 +
=== EWM-W163M201E ===
 +
 
 +
*[[:File:EWM-W163M201E_porting_guide_on_DS100.docx|EWM-W163M201E_porting_guide_on_DS100.docx]]
 +
 
 +
*[[:File:EWM-W163_firmware.7z|EWM-W163_Firmware]]
 +
 
 +
=== EWM-W188 ===
 +
 
 +
*[[:File:EWM-W188_Bluetooth_porting_guide_for_ds100-debian.docx|EWM-W188_Bluetooth_porting_guide_for_ds100-debian.docx]]
 +
 
 +
=== EWM-C145-4G Module ===
  
Download AndroidTool_Release_v2.45.zip and DriverAssitant_v4.5.zip
+
*[[:File:EWM-4G_porting_guide_on_DS100_new.docx|EWM-4G_Porting_Guide_On_DS100]]
  
[https://github.com/ADVANTECH-Rockchip/rk3399_tools/tree/linux_4.4 https://github.com/ADVANTECH-Rockchip/rk3399_tools/tree/linux_4.4]
+
== <span style="color:#0070c0">Add CIFS</span> ==
  
Step1 Connect with the OTG port and PC.
+
=== Support CIFS ===
  
[[File:20180719 181034.jpg|500px|20180719_181034.jpg]]
 
  
Step2 Double click DriverInstall.
+
<syntaxhighlight lang="bash">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
 +
</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>
 +
*//xxx.xxx.xx.xx/clayder Network PC share folder
 +
*/tmp_mount DS100 target folder
  
[[File:DriverAssitant.jpg|700px|DriverAssitant.jpg]]
 
  
Step3 ADB or Debug console, send command "reboot bootloader"
 
  
[[File:JJ1.jpg|700px|242.jpg]]
+
== <span style="color:#0070c0">Video player Test</span> ==
  
Step4 Select the image path.
+
Player 4K Video Example
  
[[File:JJ1.jpg|700px|2422.jpg]]
 
  
Step4 Finish the update
+
<syntaxhighlight lang="bash"># export DISPLAY=:0.0
 +
# su linaro -c "gst-launch-1.0 uridecodebin uri=file:///usr/local/test.mp4  ! rkximagesink" </syntaxhighlight>

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"