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
產品官網連結(Product official website link)
硬件接口說明(Hardware interface introduction)
接口布局和尺寸(Layout and Sizes)
RSB-3720 接口布局圖(Board Dimension Layout)



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

快速入門 (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

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

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

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)

6. 確認撥碼開關 為 SD 卡開機模式 (Check the Switch)
SD 卡開機: 1, 2 on (Set the SD card boot up mode , 1 on 2 on )

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

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

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

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


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

13. 執行燒錄eMMC (Exeucte the eMMC flash script )
Note: eMMC : /dev/mmcblk2

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

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

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
- g070vw01(LVDS0) + HDMI
- DSI
- adv7535(DSI to HDMI) + HDMI
- imx8mp-rsb3720-a1-adv7535.dtb
- auog101uan02(DSI) + HDMI
- imx8mp-rsb3720-a1-auog101uan02.dtb
- adv7535(DSI to HDMI) + HDMI
- HDMI (default)
- Camera
- OV5640 (default)
- imx8mp-rsb3720-a1.dtb
- Basler camrea
- imx8mp-rsb3720-a1-basler.dtb
- OV5640 (default)
乙太網路使用方法(Ethernent Testing Method)
Command : ifconfig


Command: Ping 8.8.8.8

Change IP Addr Command:
Check Active Ethernet interface:
root@imx8mprsb3720a1:~# connmanctl services
*AR Wired ethernet_74fe485e4fbd_cable
Set static IP Addr:
- 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# connmanctl config ethernet_74fe485e4fbd_cable --nameservers 8.8.8.8 4.4.4.4
root@imx8mprsb3720a1:
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

Change to pppd mode:
echo AT+UUSBCONF=0 > /dev/ttyUSB3

echo AT+CFUN=16 > /dev/ttyUSB3

The module will be change to ttyACM0*, check again
stty -F /dev/ttyACM0 –echo
cat /dev/ttyACM0 &
echo AT+UUSBCONF? > /dev/ttyACM0

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

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

ping 8.8.8.8**

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

Short GPIO pin 5 & pin 6

Short GPIO pin 7 & pin 8

Short GPIO pin 9 & pin 10

Short GPIO pin 11 & pin 12

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.





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)

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 # ifconfig can0 up
[ 1362.935162] IPv6: ADDRCONF(NETDEV_CHANGE): can0: link becomes ready
root@imx8mprsb3720a1:
root@imx8mprsb3720a1:# ip link set can1 up type can bitrate 125000 # ifconfig can1 up
[ 1381.546624] IPv6: ADDRCONF(NETDEV_CHANGE): can1: link becomes ready
root@imx8mprsb3720a1:
Step 3: candump CAN0
root@imx8mprsb3720a1:~# candump can0 &
[1] 965
Step 4: candump CAN1
root@imx8mprsb3720a1:# cansend can1 1F334455#1122334455667788 # can0 1F334455 [8] 11 22 33 44 55 66 77 88
root@imx8mprsb3720a1:
藍牙使用方法(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

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

Windows下SSH訪問及文件傳輸
SSH Remote Log into Device
- SSH遠程登陸,以putty選擇putty.exe(或者使用Xshell、SecureCRT等類似軟件)
- 需要設置遠程設備的IP、通訊端口(默認22)、通訊方式錄后驗證用户名密碼




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

systemctl stop systemd-timesyncd
systemctl stop ntpdate.service

Set system time to current, then write to RTC
date 040710522021 && hwclock -w && date

Set incorrect time, then read time from RTC
date 010100002000 && hwclock -r && date

Restart the RTC time to system time
hwclock -s && date

設置LVDS clock (LVDS clock setting)
Reference:
Limited PLL options for setting up LVDS pixel clock on IMX8MP
設置MX8MP_LVDS_clock (Setup MX8MP_LVDS_clock)
Screenshot on weston by weston-screenshooter
Add "--debug" in /lib/systemd/system/weston@.service

Save and exit. Type command to reload the sercive:
root@imx8mprsb3720a1:# systemctl daemon-reload# systemctl restart weston@root
root@imx8mprsb3720a1:
root@imx8mprsb3720a1:# weston --debug# weston-screenshooter
root@imx8mprsb3720a1:
It will generate the screenshot wayland-screenshot*.png file:

Autoexec program after login to the system
Place the script file under /etc/profile.d/
root@imx8mprsb3720a1:# cat /etc/profile.d/# cat /etc/profile.d/test.sh
bash_completion.sh gawk.csh gawk.sh qt5.sh test.sh tslib.sh weston.sh
root@imx8mprsb3720a1:
#!/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.
=================================================================================================