




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、NFS服務(wù)器的配置一、NFS服務(wù)器端的配置,即共享發(fā)布者(一)需啟動(dòng)的服務(wù)和需安裝的軟件1、 NFS服務(wù)器必須啟動(dòng)兩個(gè)daemons服務(wù):rpc.nfsd和rpc.mountdrpc.nfsd:用來管理客戶端PC是否可以登錄。類似于windows中的共享權(quán)限。rpc.mountd:用來管理客戶端pc能夠使用的文件安全權(quán)限。 如windows中的共享安全權(quán)限。RPC:因?yàn)镹FS支持的功能很多,所以NFS的功能對應(yīng)的端口才無法固定,而是采用小于1024的隨機(jī)端口。但客戶端需要得知服務(wù)器的端口才能聯(lián)機(jī),此時(shí)就需要啟用RPC服務(wù)。RPC的功能就是指定每個(gè)NFS功能的端口號(hào)。并傳信息給客戶端,讓客戶端可
2、以連到正確的端口上。服務(wù)器在啟動(dòng)NFS時(shí)會(huì)隨機(jī)取用數(shù)個(gè)端口,并主動(dòng)向RPC注冊,因此RPC知道每個(gè)NFS功能對應(yīng)的端口。RPC用111端口監(jiān)聽客戶端的請求,并應(yīng)答正確的端口。啟動(dòng)NFS前,RPC就要先啟動(dòng)了,否則NFS會(huì)無法向RPC注冊。2、NFS 服務(wù)器需要安裝nfs主程序,nfs-utils和rpc主程序 portmap(二)exports服務(wù)器的方法:1、 NFS文件存取權(quán)限因?yàn)镹FS沒有驗(yàn)證機(jī)制,當(dāng)客戶端用戶訪問NFS服務(wù)器的共享文件夾時(shí)會(huì)遇到的權(quán)限情況:(1)NFS服務(wù)器端用戶列表中有與客戶端用戶名相同的用戶名時(shí),客戶端可以直接存取共享文件夾。例:客戶端用戶為khp,而nfs服務(wù)器用
3、戶列表(/etc/passwd)中也有khp這個(gè)用戶名,則將擁有KHP權(quán)限。(2)當(dāng)訪問NFS服務(wù)器的客戶端用戶UID與服務(wù)器端 UID相同,但用戶名卻不相同時(shí),客戶端將擁有與服務(wù)器端UID 相同但不同用戶的權(quán)限。例:客戶端為 501UID,用戶名為 khp的帳號(hào)訪問NFS服務(wù)器。NFS服務(wù)器用戶列表中(/etc/passwd)有uid為501 ,但用戶名為pla的用戶,所以客戶端khp用戶可以擁有NFS服務(wù)器pla相同權(quán)限。(3)如果客戶端用戶UID在NFS服務(wù)器端用戶列表中不存在時(shí),則以匿名用戶的權(quán)限訪問。即nobody的用戶。(4)如果客戶端用戶為root用戶,因?yàn)槊颗_(tái)電腦都有root用
4、戶,如果不作控制,NFS服務(wù)器將會(huì)很危險(xiǎn),會(huì)被客戶端全部控制。所以默認(rèn)root用戶名的客戶端訪問NFS服務(wù)器,會(huì)變?yōu)槟涿脩簦瑩碛心涿脩魴?quán)限。也可不控制。2、編輯/etc/exports文件,此文件不一定存在,如不存在就手工建立/etc /exports的格式:共享目錄 允許訪問的電腦 (選項(xiàng))共享目錄:即nfs服務(wù)器準(zhǔn)備共享的目錄允許訪問的電腦:即允許訪問這個(gè)共享的客戶端有哪些??捎秒娔X名、IP地址,還可以用通配符。選項(xiàng):(1) rw /讀寫??蛻舳藫碛凶x寫的權(quán)限。 (2) ro /只讀 客戶端只有讀的權(quán)限。(3) no_root_squash /root用戶可訪問,不變成匿名用戶,即ro
5、ot用戶可以以root用戶的權(quán)限訪問NFS服務(wù)器的共享資源。(4) root_squash /root用戶變成匿名用戶(5) all_squash /所有用戶都變成匿名用戶 (6) anonuid(7) anongid /所有匿名用戶的UID或組ID都變?yōu)楹竺嬖O(shè)定的UID或GID的權(quán)限。因?yàn)樗性贜FS服務(wù)器用戶列表中沒有用戶名的都會(huì)匿名用戶,這里設(shè)定這些匿名用戶的用戶權(quán)限。(8) sync /同步到硬盤 (9) async /數(shù)據(jù)存放到內(nèi)存而不是直接寫到硬盤例: /mnt/export (rw) /這個(gè)目錄只允許這臺(tái)電腦讀寫。注意,后面(rw)前沒有空格。/mnt/export (rw) /
6、 /mnt/export這具目錄只允許這臺(tái)電腦讀寫,且允許所有其他用戶讀寫權(quán)限。(rw)前面有空格。/mnt/export *(rw) /允許所有這個(gè)域里的電腦讀寫這個(gè)共享文件夾。3、 exportfs命令。 可以更改設(shè)置 (命令目錄/usr/sbin/exportfs) exportfs -avu-o option director-a:把 exprotfs里的所有路徑都共享出去-u:把export出去的路徑取消-v:在export時(shí),共享顯示到屏幕-o option :即一些選項(xiàng)-r :重新掛載exports里的設(shè)置例: exportfs -a ro /tmp/user /即把/tmp/u
7、ser目錄全部exports,但用戶只能讀取資料。4、 /var/lib/nfs/*tab /存放日志文件.etab記錄NFS共享出來的目錄完整權(quán)限設(shè)置。 .xtab記錄曾經(jīng)連接引NFS的客戶機(jī)數(shù)據(jù)5、rpcinfo -p ip |電腦名 /查看RPC服務(wù)的注冊狀態(tài)6、 netstat -ultn 查看開放了哪些端口二、客戶端的端設(shè)置作為NFS客戶端需要先運(yùn)行 nfslock和 portmap服務(wù)。 /etc/init.d/nsflock start /etc/init.d/portmap start 并且有幾種掛載方法(一)、命令方式mount 命令掛載1、 showmount -e nfs
8、服務(wù)器電腦名| ip地址 /查看nfs服務(wù)器的可用共享目錄2、mount nfs主機(jī)名:nfs共享目錄 掛載到本機(jī)的目錄 /把nfs服務(wù)器共享的目錄掛載到本機(jī)。主機(jī)名外還可用IP地址例: mount :/tmp/export /tmp/export /即把nfs服務(wù)器共享的 /tmp/export目錄,掛載到本機(jī)的 /tmp/export目錄上。mount -t nfs -o time=20 /tmp/export /把遠(yuǎn)程nfs服務(wù)器的/home/khp 掛載到本機(jī)的/tmp/export目錄下。最長響應(yīng)時(shí)間為20秒。3、 unmount 命令中斷
9、掛載(二) 編輯 /etc/fstab文件掛載 /etc/fstab文件詳解在文件系統(tǒng)管理中有說明1、格式: NFS服務(wù)器及共享目錄 掛載到本地的目錄 文件格式 選項(xiàng):/home/project /tmp/export ro /把 這對口NFS服務(wù)器上的 /home/project目錄掛載到本機(jī)的 /tmp/export目錄上,且為只讀。格式為nfs2、打開文件夾。此時(shí)輸入 mount /tmp/export 即可以打開掛載的文件(三)autofs來掛載nfs文件系統(tǒng)只在文件系統(tǒng)被訪問時(shí)才被掛載。1、在 /etc/auto.master中定義掛載點(diǎn) 2、再在 auto.master中定義的 /
10、etc/auto.dirctory 中定義目錄的總掛載點(diǎn)。即在系統(tǒng)文件 /etc/auto.master中先定義一個(gè)總的總掛載點(diǎn)。 然后依這個(gè)文件中定義的總掛載點(diǎn)文件,再設(shè)置詳細(xì)掛載點(diǎn)。例: vi /etc/auto.master 編輯這個(gè)文件:/misc /etc/auto.khp -timeout 60 /即 /etc/auto.khp中的文件將掛載到 /misc目錄下再編輯: vi /etc/auto.khp 這個(gè)文件,定義掛載點(diǎn)。myproject -rw,soft,intr :/home/project /即把NFS服務(wù)器 :/home/project共享目錄,掛載到本機(jī)的 /mis
11、c/myproject目錄下。注意: /misc/myproject目錄是動(dòng)態(tài)的,不是實(shí)際存在的,只是在訪問時(shí)這個(gè)目錄才會(huì)產(chǎn)生。退出就消息。但 /misc目錄需存在。當(dāng)防火墻開著時(shí),有時(shí)就無法訪問,可用 /etc/rc.d/init.d/iptables stop 停用防火墻,或用 iptable命令開放NFS的端口。學(xué)習(xí)驅(qū)動(dòng),首先當(dāng)然要先搭好環(huán)境,當(dāng)我們把編好的驅(qū)動(dòng)編譯到內(nèi)核或者以模塊的方式加載進(jìn)內(nèi)核后,我們還要寫一個(gè)測試應(yīng)用程序,這個(gè)程序是在ARM-LINUX下運(yùn)行的,與其對應(yīng)的是PC-LINUX,這就又引出了交叉編譯的概念,所謂交叉編譯,是指在一個(gè)環(huán)境下編譯程序,而在另一個(gè)環(huán)境下運(yùn)行,比
12、如我們在PC-linux下編譯一個(gè)helloworld程序(就是最簡單的helloworld程序)但是我們在編譯的時(shí)候用arm-linux_-gcc命令,這個(gè)命令就是指當(dāng)前編譯的程序就是在arm體系結(jié)構(gòu)下運(yùn)行的,如果你在PC-linux的環(huán)境下執(zhí)行./helloworld命令則會(huì)出現(xiàn)”不能執(zhí)行未知二進(jìn)制文件”的錯(cuò)誤。但把它下載到板子上運(yùn)行的話則正常運(yùn)行。當(dāng)然,我們要把編譯好在板子上運(yùn)行的程序傳到板子上的方法有很多,比如通過串口下載,USB下載,F(xiàn)TP上傳等等,這些都是板子與PC機(jī)的通訊方式。當(dāng)然用的最多最方便的我個(gè)人認(rèn)為就是NFS了,NFS即網(wǎng)絡(luò)文件系統(tǒng),我個(gè)人理解是這樣的:如果我啟動(dòng)了nfs
13、系統(tǒng)掛載成功 那么我就可以把一些在linux上交叉編譯好的程序放到這個(gè)linux掛載的目錄下 然后通過像SecureCRT這樣的終端進(jìn)入這個(gè)目錄去執(zhí)行程序,也就省去了把程序下到板子上的麻煩,因?yàn)楫?dāng)我們傳輸?shù)奈募^大的時(shí)候,用串口USB傳送的這種方法就會(huì)消耗我們大量的寶貴時(shí)間。這個(gè)linux掛載的目錄其實(shí)就是一個(gè)共享目錄,即ARM-LINUX把板子的資源都掛載到這個(gè)目錄下,這樣PC-LINUX可以通過這個(gè)目錄來訪問板子的資源,當(dāng)然我們也可以往這個(gè)目錄里傳輸文件程序,可以理解為板子里L(fēng)inux系統(tǒng)的一個(gè)目錄.構(gòu)建NFS系統(tǒng)并非一件容易的事,之前我也是苦熬了兩三天查閱了不少資料,也咨詢了不少學(xué)長,網(wǎng)
14、上掛載失敗發(fā)帖的一大把,我想把我構(gòu)建過程中以及后面編譯加載驅(qū)動(dòng)遇到和解決問題的方法和大家分享,我個(gè)人認(rèn)為構(gòu)建過程當(dāng)中設(shè)置這個(gè)設(shè)置那個(gè)并不重要,重要的是為什么這樣設(shè)置,這樣設(shè)置的影響是什么,那樣設(shè)置會(huì)怎么樣。因?yàn)橐话阗I的開發(fā)板帶的資料(比如我買的S3C6410)它的確講解了如何搭建NFS環(huán)境,但是發(fā)現(xiàn)沒幾個(gè)掛載成功的?為什么 因?yàn)樗皇且徊揭徊街v的些大眾化的步驟,告訴你這一步設(shè)置這個(gè),那一步設(shè)置那個(gè),至于為什么都不談。當(dāng)然,這不是教你學(xué)習(xí),公司當(dāng)然希望越簡潔越好,但是,我們作為學(xué)習(xí),當(dāng)然就要刨根問底。下面我就具體談?wù)剺?gòu)建加載過程中我遇到的一些問題。首先,我們要設(shè)置一個(gè)共享目錄,這個(gè)目錄就是可以被
15、NFS掛載的那個(gè)目錄,所以接下來就是要配置NFS配置文件了,即/etc/exports文件,如圖 在下面一行,我們加上這個(gè)新目錄,我的目錄就是/home/localhost/arm6410,后面分別表示可讀寫,資料同步寫入(即當(dāng)我們把程序或一些文檔放進(jìn)這個(gè)目錄時(shí),它也會(huì)相應(yīng)的把這份資料寫入ARM板子中,這很好理解,因?yàn)檫@個(gè)目錄就是掛載的板子資源的目錄), 最后一個(gè)參數(shù)表示登入 NFS 主機(jī)使用分享目錄的使用者,如果是 root的話,那么對于這個(gè)分享的目錄來說,他就具有 root 的權(quán)限。接下來,我們就要在這個(gè)共享目錄下在添加一個(gè)根文件系統(tǒng)所需要的目錄,我用的是飛凌的板子,已經(jīng)提供了直接解壓就行
16、了,這個(gè)目錄和PC-LINUX下的root目錄一模一樣,就是搭建了一個(gè)linux環(huán)境。接下來就是設(shè)置IP地址這類東西了,這一點(diǎn)尤為重要,我也是在這個(gè)上面糾結(jié)了好一陣子,因?yàn)檫@里相關(guān)了三個(gè)環(huán)境,Ubantu的LINUX環(huán)境,PC的XP環(huán)境,還有一個(gè)ARM-LINUX環(huán)境,我們要一一對其進(jìn)行設(shè)置,不然掛載就不會(huì)成功,下面我貼出三個(gè)環(huán)境的地址如上圖所示,首先,三個(gè)環(huán)境的IP地址要設(shè)置在同一個(gè)網(wǎng)段,子網(wǎng)掩碼設(shè)置相同,PC機(jī)和板子的網(wǎng)關(guān)要相同,最后虛擬機(jī)的默認(rèn)路由要設(shè)為PC的IP地址。這樣就完成了三個(gè)環(huán)境的設(shè)置,最后還要注意的是虛擬機(jī)的設(shè)置注意右方,我們選擇的是橋接。所謂橋接,就是通過一臺(tái)設(shè)備(可能不止
17、一個(gè))把幾個(gè)網(wǎng)絡(luò)串起來形成的連接,我們這里就是把三個(gè)網(wǎng)絡(luò)環(huán)境串起來形成連接。關(guān)于開發(fā)板,在上電后,我們可以通過”printenv”命令(這個(gè)命令是uboot里的,表示打印出當(dāng)前開發(fā)板的環(huán)境配置)我的環(huán)境配置信息如下:在這里,我們可以看到其MAC地址,IP地址,網(wǎng)關(guān),子網(wǎng)掩碼。這里對我們最重要的也就是bootargs這個(gè)參數(shù)了,這個(gè)參數(shù)表示傳遞給內(nèi)核的參數(shù),我們并不是把所有的任務(wù)都交給操作系統(tǒng)來完成的,我們可以在這之前設(shè)定好一些最基本的參數(shù),然后把它傳遞給內(nèi)核,比如這里最簡單的是串口的初始化設(shè)置,設(shè)置波特率什么的,就可以通過bootargs傳遞給內(nèi)核,這樣我們就可以通過串口打印反饋信息來判斷程序
18、的執(zhí)行狀態(tài)。bootargs非常的靈活,內(nèi)核和文件系統(tǒng)的不同搭配就會(huì)有不同的設(shè)置方法,甚至你也可以不設(shè)置bootargs,而直接將其寫到內(nèi)核中去(在配置內(nèi)核的選項(xiàng)中可以進(jìn)行這樣的設(shè)置),正是這些原因?qū)е铝薭ootargs使用上的困難。root: 用來指定rootfs(即文件系統(tǒng))的位置,我們這里是這樣設(shè)置的root=/dev/nfs表示在文件系統(tǒng)為基于nfs的文件系統(tǒng)的時(shí)候使用。當(dāng)然指定root=/dev/nfs之后,還需要指定nfsroot=serverip:nfs_dir,即指明文件系統(tǒng)目錄存在哪個(gè)主機(jī)的那個(gè)目錄下面,這里我們設(shè)置的是nfsroot=02:/home/
19、localhost/arm6410/root 注意這里的IP地址我們就設(shè)置的是虛擬機(jī)的IP地址,后面的目錄就是之前設(shè)置的共享目錄,root就是根文件系統(tǒng)的目錄。console console=tty 使用虛擬串口終端設(shè)備 .console=ttyS,options 使用特定的串口,options可以是這樣的形式bbbbpnx,這里bbbb是指串口的波特率,p是奇偶校驗(yàn)位,n是指的bits。console=ttySAC,options 同上面。這樣 總的環(huán)境變量就可以設(shè)置成#setenv bootargs “root=/dev/nfs nfsroot=02:/home/lo
20、calhost/rootip=0: 02:::eth0:on console=ttySAC0,115200”02:ubantu的IP0:板子的IP:網(wǎng)關(guān):默認(rèn)的子網(wǎng)掩碼saveenv這里,setenv也是uboot的一個(gè)命令,表示設(shè)置環(huán)境變量,最后用saveenv保存即可。接下來,我以加載S3C_6410自帶流水燈的驅(qū)動(dòng)過程談?wù)勎宜龅降囊恍﹩栴}。我們要生成目標(biāo)文件(在linux2.6版本中,驅(qū)動(dòng)文件時(shí)以.ko的
21、形式出現(xiàn)的),首先我們要找到驅(qū)動(dòng)程序的源文件。流水燈屬于字符設(shè)備的驅(qū)動(dòng)程序,所以在/driver/char目錄下。第一步,打開該目錄下的config文件,加上配置選項(xiàng)如圖最后(這里時(shí)之前添加好的,如果我們要添加新的驅(qū)動(dòng)程序就要在這里添加新的供內(nèi)核配置的條目)。TE6410_LED表示內(nèi)核配置時(shí)顯示(后面有講)的驅(qū)動(dòng)名稱。Tristate:表示的是三態(tài),所謂的三態(tài)就是指當(dāng)我們配置這個(gè)驅(qū)動(dòng)時(shí)可以以三種方式設(shè)置:1、編譯進(jìn)內(nèi)核2、以模塊的形式加載2、卸載模塊后面的ARCH_S3C64XX表示是其依賴的體系架構(gòu),這里我們是基于S3C6410的ARM11的板子。Help下面表示的是幫助信息。緊接著我們要
22、修改其makefile文件。如圖在這里,我們加入目標(biāo)文件。下面我們的工作就是編譯了。以root用戶登錄linux的根目錄,輸入make menuconfig進(jìn)行內(nèi)核圖形化配置,如圖我們找到led的驅(qū)動(dòng)選項(xiàng),在這里我們通過敲擊回車改變其加載的方式,這里我們選擇M即模塊加載的方式,(我們之前修改config配置文件的目的其實(shí)就是在這里有一條對應(yīng)修改led驅(qū)動(dòng)配置的選項(xiàng),當(dāng)面移動(dòng)到help選項(xiàng)時(shí)也會(huì)顯示出我們之前編寫的幫助提示信息)最后保存退出。如果沒有編譯過,那么首先make一下,注意:我們是要把linux燒到板子中運(yùn)行的,所以要使用make zImage命令,這樣會(huì)生成一個(gè)zImage鏡像文件,
23、它是linux內(nèi)核的一個(gè)壓縮文件。關(guān)于zImage文件,我想說明一下它的機(jī)理,它是一個(gè)壓縮文件,它只能在開發(fā)板上運(yùn)行,但是并不是把所有的信息都?jí)嚎s了,其中還含有未壓縮的一部分程序:比如解壓程序,當(dāng)zImage下載到開發(fā)板上運(yùn)行的時(shí)候,首先其自帶的解壓程序會(huì)對linux內(nèi)核信息下進(jìn)行加壓并載到指定地址運(yùn)行,經(jīng)過層層跳轉(zhuǎn)(中間過程略呵呵)最后跳轉(zhuǎn)到init文件夾中的main函數(shù)(即整個(gè)內(nèi)核函數(shù)的入口函數(shù))中運(yùn)行內(nèi)核代碼。緊接著我們要執(zhí)行make dep命令,這個(gè)命令的目的是使新加入的模塊與內(nèi)核的模塊建立連接關(guān)系。我做這個(gè)實(shí)驗(yàn)的時(shí)候沒有做這一步因?yàn)檫@個(gè)流水燈的驅(qū)動(dòng)是之前做好的,所以已經(jīng)建立了聯(lián)系。但
24、是當(dāng)我們加載了一個(gè)新的模塊的時(shí)候,這一步是不能省略的。最后我們執(zhí)行make modules。則會(huì)在相應(yīng)目錄下(我們是在driver/char/)生成模塊.ko文件。在這里,我想稍微提一下交叉編譯的問題,當(dāng)我們寫完驅(qū)動(dòng)程序時(shí),要對其進(jìn)行編譯,我們在PC-LINUX下運(yùn)行的程序是通過gcc命令運(yùn)行的(即我們使用的是gcc編譯器),但我們要編譯在板子上運(yùn)行的程序時(shí)就需要用交叉編譯工具,這里我們使用的是arm-linux-gcc命令,于是我們這個(gè)命令的描述就是/usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-gcc c leds.o leds.c如果嫌命令太長 可
25、以把之前的路徑加到環(huán)境變量當(dāng)中去,這樣直接用arm-linux-gcc命令就可以了。當(dāng)然,這里并沒有使用這種方法,我們是修改makefile然后在make modules 的時(shí)候就執(zhí)行了編譯的過程并生成了相應(yīng)的模塊(如果我們要添加多個(gè)需要編譯的對象的時(shí)候這種方法就體現(xiàn)出它的方便了)。最后我們就要掛載NFS系統(tǒng)并把驅(qū)動(dòng)程序以模塊的形式加載到內(nèi)核。首先我們要注意的就是硬件設(shè)施是否準(zhǔn)備完畢1、串口連接2、J-LINK的連接(這里我始終不明白,為什么每次都需要連接j-link,如果不連則沒有串口反饋信息)3、網(wǎng)線連接(這里尤其容易遺漏)如果沒有接網(wǎng)線 則掛載時(shí)會(huì)出現(xiàn)以下錯(cuò)誤內(nèi)容當(dāng)然,我們在連接上之后,
26、第一步就是要先ping一下,如果雙方都互相ping通,則網(wǎng)絡(luò)方面就沒有什么大的問題。之前看到網(wǎng)上說需要關(guān)掉防火墻,其實(shí)就實(shí)踐來看沒有那個(gè)必要。接下來要開啟pc-linux的NFS服務(wù)。我們執(zhí)行兩條命令#sudo /etc/init.d/portmap restart#sudo /etc/init.d/nfs-kernel-server restart上電開發(fā)板后,如果掛載成功則會(huì)顯示如下的信息這里會(huì)提示你按回車鍵進(jìn)入控制臺(tái)。我們按回車后就進(jìn)入了arm-linux的目錄接下來我們在pc-linux上把那個(gè)模塊文件(les.ko)放到共享目錄下,就可以在這里訪問到那個(gè)驅(qū)動(dòng)文件,并把它加載進(jìn)內(nèi)核,我
27、們用insmod命令,這里只是一個(gè)模塊文件,如果我們的模塊牽扯到多個(gè)文件,我們可以用modprobe命令,這個(gè)命令會(huì)把該模塊和與該模塊相關(guān)的驅(qū)動(dòng)程序加載進(jìn)內(nèi)核。如果加載成功則如圖所示首先,串口打印出進(jìn)入初始化程序,最后顯示初始化成功。這些都可以在驅(qū)動(dòng)程序里設(shè)置便于使用者調(diào)試。當(dāng)然一個(gè)模塊只能加載一次,否則會(huì)報(bào)錯(cuò)。還有一點(diǎn)要注意的事如果該驅(qū)動(dòng)以內(nèi)核的方式加載進(jìn)內(nèi)核,那么它就理所當(dāng)然不能再以模塊的方式加載。這個(gè)不是問題,但是有時(shí)候我們會(huì)忘記,就本人來說,我第一次把這個(gè)流水燈驅(qū)動(dòng)程序下載到開發(fā)板上加載后,發(fā)現(xiàn)加載失敗,但是顯示的信息不是“重復(fù)加載”而是一些亂七八糟的信息。我以為是驅(qū)動(dòng)程序的錯(cuò)誤但是用
28、的是它給的源程序。這讓我很是糾結(jié),最后才發(fā)現(xiàn)原來我燒錄的內(nèi)核是飛凌公司光盤當(dāng)中已經(jīng)配置好的內(nèi)核鏡像。也就是說他把驅(qū)動(dòng)程序已經(jīng)加載進(jìn)內(nèi)核了,所以當(dāng)然加載不成功,所以我們在燒錄內(nèi)核前一定要卸載內(nèi)核的驅(qū)動(dòng)(不能全卸載,只是對你試驗(yàn)有影響的驅(qū)動(dòng)可以先從內(nèi)核卸載掉),如果你是下載的一個(gè)全新的內(nèi)核,就不存在這個(gè)問題了。就說到這吧,順便提一下,我是個(gè)驅(qū)動(dòng)的菜鳥級(jí)人物僅代表我個(gè)人的觀點(diǎn),還望多多批評指正。一直在學(xué)習(xí)ARM和linux,初學(xué)者,也一直在走彎路,在做驅(qū)動(dòng)開發(fā)的時(shí)候,掛載NFS還是比較方便的?,F(xiàn)在交流下經(jīng)驗(yàn):1、主機(jī)IP:08板子IP:072、我在根目錄下
29、創(chuàng)建里一個(gè)共享目錄/ftp增加權(quán)限: #chmod 777 -R /ftp3、安裝服務(wù)組件:nfs-kernel-server#apt-get install nfs-kernel-server可能需要安裝nfs-common和portmap4、修改根目錄下的/etc/exports在最后一行添加:ftp 192.168.0.*(rw,sync,no_root_squash)5、啟用服務(wù)#service nfs-kernel-server start如果不行嘗試下:#/etc/init.d/portmap restart#/etc/init.d/nfs-kernel-server restar
30、t5、在超級(jí)終端下輸入掛載命令:#mount -t nfs -o nolock 08:/ftp /mnt主機(jī)文件夾ftp就被掛載板子的mnt文件夾下了。推薦一個(gè)ubuntu下的超級(jí)終端:minicom,非常好用,大家還有什么嵌入式linux開發(fā)平臺(tái)的經(jīng)驗(yàn)交流下啊折騰了好幾天,論壇上基本上關(guān)于掛載NFS文件系統(tǒng)的問題都遇到過。昨天晚上終于掛載成功,就把我是怎樣掛載成功的以及一些問題的解決和注意事項(xiàng)和大家分享。希望對那些沒有掛載成功的人有所幫助,也希望更多的人能與人分享自己的成功,促進(jìn)共同進(jìn)步。首先掛載前,請仔細(xì)檢查以下硬件設(shè)備是否都連接好:1、電源線插上2、串口線連接好開發(fā)
31、板COM0和PC機(jī)3、USB電纜連接開發(fā)板和PC機(jī)4、網(wǎng)線插上!其中最容易忽略的就是網(wǎng)線沒有插上,導(dǎo)致像這樣的問題一直沒有解決rpcbind: server x.x.x.x not responding, timed outRoot-NFS: Unable to get mountd port number from server, using defaultRoot-NFS: Server returned error -5 while mounting /home/glorin/sharetmp/filesys針對這種問題,有兩個(gè)地方要注意,除了上面的網(wǎng)線沒有插上外,另外的就是主機(jī)IP(我
32、的是虛擬機(jī)中的ubuntu的IP)和開發(fā)板的IP不在同一個(gè)網(wǎng)段內(nèi)。解決方法改主機(jī)IP更改主機(jī)IP方法:$ sudo vim /etc/network/interfaces然后設(shè)置:auto loiface lo inet loopbackauto eth0iface eth0 inet staticaddress 0(參考)netmask gateway (參考)修改后重啟網(wǎng)絡(luò)配置:sudo /etc/init.d/networking restart 完了保證設(shè)置完全正確,對于使用ubuntu系統(tǒng)的人,請修改/etc/Ne
33、tworkManager/nm-system-settings.confmainplugins=ifupdown,keyfileifupdownmanaged=false 將managed=ture改為false。然后執(zhí)行sudo /etc/init.d/network-manager restart,重新配置一下。(對于DNS,設(shè)置的話:sudo /etc/resolv.conf即可)至此主機(jī)IP地址設(shè)置完成。注:以上地址僅供參考,請根據(jù)各自情況設(shè)置。好了,那么就開始掛載NFS。1.設(shè)置共享目錄例如我們采用/home/localhost/arm6410/root作為NFS共享目$ sudo
34、mkdir arm6410$ cd arm6410$ sudo mkdir root $ chmod 777 arm6410 $ chmod 777 root 注:共享目錄和飛凌的不一樣,我想很多人也許出問題就在這里。這就涉及到工作目錄和系統(tǒng)根目錄的問題了。記住的就是我們打開終端,然后創(chuàng)建的目錄是在/home/XXX。你可以在根文件系統(tǒng)的home下看到XXX。2.設(shè)置IP上面已經(jīng)講過怎么設(shè)置,請參考。3.配置NFS服務(wù)并啟動(dòng)安裝NFS在虛擬機(jī)上新建一個(gè)終端,依次輸入以下命令:sudo apt-get install portmapsudo apt-get install nfs-kernel-serversudo gedit /etc/exports在彈出的文本編輯器中編輯exports文件,在最后一行添加:/home/localhost/arm6410/root *(rw,sync,no_root_squash)啟動(dòng)NFS服務(wù)sudo /etc/init.d/portmap restartsudo /e
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年農(nóng)作物種植合同書
- 2025年信用貸款合同年度樣本
- 2025年叉車搬運(yùn)作業(yè)合同示例
- 2025年農(nóng)村漁業(yè)承包經(jīng)營合同范文
- 2025年個(gè)人居間調(diào)解服務(wù)合同協(xié)議書
- 2025年雙開大門制作與安裝合同
- 2025年人才約束合同參考文本
- 2025年養(yǎng)老康復(fù)設(shè)施運(yùn)營與維護(hù)合同
- 2025年企業(yè)間物資買賣合同示范文本
- 2025年冰箱清潔保養(yǎng)維修合同范文
- 2024-2025年江蘇專轉(zhuǎn)本英語歷年真題(含答案)
- 永磁滾筒設(shè)備操作規(guī)程
- 大班科學(xué)活動(dòng)小實(shí)驗(yàn)
- 裝配式混凝土結(jié)構(gòu)檢測技術(shù)規(guī)程
- 裝修合同違約解除通知書
- 湖南財(cái)政經(jīng)濟(jì)學(xué)院《中國文化史》2021-2022學(xué)年第一學(xué)期期末試卷
- (新版)六西格瑪綠帶認(rèn)證考試復(fù)習(xí)題庫(含答案)
- 2024屆清華大學(xué)強(qiáng)基計(jì)劃數(shù)學(xué)學(xué)科筆試試題(附答案)
- 偵查學(xué)總論學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 2025屆高考語文一輪復(fù)習(xí):小說物象含義及作用
- 臨終關(guān)懷模式
評論
0/150
提交評論