====== Nvidia Jetson Nano ======
**{{tagpage>ia|Intelligence Artificielle}}** **[[http://translate.google.com/translate?hl=&sl=auto&tl=en&u=https%3A%2F%2Fressources.labomedia.org%2Fnvidia_jetson_nano|English Version]]**
**[[les_pages_intelligence_artificielle_en_details|Les Pages Intelligence Artificielle en détails]]**
{{ media_07:jetson_nano_getting_started_board.jpg?300 |}}
* [[https://www.developer.nvidia.com/embedded-computing|NVIDIA Jetson Nano]]
* ubuntu 18.04
* Ram 3.9 GiB
* Proc ARMv8 Processor rev 1 (v8l) × 4
* Graphics NVIDIA Tegra X1 (nvgpu)/integrated
* OS type 64 bits
* Disk 41.0 GB
=====Problèmes rencontrés=====
* Impossible d'installer opencv avec pip et libopencv-dev
* Avec python3-opencv des dépôts, conflit GTK3 et GTK2 avec darknet
=====Installation sur SD Card=====
Téléchargement: [[https://developer.nvidia.com/embedded/dlc/jetson-nano-dev-kit-sd-card-image|Jetson Nano Developer Kit SD Card Image]]
Trouver les disques:
sudo fdisk -l
Copie de l'image sur la SD Card
/usr/bin/unzip -p ~/Downloads/jetson_nano_devkit_sd_card.zip | sudo /bin/dd of=/dev/sd bs=1M status=progress
sudo eject /dev/sd
Premier boot:
* License
* Sélection du clavier français
* user/mot de passe
* Annuler les mises à jour: elles ne se font pas --> bug !!!
=====Installation sur disque externe=====
====Avantages====
- Ca va plus vite
- Il y a plus de place
- Ajout d'une swap
- On peut tout recommencer sur le disque externe, sans avoir à recommencer la copie de l'image sur le SD Card
====Création du disque externe====
* Ressource: **[[https://www.jetsonhacks.com/2019/04/25/jetson-nano-run-on-usb-drive/|Run on usb drive]]** Des scripts de développeurs non associés à Nvidia.
git clone https://github.com/JetsonHacksNano/rootOnUSB
cd rootOnUSB
./buildKernel.sh
Copie: Avec gparted, mettre un Label sur la partition destination, remplacer par votre label
./copyRootToUSB.sh -v
====Menu de boot au démarrage====
Pour pouvoir booter sur la SD Card ou le disk externe.
**Pas de menu, recherche en cours !**\\
Si le disk externe est absent, et qu'il est en Primary, ça ne démarre pas !\\
Il faudrait avoir le menu avec la SD Card en Primary !
Modification de /boot/extlinux/extlinux.conf
cp /boot/extlinux/extlinux.conf /boot/extlinux/extlinux_old.conf
sudo apt install syslinux-common
sudo gedit /boot/extlinux/extlinux.conf
Remplacer le code de ce fichier (en adaptant à vos disques) par:
TIMEOUT 30
DEFAULT primary
MENU TITLE p3450-porg eMMC boot options
LABEL primary
MENU LABEL primary kernel
LINUX /boot/Image
INITRD /boot/initrd
APPEND ${cbootargs} rootfstype=ext4 root=/dev/mmcblk0p1 rw rootwait
#APPEND ${cbootargs} rootfstype=ext4 root=/dev/sda1 rw rootwait
Commenter l'une des 2 lignes APPEND ${cbootargs}, mais si ça ne démarre pas il faut modifier le fichier sur un autre PC!
====Boot avec mode graphique====
https://devtalk.nvidia.com/default/topic/1050739/jetson-nano/how-to-boot-jetson-nano-in-text-mode-/
====Swap====
Dans le fichier /etc/fstab, ajouter:
# swap
UUID=7d8d120d-9a76-4768-bd5d-904edb68b3fe none swap sw 0 0
Adapter l'UUID à votre cas en la trouvant avec gparted.
Redémarrer.
=====Opencv 3=====
Une **[[https://github.com/skvark/opencv-python/issues/83|explication]]** des difficultés avec l'installation de opencv et opencv-dev.
**Pour l'utilisation de pip, voir l'excellent article de\\ [[http://sametmax.com/lancer-correctement-python-et-ses-commandes-cousines/|Sam et Max]]** 8-)
Dans synaptic, désinstaller complètement **python3-pip**, puis le réinstaller.\\
Désinstaller aussi tous les paquets opencv, puis:
python3.6 -m pip install opencv-python --user
sudo apt-get install cmake clang libopencv-dev libopencv-core-dev libopencv-highgui-dev libopencv-flann-dev libopencv-photo-dev libopencv-video-dev python3.6-dev
Liste des paquets opencv installés: à faire
=====Yolo V3 Darknet=====
python3.6 -m pip install numpy --user
python3.6 -m pip install scikit-image --user
Voir [[yolo_darknet_sur_un_portable_optimus|Yolo Darknet sur un portable Optimus]] pour la modification du Makefile.
Ne jamais oublier la commande magique:
export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}}
puis
make -j4
=====Reconnaissance du sémaphore=====
**[[yolo_darknet_avec_un_vrai_semaphore|Avec un vrai sémaphore]]**
{{ media_12:semaphore_jetson_nano_2.jpg?400 |}}
{{tag>ia sb}}