Une collection d'outils IMPRESSIONNANTS adaptés aux appareils NVIDIA Jetson
Droit d'auteur 2020-2024 @piyoki. Tous droits réservés.
Ce référentiel vise à vous donner des instructions claires sur la façon d'installer des packages sur la plate-forme AArch64(ARM), en particulier dans la famille Jetson. Tous les packages ont été testés sur Jetson AGX Xavier et Jetson Nano.
Ce référentiel utilise le pré-commit pour gérer et maintenir les hooks de pré-commit multilingues.
Avant d'effectuer toute installation, vous devrez peut-être installer les dépendances de base suivantes
$ sudo apt-get install -y nano curl
# python3
$ sudo apt-get install -y python3-pip python3-dev python3-setuptools
# python2
$ sudo apt-get install -y python-pip python-dev python-setuptools
$ sudo apt-get install -y libcanberra-gtk0 libcanberra-gtk-module
Remarques : Si vous souhaitez définir python3
comme compilateur Python et gestionnaire de packages pip
par défaut, procédez comme suit :
# python
$ sudo rm -rf /usr/bin/python && sudo ln -s /usr/bin/python3 /usr/bin/python
$ which python
# pip
$ sudo rm -rf /usr/bin/pip && sudo ln -s /usr/bin/pip3 /usr/bin/pip
$ which pip
Python-pip
# pip3
$ pip3 install -U pip
$ pip3 install setuptools wheel cython
Si vous n'avez pas encore défini CUDA Path, vous devrez peut-être le faire.
Configuration avec script
$ wget -qO- https://github.com/yqlbu/jetson-packages-family/raw/master/set_cuda.sh | bash -
Configurer manuellement
$ echo " export PATH=/usr/local/cuda/bin: $ {PATH} " >> ${HOME} /.bashrc
$ echo " export LD_LIBRARY_PATH=/usr/local/cuda/lib64: $ {LD_LIBRARY_PATH} " >> ${HOME} /.bashrc
$ echo " export CPATH= $CPATH :/usr/local/cuda/targets/aarch64-linux/include " >> ${HOME} /.bashrc
$ echo " export LIBRARY_PATH= $LIBRARY_PATH :/usr/local/cuda/targets/aarch64-linux/lib " >> {HOME}/.bashrc
$ source ~ /.bashrc
Par rapport au Jetson Nano, une caractéristique importante des Jetson Xavier NX et Jetson AGX Xavier est qu'ils sont livrés avec le connecteur M.2 Key M. Selon des tests tiers, la vitesse de lecture de mon SSD est 7 fois plus rapide que celle de la carte SD. Ainsi, démarrer à partir du SSD augmentera sûrement les performances de Jetson Xavier.
Guide de configuration
Dépôt Jetsonhacks RootOnNVMe
Un script qui peut contrôler le ventilateur PWM avec le changement de la température du processeur de n'importe quelle machine Jetson (Jetson Nano, Jetson TX1, TX2, Jetson Xavier)
Guide de configuration
PyTorch v1.8.0 (JetPack 4.4 +)
Python 3.6 - torch-1.8.0-cp36-cp36m-linux_aarch64.whl
$ wget https://nvidia.box.com/shared/static/p57jwntv436lfrd78inwl7iml6p13fzh.whl -O torch-1.8.0-cp36-cp36m-linux_aarch64.whl
$ sudo apt-get install python3-pip libopenblas-base libopenmpi-dev
$ pip3 install Cython
$ pip3 install numpy torch-1.8.0-cp36-cp36m-linux_aarch64.whl
Torchvision v0.5.0 (compatible avec PyTorch v1.4.0)
$ sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
$ git clone --branch < version > https://github.com/pytorch/vision torchvision # see below for version of torchvision to download
$ cd torchvision
$ export BUILD_VERSION=0.x.0 # where 0.x.0 is the torchvision version
$ python3 setup.py install --user
$ cd ../ # attempting to load torchvision from build dir will result in import error
$ pip install ' pillow<7 ' # always needed for Python 2.7, not needed torchvision v0.5.0+ with Python 3.6
Vérification
$ python3 -c " import torch ; print(torch.__version__) "
Pour installer d'autres versions de PyTorch et Torchvision, veuillez visiter le site ICI
Python 3.6 + JetPack 4.5
sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran
sudo apt-get install python3-pip
sudo pip3 install -U pip testresources setuptools==49.6.0
sudo pip3 install -U numpy==1.16.1 future==0.18.2 mock==3.0.5 h5py==2.10.0 keras_preprocessing==1.1.1 keras_applications==1.0.8 gast==0.2.2 futures protobuf pybind11
# TF-2.x
$ sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v45 tensorflow
# TF-1.15
$ sudo pip3 install --pre --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v45 ‘tensorflow < 2’
Si vous rencontrez une erreur lors de l'installation de h5py, veuillez exécuter cette commande pour résoudre la dépendance :
$ sudo apt-get install libhdf5-serial-dev hdf5-tools
Pour installer d'autres versions de Tensorflow, consultez les sites ci-dessous :
Jetson Xavier : ICI
Jetson Nano : ICI
Python3 v3.6.9
$ pip3 install scikit-learn
$ apt-get install libatlas-base-dev gfortran
$ pip3 install -U scipy --user
$ sudo apt install libfreetype6-dev -y
$ sudo apt install python3-matplotlib -y
pip3 install -U pycuda --user
# install jupyter
$ pip3 install jupyterlab
$ pip3 install --upgrade --force jupyter-console
# export environment path
$ echo ' export PATH=$PATH:~/.local/bin ' >> ~ /.bashrc
$ source ~ /.bashrc
# check installation version
$ jupyter lab -V
Installer avec Docker
$ docker run --name jupyterlab -d
-e TZ=Asia/Shanghai
-p 8888:8888
-v /appdata/jupyterlab:/opt/app/data
hikariai/jupyterlab:latest
Exécutez l'application
$ jupyter lab --ip= * --port=8888 --no-browser --notebook-dir=/opt/app/data
--allow-root --NotebookApp.token= ' ' --NotebookApp.password= ' '
--LabApp.terminado_settings= ' {"shell_command": ["/bin/bash"]} '
Guide d'utilisation : https://github.com/yqlbu/jetson_lab
$ pip3 install -U pillow --user
$ pip3 install -U pandas --user
$ pip3 install -U numpy --user
$ pip3 install -U seaborn --user
ONNX v1.4.1 (Python3.6.9 + JetPack 4.3/4.4/4.5)
$ sudo apt install protobuf-compiler libprotoc-dev
$ pip install onnx==1.4.1
LLVM v3.9 (Python3.6 + JetPack 4.3/4.4/4.5)
$ sudo apt-get install llvm-3.9
$ export LLVM_CONFIG=/usr/lib/llvm-3.9/bin/llvm-config
$ cd ~
$ wget https://github.com/numba/llvmlite/archive/v0.16.0.zip
$ unzip v0.16.0.zip
$ cd llvmlite-0.16.0
$ sudo chmod 777 -R /usr/local/lib/python3.6/dist-packages/
$ python3 setup.py install
Numba v0.31 (Python3.6 + JetPack 4.3/4.4/4.5)
**Remarques : Numba nécessite **LLVM** pré-construit, veuillez donc consulter les instructions pour LLVM et l'installer avant d'installer Numba.
$ pip3 install numba==0.31 --user
Jetson-stats est un package pour surveiller et contrôler votre NVIDIA Jetson [Xavier NX, Nano, AGX Xavier, TX1, TX2] Fonctionne avec tout l'écosystème NVIDIA Jetson.
$ sudo -H pip install -U jetson-stats
$ sudo jtop
NeoVim Server est un éditeur de texte conteneurisé de type IDE qui s'exécute sur un serveur Web.
Documentation : https://github.com/yqlbu/neovim-server/wiki
Installation de la police :
$ mkdir -p ~ /.local/share/fonts
$ cd ~ /.local/share/fonts && curl -fLo " Droid Sans Mono for Powerline Nerd Font Complete.otf " https://github.com/ryanoasis/nerd-fonts/raw/master/patched-fonts/DroidSansMono/complete/Droid%20Sans%20Mono%20Nerd%20Font%20Complete.otf
Installation rapide :
$ docker run -d
--name nvim-server
-p 6080:3000
-p 8090:8090
-v ~ /workspace:/workspace
-v /appdata/nvim-server:/config
-e TZ=Asia/Shanghai
-e USER= < USER >
-e SECRET= < PASSWORD >
hikariai/nvim-server:latest
Attendez quelques secondes jusqu'à ce que le conteneur termine son processus d'amorçage, puis visitez http://localhost:6080/wetty
Visual Studio Code est un éditeur de code redéfini et optimisé pour la création et le débogage d'applications Web et cloud modernes.
$ curl -s https://packagecloud.io/install/repositories/swift-arm/vscode/script.deb.sh | sudo bash
$ sudo apt-get install -y code-oss
Code-server est une instance de Visual Studio Code exécutée sur un serveur distant accessible via n'importe quel navigateur Web. Il vous permet de coder n'importe où et sur n'importe quel appareil tel qu'une tablette ou un ordinateur portable avec un environnement de développement intégré (IDE) cohérent.
Guide d'installation : [ICI
Archiconda3 est une distribution de conda pour ARM 64 bits. Anaconda est une distribution gratuite et open source des langages de programmation Python et R pour le calcul scientifique (science des données, applications d'apprentissage automatique, traitement de données à grande échelle, analyse prédictive, etc.), qui vise à simplifier la gestion et le déploiement des packages. Comme Virtualenv, Anaconda utilise également le concept de création d'environnements afin d'isoler différentes bibliothèques et versions.
$ cd ${HOME}
$ curl -fsSL https://github.com/Archiconda/build-tools/releases/download/0.2.3/Archiconda3-0.2.3-Linux-aarch64.sh | sudo bash -
$ cd ~
$ sudo chown -R $USER archiconda3/
$ export " PATH=~/archiconda3/bin: $PATH " >> ~ /.bashrc
$ conda config --add channels conda-forge
$ conda -V
$ conda update conda
$ conda -V
Pour empêcher conda d'activer l'environnement de base par défaut
$ conda config --set auto_activate_base false
$ export " PATH=/bin:/usr/bin: $PATH " >> ~ /.bashrc
$ source ~ /.bashrc
Veuillez consulter le site ICI pour le guide d'utilisation.
OpenCV v4.1.1 (Python2.7/3.6+ JetPack4.3/4.4/4.5)
# purge old-version
$ sudo apt-get purge libopencv *
# install
$ sudo bash <( wget -qO- https://github.com/yqlbu/jetson-packages-family/raw/master/OpenCV/install_opencv4.1.1_jetson.sh )
Notes : Vous pouvez modifier le script pour installer une version personnalisée d'OpenCV
$ wget https://github.com/yqlbu/jetson-packages-family/raw/master/OpenCV/install_opencv4.1.1_jetson.sh
PyCharm est un environnement de développement intégré (IDE) utilisé en programmation informatique, spécifiquement pour le langage Python. Il est développé par la société tchèque JetBrains.
PyCharm Professionnel
$ cd ~
$ sudo apt-get update && sudo apt-get install -y openjdk-8-jdk
$ wget https://download.jetbrains.com/python/pycharm-professional-2019.3.4.tar.gz ? _ga=2.42966822.2056165753.1586158936-1955479096.1586158936 -O pycharm-professional-2019.3.4.tar.gz
$ tar -xzf pycharm-professional-2019.3.4.tar.gz && cd pycharm-2019.3.4/bin
$ sudo chmod +x pycharm.sh && mv pycharm.sh pycharm
$ sudo rm -rf pycharm-professional-2019.3.4.tar.gz
$ cd ~
$ echo ' export PATH=/home/ ' $USER ' /pycharm-2019.3.4/bin:$PATH ' >> .bashrc
Communauté PyCharm
$ cd ~
$ sudo apt-get update && sudo apt-get install -y openjdk-8-jdk
$ wget https://download.jetbrains.com/python/pycharm-community-2019.3.4.tar.gz ? _ga=2.42966822.2056165753.1586158936-1955479096.1586158936 -O pycharm-community-2019.3.4.tar.gz
$ tar -xzf pycharm-community-2019.3.4.tar.gz && cd pycharm-2019.3.4/bin
$ sudo chmod +x pycharm.sh && mv pycharm.sh pycharm
$ sudo rm -rf pycharm-community-2019.3.4.tar.gz
$ cd ~
$ echo ' export PATH=/home/ ' $USER ' /pycharm-2019.3.4/bin:$PATH ' >> .bashrc
courir
$ pycharm
Notes : Vous pouvez trouver d'autres versions ICI
Lazygit est une interface utilisateur de terminal simple pour les commandes git, écrite en Go avec la bibliothèque gocui.
$ sudo add-apt-repository ppa:lazygit-team/release
$ sudo apt-get update
$ sudo apt-get install lazygit
Ranger est un gestionnaire de fichiers de console avec des raccourcis clavier VI. Il fournit une interface Cursus minimaliste et agréable avec une vue sur la hiérarchie des répertoires. Il est livré avec Rifle, un lanceur de fichiers capable de découvrir automatiquement quel programme utiliser pour quel type de fichier.
$ pip install ranger-fm
(Facultatif) Installer les appareils des rangers
$ git clone https://github.com/alexanderjeurissen/ranger_devicons ~ /.config/ranger/plugins/ranger_devicons
$ echo " default_linemode devicons " >> $HOME /.config/ranger/rc.conf
Un exemple de configuration est disponible ICI
Lsd est la commande ls de nouvelle génération
Téléchargez le dernier package .deb
à partir de la page de version et installez-le via :
sudo dpkg -i lsd_0.20.1_arm64.deb # adapt version number and architecture
Ctop est une interface de type Top pour les métriques de conteneurs. Ctop fournit un aperçu concis et condensé des métriques en temps réel pour plusieurs conteneurs.
# echo "deb http://packages.azlux.fr/debian/ buster main" | sudo tee /etc/apt/sources.list.d/azlux.list
# wget -qO - https://azlux.fr/repo.gpg.key | sudo apt-key add -
# sudo apt update
# sudo apt install docker-ctop
Cointop est une application d'interface utilisateur basée sur un terminal interactif rapide et légère pour suivre et surveiller les statistiques des pièces de crypto-monnaie en temps réel.
Documents : ICI
$ curl -o- https://raw.githubusercontent.com/miguelmota/cointop/master/install.sh | bash
Gotop Un moniteur d'activité graphique basé sur un terminal inspiré de gtop et vtop
# install
$ curl -fsSL git.io/gotop.sh | sudo bash
# uninstall
sudo rm -f /usr/local/bin/gotop
Moniteur de ressources Bashtop qui affiche l'utilisation et les statistiques du processeur, de la mémoire, des disques, du réseau et des processus.
$ sudo add-apt-repository ppa:bashtop-monitor/bashtop
$ sudo apt update
$ sudo apt install bashtop
Httpie est un client HTTP en ligne de commande. Son objectif est de rendre l'interaction CLI avec les services Web aussi conviviale que possible. HTTPie est conçu pour tester, déboguer et généralement interagir avec les API et les serveurs HTTP. Les commandes http et https permettent de créer et d'envoyer des requêtes HTTP arbitraires. Ils utilisent une syntaxe simple et naturelle et fournissent une sortie formatée et colorisée.
$ apt install httpie -y
Neofetch est un script shell simple et multiplateforme qui recherche les informations de votre système et les affiche dans un terminal, avec une image ASCII ou toute image souhaitée à côté de la sortie.
$ sudo add-apt-repository ppa:dawidd0811/neofetch
$ sudo apt-get update
$ sudo apt-get install neofecth
Docker est essentiellement un moteur de conteneur qui utilise les fonctionnalités du noyau Linux telles que les espaces de noms et les groupes de contrôle pour créer des conteneurs au-dessus d'un système d'exploitation et automatiser le déploiement d'applications sur le conteneur. Docker utilise le système de fichiers Union Copy-on-write pour son stockage backend.
$ sudo wget -qO- https://get.docker.com/ | sh
$ sudo usermod -aG docker $USER
$ sudo systemctl enable docker
$ sudo systemctl status docker
Pour activer l'accès au compilateur CUDA (nvcc) pendant les opérations docker build
, ajoutez "default-runtime": "nvidia"
à votre fichier de configuration /etc/docker/daemon.json
avant d'essayer de créer les conteneurs :
{
"runtimes" : {
"nvidia" : {
"path" : " nvidia-container-runtime " ,
"runtimeArgs" : []
}
},
"features" : {
"buildkit" : true
},
"default-runtime" : " nvidia "
}
Redémarrer le démon Docker
$ sudo systemctl restart docker
Vérifiez si le runtime par défaut est défini sur nvidia :
$ docker info | grep nvidia
Docker Compose est un outil permettant de définir et d'exécuter des applications Docker multi-conteneurs. Avec Compose, vous utilisez un fichier YAML pour configurer les services de votre application. Ensuite, avec une seule commande, vous créez et démarrez tous les services de votre configuration.
$ sudo apt-get update
$ sudo apt-get install -y python3 python3-pip libffi-dev libssl-dev
$ sudo pip3 install docker-compose
$ docker-compose -v
NVIDIA L4T-Docker
Dépôt officiel : https://github.com/NVIDIA/nvidia-docker
Installer le runtime NVIDIA-Docker
$ sudo apt install -y nvidia-docker2
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
$ docker info | grep nvidia
L'image L4T-Docker personnalisée est disponible ICI
DLib est une bibliothèque C++ open source implémentant une variété d'algorithmes d'apprentissage automatique, notamment la classification, la régression, le clustering, la transformation de données et la prédiction structurée. ... Clustering K-Means, réseaux bayésiens et bien d'autres.
Dlib v19.18
$ cd ~
$ wget https://raw.githubusercontent.com/yqlbu/face_recognizer/master/setup.sh
$ sudo chmod +x setup.sh
$ ./setup.sh
LabelImg est un outil d'annotation d'images graphiques et d'étiquettes de cadres de délimitation d'objets dans les images.
$ sudo apt-get install pyqt4-dev-tools
$ sudo apt-get install python-lxml
$ sudo apt-get install python-qt4
$ sudo apt install libcanberra-gtk-module libcanberra-gtk3-module
$ git clone https://github.com/tzutalin/labelImg.git
$ cd labelImg
$ make qt4py2
$ python labelImg.py
Qt est utilisé pour développer des interfaces utilisateur graphiques (GUI) et des applications multiplateformes qui s'exécutent sur toutes les principales plates-formes de bureau et sur la plupart des plates-formes mobiles ou embarquées. La plupart des programmes GUI créés avec Qt ont une interface d'apparence native, auquel cas Qt est classé comme une boîte à outils de widgets.
$ sudo apt-get install qt5-default qtcreator -y
$ sudo apt-get install pyqt5 *
$ sudo apt install python3-pyqt5.qtsql
Kubernetes est rapidement devenu un ingrédient clé de l'informatique de pointe. Avec Kubernetes, les entreprises peuvent exécuter des conteneurs en périphérie de manière à optimiser les ressources, à faciliter les tests et à permettre aux équipes DevOps d'agir plus rapidement et plus efficacement à mesure que ces organisations consomment et analysent davantage de données sur le terrain.
K3S est une distribution Kubernetes légère développée par Rancher Labs, parfaite pour les cas d'utilisation Edge Computing où les ressources de calcul peuvent être quelque peu limitées.
Le guide d’installation et d’utilisation est disponible ICI
Nomachine ARMv8 (compatible avec les appareils Jetson)
NoMachine est un outil de bureau à distance gratuit, multiplateforme et sans serveur qui vous permet de configurer un serveur de bureau à distance sur votre ordinateur à l'aide du protocole vidéo NX. Le client peut être utilisé pour se connecter au serveur depuis n'importe où dans le monde.
Site officiel : ICI
La résolution du bureau est généralement déterminée par les capacités de l'écran connecté à Jetson. Si aucun écran n'est connecté, une résolution par défaut de 640x480
est sélectionnée. Pour utiliser une résolution différente, éditez /etc/X11/xorg.conf
et ajoutez les lignes suivantes :
Section " Screen "
Identifier " Default Screen "
Monitor " Configured Monitor "
Device " Tegra0 "
SubSection " Display "
Depth 24
Virtual 1280 800 # Modify the resolution by editing these values
EndSubSection
EndSection
gotop
python2
code-server
pip3
pour installer docker-compose
Logs
à jourArchiconda3
à v0.2.3 Licence MIT (C) Kevin Yu