日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

嵌入式linux启动根文件系统,嵌入式Linux根文件系统制作和挂载

發布時間:2024/9/27 linux 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 嵌入式linux启动根文件系统,嵌入式Linux根文件系统制作和挂载 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

嵌入式Linux系統由三部分組成: uboot、kernel、根文件系統, 還是這張老圖

這里的根文件系統可以說是包含兩個部分: 一個是根,一個是文件系統

那么什么是根呢?哈哈 其實根表示的就是第一個的意思

下面貼張圖看看整個根文件系統制作的步驟:

第一步創建目錄,這里是在我自己的一個目錄下建立一個名為rootfs的目錄:

第二步 :創建設備文件(比如操作串口,其實就是打開一個串口文件,向里面寫入讀出等)

這里有兩個是必須的,其他的暫時不考慮(串口控制臺)(這個在dev目錄下執行)

第一個指令console表示是串口控制臺設備 c表示是字符設備 5表示主設備號,1表示次設備號

第二個指令暫時也不明白,先放著。

第三步:加入配置文件(主要是etc目錄下的)

第四步:添加內核模塊

這個要進入到Llinux 內核中編譯內核模塊!

第二條指令是將編譯好的模塊拷貝到rootfs目錄下的相應目錄中

從這里可以看到當前目錄下的一些.ko文件

第五步:編譯安裝busybox

先解壓,然后進入目錄make menuconfig

這里直接進入第一項,這里有兩項要設置

1. 選中第一項Build BusyBox as a static binary

2. Corss Compile prefix 輸入自己交叉編譯器的前綴

上圖中需要設置兩個地方,一個是選中第一項 一個是BusyBox installation prefix安裝路徑這里填寫我自己建的目錄所在的絕對路徑。

上圖中的home寫錯了,這里先說一下。退出然后保存,make 編譯然后make install(其實這里就是執行一個復制功能)(上面的選項其他的暫不配置)安裝成功后截圖:

這是也可以去rootfs/bin目錄下看看有什么變化,執行之前bin目錄下是空的

這里可以看到很多常用的命令!

第二部分:掛載根文件系統(即如何使用上邊制作好的根文件系統)

第一步:

Initramfs 啟動速度快。缺點是掉電后數據丟失!

進入rootfs目錄下,創建一個軟鏈接!把系統的Initramfs鏈接到當前的目錄下的busybox下 軟鏈接的名字取為init

然后進入Linux內核中配置make menuconfig配置內核

進入general setup

選中圖中藍色部分上面一項Initial RAM filessystem and RAM disk.......

并且進入圖中藍色部分寫入自己執著的rootfs路徑:

保存,然后重新編譯內核

編譯完成:

這里將生成的 arch/arm/boot/uImage文件拷貝到tftpboot目錄下!(這個可以參考前面的關于自動啟動內核設置那篇博文)

最后一步,設置環境變量:

打開串口終端,連接開發板

設置環境變量:

然后tftp uImage c0008000

bootm c0008000啟動內核

這里可以看到上面制作的文件系統啟動成功

下面一步來講述使用NFS來掛著根文件系統!(network file system)

這樣有利于開發過程中的同步,即在PC機上更改一些文件能同時同步到開發板上的文件上

這樣就省去了每次更改一些內核文件時重新編譯工作!(內核開發過程中非常實用,使用NFS是必須掌握的技巧)

首先第一步還是內核配置:

首先取消掉上面選中的Initial RAM filesystem and RAM disk...選項,如圖:(這一項是在Gnenral setup選項里面)

然后進入file systems中

進入選中圖中藍色選項:

選中圖中藍色選項,并且進入,選中圖中藍色部分

然后退出保存,然后在重新編譯make uImage ARCH=arm CROSS_COMPILE=arm-linux-

同上將uImage拷貝到tftpboot目錄下,

然后剩下的就是設置nfs環境變量了

我電腦linux的ip 是192.168.1.111, 開發板的ip是192.168.1.110

所以這里我設置的環境變量為

setenv bootargs noinitrd console=ttySAC0,115200 init=/init root=/dev/nfs rw nfsroot=192.168.1.111:/home/S3-ARM/rootfs,proto=tcp,nfsvers=3 ip=192.168.1.110:192.168.1.111:192.168.1.1:255.255.255.0::eth0:off設置完后然后saveenv一下

tftp c0008000 uImage

bootm c0008000

然后看一張截圖,就是我在pc機的linux上的rootfs目錄下建立一個Text.txt文件,可以看到這個文件立刻就可以在開發板上看到。

這在內核開發基本是必備技能!用起來是相當方便的!

這里NFS掛載補充一點:/etc/init.d/nfs restart 啟動nfs服務器

第二點:

vim /etc/exports 文件 輸入一下內容,這個是我的rootfs文件路徑(這里的意思就是NFS要掛在的目錄是哪個,然后掛載屬性是什么)

總結

以上是生活随笔為你收集整理的嵌入式linux启动根文件系统,嵌入式Linux根文件系统制作和挂载的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。