Difference between revisions of "RSB-3810 user guide Ubuntu22.04"

From ESS-WIKI
Jump to: navigation, search
 
(57 intermediate revisions by 2 users not shown)
Line 10: Line 10:
 
*1 x M.2 3052 Key B for 5G,1 x M.2 2230 Key E Slot for WiFi/BT  
 
*1 x M.2 3052 Key B for 5G,1 x M.2 2230 Key E Slot for WiFi/BT  
 
*支援UIO40-Express I/O板擴充  
 
*支援UIO40-Express I/O板擴充  
*支援Ubuntu、Ycoto Linux和Android  
+
*支援Ubuntu Linux和Android  
  
 
 
 
 
Line 148: Line 148:
  
 
== '''快速入门 (Quick Start)''' ==
 
== '''快速入门 (Quick Start)''' ==
 +
 +
  
 
=== '''系统下载 (OS Download)''' ===
 
=== '''系统下载 (OS Download)''' ===
  
[http://ess-wiki.advantech.com.tw/view/IoTGateway/BSP/Android/MT8395_OS_Support_List_for_android11 Android 11 OS download]
+
[https://advantecho365-my.sharepoint.com/:f:/g/personal/jems_cheng_advantech_com/El-qVcFLmBZBhM57lbsbZZQBsZPbzkkj2Y6iXMS1zHIg5g?e=RdTHtd Ubuntu recovery image]
  
 
 
 
 
Line 163: Line 165:
 
2. RSB-3810 can communicate with a host server using serial cables. Common serial communication programs such as HyperTerminal, Tera Term or PuTTY can be used in such applications. The example demonstrated below describes the serial terminal setup using Tera Term on a Windows host: Open Tera Term on your Windows PC, set the Baud rate to 921600.
 
2. RSB-3810 can communicate with a host server using serial cables. Common serial communication programs such as HyperTerminal, Tera Term or PuTTY can be used in such applications. The example demonstrated below describes the serial terminal setup using Tera Term on a Windows host: Open Tera Term on your Windows PC, set the Baud rate to 921600.
  
 
 
  
 
=== '''燒錄方法 (Flash eMMC Method)''' ===
 
=== '''燒錄方法 (Flash eMMC Method)''' ===
  
Step1: 下載MTK燒錄工具SP Flash Tool V5 (Download MTK flash tool "SP Flash Tool V5")
+
Recovery Ubuntu:
  
支援作業系統(Support OS):
+
Prepare:
  
*Windows 7
+
#<span lang="EN-US" style="color:#1f497d">Prepare a </span><span lang="EN-US" style="color:red">Ubuntu 22.04</span><span lang="EN-US" style="color:#1f497d">&nbsp;recovery image.</span>
*Windows 10
+
#<span lang="EN-US" style="color:#1f497d">Follow the link&nbsp;to install the MediaTek flash tool “[https://apc01.safelinks.protection.outlook.com/?url=https://mediatek.gitlab.io/aiot/doc/aiot-dev-guide/master/sw/yocto/get-started/env-setup/flash-env-linux.html&data=05|01|Jems.Cheng@advantech.com.tw|71544e779cc64d8cf9aa08dbf2bcbeeb|a77d40d9dcba4ddab5715f18e6da853f|0|0|638370664712054872|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0=|3000|||&sdata=D1P3sUeW5epqUT0nJq2MSej8AwP3RmBeSrVjVdWFRL4=&reserved=0 genio-tools]&nbsp;on a Ubuntu 22.04&nbsp;x86 PC.</span>
*Ubuntu 16.x
+
#<span lang="EN-US" style="color:#1f497d">USB typeA to typeA cable</span>
*Ubuntu 18.x
+
#<span lang="EN-US" style="color:#1f497d">USB typeA port, download and reset button information (screenshot below mark by color red)</span>
  
Step2:使用USB Type-A to Type-A線連接電腦處機與裝置的USB Type-A孔位, 如下圖位置(Connect the usb type A to host computer and device&nbsp;type A port)
+
[[File:RSB-3810-TypeA.png.jpg|RTENOTITLE]][[File:RSB-3810-download-reset.png|400px|RSB-3810-download-reset.png]]
  
[[File:2022-11-25 173838.jpg|800px|2022-11-25 173838.jpg]]
+
Flash steps:
  
Step3: 重BSP下載以下image檔案或是解壓縮image檔(You need to download the image files from BSP as below or extract from image file.)
+
#<span lang="EN-US" style="color:#1f497d">To connect USB typeA to typeA cable to the host computert and the RSB-3810&nbsp;typeA port</span>
 +
#<span lang="EN-US" style="color:#1f497d">To extract the Ubuntu recovery image:</span>
 +
#<span lang="EN-US" style="color:#1f497d">cd recovery package</span>
 +
#<span lang="EN-US" style="color:#1f497d">Run "genio-flash"</span>
 +
#<span lang="EN-US" style="color:#1f497d">Turn the RSB-3810&nbsp;board power on</span>
 +
#<span lang="EN-US" style="color:#1f497d">press Download button and hold it</span>
 +
#<span lang="EN-US" style="color:#1f497d">Press and release the reset button</span>
 +
#<span lang="EN-US" style="color:#1f497d">Release the Download button after the tool outputs "< waiting for any device >"</span>
 +
#<span lang="EN-US" style="color:#1f497d">The flash tool will continue to flash recovery image.</span>
  
BSP image File path:out/target/product/mt8395_rsb3810a1
+
[[File:RSB-3810U-genio-flash.png|400px|RSB-3810U-genio-flash.png]][[File:RSB-3810U-download-reset.png|400px|RSB-3810U-download-reset.png]]
<pre>MT8195_Android_scatter.txt
 
preloader_mt8395_rsb3810a1.bin
 
vbmeta.img
 
vbmeta_system.img
 
vbmeta_vendor.img
 
spmfw.img
 
pi_img.img
 
dpm.img
 
scp.img
 
sspm.img
 
mcupm.img
 
cam_vpu1.img
 
cam_vpu2.img
 
cam_vpu3.img
 
lk.img
 
boot.img
 
dtbo.img
 
tee.img
 
logo.bin
 
super.img
 
userdata.img</pre>
 
  
Step 4: 執行SP flash tool V5 燒錄工具(Launch SP flash tool V5)
+
[[File:RSB-3810U-release-download.png|400px|RSB-3810U-release-download.png]][[File:RSB-3810U-flash-successfully.png|400px|RSB-3810U-flash-successfully.png]]
  
[[File:RSB-3810-SP Flash tool.png|RTENOTITLE]]
+
== '''Linux系统的基本使用(Linux System Basic Operating Method)''' ==
  
(1) 選擇MT9195_Android_scatter.txt檔(Select the&nbsp;'''MT8195_Android_scatter.txt'''&nbsp;file)
 
  
(2)選擇"Format ALL + Download"(Select the'''Format All + Download''')
+
=== '''I2C Setting (RSB-3810)''' ===
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">'''Step 1: install required software<br/> sudo apt update<br/> sudo apt install i2c-tools'''</div> <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">'''Step 2: check if the devices are on the specified bus<br/> sudo i2cdetect -y -r 4'''</div>
 +
'''[[File:RSB-3810U-I2C.png|RTENOTITLE]]'''
  
(3)點選Download按鈕(Click the&nbsp;'''Download&nbsp;'''button)
+
&nbsp;
 
 
[[File:2022-11-25 174501.jpg|800px|2022-11-25 174501.jpg]]
 
 
 
Step 5&nbsp;. 重新啟動裝置後系統會自己開始燒錄(Reboot the device and start to burn all&nbsp;image)
 
 
 
[[File:RSB-3810-flash OK.png|800px|RSB-3810-flash OK.png]]
 
 
 
Step 6. 重新上電開機 (Turn on the power, then check the Debug message)
 
 
 
== '''Linux系统的基本使用(Linux System Basic Operating Method)''' ==
 
  
 
=== '''Display Setting (RSB-3810)''' ===
 
=== '''Display Setting (RSB-3810)''' ===
Line 229: Line 208:
 
'''HDMI TX:'''
 
'''HDMI TX:'''
  
Step 1: Setting-->Storage
+
Single Display HDMI (default)<br/> u-boot:
 
+
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">setenv DISPLAY hdmi.dtbo<br/> saveenv<br/> reset</div>  
Step 2: Play a video
+
Dual Channel LVDS panel G215HVN0<br/> u-boot:
 
+
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">setenv DISPLAY lvds0.dtbo<br/> saveenv<br/> reset</div>
CHeck HDMI mode and support resolution:
+
ubuntu: (root permission)
 
+
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">sudo i2cset -f -y 2 0x20 0x81 0x0b b<br/> sudo i2cset -f -y 2 0x20 0x84 0x01 b<br/> sudo i2cset -f -y 2 0x20 0x85 0x00 b<br/> sudo i2cset -f -y 2 0x20 0xe8 0x01 0x78 0x45 0x56 i<br/> sudo reboot</div>
#cat /sys/class/graphics/fb0/modes
+
Single Channel LVDS panel G070VW01<br/> u-boot:
 
+
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">setenv DISPLAY lvds2.dtbo<br/> saveenv<br/> reset</div>
#cat /sys/class/drm/card0-HDMI-A-1/status
+
ubuntu: (root permission)
 
+
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">sudo i2cset -f -y 2 0x20 0x81 0x00 b<br/> sudo i2cset -f -y 2 0x20 0x84 0x05 b<br/> sudo i2cset -f -y 2 0x20 0x85 0x02 b<br/> sudo i2cset -f -y 2 0x20 0xe8 0x01 0x78 0x45 0x56 i<br/> sudo reboot</div>
#cat /sys/class/drm/card0-HDMI-A-1/modes
+
Dual Display HDMI + Dual Channel LVDS panel G215HVN0<br/> u-boot:
 
+
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">setenv DISPLAY hdmi.dtbo lvds0.dtbo<br/> saveenv<br/> reset</div>
'''HDMI RX:'''
+
ubuntu:
 
+
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">sudo i2cset -f -y 2 0x20 0x81 0x0b b<br/> sudo i2cset -f -y 2 0x20 0x84 0x01 b<br/> sudo i2cset -f -y 2 0x20 0x85 0x00 b<br/> sudo i2cset -f -y 2 0x20 0xe8 0x01 0x78 0x45 0x56 i<br/> sudo reboot</div>
(1) Connect a play video host PC device
+
HDMI + Single Channel LVDS panel G070VW01<br/> u-boot:
 
+
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">setenv DISPLAY hdmi.dtbo lvds2.dtbo<br/> saveenv<br/> reset</div>
(2) connect HDMI from PC to RSB-3810
+
ubuntu:
 
+
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">sudo i2cset -f -y 2 0x20 0x81 0x00 b<br/> sudo i2cset -f -y 2 0x20 0x84 0x05 b<br/> sudo i2cset -f -y 2 0x20 0x85 0x02 b<br/> sudo i2cset -f -y 2 0x20 0xe8 0x01 0x78 0x45 0x56 i<br/> sudo reboot</div>
[[File:RSB-3810-HDMI RX PC.png|RTENOTITLE]]
+
&nbsp;
 
 
(3) setenforce 0
 
 
 
(4) open the RxVideo apk
 
 
 
[[File:RSB-3810-RXVideo.png|RTENOTITLE]]
 
 
 
(5) Play a video on host PC
 
 
 
(6) check the video and sound can output to HDMI monitor
 
 
 
LVDS: Dual Channel LVDS Panel: G215HVN0 (VDD: 5V, Backlight Power: 12V)<br/> Step 1: Connect 96LEDK-A215FH30NF2 LVDS panel with the LVDS cable. Connect this to the LVDS. Connect the Backlight cable to BL1.
 
 
 
Step 2: Connect another 12V adapter to the DC-Jack on the backlight cable.
 
 
 
Step 3: Power on RSB-3810 and the extra 12V adapter.
 
 
 
Step 4: Press enter after boot. The system will stop at u-boot as demonstrated below, enter the command in red and press enter
 
 
 
[[File:RSB-3810-LVDS Cable.png|RTENOTITLE]]
 
  
 
=== Audio使用方法(Audio Testing Method): ===
 
=== Audio使用方法(Audio Testing Method): ===
  
Step 1: Check audio codec
+
HDMI Audio
 
+
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">TX: Setting-->Sound-->Output Device: HDMI/DP output - Build-in Audio-->Test</div>  
console:/ # cat /proc/asound/cards<br/> &nbsp;0 [mt63xxaccdet &nbsp; ]: mt63xx-accdet - mt63xx-accdet<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mt63xx-accdet<br/> &nbsp;1 [mt8195sound &nbsp; &nbsp;]: mt8195-sound - mt8195-sound<br/> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; mt8195-sound
+
Line-Out/Speaker
 
+
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">TX: Setting-->Sound-->Output Device: Earphone speaker - Build-in Audio-->Test</div>  
Step 2:&nbsp;Record and playback:
+
Mic-In
 
+
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">sudo add-apt-repository ppa:audio-recorder/ppa<br/> sudo add-apt-repository ppa:ubuntuhandbook1/audio-recorder<br/> sudo apt install audio-recorder</div>  
Play audio file and check the sound output from Linu-out. Copy LRMonoPhase4.wav to the system<br/> stop audioserver
+
Source: Build-in Audio Earphone microphone +
 
 
#tinymix -D 1 'O176 I000 Switch' 1<br/> # tinymix -D 1 'O177 I001 Switch' 1<br/> # tinymix -D 1 'DAC In Mux' 'Normal Path'<br/> # tinymix -D 1 'HP Mux' 'Audio Playback'<br/> # tinyplay /storage/self/primary/LRMonoPhase4.wav -D 1 -d 2 -p 1024 -n 2
 
 
 
Connect Audio output from phone to RSB-3810 MIC. Record audio from phone and play the recorded file to check the sound.<br/> stop audioserver
 
 
 
#tinymix -D 1 'O040 I168 Switch' 1<br/> # tinymix -D 1 'O041 I169 Switch' 1<br/> # tinymix -D 1 'MISO0_MUX' UL1_CH1<br/> # tinymix -D 1 'MISO1_MUX' UL1_CH1<br/> # tinymix -D 1 'ADC_L_Mux' 'Left Preamplifier'<br/> # tinymix -D 1 'PGA_L_Mux' 'AIN1'<br/> # tinycap /data/rec.wav -D 1 -d 8 -r 48000 -c 2 -b 32 -T 10<br/> # tinyplay /data/rec.wav -D 1 -d 2 -p 1024 -n 2
 
  
 
&nbsp;
 
&nbsp;
  
=== '''M.2使用方法EWM-W174(M.2 Testing Method with EWM-W174):&nbsp;''' ===
+
=== '''M.2使用方法(M.2 Testing Method):&nbsp;''' ===
  
*'''Test Wi-Fi with EWM-W174M201E Module (PCIe Interface)'''  
+
'''KeyE:'''
  
Step 1: Open Android Setting.<br/> Step 2: Click Network & internet.<br/> Step 3: Search for WIFI
+
PCIe 3.0
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">lspci # WIFI</div>  
 +
USB 2.0
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">lsusb # Bluetooth<br/> sudo cat /sys/kernel/debug/usb/devices</div>
 +
'''KeyB:'''
  
[[File:RSB-3810-M.2 M174.png|800px|RSB-3810-M.2 M174.png]]
+
USB 3.0
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">lsusb # 5G</div>
 +
*WiFi
  
*'''Test Bluetooth with EWM-W174M201E Module (USB Interface)'''
+
Setting-->Network
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">ifconfig<br/> ping -c4 8.8.8.8</div>
 +
*Bluetooth  
  
Step 1: Open Android Setting.<br/> Step 2: Click Connected devices.<br/> Step 3: Click Connection preferences.<br/> Step 4: Click Bluetooth.<br/> Step 5: On and Pair new device<br/> Step 6: Available devices
+
Setting-->Bluetooth
  
 +
*5G
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">mmcli --list-modems<br/> mmcli -m 0</div>
 
&nbsp;
 
&nbsp;
  
 
=== '''Serial port使用方法(Serial port Testing Method):''' ===
 
=== '''Serial port使用方法(Serial port Testing Method):''' ===
  
*'''RS-232 Loopback Test (eg. ttyS3):'''  
+
'''Use the on-board UART (/dev/ttyS2) as example'''
  
#stty -F /dev/ttyS3 speed 115200 ignbrk -brkint -icrnl -imaxbel - opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl - echoke<br/> # cat /dev/ttyS3 &<br/> # echo "Serial Test" > /dev/ttyS3
+
*'''RS-232 Loopback Test:'''
  
*'''RS-422 Test:'''
+
1. Setting:
  
Step 1: First change the debug console port to UART2 (UIO-4030COM_3), or use telnet to login to the system console to issue the command for the com port test.<br/> Step 2:&nbsp;Test RS-422&nbsp;with Adam-4520. Connect Adam-4520 with COM1 with 1700100250 DB9 as the following:<br/> Adam-4520 RX- <--> RSB-3810 COM1 DB9 Pin 1,&nbsp;<br/> Adam-4520 RX+ <--> RSB-3810 COM1 DB9 Pin 2,<br/> Adam-4520 TX- <--> RSB-3810 COM1 DB9 Pin 4,<br/> Adam-4520 TX+ <--> RSB-3810 COM1 DB9 Pin 3,
+
sudo bash -c "<br/> echo 328 > /sys/class/gpio/export 2> /dev/null<br/> echo 327 > /sys/class/gpio/export 2> /dev/null<br/> echo out > /sys/class/gpio/gpio328/direction<br/> echo out > /sys/class/gpio/gpio327/direction<br/> # default settings<br/> echo 1 > /sys/class/gpio/gpio328/value<br/> echo 0 > /sys/class/gpio/gpio327/value<br/> "
  
Step 3:&nbsp;Set GPIO#328, GPIO#327 Set to 1,1
+
2. Test:
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">#&nbsp;sudo stty -F /dev/ttyS2 -echo -onlcr 115200 raw<br/> #&nbsp;echo "RS-232 test" | sudo tee /dev/ttyS2 > /dev/null</div>
 +
*'''RS-422 Test:'''
  
#echo 328 > /sys/class/gpio/export<br/> # echo 327 > /sys/class/gpio/export# echo out<br/> # out > /sys/class/ gpio/gpio328/direction<br/> # echo out > /sys/class/gpio/gpio327/direction<br/> # echo 1&nbsp;> /sys/class/gpio/gpio328/value<br/> # echo 1 > /sys/class/gpio/gpio327/value
+
1. Setting:
  
Step 4: Test RS-422 with Adam-4520. Connect Adam-4520 with COM1&nbsp;with 1700100250 DB9 as the following command:
+
Adam-4520 RX- <--> DB9 Pin 1<br/> Adam-4520 RX+ <--> DB9 Pin 2<br/> Adam-4520 TX- <--> DB9 Pin 4<br/> Adam-4520 TX+ <--> DB9 Pin 3
  
#stty -F /dev/ttyS2 speed 115200 ignbrk -brkint -icrnl -imaxbel - opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl - echoke<br/> # cat /dev/ttyS2 &<br/> # echo "Serial Test" > /dev/ttyS2
+
sudo bash -c "<br/> echo 328 > /sys/class/gpio/export 2> /dev/null<br/> echo 327 > /sys/class/gpio/export 2> /dev/null<br/> echo out > /sys/class/gpio/gpio328/direction<br/> echo out > /sys/class/gpio/gpio327/direction<br/> echo 1 > /sys/class/gpio/gpio328/value<br/> echo 1 > /sys/class/gpio/gpio327/value<br/> "
  
 +
2. Test:
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># sudo stty -F /dev/ttyS2 speed 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke&nbsp;<br/> # echo "RS-422 Test" > /dev/ttyS2</div>
 
*'''RS-485 Test:'''  
 
*'''RS-485 Test:'''  
  
Step 1: Test RS-485 with Adam-4520. Connect Adam-4520 with COM1 with 1700100250 DB9 as the following:<br/> Adam-4520 Pin 1: Data- connect to DB9 Pin 1: COM_DCD.<br/> Adam-4520 Pin 2: Data+ connect to DB9 Pin 3: COM_RXD.
+
1. Setting:<br/> Adam-4520 Data- <--> DB9 Pin 1<br/> Adam-4520 Data+ <--> DB9 Pin 2
 
 
Step 2: Set GPIO#328, GPIO#327 Set to 0,1
 
 
 
#echo 328 > /sys/class/gpio/export<br/> # echo 327 > /sys/class/gpio/export# echo out<br/> # out > /sys/class/ gpio/gpio328/direction<br/> # echo out > /sys/class/gpio/gpio327/direction<br/> # echo 0 > /sys/class/gpio/gpio328/value<br/> # echo 1 > /sys/class/gpio/gpio327/value
 
 
 
Step 3:&nbsp;Test RS-422 with Adam-4520. Connect Adam-4520 with COM1&nbsp;with 1700100250 DB9 as the following command:
 
 
 
$ stty -F /dev/ttyS2 -echo -onlcr 921600 raw<br/> $ cat /dev/ttyS2 &<br/> $ echo "Serial Port Test" > /dev/ttyS2<br/> or<br/> $ microcom -s 921600 -X /dev/ttyS2
 
  
&nbsp;
+
sudo bash -c "<br/> echo 328 > /sys/class/gpio/export 2> /dev/null<br/> echo 327 > /sys/class/gpio/export 2> /dev/null<br/> echo out > /sys/class/gpio/gpio328/direction<br/> echo out > /sys/class/gpio/gpio327/direction<br/> echo 0 > /sys/class/gpio/gpio328/value<br/> echo 1 > /sys/class/gpio/gpio327/value<br/> "
  
 +
2. Test:
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># sudo stty -F /dev/ttyS2 speed 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke&nbsp;<br/> # echo "RS-485 Test" > /dev/ttyS2</div>
 
=== '''I2C使用方法(I2C Test Method):''' ===
 
=== '''I2C使用方法(I2C Test Method):''' ===
  
 
Step 1: Check i2c device
 
Step 1: Check i2c device
 
[[File:RSB-3810-I2C.png|RTENOTITLE]]
 
  
 
Step 2: I2c set and get
 
Step 2: I2c set and get
Line 347: Line 306:
 
=== '''USB:&nbsp;USB disk test (USB 2.0/ USB 3.2 Gen 1 By 1 port)''' ===
 
=== '''USB:&nbsp;USB disk test (USB 2.0/ USB 3.2 Gen 1 By 1 port)''' ===
  
Step 1: Issue the following command (lsusb -t) after inserting a USB disk into the USB 2.0 port or USB 3.2 Gen 1 port to check if the USB device is listed.
+
check if the USB device is mount automatically
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># lsblk</div>
 +
[[File:RSB-3810U-USB.png|RTENOTITLE]]
  
[[File:RSB-3810-USB.png|800px|RSB-3810-USB.png]]
+
<span style="text-autospace:none">if USB device is not mount automatically</span>
 
+
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># use /dev/sda1 as example<br/> # sudo mkdir -p /mnt/tmp<br/> # sudo mount /dev/sda1 /mnt/tmp</div>  
Step 2: Test (eg. if usb disk is /dev/sda)
+
&nbsp;
 
 
#dd if=/dev/urandom of=data bs=1 count=1024<br/> # dd if=/dev/sda of=backup bs=1 count=1024 skip=4096 # dd if=data of=/dev/sda bs=1 seek=4096<br/> # dd if=/dev/sda of=data1 bs=1 count=1024 skip=4096 # diff data data1<br/> # dd if=backup of=/dev/sda bs=1 seek=4096
 
  
&nbsp;
 
  
 
=== '''RTC使用方法(RTC Test Method):''' ===
 
=== '''RTC使用方法(RTC Test Method):''' ===
  
 
Step 1: Set system time to current, then write to RTC
 
Step 1: Set system time to current, then write to RTC
 
+
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># date 113009362023 && hwclock -w && date</div>
console:/ # date 113009362023 && hwclock -w && date
 
 
 
 
Step 2: Set one incorrect time, then read time from RTC to verify
 
Step 2: Set one incorrect time, then read time from RTC to verify
 
+
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># date 113009362023 && hwclock -r</div>
console:/ # date 113009362023 && hwclock -r
 
 
 
 
Step 3: Restore the RTC time to system time
 
Step 3: Restore the RTC time to system time
 
+
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># date 113009362023 && hwclock -r</div>
console:/ # date 113009362023 && hwclock -r
 
 
 
 
&nbsp;
 
&nbsp;
  
 
=== '''eMMC/SD/SPI flash使用方法(eMMC/SD/SPI flash Testing Method):''' ===
 
=== '''eMMC/SD/SPI flash使用方法(eMMC/SD/SPI flash Testing Method):''' ===
  
eMMC: /dev/mmcblk2<br/> SD: /dev/ mmcblk1p1
+
SD
 
+
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">lsusb -t # get correct device node, use /dev/mmcblk1p1 as example<br/> sudo mkdir -p /mnt/tmp<br/> sudo mount /dev/ mmcblk1p1 /mnt/tmp</div>  
Test (eg. emmc)<br/> Step 1: Open Android Setting.<br/> Step 2: Click Storage
+
eMMC<br/> Ubuntu OS here
  
 
=== '''Ethernet使用方法(Ethernet Testing Method):''' ===
 
=== '''Ethernet使用方法(Ethernet Testing Method):''' ===
  
 
Step 1: Check the Ethernet device
 
Step 1: Check the Ethernet device
 
+
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># ifconfig</div>
[[File:RSB-3810-eth1.png|800px|RSB-3810-eth1.png]]
+
[[File:RSB-3810U-ifconfig.png|RTENOTITLE]]
  
 
Step 2: Connect the cable and ping test (eg. Eth0)
 
Step 2: Connect the cable and ping test (eg. Eth0)
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># ping -c4 8.8.8.8</div>
 +
[[File:RSB-3810U-ping.png|RTENOTITLE]]
  
[[File:RSB-3810-eth2.png|800px|RSB-3810-eth2.png]]
 
 
&nbsp;
 
  
 
=== '''GPIO使用方法(GPIO Testing Method):''' ===
 
=== '''GPIO使用方法(GPIO Testing Method):''' ===
Line 453: Line 404:
 
Step 4: Read value and set output value than check
 
Step 4: Read value and set output value than check
  
#cat /sys/class/gpio/gpio2/value 0<br/> # echo 1 > /sys/class/gpio/gpio1/value<br/> # cat /sys/class/gpio/gpio2/value<br/> 1  
+
#cat /sys/class/gpio/gpio2/value 0<br/> # echo 1 > /sys/class/gpio/gpio1/value<br/> # cat /sys/class/gpio/gpio2/value<br/> 1
  
&nbsp;
 
  
 
=== '''Watchdog使用方法(Watchdog Testing Method):''' ===
 
=== '''Watchdog使用方法(Watchdog Testing Method):''' ===
Line 461: Line 411:
 
*'''Internal Watchdog:'''  
 
*'''Internal Watchdog:'''  
  
Step 1: System will reboot after 60 sec. androidboot.bootreason=HW_reboot
+
System will reboot after 30 sec
 
+
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># echo 1 | sudo tee /dev/watchdog # or /dev/watchdog0</div>
#stop watchdogd
 
 
 
Step 2: System will reboot after 60 sec. androidboot.bootreason=HW_reboot
 
 
 
#stop watchdogd && echo 1 > /dev/watchdog  
 
 
 
Step 3: System will reboot after 3 sec. androidboot.bootreason=reboot
 
 
 
#reboot
 
 
 
Step 4: System will reboot after 1 sec. androidboot.bootreason=kernel_panic
 
 
 
#echo c > /proc/sysrq-trigger
 
 
 
 
*'''External Watchdog:'''  
 
*'''External Watchdog:'''  
  
Step 1: System will reboot after 60 sec. androidboot.bootreason=usb
+
System will reboot after 60 sec
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># echo 1 | sudo tee /dev/watchdog1</div>
  
#echo 1 > /dev/watchdog1
+
=== '''LED ON/OFF 使用方法(LED ONOFF Testing Method):''' ===
  
Step 2: System will not reboot. Watchdog can be refreshed when feed dog before it timeout.<br/> Step 3: System will reboot after 10 sec ==> Watchdog does not refresh after it time- out.
+
LED ON:
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># echo 255 | sudo tee /sys/class/leds/user/brightness</div>  
 +
LED OFF:
 +
<div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># echo 0 | sudo tee /sys/class/leds/user/brightness</div>  
  
#ext_wdt_driver_test 10 1 0
 
  
androidboot.bootreason=usb
 
  
#ext_wdt_driver_test 10 1 0 && Ctrl + C
 
 
&nbsp;
 
 
=== '''Camera(Default MIPI-CSI0 and MIPI-CSI1 are for OV5640):''' ===
 
 
MIPI-CSI0 (Tested with OV5640 + mini-SAS to MIPI-CSI Cable)
 
 
Step 1: Use Android camera app to test&nbsp;<br/> Step 2: Take pictures<br/> Step 3: Video recording&nbsp;<br/> Step 4: Check photo
 
 
MIPI-CSI1 (Tested with OV5640 + mini-SAS to MIPI-CSI Cable)
 
 
Step 1: Use Android camera app to test&nbsp;<br/> Step 2: Take pictures<br/> Step 3: Video recording&nbsp;<br/> Step 4: Check photo
 
 
MIPI-CSI2 (Tested with OV5640 + mini-SAS to MIPI-CSI Cable)
 
 
Step 1: Remove the CSI-0 and CSI-1 camera first<br/> Step 2: Use Android camera app to test<br/> Step 3: Take pictures<br/> Step 4: Video recording<br/> Step 5: Check photo
 
 
&nbsp;
 
 
=== '''TPM測試方法(TPM Testing Method):''' ===
 
 
Please use tpm_test.bin to test.
 
 
#eltt2 -cgv
 
 
[[File:RSB-3810-TPM.png|RTENOTITLE]]
 
 
&nbsp;
 
 
=== '''LED ON/OFF 使用方法(LED ONOFF Testing Method):''' ===
 
 
LED Status: Detect gpio signal LED ON: echo 255 ><br/> /sys/class/leds/user/brightness LED OFF: echo 0 ><br/> /sys/class/leds/user/brightness
 
 
&nbsp;
 
  
 
=== '''UIO-4030使用方法(UIO-4030 Testing Method):''' ===
 
=== '''UIO-4030使用方法(UIO-4030 Testing Method):''' ===
Line 530: Line 433:
 
|-
 
|-
 
| 1
 
| 1
| UART
+
| UART(COM_3)
 
| # stty -F /dev/ttyS3 -echo -onlcr 921600 raw<br/> # cat /dev/ttyS3 &<br/> # echo "Serial Port Test" > /dev/ttyS3<br/> or<br/> #microcom -s 921600 -X /dev/ttyS3
 
| # stty -F /dev/ttyS3 -echo -onlcr 921600 raw<br/> # cat /dev/ttyS3 &<br/> # echo "Serial Port Test" > /dev/ttyS3<br/> or<br/> #microcom -s 921600 -X /dev/ttyS3
 
|-
 
|-
 
| 2
 
| 2
 
| GPIO
 
| GPIO
| 4 DI & 4 DO Pins (UIO Extension_UIO2)<br/> input pin#5: gpio 317&nbsp;<br/> output pin#6: gpio 318&nbsp;<br/> input pin#7: gpio 319<br/> output pin#8: gpio320<br/> input pin#9: gpio321<br/> output pin#10: gpio322<br/> input pin#11: gpio 323 or 408<br/> output pin#12: gpio324 or 409
+
|  
 +
4 DI & 4 DO Pins (UIO Extension_UIO2)<br/> input pin#5: gpio 317&nbsp;<br/> output pin#6: gpio 318&nbsp;<br/> input pin#7: gpio 319<br/> output pin#8: gpio 320<br/> input pin#9: gpio 321<br/> output pin#10: gpio 322<br/> input pin#11: gpio 323<br/> output pin#12: gpio 324
 +
 
 +
(Note: gpio 323 & gpio 324 need to set the gpio 345 to high)
 +
 
 
|-
 
|-
 
| 3
 
| 3
| RS-485
+
| RS-485(COM_4)
 
| Test RS-485 with Adam-4520. Adam-4520 Pin Data- and Pin<br/> Data+ connect to UIO-4030 COM_4 Pin 1 and Pin 2.<br/> # stty -F /dev/ttyUSB0 speed 115200 ignbrk -brkint -icrnl - imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke<br/> # cat /dev/ttyUSB0 &<br/> # echo "Serial Test" > /dev/ttyUSB0
 
| Test RS-485 with Adam-4520. Adam-4520 Pin Data- and Pin<br/> Data+ connect to UIO-4030 COM_4 Pin 1 and Pin 2.<br/> # stty -F /dev/ttyUSB0 speed 115200 ignbrk -brkint -icrnl - imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke<br/> # cat /dev/ttyUSB0 &<br/> # echo "Serial Test" > /dev/ttyUSB0
 
|-
 
|-
Line 553: Line 460:
 
|-
 
|-
 
| colspan="1" rowspan="2" | 1
 
| colspan="1" rowspan="2" | 1
| colspan="1" rowspan="2" | UART
+
| colspan="1" rowspan="2" |  
 +
UART
 +
 
 +
COM_3:ttyS3
 +
 
 +
COM_4:ttyS1
 +
 
 
| # stty -F /dev/ttyS3 -echo -onlcr 921600 raw<br/> # cat /dev/ttyS3 &<br/> # echo "Serial Port Test" > /dev/ttyS3 or<br/> # microcom -s 921600 -X /dev/ttyS3 # cat /dev/ttyS3 &
 
| # stty -F /dev/ttyS3 -echo -onlcr 921600 raw<br/> # cat /dev/ttyS3 &<br/> # echo "Serial Port Test" > /dev/ttyS3 or<br/> # microcom -s 921600 -X /dev/ttyS3 # cat /dev/ttyS3 &
 
|-
 
|-
Line 570: Line 483:
 
| # echo -n $'\x06\x05\x04\x03\x02\x01' > /data/test1<br/> # dd if=/data/test1 of=/sys/bus/i2c/devices/3-0050/eeprom<br/> # dd if=/sys/bus/i2c/devices/3-0050/eeprom of=/data/test2 conv=fsync
 
| # echo -n $'\x06\x05\x04\x03\x02\x01' > /data/test1<br/> # dd if=/data/test1 of=/sys/bus/i2c/devices/3-0050/eeprom<br/> # dd if=/sys/bus/i2c/devices/3-0050/eeprom of=/data/test2 conv=fsync
 
|}
 
|}
 
&nbsp;
 
  
 
&nbsp;
 
&nbsp;
Line 580: Line 491:
 
|-
 
|-
 
| colspan="1" rowspan="2" | 1
 
| colspan="1" rowspan="2" | 1
| colspan="1" rowspan="2" | UART
+
| colspan="1" rowspan="2" |  
 +
UART
 +
 
 +
COM_3:ttyS3
 +
 
 +
COM_4:ttyS1
 +
 
 
| $ stty -F /dev/ttyS3 -echo -onlcr 921600 raw<br/> $ cat /dev/ttyS3 &<br/> $ echo "Serial Port Test" > /dev/ttyS3<br/> or<br/> $ microcom -s 921600 -X /dev/ttyS3
 
| $ stty -F /dev/ttyS3 -echo -onlcr 921600 raw<br/> $ cat /dev/ttyS3 &<br/> $ echo "Serial Port Test" > /dev/ttyS3<br/> or<br/> $ microcom -s 921600 -X /dev/ttyS3
 
|-
 
|-
Line 588: Line 505:
 
| CAN Bus
 
| CAN Bus
 
|  
 
|  
#ip link set can0 up type can bitrate 125000<br/> # ifconfig can0 up<br/> # ip link set can1 up type can bitrate 125000<br/> # ifconfig can1 up
+
NA
 
 
#candump can0 &<br/> # cansend can1 1F334455#1122334455667788
 
  
 
|-
 
|-
Line 598: Line 513:
 
|}
 
|}
  
&nbsp;
+
 
 +
 
  
 
=== '''UIO-4036使用方法(UIO-4036 Testing Method):''' ===
 
=== '''UIO-4036使用方法(UIO-4036 Testing Method):''' ===
 +
 +
'''(Note:&nbsp;Please contact Advantech to get the kernel packages for enabling&nbsp;the UIO-4036 Ethernet switch)'''
 +
 +
[[UIO-4036_hardware_enabled:]]
  
 
{| border="1" cellpadding="1" cellspacing="1"
 
{| border="1" cellpadding="1" cellspacing="1"
Line 612: Line 532:
 
| # echo -n $'\x06\x05\x04\x03\x02\x01' > /data/test1<br/> # dd if=/data/test1 of=/sys/bus/i2c/devices/3-0050/eeprom<br/> # dd if=/sys/bus/i2c/devices/3-0050/eeprom of=/data/test2 conv=fsync
 
| # echo -n $'\x06\x05\x04\x03\x02\x01' > /data/test1<br/> # dd if=/data/test1 of=/sys/bus/i2c/devices/3-0050/eeprom<br/> # dd if=/sys/bus/i2c/devices/3-0050/eeprom of=/data/test2 conv=fsync
 
|}
 
|}
 
&nbsp;
 
  
 
=== '''UIO-4038使用方法(UIO-4038 Testing Method):''' ===
 
=== '''UIO-4038使用方法(UIO-4038 Testing Method):''' ===
Line 633: Line 551:
  
 
&nbsp;
 
&nbsp;
 +
  
 
=== '''UIO-4040使用方法(UIO-4040 Testing Method):''' ===
 
=== '''UIO-4040使用方法(UIO-4040 Testing Method):''' ===
Line 640: Line 559:
 
| 1
 
| 1
 
| SSD
 
| SSD
| # SSD disk write/read/verify pattern
+
|  
 +
#SSD disk write/read/verify pattern  
 +
 
 +
Disk /dev/sda: 119.24 GiB, 128035676160 bytes, 250069680 sectors<br/> Disk model: UIO-4040<br/> Units: sectors of 1 * 512 = 512 bytes<br/> Sector size (logical/physical): 512 bytes / 512 bytes<br/> I/O size (minimum/optimal): 512 bytes / 512 bytes
 +
 
 
|-
 
|-
 
| 2
 
| 2
Line 647: Line 570:
 
|}
 
|}
  
 +
&nbsp;
 +
 +
 +
 +
 +
 +
 +
 +
=== '''安裝AI SDK使用方法(Install AI SDK):''' ===
 +
 +
'''Install AI SDK'''
 +
 +
[https://mediatek.gitlab.io/genio/doc/ubuntu/bsp-installation.html Install Genio Hardware Support Packages]
 +
 +
[https://mediatek.gitlab.io/genio/doc/ubuntu/bsp-installation/neuropilot.html AI Processor Drivers]
 +
 +
[https://mediatek.gitlab.io/aiot/doc/aiot-dev-guide/master/sw/yocto/app-dev/hdmirx/hdmirx.html HDMI-RX]
 +
 +
Install Mediatek hdmirx-tool:
 +
<pre>$ sudo apt-add-repository ppa:mediatek-genio/genio-public
 +
$ sudo apt install mediatek-apusys-firmware-genio1200
 +
$ sudo apt install mediatek-hdmirx-tool</pre>
 +
 +
&nbsp;
  
 
== '''通用方法(General Method)''' ==
 
== '''通用方法(General Method)''' ==
 
  
 
== '''BSP編譯方法(BSP Compile Method)''' ==
 
== '''BSP編譯方法(BSP Compile Method)''' ==
  
 
'''NA'''
 
'''NA'''

Latest revision as of 11:44, 2 August 2024

Contents

產品介紹(Product introduction )

產品特性(Product Features)

  • MediaTek Genio 1200 4核心A78和4核心A55
  • 內建LPDDR4 8GB,4000MT/s記憶體
  • HDMI 4k60fps,1 x 雙通道24位元LVDS
  • 1 x 4線RS-232/422/485,2 x USB3.2 Gen1 By 1,2 x USB2.0,1 x Micro SD,1 x Mic. in / Line out
  • 1 x M.2 3052 Key B for 5G,1 x M.2 2230 Key E Slot for WiFi/BT
  • 支援UIO40-Express I/O板擴充
  • 支援Ubuntu Linux和Android

 

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

RSB-3810

 

硬件接口說明(Hardware interface introduction)

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

RSB-3810 接口布局圖 Board Dimension Layout

RTENOTITLE

RTENOTITLE

Jumper list:

BL0 Backlight Power Select for LVDS0 (Default 5V)
VDD0 LVDS VDD (Default 3.3V)

 

Connectot list:

BAT RTC Battery CONN
BL0 LVDS Backlight
COM1 Debug Console + RS232/RS485
CSI0 MIPI-CSI Camera Input 0
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
LVDS0 LVDS Channel 0 CONN
LVDS1 LVDS Channel 1 CONN
M2 M.2 Key E CONN
MIC MIC In Pin Header
M2B M.2 Key B CONN
RST Reset Button
SD SD Slot
SIM SIM 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)
DL_KEY Download Key

 

接口引脚定義 (Pin definitions)

机械尺寸 (Mechanical Characteristics)

RTENOTITLE

 

 


快速入门 (Quick Start)

系统下载 (OS Download)

Ubuntu recovery image

 

Debug port 連接與設定(Debug Port Connection and Setting)

1. RSB-3810 debug port is shared with COM1. Please connect the debug console cable 1700034345-01 & 1700019474. Then connect the USB-to-RS232 Cable to your PC terminal. Connect the cable to COM1 pin header to the nearby the HDMI connector.

RTENOTITLE

2. RSB-3810 can communicate with a host server using serial cables. Common serial communication programs such as HyperTerminal, Tera Term or PuTTY can be used in such applications. The example demonstrated below describes the serial terminal setup using Tera Term on a Windows host: Open Tera Term on your Windows PC, set the Baud rate to 921600.


燒錄方法 (Flash eMMC Method)

Recovery Ubuntu:

Prepare:

  1. Prepare a Ubuntu 22.04 recovery image.
  2. Follow the link to install the MediaTek flash tool “genio-tools on a Ubuntu 22.04 x86 PC.
  3. USB typeA to typeA cable
  4. USB typeA port, download and reset button information (screenshot below mark by color red)

RTENOTITLERSB-3810-download-reset.png

Flash steps:

  1. To connect USB typeA to typeA cable to the host computert and the RSB-3810 typeA port
  2. To extract the Ubuntu recovery image:
  3. cd recovery package
  4. Run "genio-flash"
  5. Turn the RSB-3810 board power on
  6. press Download button and hold it
  7. Press and release the reset button
  8. Release the Download button after the tool outputs "< waiting for any device >"
  9. The flash tool will continue to flash recovery image.

RSB-3810U-genio-flash.pngRSB-3810U-download-reset.png

RSB-3810U-release-download.pngRSB-3810U-flash-successfully.png

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

I2C Setting (RSB-3810)

Step 1: install required software
sudo apt update
sudo apt install i2c-tools
Step 2: check if the devices are on the specified bus
sudo i2cdetect -y -r 4

RTENOTITLE

 

Display Setting (RSB-3810)

HDMI TX:

Single Display HDMI (default)
u-boot:

setenv DISPLAY hdmi.dtbo
saveenv
reset

Dual Channel LVDS panel G215HVN0
u-boot:

setenv DISPLAY lvds0.dtbo
saveenv
reset

ubuntu: (root permission)

sudo i2cset -f -y 2 0x20 0x81 0x0b b
sudo i2cset -f -y 2 0x20 0x84 0x01 b
sudo i2cset -f -y 2 0x20 0x85 0x00 b
sudo i2cset -f -y 2 0x20 0xe8 0x01 0x78 0x45 0x56 i
sudo reboot

Single Channel LVDS panel G070VW01
u-boot:

setenv DISPLAY lvds2.dtbo
saveenv
reset

ubuntu: (root permission)

sudo i2cset -f -y 2 0x20 0x81 0x00 b
sudo i2cset -f -y 2 0x20 0x84 0x05 b
sudo i2cset -f -y 2 0x20 0x85 0x02 b
sudo i2cset -f -y 2 0x20 0xe8 0x01 0x78 0x45 0x56 i
sudo reboot

Dual Display HDMI + Dual Channel LVDS panel G215HVN0
u-boot:

setenv DISPLAY hdmi.dtbo lvds0.dtbo
saveenv
reset

ubuntu:

sudo i2cset -f -y 2 0x20 0x81 0x0b b
sudo i2cset -f -y 2 0x20 0x84 0x01 b
sudo i2cset -f -y 2 0x20 0x85 0x00 b
sudo i2cset -f -y 2 0x20 0xe8 0x01 0x78 0x45 0x56 i
sudo reboot

HDMI + Single Channel LVDS panel G070VW01
u-boot:

setenv DISPLAY hdmi.dtbo lvds2.dtbo
saveenv
reset

ubuntu:

sudo i2cset -f -y 2 0x20 0x81 0x00 b
sudo i2cset -f -y 2 0x20 0x84 0x05 b
sudo i2cset -f -y 2 0x20 0x85 0x02 b
sudo i2cset -f -y 2 0x20 0xe8 0x01 0x78 0x45 0x56 i
sudo reboot

 

Audio使用方法(Audio Testing Method):

HDMI Audio

TX: Setting-->Sound-->Output Device: HDMI/DP output - Build-in Audio-->Test

Line-Out/Speaker

TX: Setting-->Sound-->Output Device: Earphone speaker - Build-in Audio-->Test

Mic-In

sudo add-apt-repository ppa:audio-recorder/ppa
sudo add-apt-repository ppa:ubuntuhandbook1/audio-recorder
sudo apt install audio-recorder

Source: Build-in Audio Earphone microphone +

 

M.2使用方法(M.2 Testing Method): 

KeyE:

PCIe 3.0

lspci # WIFI

USB 2.0

lsusb # Bluetooth
sudo cat /sys/kernel/debug/usb/devices

KeyB:

USB 3.0

lsusb # 5G
  • WiFi

Setting-->Network

ifconfig
ping -c4 8.8.8.8
  • Bluetooth

Setting-->Bluetooth

  • 5G
mmcli --list-modems
mmcli -m 0

 

Serial port使用方法(Serial port Testing Method):

Use the on-board UART (/dev/ttyS2) as example

  • RS-232 Loopback Test:

1. Setting:

sudo bash -c "
echo 328 > /sys/class/gpio/export 2> /dev/null
echo 327 > /sys/class/gpio/export 2> /dev/null
echo out > /sys/class/gpio/gpio328/direction
echo out > /sys/class/gpio/gpio327/direction
# default settings
echo 1 > /sys/class/gpio/gpio328/value
echo 0 > /sys/class/gpio/gpio327/value
"

2. Test:

# sudo stty -F /dev/ttyS2 -echo -onlcr 115200 raw
# echo "RS-232 test" | sudo tee /dev/ttyS2 > /dev/null
  • RS-422 Test:

1. Setting:

Adam-4520 RX- <--> DB9 Pin 1
Adam-4520 RX+ <--> DB9 Pin 2
Adam-4520 TX- <--> DB9 Pin 4
Adam-4520 TX+ <--> DB9 Pin 3

sudo bash -c "
echo 328 > /sys/class/gpio/export 2> /dev/null
echo 327 > /sys/class/gpio/export 2> /dev/null
echo out > /sys/class/gpio/gpio328/direction
echo out > /sys/class/gpio/gpio327/direction
echo 1 > /sys/class/gpio/gpio328/value
echo 1 > /sys/class/gpio/gpio327/value
"

2. Test:

# sudo stty -F /dev/ttyS2 speed 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke 
# echo "RS-422 Test" > /dev/ttyS2
  • RS-485 Test:

1. Setting:
Adam-4520 Data- <--> DB9 Pin 1
Adam-4520 Data+ <--> DB9 Pin 2

sudo bash -c "
echo 328 > /sys/class/gpio/export 2> /dev/null
echo 327 > /sys/class/gpio/export 2> /dev/null
echo out > /sys/class/gpio/gpio328/direction
echo out > /sys/class/gpio/gpio327/direction
echo 0 > /sys/class/gpio/gpio328/value
echo 1 > /sys/class/gpio/gpio327/value
"

2. Test:

# sudo stty -F /dev/ttyS2 speed 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke 
# echo "RS-485 Test" > /dev/ttyS2

I2C使用方法(I2C Test Method):

Step 1: Check i2c device

Step 2: I2c set and get

console:/ # i2cdetect -y -a 4

 

USB: USB disk test (USB 2.0/ USB 3.2 Gen 1 By 1 port)

check if the USB device is mount automatically

# lsblk

RTENOTITLE

if USB device is not mount automatically

# use /dev/sda1 as example
# sudo mkdir -p /mnt/tmp
# sudo mount /dev/sda1 /mnt/tmp

 


RTC使用方法(RTC Test Method):

Step 1: Set system time to current, then write to RTC

# date 113009362023 && hwclock -w && date

Step 2: Set one incorrect time, then read time from RTC to verify

# date 113009362023 && hwclock -r

Step 3: Restore the RTC time to system time

# date 113009362023 && hwclock -r

 

eMMC/SD/SPI flash使用方法(eMMC/SD/SPI flash Testing Method):

SD

lsusb -t # get correct device node, use /dev/mmcblk1p1 as example
sudo mkdir -p /mnt/tmp
sudo mount /dev/ mmcblk1p1 /mnt/tmp

eMMC
Ubuntu OS here

Ethernet使用方法(Ethernet Testing Method):

Step 1: Check the Ethernet device

# ifconfig

RTENOTITLE

Step 2: Connect the cable and ping test (eg. Eth0)

# ping -c4 8.8.8.8

RTENOTITLE


GPIO使用方法(GPIO Testing Method):

  • GPIO Pins:

UIO Extension 1(UIO1):

Pin Numbers
GPIO2 315
GPIO4 316

UIO Extension2 (UIO2):

Pin Numbers
GPIO5 317
GPIO6 318
GPIO7 319
GPIO8 320
GPIO9 321
GPIO10 322
GPIO11 323 or 408
GPIO12 324 or 409
  • GPIO Loopback Test (Using GPIO2 and GPIO4 as examples):

Step 1: Connect GPIO2 and GPIO4
Step 2: Export GPIO interface

  1. echo 315 > /sys/class/gpio/export
    # echo 316 > /sys/class/gpio/export

Step 3: Set GPIO direction

  1. echo out > /sys/class/gpio/gpio1/direction
    # echo in > /sys/class/gpio/gpio2/direction

Step 4: Read value and set output value than check

  1. cat /sys/class/gpio/gpio2/value 0
    # echo 1 > /sys/class/gpio/gpio1/value
    # cat /sys/class/gpio/gpio2/value
    1


Watchdog使用方法(Watchdog Testing Method):

  • Internal Watchdog:

System will reboot after 30 sec

# echo 1 | sudo tee /dev/watchdog # or /dev/watchdog0
  • External Watchdog:

System will reboot after 60 sec

# echo 1 | sudo tee /dev/watchdog1

LED ON/OFF 使用方法(LED ONOFF Testing Method):

LED ON:

# echo 255 | sudo tee /sys/class/leds/user/brightness

LED OFF:

# echo 0 | sudo tee /sys/class/leds/user/brightness



UIO-4030使用方法(UIO-4030 Testing Method):

1 UART(COM_3) # stty -F /dev/ttyS3 -echo -onlcr 921600 raw
# cat /dev/ttyS3 &
# echo "Serial Port Test" > /dev/ttyS3
or
#microcom -s 921600 -X /dev/ttyS3
2 GPIO

4 DI & 4 DO Pins (UIO Extension_UIO2)
input pin#5: gpio 317 
output pin#6: gpio 318 
input pin#7: gpio 319
output pin#8: gpio 320
input pin#9: gpio 321
output pin#10: gpio 322
input pin#11: gpio 323
output pin#12: gpio 324

(Note: gpio 323 & gpio 324 need to set the gpio 345 to high)

3 RS-485(COM_4) Test RS-485 with Adam-4520. Adam-4520 Pin Data- and Pin
Data+ connect to UIO-4030 COM_4 Pin 1 and Pin 2.
# stty -F /dev/ttyUSB0 speed 115200 ignbrk -brkint -icrnl - imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke
# cat /dev/ttyUSB0 &
# echo "Serial Test" > /dev/ttyUSB0
4 EEPROM # echo -n $'\x06\x05\x04\x03\x02\x01' > /data/test1
# dd if=/data/test1 of=/sys/bus/i2c/devices/3-0050/eeprom # dd if=/sys/bus/i2c/devices/3-0050/eeprom of=/data/test2 conv=fsync

 

UIO-4032使用方法(UIO-4032 Testing Method):

1

UART

COM_3:ttyS3

COM_4:ttyS1

# stty -F /dev/ttyS3 -echo -onlcr 921600 raw
# cat /dev/ttyS3 &
# echo "Serial Port Test" > /dev/ttyS3 or
# microcom -s 921600 -X /dev/ttyS3 # cat /dev/ttyS3 &
# stty -F /dev/ttyS1 -echo -onlcr 921600 raw # cat /dev/ttyS1 &
# echo "Serial Port Test" > /dev/ttyS1
or
# microcom -s 921600 -X /dev/ttyS1
2 USB USB disk write/read/verify pattern
3 Ethernet # ifconfig
# ping 8.8.8.8
4 EEPROM # echo -n $'\x06\x05\x04\x03\x02\x01' > /data/test1
# dd if=/data/test1 of=/sys/bus/i2c/devices/3-0050/eeprom
# dd if=/sys/bus/i2c/devices/3-0050/eeprom of=/data/test2 conv=fsync

 

UIO-4034使用方法(UIO-4034 Testing Method):

1

UART

COM_3:ttyS3

COM_4:ttyS1

$ stty -F /dev/ttyS3 -echo -onlcr 921600 raw
$ cat /dev/ttyS3 &
$ echo "Serial Port Test" > /dev/ttyS3
or
$ microcom -s 921600 -X /dev/ttyS3
$ stty -F /dev/ttyS1 -echo -onlcr 921600 raw
$ cat /dev/ttyS1 &
$ echo "Serial Port Test" > /dev/ttyS1
or
$ microcom -s 921600 -X /dev/ttyS1
2 CAN Bus

NA

3 EEPROM # echo -n $'\x06\x05\x04\x03\x02\x01' > /data/test1
# dd if=/data/test1 of=/sys/bus/i2c/devices/3-0050/eeprom
# dd if=/sys/bus/i2c/devices/3-0050/eeprom of=/data/test2 conv=fsync



UIO-4036使用方法(UIO-4036 Testing Method):

(Note: Please contact Advantech to get the kernel packages for enabling the UIO-4036 Ethernet switch)

UIO-4036_hardware_enabled:

1 LAN Switch # ifconfig
# ping 8.8.8.8
2 EEPROM # echo -n $'\x06\x05\x04\x03\x02\x01' > /data/test1
# dd if=/data/test1 of=/sys/bus/i2c/devices/3-0050/eeprom
# dd if=/sys/bus/i2c/devices/3-0050/eeprom of=/data/test2 conv=fsync

UIO-4038使用方法(UIO-4038 Testing Method):

1 LAN0(WAN) # ifconfig
2 LAN # ping 192.168.100.1
3 EEPROM # echo -n $'\x06\x05\x04\x03\x02\x01' > /data/test1
# dd if=/data/test1 of=/sys/bus/i2c/devices/3-0050/eeprom
# dd if=/sys/bus/i2c/devices/3-0050/eeprom of=/data/test2 conv=fsync

 


UIO-4040使用方法(UIO-4040 Testing Method):

1 SSD
  1. SSD disk write/read/verify pattern

Disk /dev/sda: 119.24 GiB, 128035676160 bytes, 250069680 sectors
Disk model: UIO-4040
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

2 EEPROM # echo -n $'\x06\x05\x04\x03\x02\x01' > /data/test1
# dd if=/data/test1 of=/sys/bus/i2c/devices/3-0050/eeprom
# dd if=/sys/bus/i2c/devices/3-0050/eeprom of=/data/test2 conv=fsync

 




安裝AI SDK使用方法(Install AI SDK):

Install AI SDK

Install Genio Hardware Support Packages

AI Processor Drivers

HDMI-RX

Install Mediatek hdmirx-tool:

$ sudo apt-add-repository ppa:mediatek-genio/genio-public
$ sudo apt install mediatek-apusys-firmware-genio1200
$ sudo apt install mediatek-hdmirx-tool

 

通用方法(General Method)

BSP編譯方法(BSP Compile Method)

NA