회사일을 Jetson Tx2관련일을 하게되어 이에 관련된 일을 간단히 정리하고자 한다.
그리고, 인터넷에 오픈된 것만 관련하여 간단히 서술한다.
현재 Ubuntu는 16.04LTS이며, 아래와 같이 Jetpack 3.3 설치를 하며, 설치 방법도 EVM의 영문 매뉴얼을 참조하면 어느정도 이해를 할수 있다.
- Jetson TX2 Jetpack 설치 정보
$ sudo apt update && sudo apt upgrade -y
아래의 부분은 Jetson TX2에서 진행을 했지만, 동작이 되지 않았다.
$ sudo ./jetson_clocks.sh $ cd ~/tegra_multimedia_api/samples/backend ./backend 1 ../../data/Video/sample_outdoor_car_1080p_10fps.h264 H264 --trt-deployfile ../../data/Model/GoogleNet_one_class/GoogleNet_modified_oneClass_halfHD.prototxt --trt-modelfile ../../data/Model/GoogleNet_one_class/GoogleNet_modified_oneClass_halfHD.caffemodel --trt-forcefp32 0 --trt-proc-interval 1 -fps 10
관련정보
https://judo0179.tistory.com/19
JetPack 3.3 Download
https://developer.nvidia.com/embedded/jetpack
JetPack Manual
https://docs.nvidia.com/jetson/jetpack/index.html
https://docs.nvidia.com/jetson/jetpack/introduction/index.html
https://docs.nvidia.com/jetson/jetpack/release-notes/index.html
https://devblogs.nvidia.com/jetson-tx2-delivers-twice-intelligence-edge/
2. JetPack 설치 후 USB Device 정보
Jetson TX2의 Jetpack 3.3 설치 후 아래와 같이 USB의 설정확인하였으며, 간단히 정리해본다.
일반적인 USB 정보 알아두자.
https://ahyuo79.blogspot.com/2014/11/class-descriptor.html
https://ahyuo79.blogspot.com/search/label/IF-USB
- Host PC 확인 (JetsonTX2 USB 접속)
좀더 자세히 분석하여 알아 보면 다음과 같다.
Jetson TX2의 USB Device Mode 일경우 지원사항
- USB Mass Storage : USB CDC 관련 Manual 내용
- USB CDC-ACM : /dev/ttyACM0 으로 Serial로 쉽게 Login 가능
- USB CDC-RNDIS: USB를 통하여 Window의 RNDIS Ethernet 사용가능
- USB CDC-ether: USB CDC Ethernet이며 RNDIS와 같이 연동되는 것 같음
Window에서는 Network는 상위 CDC-RNDIS만 지원될 것라고 생각함
USB CDC-Network Adapters (Kernel Config 사항)
( Device Drivers - Network device support - USB Network Adapters)
CONFIG_USB_NET_CDCETHER
CONFIG_USB_NET_RNDIS_HOST
CONFIG_USB_NET_CDC_EEM
CONFIG_USB_NET_CDC_MBIM
USB CDC ACM (Kernel Config 사항)
( Device Drivers - USB support)
CONFIG_USB_ACM
**CDC-ACM은 Ethernet 기반의 Adapter가 아니므로 별도로 /dev/ttyACMx 존재하지만,
상위 Network Adapters들의 경우 별도의 /dev는 존재하지 않음 주의
USB CDC 관련세부사항
https://en.wikipedia.org/wiki/Ethernet_over_USB
http://processors.wiki.ti.com/index.php/Networking_over_USB
이 부분 까지 조사하지 않고 서술만 한다.
https://wiki.archlinux.org/index.php/Android_tethering
https://unix.stackexchange.com/questions/388300/udev-does-not-rename-usb-ethernet-device
Udev관련 Rule
http://fewstreet.com/2015/06/09/ubuntu-udev-naming-rules.html
2.1 Jetson의 USB Ethernet 통신 설정
Host PC와 Jetson Tx2 USB의 설정을하면 USB를 통하여 Internet 통신이 가능하다.
이를 이용하여 SSH 와 SFTP 및 추후 GDB까지 기능확장이 가능하다.
이 관련 Manual은 Mass Storage의 영문 Manual을 참조하자.
이 관련내용은 Mass Storage의 영문 매뉴얼을 참조하자.
직접설정
설정환경
https://wiki.debian.org/NetworkConfiguration
설정후 확인
Jetson Network 환경 확인
usb0 직접 설정 or DHCP 설정
network 환경설정
상위와 같이 설정후 Host PC에서 Jetson(192.168.55.2)로 접속가능.(SSH/SFTP/NFS)
Host PC의 NFS Server 설정 후 아래와 같이 테스트
2.2 USB Storage
이 부분은 추후 사용하기 위해 만든 것이며, 지금은 자료만 모음
USB Mass Storage Disable
https://askubuntu.com/questions/888052/how-to-block-all-usb-storage-devices-in-ubuntu
https://www.cyberciti.biz/faq/linux-disable-modprobe-loading-of-usb-storage-driver/
https://help.ubuntu.com/community/Mount/USB
3. Flash Jetson TX2
Host PC에서 USB를 통해 손쉽게 Flash하며, Backup 도 가능하기 때문에 관련 Command를 소개한다.
관련문서는 아래를 참조 혹은 설치시 Start_L4T_Docs.html 부분을 참조
Jetson_X2_Developer_Kit_User_Guide.pdf
https://developer.nvidia.com/embedded/dlc/l4t-27-1-jetson-tx2-user-guide
https://en.wikipedia.org/wiki/Ethernet_over_USB
http://processors.wiki.ti.com/index.php/Networking_over_USB
$ lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 007: ID 0955:7020 NVidia Corp. Bus 001 Device 003: ID 045e:00cb Microsoft Corp. Basic Optical Mouse v2.0 Bus 001 Device 002: ID 045e:07f8 Microsoft Corp. Wired Keyboard 600 (model 1576) Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub $ lsusb -t // Host USB 와 Module 관련부분 확인 /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/6p, 5000M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/12p, 480M |__ Port 9: Dev 7, If 0, Class=Communications, Driver=rndis_host, 480M |__ Port 9: Dev 7, If 1, Class=CDC Data, Driver=rndis_host, 480M |__ Port 9: Dev 7, If 2, Class=Communications, Driver=cdc_acm, 480M |__ Port 9: Dev 7, If 3, Class=CDC Data, Driver=cdc_acm, 480M |__ Port 9: Dev 7, If 4, Class=Mass Storage, Driver=usb-storage, 480M |__ Port 9: Dev 7, If 5, Class=Communications, Driver=cdc_ether, 480M |__ Port 9: Dev 7, If 6, Class=CDC Data, Driver=cdc_ether, 480M |__ Port 11: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 11: Dev 2, If 1, Class=Human Interface Device, Driver=usbhid, 1.5M |__ Port 12: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M $ lsusb -d 0955:7020 -v // Jetson TX2 USB Descriptor 확인 Bus 001 Device 004: ID 0955:7020 NVidia Corp. Couldn't open device, some information will be missing Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.10 bDeviceClass 239 Miscellaneous Device bDeviceSubClass 2 ? bDeviceProtocol 1 Interface Association bMaxPacketSize0 64 idVendor 0x0955 NVidia Corp. idProduct 0x7020 bcdDevice 0.01 iManufacturer 1 iProduct 2 iSerial 3 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 248 bNumInterfaces 7 bConfigurationValue 1 iConfiguration 4 bmAttributes 0x80 (Bus Powered) MaxPower 2mA Interface Association: bLength 8 bDescriptorType 11 bFirstInterface 0 bInterfaceCount 2 bFunctionClass 2 Communications bFunctionSubClass 6 Ethernet Networking bFunctionProtocol 0 iFunction 7 Interface Descriptor: ....
- Host PC에서 관련 Module Driver 확인
$ lsmod // Host PC Module 사용확인 Module Size Used by rndis_wlan 57344 0 rndis_host 16384 1 rndis_wlan cfg80211 622592 1 rndis_wlan cdc_ether 16384 1 rndis_host usbnet 45056 3 rndis_wlan,rndis_host,cdc_ether mii 16384 1 usbnet uas 24576 0 usb_storage 69632 2 uas cdc_acm 32768 2 pci_stub 16384 1 vboxpci 24576 0 vboxnetadp 28672 0 vboxnetflt 28672 0 vboxdrv 471040 3 vboxpci,vboxnetadp,vboxnetflt binfmt_misc 20480 1 nls_iso8859_1 16384 2 snd_hda_codec_hdmi 49152 1 intel_rapl 20480 0 snd_hda_codec_realtek 106496 1 snd_hda_codec_generic 73728 1 snd_hda_codec_realtek x86_pkg_temp_thermal 16384 0 intel_powerclamp 16384 0 coretemp 16384 0 kvm_intel 217088 0 kvm 598016 1 kvm_intel snd_hda_intel 40960 3 snd_hda_codec 126976 4 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec_realtek irqbypass 16384 1 kvm snd_hda_core 81920 5 snd_hda_codec_generic,snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek snd_hwdep 20480 1 snd_hda_codec snd_pcm 98304 4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core crct10dif_pclmul 16384 0 crc32_pclmul 16384 0 snd_seq_midi 16384 0 ghash_clmulni_intel 16384 0 snd_seq_midi_event 16384 1 snd_seq_midi joydev 24576 0 pcbc 16384 0 input_leds 16384 0 aesni_intel 188416 0 aes_x86_64 20480 1 aesni_intel snd_rawmidi 32768 1 snd_seq_midi crypto_simd 16384 1 aesni_intel snd_seq 65536 2 snd_seq_midi,snd_seq_midi_event snd_seq_device 16384 3 snd_seq,snd_seq_midi,snd_rawmidi glue_helper 16384 1 aesni_intel snd_timer 32768 2 snd_seq,snd_pcm cryptd 24576 3 crypto_simd,ghash_clmulni_intel,aesni_intel snd 81920 17 snd_hda_codec_generic,snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_hda_codec_realtek,snd_timer,snd_pcm,snd_rawmidi soundcore 16384 1 snd intel_cstate 20480 0 intel_rapl_perf 16384 0 mei_me 40960 0 shpchp 36864 0 mei 90112 1 mei_me acpi_pad 180224 0 mac_hid 16384 0 parport_pc 36864 1 ppdev 20480 0 lp 20480 0 parport 49152 3 parport_pc,lp,ppdev autofs4 40960 2 hid_generic 16384 0 usbhid 49152 0 hid 118784 2 usbhid,hid_generic i915 1630208 104 i2c_algo_bit 16384 1 i915 drm_kms_helper 172032 1 i915 syscopyarea 16384 1 drm_kms_helper e1000e 249856 0 sysfillrect 16384 1 drm_kms_helper sysimgblt 16384 1 drm_kms_helper fb_sys_fops 16384 1 drm_kms_helper ptp 20480 1 e1000e drm 401408 6 drm_kms_helper,i915 pps_core 20480 1 ptp ahci 36864 3 libahci 32768 1 ahci video 45056 1 i915
- Udev 관련부분 확인
이 부분 까지 조사하지 않고 서술만 한다.
$ ls /lib/udev/rules.d/ 39-usbmuxd.rules 73-special-net-names.rules 40-crda.rules 73-usb-net-by-mac.rules 40-usb-media-players.rules 75-net-description.rules ... $ ls /sys/class/net/ enp0s20f0u9 enp0s20f0u9i5 enp0s31f6 lo
https://wiki.archlinux.org/index.php/Android_tethering
https://unix.stackexchange.com/questions/388300/udev-does-not-rename-usb-ethernet-device
Udev관련 Rule
http://fewstreet.com/2015/06/09/ubuntu-udev-naming-rules.html
- Jetson TX2의 USB-ACM Interface
$ ls /dev/ttyACM0 // USB ACM Interface 확인 /dev/ttyACM0 $ minicom -s // JetsonTx2 접속 nvidia:nvidia
2.1 Jetson의 USB Ethernet 통신 설정
Host PC와 Jetson Tx2 USB의 설정을하면 USB를 통하여 Internet 통신이 가능하다.
이를 이용하여 SSH 와 SFTP 및 추후 GDB까지 기능확장이 가능하다.
이 관련 Manual은 Mass Storage의 영문 Manual을 참조하자.
- Host PC의 USB Host 의 Network 설정
이 관련내용은 Mass Storage의 영문 매뉴얼을 참조하자.
직접설정
$ sudo ifconfig enp0s20f0u9 192.168.55.3 netmask 255.255.255.0 up $ sudo ifconfig enp0s20f0u9i5 192.168.55.4 netmask 255.255.255.0 up
설정환경
$ sudo vi /etc/network/interfaces auto lo iface lo inet loopback #allow-hotplug enp0s20f0u9 auto enp0s20f0u9 iface enp0s20f0u9 inet static address 192.168.55.3 netmask 255.255.255.0 #gateway 192.168.55.1 $ sudo /etc/init.d/networking restart $ sudo ifup enp0s20f0u9
https://wiki.debian.org/NetworkConfiguration
설정후 확인
$ ifconfig -a enp0s20f0u9 Link encap:Ethernet HWaddr 86:dd:47:07:ec:e4 inet addr:192.168.55.3 Bcast:192.168.55.255 Mask:255.255.255.0 inet6 addr: fe80::84dd:47ff:fe07:ece4/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:761 errors:0 dropped:0 overruns:0 frame:0 TX packets:1065 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:95357 (95.3 KB) TX bytes:229667 (229.6 KB) enp0s20f0u9i5 Link encap:Ethernet HWaddr 16:bd:4f:fa:6a:df inet addr:192.168.55.4 Bcast:192.168.55.255 Mask:255.255.255.0 inet6 addr: fe80::14bd:4fff:fefa:6adf/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:800 errors:0 dropped:0 overruns:0 frame:0 TX packets:1017 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:98669 (98.6 KB) TX bytes:178966 (178.9 KB) enp0s31f6 Link encap:Ethernet HWaddr 70:85:c2:3e:a8:2b inet addr:10.0.0.107 Bcast:10.0.0.255 Mask:255.255.255.0 inet6 addr: fe80::725b:9a50:8ca0:81e8/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:31853921 errors:0 dropped:0 overruns:0 frame:0 TX packets:317267 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:46162303120 (46.1 GB) TX bytes:35161467 (35.1 MB) Interrupt:16 Memory:df000000-df020000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:21308 errors:0 dropped:0 overruns:0 frame:0 TX packets:21308 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:2903284 (2.9 MB) TX bytes:2903284 (2.9 MB)
- Jetson TX2의 USB Ethernet Device 설정
Jetson Network 환경 확인
$ ifconfig -a docker0 Link encap:Ethernet HWaddr 02:42:d0:89:67:5a inet addr:172.17.0.1 Bcast:172.17.255.255 Mask:255.255.0.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) dummy0 Link encap:Ethernet HWaddr 16:34:65:bc:75:19 BROADCAST NOARP MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) eth0 Link encap:Ethernet HWaddr 00:04:4b:c5:80:6f inet addr:10.0.0.170 Bcast:10.0.0.255 Mask:255.255.255.0 inet6 addr: fe80::9fdc:aa1b:faf4:9ad0/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:208078 errors:0 dropped:0 overruns:0 frame:0 TX packets:1925 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:20077947 (20.0 MB) TX bytes:354820 (354.8 KB) Interrupt:42 l4tbr0 Link encap:Ethernet HWaddr 7a:f3:26:af:7a:49 inet addr:192.168.55.1 Bcast:192.168.55.255 Mask:255.255.255.0 inet6 addr: fe80::3851:d0ff:feaa:b4c4/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:10704 errors:0 dropped:0 overruns:0 frame:0 TX packets:101 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1739228 (1.7 MB) TX bytes:10780 (10.7 KB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packets:219 errors:0 dropped:0 overruns:0 frame:0 TX packets:219 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:16393 (16.3 KB) TX bytes:16393 (16.3 KB) tunl0 Link encap:IPIP Tunnel HWaddr NOARP MTU:1480 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) usb0 Link encap:Ethernet HWaddr 9e:52:2b:63:ed:f2 inet6 addr: fe80::9c52:2bff:fe63:edf2/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5407 errors:5407 dropped:0 overruns:0 frame:5407 TX packets:4407 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:874353 (874.3 KB) TX bytes:813177 (813.1 KB) usb1 Link encap:Ethernet HWaddr 7a:f3:26:af:7a:49 inet6 addr: fe80::78f3:26ff:feaf:7a49/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5297 errors:0 dropped:0 overruns:0 frame:0 TX packets:4519 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:864875 (864.8 KB) TX bytes:633831 (633.8 KB) wlan0 Link encap:Ethernet HWaddr 00:04:4b:c5:80:6d UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
usb0 직접 설정 or DHCP 설정
$ sudo ifconfig usb0 192.168.55.2 netmask 255.255.255.0 up or $ udhcpc -i usb0 // DHCP Client로 설정
network 환경설정
$ sudo vi /etc/network/interfaces # interfaces(5) file used by ifup(8) and ifdown(8) # Include files from /etc/network/interfaces.d: source-directory /etc/network/interfaces.d auto usb0 iface usb0 inet static netmask 255.255.255.0 address 192.168.55.2
상위와 같이 설정후 Host PC에서 Jetson(192.168.55.2)로 접속가능.(SSH/SFTP/NFS)
$ ssh nvidia@192.168.55.2 // ID: ubuntu 가능 $ sftp nvidia@192.168.55.2 // ID: ubuntu 가능
- Jetson 의 NFS지원
$ cat /proc/filesystems | grep nfs // Kernel의 NFS지원확인 $ sudo apt-get install nfs-common // mount nfs 지원 $/sbin/mount // mount 명령어 nfs 지원확인 mountall mount.ecryptfs_private mount.lowntfs-3g mount.nfs4 mount.ntfs-3g mount.ecryptfs mount.fuse mount.nfs mount.ntfs
Host PC의 NFS Server 설정 후 아래와 같이 테스트
$ mount -t nfs -o nolock 192.168.5.3:/home/jhlee/test /home/nvidia/test
2.2 USB Storage
이 부분은 추후 사용하기 위해 만든 것이며, 지금은 자료만 모음
USB Mass Storage Disable
https://askubuntu.com/questions/888052/how-to-block-all-usb-storage-devices-in-ubuntu
https://www.cyberciti.biz/faq/linux-disable-modprobe-loading-of-usb-storage-driver/
https://help.ubuntu.com/community/Mount/USB
3. Flash Jetson TX2
Host PC에서 USB를 통해 손쉽게 Flash하며, Backup 도 가능하기 때문에 관련 Command를 소개한다.
- USB Force Recovery Mode
- flash.sh 기본사용법
- Host PC USB 연결확인
$ lsusb // Host 에서 USB 로 Jetson TX2 연결 후 Connection 확인 ..... Bus 001 Device 036: ID 0955:7020 NVidia Corp.
- Image Flash 방법 (USB 연결확인 후)
$ cd jetsonTX2/64_TX2/Linux_for_Tegra // JetPack 3.3 설치 위치 $ sudo ./flash.sh jetson-tx2 mmcblk0p1// For Jetson TX2
- Image Backup 및 Flash 방법
$ sudo ./flash.sh -r -k APP -G clone.img jetson-tx2 mmcblk0p1 //기존에 사용하던 Image Backup $ ls clone.img clone.img.raw $ sudo cp clone.img.raw bootloader/system.img // 실행전 반드시 bootloader/system.img bakcup $ sudo ./flash.sh -r -k APP jetson-tx2 mmcblk0p1 // 적용된 이미지로 Flash
- mount system.img.raw 방법
$ mkdir test //mount 할 장소 $ sudo mount -t ext4 -o loop ./bootloader/system.img.raw ./test // RAW File Mount $ ls test/ // Target File System , APP README.txt bin boot dev etc home lib lost+found media mnt opt proc root run sbin snap srv sys tmp usr var // Target Filesystem $ ls ./test/usr/local/ //CUDA 설치확인 bin etc games include lib man sbin share src // 미설치 $ ls ./test/usr/src/ //tensorrt 설치 확인 /usr/src/tensorrt/bin/ , /usr/src/tensorrt/samples/ linux-headers-4.4.38-tegra $ sudo umount test // 반드시 unmount
- flash.sh 사용법
$ ./flash.sh -h Usage: sudo ./flash.sh [options]Where, target board: Valid target board name. rootdev: Proper root device. options: -b --------- nvflash boot control table config file. -c --------- nvflash partition table config file. -d --------- device tree file. -e ------- Target device's eMMC size. -f -------- Path to flash application: nvflash or tegra-rcm. -h ------------------- print this message. -i ------------------- pass user kernel commandline as-is to kernel. -k ---- partition name or number specified in flash.cfg. -m ----- MTS preboot such as mts_preboot_si. -n -------- Static nfs network assignments : : : -o --------- ODM data. -p --------- Total eMMC HW boot partition size. -r ------------------- skip building and reuse existing system.img. -s ----- PKC key used for signing and building bl_update_payload. -t ------- tegraboot binary such as nvtboot.bin -u -------- PKC server in @ format. -w --------- warm boot binary such as nvtbootwb0.bin -x --------- Tegra CHIPID. default = 0x18(jetson-tx2) 0x21(jetson-tx1), 0x40(jetson-tk1). -y -------- PKC for secureboot, NS for non-secureboot. -z -------------- Serial Number of target board. -B --------- BoardId. -C --------- Kernel commandline arguments. WARNING: Each option in this kernel commandline gets higher preference over the same option from fastboot. In case of NFS booting, this script adds NFS booting related arguments, if -i option is omitted. -F --------- Flash server such as fastboot.bin. -G ------- Read partition and save image to file. -I ---------- initrd file. Null initrd is default. -K ---------- Kernel image file such as zImage or Image. -L ------ Bootloader such as cboot.bin or u-boot-dtb.bin. -M -------- MTS boot file such as mts_si. -N --------- i.e. :/my/exported/nfs/rootfs. -P -- Primary GPT start address + size of PPT + 1. -R ------ Sample rootfs directory. -S ------------ Rootfs size in bytes. Valid only for internal rootdev. KiB, MiB, GiB short hands are allowed, for example, 1GiB means 1024 * 1024 * 1024 bytes. -T -------- ITS file name. Valid only for u-boot. --no-flash ----------- perform all steps except physically flashing the board. This will create a system.img. --bup ---------------- Generate bootloader update payload(BUP). --multi-spec---------- Enable support for building multi-spec BUP. --clean-up------------ Clean up BUP buffer when multi-spec is enabled. --usb-instance -- Specify the USB instance to connect to; integer ID (e.g. 0, 1), bus/dev (e.g. 003/091), or USB port path (e.g. 3-14). The latter is best.
- Jetson TX2 Partion 구조 (Jetson TX2 확인)
$nvidia@tegra-ubuntu:~$ sudo fdisk -l /dev/mmcblk0 Disk /dev/mmcblk0: 29.1 GiB, 31268536320 bytes, 61071360 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 00000000-0000-0000-0000-000000000000 Device Start End Sectors Size Type /dev/mmcblk0p1 4097 58724352 58720256 28G Microsoft basic data /dev/mmcblk0p2 58724353 58732544 8192 4M Microsoft basic data /dev/mmcblk0p3 58732545 58740736 8192 4M Microsoft basic data /dev/mmcblk0p4 58740737 58741760 1024 512K Microsoft basic data /dev/mmcblk0p5 58741761 58742784 1024 512K Microsoft basic data /dev/mmcblk0p6 58742785 58743808 1024 512K Microsoft basic data /dev/mmcblk0p7 58743809 58744832 1024 512K Microsoft basic data /dev/mmcblk0p8 58744833 58750976 6144 3M Microsoft basic data /dev/mmcblk0p9 58750977 58757120 6144 3M Microsoft basic data /dev/mmcblk0p10 58757121 58761216 4096 2M Microsoft basic data /dev/mmcblk0p11 58761217 58762424 1208 604K Microsoft basic data /dev/mmcblk0p12 58762425 58763632 1208 604K Microsoft basic data /dev/mmcblk0p13 58763633 58764632 1000 500K Microsoft basic data /dev/mmcblk0p14 58764633 58765632 1000 500K Microsoft basic data /dev/mmcblk0p15 58765633 58769728 4096 2M Microsoft basic data /dev/mmcblk0p16 58769729 58773824 4096 2M Microsoft basic data /dev/mmcblk0p17 58773825 58786112 12288 6M Microsoft basic data /dev/mmcblk0p18 58786113 58798400 12288 6M Microsoft basic data /dev/mmcblk0p19 58798401 58802496 4096 2M Microsoft basic data /dev/mmcblk0p20 58802497 59064640 262144 128M Microsoft basic data /dev/mmcblk0p21 59064641 59326784 262144 128M Microsoft basic data /dev/mmcblk0p22 59326785 59392320 65536 32M Microsoft basic data /dev/mmcblk0p23 59392321 59457856 65536 32M Microsoft basic data /dev/mmcblk0p24 59457857 59588928 131072 64M Microsoft basic data /dev/mmcblk0p25 59588929 59720000 131072 64M Microsoft basic data /dev/mmcblk0p26 59720001 59721024 1024 512K Microsoft basic data /dev/mmcblk0p27 59721025 59722048 1024 512K Microsoft basic data /dev/mmcblk0p28 59722049 60246336 524288 256M Microsoft basic data /dev/mmcblk0p29 60246337 61071326 824990 402.8M Microsoft basic data $nvidia@tegra-ubuntu:~$ sudo gdisk -l /dev/mmcblk0 GPT fdisk (gdisk) version 1.0.1 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Disk /dev/mmcblk0: 61071360 sectors, 29.1 GiB Logical sector size: 512 bytes Disk identifier (GUID): 00000000-0000-0000-0000-000000000000 Partition table holds up to 29 entries First usable sector is 4097, last usable sector is 61071327 Partitions will be aligned on 1-sector boundaries Total free space is 1 sectors (512 bytes) Number Start (sector) End (sector) Size Code Name 1 4097 58724352 28.0 GiB 0700 APP 2 58724353 58732544 4.0 MiB 0700 mts-bootpack 3 58732545 58740736 4.0 MiB 0700 mts-bootpack_b 4 58740737 58741760 512.0 KiB 0700 cpu-bootloader 5 58741761 58742784 512.0 KiB 0700 cpu-bootloader_b 6 58742785 58743808 512.0 KiB 0700 bootloader-dtb 7 58743809 58744832 512.0 KiB 0700 bootloader-dtb_b 8 58744833 58750976 3.0 MiB 0700 secure-os 9 58750977 58757120 3.0 MiB 0700 secure-os_b 10 58757121 58761216 2.0 MiB 0700 eks 11 58761217 58762424 604.0 KiB 0700 bpmp-fw 12 58762425 58763632 604.0 KiB 0700 bpmp-fw_b 13 58763633 58764632 500.0 KiB 0700 bpmp-fw-dtb 14 58764633 58765632 500.0 KiB 0700 bpmp-fw-dtb_b 15 58765633 58769728 2.0 MiB 0700 sce-fw 16 58769729 58773824 2.0 MiB 0700 sce-fw_b 17 58773825 58786112 6.0 MiB 0700 sc7 18 58786113 58798400 6.0 MiB 0700 sc7_b 19 58798401 58802496 2.0 MiB 0700 FBNAME 20 58802497 59064640 128.0 MiB 0700 BMP 21 59064641 59326784 128.0 MiB 0700 BMP_b 22 59326785 59392320 32.0 MiB 0700 SOS 23 59392321 59457856 32.0 MiB 0700 SOS_b 24 59457857 59588928 64.0 MiB 0700 kernel 25 59588929 59720000 64.0 MiB 0700 kernel_b 26 59720001 59721024 512.0 KiB 0700 kernel-dtb 27 59721025 59722048 512.0 KiB 0700 kernel-dtb_b 28 59722049 60246336 256.0 MiB 0700 CAC 29 60246337 61071326 402.8 MiB 0700 UDA
관련문서는 아래를 참조 혹은 설치시 Start_L4T_Docs.html 부분을 참조
Jetson_X2_Developer_Kit_User_Guide.pdf
https://developer.nvidia.com/embedded/dlc/l4t-27-1-jetson-tx2-user-guide