Difference between revisions of "AIR 030 Development"

From ESS-WIKI
Jump to: navigation, search
(undo)
 
(13 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<h2>Flash Image</h2>
 
  
<p>Change the SW2 to ON and press power button.<br />
+
== Flash Image ==
<img _fck_mw_filename="Recovery BT.png" _fck_mw_origimgheight="377" _fck_mw_origimgwidth="566" alt="Air030 recovery button.jpg" src="/wiki/images/c/c8/Recovery_BT.png" style="vertical-align:middle;" title="Air030 recovery button.jpg" width="400" /></p>
 
  
<pre>
+
Change the SW2 to ON and press power button.<br/> [[File:Recovery BT.png|400px|Recovery BT.png]]
$ sudo reboot --force forced-recovery
+
<pre>$ sudo reboot --force forced-recovery
 
</pre>
 
</pre>
  
<p>Connect a linux OS host wired AIR-030 with usb-otg cable.<br />
+
Connect a linux OS host wired AIR-030 with usb-otg cable.<br/> In the Host PC, make sure the AIR-030 (<span data-darkreader-inline-color="" style="color: rgb(0, 112, 192); --darkreader-inline-color: #46b2ff;">'''NVidia Corp'''</span>) has detectd.
In the Host PC, make sure the AIR-030 (<span data-darkreader-inline-color="" style="color: rgb(0, 112, 192); --darkreader-inline-color: #46b2ff;"><b>NVidia Corp</b></span>) has detectd.</p>
+
<pre>[ubuntu@linux 11:55:43 ~]$ lsusb  
 
 
<pre>
 
[ubuntu@linux 11:55:43 ~]$ lsusb  
 
 
Bus 002 Device 002: ID 8087:8000 Intel Corp.
 
Bus 002 Device 002: ID 8087:8000 Intel Corp.
 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Line 21: Line 16:
 
</pre>
 
</pre>
  
<p>Install dependency package on HOST:</p>
+
Install dependency package on HOST:
 
+
<pre>  
<pre>
 
 
 
$ sudo tools/l4t_flash_prerequisites.sh # For Debian-based Linux
 
$ sudo tools/l4t_flash_prerequisites.sh # For Debian-based Linux
 
</pre>
 
</pre>
  
<p>or</p>
+
or
 
+
<pre>$ sudo apt install build-essential python libxml2-utils abootimg sshpass binutils -y
<pre>
 
$ sudo apt install build-essential python libxml2-utils abootimg sshpass binutils -y
 
 
</pre>
 
</pre>
  
<p>For Jackpack 5.1.1<br />
+
For Jackpack 5.1.1<br/> 1.Extracted tarball file PS&nbsp;:
1.Extracted tarball file PS&nbsp;:</p>
+
<pre>$ sudo tar -zxvf air030_image_XXXXXX.tar.gz
 
 
<pre>
 
$ sudo tar -zxvf air030_image_XXXXXX.tar.gz
 
 
$ cd Linux_for_Tegra
 
$ cd Linux_for_Tegra
 
</pre>
 
</pre>
  
<p>2. Flash</p>
+
2. Flash
 
+
<pre>$ sudo ./flash.sh -d rootfs/boot/tegra234-air030.dtb jetson-agx-orin-devkit mmcblk0p1​​
<pre>
 
$ sudo ./flash.sh -d rootfs/boot/tegra234-air030.dtb jetson-agx-orin-devkit mmcblk0p1​​
 
 
</pre>
 
</pre>
  
<p>To NVME</p>
+
To NVME
 
+
<pre>$ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c ./tools/kernel_flash/flash_l4t_external.xml -S 32GB --erase-all --showlogs jetson-agx-orin-devkit nvme0n1p1
<pre>
 
$ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c ./tools/kernel_flash/flash_l4t_external.xml -S 32GB --erase-all --showlogs jetson-agx-orin-devkit nvme0n1p1
 
 
</pre>
 
</pre>
  
<p>For Jetpack 6.0<br />
+
For Jetpack 6.0<br/> To EMMC
To EMMC</p>
+
<pre>$ sudo ./flash.sh jetson-agx-orin-devkit mmcblk0p1
 
 
<pre>
 
$ sudo ./flash.sh jetson-agx-orin-devkit mmcblk0p1
 
 
</pre>
 
</pre>
  
<p>To NVME</p>
+
To NVME
 
+
<pre>$ $ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -p &quot;-c ./bootloader/generic/cfg/flash_t234_qspi.xml&quot; -c ./tools/kernel_flash/flash_l4t_t234_nvme.xml --showlogs --network usb0 jetson-agx-orin-devkit nvme0n1p1
<pre>
 
$ $ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -p &quot;-c ./bootloader/generic/cfg/flash_t234_qspi.xml&quot; -c ./tools/kernel_flash/flash_l4t_t234_nvme.xml --showlogs --network usb0 jetson-agx-orin-devkit nvme0n1p1
 
 
</pre>
 
</pre>
  
<p>倘若燒錄時遇到&quot;Parsing board information failed&quot;<br />
+
If host get error message "Parsing board information failed" when flashing image.<br/> Please get crc code by get_eeprom_crc tool, once AIR-030 can boot into desktop.<br/> Download Link: [https://advantecho365-my.sharepoint.com/:u:/g/personal/seven_lin_advantech_com/EcDPLclPeAFFmCFM5nP72McBtjaHRoZZKH0qTNOM1TxBfg?e=nZ3sk9 [1]]
若可以先正常開機,使用get_eeprom_crc取得crc</p>
+
<pre>$ chmod a+x get_eeprom_crc
 
+
$ sudo ./get_eeprom_crc 0
<pre>
 
ubuntu@localhost:~$ chmod a+x get_eeprom_crc)
 
ubuntu@localhost:~$ sudo ./get_eeprom_crc 0
 
 
</pre>
 
</pre>
  
<p>再透過i2cset寫入正確的crc值到EEPROM<br />
+
Then overwrite correct crc value to EEPROM by i2cset command.<br/> Replace crc code in command $ sudo i2cset -f -y 0 0x50 0xff 0x<crc_code><br/> For example, execute this command if crc code is 28.
參數&nbsp;: I2C_BUS, EEPROM_SLAVE_ADDR, ADDRESS, VALUE</p>
+
<pre>$ sudo i2cset -f -y 0 0x50 0xff 0x28
 
 
<pre>
 
$ sudo i2cset -f -y 0 0x50 0xff 0x28
 
 
</pre>
 
</pre>
  
<p>再重燒<br />
+
Then re-flash AIR-030 image by normal steps.<br/> Once AIR-030 cannot boot up to desktop, please flash AIR-030 by this command then follow previous steps to overwrite crc code and re-flash AIR-030 image.<br/> AGX Orin 32G uses BOARDSKU="0004", AGX Orin 64G uses BOARDSKU="0005".
若不能正常開機,先下底下指令燒一次,然後再更新CRC值</p>
+
<pre>$ sudo SKIP_EEPROM_CHECK=1 BOARDSKU=&quot;0004&quot; CHIP_SKU=00:00:00:D2 ./flash.sh jetson-agx-orin-devkit internal
 
 
<pre>
 
$ sudo SKIP_EEPROM_CHECK=1 BOARDSKU=&quot;0004&quot; CHIP_SKU=00:00:00:D2 ./flash.sh jetson-agx-orin-devkit internal
 
 
</pre>
 
</pre>
  
<p>nVidia:</p>
+
This is original command with full parameter to flash from nVidia.
 
+
<pre>$ sudo BOARDID=&quot;3701&quot; FAB=&quot;300&quot; BOARDSKU=&quot;0004&quot; BOARDREV=&quot;C.2&quot; CHIP_SKU=00:00:00:D2 ./flash.sh jetson-agx-orin-devkit internal
<pre>
 
$ sudo BOARDID=&quot;3701&quot; FAB=&quot;300&quot; BOARDSKU=&quot;0004&quot; BOARDREV=&quot;C.2&quot; CHIP_SKU=00:00:00:D2 ./flash.sh jetson-agx-orin-devkit internal
 
 
</pre>
 
</pre>
  
<h2>Board Layout</h2>
+
&nbsp;
  
<p>Front</p>
+
== Board Layout ==
  
<p><img _fck_mw_filename="Air030 board layout front.jpg" _fck_mw_origimgheight="718" _fck_mw_origimgwidth="2048" alt="Air030 board layout front.jpg" src="/wiki/images/5/59/Air030_board_layout_front.jpg" style="vertical-align:middle;" title="Air030 board layout front.jpg" width="400" /></p>
+
Front
  
<p>Back</p>
+
[[File:Air030 board layout front.jpg|400px|Air030 board layout front.jpg]]
  
<p><img _fck_mw_filename="Air030 board layout back.jpg" _fck_mw_origimgheight="1044" _fck_mw_origimgwidth="2048" alt="Air030 board layout back.jpg" src="/wiki/images/c/cd/Air030_board_layout_back.jpg" style="vertical-align:middle;" title="Air030 board layout back.jpg" width="400" /></p>
+
Back
  
<p>Bottom</p>
+
[[File:Air030 board layout back.jpg|400px|Air030 board layout back.jpg]]
  
<p><img _fck_mw_filename="Air030 board layout bottom.jpg" _fck_mw_origimgheight="2048" _fck_mw_origimgwidth="2048" alt="Air030 board layout bottom.jpg" src="/wiki/images/e/e0/Air030_board_layout_bottom.jpg" style="vertical-align:middle;" title="Air030 board layout bottom.jpg" width="400" /></p>
+
Bottom
  
<h2>Tools</h2>
+
[[File:Air030 board layout bottom.jpg|400px|Air030 board layout bottom.jpg]]
  
<h3>JTOP</h3>
+
== Tools ==
  
<p>install</p>
+
=== JTOP ===
  
<pre>
+
install
$ sudo apt update
+
<pre>$ sudo apt update
 
$ sudo apt install python3-pip
 
$ sudo apt install python3-pip
 
$ sudo pip3 install -U jetson-stats
 
$ sudo pip3 install -U jetson-stats
 
</pre>
 
</pre>
  
<p>Run</p>
+
Run
 
+
<pre>$ sudo jtop
<pre>
 
$ sudo jtop
 
 
</pre>
 
</pre>
  
<h3>Test Command</h3>
+
=== Test Command ===
  
<h4><b>GPIO Expander</b></h4>
+
==== '''GPIO Expander''' ====
  
<p><img _fck_mw_filename="Air030 dio.jpg" _fck_mw_origimgheight="1731" _fck_mw_origimgwidth="1537" alt="File:Air030_dio.jpg" src="/wiki/images/0/00/Air030_dio.jpg" style="vertical-align:middle;" title="File:Air030_dio.jpg" width="400" /></p>
+
[[File:Air030 dio.jpg|400px|Air030 dio.jpg]]
  
<p>Test GPIO high/low<br />
+
Test GPIO high/low
<img _fck_mw_filename="Air030 gpio expander io.png" _fck_mw_origimgheight="1532" _fck_mw_origimgwidth="1982" alt="Air030 gpio expander io.png" src="/wiki/images/6/6d/Air030_gpio_expander_io.png" style="vertical-align:middle;" title="Air030 gpio expander io.png" width="400" /><br />
 
1).Switch to root</p>
 
  
<pre>
+
[[File:Air030 gpio expander io.png|400px|Air030 gpio expander io.png]]<br/> <br/> 1).Switch to root
ubuntu@localhost:~ sudo -s
+
<pre>ubuntu@localhost:~ sudo -s
 
</pre>
 
</pre>
  
<p>2).Commnad&nbsp;: where &lt;GPIO&gt;&nbsp;: GPIO0(GPIO300)~GPIO15(GPIO315) and &lt;LEVEL&gt;&nbsp;: high(1)/low(0)<br />
+
2).Commnad&nbsp;: where <GPIO>&nbsp;: GPIO0(GPIO300)~GPIO15(GPIO315) and <LEVEL>&nbsp;: high(1)/low(0)<br/> For example, pull up GPIO0 to high.
For example, pull up GPIO0 to high.</p>
+
<pre>root@localhost:/home/ubuntu# echo 300 &gt; /sys/class/gpio/export
 
 
<pre>
 
root@localhost:/home/ubuntu# echo 300 &gt; /sys/class/gpio/export
 
 
root@localhost:/home/ubuntu# echo out &gt; /sys/class/gpio/gpio300/direction
 
root@localhost:/home/ubuntu# echo out &gt; /sys/class/gpio/gpio300/direction
 
root@localhost:/home/ubuntu# echo 1 &gt; /sys/class/gpio/gpio300/value
 
root@localhost:/home/ubuntu# echo 1 &gt; /sys/class/gpio/gpio300/value
 
</pre>
 
</pre>
  
<h4><b>WatchDog</b></h4>
+
==== '''WatchDog''' ====
 
+
<pre>root@linux:/home/ubuntu$ sudo -s
<pre>
 
root@linux:/home/ubuntu$ sudo -s
 
 
root@linux:/home/ubuntu# sync; sleep 2; sync; echo c &gt; /proc/sysrq-trigger
 
root@linux:/home/ubuntu# sync; sleep 2; sync; echo c &gt; /proc/sysrq-trigger
 
</pre>
 
</pre>
  
<h4><b>RTC</b></h4>
+
==== '''RTC''' ====
  
<p>DUT AC on:<br />
+
DUT AC on:<br/> 1. Power on DUT and boot into OS.<br/> 2. Connect a LAN cable from the DUT to DHCP server.<br/> 3. Get a dynamic IP from DHCP server.<br/> 4. Type cmd to disable ntp service in DUT.
1. Power on DUT and boot into OS.<br />
+
<pre># sudo timedatectl set-ntp false</pre>
2. Connect a LAN cable from the DUT to DHCP server.<br />
 
3. Get a dynamic IP from DHCP server.<br />
 
4. Type cmd to disable ntp service in DUT.</p>
 
  
<pre>
+
5. Synchronize system time and RTC time with NTP server.
# sudo timedatectl set-ntp false</pre>
+
<pre># ntpdate tock.stdtime.gov.tw &lt;===安裝ntpdate方式: $sudo apt-get install ntpdate &lt;enter&gt;  
 
 
<p>5. Synchronize system time and RTC time with NTP server.</p>
 
 
 
<pre>
 
# ntpdate tock.stdtime.gov.tw &lt;===安裝ntpdate方式: $sudo apt-get install ntpdate &lt;enter&gt;  
 
 
# hwclock -w  
 
# hwclock -w  
 
</pre>
 
</pre>
  
<p>6. Keep the DUT on for 24 hours.<br />
+
6. Keep the DUT on for 24 hours.<br/> 7. Synchronize system time and RTC time with NTP server again and check inaccuracies.
7. Synchronize system time and RTC time with NTP server again and check inaccuracies.</p>
+
<pre># ntpdate tock.stdtime.gov.tw &amp;&amp; hwclock -s &amp;&amp;ntpdate -u tock.stdtime.gov.tw  
 
 
<pre>
 
# ntpdate tock.stdtime.gov.tw &amp;&amp; hwclock -s &amp;&amp;ntpdate -u tock.stdtime.gov.tw  
 
 
</pre>
 
</pre>
  
<h4><b>TPM</b></h4>
+
==== '''TPM''' ====
 
 
<p>(1)產生randon code</p>
 
  
<pre>
+
(1)產生randon code
root@linux:/home/ubuntu# tpm2_getrandom --hex 20
+
<pre>root@linux:/home/ubuntu# tpm2_getrandom --hex 20
 
</pre>
 
</pre>
  
<p>(2) 對指定檔案 msg.dat 加密</p>
+
(2) 對指定檔案 msg.dat 加密
 
+
<pre>root@linux:/home/ubuntu# tpm2_createprimary -C p -c platform_primary.ctx
<pre>
 
root@linux:/home/ubuntu# tpm2_createprimary -C p -c platform_primary.ctx
 
 
root@linux:/home/ubuntu# tpm2_create -C platform_primary.ctx -G rsa2048 -u key.pub -r key.priv
 
root@linux:/home/ubuntu# tpm2_create -C platform_primary.ctx -G rsa2048 -u key.pub -r key.priv
 
root@linux:/home/ubuntu# tpm2_load -C platform_primary.ctx -u key.pub -r key.priv -c key.ctx
 
root@linux:/home/ubuntu# tpm2_load -C platform_primary.ctx -u key.pub -r key.priv -c key.ctx
Line 204: Line 148:
 
</pre>
 
</pre>
  
<p>(3) 將資料儲存至 tpm 內存</p>
+
(3) 將資料儲存至 tpm 內存
 
+
<pre>root@linux:/home/ubuntu# tpm2_nvdefine -Q 0x1500031 -C o -s 32 -a &quot;ownerread|policywrite|ownerwrite&quot;
<pre>
 
root@linux:/home/ubuntu# tpm2_nvdefine -Q 0x1500031 -C o -s 32 -a &quot;ownerread|policywrite|ownerwrite&quot;
 
 
root@linux:/home/ubuntu# echo &quot;write_tpm_adv&quot; &gt;  adv.data
 
root@linux:/home/ubuntu# echo &quot;write_tpm_adv&quot; &gt;  adv.data
 
root@linux:/home/ubuntu# tpm2_nvwrite -Q 0x1500031 -C o -i adv.data
 
root@linux:/home/ubuntu# tpm2_nvwrite -Q 0x1500031 -C o -i adv.data
Line 214: Line 156:
 
</pre>
 
</pre>
  
<p>(4) 確認已經寫入儲存區域 </p>
+
(4) 確認已經寫入儲存區域 
 
+
<pre>root@linux:/home/ubuntu# tpm2_nvreadpublic &gt; nv.out
<pre>
 
root@linux:/home/ubuntu# tpm2_nvreadpublic &gt; nv.out
 
 
root@linux:/home/ubuntu# cat nv.out
 
root@linux:/home/ubuntu# cat nv.out
 
</pre>
 
</pre>
  
<p>Error</p>
+
Error
 +
<pre>ERROR: Esys_NV_DefineSpace(0x14C) - tpm:error(2.0): NV Index or persistent object already defined
 +
ERROR: Failed to create NV index 0x1500031.
 +
</pre>
  
<pre>
+
fixed
ERROR: Esys_NV_DefineSpace(0x14C) - tpm:error(2.0): NV Index or persistent object already defined
+
<pre>root@linux:/home/ubuntu# tpm2_nvundefine 0x1500031
ERROR: Failed to create NV index 0x1500031.
 
 
</pre>
 
</pre>
  
<p>fixed</p>
+
==== '''LAN''' ====
  
<pre>
+
LAN1USB12 - eth01<br/> LAN2USB34 - eth02<br/> LAN3 - eth00
root@linux:/home/ubuntu# tpm2_nvundefine 0x1500031
+
 
</pre>
+
==== '''UART''' ====
  
<h4><b>LAN</b></h4>
+
[[File:COMPort.png|400px|COMPort.png]]<br/> [[File:COMPortSwitchDefine.png|400px|COMPortSwitchDefine.png]]<br/> RS232 (<span data-darkreader-inline-color="" style="color: rgb(0, 112, 192); --darkreader-inline-color: #46b2ff;">'''COMX_SW1&nbsp;: OFF-OFF-X-X'''</span>)
  
<p>LAN1USB12 - eth01<br />
+
[[File:Air030 rs232loopback.jpg|400px|Air030 rs232loopback.jpg]]
LAN2USB34 - eth02<br />
 
LAN3 - eth00</p>
 
  
<h4><b>UART</b></h4>
+
&nbsp;UART5_SW1 - SW1&nbsp;: ON
  
<p><img _fck_mw_filename="COMPort.png" _fck_mw_origimgheight="403" _fck_mw_origimgwidth="341" alt="COMPort.png" src="/wiki/images/8/82/COMPort.png" style="vertical-align:middle;" title="COMPort.png" width="800" /><br />
+
{| border="1" cellpadding="1" cellspacing="1" style="width: 800px;"
<img _fck_mw_filename="COMPortSwitchDefine.png" _fck_mw_origimgheight="399" _fck_mw_origimgwidth="1126" alt="COMPortSwitchDefine.png" src="/wiki/images/f/f0/COMPortSwitchDefine.png" style="vertical-align:middle;" title="COMPortSwitchDefine.png" width="800" /><br />
+
|-
RS232 (<span data-darkreader-inline-color="" style="color: rgb(0, 112, 192); --darkreader-inline-color: #46b2ff;"><b>COMX_SW1&nbsp;: OFF-OFF-X-X</b></span>)</p>
+
| <tbody>
 +
|-
 +
! data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" scope="col" style="width: 30px; background-color: rgb(80, 80, 80); color: rgb(255, 255, 255); --darkreader-inline-bgcolor: #3c4144; --darkreader-inline-color: #e8e6e3;" | COM Port
 +
! data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" scope="col" style="width: 438px; background-color: rgb(80, 80, 80); color: rgb(255, 255, 255); --darkreader-inline-bgcolor: #3c4144; --darkreader-inline-color: #e8e6e3;" | Command (Please switch to root first before test)
 +
|-
 +
! scope="row" | COM1
 +
| style="width: 300px;" | stty -F /dev/ttyTHS0 speed 115200 raw -echo
 +
cat /dev/ttyTHS0 & echo "1234" > /dev/ttyTHS0
  
<p><img _fck_mw_filename="Air030 rs232loopback.jpg" _fck_mw_origimgheight="1615" _fck_mw_origimgwidth="1537" alt="File:Air030_rs232loopback.jpg" src="/wiki/images/e/e2/Air030_rs232loopback.jpg" style="vertical-align:middle;" title="File:Air030_rs232loopback.jpg" width="400" /></p>
+
|-
 +
! scope="row" | COM2
 +
| style="width: 300px;" | stty -F /dev/ttyTHS4 speed 115200 raw -echo
 +
cat /dev/ttyTHS4 & echo "1234" > /dev/ttyTHS4
  
<p>&nbsp;UART5_SW1 - SW1&nbsp;: ON</p>
+
|-
 +
! scope="row" | COM4
 +
| style="width: 300px;" | stty -F /dev/ttyTHS3 speed 115200 raw -echo
 +
cat /dev/ttyTHS3 & echo "1234" > /dev/ttyTHS3
  
<table border="1" cellpadding="1" cellspacing="1" style="width: 800px;">
+
|-
<tbody>
+
! scope="row" | COM5
<tr>
+
| style="width: 300px;" | stty -F /dev/ttyTHS1 speed 115200 raw -echo  
<th data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" scope="col" style="width: 30px; background-color: rgb(80, 80, 80); color: rgb(255, 255, 255); --darkreader-inline-bgcolor: #3c4144; --darkreader-inline-color: #e8e6e3;">COM Port</th>
+
cat /dev/ttyTHS1 & echo "1234" > /dev/ttyTHS1
<th data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" scope="col" style="width: 438px; background-color: rgb(80, 80, 80); color: rgb(255, 255, 255); --darkreader-inline-bgcolor: #3c4144; --darkreader-inline-color: #e8e6e3;">Command (Please switch to root first before test)</th>
 
</tr>
 
<tr>
 
<th scope="row">COM1</th>
 
<td style="width: 300px;">stty -F /dev/ttyTHS0 speed 115200 raw -echo<br />
 
cat /dev/ttyTHS0 &amp;<br />
 
echo &quot;1234&quot; &gt; /dev/ttyTHS0</td>
 
</tr>
 
<tr>
 
<th scope="row">COM2</th>
 
<td style="width: 300px;">stty -F /dev/ttyTHS4 speed 115200 raw -echo<br />
 
cat /dev/ttyTHS4 &amp;<br />
 
echo &quot;1234&quot; &gt; /dev/ttyTHS4</td>
 
</tr>
 
<tr>
 
<th scope="row">COM4</th>
 
<td style="width: 300px;">stty -F /dev/ttyTHS3 speed 115200 raw -echo<br />
 
cat /dev/ttyTHS3 &amp;<br />
 
echo &quot;1234&quot; &gt; /dev/ttyTHS3</td>
 
</tr>
 
<tr>
 
<th scope="row">COM5</th>
 
<td style="width: 300px;">stty -F /dev/ttyTHS1 speed 115200 raw -echo<br />
 
cat /dev/ttyTHS1 &amp;<br />
 
echo &quot;1234&quot; &gt; /dev/ttyTHS1</td>
 
</tr>
 
</tbody>
 
</table>
 
  
<p>RS422<br />
+
|-
Send and Received port<br />
+
| </tbody>
(<span data-darkreader-inline-color="" style="color: rgb(0, 112, 192); --darkreader-inline-color: #46b2ff;"><b>COM&lt;PORT&gt;_SW1&nbsp;: ON-OFF-ON-OFF</b></span>)<br />
+
|}
<br />
 
RS485<br />
 
Send port<br />
 
(<span data-darkreader-inline-color="" style="color: rgb(0, 112, 192); --darkreader-inline-color: #46b2ff;"><b>COM&lt;inPort&gt;_SW1 ON-ON-ON-OFF</b></span>)<br />
 
Received port<br />
 
(<span data-darkreader-inline-color="" style="color: rgb(0, 112, 192); --darkreader-inline-color: #46b2ff;"><b>COM&lt;outPort&gt;_SW1 ON-ON-ON-ON</b></span>)</p>
 
  
<p>Setup up baudrate</p>
+
RS422<br/> Send and Received port<br/> (<span data-darkreader-inline-color="" style="color: rgb(0, 112, 192); --darkreader-inline-color: #46b2ff;">'''COM<PORT>_SW1&nbsp;: ON-OFF-ON-OFF'''</span>)<br/> <br/> RS485<br/> Send port<br/> (<span data-darkreader-inline-color="" style="color: rgb(0, 112, 192); --darkreader-inline-color: #46b2ff;">'''COM<inPort>_SW1 ON-ON-ON-OFF'''</span>)<br/> Received port<br/> (<span data-darkreader-inline-color="" style="color: rgb(0, 112, 192); --darkreader-inline-color: #46b2ff;">'''COM<outPort>_SW1 ON-ON-ON-ON'''</span>)
  
<pre>
+
Setup up baudrate
# stty -F /dev/ttyTHS&lt;SEND_UART_NO&gt; speed 115200
+
<pre># stty -F /dev/ttyTHS&lt;SEND_UART_NO&gt; speed 115200
 
# stty -F /dev/ttyTHS&lt;RECEIVE_UART_NO&gt; speed 115200
 
# stty -F /dev/ttyTHS&lt;RECEIVE_UART_NO&gt; speed 115200
 
</pre>
 
</pre>
  
<p>Test</p>
+
Test
 
+
<pre># cat /dev/ttyTHS&lt;RECEIVE_UART_NO&gt; &amp;
<pre>
 
# cat /dev/ttyTHS&lt;RECEIVE_UART_NO&gt; &amp;
 
 
# echo &quot;1234&quot; &gt; /dev/ttyTHS&lt;SEND_UART_NO&gt;
 
# echo &quot;1234&quot; &gt; /dev/ttyTHS&lt;SEND_UART_NO&gt;
 
</pre>
 
</pre>
  
<p><b>Software control</b><br />
+
'''Software control'''<br/> (<span data-darkreader-inline-color="" style="color: rgb(0, 112, 192); --darkreader-inline-color: #46b2ff;">'''COM<inPort>_SWx&nbsp;ON-ON-OFF-ON'''</span>)<br/> <span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Roboto">AIR-030 RTS</span></span><span style="font-size:11.0pt"><span style="font-family:">的</span></span><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Roboto">GPIO</span></span><span style="font-size:11.0pt"><span style="font-family:">號碼</span></span>
(<span data-darkreader-inline-color="" style="color: rgb(0, 112, 192); --darkreader-inline-color: #46b2ff;"><b>COM&lt;inPort&gt;_SWx&nbsp;ON-ON-OFF-ON</b></span>)<br />
 
<span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Roboto">AIR-030 RTS</span></span><span style="font-size:11.0pt"><span style="font-family:">的</span></span><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Roboto">GPIO</span></span><span style="font-size:11.0pt"><span style="font-family:">號碼</span></span></p>
 
  
<p><span data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="" style="background: rgb(242, 242, 242); --darkreader-inline-bgimage: initial; --darkreader-inline-bgcolor: #1f2223;"><b><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Consolas">UART1_RTS L51 GPIO3_PR.04 gpio-<span data-darkreader-inline-color="" style="color: rgb(192, 0, 0); --darkreader-inline-color: #ff4646;">460 </span>(<span data-darkreader-inline-color="" style="color: red; --darkreader-inline-color: #ff1a1a;">PR.04</span>)</span></span></b></span><br />
+
<span data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="" style="background: rgb(242, 242, 242); --darkreader-inline-bgimage: initial; --darkreader-inline-bgcolor: #1f2223;">'''<span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Consolas">UART1_RTS L51 GPIO3_PR.04 gpio-<span data-darkreader-inline-color="" style="color: rgb(192, 0, 0); --darkreader-inline-color: #ff4646;">460 </span>(<span data-darkreader-inline-color="" style="color: red; --darkreader-inline-color: #ff1a1a;">PR.04</span>)</span></span>'''</span><br/> <span data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="" style="background: rgb(242, 242, 242); --darkreader-inline-bgimage: initial; --darkreader-inline-bgcolor: #1f2223;">'''<span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Consolas">UART2_RTS G58 GPIO3_PY.07 gpio-477 (PY.07)</span></span>'''</span><br/> <span data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="" style="background: rgb(242, 242, 242); --darkreader-inline-bgimage: initial; --darkreader-inline-bgcolor: #1f2223;">'''<span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Consolas">UART4_RTS L4 GPIO3_PH.05 gpio-396 (PH.05)</span></span>'''</span><br/> <span data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="" style="background: rgb(242, 242, 242); --darkreader-inline-bgimage: initial; --darkreader-inline-bgcolor: #1f2223;">'''<span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Consolas">UART5_RTS K58 GPIO3_PX.06 gpio-468 (PX.06)</span></span>'''</span>
<span data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="" style="background: rgb(242, 242, 242); --darkreader-inline-bgimage: initial; --darkreader-inline-bgcolor: #1f2223;"><b><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Consolas">UART2_RTS G58 GPIO3_PY.07 gpio-477 (PY.07)</span></span></b></span><br />
 
<span data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="" style="background: rgb(242, 242, 242); --darkreader-inline-bgimage: initial; --darkreader-inline-bgcolor: #1f2223;"><b><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Consolas">UART4_RTS L4 GPIO3_PH.05 gpio-396 (PH.05)</span></span></b></span><br />
 
<span data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="" style="background: rgb(242, 242, 242); --darkreader-inline-bgimage: initial; --darkreader-inline-bgcolor: #1f2223;"><b><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Consolas">UART5_RTS K58 GPIO3_PX.06 gpio-468 (PX.06)</span></span></b></span></p>
 
  
<p><span style="font-size:11.0pt"><span style="font-family:">舉起每個</span></span><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Roboto">COM</span></span><span style="font-size:11.0pt"><span style="font-family:">的</span></span><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Roboto">RTS pin</span></span><span style="font-size:11.0pt"><span style="font-family:">的方式如下</span></span><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Roboto">(</span></span><span style="font-size:11.0pt"><span style="font-family:">以</span></span><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Roboto">UART1 RTS</span></span><span style="font-size:11.0pt"><span style="font-family:">來說</span></span><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Roboto">)</span></span></p>
+
<span style="font-size:11.0pt"><span style="font-family:">舉起每個</span></span><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Roboto">COM</span></span><span style="font-size:11.0pt"><span style="font-family:">的</span></span><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Roboto">RTS pin</span></span><span style="font-size:11.0pt"><span style="font-family:">的方式如下</span></span><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Roboto">(</span></span><span style="font-size:11.0pt"><span style="font-family:">以</span></span><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Roboto">UART1 RTS</span></span><span style="font-size:11.0pt"><span style="font-family:">來說</span></span><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Roboto">)</span></span>
  
<p><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Roboto">1.</span></span><span style="font-size:11.0pt"><span style="font-family:">權限</span></span></p>
+
<span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Roboto">1.</span></span><span style="font-size:11.0pt"><span style="font-family:">權限</span></span>
  
<p><span data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="" style="background: rgb(242, 242, 242); --darkreader-inline-bgimage: initial; --darkreader-inline-bgcolor: #1f2223;"><b><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Consolas">ubuntu@localhost:~$ sudo &ndash;s</span></span></b></span></p>
+
<span data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="" style="background: rgb(242, 242, 242); --darkreader-inline-bgimage: initial; --darkreader-inline-bgcolor: #1f2223;">'''<span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Consolas">ubuntu@localhost:~$ sudo –s</span></span>'''</span>
  
<p><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Roboto">2.</span></span><span style="font-size:11.0pt"><span style="font-family:">設定</span></span></p>
+
<span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Roboto">2.</span></span><span style="font-size:11.0pt"><span style="font-family:">設定</span></span>
  
<p><span data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="" style="background: rgb(242, 242, 242); --darkreader-inline-bgimage: initial; --darkreader-inline-bgcolor: #1f2223;"><b><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Consolas">root@localhost:/home/ubuntu# echo <span data-darkreader-inline-color="" style="color: rgb(192, 0, 0); --darkreader-inline-color: #ff4646;">460 </span>&gt; /sys/class/gpio/export</span></span></b></span><br />
+
<span data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="" style="background: rgb(242, 242, 242); --darkreader-inline-bgimage: initial; --darkreader-inline-bgcolor: #1f2223;">'''<span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Consolas">root@localhost:/home/ubuntu# echo <span data-darkreader-inline-color="" style="color: rgb(192, 0, 0); --darkreader-inline-color: #ff4646;">460 </span>> /sys/class/gpio/export</span></span>'''</span><br/> <span data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="" style="background: rgb(242, 242, 242); --darkreader-inline-bgimage: initial; --darkreader-inline-bgcolor: #1f2223;">'''<span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Consolas">root@localhost:/home/ubuntu# ls /sys/class/gpio/</span></span>'''</span><br/> <span data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="" style="background: rgb(242, 242, 242); --darkreader-inline-bgimage: initial; --darkreader-inline-bgcolor: #1f2223;">'''<span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Consolas">export gpiochip300 gpiochip316 gpiochip348 <span data-darkreader-inline-color="" style="color: red; --darkreader-inline-color: #ff1a1a;">PR.04</span> unexport</span></span>'''</span><br/> <span data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="" style="background: rgb(242, 242, 242); --darkreader-inline-bgimage: initial; --darkreader-inline-bgcolor: #1f2223;">'''<span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Consolas">root@localhost:/home/ubuntu# echo out > /sys/class/gpio/<span data-darkreader-inline-color="" style="color: red; --darkreader-inline-color: #ff1a1a;">PR.04</span>/direction</span></span>'''</span><br/> <span data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="" style="background: rgb(242, 242, 242); --darkreader-inline-bgimage: initial; --darkreader-inline-bgcolor: #1f2223;">'''<span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Consolas">root@localhost:/home/ubuntu# echo 1 > /sys/class/gpio/<span data-darkreader-inline-color="" style="color: red; --darkreader-inline-color: #ff1a1a;">PR.04</span>/value</span></span>'''</span>
<span data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="" style="background: rgb(242, 242, 242); --darkreader-inline-bgimage: initial; --darkreader-inline-bgcolor: #1f2223;"><b><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Consolas">root@localhost:/home/ubuntu# ls /sys/class/gpio/</span></span></b></span><br />
 
<span data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="" style="background: rgb(242, 242, 242); --darkreader-inline-bgimage: initial; --darkreader-inline-bgcolor: #1f2223;"><b><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Consolas">export gpiochip300 gpiochip316 gpiochip348 <span data-darkreader-inline-color="" style="color: red; --darkreader-inline-color: #ff1a1a;">PR.04</span> unexport</span></span></b></span><br />
 
<span data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="" style="background: rgb(242, 242, 242); --darkreader-inline-bgimage: initial; --darkreader-inline-bgcolor: #1f2223;"><b><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Consolas">root@localhost:/home/ubuntu# echo out &gt; /sys/class/gpio/<span data-darkreader-inline-color="" style="color: red; --darkreader-inline-color: #ff1a1a;">PR.04</span>/direction</span></span></b></span><br />
 
<span data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="" style="background: rgb(242, 242, 242); --darkreader-inline-bgimage: initial; --darkreader-inline-bgcolor: #1f2223;"><b><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Consolas">root@localhost:/home/ubuntu# echo 1 &gt; /sys/class/gpio/<span data-darkreader-inline-color="" style="color: red; --darkreader-inline-color: #ff1a1a;">PR.04</span>/value</span></span></b></span></p>
 
  
<p><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Roboto">3.</span></span><span style="font-size:11.0pt"><span style="font-family:">驗證</span></span></p>
+
<span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Roboto">3.</span></span><span style="font-size:11.0pt"><span style="font-family:">驗證</span></span>
  
<p><span data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="" style="background: rgb(242, 242, 242); --darkreader-inline-bgimage: initial; --darkreader-inline-bgcolor: #1f2223;"><b><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Consolas">root@localhost:/home/ubuntu# cat /sys/kernel/debug/gpio | grep <span data-darkreader-inline-color="" style="color: red; --darkreader-inline-color: #ff1a1a;">PR.04</span></span></span></b></span><br />
+
<span data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="" style="background: rgb(242, 242, 242); --darkreader-inline-bgimage: initial; --darkreader-inline-bgcolor: #1f2223;">'''<span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Consolas">root@localhost:/home/ubuntu# cat /sys/kernel/debug/gpio | grep <span data-darkreader-inline-color="" style="color: red; --darkreader-inline-color: #ff1a1a;">PR.04</span></span></span>'''</span><br/> <span data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="" style="background: rgb(242, 242, 242); --darkreader-inline-bgimage: initial; --darkreader-inline-bgcolor: #1f2223;">'''<span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Consolas">gpio-460 (PR.04 |sysfs ) out hi</span></span>'''</span>
<span data-darkreader-inline-bgcolor="" data-darkreader-inline-bgimage="" style="background: rgb(242, 242, 242); --darkreader-inline-bgimage: initial; --darkreader-inline-bgcolor: #1f2223;"><b><span lang="EN-US" style="font-size:11.0pt"><span style="font-family:Consolas">gpio-460 (PR.04 |sysfs ) out hi</span></span></b></span></p>
 
  
<h4><b>Audio</b></h4>
+
==== '''Audio''' ====
  
<p>HDMI output</p>
+
HDMI output
 
+
<pre>$ aplay -D hw:0,3 &lt;WAV file&gt;
<pre>
 
$ aplay -D hw:0,3 &lt;WAV file&gt;
 
 
</pre>
 
</pre>
  
<p>Line-Out</p>
+
Line-Out
 
+
<pre>$ aplay -D hw:1,0 &lt;WAV file&gt;
<pre>
 
$ aplay -D hw:1,0 &lt;WAV file&gt;
 
 
</pre>
 
</pre>
  
<h4><b>FAN</b></h4>
+
==== '''FAN''' ====
  
<p><img _fck_mw_filename="Air030 fan.jpg" _fck_mw_origimgheight="2048" _fck_mw_origimgwidth="1537" alt="File:Air030_fan.jpg" src="/wiki/images/4/42/Air030_fan.jpg" style="vertical-align:middle;" title="File:Air030_fan.jpg" width="400" /></p>
+
[[File:Air030 fan.jpg|400px|Air030 fan.jpg]]
  
<p>Change PWM value ${PWM} from 1 ~ 255.</p>
+
Change PWM value ${PWM} from 1 ~ 255.
 
+
<pre>ubuntu@localhost:~$ sudo -s
<pre>
 
ubuntu@localhost:~$ sudo -s
 
 
For R35.1.0
 
For R35.1.0
 
root@localhost:/home/ubuntu# echo ${PWM} &gt; /sys/class/hwmon/hwmon3/pwm1
 
root@localhost:/home/ubuntu# echo ${PWM} &gt; /sys/class/hwmon/hwmon3/pwm1
Line 363: Line 264:
 
</pre>
 
</pre>
  
<p>Before test this item, please disable fan-control service.(Only for R35.1.0)</p>
+
Before test this item, please disable fan-control service.(Only for R35.1.0)
 
+
<pre>$ sudo systemctl disable nvfancontrol.service
<pre>
 
$ sudo systemctl disable nvfancontrol.service
 
 
$ sudo systemctl stop nvfancontrol
 
$ sudo systemctl stop nvfancontrol
 
</pre>
 
</pre>
  
<p><a alt="https://docs.nvidia.com/jetson/archives/r35.1/DeveloperGuide/text/SD/PlatformPowerAndPerformance/JetsonOrinNxSeriesAndJetsonAgxOrinSeries.html#fan-profile-control" href="https://docs.nvidia.com/jetson/archives/r35.1/DeveloperGuide/text/SD/PlatformPowerAndPerformance/JetsonOrinNxSeriesAndJetsonAgxOrinSeries.html#fan-profile-control" title="https://docs.nvidia.com/jetson/archives/r35.1/DeveloperGuide/text/SD/PlatformPowerAndPerformance/JetsonOrinNxSeriesAndJetsonAgxOrinSeries.html#fan-profile-control">nVidia:fan-profile-control</a></p>
+
[https://docs.nvidia.com/jetson/archives/r35.1/DeveloperGuide/text/SD/PlatformPowerAndPerformance/JetsonOrinNxSeriesAndJetsonAgxOrinSeries.html#fan-profile-control nVidia:fan-profile-control]
  
<h4><b>CAN</b></h4>
+
==== '''CAN''' ====
  
<p><img _fck_mw_filename="Air030 can.jpg" _fck_mw_origimgheight="1808" _fck_mw_origimgwidth="1537" alt="File:Air030_can.jpg" src="/wiki/images/0/01/Air030_can.jpg" style="vertical-align:middle;" title="File:Air030_can.jpg" width="400" /> <img _fck_mw_filename="030CAN.png" _fck_mw_origimgheight="320" _fck_mw_origimgwidth="263" alt="030CAN.png" src="/wiki/images/4/40/030CAN.png" style="vertical-align:middle;" title="030CAN.png" width="200" /><br />
+
[[File:Air030 can.jpg|400px|Air030 can.jpg]]
<img _fck_mw_filename="CAN LoopbackTest.jpg" _fck_mw_origimgheight="800" _fck_mw_origimgwidth="600" alt="CAN LoopbackTest.png" src="/wiki/images/5/5d/CAN_LoopbackTest.jpg" style="vertical-align:middle;" title="CAN LoopbackTest.png" width="400" /></p>
 
  
<pre>
+
[[File:030CAN.png|400px|030CAN.png]]<br/> [[File:CAN LoopbackTest.jpg|400px|CAN LoopbackTest.jpg]]
$ modprobe can
+
<pre>$ modprobe can
 
$ modprobe can-dev
 
$ modprobe can-dev
 
$ modprobe mttcan
 
$ modprobe mttcan
Line 387: Line 285:
 
</pre>
 
</pre>
  
<p>In other terminal, run below command</p>
+
In other terminal, run below command
 
+
<pre>$ candump can1
<pre>
 
$ candump can1
 
 
</pre>
 
</pre>
  
<p>then run</p>
+
then run
 
+
<pre>$ cansend can0 123#abcdabcd
<pre>
 
$ cansend can0 123#abcdabcd
 
 
</pre>
 
</pre>
  
<h4><b>USB</b></h4>
+
==== '''USB''' ====
  
<p>To test U-Disk read speed</p>
+
To test U-Disk read speed
 
+
<pre>$ sudo -s
<pre>
 
$ sudo -s
 
 
# fio --ioengine=libaio --prio=0 --numjobs=1 --direct=1 --iodepth=32 --runtime=&lt;runtime&gt; --bwavgtime=5000 --time_based --rw=read --bs=128k --group_reporting --name=&lt;device_path&gt;
 
# fio --ioengine=libaio --prio=0 --numjobs=1 --direct=1 --iodepth=32 --runtime=&lt;runtime&gt; --bwavgtime=5000 --time_based --rw=read --bs=128k --group_reporting --name=&lt;device_path&gt;
 
</pre>
 
</pre>
  
<p>Where:<br />
+
Where:<br/> <runtime>&nbsp;: how long the test time (ms), ex&nbsp;: 30 second&nbsp;:&nbsp;&nbsp;--runtime=30000<br/> <device_path>&nbsp;: ex: --name=/dev/sda1
&lt;runtime&gt;&nbsp;: how long the test time (ms), ex&nbsp;: 30 second&nbsp;:&nbsp;&nbsp;--runtime=30000<br />
 
&lt;device_path&gt;&nbsp;: ex: --name=/dev/sda1</p>
 
 
 
<h4><b>Camera</b></h4>
 
 
 
<p><img _fck_mw_filename="Air030 camera imx219.jpg" _fck_mw_origimgheight="1199" _fck_mw_origimgwidth="1498" alt="File:Air030_camera_imx219.jpg" src="/wiki/images/f/f6/Air030_camera_imx219.jpg" style="vertical-align:middle;" title="File:Air030_camera_imx219.jpg" width="400" /></p>
 
 
 
<p>The imx219 mode:<br />
 
Size: Discrete 3280x2464 Interval: Discrete 0.048s (21.000 fps)<br />
 
Size: Discrete 3280x1848 Interval: Discrete 0.036s (28.000 fps)<br />
 
Size: Discrete 1920x1080 Interval: Discrete 0.033s (30.000 fps)<br />
 
Size: Discrete 1640x1232 Interval: Discrete 0.033s (30.000 fps)<br />
 
Size: Discrete 1280x720 Interval: Discrete 0.017s (60.000 fps)<br />
 
<br />
 
Preview command:<br />
 
3280x2464</p>
 
 
 
<pre>
 
$ gst-launch-1.0 nvarguscamerasrc&amp;nbsp;! &#39;video/x-raw(memory:NVMM), width=3280, height=2464, format=NV12, framerate=21/1&#39;&amp;nbsp;! nv3dsink</pre>
 
  
<p>3280x1848</p>
+
==== '''Camera''' ====
  
<pre>
+
<img _fck_mw_filename="Air030 camera imx219.jpg" _fck_mw_origimgheight="1199" _fck_mw_origimgwidth="1498" alt="File:Air030_camera_imx219.jpg" src="/wiki/images/f/f6/Air030_camera_imx219.jpg" style="vertical-align:middle;" title="File:Air030_camera_imx219.jpg" width="400" />
$ gst-launch-1.0 nvarguscamerasrc&amp;nbsp;! &#39;video/x-raw(memory:NVMM), width=3280, height=1848, format=NV12, framerate=28/1&#39;&amp;nbsp;! nv3dsink</pre>
 
  
<p>1920x1080</p>
+
The imx219 mode:<br/> Size: Discrete 3280x2464 Interval: Discrete 0.048s (21.000 fps)<br/> Size: Discrete 3280x1848 Interval: Discrete 0.036s (28.000 fps)<br/> Size: Discrete 1920x1080 Interval: Discrete 0.033s (30.000 fps)<br/> Size: Discrete 1640x1232 Interval: Discrete 0.033s (30.000 fps)<br/> Size: Discrete 1280x720 Interval: Discrete 0.017s (60.000 fps)<br/> <br/> Preview command:<br/> 3280x2464
 +
<pre>$ gst-launch-1.0 nvarguscamerasrc&amp;nbsp;! &#39;video/x-raw(memory:NVMM), width=3280, height=2464, format=NV12, framerate=21/1&#39;&amp;nbsp;! nv3dsink</pre>
  
<pre>
+
3280x1848
$ gst-launch-1.0 nvarguscamerasrc&amp;nbsp;! &#39;video/x-raw(memory:NVMM), width=1920, height=1080, format=NV12, framerate=29/1&#39;&amp;nbsp;! nv3dsink</pre>
+
<pre>$ gst-launch-1.0 nvarguscamerasrc&amp;nbsp;! &#39;video/x-raw(memory:NVMM), width=3280, height=1848, format=NV12, framerate=28/1&#39;&amp;nbsp;! nv3dsink</pre>
  
<p>1640x1232</p>
+
1920x1080
 +
<pre>$ gst-launch-1.0 nvarguscamerasrc&amp;nbsp;! &#39;video/x-raw(memory:NVMM), width=1920, height=1080, format=NV12, framerate=29/1&#39;&amp;nbsp;! nv3dsink</pre>
  
<pre>
+
1640x1232
$ gst-launch-1.0 nvarguscamerasrc&amp;nbsp;! &#39;video/x-raw(memory:NVMM), width=1640, height=1232, format=NV12, framerate=29/1&#39;&amp;nbsp;! nv3dsink</pre>
+
<pre>$ gst-launch-1.0 nvarguscamerasrc&amp;nbsp;! &#39;video/x-raw(memory:NVMM), width=1640, height=1232, format=NV12, framerate=29/1&#39;&amp;nbsp;! nv3dsink</pre>
  
<p>1280x720</p>
+
1280x720
 +
<pre>$ gst-launch-1.0 nvarguscamerasrc&amp;nbsp;! &#39;video/x-raw(memory:NVMM), width=1280, height=720, format=NV12, framerate=59/1&#39;&amp;nbsp;! nv3dsink</pre>
  
<pre>
+
Capture Image (for JP6&nbsp;: No nv3dsink gstreamer element, fixed by installing package nvidia-l4t-gstreamer)
$ gst-launch-1.0 nvarguscamerasrc&amp;nbsp;! &#39;video/x-raw(memory:NVMM), width=1280, height=720, format=NV12, framerate=59/1&#39;&amp;nbsp;! nv3dsink</pre>
+
<pre>$ nvargus_nvraw --c 0 --mode 0 --file /home/ubuntu/sample.jpg --format &quot;yuv, jpg&quot;
 
 
<p>Capture Image (for JP6&nbsp;: No nv3dsink gstreamer element, fixed by installing package nvidia-l4t-gstreamer)</p>
 
 
 
<pre>
 
$ nvargus_nvraw --c 0 --mode 0 --file /home/ubuntu/sample.jpg --format &quot;yuv, jpg&quot;
 
 
</pre>
 
</pre>
  
<h3><b>Power Mode</b></h3>
+
=== '''Power Mode''' ===
  
<p><a alt="https://docs.nvidia.com/jetson/archives/r34.1/DeveloperGuide/text/SD/PlatformPowerAndPerformance/JetsonOrinNxSeriesAndJetsonAgxOrinSeries.html#supported-modes-and-power-efficiency" href="https://docs.nvidia.com/jetson/archives/r34.1/DeveloperGuide/text/SD/PlatformPowerAndPerformance/JetsonOrinNxSeriesAndJetsonAgxOrinSeries.html#supported-modes-and-power-efficiency" title="https://docs.nvidia.com/jetson/archives/r34.1/DeveloperGuide/text/SD/PlatformPowerAndPerformance/JetsonOrinNxSeriesAndJetsonAgxOrinSeries.html#supported-modes-and-power-efficiency">Supported-modes-and-power-efficiency</a></p>
+
[https://docs.nvidia.com/jetson/archives/r34.1/DeveloperGuide/text/SD/PlatformPowerAndPerformance/JetsonOrinNxSeriesAndJetsonAgxOrinSeries.html#supported-modes-and-power-efficiency Supported-modes-and-power-efficiency]
  
<h3>Flash Mac</h3>
+
'''Flash Mac'''
  
<p><a alt="https://advantecho365-my.sharepoint.com/:u:/g/personal/jack501_chen_advantech_com/EczfhEigBcxIsAWt80o7iZkBH1EbUMTo7jQeX94DbJovsw?e=PPEyJU" href="https://advantecho365-my.sharepoint.com/:u:/g/personal/jack501_chen_advantech_com/EczfhEigBcxIsAWt80o7iZkBH1EbUMTo7jQeX94DbJovsw?e=PPEyJU" title="https://advantecho365-my.sharepoint.com/:u:/g/personal/jack501_chen_advantech_com/EczfhEigBcxIsAWt80o7iZkBH1EbUMTo7jQeX94DbJovsw?e=PPEyJU">I225 Flash Tool</a><br />
+
[https://advantecho365-my.sharepoint.com/:u:/g/personal/jack501_chen_advantech_com/EczfhEigBcxIsAWt80o7iZkBH1EbUMTo7jQeX94DbJovsw?e=PPEyJU I225 Flash Tool]
Copy and extract I225_Flash_Tool.zip in the device.</p>
 
  
<pre>
+
Copy and extract I225_Flash_Tool.zip in the device.
ubuntu@localhost:~$ unzip I225_Flash_Tool.zip
+
<pre>ubuntu@localhost:~$ unzip I225_Flash_Tool.zip
 
</pre>
 
</pre>
  
<p>Chanage the tool execution permission.</p>
+
Chanage the tool execution permission.
 
+
<pre>&lt;pre&gt;ubuntu@localhost:~$ sudo chmod a+x ./EepromAccessTool
<pre>
 
&lt;pre&gt;ubuntu@localhost:~$ sudo chmod a+x ./EepromAccessTool
 
 
</pre>
 
</pre>
  
<p>Check All Intel-226 Module in PCI bus, The BDF(bus number/device number/function number) value will be first column.</p>
+
Check All Intel-226 Module in PCI bus, The BDF(bus number/device number/function number) value will be first column.
 
+
<pre>ubuntu@localhost:~$ lspci
<pre>
 
ubuntu@localhost:~$ lspci
 
 
0004:00:00.0 PCI bridge: NVIDIA Corporation Device 229c (rev a1)
 
0004:00:00.0 PCI bridge: NVIDIA Corporation Device 229c (rev a1)
 
0004:01:00.0 PCI bridge: ASMedia Technology Inc. Device 2806 (rev 01)
 
0004:01:00.0 PCI bridge: ASMedia Technology Inc. Device 2806 (rev 01)
Line 487: Line 352:
 
</pre>
 
</pre>
  
<p>Check NIC value with EepromAccessTool tool.</p>
+
Check NIC value with EepromAccessTool tool.
 
+
<pre>ubuntu@localhost:~$ ./EepromAccessTool
<pre>
 
ubuntu@localhost:~$ ./EepromAccessTool
 
 
Intel(R) EEPROM Access Tool NVM/OTP Programming Example Tool  Version 0.8.0
 
Intel(R) EEPROM Access Tool NVM/OTP Programming Example Tool  Version 0.8.0
 
Provided under the terms of a CNDA.  Do Not Distribute.
 
Provided under the terms of a CNDA.  Do Not Distribute.
Line 502: Line 365:
 
</pre>
 
</pre>
  
<p>Flash Mac Address To get <span data-darkreader-inline-color="" style="color: rgb(0, 112, 192); --darkreader-inline-color: #46b2ff;"><b>-nic</b></span> value and <span data-darkreader-inline-color="" style="color: rgb(0, 112, 192); --darkreader-inline-color: #46b2ff;"><b>BDF</b></span> value please using above method.<br />
+
Flash Mac Address To get <span data-darkreader-inline-color="" style="color: rgb(0, 112, 192); --darkreader-inline-color: #46b2ff;">'''-nic'''</span> value and <span data-darkreader-inline-color="" style="color: rgb(0, 112, 192); --darkreader-inline-color: #46b2ff;">'''BDF'''</span> value please using above method.<br/> ex&nbsp;:&nbsp;0004:05:00.0 = domain 4 bus 5 device 0 function 0<br/> BUS 5 > NIC = 2
ex&nbsp;:&nbsp;0004:05:00.0 = domain 4 bus 5 device 0 function 0<br />
+
<pre>$ sudo -s
BUS 5 &gt; NIC = 2</p>
 
 
 
<pre>
 
$ sudo -s
 
 
# setpci -s 0004:04:00.0 COMMAND=0007
 
# setpci -s 0004:04:00.0 COMMAND=0007
 
# ./EepromAccessTool -nic=1 -f=FXVL_15F2_LM_2MB_ARK_1.82_D.bin -mac=D4E5F6123456
 
# ./EepromAccessTool -nic=1 -f=FXVL_15F2_LM_2MB_ARK_1.82_D.bin -mac=D4E5F6123456
 
</pre>
 
</pre>
  
<p>The other Intel-I226</p>
+
The other Intel-I226
 
+
<pre>#setpci -s 0004:05:00.0 COMMAND=0007  
<pre>
 
#setpci -s 0004:05:00.0 COMMAND=0007  
 
 
#./EepromAccessTool -nic=2 -f=FXVL_15F2_LM_2MB_ARK_1.82_D.bin -mac=D4E5F6123457  
 
#./EepromAccessTool -nic=2 -f=FXVL_15F2_LM_2MB_ARK_1.82_D.bin -mac=D4E5F6123457  
 
</pre>
 
</pre>
  
<p><span data-darkreader-inline-color="" style="color: rgb(0, 112, 192); --darkreader-inline-color: #46b2ff;"><b>Please do cold reboot after flash mac address.</b></span></p>
+
<span data-darkreader-inline-color="" style="color: rgb(0, 112, 192); --darkreader-inline-color: #46b2ff;">'''Please do cold reboot after flash mac address.'''</span>
  
<p>How to check whether the flash proccess is success or not</p>
+
How to check whether the flash proccess is success or not
  
<ul>
+
*<s>lspci command - If it is 0x125<span data-darkreader-inline-color="" style="color: rgb(255, 0, 0); --darkreader-inline-color: #ff1a1a;">'''f'''</span> value, it failed.</s>  
<li><s>lspci command - If it is 0x125<span data-darkreader-inline-color="" style="color: rgb(255, 0, 0); --darkreader-inline-color: #ff1a1a;"><b>f</b></span> value, it failed.</s></li>
+
*ifconfig -a - Check the nerwork interface is available. ex: eth0, eth1 and so on.  
<li>ifconfig -a - Check the nerwork interface is available. ex: eth0, eth1 and so on.</li>
 
</ul>
 
  
<h3>Boot On Off</h3>
 
  
<p>The boot count message will be printed before log-in.<br />
+
=== Boot On Off ===
<img _fck_mw_filename="Air030 bootcount.jpg" _fck_mw_origimgheight="104" _fck_mw_origimgwidth="488" alt="Air030 bootcount.jpg" src="/wiki/images/4/40/Air030_bootcount.jpg" style="vertical-align:middle;" title="Air030 bootcount.jpg" width="200" /><br />
 
Reset the boot count please remove <font color="#0070c0" data-darkreader-inline-color="" style="--darkreader-inline-color: #46b2ff;"><b>bootCount.tt</b></font>.</p>
 
  
<pre>
+
The boot count message will be printed before log-in.<br/> [[File:Air030 bootcount.jpg|200px]]<br/> Reset the boot count please remove <font color="#0070c0" data-darkreader-inline-color="" style="--darkreader-inline-color: #46b2ff;">'''bootCount.tt'''</font>.
$ rm bootCount.tt
+
<pre>$ rm bootCount.tt
 
</pre>
 
</pre>
  
<h3>THERMAL / EMI Burning</h3>
+
=== THERMAL / EMI Burning ===
  
<p>Install prerequisite packages</p>
+
Install prerequisite packages
 +
<pre>$ sudo apt install --yes nvidia-jetpack
 +
</pre>
  
<pre>
+
pva engine
$ sudo apt install --yes nvidia-jetpack
+
<pre>/opt/nvidia/vpi2/samples/05-benchmark/vpi_sample_05_benchmark
 
</pre>
 
</pre>
  
<p>pva engine</p>
+
GPU<br/> matrixMul (Depreciated)
 
+
<pre>/usr/local/cuda-11.4/samples/0_Simple/matrixMul/
<pre>
 
/opt/nvidia/vpi2/samples/05-benchmark/vpi_sample_05_benchmark
 
 
</pre>
 
</pre>
  
<p>GPU<br />
+
More power consumption version (nVidia suggestion + <a href=":File%3AAir030-half-matrixMulCUBLAS.patch">0001-half-matrixMulCUBLAS.patch</a>)<br/> matrixMulCUBLAS
matrixMul (Depreciated)</p>
+
<pre>/usr/local/cuda-11.4/samples/0_Simple/matrixMulCUBLAS/
 
 
<pre>
 
/usr/local/cuda-11.4/samples/0_Simple/matrixMul/
 
 
</pre>
 
</pre>
  
<p>More power consumption version (nVidia suggestion + <a href=":File%3AAir030-half-matrixMulCUBLAS.patch">0001-half-matrixMulCUBLAS.patch</a>)<br />
+
emc&nbsp; engine
matrixMulCUBLAS</p>
+
<pre>sudo apt install mbw
 
 
<pre>
 
/usr/local/cuda-11.4/samples/0_Simple/matrixMulCUBLAS/
 
 
</pre>
 
</pre>
  
<p>emc&nbsp; engine</p>
+
cpu
 
+
<pre>sudo apt install stress
<pre>
 
sudo apt install mbw
 
 
</pre>
 
</pre>
  
<p>cpu</p>
+
dla0 dla1&nbsp; engine
 
+
<pre>/usr/src/tensorrt/bin/trtexec
<pre>
 
sudo apt install stress
 
 
</pre>
 
</pre>
  
<p>dla0 dla1&nbsp; engine</p>
+
nvenc engine - USB camera
 
+
<pre>$ gst-launch-1.0  v4l2src device=/dev/video0&amp;nbsp;! &#39;video/x-raw,width=1280,height=720&#39;&amp;nbsp;! nvvidconv&amp;nbsp;! &#39;video/x-raw(memory:NVMM)&#39;&amp;nbsp;! nvvidconv&amp;nbsp;! &#39;video/x-raw(memory:NVMM)&#39;&amp;nbsp;! nvv4l2h264enc&amp;nbsp;! fakesink
<pre>
 
/usr/src/tensorrt/bin/trtexec
 
 
</pre>
 
</pre>
  
<p>nvenc engine - USB camera</p>
+
nvdec engine - play 4K H264 video
 
+
<pre>gst-launch-1.0 filesrc location=/usr/local/bin/4k264.mp4&amp;nbsp;! qtdemux&amp;nbsp;! queue&amp;nbsp;! h264parse&amp;nbsp;! nvv4l2decoder&amp;nbsp;! &#39;video/x-raw(memory:NVMM), format=(string)NV12&#39;&amp;nbsp;! queue&amp;nbsp;! fakesink
<pre>
 
$ gst-launch-1.0 v4l2src device=/dev/video0&amp;nbsp;! &#39;video/x-raw,width=1280,height=720&#39;&amp;nbsp;! nvvidconv&amp;nbsp;! &#39;video/x-raw(memory:NVMM)&#39;&amp;nbsp;! nvvidconv&amp;nbsp;! &#39;video/x-raw(memory:NVMM)&#39;&amp;nbsp;! nvv4l2h264enc&amp;nbsp;! fakesink
 
 
</pre>
 
</pre>
  
<p>nvdec engine - play 4K H264 video</p>
+
ape&nbsp; engine
 
+
<pre>aplay -D hw:1,0 /usr/local/bin/1kHz.wav
<pre>
 
gst-launch-1.0 filesrc location=/usr/local/bin/4k264.mp4&amp;nbsp;! qtdemux&amp;nbsp;! queue&amp;nbsp;! h264parse&amp;nbsp;! nvv4l2decoder&amp;nbsp;! &#39;video/x-raw(memory:NVMM), format=(string)NV12&#39;&amp;nbsp;! queue&amp;nbsp;! fakesink
 
 
</pre>
 
</pre>
  
<p>ape&nbsp; engine</p>
+
== Module ==
  
<pre>
 
aplay -D hw:1,0 /usr/local/bin/1kHz.wav
 
</pre>
 
  
<h2>Module</h2>
+
=== '''AW-CB375NF(EWM-W159M201E)''' ===
  
<h3><b>AW-CB375NF(EWM-W159M201E)</b></h3>
+
[[File:Air030 awcb375nf.jpg|400px]]
  
<p><img _fck_mw_filename="Air030 awcb375nf.jpg" _fck_mw_origimgheight="1658" _fck_mw_origimgwidth="1302" alt="File:Air030_awcb375nf.jpg" src="/wiki/images/1/12/Air030_awcb375nf.jpg" style="vertical-align:middle;" title="File:Air030_awcb375nf.jpg" width="400" /> <img _fck_mw_filename="Air030 awcb375nf onboard.jpg" _fck_mw_origimgheight="2048" _fck_mw_origimgwidth="1537" alt="File:Air030_awcb375nf_onboard.jpg" src="/wiki/images/1/11/Air030_awcb375nf_onboard.jpg" style="vertical-align:middle;" title="File:Air030_awcb375nf_onboard.jpg" width="400" /></p>
+
[[File:Air030 awcb375nf onboard.jpg|400px]]
  
<p>Adjust dip switch</p>
+
Adjust dip switch
  
<ul>
+
*LAN3_MKE_SW1 - SW1&nbsp;: ON  
<li>LAN3_MKE_SW1 - SW1&nbsp;: ON</li>
+
*UART5_SW1 - SW1&nbsp;: OFF  
<li>UART5_SW1 - SW1&nbsp;: OFF</li>
 
</ul>
 
  
<p><img _fck_mw_filename="AIR030 LAN3 MKE SW1.jpg" _fck_mw_origimgheight="916" _fck_mw_origimgwidth="1632" alt="AIR030_LAN3_MKE_SW1.jpg" src="/wiki/images/5/5c/AIR030_LAN3_MKE_SW1.jpg" style="vertical-align:middle;" title="AIR030_LAN3_MKE_SW1.jpg" width="400" /> <img _fck_mw_filename="Air030 uart5 selection.jpg" _fck_mw_origimgheight="936" _fck_mw_origimgwidth="1756" alt="Air030_uart5_selection.jpg" src="/wiki/images/6/67/Air030_uart5_selection.jpg" style="vertical-align:middle;" title="Air030_uart5_selection.jpg" width="400" /></p>
+
[[File:AIR030 LAN3 MKE SW1.jpg|400px]]
  
<p><b>Wi-Fi</b><br />
+
[[File:Air030 uart5 selection.jpg|400px]]&nbsp;
Start interface</p>
 
  
<pre>
+
'''Wi-Fi'''<br/> Start interface
$ sudo ifconfig wlan0 up
+
<pre>$ sudo ifconfig wlan0 up
 
</pre>
 
</pre>
  
<p>$ Scan AP</p>
+
$ Scan AP
 
+
<pre>$ sudo iw dev wlan0 scan ap-force
<pre>
 
$ sudo iw dev wlan0 scan ap-force
 
 
</pre>
 
</pre>
  
<p><b>Bluetooth</b></p>
+
'''Bluetooth'''
 
+
<pre>$ bluetoothctl
<pre>
 
$ bluetoothctl
 
 
[bluetooth]# agent on
 
[bluetooth]# agent on
 
[bluetooth]# scan on
 
[bluetooth]# scan on
 
</pre>
 
</pre>
  
<h3><b>AW-CB511NF</b></h3>
+
=== '''AW-CB511NF''' ===
  
<p>Adjust dip switch</p>
+
Adjust dip switch
  
<ul>
+
*LAN3_MKE_SW1 - SW1&nbsp;: ON  
<li>LAN3_MKE_SW1 - SW1&nbsp;: ON</li>
+
*UART5_SW2 - SW1&nbsp;: OFF  
<li>UART5_SW2 - SW1&nbsp;: OFF</li>
 
</ul>
 
  
<p><b>Wi-Fi</b><br />
+
'''Wi-Fi'''<br/> Start interface
Start interface</p>
+
<pre>$ sudo ifconfig wlan0 up
 
 
<pre>
 
$ sudo ifconfig wlan0 up
 
 
</pre>
 
</pre>
  
<p>$ Scan AP</p>
+
$ Scan AP
 
+
<pre>$ sudo iw dev wlan0 scan ap-force
<pre>
 
$ sudo iw dev wlan0 scan ap-force
 
 
</pre>
 
</pre>
  
<p><b>Bluetooth</b></p>
+
'''Bluetooth'''
 
+
<pre>$ sudo -s
<pre>
 
$ sudo -s
 
 
# hciattach /dev/ttyTHS1 bcm43xx 3000000 flow -t 20
 
# hciattach /dev/ttyTHS1 bcm43xx 3000000 flow -t 20
 
# bluetoothctl
 
# bluetoothctl
Line 670: Line 487:
 
</pre>
 
</pre>
  
<h3><b>AIW-35x</b></h3>
 
  
<p><img _fck_mw_filename="Air030 aiw-356.jpg" _fck_mw_origimgheight="935" _fck_mw_origimgwidth="1529" alt="File:Air030_aiw-356.jpg" src="/wiki/images/b/b2/Air030_aiw-356.jpg" style="vertical-align:middle;" title="File:Air030_aiw-356.jpg" width="400" /> <img _fck_mw_filename="Air030 aiw-356 onboard.jpg" _fck_mw_origimgheight="2048" _fck_mw_origimgwidth="1537" alt="File:Air030_aiw-356_onboard.jpg" src="/wiki/images/7/73/Air030_aiw-356_onboard.jpg" style="vertical-align:middle;" title="File:Air030_aiw-356_onboard.jpg" width="400" /> <img _fck_mw_filename="Air030 uart5 selection.jpg" _fck_mw_origimgheight="936" _fck_mw_origimgwidth="1756" alt="Air030_uart5_selection.jpg" src="/wiki/images/6/67/Air030_uart5_selection.jpg" style="vertical-align:middle;" title="Air030_uart5_selection.jpg" width="400" /></p>
+
=== '''AIW-35x''' ===
 +
 
 +
[[File:Air030 aiw-356.jpg|400px]]
 +
 
 +
[[File:Air030 aiw-356 onboard.jpg|400px]]
  
<p>Check the module is available.</p>
+
[[File:Air030 uart5 selection.jpg|400px]]
  
<pre>
+
Check the module is available.
ubuntu@localhost:~$ lsusb
+
<pre>ubuntu@localhost:~$ lsusb
 
Bus 002 Device 002: ID 05e3:0625 Genesys Logic, Inc. USB3.2 Hub
 
Bus 002 Device 002: ID 05e3:0625 Genesys Logic, Inc. USB3.2 Hub
 
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
 
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
 
Bus 001 Device 006: ID 2cb7:0104
 
Bus 001 Device 006: ID 2cb7:0104
 
</pre>
 
</pre>
 
+
<pre>buntu@localhost:~$ ifconfig usb0
<pre>
 
buntu@localhost:~$ ifconfig usb0
 
 
         usb0: flags=4227&lt;UP,BROADCAST,NOARP,MULTICAST&gt; mtu 1500
 
         usb0: flags=4227&lt;UP,BROADCAST,NOARP,MULTICAST&gt; mtu 1500
 
         ether 00:33:34:37:35:33  txqueuelen 1000  (Ethernet)
 
         ether 00:33:34:37:35:33  txqueuelen 1000  (Ethernet)
Line 691: Line 509:
 
         TX packets 0  bytes 0 (0.0 B)
 
         TX packets 0  bytes 0 (0.0 B)
 
         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 +
</pre>
 +
<pre>ubuntu@localhost:~$ sudo dmesg | grep usb0
 +
[ 14.115707] GobiNet 1-3.4:1.4 usb0: register &#39;GobiNet&#39; at usb-3610000.xhci-3.4, GobiNet Ethernet Device, d2:77:82:0c:af:59
 
</pre>
 
</pre>
  
<pre>
+
Switch mode:
ubuntu@localhost:~$ sudo dmesg | grep usb0
+
<pre>$ sudo minicom -D /dev/ttyUSBx
[ 14.115707] GobiNet 1-3.4:1.4 usb0: register &#39;GobiNet&#39; at usb-3610000.xhci-3.4, GobiNet Ethernet Device, d2:77:82:0c:af:59
 
 
</pre>
 
</pre>
  
<p>Switch mode:</p>
+
ATcommand&nbsp;: at+gtusbmode=32<br/> 30&nbsp;: mbim<br/> 32&nbsp;: rmnet(gobinet)
  
<pre>
 
$ sudo minicom -D /dev/ttyUSBx
 
</pre>
 
  
<p>ATcommand&nbsp;: at+gtusbmode=32<br />
+
=== '''NVME''' ===
30&nbsp;: mbim<br />
+
 
32&nbsp;: rmnet(gobinet)</p>
+
[[File:Air030 nvme.jpg|400px]]
 +
 
 +
[[File:Air030 nvme onboard.jpg|400px]]
 +
 
 +
 
 +
=== '''PCIE-1672''' ===
 +
 
 +
[[File:Air030 pcie1672v.jpg|400px]]
 +
 
 +
 
 +
== Image ==
 +
 
 +
The test image is available [https://advantecho365-my.sharepoint.com/personal/jack501_chen_advantech_com/_layouts/15/onedrive.aspx?ga=1&id=/personal/jack501_chen_advantech_com/Documents/AIR-030/image HERE].
  
<h3><b>NVME</b></h3>
+
<u>The 1st and 2nd image is only available for AGX-ORIN devkit.</u>
  
<p><img _fck_mw_filename="Air030 nvme.jpg" _fck_mw_origimgheight="498" _fck_mw_origimgwidth="1610" alt="File:Air030_nvme.jpg" src="/wiki/images/a/ab/Air030_nvme.jpg" style="vertical-align:middle;" title="File:Air030_nvme.jpg" width="400" /> <img _fck_mw_filename="Air030 nvme onboard.jpg" _fck_mw_origimgheight="2048" _fck_mw_origimgwidth="1537" alt="File:Air030_nvme_onboard.jpg" src="/wiki/images/2/2f/Air030_nvme_onboard.jpg" style="vertical-align:middle;" title="File:Air030_nvme_onboard.jpg" width="400" /></p>
+
{| border="1" cellpadding="1" cellspacing="1" style="width: 800px;"
 +
|-
 +
| <tbody>
 +
|-
 +
! scope="row" | &nbsp;
 +
! data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" scope="col" style="width: 30px; background-color: rgb(80, 80, 80); color: rgb(255, 255, 255); --darkreader-inline-bgcolor: #3c4144; --darkreader-inline-color: #e8e6e3;" | Image
 +
! data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" scope="col" style="width: 438px; background-color: rgb(80, 80, 80); color: rgb(255, 255, 255); --darkreader-inline-bgcolor: #3c4144; --darkreader-inline-color: #e8e6e3;" | Release Note
 +
|-
 +
! scope="row" | 1
 +
| style="width: 300px;" | air030_image_20221006.tar.gz
 +
| style="width: 1138px;" | The first boot up image verified on AGX-ORIN Devkit.
 +
|-
 +
! scope="row" | 2
 +
| style="width: 300px;" | air030_image_20221006_bootonoff.tar.gz
 +
| style="width: 1138px;" | Based on air030_image_20221006.tar.gz added boot on off feature (The system will power off after 40 seconnds)
 +
|-
 +
! scope="row" | 3
 +
| style="width: 300px;" | air030_image_20221020_burning_test.tar.gz
 +
| style="width: 1138px;" | For power/thermal/SI power sequence used<br/> <a href=":File%3AAIR-030%20Burning%20Test.pdf">Burning Testing SOP</a>
 +
|-
 +
! scope="row" | 4
 +
| style="width: 300px;" | air030_image_20221110.tar.gz
 +
| style="width: 1138px;" | &nbsp;
 +
|-
 +
! scope="row" | 5
 +
| style="width: 300px;" | air030_image_20221110_burning.tar.gz
 +
| style="width: 1138px;" | For Power/Thermal/EMI test using.
 +
|-
 +
! scope="row" | 6
 +
| style="width: 300px;" | air030_image_20221123.tar.gz
 +
| style="width: 1138px;" | fix HDMI hotplug in HD (4K:TBD)
 +
|-
 +
! scope="row" | 7
 +
| style="width: 300px;" | air030_image_20221128_dqatest.tar
 +
| style="width: 1138px;" | For DQA & QA using<br/> <a href=":File%3AAIR-030%20QA%20Test.pdf">QA Testing SOP</a>
 +
|-
 +
! scope="row" | 8
 +
| style="width: 300px;" | air030_image_20221201_poweronoff_at_mode.tar.gz
 +
| style="width: 1138px;" | Power On OFF test with AT mode + BOOT count
 +
|-
 +
! scope="row" | 9
 +
| style="width: 300px;" | air030_image_20221201_poweronoff_atx_mode.tar.gz
 +
| style="width: 1138px;" | Power On OFF test with ATX mode + BOOT count
 +
|-
 +
! scope="row" | 10
 +
| style="width: 300px;" | air030_image_20221216.tar.gz
 +
| style="width: 1138px;" | fix:
 +
1).Date and Time 的時間只要reboot 後就會又回到 April 21.<br/> 2).QA - USB3.2 port 1/2 speed 及 Type C port performance 太低, 約 40MB/s<br/> 3).開機後第1次接(或接著disk開機), OS的左側工作列看得到disk符號(lsblk也看得到), 熱插拔後再接上 OS 左側工作列看不到disk(lsblk也看不到), 試過兩台type c USB disk(Sandisk and Seagate) 一樣問題. 4).USB3.2 port1/2接 Sandisk USB3.2 gen2 x1 500G disk (E80)熱插拔後認不到, 接Seagate USB3.2 gen2x2 500G disk完全偵測不到(reboot 也沒用).
  
<h3><b>PCIE-1672</b></h3>
+
|-
 +
! scope="row" | 11
 +
| style="width: 300px;" | air030_image_20221226.tar.gz
 +
| style="width: 1138px;" | Added HDMI hotplug patch.<br/> Added EWM-W159 outbox driver.
 +
|-
 +
! scope="row" | 12
 +
| style="width: 300px;" | air030_image_20221229.tar.gz
 +
| style="width: 1138px;" | Modify dp_aux pinmux for HDMI.
 +
|-
 +
! scope="row" | 13
 +
| style="width: 300px;" | <s>air030_image_20230204_factory_test.tar</s>
 +
| style="width: 1138px;" | For factory test used.<br/> <a href=":File%3AAir030%20factory%20test.pdf">Air030_factory_test.pdf</a>
 +
|-
 +
! scope="row" | 14
 +
| style="width: 300px;" | air030_image_20230220_factory_test.tar
 +
| style="width: 1138px;" | For factory test used.
 +
Add flash/read mac address, rtc time, watchdog <a href=":File%3AAir030%20factory%20test%2020230217.pdf">Air030_factory_test_20230217.pdf</a>
  
<p><img _fck_mw_filename="Air030 pcie1672v.jpg" _fck_mw_origimgheight="1117" _fck_mw_origimgwidth="2048" alt="File:Air030_pcie1672v.jpg" src="/wiki/images/e/ee/Air030_pcie1672v.jpg" style="vertical-align:middle;" title="File:Air030_pcie1672v.jpg" width="400" /></p>
+
|-
 +
! scope="row" | 15
 +
| style="width: 300px;" | air030_image_20230303_dqatest.tar.gz
 +
| style="width: 1138px;" | &nbsp;
 +
|-
 +
! scope="row" | 16
 +
| style="width: 300px;" | air030_image_20230307_burning.tar.gz
 +
| style="width: 1138px;" | For SE / PV using.
 +
|-
 +
! scope="row" | 17
 +
| style="width: 300px;" | air030_image_20220324_dqatest.tar.gz
 +
| style="width: 1138px;" | For DQA using (Jetpack 5.1/L4T 35.2.1)
 +
Its only provided camera feature. The test commnand please check the camera section.
  
<h2>Image</h2>
+
|-
 +
! scope="row" | 18
 +
| style="width: 300px;" | air030_image_20230410_thermal.tar.gz
 +
| style="width: 1138px;" | (Jetpack 5.1.1/L4T 35.3.1)
 +
|-
 +
! scope="row" | 19
 +
| style="width: 300px;" | air030_image_20230411_dqatest.tar.gz
 +
| style="width: 1138px;" | (Jetpack 5.1.1/L4T 35.3.1)
 +
|-
 +
! scope="row" | 20
 +
| style="width: 300px;" | air030_image_20230412_factory_test.tar.gz
 +
| style="width: 1138px;" | (Jetpack 5.1.1/L4T 35.3.1)
 +
|-
 +
! scope="row" | 21
 +
| style="width: 300px;" | air030_image_20230428_poweronoff_atx_mode.tar.gz
 +
| style="width: 1138px;" | (Jetpack 5.1.1/L4T 35.3.1)<br/> Patched the mb1_35.3.1_overlay.tbz2 for the issue "Can't Boot in Cold Start Test".
 +
|-
 +
! scope="row" | 22
 +
| style="width: 300px;" | air030_image_20230503_poweronoff_atx_mode.tar.gz
 +
| style="width: 1138px;" | (Jetpack 5.1.1/L4T 35.3.1)<br/> Patched the mb1_35.3.1_overlay.tbz2 for the issue "Can't Boot in Cold Start Test".
 +
|-
 +
! scope="row" | 23
 +
| style="width: 300px;" | air030_image_20230508_dqatest.tar.gz
 +
| style="width: 1138px;" | (Jetpack 5.1.1/L4T 35.3.1)<br/> fix COM2 function.".
 +
|-
 +
! scope="row" | 24
 +
| style="width: 300px;" | air030_image_20230509_factory_test.tar.gz
 +
| style="width: 1138px;" | (Jetpack 5.1.1/L4T 35.3.1)
 +
Note:<br/> [Audio]Remove "hit a enter" before testing audio playback. [Burning]Add function timeout after 2hr.
  
<p>The test image is available <a alt="https://advantecho365-my.sharepoint.com/personal/jack501_chen_advantech_com/_layouts/15/onedrive.aspx?ga=1&amp;id=/personal/jack501_chen_advantech_com/Documents/AIR-030/image" href="https://advantecho365-my.sharepoint.com/personal/jack501_chen_advantech_com/_layouts/15/onedrive.aspx?ga=1&amp;id=/personal/jack501_chen_advantech_com/Documents/AIR-030/image" title="https://advantecho365-my.sharepoint.com/personal/jack501_chen_advantech_com/_layouts/15/onedrive.aspx?ga=1&amp;id=/personal/jack501_chen_advantech_com/Documents/AIR-030/image">HERE</a>. <u>The 1st and 2nd image is only available for AGX-ORIN devkit.</u></p>
+
|-
 +
! scope="row" | 25
 +
| style="width: 300px;" | air030_image_20230510_poweronoff_at_mode.tar.gz
 +
| style="width: 1138px;" | (Jetpack 5.1.1/L4T 35.3.1)
 +
|-
 +
! scope="row" | 26
 +
| style="width: 300px;" | air030_image_20230516_dqatest.tar.gz
 +
| style="width: 1138px;" | (Jetpack 5.1.1/L4T 35.3.1)
 +
Note: [UI]Fix "System hang by adjusting date time widget".
  
<table border="1" cellpadding="1" cellspacing="1" style="width: 800px;">
+
|-
<tbody>
+
! scope="row" | 27
<tr>
+
| style="width: 300px;" | air030_image_20230518_poweronoff_atx_mode.tar.gz
<th scope="row">&nbsp;</th>
+
| style="width: 1138px;" | (Jetpack 5.1.1/L4T 35.3.1)<br/> Note: Patch optee.
<th data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" scope="col" style="width: 30px; background-color: rgb(80, 80, 80); color: rgb(255, 255, 255); --darkreader-inline-bgcolor: #3c4144; --darkreader-inline-color: #e8e6e3;">Image</th>
+
|-
<th data-darkreader-inline-bgcolor="" data-darkreader-inline-color="" scope="col" style="width: 438px; background-color: rgb(80, 80, 80); color: rgb(255, 255, 255); --darkreader-inline-bgcolor: #3c4144; --darkreader-inline-color: #e8e6e3;">Release Note</th>
+
! scope="row" | 28
</tr>
+
| style="width: 300px;" | air030_image_20230703_dqatest.tar.gz
<tr>
+
| style="width: 1138px;" | (Jetpack 5.1.1/L4T 35.3.1)<br/> Note: Fix com2 function error for 64GB.
<th scope="row">1</th>
+
|-
<td style="width: 300px;">air030_image_20221006.tar.gz</td>
+
| </tbody>
<td style="width: 1138px;">The first boot up image verified on AGX-ORIN Devkit.</td>
+
|}
</tr>
 
<tr>
 
<th scope="row">2</th>
 
<td style="width: 300px;">air030_image_20221006_bootonoff.tar.gz</td>
 
<td style="width: 1138px;">Based on air030_image_20221006.tar.gz added boot on off feature (The system will power off after 40 seconnds)</td>
 
</tr>
 
<tr>
 
<th scope="row">3</th>
 
<td style="width: 300px;">air030_image_20221020_burning_test.tar.gz</td>
 
<td style="width: 1138px;">For power/thermal/SI power sequence used<br />
 
<a href=":File%3AAIR-030%20Burning%20Test.pdf">Burning Testing SOP</a></td>
 
</tr>
 
<tr>
 
<th scope="row">4</th>
 
<td style="width: 300px;">air030_image_20221110.tar.gz</td>
 
<td style="width: 1138px;">&nbsp;</td>
 
</tr>
 
<tr>
 
<th scope="row">5</th>
 
<td style="width: 300px;">air030_image_20221110_burning.tar.gz</td>
 
<td style="width: 1138px;">For Power/Thermal/EMI test using.</td>
 
</tr>
 
<tr>
 
<th scope="row">6</th>
 
<td style="width: 300px;">air030_image_20221123.tar.gz</td>
 
<td style="width: 1138px;">fix HDMI hotplug in HD (4K:TBD)</td>
 
</tr>
 
<tr>
 
<th scope="row">7</th>
 
<td style="width: 300px;">air030_image_20221128_dqatest.tar</td>
 
<td style="width: 1138px;">For DQA &amp; QA using<br />
 
<a href=":File%3AAIR-030%20QA%20Test.pdf">QA Testing SOP</a></td>
 
</tr>
 
<tr>
 
<th scope="row">8</th>
 
<td style="width: 300px;">air030_image_20221201_poweronoff_at_mode.tar.gz</td>
 
<td style="width: 1138px;">Power On OFF test with AT mode + BOOT count</td>
 
</tr>
 
<tr>
 
<th scope="row">9</th>
 
<td style="width: 300px;">air030_image_20221201_poweronoff_atx_mode.tar.gz</td>
 
<td style="width: 1138px;">Power On OFF test with ATX mode + BOOT count</td>
 
</tr>
 
<tr>
 
<th scope="row">10</th>
 
<td style="width: 300px;">air030_image_20221216.tar.gz</td>
 
<td style="width: 1138px;">fix:<br />
 
1).Date and Time 的時間只要reboot 後就會又回到 April 21.<br />
 
2).QA - USB3.2 port 1/2 speed 及 Type C port performance 太低, 約 40MB/s<br />
 
3).開機後第1次接(或接著disk開機), OS的左側工作列看得到disk符號(lsblk也看得到), 熱插拔後再接上 OS 左側工作列看不到disk(lsblk也看不到), 試過兩台type c USB disk(Sandisk and Seagate) 一樣問題.<br />
 
4).USB3.2 port1/2接 Sandisk USB3.2 gen2 x1 500G disk (E80)熱插拔後認不到, 接Seagate USB3.2 gen2x2 500G disk完全偵測不到(reboot 也沒用).</td>
 
</tr>
 
<tr>
 
<th scope="row">11</th>
 
<td style="width: 300px;">air030_image_20221226.tar.gz</td>
 
<td style="width: 1138px;">Added HDMI hotplug patch.<br />
 
Added EWM-W159 outbox driver.</td>
 
</tr>
 
<tr>
 
<th scope="row">12</th>
 
<td style="width: 300px;">air030_image_20221229.tar.gz</td>
 
<td style="width: 1138px;">Modify dp_aux pinmux for HDMI.</td>
 
</tr>
 
<tr>
 
<th scope="row">13</th>
 
<td style="width: 300px;"><s>air030_image_20230204_factory_test.tar</s></td>
 
<td style="width: 1138px;">For factory test used.<br />
 
<a href=":File%3AAir030%20factory%20test.pdf">Air030_factory_test.pdf</a></td>
 
</tr>
 
<tr>
 
<th scope="row">14</th>
 
<td style="width: 300px;">air030_image_20230220_factory_test.tar</td>
 
<td style="width: 1138px;">For factory test used.<br />
 
Add flash/read mac address, rtc time, watchdog<br />
 
<a href=":File%3AAir030%20factory%20test%2020230217.pdf">Air030_factory_test_20230217.pdf</a></td>
 
</tr>
 
<tr>
 
<th scope="row">15</th>
 
<td style="width: 300px;">air030_image_20230303_dqatest.tar.gz</td>
 
<td style="width: 1138px;">&nbsp;</td>
 
</tr>
 
<tr>
 
<th scope="row">16</th>
 
<td style="width: 300px;">air030_image_20230307_burning.tar.gz</td>
 
<td style="width: 1138px;">For SE / PV using.</td>
 
</tr>
 
<tr>
 
<th scope="row">17</th>
 
<td style="width: 300px;">air030_image_20220324_dqatest.tar.gz</td>
 
<td style="width: 1138px;">For DQA using (Jetpack 5.1/L4T 35.2.1)<br />
 
Its only provided camera feature.<br />
 
The test commnand please check the camera section.</td>
 
</tr>
 
<tr>
 
<th scope="row">18</th>
 
<td style="width: 300px;">air030_image_20230410_thermal.tar.gz</td>
 
<td style="width: 1138px;">(Jetpack 5.1.1/L4T 35.3.1)</td>
 
</tr>
 
<tr>
 
<th scope="row">19</th>
 
<td style="width: 300px;">air030_image_20230411_dqatest.tar.gz</td>
 
<td style="width: 1138px;">(Jetpack 5.1.1/L4T 35.3.1)</td>
 
</tr>
 
<tr>
 
<th scope="row">20</th>
 
<td style="width: 300px;">air030_image_20230412_factory_test.tar.gz</td>
 
<td style="width: 1138px;">(Jetpack 5.1.1/L4T 35.3.1)</td>
 
</tr>
 
<tr>
 
<th scope="row">21</th>
 
<td style="width: 300px;">air030_image_20230428_poweronoff_atx_mode.tar.gz</td>
 
<td style="width: 1138px;">(Jetpack 5.1.1/L4T 35.3.1)<br />
 
Patched the mb1_35.3.1_overlay.tbz2 for the issue &quot;Can&#39;t Boot in Cold Start Test&quot;.</td>
 
</tr>
 
<tr>
 
<th scope="row">22</th>
 
<td style="width: 300px;">air030_image_20230503_poweronoff_atx_mode.tar.gz</td>
 
<td style="width: 1138px;">(Jetpack 5.1.1/L4T 35.3.1)<br />
 
Patched the mb1_35.3.1_overlay.tbz2 for the issue &quot;Can&#39;t Boot in Cold Start Test&quot;.</td>
 
</tr>
 
<tr>
 
<th scope="row">23</th>
 
<td style="width: 300px;">air030_image_20230508_dqatest.tar.gz</td>
 
<td style="width: 1138px;">(Jetpack 5.1.1/L4T 35.3.1)<br />
 
fix COM2 function.&quot;.</td>
 
</tr>
 
<tr>
 
<th scope="row">24</th>
 
<td style="width: 300px;">air030_image_20230509_factory_test.tar.gz</td>
 
<td style="width: 1138px;">(Jetpack 5.1.1/L4T 35.3.1)<br />
 
Note:<br />
 
[Audio]Remove &quot;hit a enter&quot; before testing audio playback.<br />
 
[Burning]Add function timeout after 2hr.</td>
 
</tr>
 
<tr>
 
<th scope="row">25</th>
 
<td style="width: 300px;">air030_image_20230510_poweronoff_at_mode.tar.gz</td>
 
<td style="width: 1138px;">(Jetpack 5.1.1/L4T 35.3.1)</td>
 
</tr>
 
<tr>
 
<th scope="row">26</th>
 
<td style="width: 300px;">air030_image_20230516_dqatest.tar.gz</td>
 
<td style="width: 1138px;">(Jetpack 5.1.1/L4T 35.3.1)<br />
 
Note:<br />
 
[UI]Fix &quot;System hang by adjusting date time widget&quot;.</td>
 
</tr>
 
<tr>
 
<th scope="row">27</th>
 
<td style="width: 300px;">air030_image_20230518_poweronoff_atx_mode.tar.gz</td>
 
<td style="width: 1138px;">(Jetpack 5.1.1/L4T 35.3.1)<br />
 
Note: Patch optee.</td>
 
</tr>
 
<tr>
 
<th scope="row">28</th>
 
<td style="width: 300px;">air030_image_20230703_dqatest.tar.gz</td>
 
<td style="width: 1138px;">(Jetpack 5.1.1/L4T 35.3.1)<br />
 
Note: Fix com2 function error for 64GB.</td>
 
</tr>
 
</tbody>
 
</table>
 
  
<p>&nbsp;</p>
+
&nbsp;
  
<p><span _fcknotitle="true" class="fck_mw_category" contenteditable="false">Pages with broken file links</span></p>
+
[[Category:Pages with broken file links]]

Latest revision as of 10:34, 1 August 2024

Flash Image

Change the SW2 to ON and press power button.
Recovery BT.png

$ sudo reboot --force forced-recovery

Connect a linux OS host wired AIR-030 with usb-otg cable.
In the Host PC, make sure the AIR-030 (NVidia Corp) has detectd.

[ubuntu@linux 11:55:43 ~]$ lsusb 
Bus 002 Device 002: ID 8087:8000 Intel Corp.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0bda:0161 Realtek Semiconductor Corp. Mass Storage Device
Bus 001 Device 024: ID 0955:7223 NVidia Corp.
Bus 001 Device 002: ID 8087:8008 Intel Corp.
Please Check there is 7223 NVidia Corp

Install dependency package on HOST:

 
$ sudo tools/l4t_flash_prerequisites.sh # For Debian-based Linux

or

$ sudo apt install build-essential python libxml2-utils abootimg sshpass binutils -y

For Jackpack 5.1.1
1.Extracted tarball file PS :

$ sudo tar -zxvf air030_image_XXXXXX.tar.gz
$ cd Linux_for_Tegra

2. Flash

$ sudo ./flash.sh -d rootfs/boot/tegra234-air030.dtb jetson-agx-orin-devkit mmcblk0p1​​

To NVME

$ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -c ./tools/kernel_flash/flash_l4t_external.xml -S 32GB --erase-all --showlogs jetson-agx-orin-devkit nvme0n1p1

For Jetpack 6.0
To EMMC

$ sudo ./flash.sh jetson-agx-orin-devkit mmcblk0p1

To NVME

$ $ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 -p "-c ./bootloader/generic/cfg/flash_t234_qspi.xml" -c ./tools/kernel_flash/flash_l4t_t234_nvme.xml --showlogs --network usb0 jetson-agx-orin-devkit nvme0n1p1

If host get error message "Parsing board information failed" when flashing image.
Please get crc code by get_eeprom_crc tool, once AIR-030 can boot into desktop.
Download Link: [1]

$ chmod a+x get_eeprom_crc
$ sudo ./get_eeprom_crc 0

Then overwrite correct crc value to EEPROM by i2cset command.
Replace crc code in command $ sudo i2cset -f -y 0 0x50 0xff 0x<crc_code>
For example, execute this command if crc code is 28.

$ sudo i2cset -f -y 0 0x50 0xff 0x28

Then re-flash AIR-030 image by normal steps.
Once AIR-030 cannot boot up to desktop, please flash AIR-030 by this command then follow previous steps to overwrite crc code and re-flash AIR-030 image.
AGX Orin 32G uses BOARDSKU="0004", AGX Orin 64G uses BOARDSKU="0005".

$ sudo SKIP_EEPROM_CHECK=1 BOARDSKU="0004" CHIP_SKU=00:00:00:D2 ./flash.sh jetson-agx-orin-devkit internal

This is original command with full parameter to flash from nVidia.

$ sudo BOARDID="3701" FAB="300" BOARDSKU="0004" BOARDREV="C.2" CHIP_SKU=00:00:00:D2 ./flash.sh jetson-agx-orin-devkit internal

 

Board Layout

Front

Air030 board layout front.jpg

Back

Air030 board layout back.jpg

Bottom

Air030 board layout bottom.jpg

Tools

JTOP

install

$ sudo apt update
$ sudo apt install python3-pip
$ sudo pip3 install -U jetson-stats

Run

$ sudo jtop

Test Command

GPIO Expander

Air030 dio.jpg

Test GPIO high/low

Air030 gpio expander io.png

1).Switch to root

ubuntu@localhost:~ sudo -s

2).Commnad : where <GPIO> : GPIO0(GPIO300)~GPIO15(GPIO315) and <LEVEL> : high(1)/low(0)
For example, pull up GPIO0 to high.

root@localhost:/home/ubuntu# echo 300 > /sys/class/gpio/export
root@localhost:/home/ubuntu# echo out > /sys/class/gpio/gpio300/direction
root@localhost:/home/ubuntu# echo 1 > /sys/class/gpio/gpio300/value

WatchDog

root@linux:/home/ubuntu$ sudo -s
root@linux:/home/ubuntu# sync; sleep 2; sync; echo c > /proc/sysrq-trigger

RTC

DUT AC on:
1. Power on DUT and boot into OS.
2. Connect a LAN cable from the DUT to DHCP server.
3. Get a dynamic IP from DHCP server.
4. Type cmd to disable ntp service in DUT.

# sudo timedatectl set-ntp false

5. Synchronize system time and RTC time with NTP server.

# ntpdate tock.stdtime.gov.tw <===安裝ntpdate方式: $sudo apt-get install ntpdate <enter> 
# hwclock -w 

6. Keep the DUT on for 24 hours.
7. Synchronize system time and RTC time with NTP server again and check inaccuracies.

# ntpdate tock.stdtime.gov.tw && hwclock -s &&ntpdate -u tock.stdtime.gov.tw 

TPM

(1)產生randon code

root@linux:/home/ubuntu# tpm2_getrandom --hex 20

(2) 對指定檔案 msg.dat 加密

root@linux:/home/ubuntu# tpm2_createprimary -C p -c platform_primary.ctx
root@linux:/home/ubuntu# tpm2_create -C platform_primary.ctx -G rsa2048 -u key.pub -r key.priv
root@linux:/home/ubuntu# tpm2_load -C platform_primary.ctx -u key.pub -r key.priv -c key.ctx
root@linux:/home/ubuntu# echo "my test" >msg.dat
root@linux:/home/ubuntu# tpm2_rsaencrypt -c key.ctx -o msg.enc msg.dat
root@linux:/home/ubuntu# cat msg.enc
root@linux:/home/ubuntu# tpm2_rsadecrypt -c key.ctx -o msg.ptext msg.enc
root@linux:/home/ubuntu# cat msg.ptext 
root@linux:/home/ubuntu# cat msg.dat

(3) 將資料儲存至 tpm 內存

root@linux:/home/ubuntu# tpm2_nvdefine -Q 0x1500031 -C o -s 32 -a "ownerread|policywrite|ownerwrite"
root@linux:/home/ubuntu# echo "write_tpm_adv" >  adv.data
root@linux:/home/ubuntu# tpm2_nvwrite -Q 0x1500031 -C o -i adv.data
root@linux:/home/ubuntu# tpm2_nvread -Q 0x1500031 -C o -s 32 -o read.data
root@linux:/home/ubuntu# cat read.data

(4) 確認已經寫入儲存區域 

root@linux:/home/ubuntu# tpm2_nvreadpublic > nv.out
root@linux:/home/ubuntu# cat nv.out

Error

ERROR: Esys_NV_DefineSpace(0x14C) - tpm:error(2.0): NV Index or persistent object already defined
ERROR: Failed to create NV index 0x1500031.

fixed

root@linux:/home/ubuntu# tpm2_nvundefine 0x1500031

LAN

LAN1USB12 - eth01
LAN2USB34 - eth02
LAN3 - eth00

UART

COMPort.png
COMPortSwitchDefine.png
RS232 (COMX_SW1 : OFF-OFF-X-X)

Air030 rs232loopback.jpg

 UART5_SW1 - SW1 : ON

<tbody>
COM Port Command (Please switch to root first before test)
COM1 stty -F /dev/ttyTHS0 speed 115200 raw -echo

cat /dev/ttyTHS0 & echo "1234" > /dev/ttyTHS0

COM2 stty -F /dev/ttyTHS4 speed 115200 raw -echo

cat /dev/ttyTHS4 & echo "1234" > /dev/ttyTHS4

COM4 stty -F /dev/ttyTHS3 speed 115200 raw -echo

cat /dev/ttyTHS3 & echo "1234" > /dev/ttyTHS3

COM5 stty -F /dev/ttyTHS1 speed 115200 raw -echo

cat /dev/ttyTHS1 & echo "1234" > /dev/ttyTHS1

</tbody>

RS422
Send and Received port
(COM<PORT>_SW1 : ON-OFF-ON-OFF)

RS485
Send port
(COM<inPort>_SW1 ON-ON-ON-OFF)
Received port
(COM<outPort>_SW1 ON-ON-ON-ON)

Setup up baudrate

# stty -F /dev/ttyTHS<SEND_UART_NO> speed 115200
# stty -F /dev/ttyTHS<RECEIVE_UART_NO> speed 115200

Test

# cat /dev/ttyTHS<RECEIVE_UART_NO> &
# echo "1234" > /dev/ttyTHS<SEND_UART_NO>

Software control
(COM<inPort>_SWx ON-ON-OFF-ON)
AIR-030 RTSGPIO號碼

UART1_RTS L51 GPIO3_PR.04 gpio-460 (PR.04)
UART2_RTS G58 GPIO3_PY.07 gpio-477 (PY.07)
UART4_RTS L4 GPIO3_PH.05 gpio-396 (PH.05)
UART5_RTS K58 GPIO3_PX.06 gpio-468 (PX.06)

舉起每個COMRTS pin的方式如下(UART1 RTS來說)

1.權限

ubuntu@localhost:~$ sudo –s

2.設定

root@localhost:/home/ubuntu# echo 460 > /sys/class/gpio/export
root@localhost:/home/ubuntu# ls /sys/class/gpio/
export gpiochip300 gpiochip316 gpiochip348 PR.04 unexport
root@localhost:/home/ubuntu# echo out > /sys/class/gpio/PR.04/direction
root@localhost:/home/ubuntu# echo 1 > /sys/class/gpio/PR.04/value

3.驗證

root@localhost:/home/ubuntu# cat /sys/kernel/debug/gpio | grep PR.04
gpio-460 (PR.04 |sysfs ) out hi

Audio

HDMI output

$ aplay -D hw:0,3 <WAV file>

Line-Out

$ aplay -D hw:1,0 <WAV file>

FAN

Air030 fan.jpg

Change PWM value ${PWM} from 1 ~ 255.

ubuntu@localhost:~$ sudo -s
For R35.1.0
root@localhost:/home/ubuntu# echo ${PWM} > /sys/class/hwmon/hwmon3/pwm1
For R35.3.1
root@localhost:/home/ubuntu# echo ${PWM} > /sys/class/hwmon/hwmon4/pwm1

Before test this item, please disable fan-control service.(Only for R35.1.0)

$ sudo systemctl disable nvfancontrol.service
$ sudo systemctl stop nvfancontrol

nVidia:fan-profile-control

CAN

Air030 can.jpg

030CAN.png
CAN LoopbackTest.jpg

$ modprobe can
$ modprobe can-dev
$ modprobe mttcan
$ ip link set can0 type can bitrate 500000
$ ip link set can0 up
$ ip link set can1 type can bitrate 500000
$ ip link set can1 up

In other terminal, run below command

$ candump can1

then run

$ cansend can0 123#abcdabcd

USB

To test U-Disk read speed

$ sudo -s
# fio --ioengine=libaio --prio=0 --numjobs=1 --direct=1 --iodepth=32 --runtime=<runtime> --bwavgtime=5000 --time_based --rw=read --bs=128k --group_reporting --name=<device_path>

Where:
<runtime> : how long the test time (ms), ex : 30 second :  --runtime=30000
<device_path> : ex: --name=/dev/sda1

Camera

<img _fck_mw_filename="Air030 camera imx219.jpg" _fck_mw_origimgheight="1199" _fck_mw_origimgwidth="1498" alt="File:Air030_camera_imx219.jpg" src="/wiki/images/f/f6/Air030_camera_imx219.jpg" style="vertical-align:middle;" title="File:Air030_camera_imx219.jpg" width="400" />

The imx219 mode:
Size: Discrete 3280x2464 Interval: Discrete 0.048s (21.000 fps)
Size: Discrete 3280x1848 Interval: Discrete 0.036s (28.000 fps)
Size: Discrete 1920x1080 Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 1640x1232 Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 1280x720 Interval: Discrete 0.017s (60.000 fps)

Preview command:
3280x2464

$ gst-launch-1.0 nvarguscamerasrc&nbsp;! 'video/x-raw(memory:NVMM), width=3280, height=2464, format=NV12, framerate=21/1'&nbsp;! nv3dsink

3280x1848

$ gst-launch-1.0 nvarguscamerasrc&nbsp;! 'video/x-raw(memory:NVMM), width=3280, height=1848, format=NV12, framerate=28/1'&nbsp;! nv3dsink

1920x1080

$ gst-launch-1.0 nvarguscamerasrc&nbsp;! 'video/x-raw(memory:NVMM), width=1920, height=1080, format=NV12, framerate=29/1'&nbsp;! nv3dsink

1640x1232

$ gst-launch-1.0 nvarguscamerasrc&nbsp;! 'video/x-raw(memory:NVMM), width=1640, height=1232, format=NV12, framerate=29/1'&nbsp;! nv3dsink

1280x720

$ gst-launch-1.0 nvarguscamerasrc&nbsp;! 'video/x-raw(memory:NVMM), width=1280, height=720, format=NV12, framerate=59/1'&nbsp;! nv3dsink

Capture Image (for JP6 : No nv3dsink gstreamer element, fixed by installing package nvidia-l4t-gstreamer)

$ nvargus_nvraw --c 0 --mode 0 --file /home/ubuntu/sample.jpg --format "yuv, jpg"

Power Mode

Supported-modes-and-power-efficiency

Flash Mac

I225 Flash Tool

Copy and extract I225_Flash_Tool.zip in the device.

ubuntu@localhost:~$ unzip I225_Flash_Tool.zip

Chanage the tool execution permission.

<pre>ubuntu@localhost:~$ sudo chmod a+x ./EepromAccessTool

Check All Intel-226 Module in PCI bus, The BDF(bus number/device number/function number) value will be first column.

ubuntu@localhost:~$ lspci
0004:00:00.0 PCI bridge: NVIDIA Corporation Device 229c (rev a1)
0004:01:00.0 PCI bridge: ASMedia Technology Inc. Device 2806 (rev 01)
0004:02:00.0 PCI bridge: ASMedia Technology Inc. Device 2806 (rev 01)
0004:02:06.0 PCI bridge: ASMedia Technology Inc. Device 2806 (rev 01)
0004:02:0e.0 PCI bridge: ASMedia Technology Inc. Device 2806 (rev 01)
0004:04:00.0 Ethernet controller: Intel Corporation Device 15f2 (rev 03)
0004:05:00.0 Ethernet controller: Intel Corporation Device 15f2 (rev 03)

Check NIC value with EepromAccessTool tool.

ubuntu@localhost:~$ ./EepromAccessTool
Intel(R) EEPROM Access Tool NVM/OTP Programming Example Tool   Version 0.8.0
Provided under the terms of a CNDA.  Do Not Distribute.
Copyright(C) 2017-2020 by Intel(R) Corporation
NIC     BUS     DEV     FUN     Silicon Memory Type Present
===     ===     ===     ===     =====   ======================
Check Command open to write error
 1      4        0       0      I225         FLASH
Check Command open to write error
 2      5        0       0      I225         FLASH

Flash Mac Address To get -nic value and BDF value please using above method.
ex : 0004:05:00.0 = domain 4 bus 5 device 0 function 0
BUS 5 > NIC = 2

$ sudo -s
# setpci -s 0004:04:00.0 COMMAND=0007
# ./EepromAccessTool -nic=1 -f=FXVL_15F2_LM_2MB_ARK_1.82_D.bin -mac=D4E5F6123456

The other Intel-I226

#setpci -s 0004:05:00.0 COMMAND=0007 
#./EepromAccessTool -nic=2 -f=FXVL_15F2_LM_2MB_ARK_1.82_D.bin -mac=D4E5F6123457 

Please do cold reboot after flash mac address.

How to check whether the flash proccess is success or not

  • lspci command - If it is 0x125f value, it failed.
  • ifconfig -a - Check the nerwork interface is available. ex: eth0, eth1 and so on.


Boot On Off

The boot count message will be printed before log-in.
Air030 bootcount.jpg
Reset the boot count please remove bootCount.tt.

$ rm bootCount.tt

THERMAL / EMI Burning

Install prerequisite packages

$ sudo apt install --yes nvidia-jetpack

pva engine

/opt/nvidia/vpi2/samples/05-benchmark/vpi_sample_05_benchmark

GPU
matrixMul (Depreciated)

/usr/local/cuda-11.4/samples/0_Simple/matrixMul/

More power consumption version (nVidia suggestion + <a href=":File%3AAir030-half-matrixMulCUBLAS.patch">0001-half-matrixMulCUBLAS.patch</a>)
matrixMulCUBLAS

/usr/local/cuda-11.4/samples/0_Simple/matrixMulCUBLAS/

emc  engine

sudo apt install mbw

cpu

sudo apt install stress

dla0 dla1  engine

/usr/src/tensorrt/bin/trtexec

nvenc engine - USB camera

$ gst-launch-1.0  v4l2src device=/dev/video0&nbsp;! 'video/x-raw,width=1280,height=720'&nbsp;! nvvidconv&nbsp;! 'video/x-raw(memory:NVMM)'&nbsp;! nvvidconv&nbsp;! 'video/x-raw(memory:NVMM)'&nbsp;! nvv4l2h264enc&nbsp;! fakesink

nvdec engine - play 4K H264 video

gst-launch-1.0 filesrc location=/usr/local/bin/4k264.mp4&nbsp;! qtdemux&nbsp;! queue&nbsp;! h264parse&nbsp;! nvv4l2decoder&nbsp;! 'video/x-raw(memory:NVMM), format=(string)NV12'&nbsp;! queue&nbsp;! fakesink

ape  engine

aplay -D hw:1,0 /usr/local/bin/1kHz.wav

Module

AW-CB375NF(EWM-W159M201E)

Air030 awcb375nf.jpg

Air030 awcb375nf onboard.jpg

Adjust dip switch

  • LAN3_MKE_SW1 - SW1 : ON
  • UART5_SW1 - SW1 : OFF

AIR030 LAN3 MKE SW1.jpg

Air030 uart5 selection.jpg 

Wi-Fi
Start interface

$ sudo ifconfig wlan0 up

$ Scan AP

$ sudo iw dev wlan0 scan ap-force

Bluetooth

$ bluetoothctl
[bluetooth]# agent on
[bluetooth]# scan on

AW-CB511NF

Adjust dip switch

  • LAN3_MKE_SW1 - SW1 : ON
  • UART5_SW2 - SW1 : OFF

Wi-Fi
Start interface

$ sudo ifconfig wlan0 up

$ Scan AP

$ sudo iw dev wlan0 scan ap-force

Bluetooth

$ sudo -s
# hciattach /dev/ttyTHS1 bcm43xx 3000000 flow -t 20
# bluetoothctl
[bluetooth]# agent on
[bluetooth]# scan on


AIW-35x

Air030 aiw-356.jpg

Air030 aiw-356 onboard.jpg

Air030 uart5 selection.jpg

Check the module is available.

ubuntu@localhost:~$ lsusb
Bus 002 Device 002: ID 05e3:0625 Genesys Logic, Inc. USB3.2 Hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 006: ID 2cb7:0104
buntu@localhost:~$ ifconfig usb0
        usb0: flags=4227<UP,BROADCAST,NOARP,MULTICAST> mtu 1500
        ether 00:33:34:37:35:33  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
ubuntu@localhost:~$ sudo dmesg | grep usb0 
[ 14.115707] GobiNet 1-3.4:1.4 usb0: register 'GobiNet' at usb-3610000.xhci-3.4, GobiNet Ethernet Device, d2:77:82:0c:af:59

Switch mode:

$ sudo minicom -D /dev/ttyUSBx

ATcommand : at+gtusbmode=32
30 : mbim
32 : rmnet(gobinet)


NVME

Air030 nvme.jpg

Air030 nvme onboard.jpg


PCIE-1672

Air030 pcie1672v.jpg


Image

The test image is available HERE.

The 1st and 2nd image is only available for AGX-ORIN devkit.

<tbody>
  Image Release Note
1 air030_image_20221006.tar.gz The first boot up image verified on AGX-ORIN Devkit.
2 air030_image_20221006_bootonoff.tar.gz Based on air030_image_20221006.tar.gz added boot on off feature (The system will power off after 40 seconnds)
3 air030_image_20221020_burning_test.tar.gz For power/thermal/SI power sequence used
<a href=":File%3AAIR-030%20Burning%20Test.pdf">Burning Testing SOP</a>
4 air030_image_20221110.tar.gz  
5 air030_image_20221110_burning.tar.gz For Power/Thermal/EMI test using.
6 air030_image_20221123.tar.gz fix HDMI hotplug in HD (4K:TBD)
7 air030_image_20221128_dqatest.tar For DQA & QA using
<a href=":File%3AAIR-030%20QA%20Test.pdf">QA Testing SOP</a>
8 air030_image_20221201_poweronoff_at_mode.tar.gz Power On OFF test with AT mode + BOOT count
9 air030_image_20221201_poweronoff_atx_mode.tar.gz Power On OFF test with ATX mode + BOOT count
10 air030_image_20221216.tar.gz fix:

1).Date and Time 的時間只要reboot 後就會又回到 April 21.
2).QA - USB3.2 port 1/2 speed 及 Type C port performance 太低, 約 40MB/s
3).開機後第1次接(或接著disk開機), OS的左側工作列看得到disk符號(lsblk也看得到), 熱插拔後再接上 OS 左側工作列看不到disk(lsblk也看不到), 試過兩台type c USB disk(Sandisk and Seagate) 一樣問題. 4).USB3.2 port1/2接 Sandisk USB3.2 gen2 x1 500G disk (E80)熱插拔後認不到, 接Seagate USB3.2 gen2x2 500G disk完全偵測不到(reboot 也沒用).

11 air030_image_20221226.tar.gz Added HDMI hotplug patch.
Added EWM-W159 outbox driver.
12 air030_image_20221229.tar.gz Modify dp_aux pinmux for HDMI.
13 air030_image_20230204_factory_test.tar For factory test used.
<a href=":File%3AAir030%20factory%20test.pdf">Air030_factory_test.pdf</a>
14 air030_image_20230220_factory_test.tar For factory test used.

Add flash/read mac address, rtc time, watchdog <a href=":File%3AAir030%20factory%20test%2020230217.pdf">Air030_factory_test_20230217.pdf</a>

15 air030_image_20230303_dqatest.tar.gz  
16 air030_image_20230307_burning.tar.gz For SE / PV using.
17 air030_image_20220324_dqatest.tar.gz For DQA using (Jetpack 5.1/L4T 35.2.1)

Its only provided camera feature. The test commnand please check the camera section.

18 air030_image_20230410_thermal.tar.gz (Jetpack 5.1.1/L4T 35.3.1)
19 air030_image_20230411_dqatest.tar.gz (Jetpack 5.1.1/L4T 35.3.1)
20 air030_image_20230412_factory_test.tar.gz (Jetpack 5.1.1/L4T 35.3.1)
21 air030_image_20230428_poweronoff_atx_mode.tar.gz (Jetpack 5.1.1/L4T 35.3.1)
Patched the mb1_35.3.1_overlay.tbz2 for the issue "Can't Boot in Cold Start Test".
22 air030_image_20230503_poweronoff_atx_mode.tar.gz (Jetpack 5.1.1/L4T 35.3.1)
Patched the mb1_35.3.1_overlay.tbz2 for the issue "Can't Boot in Cold Start Test".
23 air030_image_20230508_dqatest.tar.gz (Jetpack 5.1.1/L4T 35.3.1)
fix COM2 function.".
24 air030_image_20230509_factory_test.tar.gz (Jetpack 5.1.1/L4T 35.3.1)

Note:
[Audio]Remove "hit a enter" before testing audio playback. [Burning]Add function timeout after 2hr.

25 air030_image_20230510_poweronoff_at_mode.tar.gz (Jetpack 5.1.1/L4T 35.3.1)
26 air030_image_20230516_dqatest.tar.gz (Jetpack 5.1.1/L4T 35.3.1)

Note: [UI]Fix "System hang by adjusting date time widget".

27 air030_image_20230518_poweronoff_atx_mode.tar.gz (Jetpack 5.1.1/L4T 35.3.1)
Note: Patch optee.
28 air030_image_20230703_dqatest.tar.gz (Jetpack 5.1.1/L4T 35.3.1)
Note: Fix com2 function error for 64GB.
</tbody>