999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于NFS的Linux內核與根文件系統調試平臺的配置

2020-12-07 08:26:12謝逸軒馬維華
無線互聯科技 2020年18期
關鍵詞:服務

謝逸軒,馬維華

(南京航空航天大學 計算機科學與技術學院,江蘇 南京 211100)

0 引言

科技發展日新月異,32位通用型MCU價格一次次下探以及5G萬物互聯的趨勢面前,開源穩定帶網絡功能的Linux操作系統將會被移植到各個垂直領域,更新替換掉老舊的嵌入式設備。為了更好地服務于社會,系統掌握Linux移植這門技術需要在硬件資源性能溢出的當下搭建起便捷高效的開發調試平臺。NFS,全稱Network File System,是Linux系統中常用的一種文件共享服務,有著與Windows中服務器信息塊(Server Message Block,SMB)網絡文件共享服務一樣的便捷和用戶無感知的使用體驗[1]。如今,NFS已經從1984年的1.0發展到如今的4.2版本。

1 開發調試平臺的拓撲結構

平臺由運行windows的筆記本、筆記本上虛擬出的Linux宿主機以及開發板三者構成。路由器接入互聯網,對內運行NAT和DHCP服務,設路由器的IP地址為192.168.1.1,子網掩碼24位。開發板使用網線接入路由器,筆記本既可無線也可有線接入,虛擬機的網絡適配器配置為橋接自動。配置路由器依據網卡MAC地址為開發板、筆記本、虛擬機各分配靜態IP地址,如圖1所示。開發板已經燒錄好帶NFS客戶端的U-boot,并與筆記本進行串口連接,以便鍵入命令控制和監控Linux啟動和根文件系統掛載過程。筆記本和虛擬機上分別架設NFS服務,以方便數據傳輸,且由于其自帶網絡防火墻,需要注意關閉防火墻或添加端口白名單。

圖1 開發調試平臺網絡拓撲結構

2 NFS服務器的配置方法

2.1 Windows筆記本上NFS服務的配置

下載并安裝haneWIN NFS Server for Windows[2]軟件服務包。

打開程序后(免安裝版需用管理員權限打開),依次進入Edit-Preferences-Exports-Edit exports file來設置需要共享的文件夾,配置文件格式為:共享目錄路徑+-name:共享目錄別名,每一行一個共享目錄。筆者以桌面上存放bootloader和內核的boot目錄,以及存放根文件系統的rootfs目錄為例,在對話框中添加以下內容并點擊Save保存配置。

C:UsersyournameDesktopoot-name:boot

C:UsersyournameDesktop ootfs-name:rootfs

此時,注意勾選“Map client root (UID 0) to root for all entries”選項,該選項可讓開發板內核以root權限掛載共享目錄。

在Linux虛擬機的終端中輸入mount-t nfs-o nolock 192.168.1.6:/boot /mnt,可查看是否掛載成功。若報錯或未成功掛載,檢查Windows防火墻是否將NFS Server程序加入了白名單或者防火墻是否已經關閉,-nolock選項意為當文件被寫入時,不使用額外的Network Lock Manager服務來鎖定該文件,添加此選項有助于增加兼容性。

成功驗證后,使用“umount /mnt”命令解除掛載。

2.2 Linux虛擬機上NFS服務的配置

2.2.1 CentOS 7用戶(默認root登錄,否則下述各命令前加入sudo)

使用以下命令安裝NFS服務包:

yum install -y nfs-utils rpcbind

編輯/etc/exports文件,配置需共享的目錄,配置格式:

共享目錄路徑+被允許掛載的主機/IP+(常用共享選項見表1,多選項間逗號分隔)。

現在以共享/root/boot和/root/rootfs為例,添加以下兩行到/etc/exports文件尾部:

/root/boot *(rw,insecure,async,no_root_squash,no_subtree_check)

/root/rootfs *(rw,insecure,sync,no_root_squash,no_subtree_check)

注:*表示任意主機;*與(之間不能存在空格。

更改NFS服務器選項以兼容U-boot上的NFS V2版本,Linux上的NFS服務器默認不兼容V2版本,編輯/etc/nfs.conf文件,分別找到[nfsd]和vers2=y兩行,刪除兩行前各自的#號以取消注釋。如果沒找到可以直接添加這兩行內容,保存并退出。

重啟NFS服務以生效上述配置,在終端中輸入:

systemctl restart nfs

為NFS服務添加防火墻白名單或者使用以下命令暫時關閉防火墻(重啟后失效):

systemctl stop firewalld

使用mount -t nfs -o nolock 192.168.1.8:/root/boot /mnt或者showmount -e 192.168.1.8來驗證共享配置的生效。使用cat /proc/fs/nfsd/versions來驗證服務器兼容版本中是否包含+2(NFS Version 2)。

如果需要NFS服務開機自啟并禁用防火墻,輸入

systemctl enable nfs

systemctl disable firewalld

2.2.2 Ubuntu 20.04用戶(默認普通用戶登錄)

使用以下命令安裝NFS服務包:

sudo apt install nfs-kernel-server

編輯/etc/exports文件,配置格式與示例與CentOS 7用戶一致,請參照上節完成共享目錄配置。

編輯/etc/default/nfs-kernel-server文件,以兼容U-boot上的NFS V2的版本,Linux上的NFS服務器默認不兼容V2版本。找到RPCNFSDCOUNT、RPCMOUNTDOPTS兩項,分別將其修改為以下內容,其余不變:

RPCNFSDCOUNT=”—nfs-version 2 8”

RPCMOUNTDOPTS=”—nfs-version 2—manage-gids”

重啟NFS服務以生效上述配置,在終端中輸入:

sudo systemctl restart nfs-kernel-server

由于ubuntu系統默認關閉防火墻,故不需要額外操作。確需關閉的,請運行sudo ufw disable。

使用sudo mount -t nfs -o nolock 192.168.1.8:/root/boot /mnt或者sudo showmount -e 192.168.1.8來驗證共享配置的生效。使用sudo cat /proc/fs/nfsd/versions來驗證服務器兼容版本中是否包含+2(NFS Version 2)。

Ubuntu系統上的NFS服務默認自啟動,無需額外配置。

表1 NFS服務端共享選項[3]

2.2.3 開發板使用NFS啟動Linux內核并掛載遠端根文件系統

為開發板斷電再上電;在putty(串口終端程序名)中鍵入任意鍵打斷開發板普通啟動過程;鍵入以下命令,以使用NFS啟動Linux內核并掛載遠端根文件系統(以Windows為例):

setenv serverip 192.168.1.6→#啟用Windows上的NFS服務IP地址

setenv ipaddr 192.168.1.4→#為開發板自身設定同子網下的IP地址

setenv rootpath /rootfs→#Windows上設置的根文件系統別名

setenv bootpath /boot→#Windows上設置的啟動文件夾目錄別名

setenv fdtfile am335x.dtb→#指示開發板自身設備樹的文件名

setenv fdtaddr 0x88000000→#指示設備樹在內存中的位置

setenv bootfile zImage→#指示Linux內核文件名

setenv loadaddr 0x82000000→#指示Linux內核在內存中的位置

setenv nfsloadimage “nfs ${loadaddr} ${serverip}:${bootpath}/${bootfile}”

#指示U-boot從NFS服務器上下載Linux內核到內存指定位置

setenv nfsloadfdt “nfs ${fdtaddr} ${serverip}:${bootpath}/${fdtfile}”

#指示U-boot從NFS服務器上下載設備樹文件到指定內存位置

setenv nfsargs “setenv bootargs console=ttyO0,115200n8 root=/dev/nfs nfsroot=${serverip}:${rootpath},nolock rw ip=dhcp”

#設置內核啟動參數,將內核console設置為串口ttyO0并以波特率115200bps、無奇偶校驗、8位數據位的規格通信,通知內核通過NFS掛載根文件系統。

setenv nfsboot “setenv autoload no; run nfsloadimage; run nfsloadfdt; run nfsargs; bootz ${loadaddr}-${fdtaddr}”

#自定義NFS命令啟動腳本,以便重復使用

saveenv→#保存上述環境變量,以便重復使用

run nfsboot→#使用NFS啟動遠程內核并掛載遠程根文件系統,下次重啟開發板時可直接運行最后這一條命令以快速啟動

3 結語

總結之前,需注意上述方法的兩種常見誤區:一是不能在Windows下解壓rootfs.tar.gz到根文件系統的共享目錄,但是可通過Linux虛擬機掛載Windows共享目錄后使用tar-xvf命令解壓導入,否則會產生此類報錯 [5.316458] Starting init: /sbin/init exists but couldn’t execute it (error-13)。二是當內核滾屏輸出[5.226074]bootserver=192.168.1.1, rootserver=192.168.1.6, rootpath= 時,不要因為rootpath= 后面為空就認為內核啟動參數傳入有誤,正常啟動的話rootpath=后也是空白的。

進行嵌入式Linux移植,不可避免使用Linux作為交叉編譯的宿主機,但是由于國人的電腦操作習慣仍舊是建立在Windows系統上的,那么采取Windows系統為主力查詢各種資料,虛擬機安裝Linux發行版為輔助編譯目標文件便是最自然的選擇。此時,采用本文所述的NFS文件系統穿插其中,起到橋梁作用,進一步為嵌入式Linux移植開發提供便利。

猜你喜歡
服務
自助取卡服務
服務在身邊 健康每一天
今日農業(2019年14期)2019-09-18 01:21:54
服務在身邊 健康每一天
今日農業(2019年12期)2019-08-15 00:56:32
服務在身邊 健康每一天
今日農業(2019年11期)2019-08-13 00:49:08
服務在身邊 健康每一天
今日農業(2019年13期)2019-08-12 07:59:04
服務在身邊 健康每一天
今日農業(2019年10期)2019-01-04 04:28:15
服務在身邊 健康每一天
今日農業(2019年15期)2019-01-03 12:11:33
服務在身邊 健康每一天
今日農業(2019年16期)2019-01-03 11:39:20
高等教育為誰服務:演變與啟示
招行30年:從“滿意服務”到“感動服務”
商周刊(2017年9期)2017-08-22 02:57:56
主站蜘蛛池模板: 亚洲妓女综合网995久久| 国产性猛交XXXX免费看| 麻豆国产原创视频在线播放| 中文纯内无码H| 色综合天天视频在线观看| 久久99国产精品成人欧美| av一区二区三区在线观看| 性色一区| 一区二区理伦视频| 麻豆国产在线观看一区二区| 欧洲一区二区三区无码| 91午夜福利在线观看| 欧美一级大片在线观看| 亚洲无码熟妇人妻AV在线| 日韩国产一区二区三区无码| 国产青榴视频| 97se亚洲综合| 亚洲av片在线免费观看| 国产视频只有无码精品| 国产精品男人的天堂| 婷婷亚洲天堂| 精品综合久久久久久97| 精品无码国产一区二区三区AV| 成人免费视频一区二区三区| 欧美日韩国产精品va| 亚洲第一区在线| 亚洲欧美成人影院| 国产第二十一页| 女人18毛片一级毛片在线| 91精品情国产情侣高潮对白蜜| 在线精品自拍| 黄色福利在线| 亚洲九九视频| 原味小视频在线www国产| 毛片最新网址| 亚洲精品制服丝袜二区| 国产丝袜一区二区三区视频免下载| 不卡网亚洲无码| 亚洲午夜福利精品无码| 国产毛片基地| 伊人久久婷婷| 国产小视频在线高清播放 | 免费在线看黄网址| 国产精品精品视频| 国产在线无码av完整版在线观看| 婷婷亚洲视频| 国产一区二区免费播放| 狠狠色香婷婷久久亚洲精品| 日韩在线永久免费播放| 青草视频网站在线观看| 无码人中文字幕| 色首页AV在线| 日韩欧美国产成人| 亚洲免费福利视频| 国产精品嫩草影院av| 国产特级毛片aaaaaa| av午夜福利一片免费看| 国产后式a一视频| 亚洲AⅤ综合在线欧美一区| 亚洲天堂精品在线| 亚洲色图欧美激情| 国产视频一二三区| 久久久久久久久久国产精品| 人与鲁专区| A级毛片高清免费视频就| 日韩精品少妇无码受不了| 2020精品极品国产色在线观看 | 日韩无码黄色| 亚洲精品手机在线| 亚洲国产精品日韩欧美一区| 亚洲欧美日韩中文字幕一区二区三区 | 国产精品蜜臀| 农村乱人伦一区二区| 国产精品开放后亚洲| 伊人久久婷婷| 日韩av电影一区二区三区四区| 中文字幕在线一区二区在线| 在线视频一区二区三区不卡| 婷五月综合| 国产激情在线视频| 亚洲第一黄色网| 91视频精品|