برد جستون نانو دنیای بسیار وسیعی دارد. به سادگی نمیتوانیم از روی مباحث آن عبور کنیم. در سلسله آموزشهای جتسون نانو، پس از بررسی سخت افزار و امکانات OS و … میرسیم به نصب جت پک همانطور که پیشتر هم اعلام کردیم، جت پک یکی از مهمترین موارد کارکرد در برد جتسون نانو است. در این آموزش قد به قدم روش نصب جت پک را پیش خواهیم برد. در ادامه آموزش مقدماتی از Jetson نصب Jetpack با مرجع تخصصی جتسون نانو به زبان فارسی، دیجی اسپارک همراه باشید.
روند نصب Jepack در جتسون نانو
بسته به نوع دستگاه Jetson جتسون، راه های مختلفی برای نصب JetPack وجود دارد.
SD Card image
برای کاربران کیت توسعه Jetson Nano ساده ترین روش نصب JetPack همان مراحل نصبی است که در آموزش های قبلی نشان داده شده است. یعنی دانلود image و رایت کردن آن روی microSD card است. پس از طی مراحل یاد شده از آن برای راه اندازی برد توسعه خود استفاده کنید.
NVIDIA SDK Manager
برای اجرای SDK Manager به یک کامپیوتر با سیستم عامل لینوکس که دارای Ubuntu Linux 16.04 یا ۱۸٫۰۴ است، نیاز دارید.
Package Management Tool
NVIDIA اجزای JetPack را به عنوان بسته های Debian ارائه می دهد. با فرض اینکه برد جتسون نانو شما با L4T 32.3.1 یا بالاتر فلش شده و در حال اجرا است، دستورات زیر تمام دیگر اجزای JetPack که با نسخه L4T شما مطابقت دارند را نصب می کند.
sudo apt update sudo apt install nvidia-jetpack
برای مشاهده به صورت انفرادی آن دسته از بسته های Debian که بخشی از nvidia-jetpack metapackage هستند دستور زیر را وارد کنید:
sudo apt show nvidia-jetpack
اگر فضای دیسک شما محدود است (به عنوان مثال از یک microSD card 16 گیگا بایتی برای برد توسعه Jetson Nano استفاده می کنید) از این دستورات استفاده کنید:
sudo apt update apt depends nvidia-jetpack | awk '{print $2}' | xargs -I {} sudo apt install -y {}
۳-۲) ارتقاء و بروزرسانی JetPack
با شروع JetPack 4.4، ارتقاء به نسخه بعدی JetPack را می توان با استفاده از یک ابزار مدیریت بسته مثل apt انجام داد.
ابتدا L4T را برزورسانی کنید.
بروز رسانی خود به دو دسته تقسیم می شود:
بروزرسانی به آخرین نسخه ارائه شده مثال: از ۳۲٫۴٫۱ به ۳۲٫۴٫۲
بروزرسانی به آخرین نسخه عدد کوچک مثال: از ۳۲٫۳٫x به ۳۲٫۴٫۲
برای ارتقاء روش اول دستورات زیر را وارد کنید:
sudo apt update apt list --upgradable sudo apt upgrade
برای ارتقاء روش دوم نیز این مراحل را انجام دهید:
ابتدا فایل تنظیمات apt را در یک ویرایشگر متن مثل vi باز کنید:
sudo vi /etc/apt/sources.list.d/nvidia-l4t-apt-source.list
نام مخزن (repository) و آدرس دانلود را در فرمان های deb عوض کنید، فرمان های اصلی به این صورت هستند:
deb https://repo.download.nvidia.com/jetson/common <release> main deb https://repo.download.nvidia.com/jetson/<platform> <release> main
<release> شماره انتشار نسخه کوچکی است که می خواهید بروزرسانی کنید، به عنوان مثال برای بروزرسانی به نسخه جزئی (کوچک) ۳۲٫۲، r32 را با r32.2 جایگزین کنید. OTA به آخرین نسخه ارائه شده برای شماره انتشار کوچک مشخص شده آپدیت می شود. (در این مثال ۳۲٫۲٫۱)
<platform> که پلتفرم پردازنده را مشخص می کند:
t186 برای سری NVIDIA Jetson TX2
t194 برای سری NVIDIA Jetson AGX Xavier یا سری Jetson Xavier NX
t210 برای سری NVIDIA Jetson Nano یا Jetson TX1
به عنوان مثال برای نسخه فعلی ۳۲٫۴ و پلتفرم Jetson Nano فرامین به این شکل خواهند بود:
deb https://repo.download.nvidia.com/jetson/common r32.4 main deb https://repo.download.nvidia.com/jetson/t210 r32.4 main
فایل پیکربندی را ذخیره نموده و ببندید. این فرامین را وارد کنید:
sudo apt update sudo apt dist-upgrade
چنانچه apt از شما درخواست نمود که آیا فایل تنظیمات را انتخاب کند، با حرف Y به نشانه تأیید به آن پاسخ دهید. هر زمان که بروزرسانی تمام شد دستگاه جتسون خود را ری استارت کنید. توجه: فرمان do-release-upgrade در حال حاضر غیرفعال است، چرا که نسخه لینوکس Jetson از ویرایش ۲۰٫۰۴ آن پشتیبانی نمی کند. در مرحله بعد سایر کامپوننت های JetPack را ارتقاء دهید.
sudo apt install nvidia-jetpack
چنانچه فضای دیسک محدود دارید. کلیه کامپوننت های JetPack compute را حذف کنید. چنانچه JetPack 4.4 را اجرا می کنید از این دستور استفاده کنید:
sudo apt autoremove --purge nvidia-container-csv-cuda libopencv-python libvisionworks-sfm-dev libvisionworks-dev libvisionworks-samples libnvparsers6 libcudnn7-doc libcudnn7-dev libnvinfer-samples libnvinfer-bin nvidia-container-csv-cudnn libvisionworks-tracking-dev vpi-samples tensorrt libopencv libnvinfer-doc libnvparsers-dev libcudnn7 libnvidia-container0 cuda-toolkit-10-0 nvidia-container-csv-visionworks graphsurgeon-tf libopencv-samples python-libnvinfer-dev libnvinfer-plugin-dev libnvinfer-plugin6 nvidia-container-toolkit libnvinfer-dev libvisionworks libopencv-dev nvidia-l4t-jetson-multimedia-api vpi-dev vpi python3-libnvinfer python3-libnvinfer-dev opencv-licenses nvidia-container-csv-tensorrt libnvinfer6 libnvonnxparsers-dev libnvonnxparsers6 uff-converter-tf nvidia-docker2 libvisionworks-sfm libnvidia-container-tools nvidia-container-runtime python-libnvinfer libvisionworks-tracking
و چنانچه از JetPack 4.5 استفاده می کنید این دستور را اجرا کنید:
sudo apt autoremove --purge nvidia-container-csv-cuda libopencv-python libvisionworks-sfm-dev libvisionworks-dev libvisionworks-samples libnvparsers7 libcudnn8-doc libcudnn8-dev libnvinfer-samples libnvinfer-bin nvidia-container-csv-cudnn libvisionworks-tracking-dev vpi1-samples tensorrt libopencv libnvinfer-doc libnvparsers-dev libcudnn8 libnvidia-container0 cuda-toolkit-10-2 nvidia-container-csv-visionworks graphsurgeon-tf libopencv-samples python-libnvinfer-dev libnvinfer-plugin-dev libnvinfer-plugin7 nvidia-container-toolkit libnvinfer-dev libvisionworks libopencv-dev nvidia-l4t-jetson-multimedia-api vpi1-dev vpi1-demos python3-libnvinfer python3-libnvinfer-dev opencv-licenses nvidia-container-csv-tensorrt libnvinfer7 libnvonnxparsers-dev libnvonnxparsers7 uff-converter-tf nvidia-docker2 libvisionworks-sfm libnvidia-container-tools nvidia-container-runtime python-libnvinfer libvisionworks-tracking
اگر نسخه فعلی JetPack با استفاده از SDK Manager نصب شده است، مخزن (repository) محلی را حذف کنید.
sudo apt purge cuda-repo-l4t-10-0-local-10.0.326 libvisionworks-repo libvisionworks-sfm-repo libvisionworks-tracking-repo
فضای اضافی دیسک را آزاد کنید.
sudo apt clean
L4T را همانند شیوه ای که در بالا ذکر شد بروزرسانی کنید. کاپوننت های جدید JetPack را نصب کنید.
apt depends nvidia-jetpack | awk '{print $2}' | xargs -I {} sudo apt install -y {}
لیستی از پکیجهای JetPack OTA
در زیر لیستی از بسته های بروزرسانی JetPack OTA برای کیت های توسعه Jetson و JetPack 4.6 آمده است:
Component Group |
Packages |
|
CUDA Toolkit for L4T |
cuda-command-line-tools-10-2 cuda-compiler-10-2 cuda-cudart-10-2 cuda-cudart-dev-10-2 cuda-cuobjdump-10-2 cuda-cupti-10-2 cuda-cupti-dev-10-2 cuda-documentation-10-2 cuda-driver-dev-10-2 cuda-gdb-10-2 cuda-gdb-src-10-2 cuda-libraries-10-2 cuda-libraries-dev-10-2 cuda-memcheck-10-2 cuda-minimal-build-10-2 cuda-nvcc-10-2 cuda-nvdisasm-10-2 cuda-nvgraph-10-2 cuda-nvgraph-dev-10-2 cuda-nvml-dev-10-2 cuda-nvprof-10-2 |
cuda-nvprune-10-2 cuda-nvrtc-10-2 cuda-nvrtc-dev-10-2 cuda-nvtx-10-2 cuda-samples-10-2 cuda-toolkit-10-2 cuda-tools-10-2 cuda-visual-tools-10-2 libcublas-dev libcublas10 libcufft-10-2 libcufft-dev-10-2 libcurand-10-2 libcurand-dev-10-2 libcusolver-10-2 libcusolver-dev-10-2 libcusparse-10-2 libcusparse-dev-10-2 libnpp-10-2 libnpp-dev-10-2 |
cuDNN |
libcudnn8 libcudnn8-dev |
libcudnn8-samples |
TensorRT |
libnvinfer8 libnvinfer-dev libnvinfer-plugin8 libnvinfer-plugin-dev libnvonnxparsers8 libnvonnxparsers-dev libnvparsers8 libnvparsers-dev |
libnvinfer-bin libnvinfer-doc libnvinfer-samples tensorrt python3-libnvinfer python3-libnvinfer-dev graphsurgeon-tf uff-converter-tf |
OpenCV |
libopencv libopencv-dev opencv-licenses |
libopencv-python libopencv-samples |
VisionWorks |
libvisionworks libvisionworks-dev libvisionworks-samples libvisionworks-sfm |
libvisionworks-sfm-dev libvisionworks-tracking libvisionworks-tracking-dev |
VPI |
libnvvpi1 vpi1-dev python-vpi1 |
python3-vpi1 vpi1-samples vpi1-demos |
NVIDIA container runtime with Docker integration |
nvidia-container-csv-cuda nvidia-container-csv-cudnn nvidia-container-csv-tensorrt nvidia-container-csv-opencv nvidia-container-csv-visionworks |
libnvidia-container0 libnvidia-container-tools nvidia-container-toolkit nvidia-container-runtime nvidia-docker2 |
Multimedia API |
nvidia-l4t-jetson-multimedia-api |
|
بسته های JetPack Debian بر روی کاپیوتر های میزبان
NVIDIA تعدادی از بستههای Debian را ارائه میکند که کامپوننت های JetPack را در کامپیوتر میزبان اضافه یا بهروزرسانی میکنند. برای آماده سازی کامپیوتر میزبان جهت نصب کامپوننت های JetPack، مراحل زیر را انجام دهید. برای نصب کلید عمومی مخزن ورژن x86_64 سرور عمومی APT فرمان زیر را وارد کنید.
sudo apt-key adv --fetch-key http://repo.download.nvidia.com/jetson/jetson-ota-public.asc
مخزن x86_64 زیر را به لیست سورس کامپیوتر میزبان اضافه کنید. برای میزبان Ubuntu 16.04:
deb http://repo.download.nvidia.com/jetson/x86_64 xenial r32.4
برای میزبان Ubuntu 18.04:
deb http://repo.download.nvidia.com/jetson/x86_64 bionic r32.4
فرمان زیر را وارد کنید:
sudo apt update
از apt برای دانلود و نصب بسته های مورد نیاز استفاده کنید.
sudo apt-get install libnvvpi1 vpi1-dev vpi1-cross-aarch64-l4t python-vpi1 python3-vpi1 vpi1-samples libvisionworks-samples libvisionworks-dev libvisionworks libvisionworks-sfm-dev libvisionworks-sfm libvisionworks-tracking libvisionworks-tracking-dev cuda-toolkit-10-2 cuda-cross-aarch64-10-2 nsight-systems-2021.2.3 nsight-graphics-for-embeddedlinux-2021.2.1
جدول زیر لیست بسته های JetPack را نشان می دهد که به کمک apt می توانید آنها را نصب کنید، و هر بسته هم محتویاتش نمایش داده شده:
Component Group |
Packages |
CUDA |
cuda-10-2 cuda-command-line-tools-10-2 cuda-compat-11-0 cuda-compiler-10-2 cuda-cudart-10-2 cuda-cudart-dev-10-2 cuda-cuobjdump-10-2 cuda-cupti-10-2 cuda-cupti-dev-10-2 cuda-demo-suite-10-2 cuda-documentation-10-2 cuda-driver-dev-10-2 cuda-drivers-450 cuda-drivers cuda-gdb-10-2 cuda-gdb-src-10-2 cuda-libraries-10-2 cuda-libraries-dev-10-2 cuda-memcheck-10-2 cuda-minimal-build-10-2 cuda-nsight-10-2 cuda-nsight-compute-10-2 cuda-nsight-systems-10-2 cuda-nvcc-10-2 cuda-nvdisasm-10-2 cuda-nvgraph-10-2 cuda-nvgraph-dev-10-2 cuda-nvml-dev-10-2 cuda-nvprof-10-2 cuda-nvprune-10-2 cuda-nvrtc-10-2 cuda-nvrtc-dev-10-2 cuda-nvtx-10-2 cuda-nvvp-10-2 cuda-runtime-10-2 cuda-samples-10-2 cuda-sanitizer-10-2 cuda-toolkit-10-2 cuda-tools-10-2 cuda-visual-tools-10-2 cuda libcublas-dev libcublas10 libcufft-10-2 libcufft-dev-10-2 libcurand-10-2 libcurand-dev-10-2 libcusolver-10-2 libcusolver-dev-10-2 libcusparse-10-2 libcusparse-dev-10-2 libnpp-10-2 libnpp-dev-10-2 libnvidia-cfg1-450 libnvidia-common-450 libnvidia-compute-450 libnvidia-decode-450 libnvidia-encode-450 libnvidia-extra-450 libnvidia-fbc1-450 libnvidia-gl-450 libnvidia-ifr1-450 libnvjpeg-10-2 libnvjpeg-dev-10-2 libxnvctrl-dev libxnvctrl0 nsight-compute-2019.5.3 nsight-systems-2021.1.3 nvidia-compute-utils-450 nvidia-dkms-450 nvidia-driver-450 nvidia-headless-450 nvidia-headless-no-dkms-450 nvidia-kernel-common-450 nvidia-kernel-source-450 nvidia-modprobe nvidia-settings nvidia-utils-450 xserver-xorg-video-nvidia-450 |
CUDA cross-compile package (host) |
cuda-cross-aarch64-10-2 cuda-cross-aarch64 cuda-cudart-cross-aarch64-10-2 cuda-cupti-cross-aarch64-10-2 cuda-driver-cross-aarch64-10-2 cuda-nsight-compute-addon-l4t-10-2 cuda-nvcc-cross-aarch64-10-2 cuda-nvgraph-cross-aarch64-10-2 cuda-nvml-cross-aarch64-10-2 cuda-nvprof-cross-aarch64-10-2 cuda-nvrtc-cross-aarch64-10-2 cuda-nvtx-cross-aarch64-10-2 libcublas-cross-aarch64 libcufft-cross-aarch64-10-2 libcurand-cross-aarch64-10-2 libcusolver-cross-aarch64-10-2 libcusparse-cross-aarch64-10-2 libnpp-cross-aarch64-10-2 |
Computer Vision – VisionWorks (host) |
libvisionworks libvisionworks-dev libvisionworks-samples libvisionworks-sfm libvisionworks-sfm-dev libvisionworks-tracking libvisionworks-tracking-dev |
Computer Vision – VPI (host) |
libnvvpi1 vpi1-dev vpi1-cross-aarch64-l4t python-vpi1 python3-vpi1 vpi1-samples |
Developer Tools |
nsight-systems-2021.2.3 nsight-graphics-for-embeddedlinux-2021.2.1 |
لوازم مورد نیاز
بردهای مبتنی بر هوش مصنوعی Jetson nano
جمع بندی
در این بخش ادامه موضوع جت پک Jetpack SDK را با بررسی ابزارهای توسعه در آن ادامه دادیم. یکی از ابزارهای مهم و کاربردی هوش مصنوعی در جتسون نانو، جت پک Jetpack SDK است. از جمله NVIDIA Nsight Eclipse Edition و CUDA بررسی شدند. در بخشهای بعدی بسته به پروژه مورد نظر با این موارد کار خواهیم کرد. آگاهی نبست به این ابزارها میتوانند در روند کار کردن و راه اندازی پروژه ها با برد جتسون نانو، به ما کمک کنند.
چنانچه مطالب این آموزش را گنک یافتید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در مطالب درج شده وجود دارد میتوانید از همین طریق اطلاع رسانی کنید.