Difference between revisions of "RSB-3720 user guide"

From ESS-WIKI
Jump to: navigation, search
 
(165 intermediate revisions by 2 users not shown)
Line 1: Line 1:
== '''資源特性(Features)''' ==
 
  
*NXP Arm® Cortex®-A53 i.MX8M Plus Quad/Dual up to 1.8 GHz
+
== '''產品介紹(Product introduction )''' ==
*Onboard LPDDR4 4 GB / 6 GB, 4000MT/s memory
 
*HDMI 1920x1080 at 60Hz, 1 Single or 1 Dual Channel 24 bit LVDS (or 1 4-Lane MIPI-DSI by BOM Option)
 
*1 4-wire RS-232/422/485, 1 USB3.2 Gen1 By 1, 1 USB2.0, 1 Micro SD, 1 Mic. in / Line out
 
*1 mini-PCIe for 3G/4G, 1 M.2 2230 Key E Slot
 
*Supports Yocto Linux and Android
 
*Support I/O Expansions boards by UIO40-Express
 
  
== '''訂購資訊(Ordering Information)''' ==
+
=== '''產品特性(Product Features)''' ===
  
[[File:RSB-3720 ordinfo 2021-10-21 143630.jpg|RTENOTITLE]]
+
*NXP Arm® Cortex®-A53 i.MX8M Plus Quad/Dual up to 1.8 GHz
 +
*Onboard LPDDR4 4 GB / 6 GB, 4000MT/s memory
 +
*HDMI 1920x1080 at 60Hz, 1 Single or 1 Dual Channel 24 bit LVDS (or 1 4-Lane MIPI-DSI by BOM Option)
 +
*1 4-wire RS-232/422/485, 1 USB3.2 Gen1 By 1, 1 USB2.0, 1 Micro SD, 1 Mic. in / Line out
 +
*1 mini-PCIe for 3G/4G, 1 M.2 2230 Key E Slot
 +
*Supports Yocto Linux and Android
 +
*Support I/O Expansions boards by UIO40-Express
  
== '''规格(Specifications)''' ==
 
  
== '''接口布局和尺寸(Layout and Sizes)''' ==
+
=== '''產品官網連結(Product official website link) ''' ===
  
=== '''接口布局圖 Board Dimension Layout ''' ===
+
[https://www.advantech.com/zh-tw/products/5912096e-f242-4b17-993a-1acdcaada6f6/rsb-3720/mod_d2f1b0bc-650b-449a-8ef7-b65ce4f69949 '''RSB-3720''']
 +
 
 +
== '''硬件接口說明(Hardware interface introduction)''' ==
 +
 
 +
=== '''接口布局和尺寸(Layout and Sizes)''' ===
 +
 
 +
=== '''RSB-3720 接口布局圖(Board Dimension Layout) ''' ===
 +
 
 +
 
  
 
[[File:RSB-3720 board review2021-10-21 144120.jpg|RTENOTITLE]]
 
[[File:RSB-3720 board review2021-10-21 144120.jpg|RTENOTITLE]]
Line 23: Line 29:
 
[[File:RSB-3720 connector location 2021-10-21 143853.jpg|RTENOTITLE]]
 
[[File:RSB-3720 connector location 2021-10-21 143853.jpg|RTENOTITLE]]
  
 
+
 
  
 
[[File:RSB-3720 connector location back 2021-10-21 144716.jpg|RTENOTITLE]]
 
[[File:RSB-3720 connector location back 2021-10-21 144716.jpg|RTENOTITLE]]
  
 +
 
  
 
+
{| border="1" cellpadding="1" cellspacing="1"
== ''' ''''''Connector List''' ==
 
 
 
{| border="1" cellspacing="1" cellpadding="1"
 
 
|-
 
|-
 
| BAT
 
| BAT
Line 91: Line 95:
 
|-
 
|-
 
| USB1
 
| USB1
| USB CONN. (USB 3.2 Gen 1 on TOP + USB 2.0 on BOT)<br/>
+
| USB CONN. (USB 3.2 Gen 1 on TOP + USB 2.0 on BOT)
 
|}
 
|}
 +
 +
&nbsp;
  
 
=== '''接口引脚定義 (Pin definitions)''' ===
 
=== '''接口引脚定義 (Pin definitions)''' ===
  
*[[BLP1|BLP1&nbsp;]]
+
*[[BLP1|BLP1&nbsp;]]  
*[[BLP2|BLP2]]
+
*[[BLP2|BLP2]]  
*[[VDD1|VDD1]]
+
*[http://ess-wiki.advantech.com.tw/wiki/index.php?title=VDD1&oldid=21592 VDD1]  
*[[SW1|SW1]]
+
*[http://ess-wiki.advantech.com.tw/wiki/index.php?title=SW1&oldid=21594 SW1]  
*[[BAT_(RTC_Battery_CONN.)|BAT (RTC Battery CONN.)]]
+
*[[BAT_(RTC_Battery_CONN.)|BAT (RTC Battery CONN.)]]  
*[[BL1_(LVDS_Backlight_1)|BL1 (LVDS Backlight 1)]]
+
*[[BL1_(LVDS_Backlight_1)|BL1 (LVDS Backlight 1)]]  
*[[BL2_(LVDS_Backlight_2)|BL2 (LVDS Backlight 2)]]
+
*[[BL2_(LVDS_Backlight_2)|BL2 (LVDS Backlight 2)]]  
*[[COM1_(COM_+_CAN_Pin_Header):_(default_as_debug_console)|COM1 (COM + CAN Pin Header): (default as debug console)]]
+
*[[COM1_(COM_+_CAN_Pin_Header):_(default_as_debug_console)|COM1 (COM + CAN Pin Header): (default as debug console)]]  
*[[CSI1_(MIPI-CSI_Camera_Input_1)|CSI1 (MIPI-CSI Camera Input 1)]]
+
*[[CSI1_(MIPI-CSI_Camera_Input_1)|CSI1 (MIPI-CSI Camera Input 1)]]  
*[[CSI2_(MIPI-CSI_Camera_Input_2)|CSI2 (MIPI-CSI Camera Input 2)]]
+
*[[CSI2_(MIPI-CSI_Camera_Input_2)|CSI2 (MIPI-CSI Camera Input 2)]]  
*[[DCIN/_DCIN1_(12V_DC_Power_Input_by_DC_Jack/_by_Pin_Header)|DCIN/ DCIN1 (12V DC Power Input by DC Jack/ by Pin Header)]]
+
*[[DCIN/_DCIN1_(12V_DC_Power_Input_by_DC_Jack/_by_Pin_Header)|DCIN/ DCIN1 (12V DC Power Input by DC Jack/ by Pin Header)]]  
*[[HDMI_(HDMI_CONN.)|HDMI (HDMI CONN.)]]
+
*[[HDMI_(HDMI_CONN.)|HDMI (HDMI CONN.)]]  
*[[LAN1_(Ethernet_eth0)|LAN1 (Ethernet eth0)]]
+
*[[LAN1_(Ethernet_eth0)|LAN1 (Ethernet eth0)]]  
*[[LAN2_(Ethernet_eth1)|LAN2 (Ethernet eth1)]]
+
*[[LAN2_(Ethernet_eth1)|LAN2 (Ethernet eth1)]]  
*[[LOUT_(Line_Out_Pin_Header)|LOUT (Line Out Pin Header)]]
+
*[[LOUT_(Line_Out_Pin_Header)|LOUT (Line Out Pin Header)]]  
*[[LVDS_(LVDS_CONN.)|LVDS (LVDS CONN.)]]
+
*[[LVDS_(LVDS_CONN.)|LVDS (LVDS CONN.)]]  
*[[M2_(M.2_Key_E_CONN.)|M2 (M.2 Key E CONN.)]]
+
*[[M2_(M.2_Key_E_CONN.)|M2 (M.2 Key E CONN.)]]  
*[[MIC_(MIC_In_Pin_Header)|MIC (MIC In Pin Header)]]
+
*[[MIC_(MIC_In_Pin_Header)|MIC (MIC In Pin Header)]]  
*[[MPCIE_(Mini-PCIe_CONN.)|MPCIE (Mini-PCIe CONN.)]]
+
*[[MPCIE_(Mini-PCIe_CONN.)|MPCIE (Mini-PCIe CONN.)]]  
*[[RST_(Reset_Button)|RST (Reset Button)]]
+
*[[RST_(Reset_Button)|RST (Reset Button)]]  
*[[SD_(SD_Slot)|SD (SD Slot)]]
+
*[[SD_(SD_Slot)|SD (SD Slot)]]  
*[[SIM_(SIM_Slot)|SIM (SIM Slot)]]
+
*[[SIM_(SIM_Slot)|SIM (SIM Slot)]]  
*[[UIO1_(UIO40-Express_Pin_Header_1)|UIO1 (UIO40-Express Pin Header 1)]]
+
*[[UIO1_(UIO40-Express_Pin_Header_1)|UIO1 (UIO40-Express Pin Header 1)]]  
*[[UIO2_(UIO40-Express_Pin_Header_2)|UIO2 (UIO40-Express Pin Header 2)]]
+
*[[UIO2_(UIO40-Express_Pin_Header_2)|UIO2 (UIO40-Express Pin Header 2)]]  
*[[USB_1_(USB_3.2_Gen_1_on_TOP_+_USB_2.0_on_BOT)|USB 1 (USB 3.2 Gen 1 on TOP + USB 2.0 on BOT)]]
+
*[[USB_1_(USB_3.2_Gen_1_on_TOP_+_USB_2.0_on_BOT)|USB 1 (USB 3.2 Gen 1 on TOP + USB 2.0 on BOT)]]  
*[[LED|LED]]
+
*[[LED|LED]]  
  
=== '''&nbsp;机械尺寸&nbsp; ('''Mechanical Characteristics) ===
+
&nbsp;
  
[[File:RSB-3720 board Dimensions 2021-10-21 145827.jpg]]
+
&nbsp;
  
== '''快速入门 (Quick Start)''' ==
+
=== '''機械尺寸('''Mechanical Characteristics) ===
 +
 
 +
[[File:RSB-3720 board Dimensions 2021-10-21 145827.jpg|RTENOTITLE]]
 +
 
 +
== '''快速入門&nbsp;(Quick Start)''' ==
  
 
=== '''系统下载 (OS Download)''' ===
 
=== '''系统下载 (OS Download)''' ===
  
'''Linux系统 (Linux OS)''''''&nbsp; &nbsp;'''
+
*'''Linux系统 (Linux OS)'''  
 +
 
 +
'''Yocto 3.0:'''[[IoTGateway/BSP/Linux/iMX8/OS_Support_List_3.0|IoTGateway/BSP/Linux/iMX8/OS Support List 3.0]]
 +
 
 +
'''Yocto 3.3:'''[http://ess-wiki.advantech.com.tw/view/IoTGateway/BSP/Linux/iMX8/OS_Support_List_3.3_RSB-3720 IoTGateway/BSP/Linux/iMX8/OS Support List 3.3 RSB-3720]
 +
 
 +
'''Yocto 4.0:&nbsp;'''[http://ess-wiki.advantech.com.tw/view/IoTGateway/BSP/Linux/iMX8/OS_Support_List_4.0_release_RSB-3720 IoTGateway/BSP/Linux/iMX8/OS Support List 4.0 release RSB-3720]
 +
 
 +
'''Download mksd-linux.sh:'''
 +
 
 +
[https://github.com/ADVANTECH-Corp/RISC_tools_scripts/blob/kirkstone/imx8/mksd-linux.sh https://github.com/ADVANTECH-Corp/RISC_tools_scripts/blob/kirkstone/imx8/mksd-linux.sh]
  
{| cellspacing="0" cellpadding="0" border="1"
+
Download "Product_AIM_Release_version"_flash_tool.tgz
|-
+
 
|
+
Unzip the "Product_AIM_Release_version"_flash_tool.tgz
'''Git BSP Tag Version'''
+
 
 +
Copy the mksd-linux.sh to mk_inand folder.
 +
 
 +
Run mksd-linux.sh
 +
 
 +
=== '''&nbsp;Linux&nbsp;燒錄方法 (Linux Flash eMMC Method)&nbsp;''' ===
 +
 
 +
'''&nbsp; &nbsp; 1. 創建一個可以開機的SD Card (Create a bootable SD card )&nbsp;&nbsp;'''
 +
 
 +
'''&nbsp; &nbsp; &nbsp;先確認SD卡在Ubuntu 系統(x86) 所認到的SD卡代號 ( Check the SD card symbol in Ubuntu System (x86)'''
 +
 
 +
'''&nbsp; &nbsp; &nbsp; Command: sudo fdisk - l&nbsp;'''
  
|
+
'''&nbsp; &nbsp; &nbsp;&nbsp;[[File:RSB-3720 SD fdisk info 2021-10-28 113030.jpg|RTENOTITLE]]'''
'''Product'''
 
  
| &nbsp;'''BSP/Image'''
+
'''&nbsp; &nbsp;2. 燒錄鏡像到SD 卡中. (Flash Image into SD card)&nbsp;'''
|
 
'''Date'''
 
  
|
+
&nbsp; &nbsp; &nbsp; &nbsp; '''Command&nbsp;: sudo dd if=3720A1AIM30LIVA0333_iMX8MP_6G_2021-10-05.img of=/dev/sdf bs=1M conv=fsync&nbsp;'''
'''Alpha Release'''
 
  
|
+
'''&nbsp; &nbsp; &nbsp;[[File:RSB-3720 dd SD info 2021-10-28 113804.jpg|RTENOTITLE]]'''
'''Beta Release'''
 
  
|
+
'''&nbsp; &nbsp;3. 將flash tool 拷貝到U盤&nbsp; (Cpye the eMMC flash tool into USB Disk )&nbsp;'''
'''MP Release'''
 
  
|
+
'''&nbsp; &nbsp; &nbsp;&nbsp;[[File:RSB-3720 cp file into USB 2021-10-28 115157.jpg|RTENOTITLE]]'''
'''Release Note'''
 
  
|
+
'''4.&nbsp;設定終端機(Set Debug Terminal)&nbsp;'''
'''Comment'''
 
  
|
+
Debug 串口調試 (Debug port Setting)
'''Release Owner'''
 
  
|-
+
以 Tera Term&nbsp; 為例介绍如何使用串口調試功能 ( Tera Term is kind of terminal tool , we need to set&nbsp;&nbsp;the parameter (Baud Rate , Data, Parity, Stop, Flow Control )&nbsp;&nbsp;into "Tera Term &nbsp;terminal tool " )&nbsp;&nbsp;
| <br/>
+
<pre>   波特率(Baud Rate):115200
|
+
  數據位(Data):8
|
+
  奇偶校驗(Parity):无 (none)
|
+
  停止位(Stop):1
|
+
  流控(Flow Control):无 (none) </pre>
|
 
|
 
|
 
|
 
|
 
|}
 
  
<br/>
+
Tera Term Tool&nbsp;
  
== '''&nbsp;Linux&nbsp;燒錄方法 (Linux Flash eMMC Method)''' ==
+
Check the Sriel port in Device Manager (查看PC端的串口號)
  
'''NOTE&nbsp;:&nbsp;'''
+
if you can not identify the Serial device , please check your serial driver.&nbsp;
  
This way only support Linux(Debian9) upgrade to Linux(Debian9) 、&nbsp;Android6.0 upgrade to Android6.0 or&nbsp;Android8.1&nbsp;upgrade to Android8.1.
+
&nbsp;
  
If the device is in Android, you want to upgrade to&nbsp;Linux(Debian9), please use Android Tool.
+
'''5. 將可開機的SD 卡插入 SD 插槽, 並打開電源開機&nbsp;&nbsp;'''&nbsp; &nbsp;(Plug into the SD card into SD Card Slot , then turn on the power)&nbsp;
  
== '''&nbsp;方法一:Update through Android Tool''' ==
+
&nbsp; &nbsp;[[File:RSB-3720 SD solt 2021-10-28 115806.jpg|RTENOTITLE]]
  
'''&nbsp;Step0:'''&nbsp; Need to use Micro USB to connect with RSB-4680 OTG port, and other Type-A USB to connect with your PC&nbsp;
+
'''6. 確認撥碼開關 為 SD 卡開機模式&nbsp; '''(Check the Switch)
  
[[File:MicroUSB 4680.png|RTENOTITLE]]
+
'''SD 卡開機:&nbsp;1, 2 on&nbsp; '''(Set the SD card boot up mode ,&nbsp; 1 on&nbsp; 2 on&nbsp;)&nbsp;
  
'''Step1:''' Double click DriverInstall.exe .
+
'''[[File:RSB-3720 SD Card boot up 2021-10-28 132021.jpg|RTENOTITLE]]'''
  
[[File:RK3288 Debian9 AndroidTool DriverAssitant v4.6.jpg|RTENOTITLE]]
+
'''eMMC 開機:&nbsp;''''''2 on''' ( Set the eMMC boot up mode , 2 on , others off)&nbsp;
  
'''Step2:'''&nbsp; Enter into MASKROM mode .
+
'''[[File:RSB-3720 eMMC boot up 2021-10-28 132058.jpg|RTENOTITLE]]'''
  
There are two ways to enter MASKROM .
+
'''7.打開電源,由終端機可看到開機訊息&nbsp; '''(Turn on the power , you will see the debug message from Terminal tool )&nbsp;
  
'''1. Hardware way to enter MASKROM'''
+
[[File:RSB-3720 debug message 2021-10-28 132358.jpg|RTENOTITLE]]
  
(1)Connect PIN2-PIN1 of CN19 to Disable eMMC,reboot device to enter MASKROM mode.
+
'''8. 開機後 請再重新開機一次,系統將會重新劃分磁區大小.''' (If you can not not copy the eMMC flash tool into root file system , please reboot the device , because , the system will the reconfigure the partition )
  
(2)After device enter into MASKROM mode,then connect PIN2-PIN3&nbsp;of CN19 to Enable eMMC.
+
'''9. 燒錄eMMC前, 請將U盤插入USB port&nbsp; &nbsp;'''(Please pulg the USB Disk into USB port before flash eMMC)
  
RSB-4680&nbsp;Connector Layout&nbsp;:&nbsp;
+
'''10. 在系統確認U盤&nbsp;'''(Check the USB disk in the Yocto System (Device side) )&nbsp;
  
[[File:RK3288 Debian9 AndroidTool connector CN19.jpg|RTENOTITLE]]
+
'''&nbsp; &nbsp; &nbsp;[[File:RSB-3720 check usb in system 2021-10-28 132956.jpg|RTENOTITLE]]'''
  
RSB-4680 CN19 PIN define&nbsp;:&nbsp;
+
'''11. 將flash tool 燒錄鏡像,拷貝到根目錄 '''(Copy the flash tool into root file system)&nbsp;
  
[[File:RK3288 Debian9 AndroidTool CN19.jpg|RTENOTITLE]]
+
&nbsp;[[File:RSB-3720 cp flashtool to root 2021-10-28 133320.jpg|RTENOTITLE]]
  
'''2. Software way to enter MASKROM'''
+
[[File:RSB-3720 cp root check 2021-10-28 133504.jpg|RTENOTITLE]]
  
When the device boot up to debian, you can use Terminal or Debug port to input the following command&nbsp;:
+
'''12. 解壓縮 flash tool&nbsp;&nbsp;'''(Unzip the flash tool )&nbsp;
  
sudo reboot loader
+
'''[[File:RSB-3720 unzip flash tool 2021-10-28 134631.jpg|RTENOTITLE]]'''
  
Click "Advantech Function" , then "Enter MASHROM" button to enter MASHROM mode .
+
'''13. 執行燒錄eMMC&nbsp; '''(Exeucte the eMMC flash script )
  
[[File:RK3288 upgrade Loader MASHROM.png|RTENOTITLE]]
+
&nbsp; &nbsp;Note:&nbsp;eMMC&nbsp;: /dev/mmcblk2
  
'''Step3: '''Select the image path .&nbsp;
+
&nbsp;&nbsp;[[File:RSB-3720 flash eMMC done 2021-10-28 141001.jpg|RTENOTITLE]]
  
[[File:RK3288 Debian9 AndroidTool select image.jpg|RTENOTITLE]]
+
'''14. 移除SD卡 ,重新開機,並切換撥碼開關  '''(Remove the SD card , Change the Switch to eMMC mode , then reboot the system)&nbsp;
  
 +
'''[[File:RSB-3720 eMMC boot up 2021-10-28 132058.jpg|RTENOTITLE]]'''
  
 +
'''15. 從eMMC 開機,debug 訊息&nbsp;&nbsp;'''(You will see the debug message when you boot up from eMMC flash )&nbsp;
  
'''Step4&nbsp;:&nbsp;'''Click update button to upgrade images .
+
'''[[File:RSB-3720 bootup from eMMC 2021-10-28 141704.jpg|RTENOTITLE]]'''
  
[[File:RK3288 Debian9 AndroidTool update.jpg|RTENOTITLE]]
+
'''&nbsp; &nbsp;&nbsp;'''
  
&nbsp; '''Step5&nbsp;:'''&nbsp;When“下載完成(Download finish )” , please unplug the Micro USB with RSB-4680 , then turn off and turn on the power again .
+
== '''Linux系统的基本使用(Linux&nbsp;System Basic Operating Method)''' ==
  
[[File:Finished 4680.png|RTENOTITLE]]'''Step6&nbsp;:&nbsp;'''Please remove the Micro USB and the poewer , then&nbsp;reboot the device , you will see the Debian Desktop.&nbsp;
+
=== '''Display Setting (RSB-3720)''' ===
  
[[File:Debian 4680.jpg|RTENOTITLE]]
+
'''&nbsp; &nbsp; &nbsp; U-boot&nbsp;Command&nbsp;'''&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
  
== '''&nbsp;方法二:'''Update image through SD-Card&nbsp; ==
+
*Display
 +
**HDMI (default)
 +
***imx8mp-rsb3720-a1.dtb 
 +
**LVDS
 +
***g070vw01(LVDS0) + HDMI
 +
****imx8mp-rsb3720-a1-lvds0-auo.dtb 
 +
***g070vw01(LVDS1) + HDMI
 +
****imx8mp-rsb3720-a1-lvds1-auo.dtb 
 +
***g215hvn01(DUAL LVDS) + HDMI
 +
****imx8mp-rsb3720-a1-lvds-dual.dtb   
 +
**DSI
 +
***adv7535(DSI to HDMI)&nbsp;+ HDMI
 +
****imx8mp-rsb3720-a1-adv7535.dtb 
 +
***auog101uan02(DSI) +&nbsp;HDMI
 +
****imx8mp-rsb3720-a1-auog101uan02.dtb     
 +
*Camera
 +
**OV5640 (default)
 +
***imx8mp-rsb3720-a1.dtb 
 +
**Basler camrea
 +
***imx8mp-rsb3720-a1-basler.dtb   
  
Download SD DiskTool
+
&nbsp;
  
[https://github.com/ADVANTECH-Rockchip/linux_tools/tree/rk3288_linux_v2.0 https://github.com/ADVANTECH-Rockchip/linux_tools/tree/rk3288_linux_v2.0]&nbsp;
+
=== '''乙太網路使用方法(Ethernent Testing Method)''' ===
  
Step 1&nbsp;:&nbsp;Put images to AndroidTool/rockdev/image, Make sure path is correct.
+
'''Command&nbsp;: ifconfig&nbsp;'''
  
[[File:Filepath.jpg|RTENOTITLE]]
+
[[File:RSB-3720 ifconfig eth0 2021-10-28 142051.jpg|RTENOTITLE]]
  
Step 2&nbsp;:&nbsp;Double click rk3328-mkupdate.bat in&nbsp;AndroidTool/rockdev/ .
+
[[File:RSB-3720 ifconfig eth1 2021-10-28 142202.jpg|RTENOTITLE]]
  
If there is no error, you will find&nbsp;update.img&nbsp;in&nbsp;AndroidTool/rockdev/ .
+
'''Command: Ping 8.8.8.8&nbsp;'''
  
== Generate SD card ==
+
[[File:RSB-3720 ping 8888 2021-10-28 142402.jpg|RTENOTITLE]]
  
Step 1&nbsp;: Insert SD card to PC,&nbsp;Double click&nbsp;SD_Firmware_Tool.exe in&nbsp;SDDiskTool .
+
Change IP Addr Command:
  
Step 2&nbsp;: Choose SD card .
+
Check Active Ethernet interface:
  
[[File:Choosesd.jpg|RTENOTITLE]]
+
root@imx8mprsb3720a1:~# connmanctl services<br/> *AR Wired &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ethernet_74fe485e4fbd_cable
  
Step 3&nbsp;: Choose update.img .
+
Set static IP Addr:&nbsp;
  
[[File:Chooseupdateimage.jpg|RTENOTITLE]]
+
#connmanctl config <service> --ipv4 manual <ip address> <netmask> <gateway><br/> # connmanctl config <service> --nameservers <dns-addr>
  
Step 4&nbsp;: Create SD card .
+
Example:
  
[[File:Create sd.jpg|RTENOTITLE]]
+
root@imx8mprsb3720a1:~# connmanctl config ethernet_74fe485e4fbd_cable --ipv4 manual 192.168.1.100 255.255.255.0 192.168.1.254<br/> root@imx8mprsb3720a1:~# connmanctl config ethernet_74fe485e4fbd_cable --nameservers 8.8.8.8 4.4.4.4
  
'''NOTE&nbsp;:&nbsp;'''
+
RJ45 LED Indicator:
  
The capacity of SD card is at least 4GB.
+
{| border="0" cellpadding="0" cellspacing="0" width="566"
 +
|-
 +
| height="22" width="72" | Speed
 +
| width="72" | Left
 +
| width="72" | Right
 +
| width="350" | Command
 +
|-
 +
| height="22" | 10M
 +
| OFF
 +
| link green
 +
| ethtool -s eth0 autoneg on speed 10 duplex full
 +
|-
 +
| height="22" | 100M
 +
| ON 橙
 +
| link green
 +
| ethtool -s eth0 autoneg on speed 100 duplex full
 +
|-
 +
| height="22" | 1000M
 +
| ON 綠
 +
| link green
 +
| ethtool -s eth0 autoneg on speed 1000 duplex full
 +
|}
  
== Upgrade image from SD card ==
+
=== '''WiFi使用方法(WIFI Testing Method)''' ===
 +
<pre># killall wpa_supplicant
 +
# ifconfig wlan0 up
 +
# wpa_passphrase "SSID" "PASSWORD" > /tmp/wpa.conf
 +
# cat /tmp/wpa.conf
 +
# wpa_supplicant -BDwext -iwlan0 -c/tmp/wpa.conf
 +
# udhcpc -b -i wlan0
 +
# ifconfig
 +
# ping 8.8.8.8
 +
Add DNS to /etc/resolv.conf
 +
# cat /etc/resolv.conf
 +
# Generated by Connection Manager
 +
nameserver 8.8.8.8
 +
nameserver 8.8.4.4
 +
Now can ping google.com
 +
# ping google.com</pre>
 +
 
 +
&nbsp;
 +
 
 +
=== '''4G使用方法(4G Testing Method, Test with EWM-C117)''' ===
  
Step 1&nbsp;:&nbsp;Insert SD card to device .
+
'''Check and change module to pppd mode<br/> # stty -F /dev/ttyUSB3 –echo<br/> # cat /dev/ttyUSB3 &<br/> # echo AT+UUSBCONF? > /dev/ttyUSB3<br/> &nbsp;[[File:RSB-3720 4G pic1.png|RTENOTITLE]]<br/> Change to pppd mode:<br/> # echo AT+UUSBCONF=0 > /dev/ttyUSB3<br/> &nbsp;[[File:RSB-3720 4G pic2.png|RTENOTITLE]]<br/> # echo AT+CFUN=16 > /dev/ttyUSB3<br/> &nbsp;[[File:RSB-3720 4G pic3.png|RTENOTITLE]]<br/> The module will be change to ttyACM0*, check again<br/> # stty -F /dev/ttyACM0 –echo<br/> # cat /dev/ttyACM0 &<br/> # echo AT+UUSBCONF? > /dev/ttyACM0<br/> &nbsp;[[File:RSB-3720 4G pic4.png|RTENOTITLE]]<br/> Set module to con<br/> # stty -F /dev/ttyACM0 -echo<br/> # cat /dev/ttyACM0 &<br/> # echo AT+csq > /dev/ttyACM0<br/> # echo AT+cops? > /dev/ttyACM0<br/> # echo AT+cgdcont? > /dev/ttyACM0<br/> &nbsp;[[File:RSB-3720 4G pic5.png|RTENOTITLE]]<br/> Connect to Internet:<br/> # pppd connect 'chat -v -s -t 10 "" "AT" "" "ATDT*99***4#" "CONNECT" ""' user username password password /dev/ttyACM2 460800 nodetach crtscts debug usepeerdns defaultroute &<br/> # ifconfig<br/> &nbsp;[[File:RSB-3720 4G pic6.png|RTENOTITLE]]<br/> # ping 8.8.8.8'''
  
Step 2&nbsp;: Power up or reboot device, it will boot from SD card to auto upgrade images .
+
'''[[File:RSB-3720 4G pic7.png|RTENOTITLE]]'''
  
Step 3&nbsp;: When upgrade is finish, you will get "Doing Actions succeeded,please remove sdcard......" on screen or debug console .
+
&nbsp;
  
[[File:RK3288 Debian9 sdupdate screen information.jpg|RTENOTITLE]]
+
&nbsp;
  
Step 4&nbsp;: Remove SD card, the device will auto reboot .
+
=== '''GPIO使用方法(GPIO Operating Method)''' ===
  
== '''Linux系统的基本使用(Linux&nbsp;System Basic Operating Method)''' ==
+
{| border="1" cellpadding="1" cellspacing="1" style="width: 434px;"
 +
|-
 +
| style="width: 194px;" | RSB-3720 GPIO Pin on UIO1/2
 +
| style="width: 116px;" | Number
 +
| style="width: 106px;" | UIO-4030 GPIO
 +
|-
 +
| style="width: 194px;" | GPIO2
 +
| style="width: 116px;" | 501
 +
| style="width: 106px;" | &nbsp;
 +
|-
 +
| style="width: 194px;" | GPIO4
 +
| style="width: 116px;" | 503
 +
| style="width: 106px;" | &nbsp;
 +
|-
 +
| style="width: 194px;" | GPIO5
 +
| style="width: 116px;" | 504
 +
| style="width: 106px;" | DB9-1 DI1#
 +
|-
 +
| style="width: 194px;" | GPIO6
 +
| style="width: 116px;" | 505
 +
| style="width: 106px;" | DB9-6 DO1#
 +
|-
 +
| style="width: 194px;" | GPIO7
 +
| style="width: 116px;" | 506
 +
| style="width: 106px;" | DB9-2 DI2#
 +
|-
 +
| style="width: 194px;" | GPIO8
 +
| style="width: 116px;" | 507
 +
| style="width: 106px;" | DB9-7 DO2#
 +
|-
 +
| style="width: 194px;" | GPIO9
 +
| style="width: 116px;" | 508
 +
| style="width: 106px;" | DB9-3 DI3#
 +
|-
 +
| style="width: 194px;" | GPIO10
 +
| style="width: 116px;" | 509
 +
| style="width: 106px;" | DB9-8 DO3#
 +
|-
 +
| style="width: 194px;" | GPIO11
 +
| style="width: 116px;" | 139
 +
| style="width: 106px;" | DB9-4 DI4#
 +
|-
 +
| style="width: 194px;" | GPIO12
 +
| style="width: 116px;" | 138
 +
| style="width: 106px;" | DB9-9 DO4#
 +
|}
 +
 
 +
Short GPIO pin 2 & pin 4
 +
 
 +
[[File:RSB-3720 gpio short24.png|RTENOTITLE]]
 +
 
 +
Short GPIO pin 5 & pin 6
 +
 
 +
[[File:RSB-3720 gpio short56.png|RTENOTITLE]]
 +
 
 +
Short GPIO pin 7 & pin 8
 +
 
 +
[[File:RSB-3720 gpio short78.png|RTENOTITLE]]
 +
 
 +
Short GPIO pin 9 & pin 10&nbsp;
 +
 
 +
[[File:RSB-3720 gpio short910.png|RTENOTITLE]]
 +
 
 +
Short GPIO pin 11 & pin 12
  
=== '''&nbsp; &nbsp; &nbsp; UUU 使用方法(USB Connection (OTG port))''' ===
+
[[File:RSB-3720 gpio short1112.png|RTENOTITLE]]
  
=== '''&nbsp; &nbsp; &nbsp; Display Setting (ROM-5620)''' ===
+
&nbsp;
  
'''&nbsp; &nbsp; &nbsp; U-boot&nbsp;Command&nbsp;:'''
+
&nbsp;
  
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; setenv fdt_file xxxx.dtb<br/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; env save<br/>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; boot&nbsp;
+
=== '''LED_USER使用方法(LED_USER ON/OFF&nbsp;test)''' ===
  
*Display
+
ON: echo 255 > /sys/class/leds/user/brightness<br/> OFF: echo 0 > /sys/class/leds/user/brightness
**LVDS
 
***g070vw01
 
****adv-imx8mxp-rom5620-a1.dtb&nbsp;&nbsp;
 
***g150xgel05
 
****adv-imx8qxp-rom5620-a1-lvds-chimei.dtb
 
***g215hvn01
 
****adv-imx8qxp-rom5620-a1-lvds-dual.dtb
 
**LVDS to HDMI
 
***adv-imx8qxp-rom5620-a1-hdmi-bridge.dtb
 
**DSI to HDMI
 
***adv-imx8qxp-rom5620-a1-hdmi-bridge.dtb
 
**DSI
 
***auog101uan02
 
****adv-imx8qxp-rom5620-a1-auog101uan02.dtb
 
  
=== '''乙太網路使用方法(Ethernent Testing Method)''' ===
+
&nbsp;
  
'''Command&nbsp;: ifconfig&nbsp;'''
+
=== '''COM1複合使用方法(COM1 complex&nbsp;Port Operating&nbsp;Method)'''&nbsp; ===
  
'''[[File:Ethernet Test 2021-09-09 131742.jpg|RTENOTITLE]]'''
+
'''Note&nbsp;: please set&nbsp;the rs-485 , rs-422 GPIO setting&nbsp;with ssh console.&nbsp;'''
  
'''Command: Ping - I eth1 8.8.8.8&nbsp; or Ping - I eth0 8.8.8.8&nbsp;&nbsp;'''
+
[[File:RSB-3720 ifconfig address.png|RTENOTITLE]]
  
'''[[File:PingTest2021-09-09 131931.jpg|RTENOTITLE]]'''
+
[[File:RSB-3720 reboot system.png|RTENOTITLE]]
  
=== '''WiFi使用方法(WIFI Testing Method)''' ===
+
[[File:RSB-3720 ssh connection.png|RTENOTITLE]]
<pre>Command&nbsp;:  
 
  
# killall wpa_supplicant
+
[[File:RSB-3720 ssh connection login.png|RTENOTITLE]]
# ifconfig wlan0 up
 
# wpa_passphrase "SSID" "PASSWORD" > /tmp/wpa.conf
 
# wpa_supplicant -BDwext -iwlan0 -c/tmp/wpa.conf
 
# udhcpc -b -i wlan0'''
 
  
ping 8.8.8.8
+
[[File:RSB-3720 set gpio function mode.png|RTENOTITLE]]
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
 
64 bytes from 8.8.8.8: icmp_seq=1 ttl=54 time=2.10 ms
 
64 bytes from 8.8.8.8: icmp_seq=2 ttl=54 time=2.10 ms</pre>
 
  
[[File:WifiTest 2021-09-09 132238.jpg|RTENOTITLE]]
+
'''Set GPIO#496, #497&nbsp;<br/> Set to 0,1 for RS-485<br/> Set to 1,1 for RS-422<br/> Set to 0,0 for loopback<br/> Set to 1,0 for RS-232'''
  
=== '''4G使用方法(4G Testing Method)''' ===
+
RS-232 default as debug console)
<pre>Command:
 
Test 4G: (EWM-C117FL06E - USB)
 
Step 1: Connect EWM-C117FL06E to Mini PCIE slot on 9680015491 and connect
 
the card to CN6 PCIe_D slot on ROM-DB5901.
 
Step 2: Connect the antenna 1750007990-01 to the SMA (F) connector on
 
9680015491
 
and connect the IPEX connector to MT1 on EWM-C117FL06E module.
 
Step 3: Connect the Mini USB cable from 9680015491 to USB 2.0 Type A port on
 
ROM-DB5901.
 
Step 4: Power on and execute the pppd command to connect to the network.
 
</pre>
 
  
[[File:4GTest2021-09-09 133204.jpg|RTENOTITLE]]
+
[[File:RSB-3720 COM1 2021-10-21 152125.jpg|RTENOTITLE]]
 +
<pre>RS-485 test
 +
Test RS-485 with Adam-4520. Adam-4520 Pin to RSB-3720 COM1
 +
Data-&nbsp;: Pin 1: COM_DCD
 +
Data+&nbsp;: Pin 3: COM_RXD
  
[[File:4GTest12021-09-09 133648.jpg|RTENOTITLE]]
+
RS-485 test
 +
# echo 496 > /sys/class/gpio/export
 +
# echo 497 > /sys/class/gpio/export
 +
# echo out > /sys/class/gpio/gpio1/direction
 +
# echo out > /sys/class/gpio/gpio2/direction
 +
# echo 0 > /sys/class/gpio/gpio1/value
 +
# echo 1 > /sys/class/gpio/gpio2/value
 +
# ./enable485 /dev/ttymxc2
 +
# stty -F /dev/ttymxc2 speed 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke
 +
# cat /dev/ttymxc2 &
 +
# echo "Serial Test" > /dev/ttymxc2
 +
Will print “Serial Test” through RS-485</pre>
  
=== '''GPIO使用方法(GPIO Operating Method)''' ===
+
'''RS-232&nbsp; --&nbsp; Disable console'''
  
[[File:GPIOpin2021-09-11 143437.jpg|RTENOTITLE]]
+
:Disable debug message output can also improve boot speed
  
 +
Disable kernel message
 +
<pre>setenv mmcargs setenv bootargs ${jh_clk} console=${console} modprobe.blacklist=${modprobe.blacklist} root=${mmcroot} video=HDMI-A-1:${videores} '''quiet'''
 +
env save
 +
reset
 +
</pre>
  
<pre>Loop-back Test (Take GPIO4 and GPIO5 as examples) 
+
Or
  
Step 1: Connect GPIO4 and GPIO5
+
Disable debug port
Step 2: Export GPIO interface
 
  
root@imx8qxprom5620a1&nbsp;: ~# echo 456 > /sys/class/gpio/export
+
(1) Yocto machine setting:
root@imx8qxprom5620a1&nbsp;: ~# echo 452 > /sys/class/gpio/export
 
  
Step 3: Set direction
+
modify /sources/meta-advantech/meta-fsl-imx/conf/machine$/${MC}.conf
 +
<pre>SERIAL_CONSOLES = ";"
 +
</pre>
  
root@imx8qxprom5620a1&nbsp;: ~# echo out > /sys/class/gpio/gpio1/direction
+
(2) Uboot parameter&nbsp;setting:
root@imx8qxprom5620a1&nbsp;: ~# echo in > /sys/class/gpio/gpio2/direction
 
  
Step 4: Read value and set output value then check
+
*For the imx8mq, imx8mm,&nbsp;imx8mp:  
 +
<pre>setenv console disabled
 +
env save
 +
reset
 +
</pre>
  
root@imx8qxprom5620a1&nbsp;: ~# cat /sys/class/gpio/gpio2/value
+
=== '''CANBus or CAN-FD'''[[https://ess-wiki.advantech.com.tw/wiki/index.php?title=EPC-R3720_user_guide&action=edit&section=20 edit]] ===
0r
 
oot@imx8qxprom5620a1&nbsp;: ~# echo 1 > /sys/class/gpio/gpio1/value
 
root@imx8qxprom5620a1&nbsp;: ~# cat /sys/class/gpio/gpio2/value
 
1</pre>
 
  
=== '''串口使用方法(Serial Port Operating&nbsp;Method)''' ===
+
(Please note that the CAN function on RSB-3720 COM1 Pin Header is CANBus only&nbsp;with RSB-3720CQ & RSB-3720CD, RSB-3720 COM1 Pin Header is CANB-FD only&nbsp;with RSB-3720WQ & RSB-3720WD)&nbsp;<br/> Step 1: Connect the UIO-4034 A101-2 CANbus port Pin 2 and Pin 7 to RSB-3720&nbsp;COM1 with 1700100250 cable, pin 9 and Pin 6 of the DB9.&nbsp;<br/> Step 2: Set CAN0 and CAN1 up.
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">root@imx8mprsb3720a1:~# ip link set can0 up type can bitrate 125000&nbsp;<br/> [ 1362.935162] IPv6: ADDRCONF(NETDEV_CHANGE): can0: link becomes ready&nbsp;<br/> root@imx8mprsb3720a1:~# ifconfig can0 up&nbsp;<br/> root@imx8mprsb3720a1:~# ip link set can1 up type can bitrate 125000&nbsp;<br/> [ 1381.546624] IPv6: ADDRCONF(NETDEV_CHANGE): can1: link becomes ready&nbsp;<br/> root@imx8mprsb3720a1:~# ifconfig can1 up</div>
 +
Step 3: candump CAN0
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">root@imx8mprsb3720a1:~# candump can0 &&nbsp;<br/> [1] 965</div>
 +
Step 4: candump CAN1
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">root@imx8mprsb3720a1:~# cansend can1 1F334455#1122334455667788&nbsp;<br/> root@imx8mprsb3720a1:~# can0 1F334455 [8] 11 22 33 44 55 66 77 88</div>
 +
=== '''藍牙使用方法(BlueTooth Operating&nbsp;Method)''' ===
 +
<pre># hciattach /dev/ttymxc0 bcm43xx 115200 flow
 +
# hciconfig hci0 up
 +
# hcitool scan# bluetoothctl
 +
# discoverable on
 +
#pairable on
 +
# scan on
 +
# scan off
 +
# pair 84:C5:A6:D3:AF:E4
 +
# connect 84:C5:A6:D3:AF:E4
 +
Check BT connect info
 +
# info 84:C5:A6:D3:AF:E4</pre>
  
RS-232 Test&nbsp;
+
&nbsp;
  
SW7 Setting (SW7設置)&nbsp;
+
=== '''音訊使用方法(BlueTooth Operating&nbsp;Method)''' ===
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">Line-in , Line-out, MIC<br/> 1.Line-out<br/> Command&nbsp;: gplay-1.0<br/> 2.MIC<br/> Command&nbsp;: arecord<br/> Check audio codec:</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># cat /proc/asound/cards<br/> 0 [sgtl5000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]: sgtl5000 - sgtl5000<br/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sgtl5000<br/> 1 [audiohdmi&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]: audio-hdmi - audio-hdmi<br/> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; audio-hdmi<br/> root@imx8mprsb3720a1:~#<br/> &nbsp;&nbsp; Set Mic/audio volume<br/> # amixer set Mic 100%<br/> # amixer set Lineout 100%<br/> # amixer set PCM 100%</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">Record and playback<br/> Example command:<br/> # arecord –t wav –c 1 –r 44100 –d 5 /tmp/mic.wav<br/> # aplay /tmp/mic.wav</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">Record from MIC:<br/> # arecord -D plughw:0,0 -r 16000 -f S16_LE ./f-16000.wav<br/> Recording WAVE './f-16000.wav'&nbsp;: Signed 16 bit Little Endian, Rate 16000 Hz, Mono<br/> # aplay f-16000.wav<br/> Playing WAVE 'f-16000.wav'&nbsp;: Signed 16 bit Little Endian, Rate 16000 Hz, Mono</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">Play wav file from codec:<br/> # aplay -D plughw:0,0 file_example_WAV_10MG.wav<br/> Playing WAVE 'file_example_WAV_10MG.wav'&nbsp;: Signed 16 bit Little Endian, Rate 44100 Hz, Stereo</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">Play wav file from HDMI:<br/> # aplay -D plughw:1,0 file_example_WAV_10MG.wav<br/> Playing WAVE 'file_example_WAV_10MG.wav'&nbsp;: Signed 16 bit Little Endian, Rate 44100 Hz, Stereo</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">Play wav file from HDMI with gst-launch:<br/> # gst-launch-1.0 filesrc location=LRMonoPhase4.wav&nbsp;! wavparse&nbsp;! audioconvert&nbsp;! audioresample&nbsp;! autoaudiosink</div>
 +
=== '''I2C 測試( I2C Test method)&nbsp;''' ===
 +
<pre>Check I2C device (Audio codec: 0-000a)
 +
# i2cdetect -y 0
 +
I2C set and get:
 +
# i2cset -f -y 0 0x0a 0 0xff00 w
 +
# i2cget -f -y 0 0x0a 0 w
 +
0x11a0
 +
</pre>
  
[[File:SW6&7settingn.jpeg|RTENOTITLE]]
+
=== '''看門狗測試 (Watch Dog Test method)&nbsp;''' ===
 +
<pre>System will reboot after 1 sec
 +
# /unit_tests/Watchdog/wdt_driver_test.out 1 2 0</pre>
  
=== '''蓝牙使用方法(BlueTooth Operating&nbsp;Method)''' ===
+
[[File:RSB-3720 watchdog.png|RTENOTITLE]]
<pre>Command&nbsp;:  
 
  
$ hciconfig hci0 up
+
=== '''攝像頭測試(Camera Test method)&nbsp;''' ===
$ bluetoothctl
+
<pre>Check MIPI CSI camera
$ discoverable on
+
MIPI CSI0:
$ pairable on
+
MIPI CSI1:
$ scan on
 
[NEW] FC:18:3C:8D:75:F4 myphone
 
$ scan off
 
$ pair FC:18:3C:8D:75:F4
 
$ connect FC:18:3C:8D:75:F4</pre>
 
  
[[File:BTTest2021-09-09 132449.jpg|RTENOTITLE]]
+
MIPI CSI0 - ov5640
 +
Preview:
 +
# gst-launch-1.0 v4l2src device=/dev/video0&nbsp;! video/x-raw,width=640,height=480&nbsp;! waylandsink
 +
Capture:
 +
# gst-launch-1.0 v4l2src num-buffers=1 device=/dev/video0&nbsp;! video/x-raw,width=640,height=480&nbsp;! jpegenc&nbsp;! filesink location=sample.jpeg
 +
MIPI CSI1 – ov5640
 +
Preview:
 +
# gst-launch-1.0 v4l2src device=/dev/video1&nbsp;! video/x-raw,width=640,height=480&nbsp;! waylandsink
 +
Capture:
 +
# gst-launch-1.0 v4l2src num-buffers=1 device=/dev/video1&nbsp;! video/x-raw,width=640,height=480&nbsp;! jpegenc&nbsp;! filesink location=sample.jpeg</pre>
  
=== '''&nbsp; 遠程訪問及文件傳輸(Remote Access and File Transimmion)''' ===
+
=== '''遠程訪問及文件傳輸(Remote Access and File Transimmion)''' ===
  
'''&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 查看主板IP位址&nbsp;(&nbsp;Chech IP Address ):'''​
+
'''&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 查看主板IP位址&nbsp;( check&nbsp;IP Address ):'''​
 
<pre>        Command&nbsp;: ifconfig</pre>
 
<pre>        Command&nbsp;: ifconfig</pre>
  
[[File:Eth0ssh 2021-09-10 143210.jpg|RTENOTITLE]]
+
[[File:RSB-3720 ifconfig 2022-01-03 153950.jpg|RTENOTITLE]]
  
==== Windows下SSH访问及文件传输 ====
+
&nbsp;
 +
 
 +
==== Windows下SSH訪問及文件傳輸 ====
  
 
SSH Remote Log into Device&nbsp;
 
SSH Remote Log into Device&nbsp;
  
*SSH远程登录,以putty选择putty.exe(或者使用Xshell、SecureCRT等类似软件)
+
*SSH遠程登陸,以putty選擇putty.exe(或者使用Xshell、SecureCRT等類似軟件)  
*需要设置远程设备的IP、通讯端口(默认22)、通讯方式,登录后验证用户名密码
+
*需要設置遠程設備的IP、通訊端口(默認22)、通訊方式錄后驗證用户名密碼
 
 
  
 +
&nbsp;
  
 
[[File:SSHsettingdetail.png|RTENOTITLE]]
 
[[File:SSHsettingdetail.png|RTENOTITLE]]
Line 424: Line 583:
 
[[File:SSHSetting2021-09-10 143631.jpg|RTENOTITLE]]
 
[[File:SSHSetting2021-09-10 143631.jpg|RTENOTITLE]]
  
 
+
&nbsp;
  
 
[[File:Sshsetting12021-09-10 143743n.jpg|RTENOTITLE]]
 
[[File:Sshsetting12021-09-10 143743n.jpg|RTENOTITLE]]
  
[[File:SSHLogin 2021-09-10 143913n.jpg|RTENOTITLE]]
+
[[File:RSB-3720 ssh console.png|RTENOTITLE]]
  
 
== '''通用方法(General Method)''' ==
 
== '''通用方法(General Method)''' ==
  
=== &nbsp; '''&nbsp; &nbsp; 查看CPU温度(Check CPU Temperature)''' ===
+
=== '''查看CPU温度(Check CPU Temperature)''' ===
<pre>    root@imx8qxprom5620a1:/# cat /sys/devices/virtual/thermal/thermal_zone0/temp 44600
+
<pre>    root@imx8mprsb3720a1:/# cat /sys/devices/virtual/thermal/thermal_zone0/temp   40000
  
     # 或者直接以度爲單位顯示 echo $[$(cat /sys/class/thermal/thermal_zone0/temp)/1000]° >>> 45°</pre>
+
     # 或者直接以度爲單位顯示 echo $[$(cat /sys/class/thermal/thermal_zone0/temp)/1000]° >>> 40°</pre>
  
=== '''&nbsp; &nbsp; &nbsp;&nbsp;查看CPU频率(Check CPU Frequency)''' ===
+
=== '''查看CPU频率(Check CPU Frequency)''' ===
 
<pre>          cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq  
 
<pre>          cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq  
           >> 900000
+
           >> 1200000
 
           cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq     
 
           cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq     
           >> 1200000</pre>
+
           >> 1800000</pre>
  
=== '''&nbsp; &nbsp; &nbsp;&nbsp;查看内存容量(Check Memory&nbsp;Capacity)''' ===
+
=== '''查看内存容量(Check Memory&nbsp;Capacity)''' ===
<pre>root@imx8qxprom5620a1:/# busybox free -m
+
<pre>root@imx8mprsb3720a1:/# busybox free -m
            total       used       free     shared   buffers    cached
+
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; total &nbsp; &nbsp; &nbsp; &nbsp;used &nbsp; &nbsp; &nbsp; &nbsp;free &nbsp; &nbsp; &nbsp;shared &nbsp;buff/cache &nbsp; available
Mem:       1794920    516080    1278840      17252      9852        80292
+
Mem: &nbsp; &nbsp; &nbsp; &nbsp;6002524 &nbsp; &nbsp; &nbsp;393988 &nbsp; &nbsp; 5517304 &nbsp; &nbsp; &nbsp; 18460 &nbsp; &nbsp; &nbsp; 91232 &nbsp; &nbsp; 5507676
-/+ buffers/cache:    425936    1368984
+
Swap: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 0
Swap:           0         0         0
 
 
</pre>
 
</pre>
  
=== '''&nbsp; &nbsp; &nbsp;&nbsp;查看存储容量(Check Storage Capacity)''' ===
+
&nbsp;
 +
 
 +
=== '''查看存储容量(Check Storage Capacity)''' ===
 
<pre>root@imx8qxprom5620a1:/# busybox df -h
 
<pre>root@imx8qxprom5620a1:/# busybox df -h
 
Filesystem                Size      Used Available Use% Mounted on
 
Filesystem                Size      Used Available Use% Mounted on
Line 467: Line 627:
 
root@imx8qxprom5620a1:/#</pre>
 
root@imx8qxprom5620a1:/#</pre>
  
=== '''&nbsp; &nbsp; &nbsp; 網路Ping測試(Ping Network Testing)''' ===
+
&nbsp;
 +
 
 +
&nbsp;
 +
 
 +
=== '''網路Ping測試(Ping Network Testing)''' ===
 
<pre>    ping 8.8.8.8
 
<pre>    ping 8.8.8.8
 
     PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
 
     PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
Line 473: Line 637:
 
     64 bytes from 8.8.8.8: icmp_seq=2 ttl=54 time=2.10 ms</pre>
 
     64 bytes from 8.8.8.8: icmp_seq=2 ttl=54 time=2.10 ms</pre>
  
=== '''&nbsp; &nbsp; &nbsp; 設置RTC (RTC Setting)&nbsp;''' ===
+
&nbsp;
<pre>    root@imx8qxprom5620a1:/# systemctl stop ntpdate.service
+
 
    root@imx8qxprom5620a1:/# date 090816072021 && hwclock -w && date
+
&nbsp;
            Wed Sep  8 16:07:00 UTC 2021
 
            Wed Sep  8 16:07:00 UTC 2021
 
    root@imx8qxprom5620a1:/# date
 
            Wed Sep  8 16:07:06 UTC 2021
 
    root@imx8qxprom5620a1:/#'''</pre>
 
  
'''&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;'''
+
&nbsp;
  
== '''Linux&nbsp;BSP編譯方法(Android BSP Compile Method)''' ==
+
&nbsp;
 +
 
 +
&nbsp;
 +
 
 +
&nbsp;
 +
 
 +
=== '''設置固定IP與DNS(Set static IP address and DNS)''' ===
 +
 
 +
[https://wiki.archlinux.org/title/systemd-networkd use systemd-networkd:]
 +
 
 +
Check running service:
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">systemctl --type=service</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">systemctl --type=service | grep --ignore-case 'network'</div>
 +
Set DNS:
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># cat /etc/systemd/network/20-wired.network<br/> [Match]<br/> Name=eth0</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">[Network]<br/> DHCP=ipv4<br/> DNS=8.8.8.8</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># cat /etc/systemd/network/21-wired.network<br/> [Match]<br/> Name=eth1</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">[Network]<br/> DHCP=ipv4<br/> DNS=8.8.4.4</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># systemctl restart systemd-networkd<br/> root@imx8mprsb3720a1:~# [ &nbsp;589.202133] imx-dwmac 30bf0000.ethernet eth1: PHY [stmmac-1:00] driver [RTL8211F Gigabit Ethernet]<br/> [ &nbsp;589.227041] imx-dwmac 30bf0000.ethernet eth1: No Safety Features support found<br/> [ &nbsp;589.234333] imx-dwmac 30bf0000.ethernet eth1: IEEE 1588-2008 Advanced Timestamp supported<br/> [ &nbsp;589.243248] imx-dwmac 30bf0000.ethernet eth1: registered PTP clock<br/> [ &nbsp;589.249491] imx-dwmac 30bf0000.ethernet eth1: configuring for phy/rgmii-id link mode<br/> [ &nbsp;589.257687] 8021q: adding VLAN 0 to HW filter on device eth1<br/> [ &nbsp;589.518704] RTL8211F Gigabit Ethernet 30be0000.ethernet-1:00: attached PHY driver [RTL8211F Gigabit Ethernet] (mii_bus:phy_addr=30be0000.ethernet-1:00, irq=175)<br/> [ &nbsp;592.419369] fec 30be0000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx<br/> [ &nbsp;592.427154] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># networkctl status<br/> * &nbsp; State: routable<br/> &nbsp; Address: 172.22.16.82 on eth0<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;fe80::76fe:48ff:fe73:be98 on eth0<br/> &nbsp; Gateway: 172.22.19.254 on eth0<br/> &nbsp; &nbsp; &nbsp; DNS: 8.8.4.4<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;8.8.8.8<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;172.22.2.99<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;172.20.1.99</div>
 +
&nbsp;
 +
 
 +
use connmanctl:
 +
 
 +
Check network services:
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># connmanctl services<br/> *AR Wired&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ethernet_74fe4873be98_cable</div>
 +
Check network setting:
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># connmanctl services ethernet_74fe4873be98_cable<br/> /net/connman/service/ethernet_74fe4873be98_cable<br/> &nbsp; Type = ethernet<br/> &nbsp; Security = [ &nbsp;]<br/> &nbsp; State = online<br/> &nbsp; Favorite = True<br/> &nbsp; Immutable = False<br/> &nbsp; AutoConnect = True<br/> &nbsp; Name = Wired<br/> &nbsp; Ethernet = [ Method=auto, Interface=eth0, Address=74:FE:48:73:BE:98, MTU=1500 ]<br/> &nbsp; IPv4 = [ Method=dhcp, Address=172.22.16.190, Netmask=255.255.252.0, Gateway=172.22.19.254 ]<br/> &nbsp; IPv4.Configuration = [ Method=dhcp ]<br/> &nbsp; IPv6 = [ &nbsp;]<br/> &nbsp; IPv6.Configuration = [ Method=auto, Privacy=disabled ]<br/> &nbsp; Nameservers = [ 172.22.2.99, 172.20.1.99 ]<br/> &nbsp; Nameservers.Configuration = [ &nbsp;]<br/> &nbsp; Timeservers = [ &nbsp;]<br/> &nbsp; Timeservers.Configuration = [ &nbsp;]<br/> &nbsp; Domains = [ ADVANTECH.CORP ]<br/> &nbsp; Domains.Configuration = [ &nbsp;]<br/> &nbsp; Proxy = [ Method=direct ]<br/> &nbsp; Proxy.Configuration = [ &nbsp;]<br/> &nbsp; mDNS = False<br/> &nbsp; mDNS.Configuration = False<br/> &nbsp; Provider = [ &nbsp;]</div>
 +
Set static IP Address:
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># connmanctl config ethernet_74fe4873be98_cable --ipv4 manual 192.168.0.1 255.255.255.0 192.168.0.254<br/> # connmanctl services ethernet_74fe4873be98_cable<br/> /net/connman/service/ethernet_74fe4873be98_cable<br/> &nbsp; Type = ethernet<br/> &nbsp; Security = [ &nbsp;]<br/> &nbsp; State = ready<br/> &nbsp; Favorite = True<br/> &nbsp; Immutable = False<br/> &nbsp; AutoConnect = True<br/> &nbsp; Name = Wired<br/> &nbsp; Ethernet = [ Method=auto, Interface=eth0, Address=74:FE:48:73:BE:98, MTU=1500 ]<br/> &nbsp; IPv4 = [ Method=manual, Address=192.168.0.1, Netmask=255.255.255.0, Gateway=192.168.0.254 ]<br/> &nbsp; IPv4.Configuration = [ Method=manual, Address=192.168.0.1, Netmask=255.255.255.0, Gateway=192.168.0.254 ]<br/> &nbsp; IPv6 = [ &nbsp;]<br/> &nbsp; IPv6.Configuration = [ Method=auto, Privacy=disabled ]<br/> &nbsp; Nameservers = [ &nbsp;]<br/> &nbsp; Nameservers.Configuration = [ &nbsp;]<br/> &nbsp; Timeservers = [ &nbsp;]<br/> &nbsp; Timeservers.Configuration = [ &nbsp;]<br/> &nbsp; Domains = [ &nbsp;]<br/> &nbsp; Domains.Configuration = [ &nbsp;]<br/> &nbsp; Proxy = [ Method=direct ]<br/> &nbsp; Proxy.Configuration = [ &nbsp;]<br/> &nbsp; mDNS = False<br/> &nbsp; mDNS.Configuration = False<br/> &nbsp; Provider = [ &nbsp;]</div>
 +
Set DNS server:
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># connmanctl config ethernet_74fe4873be98_cable --nameservers 8.8.8.8 8.8.4.4<br/> # connmanctl services ethernet_74fe4873be98_cable<br/> /net/connman/service/ethernet_74fe4873be98_cable<br/> &nbsp; Type = ethernet<br/> &nbsp; Security = [ &nbsp;]<br/> &nbsp; State = ready<br/> &nbsp; Favorite = True<br/> &nbsp; Immutable = False<br/> &nbsp; AutoConnect = True<br/> &nbsp; Name = Wired<br/> &nbsp; Ethernet = [ Method=auto, Interface=eth0, Address=74:FE:48:73:BE:98, MTU=1500 ]<br/> &nbsp; IPv4 = [ Method=manual, Address=192.168.0.1, Netmask=255.255.255.0, Gateway=192.168.0.254 ]<br/> &nbsp; IPv4.Configuration = [ Method=manual, Address=192.168.0.1, Netmask=255.255.255.0, Gateway=192.168.0.254 ]<br/> &nbsp; IPv6 = [ &nbsp;]<br/> &nbsp; IPv6.Configuration = [ Method=auto, Privacy=disabled ]<br/> &nbsp; Nameservers = [ 8.8.8.8, 8.8.4.4 ]<br/> &nbsp; Nameservers.Configuration = [ 8.8.8.8, 8.8.4.4 ]<br/> &nbsp; Timeservers = [ &nbsp;]<br/> &nbsp; Timeservers.Configuration = [ &nbsp;]<br/> &nbsp; Domains = [ &nbsp;]<br/> &nbsp; Domains.Configuration = [ &nbsp;]<br/> &nbsp; Proxy = [ Method=direct ]<br/> &nbsp; Proxy.Configuration = [ &nbsp;]<br/> &nbsp; mDNS = False<br/> &nbsp; mDNS.Configuration = False<br/> &nbsp; Provider = [ &nbsp;]</div>
 +
Changing the IP back to dhcp:
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># connmanctl config ethernet_74fe4873be98_cable --ipv4 dhcp<br/> # connmanctl services ethernet_74fe4873be98_cable<br/> /net/connman/service/ethernet_74fe4873be98_cable<br/> &nbsp; Type = ethernet<br/> &nbsp; Security = [ &nbsp;]<br/> &nbsp; State = ready<br/> &nbsp; Favorite = True<br/> &nbsp; Immutable = False<br/> &nbsp; AutoConnect = True<br/> &nbsp; Name = Wired<br/> &nbsp; Ethernet = [ Method=auto, Interface=eth0, Address=74:FE:48:73:BE:98, MTU=1500 ]<br/> &nbsp; IPv4 = [ Method=dhcp, Address=172.22.16.82, Netmask=255.255.252.0, Gateway=172.22.19.254 ]<br/> &nbsp; IPv4.Configuration = [ Method=dhcp ]<br/> &nbsp; IPv6 = [ &nbsp;]<br/> &nbsp; IPv6.Configuration = [ Method=auto, Privacy=disabled ]<br/> &nbsp; Nameservers = [ 8.8.8.8, 8.8.4.4 ]<br/> &nbsp; Nameservers.Configuration = [ 8.8.8.8, 8.8.4.4 ]<br/> &nbsp; Timeservers = [ &nbsp;]<br/> &nbsp; Timeservers.Configuration = [ &nbsp;]<br/> &nbsp; Domains = [ ADVANTECH.CORP ]<br/> &nbsp; Domains.Configuration = [ &nbsp;]<br/> &nbsp; Proxy = [ Method=direct ]<br/> &nbsp; Proxy.Configuration = [ &nbsp;]<br/> &nbsp; mDNS = False<br/> &nbsp; mDNS.Configuration = False<br/> &nbsp; Provider = [ &nbsp;]</div>
 +
Disable connman:
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># systemctl stop connman</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># systemctl disable connman</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># systemctl daemon-reload</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># systemctl restart systemd-networkd</div>
 +
Check DNS currently in use by systemd-resolved
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># resolvectl status</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># networkctl sttaus</div>
 +
DNS cannot work after disable connman service: [https://wiki.archlinux.org/title/systemd-resolved systemd-resolved]
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># ls -al /etc/resolv.conf</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">#&nbsp;ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># systemctl daemon-reload</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># systemctl restart systemd-networkd</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># systemctl restart systemd-resolved</div>
 +
=== '''設置RTC (RTC Setting)&nbsp;''' ===
 +
 
 +
&nbsp;Disable RTC sync service<br/> # systemctl disable ntpd.service<br/> &nbsp;[[File:RSB-3720 RTC pic1.png|RTENOTITLE]]<br/> # systemctl stop systemd-timesyncd<br/> # systemctl stop ntpdate.service<br/> &nbsp;[[File:RSB-3720 RTC pic2.png|RTENOTITLE]]<br/> Set system time to current, then write to RTC<br/> # date 040710522021 && hwclock -w && date<br/> &nbsp;[[File:RSB-3720 RTC pic3.png|RTENOTITLE]]<br/> Set incorrect time, then read time from RTC<br/> # date 010100002000 && hwclock -r && date<br/> &nbsp;[[File:RSB-3720 RTC pic4.png|RTENOTITLE]]<br/> Restart the RTC time to system time<br/> # hwclock -s && date
 +
 
 +
[[File:RSB-3720 RTC pic5.png|RTENOTITLE]]&nbsp;
 +
 
 +
&nbsp;
 +
 
 +
&nbsp;
 +
 
 +
&nbsp;
 +
 
 +
=== 設置LVDS clock (LVDS clock setting) ===
 +
 
 +
Reference:&nbsp;
 +
 
 +
<span style="font-size:small;"><span style="font-family:Arial,Helvetica,sans-serif;">[https://community.nxp.com/t5/i-MX-Processors/Limited-PLL-options-for-setting-up-LVDS-pixel-clock-on-IMX8MP/m-p/1502546#M193574 Limited PLL options for setting up LVDS pixel clock on IMX8MP]</span></span>
 +
 
 +
[https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/different-lvds-support-on-imx8mp/ta-p/1549174?attachment-id=144583 LVDS PLL of imx8mp.pdf]
 +
 
 +
[https://ess-wiki.advantech.com.tw/view/設置MX8MP_LVDS_clock 設置MX8MP_LVDS_clock&nbsp;(Setup MX8MP_LVDS_clock)]
 +
 
 +
=== Screenshot on weston by weston-screenshooter ===
 +
 
 +
Add "--debug" in&nbsp;/lib/systemd/system/weston@.service
 +
 
 +
[[File:Weston-screenshooter.png|RTENOTITLE]]
 +
 
 +
Save and exit. Type command to reload the sercive:
 +
 
 +
root@imx8mprsb3720a1:~# systemctl daemon-reload<br/> root@imx8mprsb3720a1:~# systemctl restart weston@root<br/> root@imx8mprsb3720a1:~# weston --debug<br/> root@imx8mprsb3720a1:~# weston-screenshooter
 +
 
 +
It will generate&nbsp;the screenshot wayland-screenshot*.png file:
 +
 
 +
[[File:Weston-screenshot.png|RTENOTITLE]]
 +
 
 +
&nbsp;
 +
 
 +
&nbsp;
 +
 
 +
=== Autoexec program after login to the system ===
 +
 
 +
Place the script file under /etc/profile.d/
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">
 +
root@imx8mprsb3720a1:~# cat /etc/profile.d/<br/> bash_completion.sh &nbsp;gawk.csh &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;gawk.sh &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; qt5.sh &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;test.sh &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; tslib.sh &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;weston.sh<br/> root@imx8mprsb3720a1:~# cat /etc/profile.d/test.sh<br/> #!/bin/sh
 +
 
 +
echo "I am running here..."<br/> root@imx8mprsb3720a1:~#
 +
</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">imx8mprsb3720a1 login: root<br/> Last login: Mon May 13 08:31:03 UTC 2024 on tty7<br/> I am running here...<br/> root@imx8mprsb3720a1:~#</div>
 +
&nbsp;
 +
 
 +
&nbsp;
 +
 
 +
&nbsp;
 +
 
 +
 
 +
=== Others: ===
 +
 
 +
[https://ess-wiki.advantech.com.tw/view/Conf_local.conf conf/local.conf]
 +
 
 +
[https://ess-wiki.advantech.com.tw/view/HDMI_rotation HDMI screen rotation]
 +
 
 +
[[Erase_eMMC|Erase_eMMC]]
 +
 
 +
[[Weston.ini|Weston.ini]]
 +
 
 +
[[Meta-advantech2|meta-advantech2]]
 +
 
 +
=== [https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwiJpaDHl4WQAxVWoa8BHauIH-0QFnoECBsQAQ&url=https://community.nxp.com/pwmxy87654/attachments/pwmxy87654/imx-processors/196951/1/i.MX_Yocto_Project_User's_Guide.pdf&usg=AOvVaw0g5BiSRZKYaqVw_MzYWm3q&opi=89978449 i.MX Yocto Project User's Guide - NXP Community] ===
 +
 
 +
== '''Linux&nbsp;BSP編譯方法(Linux BSP Compile Method)''' ==
 +
 
 +
=== [https://ess-wiki.advantech.com.tw/view/IoTGateway/BSP/Linux/iMX8/Yocto_LBVF_User_Guide '''Yocto 5.0'''] ===
 +
 
 +
=== [http://ess-wiki.advantech.com.tw/view/IoTGateway/BSP/Linux/iMX8/Yocto_LBVD_User_Guide '''Yocto 4.2'''] ===
 +
 
 +
=== [http://ess-wiki.advantech.com.tw/view/IoTGateway/BSP/Linux/iMX8/Yocto_LBVC_User_Guide '''Yocto 4.0'''] ===
 +
 
 +
=== [http://ess-wiki.advantech.com.tw/view/IoTGateway/BSP/Linux/iMX8/Yocto_LBVB_User_Guide '''Yocto 3.3&nbsp;'''] ===
  
 
=== [http://ess-wiki.advantech.com.tw/view/IoTGateway/BSP/Linux/iMX8/Yocto_LBVA_User_Guide '''Yocto 3.0'''] ===
 
=== [http://ess-wiki.advantech.com.tw/view/IoTGateway/BSP/Linux/iMX8/Yocto_LBVA_User_Guide '''Yocto 3.0'''] ===
 +
 +
'''================================================================================================================================================================'''
 +
 +
&nbsp;
 +
 +
 +
 +
 +
 +
 +
 +
== '''Build known issue''' ==
 +
 +
'''如果有驗證上的錯誤 請使用以下的方法 '''(if you have the build error , please&nbsp; use "&nbsp;<u>'''git config --global http.sslverify false"&nbsp;'''</u>
 +
 +
<u>'''### repo sync failed with Server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none<br/> ============================================================<br/> export GIT_SSL_NO_VERIFY=1<br/> #or<br/> git config --global http.sslverify false<br/> ============================================================'''</u>
 +
 +
&nbsp;
 +
 +
'''Add git and vim into image:'''
 +
 +
'''Add below in "conf/local.conf" file:'''
 +
 +
'''IMAGE_INSTALL_append = " git-perltools vim "'''
 +
 +
'''For install vim in xwayland, please add below into "meta/recipes-support/vim/vim_8.1.1518.bb b/meta/recipes-support/vim/vim_8.1.1518.bb" fie:'''
 +
 +
'''PACKAGECONFIG_remove = " x11 "'''
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">Yocto 4.0&nbsp;cannot fetch git submodule:</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">At path "~/adv-release-bsp/$build_folder/tmp/work/armv8a-poky-linux/nnshark/2021.10.imx-r0/git"</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">git config submodule.common.url&nbsp;[https://github.com/GStreamer/common.git https://github.com/GStreamer/common.git]</div>
 +
&nbsp;
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">Yocto 4.2 cannot fetch git submodule:</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">
 +
diff --git a/meta-ml/recipes-nnstreamer/nnshark/nnshark_2021.10.imx.bb b/meta-ml/recipes-nnstreamer/nnshark/nnshark_2021.10.imx.bb<br/> index f0e6fe73bd..3fc90f526e 100644<br/> --- a/meta-ml/recipes-nnstreamer/nnshark/nnshark_2021.10.imx.bb<br/> +++ b/meta-ml/recipes-nnstreamer/nnshark/nnshark_2021.10.imx.bb<br/> @@ -12,7 +12,7 @@ DEPENDS = "\<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;perf \<br/> &nbsp;"
 +
 +
-NNSHARK_SRC&nbsp;?= "gitsm://github.com/nxp-imx/nnshark.git;protocol=https"<br/> +NNSHARK_SRC&nbsp;?= "[git://github.com/nxp-imx/nnshark.git;protocol=https git://github.com/nxp-imx/nnshark.git;protocol=https]"<br/> &nbsp;SRCBRANCH&nbsp;?= "2021.10.imx"<br/> &nbsp;SRC_URI = "${NNSHARK_SRC};branch=${SRCBRANCH}"<br/> &nbsp;SRCREV = "e905828f16e3c374da7da9af30a5922086da4400"<br/> &nbsp;
 +
</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">At path "~/adv-release-bsp/$build_folder/tmp/work/armv8a-poky-linux/nnshark/2021.10.imx-r0/git"</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">git config submodule.common.url&nbsp;[https://github.com/GStreamer/common.git https://github.com/GStreamer/common.git]</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">git submodule update</div> <div>===================================================================================================================================================</div>
 +
'''nnshark error&nbsp;'''
 +
 +
[https://community.nxp.com/t5/i-MX-Processors/Yocto-3-3-5-10-72-BSP-Build-Fail/m-p/1487902 https://community.nxp.com/t5/i-MX-Processors/Yocto-3-3-5-10-72-BSP-Build-Fail/m-p/1487902]&nbsp;
 +
<div>==================================================================================================================================================</div>
 +
'''Yocto 5.0 devtool build u-boot-imx error:'''
 +
 +
cp: cannot stat '/home/adv/imx-yocto-bsp/Build_RSB3720_2G/tmp/work/imx8mprsb3720a2-poky-linux/u-boot-imx/2024.04/build/imx8mp_rsb3720a2_2G_defconfig/.config': No such file or directory<br/> | WARNING: exit code 1 from a shell command.<br/> ERROR: Task (/home/adv/imx-yocto-bsp/sources/meta-imx/meta-imx-bsp/recipes-bsp/u-boot/u-boot-imx_2024.04.bb:do_configure) failed with exit code '1'<br/> &nbsp;
 +
 +
[https://git.enea.com/cgit/linux/poky.git/commit/meta/classes-recipe/uboot-config.bbclass?h=yocto-5.2&id=371ecef31872a611f34b2541a50ceed0c3ce06af uboot-config: Fix devtool modify - linux/poky.git - Mirror of git.yoctoproject.org/poky]
 +
<div>=====================================================================================================================================</div>
 +
<div>=================================================================================================<div>
 +
 +
'''Ubuntu24.04 build error with "ERROR: PermissionError: [Errno 1] Operation not permitted"'''
 +
 +
ERROR: PermissionError: [Errno 1] Operation not permitted
 +
 +
During handling of the above exception, another exception occurred:
 +
 +
Traceback (most recent call last):<br/> File "/home/mohamedabdelslam/Abdelslam/IPC_BSP3/fsl-auto-yocto-bsp/sources/poky/bitbake/bin/bitbake-worker", line 268, in child<br/> bb.utils.disable_network(uid, gid)<br/> File "/home/mohamedabdelslam/Abdelslam/IPC_BSP3/fsl-auto-yocto-bsp/sources/poky/bitbake/lib/bb/utils.py", line 1653, in disable_network<br/> with open("/proc/self/uid_map", "w") as f:<br/> PermissionError: [Errno 1] Operation not permitted
 +
 +
[https://community.nxp.com/t5/S32G/S32G399ARDB3-Yocto-Bitbake-error/m-p/1980432#M11407 Solved: S32G399ARDB3-Yocto/Bitbake error - NXP Community]
 +
<pre><code>sudo apparmor_parser -R /etc/apparmor.d/unprivileged_userns</code></pre>
 +
 +
'''Security Hardening in Newer Ubuntu'''
 +
 +
Newer versions of Ubuntu, starting with releases around 23.10/24.04, prioritize security by default. They often ship with an active AppArmor profile specifically designed to restrict the use of '''unprivileged user namespaces'''.
 +
 +
*&nbsp;
 +
 +
'''Policy Name:''' <code>/etc/apparmor.d/unprivileged_userns</code>
 +
 +
*&nbsp;
 +
 +
'''Purpose:''' The policy aims to mitigate potential security vulnerabilities by limiting which applications can create these powerful sandboxes.
 +
 +
'''The Need to Unload'''
 +
 +
By running <code>sudo apparmor_parser -R /etc/apparmor.d/unprivileged_userns</code>, you are temporarily telling the '''Ubuntu 24.04 host kernel''' to:
 +
 +
*&nbsp;
 +
 +
'''Ignore (Remove) the policy.'''
 +
 +
*&nbsp;
 +
 +
'''Allow unrestricted use of unprivileged user namespaces''' by all processes, including the Docker daemon or the user running Docker.
 +
 +
This command is a '''workaround''' to loosen a modern security default (Ubuntu 24.04's strict AppArmor policy) to ensure backward compatibility and functionality with certain container and build setups.
 +
 +
<div>=================================================================================================<div>
 +
 +
&nbsp;
 +
 +
{| border="0" cellpadding="10" cellspacing="0" style="width:100%;"
 +
|-
 +
| <iframe height="230" key="advonline" level="campaign" path="en/aim-linux_community/" width="100%"></iframe>
 +
|}

Latest revision as of 04:24, 19 November 2025

Contents

產品介紹(Product introduction )

產品特性(Product Features)

  • NXP Arm® Cortex®-A53 i.MX8M Plus Quad/Dual up to 1.8 GHz
  • Onboard LPDDR4 4 GB / 6 GB, 4000MT/s memory
  • HDMI 1920x1080 at 60Hz, 1 Single or 1 Dual Channel 24 bit LVDS (or 1 4-Lane MIPI-DSI by BOM Option)
  • 1 4-wire RS-232/422/485, 1 USB3.2 Gen1 By 1, 1 USB2.0, 1 Micro SD, 1 Mic. in / Line out
  • 1 mini-PCIe for 3G/4G, 1 M.2 2230 Key E Slot
  • Supports Yocto Linux and Android
  • Support I/O Expansions boards by UIO40-Express


產品官網連結(Product official website link) 

RSB-3720

硬件接口說明(Hardware interface introduction)

接口布局和尺寸(Layout and Sizes)

RSB-3720 接口布局圖(Board Dimension Layout) 

 

RTENOTITLE

RTENOTITLE

 

RTENOTITLE

 

BAT RTC Battery Connector
BL1 LVDS Backlight 1 
BL2 LVDS Backlight 2 
COM1  COM + CAN Pin Header (default as debug console) 
CSI1 MIPI-CSI Camera Input 1
CSI2 MIPI-CSI Camera Input 2 
DCIN/DCIN 1 12V DC Power Inout by DC Jack / by Pin Header 
HDMI  HDMI CONN
LAN1 Ethernet 1 
LAN2  Ethernet 2
LOUT Line Out Pin Header
LVDS LVDS CONN.
M2 M.2 Key E CONN.
MIC MIC In Pin Header
MPCIE Mini-PCIe CONN.
RST Rest Button
SD SD Slot
UIO1  UIO40-Express Pin Header 1 
UIO2  UIO40-Express Pin Header 2 
USB1 USB CONN. (USB 3.2 Gen 1 on TOP + USB 2.0 on BOT)

 

接口引脚定義 (Pin definitions)

 

 

機械尺寸(Mechanical Characteristics)

RTENOTITLE

快速入門 (Quick Start)

系统下载 (OS Download)

  • Linux系统 (Linux OS)

Yocto 3.0:IoTGateway/BSP/Linux/iMX8/OS Support List 3.0

Yocto 3.3:IoTGateway/BSP/Linux/iMX8/OS Support List 3.3 RSB-3720

Yocto 4.0: IoTGateway/BSP/Linux/iMX8/OS Support List 4.0 release RSB-3720

Download mksd-linux.sh:

https://github.com/ADVANTECH-Corp/RISC_tools_scripts/blob/kirkstone/imx8/mksd-linux.sh

Download "Product_AIM_Release_version"_flash_tool.tgz

Unzip the "Product_AIM_Release_version"_flash_tool.tgz

Copy the mksd-linux.sh to mk_inand folder.

Run mksd-linux.sh

 Linux 燒錄方法 (Linux Flash eMMC Method) 

    1. 創建一個可以開機的SD Card (Create a bootable SD card )  

     先確認SD卡在Ubuntu 系統(x86) 所認到的SD卡代號 ( Check the SD card symbol in Ubuntu System (x86)

      Command: sudo fdisk - l 

      RTENOTITLE

   2. 燒錄鏡像到SD 卡中. (Flash Image into SD card) 

        Command : sudo dd if=3720A1AIM30LIVA0333_iMX8MP_6G_2021-10-05.img of=/dev/sdf bs=1M conv=fsync 

     RTENOTITLE

   3. 將flash tool 拷貝到U盤  (Cpye the eMMC flash tool into USB Disk ) 

      RTENOTITLE

4. 設定終端機(Set Debug Terminal) 

Debug 串口調試 (Debug port Setting)

以 Tera Term  為例介绍如何使用串口調試功能 ( Tera Term is kind of terminal tool , we need to set  the parameter (Baud Rate , Data, Parity, Stop, Flow Control )  into "Tera Term  terminal tool " )  

   波特率(Baud Rate):115200
   數據位(Data):8
   奇偶校驗(Parity):无 (none)
   停止位(Stop):1
   流控(Flow Control):无 (none) 

Tera Term Tool 

Check the Sriel port in Device Manager (查看PC端的串口號):

if you can not identify the Serial device , please check your serial driver. 

 

5. 將可開機的SD 卡插入 SD 插槽, 並打開電源開機     (Plug into the SD card into SD Card Slot , then turn on the power) 

   RTENOTITLE

6. 確認撥碼開關 為 SD 卡開機模式  (Check the Switch)

SD 卡開機: 1, 2 on  (Set the SD card boot up mode ,  1 on  2 on ) 

RTENOTITLE

'eMMC 開機: '2 on ( Set the eMMC boot up mode , 2 on , others off) 

RTENOTITLE

7.打開電源,由終端機可看到開機訊息  (Turn on the power , you will see the debug message from Terminal tool ) 

RTENOTITLE

8. 開機後 請再重新開機一次,系統將會重新劃分磁區大小. (If you can not not copy the eMMC flash tool into root file system , please reboot the device , because , the system will the reconfigure the partition )

9. 燒錄eMMC前, 請將U盤插入USB port   (Please pulg the USB Disk into USB port before flash eMMC)

10. 在系統確認U盤 (Check the USB disk in the Yocto System (Device side) ) 

     RTENOTITLE

11. 將flash tool 燒錄鏡像,拷貝到根目錄 (Copy the flash tool into root file system) 

 RTENOTITLE

RTENOTITLE

12. 解壓縮 flash tool  (Unzip the flash tool ) 

RTENOTITLE

13. 執行燒錄eMMC  (Exeucte the eMMC flash script )

   Note: eMMC : /dev/mmcblk2

  RTENOTITLE

14. 移除SD卡 ,重新開機,並切換撥碼開關  (Remove the SD card , Change the Switch to eMMC mode , then reboot the system) 

RTENOTITLE

15. 從eMMC 開機,debug 訊息  (You will see the debug message when you boot up from eMMC flash ) 

RTENOTITLE

    

Linux系统的基本使用(Linux System Basic Operating Method)

Display Setting (RSB-3720)

      U-boot Command                    

  • Display
    • HDMI (default)
      • imx8mp-rsb3720-a1.dtb
    • LVDS
      • g070vw01(LVDS0) + HDMI
        • imx8mp-rsb3720-a1-lvds0-auo.dtb
      • g070vw01(LVDS1) + HDMI
        • imx8mp-rsb3720-a1-lvds1-auo.dtb
      • g215hvn01(DUAL LVDS) + HDMI
        • imx8mp-rsb3720-a1-lvds-dual.dtb
    • DSI
      • adv7535(DSI to HDMI) + HDMI
        • imx8mp-rsb3720-a1-adv7535.dtb
      • auog101uan02(DSI) + HDMI
        • imx8mp-rsb3720-a1-auog101uan02.dtb
  • Camera
    • OV5640 (default)
      • imx8mp-rsb3720-a1.dtb
    • Basler camrea
      • imx8mp-rsb3720-a1-basler.dtb

 

乙太網路使用方法(Ethernent Testing Method)

Command : ifconfig 

RTENOTITLE

RTENOTITLE

Command: Ping 8.8.8.8 

RTENOTITLE

Change IP Addr Command:

Check Active Ethernet interface:

root@imx8mprsb3720a1:~# connmanctl services
*AR Wired                ethernet_74fe485e4fbd_cable

Set static IP Addr: 

  1. connmanctl config <service> --ipv4 manual <ip address> <netmask> <gateway>
    # connmanctl config <service> --nameservers <dns-addr>

Example:

root@imx8mprsb3720a1:~# connmanctl config ethernet_74fe485e4fbd_cable --ipv4 manual 192.168.1.100 255.255.255.0 192.168.1.254
root@imx8mprsb3720a1:~# connmanctl config ethernet_74fe485e4fbd_cable --nameservers 8.8.8.8 4.4.4.4

RJ45 LED Indicator:

Speed Left Right Command
10M OFF link green ethtool -s eth0 autoneg on speed 10 duplex full
100M ON 橙 link green ethtool -s eth0 autoneg on speed 100 duplex full
1000M ON 綠 link green ethtool -s eth0 autoneg on speed 1000 duplex full

WiFi使用方法(WIFI Testing Method)

# killall wpa_supplicant
# ifconfig wlan0 up
# wpa_passphrase "SSID" "PASSWORD" > /tmp/wpa.conf
# cat /tmp/wpa.conf
# wpa_supplicant -BDwext -iwlan0 -c/tmp/wpa.conf
# udhcpc -b -i wlan0
# ifconfig
# ping 8.8.8.8
Add DNS to /etc/resolv.conf
# cat /etc/resolv.conf
# Generated by Connection Manager
nameserver 8.8.8.8
nameserver 8.8.4.4
Now can ping google.com
# ping google.com

 

4G使用方法(4G Testing Method, Test with EWM-C117)

Check and change module to pppd mode
# stty -F /dev/ttyUSB3 –echo
# cat /dev/ttyUSB3 &
# echo AT+UUSBCONF? > /dev/ttyUSB3
 RTENOTITLE
Change to pppd mode:
# echo AT+UUSBCONF=0 > /dev/ttyUSB3
 RTENOTITLE
# echo AT+CFUN=16 > /dev/ttyUSB3
 RTENOTITLE
The module will be change to ttyACM0*, check again
# stty -F /dev/ttyACM0 –echo
# cat /dev/ttyACM0 &
# echo AT+UUSBCONF? > /dev/ttyACM0
 RTENOTITLE
Set module to con
# stty -F /dev/ttyACM0 -echo
# cat /dev/ttyACM0 &
# echo AT+csq > /dev/ttyACM0
# echo AT+cops? > /dev/ttyACM0
# echo AT+cgdcont? > /dev/ttyACM0
 RTENOTITLE
Connect to Internet:
# pppd connect 'chat -v -s -t 10 "" "AT" "" "ATDT*99***4#" "CONNECT" ""' user username password password /dev/ttyACM2 460800 nodetach crtscts debug usepeerdns defaultroute &
# ifconfig
 RTENOTITLE
# ping 8.8.8.8

RTENOTITLE

 

 

GPIO使用方法(GPIO Operating Method)

RSB-3720 GPIO Pin on UIO1/2 Number UIO-4030 GPIO
GPIO2 501  
GPIO4 503  
GPIO5 504 DB9-1 DI1#
GPIO6 505 DB9-6 DO1#
GPIO7 506 DB9-2 DI2#
GPIO8 507 DB9-7 DO2#
GPIO9 508 DB9-3 DI3#
GPIO10 509 DB9-8 DO3#
GPIO11 139 DB9-4 DI4#
GPIO12 138 DB9-9 DO4#

Short GPIO pin 2 & pin 4

RTENOTITLE

Short GPIO pin 5 & pin 6

RTENOTITLE

Short GPIO pin 7 & pin 8

RTENOTITLE

Short GPIO pin 9 & pin 10 

RTENOTITLE

Short GPIO pin 11 & pin 12

RTENOTITLE

 

 

LED_USER使用方法(LED_USER ON/OFF test)

ON: echo 255 > /sys/class/leds/user/brightness
OFF: echo 0 > /sys/class/leds/user/brightness

 

COM1複合使用方法(COM1 complex Port Operating Method) 

Note : please set the rs-485 , rs-422 GPIO setting with ssh console. 

RTENOTITLE

RTENOTITLE

RTENOTITLE

RTENOTITLE

RTENOTITLE

Set GPIO#496, #497 
Set to 0,1 for RS-485
Set to 1,1 for RS-422
Set to 0,0 for loopback
Set to 1,0 for RS-232

RS-232 default as debug console)

RTENOTITLE

RS-485 test
Test RS-485 with Adam-4520. Adam-4520 Pin to RSB-3720 COM1
Data- : Pin 1: COM_DCD
Data+ : Pin 3: COM_RXD

RS-485 test
# echo 496 > /sys/class/gpio/export
# echo 497 > /sys/class/gpio/export
# echo out > /sys/class/gpio/gpio1/direction
# echo out > /sys/class/gpio/gpio2/direction
# echo 0 > /sys/class/gpio/gpio1/value
# echo 1 > /sys/class/gpio/gpio2/value
# ./enable485 /dev/ttymxc2
# stty -F /dev/ttymxc2 speed 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke
# cat /dev/ttymxc2 &
# echo "Serial Test" > /dev/ttymxc2
Will print “Serial Test” through RS-485

RS-232  --  Disable console

Disable debug message output can also improve boot speed

Disable kernel message

setenv mmcargs setenv bootargs ${jh_clk} console=${console} modprobe.blacklist=${modprobe.blacklist} root=${mmcroot} video=HDMI-A-1:${videores} '''quiet'''
env save
reset

Or

Disable debug port

(1) Yocto machine setting:

modify /sources/meta-advantech/meta-fsl-imx/conf/machine$/${MC}.conf

SERIAL_CONSOLES = ";"

(2) Uboot parameter setting:

  • For the imx8mq, imx8mm, imx8mp:
setenv console disabled
env save
reset

CANBus or CAN-FD[edit]

(Please note that the CAN function on RSB-3720 COM1 Pin Header is CANBus only with RSB-3720CQ & RSB-3720CD, RSB-3720 COM1 Pin Header is CANB-FD only with RSB-3720WQ & RSB-3720WD) 
Step 1: Connect the UIO-4034 A101-2 CANbus port Pin 2 and Pin 7 to RSB-3720 COM1 with 1700100250 cable, pin 9 and Pin 6 of the DB9. 
Step 2: Set CAN0 and CAN1 up.

root@imx8mprsb3720a1:~# ip link set can0 up type can bitrate 125000 
[ 1362.935162] IPv6: ADDRCONF(NETDEV_CHANGE): can0: link becomes ready 
root@imx8mprsb3720a1:~# ifconfig can0 up 
root@imx8mprsb3720a1:~# ip link set can1 up type can bitrate 125000 
[ 1381.546624] IPv6: ADDRCONF(NETDEV_CHANGE): can1: link becomes ready 
root@imx8mprsb3720a1:~# ifconfig can1 up

Step 3: candump CAN0

root@imx8mprsb3720a1:~# candump can0 & 
[1] 965

Step 4: candump CAN1

root@imx8mprsb3720a1:~# cansend can1 1F334455#1122334455667788 
root@imx8mprsb3720a1:~# can0 1F334455 [8] 11 22 33 44 55 66 77 88

藍牙使用方法(BlueTooth Operating Method)

# hciattach /dev/ttymxc0 bcm43xx 115200 flow
# hciconfig hci0 up
# hcitool scan# bluetoothctl
# discoverable on
#pairable on
# scan on
# scan off
# pair 84:C5:A6:D3:AF:E4
# connect 84:C5:A6:D3:AF:E4
Check BT connect info
# info 84:C5:A6:D3:AF:E4

 

音訊使用方法(BlueTooth Operating Method)

Line-in , Line-out, MIC
1.Line-out
Command : gplay-1.0
2.MIC
Command : arecord
Check audio codec:
# cat /proc/asound/cards
0 [sgtl5000       ]: sgtl5000 - sgtl5000
                      sgtl5000
1 [audiohdmi      ]: audio-hdmi - audio-hdmi
                      audio-hdmi
root@imx8mprsb3720a1:~#
   Set Mic/audio volume
# amixer set Mic 100%
# amixer set Lineout 100%
# amixer set PCM 100%
Record and playback
Example command:
# arecord –t wav –c 1 –r 44100 –d 5 /tmp/mic.wav
# aplay /tmp/mic.wav
Record from MIC:
# arecord -D plughw:0,0 -r 16000 -f S16_LE ./f-16000.wav
Recording WAVE './f-16000.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono
# aplay f-16000.wav
Playing WAVE 'f-16000.wav' : Signed 16 bit Little Endian, Rate 16000 Hz, Mono
Play wav file from codec:
# aplay -D plughw:0,0 file_example_WAV_10MG.wav
Playing WAVE 'file_example_WAV_10MG.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Play wav file from HDMI:
# aplay -D plughw:1,0 file_example_WAV_10MG.wav
Playing WAVE 'file_example_WAV_10MG.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Play wav file from HDMI with gst-launch:
# gst-launch-1.0 filesrc location=LRMonoPhase4.wav ! wavparse ! audioconvert ! audioresample ! autoaudiosink

I2C 測試( I2C Test method) 

Check I2C device (Audio codec: 0-000a)
# i2cdetect -y 0
I2C set and get:
# i2cset -f -y 0 0x0a 0 0xff00 w
# i2cget -f -y 0 0x0a 0 w
0x11a0

看門狗測試 (Watch Dog Test method) 

System will reboot after 1 sec
# /unit_tests/Watchdog/wdt_driver_test.out 1 2 0

RTENOTITLE

攝像頭測試(Camera Test method) 

Check MIPI CSI camera 
MIPI CSI0:
MIPI CSI1:

MIPI CSI0 - ov5640
Preview:
# gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=640,height=480 ! waylandsink
Capture:
# gst-launch-1.0 v4l2src num-buffers=1 device=/dev/video0 ! video/x-raw,width=640,height=480 ! jpegenc ! filesink location=sample.jpeg
MIPI CSI1 – ov5640
Preview:
# gst-launch-1.0 v4l2src device=/dev/video1 ! video/x-raw,width=640,height=480 ! waylandsink
Capture:
# gst-launch-1.0 v4l2src num-buffers=1 device=/dev/video1 ! video/x-raw,width=640,height=480 ! jpegenc ! filesink location=sample.jpeg

遠程訪問及文件傳輸(Remote Access and File Transimmion)

              查看主板IP位址 ( check IP Address ):

        Command : ifconfig

RTENOTITLE

 

Windows下SSH訪問及文件傳輸

SSH Remote Log into Device 

  • SSH遠程登陸,以putty選擇putty.exe(或者使用Xshell、SecureCRT等類似軟件)
  • 需要設置遠程設備的IP、通訊端口(默認22)、通訊方式錄后驗證用户名密碼

 

RTENOTITLE

RTENOTITLE

 

RTENOTITLE

RTENOTITLE

通用方法(General Method)

查看CPU温度(Check CPU Temperature)

    root@imx8mprsb3720a1:/# cat /sys/devices/virtual/thermal/thermal_zone0/temp   40000

    # 或者直接以度爲單位顯示 echo $[$(cat /sys/class/thermal/thermal_zone0/temp)/1000]° >>> 40°

查看CPU频率(Check CPU Frequency)

           cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq 
           >> 1200000
           cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq    
           >> 1800000

查看内存容量(Check Memory Capacity)

root@imx8mprsb3720a1:/# busybox free -m
              total        used        free      shared  buff/cache   available
Mem:        6002524      393988     5517304       18460       91232     5507676
Swap:             0           0           0

 

查看存储容量(Check Storage Capacity)

root@imx8qxprom5620a1:/# busybox df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                13.4G      1.7G     11.1G  13% /
devtmpfs                395.8M      4.0K    395.8M   0% /dev
tmpfs                   876.4M         0    876.4M   0% /dev/shm
tmpfs                   876.4M     16.5M    859.9M   2% /run
tmpfs                   876.4M         0    876.4M   0% /sys/fs/cgroup
tmpfs                   876.4M      4.0K    876.4M   0% /tmp
tmpfs                   876.4M    280.0K    876.2M   0% /var/volatile
/dev/mmcblk0p2           13.6G      1.7G     11.3G  13% /run/media/mmcblk0p2
/dev/mmcblk0p1           63.9M     23.4M     40.5M  37% /run/media/mmcblk0p1
/dev/mmcblk1p1           63.9M     23.4M     40.5M  37% /run/media/mmcblk1p1
tmpfs                   175.3M     88.0K    175.2M   0% /run/user/0
root@imx8qxprom5620a1:/#

 

 

網路Ping測試(Ping Network Testing)

     ping 8.8.8.8
     PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
     64 bytes from 8.8.8.8: icmp_seq=1 ttl=54 time=2.10 ms
     64 bytes from 8.8.8.8: icmp_seq=2 ttl=54 time=2.10 ms

 

 

 

 

 

 

設置固定IP與DNS(Set static IP address and DNS)

use systemd-networkd:

Check running service:

systemctl --type=service
systemctl --type=service | grep --ignore-case 'network'

Set DNS:

# cat /etc/systemd/network/20-wired.network
[Match]
Name=eth0
[Network]
DHCP=ipv4
DNS=8.8.8.8
# cat /etc/systemd/network/21-wired.network
[Match]
Name=eth1
[Network]
DHCP=ipv4
DNS=8.8.4.4
# systemctl restart systemd-networkd
root@imx8mprsb3720a1:~# [  589.202133] imx-dwmac 30bf0000.ethernet eth1: PHY [stmmac-1:00] driver [RTL8211F Gigabit Ethernet]
[  589.227041] imx-dwmac 30bf0000.ethernet eth1: No Safety Features support found
[  589.234333] imx-dwmac 30bf0000.ethernet eth1: IEEE 1588-2008 Advanced Timestamp supported
[  589.243248] imx-dwmac 30bf0000.ethernet eth1: registered PTP clock
[  589.249491] imx-dwmac 30bf0000.ethernet eth1: configuring for phy/rgmii-id link mode
[  589.257687] 8021q: adding VLAN 0 to HW filter on device eth1
[  589.518704] RTL8211F Gigabit Ethernet 30be0000.ethernet-1:00: attached PHY driver [RTL8211F Gigabit Ethernet] (mii_bus:phy_addr=30be0000.ethernet-1:00, irq=175)
[  592.419369] fec 30be0000.ethernet eth0: Link is Up - 1Gbps/Full - flow control rx/tx
[  592.427154] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
# networkctl status
*   State: routable
  Address: 172.22.16.82 on eth0
           fe80::76fe:48ff:fe73:be98 on eth0
  Gateway: 172.22.19.254 on eth0
      DNS: 8.8.4.4
           8.8.8.8
           172.22.2.99
           172.20.1.99

 

use connmanctl:

Check network services:

# connmanctl services
*AR Wired                ethernet_74fe4873be98_cable

Check network setting:

# connmanctl services ethernet_74fe4873be98_cable
/net/connman/service/ethernet_74fe4873be98_cable
  Type = ethernet
  Security = [  ]
  State = online
  Favorite = True
  Immutable = False
  AutoConnect = True
  Name = Wired
  Ethernet = [ Method=auto, Interface=eth0, Address=74:FE:48:73:BE:98, MTU=1500 ]
  IPv4 = [ Method=dhcp, Address=172.22.16.190, Netmask=255.255.252.0, Gateway=172.22.19.254 ]
  IPv4.Configuration = [ Method=dhcp ]
  IPv6 = [  ]
  IPv6.Configuration = [ Method=auto, Privacy=disabled ]
  Nameservers = [ 172.22.2.99, 172.20.1.99 ]
  Nameservers.Configuration = [  ]
  Timeservers = [  ]
  Timeservers.Configuration = [  ]
  Domains = [ ADVANTECH.CORP ]
  Domains.Configuration = [  ]
  Proxy = [ Method=direct ]
  Proxy.Configuration = [  ]
  mDNS = False
  mDNS.Configuration = False
  Provider = [  ]

Set static IP Address:

# connmanctl config ethernet_74fe4873be98_cable --ipv4 manual 192.168.0.1 255.255.255.0 192.168.0.254
# connmanctl services ethernet_74fe4873be98_cable
/net/connman/service/ethernet_74fe4873be98_cable
  Type = ethernet
  Security = [  ]
  State = ready
  Favorite = True
  Immutable = False
  AutoConnect = True
  Name = Wired
  Ethernet = [ Method=auto, Interface=eth0, Address=74:FE:48:73:BE:98, MTU=1500 ]
  IPv4 = [ Method=manual, Address=192.168.0.1, Netmask=255.255.255.0, Gateway=192.168.0.254 ]
  IPv4.Configuration = [ Method=manual, Address=192.168.0.1, Netmask=255.255.255.0, Gateway=192.168.0.254 ]
  IPv6 = [  ]
  IPv6.Configuration = [ Method=auto, Privacy=disabled ]
  Nameservers = [  ]
  Nameservers.Configuration = [  ]
  Timeservers = [  ]
  Timeservers.Configuration = [  ]
  Domains = [  ]
  Domains.Configuration = [  ]
  Proxy = [ Method=direct ]
  Proxy.Configuration = [  ]
  mDNS = False
  mDNS.Configuration = False
  Provider = [  ]

Set DNS server:

# connmanctl config ethernet_74fe4873be98_cable --nameservers 8.8.8.8 8.8.4.4
# connmanctl services ethernet_74fe4873be98_cable
/net/connman/service/ethernet_74fe4873be98_cable
  Type = ethernet
  Security = [  ]
  State = ready
  Favorite = True
  Immutable = False
  AutoConnect = True
  Name = Wired
  Ethernet = [ Method=auto, Interface=eth0, Address=74:FE:48:73:BE:98, MTU=1500 ]
  IPv4 = [ Method=manual, Address=192.168.0.1, Netmask=255.255.255.0, Gateway=192.168.0.254 ]
  IPv4.Configuration = [ Method=manual, Address=192.168.0.1, Netmask=255.255.255.0, Gateway=192.168.0.254 ]
  IPv6 = [  ]
  IPv6.Configuration = [ Method=auto, Privacy=disabled ]
  Nameservers = [ 8.8.8.8, 8.8.4.4 ]
  Nameservers.Configuration = [ 8.8.8.8, 8.8.4.4 ]
  Timeservers = [  ]
  Timeservers.Configuration = [  ]
  Domains = [  ]
  Domains.Configuration = [  ]
  Proxy = [ Method=direct ]
  Proxy.Configuration = [  ]
  mDNS = False
  mDNS.Configuration = False
  Provider = [  ]

Changing the IP back to dhcp:

# connmanctl config ethernet_74fe4873be98_cable --ipv4 dhcp
# connmanctl services ethernet_74fe4873be98_cable
/net/connman/service/ethernet_74fe4873be98_cable
  Type = ethernet
  Security = [  ]
  State = ready
  Favorite = True
  Immutable = False
  AutoConnect = True
  Name = Wired
  Ethernet = [ Method=auto, Interface=eth0, Address=74:FE:48:73:BE:98, MTU=1500 ]
  IPv4 = [ Method=dhcp, Address=172.22.16.82, Netmask=255.255.252.0, Gateway=172.22.19.254 ]
  IPv4.Configuration = [ Method=dhcp ]
  IPv6 = [  ]
  IPv6.Configuration = [ Method=auto, Privacy=disabled ]
  Nameservers = [ 8.8.8.8, 8.8.4.4 ]
  Nameservers.Configuration = [ 8.8.8.8, 8.8.4.4 ]
  Timeservers = [  ]
  Timeservers.Configuration = [  ]
  Domains = [ ADVANTECH.CORP ]
  Domains.Configuration = [  ]
  Proxy = [ Method=direct ]
  Proxy.Configuration = [  ]
  mDNS = False
  mDNS.Configuration = False
  Provider = [  ]

Disable connman:

# systemctl stop connman
# systemctl disable connman
# systemctl daemon-reload
# systemctl restart systemd-networkd

Check DNS currently in use by systemd-resolved

# resolvectl status
# networkctl sttaus

DNS cannot work after disable connman service: systemd-resolved

# ls -al /etc/resolv.conf
# ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
# systemctl daemon-reload
# systemctl restart systemd-networkd
# systemctl restart systemd-resolved

設置RTC (RTC Setting) 

 Disable RTC sync service
# systemctl disable ntpd.service
 RTENOTITLE
# systemctl stop systemd-timesyncd
# systemctl stop ntpdate.service
 RTENOTITLE
Set system time to current, then write to RTC
# date 040710522021 && hwclock -w && date
 RTENOTITLE
Set incorrect time, then read time from RTC
# date 010100002000 && hwclock -r && date
 RTENOTITLE
Restart the RTC time to system time
# hwclock -s && date

RTENOTITLE 

 

 

 

設置LVDS clock (LVDS clock setting)

Reference: 

Limited PLL options for setting up LVDS pixel clock on IMX8MP

LVDS PLL of imx8mp.pdf

設置MX8MP_LVDS_clock (Setup MX8MP_LVDS_clock)

Screenshot on weston by weston-screenshooter

Add "--debug" in /lib/systemd/system/weston@.service

RTENOTITLE

Save and exit. Type command to reload the sercive:

root@imx8mprsb3720a1:~# systemctl daemon-reload
root@imx8mprsb3720a1:~# systemctl restart weston@root
root@imx8mprsb3720a1:~# weston --debug
root@imx8mprsb3720a1:~# weston-screenshooter

It will generate the screenshot wayland-screenshot*.png file:

RTENOTITLE

 

 

Autoexec program after login to the system

Place the script file under /etc/profile.d/

root@imx8mprsb3720a1:~# cat /etc/profile.d/
bash_completion.sh  gawk.csh            gawk.sh             qt5.sh              test.sh             tslib.sh            weston.sh
root@imx8mprsb3720a1:~# cat /etc/profile.d/test.sh
#!/bin/sh

echo "I am running here..."
root@imx8mprsb3720a1:~#

imx8mprsb3720a1 login: root
Last login: Mon May 13 08:31:03 UTC 2024 on tty7
I am running here...
root@imx8mprsb3720a1:~#

 

 

 


Others:

conf/local.conf

HDMI screen rotation

Erase_eMMC

Weston.ini

meta-advantech2

i.MX Yocto Project User's Guide - NXP Community

Linux BSP編譯方法(Linux BSP Compile Method)

Yocto 5.0

Yocto 4.2

Yocto 4.0

Yocto 3.3 

Yocto 3.0

================================================================================================================================================================

 




Build known issue

如果有驗證上的錯誤 請使用以下的方法 (if you have the build error , please  use " git config --global http.sslverify false" 

### repo sync failed with Server certificate verification failed. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: none
============================================================
export GIT_SSL_NO_VERIFY=1
#or
git config --global http.sslverify false
============================================================

 

Add git and vim into image:

Add below in "conf/local.conf" file:

IMAGE_INSTALL_append = " git-perltools vim "

For install vim in xwayland, please add below into "meta/recipes-support/vim/vim_8.1.1518.bb b/meta/recipes-support/vim/vim_8.1.1518.bb" fie:

PACKAGECONFIG_remove = " x11 "

Yocto 4.0 cannot fetch git submodule:
At path "~/adv-release-bsp/$build_folder/tmp/work/armv8a-poky-linux/nnshark/2021.10.imx-r0/git"
git config submodule.common.url https://github.com/GStreamer/common.git

 

Yocto 4.2 cannot fetch git submodule:

diff --git a/meta-ml/recipes-nnstreamer/nnshark/nnshark_2021.10.imx.bb b/meta-ml/recipes-nnstreamer/nnshark/nnshark_2021.10.imx.bb
index f0e6fe73bd..3fc90f526e 100644
--- a/meta-ml/recipes-nnstreamer/nnshark/nnshark_2021.10.imx.bb
+++ b/meta-ml/recipes-nnstreamer/nnshark/nnshark_2021.10.imx.bb
@@ -12,7 +12,7 @@ DEPENDS = "\
         perf \
 "

-NNSHARK_SRC ?= "gitsm://github.com/nxp-imx/nnshark.git;protocol=https"
+NNSHARK_SRC ?= "git://github.com/nxp-imx/nnshark.git;protocol=https"
 SRCBRANCH ?= "2021.10.imx"
 SRC_URI = "${NNSHARK_SRC};branch=${SRCBRANCH}"
 SRCREV = "e905828f16e3c374da7da9af30a5922086da4400"
 

At path "~/adv-release-bsp/$build_folder/tmp/work/armv8a-poky-linux/nnshark/2021.10.imx-r0/git"
git config submodule.common.url https://github.com/GStreamer/common.git
git submodule update
===================================================================================================================================================

nnshark error 

https://community.nxp.com/t5/i-MX-Processors/Yocto-3-3-5-10-72-BSP-Build-Fail/m-p/1487902 

==================================================================================================================================================

Yocto 5.0 devtool build u-boot-imx error:

cp: cannot stat '/home/adv/imx-yocto-bsp/Build_RSB3720_2G/tmp/work/imx8mprsb3720a2-poky-linux/u-boot-imx/2024.04/build/imx8mp_rsb3720a2_2G_defconfig/.config': No such file or directory
| WARNING: exit code 1 from a shell command.
ERROR: Task (/home/adv/imx-yocto-bsp/sources/meta-imx/meta-imx-bsp/recipes-bsp/u-boot/u-boot-imx_2024.04.bb:do_configure) failed with exit code '1'
 

uboot-config: Fix devtool modify - linux/poky.git - Mirror of git.yoctoproject.org/poky

=====================================================================================================================================
=================================================================================================

Ubuntu24.04 build error with "ERROR: PermissionError: [Errno 1] Operation not permitted"

ERROR: PermissionError: [Errno 1] Operation not permitted

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/mohamedabdelslam/Abdelslam/IPC_BSP3/fsl-auto-yocto-bsp/sources/poky/bitbake/bin/bitbake-worker", line 268, in child
bb.utils.disable_network(uid, gid)
File "/home/mohamedabdelslam/Abdelslam/IPC_BSP3/fsl-auto-yocto-bsp/sources/poky/bitbake/lib/bb/utils.py", line 1653, in disable_network
with open("/proc/self/uid_map", "w") as f:
PermissionError: [Errno 1] Operation not permitted

Solved: S32G399ARDB3-Yocto/Bitbake error - NXP Community

<code>sudo apparmor_parser -R /etc/apparmor.d/unprivileged_userns</code>

Security Hardening in Newer Ubuntu

Newer versions of Ubuntu, starting with releases around 23.10/24.04, prioritize security by default. They often ship with an active AppArmor profile specifically designed to restrict the use of unprivileged user namespaces.

  •  

Policy Name: /etc/apparmor.d/unprivileged_userns

  •  

Purpose: The policy aims to mitigate potential security vulnerabilities by limiting which applications can create these powerful sandboxes.

The Need to Unload

By running sudo apparmor_parser -R /etc/apparmor.d/unprivileged_userns, you are temporarily telling the Ubuntu 24.04 host kernel to:

  •  

Ignore (Remove) the policy.

  •  

Allow unrestricted use of unprivileged user namespaces by all processes, including the Docker daemon or the user running Docker.

This command is a workaround to loosen a modern security default (Ubuntu 24.04's strict AppArmor policy) to ensure backward compatibility and functionality with certain container and build setups.

=================================================================================================