Skip to main content

EPC-R3720_Yocto42_User_Guide

產品介紹(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

RSB-3720

硬件接口說明(Hardware interface introduction)

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

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

![圖片連結](./img_EPC-R3720/RSB-3720_board_review2021-10-21_144120.jpg "RTENOTITLE".md)

![圖片連結](./img_EPC-R3720/RSB-3720_connector_location_2021-10-21_143853.jpg "RTENOTITLE".md)

![圖片連結](./img_EPC-R3720/RSB-3720_connector_location_back_2021-10-21_144716.jpg "RTENOTITLE".md)

BATRTC Battery Connector
BL1LVDS Backlight 1
BL2LVDS Backlight 2
COM1COM + CAN Pin Header (default as debug console)
CSI1MIPI-CSI Camera Input 1
CSI2MIPI-CSI Camera Input 2
DCIN/DCIN 112V DC Power Inout by DC Jack / by Pin Header
HDMIHDMI CONN
LAN1Ethernet 1
LAN2Ethernet 2
LOUTLine Out Pin Header
LVDSLVDS CONN.
M2M.2 Key E CONN.
MICMIC In Pin Header
MPCIEMini-PCIe CONN.
RSTRest Button
SDSD Slot
UIO1UIO40-Express Pin Header 1
UIO2UIO40-Express Pin Header 2
USB1USB CONN. (USB 3.2 Gen 1 on TOP + USB 2.0 on BOT)

接口引脚定義 (Pin definitions)

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

**機械尺寸(**Mechanical Characteristics)

![圖片連結](./img_EPC-R3720/RSB-3720_board_Dimensions_2021-10-21_145827.jpg "RTENOTITLE".md)

快速入門 (Quick Start)

系统下载 (OS Download)

  • Linux系统 (Linux OS)

Yocto 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

![圖片連結](./img_EPC-R3720/RSB-3720_SD_fdisk_info_2021-10-28_113030.jpg "RTENOTITLE".md)

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

![圖片連結](./img_EPC-R3720/RSB-3720_dd_SD_info_2021-10-28_113804.jpg "RTENOTITLE".md)

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

![圖片連結](./img_EPC-R3720/RSB-3720_cp_file_into_USB_2021-10-28_115157.jpg "RTENOTITLE".md)

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)

![圖片連結](./img_EPC-R3720/RSB-3720_SD_solt_2021-10-28_115806.jpg "RTENOTITLE".md)

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

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

![圖片連結](./img_EPC-R3720/RSB-3720_SD_Card_boot_up_2021-10-28_132021.jpg "RTENOTITLE".md)

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

![圖片連結](./img_EPC-R3720/RSB-3720_eMMC_boot_up_2021-10-28_132058.jpg "RTENOTITLE".md)

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

![圖片連結](./img_EPC-R3720/RSB-3720_debug_message_2021-10-28_132358.jpg "RTENOTITLE".md)

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) )

![圖片連結](./img_EPC-R3720/RSB-3720_check_usb_in_system_2021-10-28_132956.jpg "RTENOTITLE".md)

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

![圖片連結](./img_EPC-R3720/RSB-3720_cp_flashtool_to_root_2021-10-28_133320.jpg "RTENOTITLE".md)

![圖片連結](./img_EPC-R3720/RSB-3720_cp_root_check_2021-10-28_133504.jpg "RTENOTITLE".md)

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

![圖片連結](./img_EPC-R3720/RSB-3720_unzip_flash_tool_2021-10-28_134631.jpg "RTENOTITLE".md)

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

   Note: eMMC : /dev/mmcblk2

![圖片連結](./img_EPC-R3720/RSB-3720_flash_eMMC_done_2021-10-28_141001.jpg "RTENOTITLE".md)

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

![圖片連結](./img_EPC-R3720/RSB-3720_eMMC_boot_up_2021-10-28_132058.jpg "RTENOTITLE".md)

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

![圖片連結](./img_EPC-R3720/RSB-3720_bootup_from_eMMC_2021-10-28_141704.jpg "RTENOTITLE".md)

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

![圖片連結](./img_EPC-R3720/RSB-3720_ifconfig_eth0_2021-10-28_142051.jpg "RTENOTITLE".md)

![圖片連結](./img_EPC-R3720/RSB-3720_ifconfig_eth1_2021-10-28_142202.jpg "RTENOTITLE".md)

Command: Ping 8.8.8.8

![圖片連結](./img_EPC-R3720/RSB-3720_ping_8888_2021-10-28_142402.jpg "RTENOTITLE".md)

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:

SpeedLeftRightCommand
10MOFFlink greenethtool -s eth0 autoneg on speed 10 duplex full
100MON 橙link greenethtool -s eth0 autoneg on speed 100 duplex full
1000MON 綠link greenethtool -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

 ![圖片連結](./img_EPC-R3720/RSB-3720_4G_pic1.png "RTENOTITLE".md)
Change to pppd mode:

echo AT+UUSBCONF=0 > /dev/ttyUSB3

 ![圖片連結](./img_EPC-R3720/RSB-3720_4G_pic2.png "RTENOTITLE".md)

echo AT+CFUN=16 > /dev/ttyUSB3

 ![圖片連結](./img_EPC-R3720/RSB-3720_4G_pic3.png "RTENOTITLE".md)
The module will be change to ttyACM0*, check again

stty -F /dev/ttyACM0 –echo

cat /dev/ttyACM0 &

echo AT+UUSBCONF? > /dev/ttyACM0

 ![圖片連結](./img_EPC-R3720/RSB-3720_4G_pic4.png "RTENOTITLE".md)
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

 ![圖片連結](./img_EPC-R3720/RSB-3720_4G_pic5.png "RTENOTITLE".md)
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

 ![圖片連結](./img_EPC-R3720/RSB-3720_4G_pic6.png "RTENOTITLE".md)

ping 8.8.8.8**

![圖片連結](./img_EPC-R3720/RSB-3720_4G_pic7.png "RTENOTITLE".md)

GPIO使用方法(GPIO Operating Method)

RSB-3720 GPIO Pin on UIO1/2NumberUIO-4030 GPIO
GPIO2501
GPIO4503
GPIO5504DB9-1 DI1#
GPIO6505DB9-6 DO1#
GPIO7506DB9-2 DI2#
GPIO8507DB9-7 DO2#
GPIO9508DB9-3 DI3#
GPIO10509DB9-8 DO3#
GPIO11139DB9-4 DI4#
GPIO12138DB9-9 DO4#

Short GPIO pin 2 & pin 4

![圖片連結](./img_EPC-R3720/RSB-3720_gpio_short24.png "RTENOTITLE".md)

Short GPIO pin 5 & pin 6

![圖片連結](./img_EPC-R3720/RSB-3720_gpio_short56.png "RTENOTITLE".md)

Short GPIO pin 7 & pin 8

![圖片連結](./img_EPC-R3720/RSB-3720_gpio_short78.png "RTENOTITLE".md)

Short GPIO pin 9 & pin 10

![圖片連結](./img_EPC-R3720/RSB-3720_gpio_short910.png "RTENOTITLE".md)

Short GPIO pin 11 & pin 12

![圖片連結](./img_EPC-R3720/RSB-3720_gpio_short1112.png "RTENOTITLE".md)

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.

![圖片連結](./img_EPC-R3720/RSB-3720_ifconfig_address.png "RTENOTITLE".md)

![圖片連結](./img_EPC-R3720/RSB-3720_reboot_system.png "RTENOTITLE".md)

![圖片連結](./img_EPC-R3720/RSB-3720_ssh_connection.png "RTENOTITLE".md)

![圖片連結](./img_EPC-R3720/RSB-3720_ssh_connection_login.png "RTENOTITLE".md)

![圖片連結](./img_EPC-R3720/RSB-3720_set_gpio_function_mode.png "RTENOTITLE".md)

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)

![圖片連結](./img_EPC-R3720/RSB-3720_COM1_2021-10-21_152125.jpg "RTENOTITLE".md)

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

![圖片連結](./img_EPC-R3720/RSB-3720_watchdog.png "RTENOTITLE".md)

攝像頭測試(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

![圖片連結](./img_EPC-R3720/RSB-3720_ifconfig_2022-01-03_153950.jpg "RTENOTITLE".md)

Windows下SSH訪問及文件傳輸

SSH Remote Log into Device

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

![圖片連結](./img_EPC-R3720/SSHsettingdetail.png "RTENOTITLE".md)

![圖片連結](./img_EPC-R3720/SSHSetting2021-09-10_143631.jpg "RTENOTITLE".md)

![圖片連結](./img_EPC-R3720/Sshsetting12021-09-10_143743n.jpg "RTENOTITLE".md)

![圖片連結](./img_EPC-R3720/RSB-3720_ssh_console.png "RTENOTITLE".md)

通用方法(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

 ![圖片連結](./img_EPC-R3720/RSB-3720_RTC_pic1.png "RTENOTITLE".md)

systemctl stop systemd-timesyncd

systemctl stop ntpdate.service

 ![圖片連結](./img_EPC-R3720/RSB-3720_RTC_pic2.png "RTENOTITLE".md)
Set system time to current, then write to RTC

date 040710522021 && hwclock -w && date

 ![圖片連結](./img_EPC-R3720/RSB-3720_RTC_pic3.png "RTENOTITLE".md)
Set incorrect time, then read time from RTC

date 010100002000 && hwclock -r && date

 ![圖片連結](./img_EPC-R3720/RSB-3720_RTC_pic4.png "RTENOTITLE".md)
Restart the RTC time to system time

hwclock -s && date

![圖片連結](./img_EPC-R3720/RSB-3720_RTC_pic5.png "RTENOTITLE".md)

設置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

![圖片連結](./img_EPC-R3720/Weston-screenshooter.png "RTENOTITLE".md)

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:

![圖片連結](./img_EPC-R3720/Weston-screenshot.png "RTENOTITLE".md)

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

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.

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