英偉達 jetson nano 從NFS啟動,使用英偉達提供的rootfs根文件系統

0、目標

為了方便驅動階段的開發,并且使用英偉達提供的上層應用,這里希望使jetson nano 從NFS啟動,同時使用英偉達提供的rootfs根文件系統。

1、硬件準備

確保jetson nano 板子和開發主機之間使用網線進行連接(保持板子和開發主機的IP地址在同一網段,板子端在u-boot階段設置,開發主機側可以設置虛擬網卡),并且板子的調試口通過串口轉USB連接到開發主機;確保板子能夠停在u-boot啟動階段(方便設置啟動參數、進行tftp傳輸)。

2、關鍵操作

1)拷貝官方bsp的Linux_for_Tegra目錄下的rootfs;cp -r 拷貝到/nfs/rootfs_nvidia/rootfs,修改nfs服務(在文件/etc/exports 末尾添加 /nfs/rootfs_nvidia/rootfs *(rw,sync,no_subtree_check,no_root_squash));

2)取消英偉達自帶的登錄初始化操作;在英偉達 Linux_for_Tegra/tools 下使用sudo ./l4t_create_default_user.sh -u ubuntu -p nvidia -a,然后再

sudo chroot /nfs/rootfs_nvidia/rootfs /bin/bash
systemctl disable nv-oem-config.service
systemctl disable nv-oem-config.target
systemctl disable nv-oem-config-debconf.service
exit

3)最后用一開始提供的uboot命令,成功進入ubuntu系統;但此時發現沒有加載任何內核模塊,于是有了下一步;

4)使用下面命令,發現modules目錄下的文件名與當前內核不匹配,

uname -r
ls /lib/modules/$(uname -r)

于是,進入到bsp的kernel源碼目錄,進行安裝模塊到我們的nfs目錄:

export INSTALL_MOD_PATH=/nfs/rootfs_nvidia/rootfs
sudo -E make ARCH=arm64 modules_install

完成后,在/nfs/rootfs_nvidia/rootfs下得到4.9.253,刪掉原來的4.9.253-tegra,最后重新從nfs啟動即可成功。

5)解決sudo無法使用的問題:

//在開發機 x86 虛擬機 chroot 修復 sudo 權限
sudo chroot /nfs/rootfs_nvidia/rootfs /bin/bash
chown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo

3、u-boot啟動參數設置

//新的 測試環境
setenv ipaddr 192.168.137.9 
setenv serverip 192.168.137.118  
pci enum; pci //激活網卡
ping 192.168.137.118 //測試網絡連接setenv bootargs  root=/dev/nfs rw nfsroot=192.168.137.118:/nfs/rootfs_nvidia/rootfs,v3 console=ttyS0,115200 init=/sbin/init ip=192.168.137.9 setenv nfs_bootcmd  pci enum \; pci \; ext4load mmc 0:1 0x84000000 /home/zhan/Image \; tftp 0x83100000 tegra210-p3448-0000-p3449-0000-b00.dtb \; booti 0x84000000 - 83100000
run nfs_bootcmd

最終成功進入ubuntu,如下圖
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/87731.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/87731.shtml
英文地址,請注明出處:http://en.pswp.cn/web/87731.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

廣州華銳互動:以創新科技賦能教育,開啟沉浸式學習?

在教育領域,廣州華銳互動致力于打破傳統教學的局限性,為師生們帶來全新的沉浸式學習體驗。廣州華銳互動通過開發 VR 虛擬教學課件,將抽象的知識轉化為生動、逼真的虛擬場景,讓學生能夠身臨其境地感受知識的魅力 。比如在歷史課上&…

Grok 4 最新技術評測與發布指南

TL;DR:馬斯克跳過Grok 3.5直接發布Grok 4,計劃在7月4日后上線,專注編程模型優化,這次"極限迭代"能否讓馬斯克在AI軍備競賽中翻盤? 📋 文章目錄 🚀 Grok 4發布概況🏆 Grok…

為什么音視頻通話需要邊緣加速

? 主要原因 ? 降低傳輸延遲 用戶與邊緣節點之間通常1-2跳即可完成連接,避免跨國、跨運營商長鏈路傳輸 保障音視頻信令、媒體流快速到達,控制端到端延遲 ? 提升弱網環境下的連接穩定性 邊緣節點具備鏈路優化、丟包補償、轉發中繼功能 即使在WiFi切…

小架構step系列05:Springboot三種運行模式

1 概述 前面搭建工程的例子,運行的是一個桌面程序,并不是一個Web程序,在這篇中我們把它改為Web程序,同時從啟動角度看看它們的區別。 2 Web模式 2.1 桌面例子 回顧一下前面的例子,其pom.xml的配置如下:…

LoRaWAN的設備類型有哪幾種?

LoRaWAN(Long Range Wide Area Network)是一種專為物聯網(IoT)設備設計的低功耗、長距離通信協議。它根據設備的功能和功耗需求,將設備分為三種類型:Class A、Class B 和 Class C。每種設備類型都有其獨特的…

三維目標檢測|Iou3D 代碼解讀一

本文對OpenPCDet項目中的iou3d模塊中的iou3d_nms_kernel.cu代碼進行解讀,本次解決的函數是box_overlap,它的輸入是兩個包圍盒,輸出是兩個包圍盒在bev下的重疊面積,計算流程是 確定box_a和box_b的四個角落坐標 從包圍盒中提取坐標值…

探索實現C++ STL容器適配器:優先隊列priority_queue

前引: 在算法競賽中,選手們常常能在0.01秒內分出勝負;在實時交易系統中,毫秒級的延遲可能意味著數百萬的盈虧;在高并發服務器中,每秒需要處理數萬條不同優先級的請求——這些系統背后,都隱藏著同…

一、Dify 私有部署、本地安裝教程(LInux-openeuler)

官網:Dify AI Plans and Pricing 1.找到下載的位置。 2.可以切換文檔為中午文檔。 3.本次安裝使用Docker Compose 安裝,可以大致看一下文檔描述的配置信息要求。 4.各個版本信息,本次下載1.5.1版本,你也可以選擇安裝其他版本。 …

GASVM+PSOSVM+CNN+PSOBPNN+BPNN軸承故障診斷

一、各算法基本原理與技術特點 1. GASVM(遺傳算法優化支持向量機) 原理: 利用遺傳算法(GA)優化SVM的超參數(如懲罰因子 C C C 和核函數參數 g g g)。遺傳算法通過模擬自然選擇機制&#xff…

Python實例練習---魔法方法

(主頁有對應知識點^V^) 【練習要求】 針對知識點Python面向對象的魔法方法安排的本實例。要求實現:用__init__魔法方法定義書的長,寬,高,最后用__str__輸出返回值 【重要步驟提示】 定義class書類 2、使…

【從0-1的CSS】第3篇:盒子模型與彈性布局

文章目錄 盒子模型內容區content內邊距padding邊框border外邊距margin元素的寬度高度box-sizing屬性content-box:設置的width和height就是內容區的width和heightborder-box:設置的width和height是context padding border的width和height 彈性布局Flex容器的屬性fl…

設置LInux環境變量的方法和區別_Ubuntu/Centos

Linux環境變量可以通過export實現,也可以通過修改幾個文件來實現 1 通過文件設置LInux環境變量 首先是設置全局環境變量,對所有用戶都會生效 /etc/profile:該文件為系統的每個用戶設置環境信息,當用戶登錄時,該文件…

python緩存裝飾器實現方案

寫python的時候突然想著能不能用注解于是就寫了個這個 文章目錄 原始版改進點 原始版 import os import pickle import hashlib import inspect import functoolsdef _generate_cache_filename(func, *args, **kwargs):"""生成緩存文件名的內部函數""…

使用 java -jar xxxx.jar 運行 jar 包報錯: no main manifest attribute

1、問題描述 在Linux服務器上本想運行一下自己寫的一個JAR,但是報錯了! no main manifest attribute, in first-real-server-1.0-SNAPSHOT.jar 2、解決辦法 在自己的Spring項目的啟動類(xxx.xxx.xxx.XXXXApplication)所在的Mo…

信號與槽的總結

信號與槽的總結 QT中的信號與Linux的信號對比 1)信號源 2)信號的類型 3)信號的處理方式 QT信號與Linux信號的深度對比分析 一、信號源對比 QT信號 用戶定義信號 :由開發者通過 signals:關鍵字在QObject派生類中顯式聲明 cl…

Python Mitmproxy詳解:從入門到實戰

一、Mitmproxy簡介 Mitmproxy是一款開源的交互式HTTPS代理工具,支持攔截、修改和重放HTTP/HTTPS流量。其核心優勢在于: 多平臺支持:兼容Windows、macOS、Linux三端工具:提供命令行(mitmproxy)、Web界面(mitmweb)、數據流處理(mi…

刷題筆記--串聯所有單詞的子串

題目:1、我的寫法(超時)從題面自然想到先用回溯算法把words的全排列先算出來,然后遍歷字符串s一次將符合條件的位置加入結果全排列計算所有可能字符串算法寫法:這是一個模板用于所有全排列算法的情況,本質思…

操作系統【1】【硬件結構】【操作系統結構】

一、CPU如何執行程序? 提綱 圖靈機工作方式馮諾依曼模型線路位寬CPU位寬程序執行基本過程執行具體過程 1. 圖靈機工作方式 圖靈機可以視作“一臺帶規則的自動草稿機” 圖靈機基本組成: 紙帶(內存):連續格子組成&…

SQLite與MySQL:嵌入式與客戶端-服務器數據庫的權衡

SQLite與MySQL:嵌入式與客戶端-服務器數據庫的權衡 在開發應用程序時,數據庫選擇是一個至關重要的決策,它會影響應用的性能、可擴展性、部署難度和維護成本。SQLite和MySQL是兩種廣泛使用的關系型數據庫管理系統,它們各自針對不同…

CppCon 2018 學習:Smart References

“強類型別名”(strong typedefs) 的動機和實現,配合一個簡單例子說明: 動機(Motivation) 用 using filename_t string; 和 using url_t string; 來區分不同的字符串類型(比如文件名和網址&…