Ⅰ 在Ubuntu12.04中搭建NFS Server時在:
1、執行命令:sudo apt-get install nfs-kernel-server 我之前安裝了,之所以寫下來是防止重裝系統後,這些東西都怎麼安裝。
2、執行命令:mkdir /home/song/nfs 建立一個nfs服務的專有明沒如的文件夾,這里路徑依自己喜好而定!不過要記得這個路徑
3、建立好文件夾後,接著執行命令:sudo vim /etc/exports 配置nfs
4、在文章的最後一行添加:/home/song/nfs *(rw,sync,no_root_squash,no_subtree_check)
/home/song/nfs *(rw,sync,no_root_squash,no_subtree_check)這一行的含義是:
/home/song/nfs:與nfs服務客戶端共享的目錄,這個路徑必須和你前面設置的文件的路徑一致!
*:允許所有的網段訪問,也可以使用具體的IP
rw:掛接此目錄的客戶端對該共享目錄具有讀寫許可權
sync:資料同步寫入內存和硬碟
no_root_squash:root用戶具有對根目錄的完全管理訪問許可權。
no_subtree_check:不檢查父目錄的許可權。更多的參數說明我在文章下面貼出來了!
5、修改完上述配置文件保存退出。
6、執行命令:sudo /etc/init.d/portmap restart 重啟portmap服務。nfs是一個RPC程序,使用它前,需要映射好埠,通過portmap設定。
7、執行命令:sudo /etc/init.d/nfs-kernel-server restart 重啟nfs服務。
8、到這里,你就察寬可以使用nfs服務了。可是怎麼用呢?我之前是將自己移植的uboot、內核下載到開發板上後,然後利用nfs服務在開發板上啟動自己製作的根文件系統的,可是由於剛整理完內核移植,現在我的mini2440的開發板上還是他自帶的supervivi、linux2.6.32.2內核和rootfs_qtopia_qt4.img根文件系統。並且接下來,我還會寫一篇利用nfs啟動自己製作的根文件系統的文章,在這里先用自帶說一下怎麼使用吧!那篇文章寫完之後再把鏈接貼過來。
使用步驟(下面的步驟看看就行了哈,不激啟用做實驗的)
9、首先最重要的就是用網線將你的開發板和電腦相連!然後打開串口終端執行superviv中的 f 命令,格式化你的nand flash,這是為了確保nand flash里邊沒有根文件系統了。
你看,啟動不起來了吧!界面一直停留在這里!
10、通過supervivi的 v命令和k命令,分別將supevivi和內核下載到nand flash的分區,下載過程是要結合這dnw的哈!(注意這里dnw的configuretion地址是0x3000 0000)
下載supervivi到nand flash對應的分區
下載內核到nand flash對應的分區
11、到這里,我不打算利用supervivi自帶的y命令將根文件系統下載到nand flash了,現在正式開始介紹利用nfs掛載根文件系統。
12、將根文件系統放在咱們創建的文件里,如下圖
13、在supevivi上輸入q,進入supervivi的命令模式
14、在命令模式下,輸入: param set linux_cmd_line "console=ttySAC0,115200n8 root=/dev/nfs nfsroot=211.64.20.161:/home/song/nfs/rootfs_qtopia_qt4 ip=211.64.20.167",按回車鍵
上圖只需要修改的地方為 :nfsroot=你的主機IP:根文件系統路徑 ip=你的開發板ip地址,注意開發板的ip地址只要和主機ip地址在一個網段內就可。
15、接著在命令行模式下輸入:boot,按回車鍵就可以啟動系統了!
Ⅱ uboot、內核、操作系統、根文件系統他們之間到底是什麼關系,求大神指點!!
uboot是個引導啟動程序。BIOS自檢完成後就把電腦控制權交給uboot,由uboot來載入並引導操作系統運行。
內核就是最最最核心的那部份。操作系統內核就是操作系統的最最最最核心的那些程序。新安裝的操作系統中,一些自帶的小工具啊,小游戲啊,甚至連鍵盤滑鼠控制功能,這些都不屬於內核。內核是不包括硬體驅動程序的。
操作系統就是控制計算機硬體的軟體系統。它與內核的區別是它包含硬體驅動和一些基本的實用功能。
根文件系統這個名詞很少出現在windows中。在計算機存儲中,目錄結構都是以樹形結構表示的,根就是指這棵樹的根部。其他所有目錄都是在這個「根」上面逐級分配而來。「根文件運游前系統」因為你加了「系統」二字,所以可以解釋為是指「整棵樹」,整個「樹形結構的文件系統」
它們之間的關系是:BIOS自檢---uboot引導----加旁清載內核----操作系統啟動---啟動完成,系統待機。這幾個步驟所需要用到的文件與程磨燃序什麼的全部存貯在文件系統中。在這幾個名詞來說,文件系統可以獨立存在,但其他幾樣則無法脫離文件系統而存在。
Ⅲ 嵌入式Linux系統移植和裁剪_10_環境搭建和測試(九)
這段時間新冠肺炎疫情又波及了好幾個省,下個星期又要在家辦公了,哪都不能去了。不過話說回來,在城裡面本來也就沒什麼好玩的,也沒什麼地方好去的。
接著上一次的內容,要從網路載入內核和設備樹,以及掛載網路根文件系統物枝毀,需要在UBoot裡面設置 bootcmd 和 bootargs 兩個環境變數如下:
set bootcmd 'tftp 41000000 uImage; tftp 42000000 exynos4412-fs4412.dtb; bootm 41000000 - 42000000'
set bootargs 'console=ttySAC2,115200 root=/dev/nfs rw nfsroot=192.168.1.8:/samba/nfs/rootfs,proto=tcp clk_ignore_unused /init=/linuxrc ip=192.168.1.100:192.168.1.8:192.168.1.1:255.255.255.0'
這兩個參數需要根據自己的實際情況加以調整,主要是nfs和ip的一些設置。
bootcmd 是內核啟動命令,其表示使用tftp協議,從TFTP文件夾下載入uImage到41000000的內存地址。然後從TFTP文件夾下載入exynos4412-fs4412.dtb到42000000的內存地址,然後執行bootm命令,從41000000的地址啟動內核。
bootargs 是內核啟動的參數,比如設置控制台的串口參數,指定根文件系統(這里我們使用nfs從網路上掛載根文件系統,注意協議用tcp,如果用udp的話,很可能會因為丟包而導致掛載失敗)
最後需要saveenv保存設置。
就緒之後,板子重新上電,不要回車打斷UBoot,讓其引導Linux內核啟動,結果內核啟動失敗。
後來在群里問了老師,他們發了內核鏡像和設備樹過來,讓我用他們編譯的試試,我一試,還真能用。本來我還懷疑是不是根文件系統的問題,後來老師讓我看看設備樹,說是要注釋掉下面這一段。搭頌
但是我一看,本來就是注釋掉的啊。。。然後就無解了,我以為可能還是根文件系統的問題,群里問老師也沒有再回,罩備就擱置了兩天,這也算是中間的一個小插曲吧。然後我剛剛又在群里問,另一個老師說這一段現在不需要注釋了,就是要加進來。然後我就把注釋去掉了,重新編譯後,果然就可以啟動了。
可以看到根文件系統已經掛載成功了,那這樣我們的環境搭建部分就測試OK了,我們得到了一份可以在4412板子上運行的Linux內核源碼,UBoot源碼和根文件系統。
所以呢,感覺培訓機構的資料管理挺亂的,各個老師之間的信息不同步,資料也不同步,視頻可能是很老的,配套資料也過時了,你不問還不知道,這可能也是他們需要建立大量的群來答疑的原因吧,總之,體驗不佳。當然他們覺得這些步驟你不需要做啊,直接用現成的虛擬機鏡像就可以了嘛,編譯工具鏈,各種依賴庫,環境變數那些都給你搞好了,幹嘛要自己搞。他們這種想法就只適合那些初學驅動的人,確實,如果你只想學習驅動,那確實用他們准備好的虛擬機鏡像就可以了。但是如果我要換一個晶元,環境還得自己搭,那就不好使了,或者說我自己已經有虛擬機了,再搞一個鏡像其實顯得很累贅。
好了,今天就到這里了,後面就開始UBoot的移植學習。
Ⅳ 我的友善之臂micro2440開發板,燒寫uboot和Linux內核後我想設置nfs網路根文件系統,但是一直有問題。
linux-2.6.35在fs2410開發板啟動後,通過nfs掛載文件系統,但是rtc不能用,也會在掛載文件系統之前列印如下提示信息:
TCP cubic registered
NET: Registered protocol family 1
RPC: Registered udp transport mole.
RPC: Registered tcp transport mole.
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
IP-Config: Complete:
device=eth0, addr=192.168.20.253, mask=255.255.255.0, gw=192.168.20.1,
host=thomas_fs2410, domain=, nis-domain=(none),
bootserver=192.168.20.192, rootserver=192.168.20.192, rootpath=
Looking up port of RPC 100003/2 on 192.168.20.192
Looking up port of RPC 100005/1 on 192.168.20.192
VFS: Mounted root (nfs filesystem).
Mounted devfs on /dev
Freeing init memory: 184K
解決方案:
1. 內核配置選項
--- Real Time Clock
[*] Set system time from RTC on startup and resume
(rtc0) RTC used to set the system time
[ ] RTC debug support
*** RTC interfaces ***
[*] /sys/class/rtc/rtcN (sysfs)
[*] /dev/rtcN (character devices)
[ ] RTC UIE emulation on dev interface
*** on-CPU RTC drivers ***
<*> Samsung S3C series SoC RTC
2. linux kernel 中 已經支持S3C2410的RTC,但是並沒有添加到平台設備初始化數組中,所以系統啟動時並不會初始化這一部分,需要修改文件mach-smdk.c
static struct platform_device *smdk2410_devices[] __initdata = {
&s3c_device_ohci,
&s3c_device_lcd,
&s3c_device_wdt,
&s3c_device_i2c0,
&s3c_device_iis,
&s3c_device_rtc, //新增代碼
};
3. 創建設備節點,在文件系統/dev目錄下執行:
sudo mknod rtc c 10 135
4. 重新編譯內核,查看啟動信息
S3C24XX RTC, (c) 2004,2006 Simtec Electronics
s3c-rtc s3c2410-rtc: rtc disabled, re-enabling
s3c-rtc s3c2410-rtc: rtc core: registered s3c as rtc0
這里說明rtc驅動起來可以正常工作了
S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics
s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled
No device for DAI UDA134X
No device for DAI s3c24xx-i2s
ALSA device list:
No soundcards found.
TCP cubic registered
NET: Registered protocol family 17
s3c-rtc s3c2410-rtc: hctosys: invalid date/time
以上信息說明當前 RTC 時間invalid , RTC 初始時間為 Wed Dec 31 23:59:59 1969 ;
從內核函數 int rtc_valid_tm(struct rtc_time *tm) ,可以看出,當 year 小於 1970 時,認為是時間 invalid ,函數返回 -EINVAL ;
drivers/rtc/rtc-lib.c
/*
* Does the rtc_time represent a valid date/time?
*/
int rtc_valid_tm(struct rtc_time *tm)
{
if (tm->tm_year < 70
|| ((unsigned)tm->tm_mon) >= 12
|| tm->tm_mday < 1
|| tm->tm_mday > rtc_month_days(tm->tm_mon, tm->tm_year + 1900)
|| ((unsigned)tm->tm_hour) >= 24
|| ((unsigned)tm->tm_min) >= 60
|| ((unsigned)tm->tm_sec) >= 60)
return -EINVAL;
return 0;
}
EXPORT_SYMBOL(rtc_valid_tm);
下面來驗證一下這個想法
# hwclock
Wed Dec 31 23:59:59 1969 0.000000 seconds
# date
Thu Jan 1 00:06:58 UTC 1970
系統時間是通過 date 來設置的, RTC 時間是通過 hwclock 來設置的。開機時系統時間首先通過 RTC 來獲得,RTC沒有設置時,系統時間也會使用Wed Dec 31 23:59:59 1969。
# hwclock --help
BusyBox v1.9.2 (2008-04-01 21:32:34 CST) multi-call binary
Usage: hwclock [-r|--show] [-s|--hctosys] [-w|--systohc] [-l|--localtime] [-u|--utc] [-f FILE]
Query and set a hardware clock (RTC)
Options:
-r Read hardware clock and print result
-s Set the system time from the hardware clock
-w Set the hardware clock to the system time
-u The hardware clock is kept in coordinated universal time
-l The hardware clock is kept in local time
-f FILE Use the specified clock (e.g. /dev/rtc2)
# hwclock -s
hwclock: settimeofday() failed: Invalid argument
# hwclock -w
s3c2410-rtc s3c2410-rtc: rtc only supports 100 years
hwclock: RTC_SET_TIME: Invalid argument
以上錯誤信息都是因為 year 設置不當引起的。沒有設置 RTC , RTC 也不會啟動計時。
下面首先設置正確的系統時間,然後將系統時間傳遞給 RTC 。
# date 040612282008.20
Sun Apr 6 12:28:20 UTC 2008
# hwclock -w
# hwclock
Sun Apr 6 12:29:01 2008 0.000000 seconds
# hwclock
Sun Apr 6 12:30:15 2008 0.000000 seconds
Ok , RTC 開始工作了!
為了使系統時間和 RTC 時間同步,可以在初始化文件中添加命令
Hwclock –s
使每次開機時讀取 RTC 時間,並同步給系統時間。
在 etc/init.d/rcS 中添加
/bin/hwclock -s
時間設置的相關命令(轉載)
1. 在虛擬終端中使用date 命令來查看和設置系統時間
查看系統時鍾的操作:
# date
設置系統時鍾的操作:
# date 091713272003.30
通用的設置格式:
# date 月日時分年. 秒
2. 使用hwclock 或clock 命令查看和設置硬體時鍾
查看硬體時鍾的操作:
# hwclock --show 或
# clock --show
2003年 09月 17日 星期三 13 時24 分11 秒 -0.482735 seconds
設置硬體時鍾的操作:
# hwclock --set --date="09/17/2003 13:26:00"
或者
# clock --set --date="09/17/2003 13:26:00"
通用的設置格式:hwclock/clock --set --date=「 月/ 日/ 年時:分:秒」 。
3. 同步系統時鍾和硬體時鍾
Linux 系統( 筆者使用的是Red Hat 8.0 ,其它系統沒有做過實驗) 默認重啟後,硬體時鍾和系統時鍾同步。如果不大方便重新啟動的話( 伺服器通常很少重啟) ,使用clock 或hwclock 命令來同步系統時鍾和硬體時鍾。
硬體時鍾與系統時鍾同步:
# hwclock --hctosys
或者
# clock --hctosys
上面命令中,--hctosys 表示Hardware Clock to SYStem clock 。
系統時鍾和硬體時鍾同步:
# hwclock --systohc
或者
# clock --systohc
使用圖形化系統設置工具設置時間
參考:http://blogold.chinaunix.net/u2/63560/showart_518707.html
Ⅳ 如何將U-boot燒錄到Nand中如何用tftp,nfs載入內核和文件系統
硬體平台是 XAM335x的SKEVM板子。
開發主機上安裝的是ubuntu14.04。
SDK是 PROCESSOR-SDK-LINUX-AM335X 02_00_00_00。
1,運行了SDK下面的setup.sh,創建了/tftpboot,以及targetNFS目錄了。
2,在sdk的更目錄make都是成功的。
然後我也可以用做卡的方式把我自己編譯的kernel, uboot以及系統帶的 targetNFS目錄下的文件系統,寫握蠢到SD卡中。而且能夠通過判空SD卡正常啟動。
現在我想脫離SD卡啟動方式。
1,所以要先把U-boot燒錄到Nand中,(這里我不知道怎麼下載。請告訴我下載方法。)
2,然後開機進入U-boot命令,設置好開發板IP以及serverip等配置。
3,通過tftp命令 (tftp c0008000 zImage-am335x-evm.bin)命令,串口段列印一大串###,也沒報錯,好像是下載內核成功了。(這掘皮瞎里請問下,tftp命令里的地址 0xc0008000是否正確?應該用什麼地址?)
4,NFS下載文件系統,(這一步我也不知道怎麼做,網上有命令 setenv bootargs root=/dev/nfs rw nfsroot=$serverip:$rootpath ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off console=ttyS0,115200等等命令。
Ⅵ bootcmd怎麼設置從nfs啟動內核
-Boot環境變數的解釋說明
環 境 變 量
解 釋 說 明
bootdelay
定義執行自動啟動的等候秒數
baudrate
定義串口控制台的波特率
netmask
定義乙太網介面的掩碼
ethaddr
定義乙太網介面的MAC地址
bootfile
定義預設的下載文件
bootargs
定義傳遞給Linux內核的命令行參數
bootcmd
定義自動啟動時執行的幾條命令
serverip
定義tftp伺服器端的IP地址
ipaddr
定義本地的IP地址
stdin
定義標准輸入設備,一般是串口
stdout
定義標准輸出設備,一般是串口
stderr
定義標准出錯信息輸出設備,一般是串口
參考U-boot,其環境變數設置如下:
Uboot> printenv
bootdelay=3
baudrate=115200
ethaddr=00:12:34:56:78:9a
ipaddr=192.168.0.9 ①
serverip=192.168.0.1 ②
netmask=255.255.255.0
rootpath=/home/zht/rfsys ③
stdin=serial
stdout=serial
stderr=serial
bootcmd=tftp 21000000 uImage;bootm 21000000 ④
bootargs=root=/dev/nfs rw nfsroot=192.168.0.1:/home/zht/rfsys nfsaddrs=192.168.0.48: 192.168.0.1:192.168.0.1:255.255.255.0 console=ttyS0,115200 mem=32M ⑤
① 設置目標板IP地址
② 設置伺服器IP地址
③ 設置根文件系統在伺服器上的路徑,注意該路徑一定要設定為伺服器上的nfs目錄。
④ bootcmd是u-boot啟動後執行的命令,命令之間用分號分隔。
tftp 21000000 uImage 表示通過tftp 將內核映像下載到RAM中地址為0x21000000;
bootm 21000000 啟動linux操作系統
⑤ 定義u-boot傳送給linux內核的命令行參數,該命令行指定以網路文件系統作為根文件系統。
其中root=/dev/nfs,並非真的設備,而是一個告訴內核經由網路取得根文件系統的旗標。
參數nfsroot這個參數告訴內核以那一台機器,那個目錄以及那個網路文件系統選項作為根文件系統使用。參數的格式如下:
nfsroot=[:][,]
如果指令列上沒有給定 nfsroot 參數,則將使用『/tftpboot/%s』預設值。其它選項如下:
--指定網路文件系統服務端的互聯網地址(IP address)。如果沒有給定此欄位,則使用由 nfsaddrs 變數(見下面)所決定的值。此參數的用途之一是允許使用不同機器作為反向地址解析協議(RARP) 及網路文件系統服務端。通常你可以不管它(設為空白)。
-- 服務端上要作為根掛入的目錄名稱。如果字串中有個『%s』 符記(token),此符記將代換為客戶端互聯網地址之 ASCII 表示法。
-- 標準的網路文件系統選項。所有選項都以逗號分開。如果沒有給定此選項欄位則使用下列的預設值:
port = as given by server portmap daemon
rsize = 1024
wsize = 1024
timeo = 7
retrans = 3
acregmin = 3
acregmax = 60
acdirmin = 30
acdirmax = 60
flags = hard, nointr, noposix, cto, ac
參數nfsaddrs設定網路通訊所需的各種網路介面地址。如果沒有給定這個參數,則內核核會試著使用反向地址解析協議以及/或是啟動協議(BOOTP)以找出這些參數。其格式如下:
nfsaddrs=::::::
-- 客戶端的互聯網地址。如果沒設,此地址將由反向地址解析協議或啟動協議來決定。使用何種協議端視配置核心時打開的選項以及 參數而定。如果設定此參數,就不會使用反向地址解析協議或啟動協議。
-- 網路文件系統服務端之互聯網地址。如果使用反向地址解析協議來決定客戶端地址並且設定此參數,則只接受從指定之服務端傳來的回應。要使用不同的機器作為反向地址解析與網路文件系統服務端的話,在此指定你的反向地址解析協議服務端(保持空白)並在 nfsroot 參數(見上述)中指定你的網路文件系統服務端。如果此項目空白則使用回答反向地址解析協議或啟動協議之服務端的地址。
-- 網關(gateway)之互聯網地址,若服務端位於不同的子網路上時。如果此項目空白則不使用任何網關並假設服務端在本地的(local)網路上,除非由啟動協議接收到值。
-- 本地網路界面的網路掩碼。如果為空白,則網路掩碼由客戶端的互聯網地址導出,除非由啟動協議接收到值。
-- 客戶端的名稱。如果空白,則使用客戶端互聯網地址之 ASCII-標記法,或由啟動協議接收的值。
-- 要使用的網路設備名稱。如果為空白,所有設備都會用來發出反向地址解析請求,啟動協議請求由最先找到的設備發出。網路文件系統使用接收到反向地址解析協議或啟動協議回應的設備。如果你只有一個設備那你可以不管它。
-- 用以作為自動配置的方法。如果是 `rarp' 或是 `bootp' 則使用所指示的協議。如果此值為 `both' 或空白,若配置核心時有打開這兩種協議則都使用。 `none' 表示不使用自動配置。這種情況下你必須指定前述欄位中所有必要的值。
此 參數可以作為 nfsaddrs 的參數單獨使用(前面沒有任何 `:` 字元),這種情況下會使用自動配置。然而,此種情況不能使用 `none'作為值。
說明:這只是網上的一種說法,但是沒有啟動起來。因為我的kernel沒有cs8900網卡驅動,燒錄後可正常啟動,但無法掛載NFS,我在想是否可以通過命令行參數設置,來設置uboot給kernel傳遞的地址參數,這樣間接驅動nfs服務。我先前通過vivi這樣搞過,也是可行的。
現在可以這樣理解就是說,之前的kernel內核已經配置好了各個基本模塊的驅動,這樣就可以用了
Ⅶ 如何將U-boot燒錄到Nand中如何用tftp,nfs載入內核和文件系統
【系統啟動過程簡介】初始化代碼讀取uboot到內存裡面,然後跳轉到uboot那裡去執行uboot,uboot初始化必要的硬體,載入一些驅動,其中包括nandflash的驅動,然後根據uboot裡面設置的一個啟動命令:;bootm0x30007FC0意思就是,先去讀取nandflash,從0x100000開始,長度為0x200000的數據到memory的0x30007FC0處,然後bootm表示從memory的0x30007FC0開始運行。也就是去運行內核鏡像了。然後,內核會自己解壓縮,然後執行,初始化硬體,載入驅動模塊,最後去掛載rootfs,#defineCONFIG_BOOTARGS"root=/dev/mtdblock2rwinit=/linuxrcconsole=ttyS0,115200mem=16Mrootfstype=yafffs2"此文件系統,也是你實現自己用相應的文件系統製作工具,製作的,然後燒寫到對應的位置的。上面中root=/dev/mtdblock2,表示,要去/dev/mtdblock2,也就是mtd的第3個分區,去載入。而這里的mtd的第3個分區具體對應的nandflash中的的地址,是你在內核中,一般是在core.c自己定義的的nandflash的分區。一般是uboot是第一個分區,內核kernel是第二個,然後就是rootfs是第三個分區,也就是/dev/mtdblock2。例如分區:staticstructmtd_partitionrm9200_partitions[3]={{/*uboot256K*/.name="uboot",.size=0x40000,.offset=0},{/*kernel1.768M*/.name="kernel",.size=0x1C0000,.offset=0x40000},{/*rootfs2M*/.name="rootfs",.size=0x200000,.offset=0x200000},};如果按照上面分區,定義的/dev/mtdblock2的起始地址是0x200000,還算成大小是2M的位置,然後,內核啟動掛載rootfs的時候,就是,以上面從uboot傳過來的參數中yaffs2格式,到nandflash的2M的地址讀取並載入rootfs,載入完成後,這樣,裡面對應的根目錄,以及所有的文件,文件夾就都可以識別了。然後才會去讀取並運行初始化腳本相關的東西,最後初始化console控制台,然後才能看到那個常見的#,才可以輸入命令,比如ls,才可以和系統交互。所以,實際就是這個rootfs,對應著mtdblock2,對應的某個nandflash上的地址,比如此處的2M的地方。而不是內核kernel這個文件映射的。
Ⅷ jz2440燒寫uboot和根文件系統後(uImage_4.3也燒寫了),上電啟動只停留在企鵝那裡卡住,QT界面顯示不出來
這個應該來是文件系統的問源題,是文件系統沒有初始化成功,你可以改用nfs網路文件系統,我同學買的ok6410的板子的自帶的文件系統也是有問題,改用nfs可以正常啟動,而且學習使用交叉編譯的比較多,你可以先搭建nfs文件系統,到後面你可以自己編譯文件系統,把自己編譯的文件系統燒上去
Ⅸ 如何使用uboot去掛載根文件系統
用NFS方式掛載根文件系統 由於原來的內核是用ATBOOT的方式下載的,不知道怎歲悉昌么傳遞參數(好像不能,網上查的nfs方式都是用U-boot的方式掛載陸友的),因此決定用u-boot重新下載內核。 1.下載u-boot和乎扒內核 1.1編譯內核