Difference between revisions of "RSB-3810 user guide Ubuntu22.04"
Jems.cheng (talk | contribs) |
|||
(72 intermediate revisions by 3 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 Linux和Android |
| | ||
Line 151: | Line 151: | ||
=== '''系统下载 (OS Download)''' === | === '''系统下载 (OS Download)''' === | ||
− | [ | + | [https://advantecho365-my.sharepoint.com/:f:/g/personal/jems_cheng_advantech_com/El-qVcFLmBZBhM57lbsbZZQBsZPbzkkj2Y6iXMS1zHIg5g?e=RdTHtd Ubuntu recovery image] |
| | ||
Line 167: | Line 167: | ||
=== '''燒錄方法 (Flash eMMC Method)''' === | === '''燒錄方法 (Flash eMMC Method)''' === | ||
− | + | Password: ubuntu | |
− | + | Recovery Ubuntu: | |
− | + | Prepare: | |
− | |||
− | |||
− | |||
− | + | #<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"> recovery image.</span> | |
+ | #<span lang="EN-US" style="color:#1f497d">Follow the link 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] on a Ubuntu 22.04 x86 PC.</span> | ||
+ | #<span lang="EN-US" style="color:#1f497d">USB typeA to typeA cable</span> | ||
+ | #<span lang="EN-US" style="color:#1f497d">USB typeA port, download and reset button information (screenshot below mark by color red)</span> | ||
− | [[File: | + | [[File:RSB-3810-TypeA.png.jpg|RTENOTITLE]][[File:RSB-3810-download-reset.png|400px|RSB-3810-download-reset.png]] |
− | + | Flash steps: | |
− | + | #<span lang="EN-US" style="color:#1f497d">To connect USB typeA to typeA cable to the host computert and the RSB-3810 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 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> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | [[File:RSB-3810U-genio-flash.png|400px|RSB-3810U-genio-flash.png]][[File:RSB-3810U-download-reset.png|400px|RSB-3810U-download-reset.png]] | |
− | [[File:RSB- | + | [[File:RSB-3810U-release-download.png|400px|RSB-3810U-release-download.png]][[File:RSB-3810U-flash-successfully.png|400px|RSB-3810U-flash-successfully.png]] |
− | + | == '''Linux系统的基本使用(Linux System Basic Operating Method)''' == | |
− | ( | + | === '''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]]''' | ||
− | + | | |
− | + | | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== '''Display Setting (RSB-3810)''' === | === '''Display Setting (RSB-3810)''' === | ||
Line 229: | Line 210: | ||
'''HDMI TX:''' | '''HDMI TX:''' | ||
− | + | 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> | |
− | + | 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> | |
− | + | ubuntu: (root permission) | |
− | + | <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">sudo i2cset -f -y 2 0x20 0x81 0x0b b (sudo i2cset -f -y 2 0x20 0x81 0x1b b) /* 0b: VESA 24 bpp, 1b: JEIDA 24 bpp */<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> | |
− | # | + | 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> | |
− | # | + | ubuntu: (root permission) |
− | + | <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">sudo i2cset -f -y 2 0x20 0x81 0x00 b (sudo i2cset -f -y 2 0x20 0x81 0x10 b) /* 00: VESA 24 bpp, 10: JEIDA 24 bpp */<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> | |
− | # | + | 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> | |
− | + | 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> | |
− | ( | + | 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) | + | 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> | |
− | + | | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Audio使用方法(Audio Testing Method): === | === Audio使用方法(Audio Testing Method): === | ||
− | + | 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> | |
− | + | 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> | |
− | + | 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> | |
− | + | Source: Build-in Audio Earphone microphone + | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | # | ||
| | ||
− | === '''M. | + | === '''M.2使用方法(M.2 Testing Method): ''' === |
− | + | '''KeyE:''' | |
− | + | 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:''' | ||
− | + | USB 3.0 | |
+ | <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">lsusb # 5G</div> | ||
+ | *WiFi | ||
− | * | + | Setting-->Network |
+ | <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">ifconfig<br/> ping -c4 8.8.8.8</div> | ||
+ | *Bluetooth | ||
− | + | Setting-->Bluetooth | |
+ | *5G | ||
+ | <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">mmcli --list-modems<br/> mmcli -m 0</div> | ||
| | ||
=== '''Serial port使用方法(Serial port Testing Method):''' === | === '''Serial port使用方法(Serial port Testing Method):''' === | ||
− | + | '''Use the on-board UART (/dev/ttyS2) as example''' | |
− | + | *'''RS-232 Loopback Test:''' | |
− | + | 1. Setting: | |
− | + | 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/> " | |
− | + | 2. Test: | |
+ | <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># sudo stty -F /dev/ttyS2 -echo -onlcr 115200 raw<br/> # echo "RS-232 test" | sudo tee /dev/ttyS2 > /dev/null</div> | ||
+ | *'''RS-422 Test:''' | ||
− | + | 1. Setting: | |
− | + | 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 | |
− | + | 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 <br/> # echo "RS-422 Test" > /dev/ttyS2</div> | ||
*'''RS-485 Test:''' | *'''RS-485 Test:''' | ||
− | + | 1. Setting:<br/> Adam-4520 Data- <--> DB9 Pin 1<br/> Adam-4520 Data+ <--> DB9 Pin 2 | |
− | |||
− | |||
− | + | 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 <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 | ||
− | |||
− | |||
Step 2: I2c set and get | Step 2: I2c set and get | ||
Line 347: | Line 308: | ||
=== '''USB: USB disk test (USB 2.0/ USB 3.2 Gen 1 By 1 port)''' === | === '''USB: USB disk test (USB 2.0/ USB 3.2 Gen 1 By 1 port)''' === | ||
− | + | 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]] | ||
− | + | <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> | |
− | + | | |
− | |||
− | # | ||
| | ||
Line 360: | Line 321: | ||
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> | |
− | |||
− | |||
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> | |
− | |||
− | |||
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> | |
− | |||
− | |||
| | ||
=== '''eMMC/SD/SPI flash使用方法(eMMC/SD/SPI flash Testing Method):''' === | === '''eMMC/SD/SPI flash使用方法(eMMC/SD/SPI flash Testing Method):''' === | ||
− | + | 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> | |
− | + | 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- | + | [[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- | + | [[File:RSB-3810U-ping.png|RTENOTITLE]] |
| | ||
Line 458: | Line 413: | ||
=== '''Watchdog使用方法(Watchdog Testing Method):''' === | === '''Watchdog使用方法(Watchdog Testing Method):''' === | ||
+ | |||
+ | '''[[File:RSB-3810U-WDT.png|RTENOTITLE]]''' | ||
*'''Internal Watchdog:''' | *'''Internal Watchdog:''' | ||
− | + | 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> | |
− | # | ||
− | |||
− | |||
− | |||
− | # | ||
− | |||
− | |||
− | |||
− | # | ||
− | |||
− | |||
− | |||
− | |||
− | |||
*'''External Watchdog:''' | *'''External Watchdog:''' | ||
− | + | System will reboot after 60 sec | |
+ | <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;"># echo 1 | sudo tee /dev/watchdog1</div> | ||
+ | === '''LED ON/OFF 使用方法(LED ONOFF Testing Method):''' === | ||
− | #echo | + | 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> | |
− | # | + | |
− | |||
− | |||
− | |||
− | |||
| | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
| | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
| | ||
− | |||
− | |||
− | |||
− | |||
| | ||
=== '''UIO-4030使用方法(UIO-4030 Testing Method):''' === | === '''UIO-4030使用方法(UIO-4030 Testing Method):''' === | ||
+ | |||
+ | '''Switch to root: $ sudo su''' | ||
{| border="1" cellpadding="1" cellspacing="1" | {| border="1" cellpadding="1" cellspacing="1" | ||
|- | |- | ||
| 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 <br/> output pin#6: gpio 318 <br/> input pin#7: gpio 319<br/> output pin#8: | + | | |
+ | 4 DI & 4 DO Pins (UIO Extension_UIO2)<br/> input pin#5: gpio 317 <br/> output pin#6: gpio 318 <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 544: | Line 465: | ||
| EEPROM | | EEPROM | ||
| # echo -n $'\x06\x05\x04\x03\x02\x01' > /data/test1<br/> # 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 | | # echo -n $'\x06\x05\x04\x03\x02\x01' > /data/test1<br/> # 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 | ||
+ | |} | ||
+ | |||
+ | | ||
+ | |||
+ | {| border="1" cellpadding="1" cellspacing="1" style="width: 500px;" | ||
+ | |- | ||
+ | | UIO-4030 | ||
+ | | UIO extension | ||
+ | | DSUB_9 | ||
+ | |- | ||
+ | | DI1 | ||
+ | | GPIO5(317) | ||
+ | | #1 | ||
+ | |- | ||
+ | | DI2 | ||
+ | | GPIO7(319) | ||
+ | | #2 | ||
+ | |- | ||
+ | | DI3 | ||
+ | | GPIO9(321) | ||
+ | | #3 | ||
+ | |- | ||
+ | | DI4 | ||
+ | | GPIO11(323) | ||
+ | | #4 | ||
+ | |- | ||
+ | | DO1 | ||
+ | | GPIO6(318) | ||
+ | | #6 | ||
+ | |- | ||
+ | | DO2 | ||
+ | | GPIO8(320) | ||
+ | | #7 | ||
+ | |- | ||
+ | | DO3 | ||
+ | | GPIO10(322) | ||
+ | | #8 | ||
+ | |- | ||
+ | | DO4 | ||
+ | | GPIO12(324) | ||
+ | | #9 | ||
|} | |} | ||
Line 553: | Line 515: | ||
|- | |- | ||
| 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 538: | ||
| # 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 | ||
|} | |} | ||
− | |||
− | |||
| | ||
Line 580: | Line 546: | ||
|- | |- | ||
| 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 560: | ||
| CAN Bus | | CAN Bus | ||
| | | | ||
− | + | NA | |
− | |||
− | |||
|- | |- | ||
Line 597: | Line 567: | ||
| # 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 | ||
|} | |} | ||
+ | |||
+ | | ||
| | ||
=== '''UIO-4036使用方法(UIO-4036 Testing Method):''' === | === '''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:]] | ||
{| border="1" cellpadding="1" cellspacing="1" | {| border="1" cellpadding="1" cellspacing="1" | ||
Line 612: | Line 588: | ||
| # 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 | ||
|} | |} | ||
− | |||
− | |||
=== '''UIO-4038使用方法(UIO-4038 Testing Method):''' === | === '''UIO-4038使用方法(UIO-4038 Testing Method):''' === | ||
Line 631: | Line 605: | ||
| # 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 | ||
|} | |} | ||
+ | |||
+ | | ||
| | ||
Line 640: | Line 616: | ||
| 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 627: | ||
|} | |} | ||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | === '''安裝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> | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
== '''通用方法(General Method)''' == | == '''通用方法(General Method)''' == | ||
+ | === '''讀取溫度(Read Thermal):''' === | ||
+ | <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">'''$ i=0 ; while [[$i_-lt_18|$i -lt 18]] ; do (type=`cat /sys/class/thermal/thermal_zone$i/type` ; temp=`cat /sys/class/thermal/thermal_zone$i/temp` ; echo "$i $type : $temp"); i=$((i+1));done ; sleep 0.1;'''</div> | ||
+ | '''loop:''' | ||
+ | <div style="background:#eeeeee;border:1px solid #cccccc;padding:5px 10px;">'''$ while; do i=0 ; while [[$i_-lt_18|$i -lt 18]] ; do (type=`cat /sys/class/thermal/thermal_zone$i/type` ; temp=`cat /sys/class/thermal/thermal_zone$i/temp` ; echo "$i $type : $temp"); i=$((i+1));done ; sleep 0.1; done'''</div> | ||
+ | *<span lang="EN-US" style="font-family:"><span style="color:#1f497d">thermal_zone0</span></span><span style="font-family:"><span style="color:#1f497d">通常會是</span></span><span lang="EN-US" style="font-family:"><span style="color:#1f497d">soc_max :</span></span><span style="font-family:"><span style="color:#1f497d">會取</span></span><span lang="EN-US" style="font-family:"><span style="color:#1f497d">soc</span></span><span style="font-family:"><span style="color:#1f497d">內部最高的溫度當作數值(Use the highest thermal in the SOC)</span></span> | ||
+ | *<span lang="EN-US" style="font-family:"><span style="color:#1f497d">cpu_big1-4</span></span><span style="font-family:"><span style="color:#1f497d">對應的就會是</span></span><span lang="EN-US" style=""><span style="color: rgb(31, 73, 125);"><font face="Century Gothic, sans-serif">A78 (</font><font face="微軟正黑體, sans-serif"><span style="font-style: normal;">Should </span></font></span></span><span lang="EN-US" style="font-family:"><span style="color:#1f497d">A78 1-4 core)<u5:p></u5:p></span></span> | ||
+ | *<span lang="EN-US" style="font-family:"><span style="color:#1f497d">cpu_little1-4</span></span><span style="font-family:"><span style="color:#1f497d">對應的就會是</span></span><span lang="EN-US" style="font-family:"><span style="color:#1f497d">A55 (Should A55 1~4 core)<u5:p></u5:p></span></span> | ||
+ | |||
+ | | ||
+ | |||
+ | == '''ToolChain ''' == | ||
+ | |||
+ | '''64-bit ARM''' | ||
+ | |||
+ | For 64-bit ARM, the toolchain prefix is <code>aarch64</code> and usage is: | ||
+ | <pre><code>sudo apt install gcc-aarch64-linux-gnu | ||
+ | aarch64-linux-gnu-gcc -o xxxxx.out xxxxx.c</code></pre> | ||
+ | |||
+ | or Compile the source code in RSB-3810 | ||
== '''BSP編譯方法(BSP Compile Method)''' == | == '''BSP編譯方法(BSP Compile Method)''' == | ||
'''NA''' | '''NA''' |
Latest revision as of 07:28, 21 January 2025
Contents
- 1 產品介紹(Product introduction )
- 2 硬件接口說明(Hardware interface introduction)
- 3 快速入门 (Quick Start)
- 4 Linux系统的基本使用(Linux System Basic Operating Method)
- 4.1 I2C Setting (RSB-3810)
- 4.2 Display Setting (RSB-3810)
- 4.3 Audio使用方法(Audio Testing Method):
- 4.4 M.2使用方法(M.2 Testing Method):
- 4.5 Serial port使用方法(Serial port Testing Method):
- 4.6 I2C使用方法(I2C Test Method):
- 4.7 USB: USB disk test (USB 2.0/ USB 3.2 Gen 1 By 1 port)
- 4.8 RTC使用方法(RTC Test Method):
- 4.9 eMMC/SD/SPI flash使用方法(eMMC/SD/SPI flash Testing Method):
- 4.10 Ethernet使用方法(Ethernet Testing Method):
- 4.11 GPIO使用方法(GPIO Testing Method):
- 4.12 Watchdog使用方法(Watchdog Testing Method):
- 4.13 LED ON/OFF 使用方法(LED ONOFF Testing Method):
- 4.14 UIO-4030使用方法(UIO-4030 Testing Method):
- 4.15 UIO-4032使用方法(UIO-4032 Testing Method):
- 4.16 UIO-4034使用方法(UIO-4034 Testing Method):
- 4.17 UIO-4036使用方法(UIO-4036 Testing Method):
- 4.18 UIO-4038使用方法(UIO-4038 Testing Method):
- 4.19 UIO-4040使用方法(UIO-4040 Testing Method):
- 4.20 安裝AI SDK使用方法(Install AI SDK):
- 5 通用方法(General Method)
- 6 ToolChain
- 7 BSP編譯方法(BSP Compile Method)
產品介紹(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)
硬件接口說明(Hardware interface introduction)
接口布局和尺寸(Layout and Sizes)
RSB-3810 接口布局圖 Board Dimension Layout
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)
- BAT (RTC Battery CONN.)
- BL1 (LVDS Backlight 1)
- COM1 (Debug Console + RS232/RS485)
- CSI0 (MIPI-CSI Camera Input 0)
- CSI1 (MIPI-CSI Camera Input 1)
- CSI2 (MIPI-CSI Camera Input 2)
- DCIN (12V DC Jack)
- DCIN1 (12V DC-IN Pin Header)
- HDMI (HDMI CONN.)
- LAN (Ethernet eth0+eth1)
- LOUT (Line Out Pin Header)
- LVDS0 (LVDS channel 0)
- LVDS1 (LVDS channel 1)
- M2 (M.2 Key E CONN.)
- MIC (MIC In Pin Header)
- M2B (M.2 keyB 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)
- DL_KEY(Download Key)
- LED
机械尺寸 (Mechanical Characteristics)
快速入门 (Quick Start)
系统下载 (OS Download)
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.
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)
Password: ubuntu
Recovery Ubuntu:
Prepare:
- Prepare a Ubuntu 22.04 recovery image.
- Follow the link to install the MediaTek flash tool “genio-tools on a Ubuntu 22.04 x86 PC.
- USB typeA to typeA cable
- USB typeA port, download and reset button information (screenshot below mark by color red)
Flash steps:
- To connect USB typeA to typeA cable to the host computert and the RSB-3810 typeA port
- To extract the Ubuntu recovery image:
- cd recovery package
- Run "genio-flash"
- Turn the RSB-3810 board power on
- press Download button and hold it
- Press and release the reset button
- Release the Download button after the tool outputs "< waiting for any device >"
- The flash tool will continue to flash recovery image.
Linux系统的基本使用(Linux System Basic Operating Method)
I2C Setting (RSB-3810)
sudo apt update
sudo apt install i2c-tools
sudo i2cdetect -y -r 4
Display Setting (RSB-3810)
HDMI TX:
Single Display HDMI (default)
u-boot:
saveenv
reset
Dual Channel LVDS panel G215HVN0
u-boot:
saveenv
reset
ubuntu: (root permission)
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:
saveenv
reset
ubuntu: (root permission)
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:
saveenv
reset
ubuntu:
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:
saveenv
reset
ubuntu:
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
Line-Out/Speaker
Mic-In
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
USB 2.0
sudo cat /sys/kernel/debug/usb/devices
KeyB:
USB 3.0
- WiFi
Setting-->Network
ping -c4 8.8.8.8
- Bluetooth
Setting-->Bluetooth
- 5G
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:
# 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:
# 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:
# 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
if USB device is not mount automatically
# 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
Step 2: Set one incorrect time, then read time from RTC to verify
Step 3: Restore the RTC time to system time
eMMC/SD/SPI flash使用方法(eMMC/SD/SPI flash Testing Method):
SD
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
Step 2: Connect the cable and ping test (eg. Eth0)
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
- echo 315 > /sys/class/gpio/export
# echo 316 > /sys/class/gpio/export
Step 3: Set GPIO direction
- echo out > /sys/class/gpio/gpio1/direction
# echo in > /sys/class/gpio/gpio2/direction
Step 4: Read value and set output value than check
- 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
- External Watchdog:
System will reboot after 60 sec
LED ON/OFF 使用方法(LED ONOFF Testing Method):
LED ON:
LED OFF:
UIO-4030使用方法(UIO-4030 Testing Method):
Switch to root: $ sudo su
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) (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-4030 | UIO extension | DSUB_9 |
DI1 | GPIO5(317) | #1 |
DI2 | GPIO7(319) | #2 |
DI3 | GPIO9(321) | #3 |
DI4 | GPIO11(323) | #4 |
DO1 | GPIO6(318) | #6 |
DO2 | GPIO8(320) | #7 |
DO3 | GPIO10(322) | #8 |
DO4 | GPIO12(324) | #9 |
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)
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 |
Disk /dev/sda: 119.24 GiB, 128035676160 bytes, 250069680 sectors |
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
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)
讀取溫度(Read Thermal):
loop:
- thermal_zone0通常會是soc_max :會取soc內部最高的溫度當作數值(Use the highest thermal in the SOC)
- cpu_big1-4對應的就會是A78 (Should A78 1-4 core)<u5:p></u5:p>
- cpu_little1-4對應的就會是A55 (Should A55 1~4 core)<u5:p></u5:p>
ToolChain
64-bit ARM
For 64-bit ARM, the toolchain prefix is aarch64
and usage is:
<code>sudo apt install gcc-aarch64-linux-gnu aarch64-linux-gnu-gcc -o xxxxx.out xxxxx.c</code>
or Compile the source code in RSB-3810
BSP編譯方法(BSP Compile Method)
NA