مجموعة من الأدوات الرائعة المصممة خصيصًا لأجهزة NVIDIA Jetson
حقوق النشر 2020-2024 @piyoki. جميع الحقوق محفوظة.
يهدف هذا الريبو إلى إعطائك تعليمات واضحة حول كيفية تثبيت الحزم على منصة AArch64(ARM)، خاصة في عائلة Jetson. تم اختبار جميع الحزم على Jetson AGX Xavier وJetson Nano.
يستخدم هذا الريبو الالتزام المسبق لإدارة وصيانة خطافات الالتزام المسبق متعددة اللغات.
قبل إجراء أي تثبيت، قد تحتاج إلى تثبيت التبعيات الأساسية التالية
$ 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
ملاحظات: إذا كنت ترغب في تعيين python3
كمترجم افتراضي لـ python ومدير حزمة pip
، فيرجى القيام بما يلي:
# 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
بايثون بيب
# pip3
$ pip3 install -U pip
$ pip3 install setuptools wheel cython
إذا لم تقم بتعيين مسار CUDA بعد، فقد تحتاج إلى القيام بذلك.
الإعداد مع البرنامج النصي
$ wget -qO- https://github.com/yqlbu/jetson-packages-family/raw/master/set_cuda.sh | bash -
الإعداد يدويا
$ 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
بالمقارنة مع Jetson Nano، هناك ميزة مهمة تأتي مع Jetson Xavier NX وJetson AGX Xavier وهي أنها تأتي مع موصل M.2 Key M. وفقًا لاختبار الطرف الثالث، فإن سرعة القراءة من SSD الخاص بي أسرع 7 مرات من بطاقة SD. وبالتالي، فإن الإقلاع من SSD سيؤدي بالتأكيد إلى تعزيز أداء Jetson Xavier.
دليل الإعداد
Jetsonhacks RootOnNVMe الريبو
سكريبت يمكنه التحكم في مروحة PWM مع تغيير درجة حرارة وحدة المعالجة المركزية لأي جهاز Jetson (Jetson Nano، Jetson TX1، TX2، Jetson Xavier)
دليل الإعداد
باي تورش v1.8.0 (جيتباك 4.4 +)
بايثون 3.6 - الشعلة-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 (متوافق مع 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
التحقق
$ python3 -c " import torch ; print(torch.__version__) "
لتثبيت إصدارات أخرى من PyTorch وTorchvision، يرجى زيارة الموقع هنا
بايثون 3.6 + جيتباك 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’
إذا واجهت خطأ عند تثبيت h5py، فيرجى تشغيل هذا الأمر لحل التبعية:
$ sudo apt-get install libhdf5-serial-dev hdf5-tools
لتثبيت إصدارات أخرى من Tensorflow، راجع المواقع أدناه:
جيتسون كزافييه: هنا
جيتسون نانو: هنا
بايثون3 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
التثبيت باستخدام Docker
$ docker run --name jupyterlab -d
-e TZ=Asia/Shanghai
-p 8888:8888
-v /appdata/jupyterlab:/opt/app/data
hikariai/jupyterlab:latest
قم بتشغيل التطبيق
$ 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"]} '
دليل الاستخدام: 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
نومبا v0.31 (Python3.6 + JetPack 4.3/4.4/4.5)
**ملاحظات: يتطلب Numba أن يكون **LLVM** مُصممًا مسبقًا، لذا يرجى مراجعة تعليمات LLVM وتثبيته قبل تثبيت Numba.
$ pip3 install numba==0.31 --user
Jetson-stats عبارة عن حزمة لمراقبة جهاز NVIDIA Jetson الخاص بك والتحكم فيه [Xavier NX, Nano, AGX Xavier, TX1, TX2] ويعمل مع جميع أنظمة NVIDIA Jetson البيئية.
$ sudo -H pip install -U jetson-stats
$ sudo jtop
NeoVim Server هو محرر نصوص يشبه IDE يتم تشغيله على خادم الويب.
المستندات: https://github.com/yqlbu/neovim-server/wiki
تثبيت الخط:
$ 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
التثبيت السريع:
$ 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
انتظر بضع ثوانٍ حتى تنتهي الحاوية من عملية التمهيد، ثم قم بزيارة http://localhost:6080/wetty
Visual Studio Code عبارة عن محرر تعليمات برمجية تم إعادة تعريفه وتحسينه لإنشاء تطبيقات الويب والسحابة الحديثة وتصحيح أخطاءها.
$ curl -s https://packagecloud.io/install/repositories/swift-arm/vscode/script.deb.sh | sudo bash
$ sudo apt-get install -y code-oss
Code-server هو مثيل Visual Studio Code الذي يعمل على خادم بعيد يمكن الوصول إليه من خلال أي متصفح ويب. يسمح لك بالبرمجة في أي مكان وعلى أي جهاز مثل الكمبيوتر اللوحي أو الكمبيوتر المحمول مع بيئة تطوير متكاملة متسقة (IDE)
دليل التثبيت: [هنا
Archiconda3 هو توزيع كوندا لـ 64 بت ARM. Anaconda هي توزيعة مجانية ومفتوحة المصدر للغتي برمجة Python وR للحوسبة العلمية (علم البيانات، وتطبيقات التعلم الآلي، ومعالجة البيانات على نطاق واسع، والتحليلات التنبؤية، وما إلى ذلك)، والتي تهدف إلى تبسيط إدارة الحزم ونشرها. مثل Virtualenv، تستخدم Anaconda أيضًا مفهوم إنشاء البيئات لعزل المكتبات والإصدارات المختلفة.
$ 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
لمنع conda من تنشيط البيئة الأساسية بشكل افتراضي
$ conda config --set auto_activate_base false
$ export " PATH=/bin:/usr/bin: $PATH " >> ~ /.bashrc
$ source ~ /.bashrc
يرجى الخروج من الموقع هنا للحصول على دليل الاستخدام.
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 )
ملاحظات: يمكنك تعديل البرنامج النصي لتثبيت الإصدار المخصص من OpenCV
$ wget https://github.com/yqlbu/jetson-packages-family/raw/master/OpenCV/install_opencv4.1.1_jetson.sh
PyCharm هي بيئة تطوير متكاملة (IDE) تستخدم في برمجة الكمبيوتر، وتحديدًا للغة Python. تم تطويره من قبل الشركة التشيكية JetBrains.
برنامج بايشارم الاحترافي
$ 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
مجتمع بايشارم
$ 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
يجري
$ pycharm
ملاحظات: قد تجد إصدارات أخرى هنا
Lazygit عبارة عن واجهة مستخدم طرفية بسيطة لأوامر git، مكتوبة بلغة Go باستخدام مكتبة gocui.
$ sudo add-apt-repository ppa:lazygit-team/release
$ sudo apt-get update
$ sudo apt-get install lazygit
Ranger هو مدير ملفات وحدة التحكم مع روابط مفاتيح VI. يوفر واجهة لعنات بسيطة وجميلة مع إطلالة على التسلسل الهرمي للدليل. يأتي مع بندقية، وهو مشغل ملفات جيد في اكتشاف البرنامج الذي سيتم استخدامه لنوع الملف تلقائيًا.
$ pip install ranger-fm
(اختياري) قم بتثبيت أجهزة الحارس
$ git clone https://github.com/alexanderjeurissen/ranger_devicons ~ /.config/ranger/plugins/ranger_devicons
$ echo " default_linemode devicons " >> $HOME /.config/ranger/rc.conf
نموذج التكوين متاح هنا
Lsd هو أمر ls التالي
قم بتنزيل أحدث حزمة .deb
من صفحة الإصدار وقم بتثبيتها عبر:
sudo dpkg -i lsd_0.20.1_arm64.deb # adapt version number and architecture
Ctop هي واجهة تشبه الأعلى لمقاييس الحاوية. يوفر Ctop نظرة عامة موجزة ومكثفة للمقاييس في الوقت الفعلي لحاويات متعددة.
# 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 هو تطبيق واجهة مستخدم تفاعلي سريع وخفيف الوزن لتتبع ومراقبة إحصائيات العملة المشفرة في الوقت الفعلي.
المستندات: هنا
$ curl -o- https://raw.githubusercontent.com/miguelmota/cointop/master/install.sh | bash
Gotop جهاز مراقبة نشاط رسومي قائم على المحطة مستوحى من gtop وvtop
# install
$ curl -fsSL git.io/gotop.sh | sudo bash
# uninstall
sudo rm -f /usr/local/bin/gotop
شاشة Bashtop Resource التي تعرض الاستخدام والإحصائيات الخاصة بالمعالج والذاكرة والأقراص والشبكة والعمليات.
$ sudo add-apt-repository ppa:bashtop-monitor/bashtop
$ sudo apt update
$ sudo apt install bashtop
Httpie هو عميل HTTP لسطر الأوامر. هدفها هو جعل تفاعل CLI مع خدمات الويب صديقًا للإنسان قدر الإمكان. تم تصميم HTTPie للاختبار وتصحيح الأخطاء والتفاعل بشكل عام مع واجهات برمجة التطبيقات وخوادم HTTP. تسمح أوامر http & https بإنشاء وإرسال طلبات HTTP عشوائية. يستخدمون بناء جملة بسيطًا وطبيعيًا ويقدمون مخرجات منسقة وملونة.
$ apt install httpie -y
Neofetch عبارة عن برنامج نصي بسيط متعدد الأنظمة الأساسية يقوم بمسح معلومات نظامك ويعرضها في محطة طرفية، جنبًا إلى جنب مع صورة ASCII أو أي صورة مرغوبة بجوار الإخراج.
$ sudo add-apt-repository ppa:dawidd0811/neofetch
$ sudo apt-get update
$ sudo apt-get install neofecth
Docker هو في الأساس محرك حاوية يستخدم ميزات Linux Kernel مثل مساحات الأسماء ومجموعات التحكم لإنشاء حاويات أعلى نظام التشغيل وأتمتة نشر التطبيقات على الحاوية. يستخدم Docker نظام الملفات الموحد للنسخ عند الكتابة للتخزين الخلفي الخاص به.
$ sudo wget -qO- https://get.docker.com/ | sh
$ sudo usermod -aG docker $USER
$ sudo systemctl enable docker
$ sudo systemctl status docker
لتمكين الوصول إلى مترجم CUDA (nvcc) أثناء عمليات docker build
، أضف "default-runtime": "nvidia"
إلى ملف التكوين /etc/docker/daemon.json
الخاص بك قبل محاولة إنشاء الحاويات:
{
"runtimes" : {
"nvidia" : {
"path" : " nvidia-container-runtime " ,
"runtimeArgs" : []
}
},
"features" : {
"buildkit" : true
},
"default-runtime" : " nvidia "
}
أعد تشغيل Docker Daemon
$ sudo systemctl restart docker
تحقق مما إذا كان وقت التشغيل الافتراضي مضبوطًا على nvidia:
$ docker info | grep nvidia
Docker Compose هي أداة لتحديد وتشغيل تطبيقات Docker متعددة الحاويات. باستخدام Compose، يمكنك استخدام ملف YAML لتكوين خدمات التطبيق الخاص بك. وبعد ذلك، باستخدام أمر واحد، يمكنك إنشاء كافة الخدمات وبدء تشغيلها من التكوين الخاص بك.
$ sudo apt-get update
$ sudo apt-get install -y python3 python3-pip libffi-dev libssl-dev
$ sudo pip3 install docker-compose
$ docker-compose -v
نفيديا L4T دوكر
الريبو الرسمي: https://github.com/NVIDIA/nvidia-docker
قم بتثبيت وقت تشغيل NVIDIA-Docker
$ sudo apt install -y nvidia-docker2
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker
$ docker info | grep nvidia
صورة L4T-Docker المخصصة متاحة هنا
DLib هي مكتبة C++ مفتوحة المصدر تنفذ مجموعة متنوعة من خوارزميات التعلم الآلي، بما في ذلك التصنيف والانحدار والتجميع وتحويل البيانات والتنبؤ المنظم. ... وسائل K للتجميع والشبكات الافتراضية وغيرها الكثير.
دليب v19.18
$ cd ~
$ wget https://raw.githubusercontent.com/yqlbu/face_recognizer/master/setup.sh
$ sudo chmod +x setup.sh
$ ./setup.sh
LabelImg عبارة عن أداة لتعليق الصور الرسومية وتسمية المربعات المحيطة بالكائنات في الصور.
$ 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 لتطوير واجهات المستخدم الرسومية (GUIs) والتطبيقات متعددة المنصات التي تعمل على جميع منصات سطح المكتب الرئيسية ومعظم الأنظمة الأساسية المحمولة أو المدمجة. تحتوي معظم برامج واجهة المستخدم الرسومية التي تم إنشاؤها باستخدام Qt على واجهة ذات مظهر أصلي، وفي هذه الحالة يتم تصنيف Qt على أنها مجموعة أدوات القطعة.
$ sudo apt-get install qt5-default qtcreator -y
$ sudo apt-get install pyqt5 *
$ sudo apt install python3-pyqt5.qtsql
لقد أصبح Kubernetes سريعًا عنصرًا رئيسيًا في الحوسبة المتطورة. باستخدام Kubernetes، يمكن للشركات تشغيل الحاويات على الحافة بطريقة تعمل على زيادة الموارد إلى الحد الأقصى، وتجعل الاختبار أسهل، وتسمح لفرق DevOps بالتحرك بشكل أسرع وأكثر فعالية حيث تستهلك هذه المؤسسات المزيد من البيانات في الميدان وتحللها.
K3S عبارة عن توزيعة Kubernetes خفيفة الوزن تم تطويرها بواسطة Rancher Labs، وهي مثالية لحالات استخدام Edge Computing حيث قد تكون موارد الحوسبة محدودة إلى حد ما.
دليل التثبيت والاستخدام متاح هنا
Nomachine ARMv8 (متوافق مع أجهزة Jetson)
NoMachine عبارة عن أداة مجانية لسطح المكتب عن بعد ومتعددة المنصات وبدون خادم تتيح لك إعداد خادم سطح مكتب بعيد على جهاز الكمبيوتر الخاص بك باستخدام بروتوكول الفيديو NX. يمكن استخدام العميل للاتصال بالخادم من أي مكان في العالم.
الموقع الرسمي: هنا
يتم تحديد دقة سطح المكتب عادةً من خلال إمكانيات الشاشة المرفقة بـ Jetson. إذا لم يتم إرفاق أي شاشة، فسيتم تحديد دقة افتراضية تبلغ 640x480
. لاستخدام دقة مختلفة، قم بتحرير /etc/X11/xorg.conf
وألحق الأسطر التالية:
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
لتثبيت docker-compose
Logs
Archiconda3
إلى v0.2.3 رخصة معهد ماساتشوستس للتكنولوجيا (C) كيفن يو