嵌入式Linux開發-根文件系統本地掛載

      網友投稿 1420 2025-03-31

      1. 前言


      上篇文章介紹了根文件系統的制作與NFS網絡掛載,這篇文章介紹內核如何從本地掛載根文件系統,完成系統啟動。本地掛載一般用在產品發布的時候,本地掛載的操作也分為兩種。

      第一種: 在PC機上制作好文件映像rootfs.img,然后利用uboot加載直接燒寫到EMMC里。這種最方便,適合產品批量生產燒錄。需要依賴官方的工具。當前用的開發板是友善之臂的Tiny4412,官方提供了分區工具,可以將SD卡分區,將制作好的內核、uboot、文件系統映像、配置腳本放在SD卡里,然后開發板選擇SD卡啟動,就可以通過uboot完成EMMC分區,文件系統格式化、文件系統解壓拷貝過程,在LCD屏上還有執行的進度條。

      第二種: 自己在uboot命令行對EMMC進行分區,然后拷貝文件系統到指定分區,再設置uboot環境變量完成掛載。這種可以了解整個掛載流程,對于學習來講,非常適合。

      下面分別介紹兩種掛載方式的執行過程。

      嵌入式Linux開發-根文件系統本地掛載

      2. 本地掛載方式1

      這種放需要準備一張SD卡,然后需要利用官方光盤里提供的分區工具,對SD卡進行分區,再將內核、uboot、文件系統映像文件拷貝到SD卡上,再修改配置文件,設置啟動的系統為linux系統。

      根文件系統映像制作需要用到make_ext4fs命令,這個工具在光盤里也有,是一個壓縮包,解壓到PC機linux系統下就可以使用。

      制作完成之后,將根文件系統拷貝到SD卡的image文件夾,與燒寫安卓系統一樣進行燒寫。

      說明:其中的zImage文件是可以自己編譯替換掉的。

      配置內核:

      # cp tiny4412_linux_defconfig .config

      制作根文件系統的方式:

      make_ext4fs -s -l <文件系統映像的大小> <生成的映像文件名稱> <根文件系統存放的目錄>

      示例:

      make_ext4fs -s -l 500M rootfs.img rootfs

      如果不知道rootfs文件系統的大小,可以使用du命令進行查看。 例如:du rootfs -h

      注意:在制作根文件系統映像包的時候,需要先將rootfs/dev目錄下的所有文件全部刪除掉。

      注意: 運行make_ext4fs命令需要使用超級用戶身份,否則會導致文件系統制作之后無法加載。

      如果是普通用戶身份登錄系統,在執行命令時,加上sudo即可。

      示例:

      sudo make_ext4fs -s -l 500M rootfs.img rootfs [wbyq@wbyq work]$ sudo linux_tools/local/bin/make_ext4fs -s -l 500M rootfs.img rootfs/ [sudo] password for wbyq: Creating filesystem with parameters: Size: 524288000 Block size: 4096 Blocks per group: 32768 Inodes per group: 8000 Inode size: 256 Journal blocks: 2000 Label: Blocks: 128000 Block groups: 4 Reserved block group size: 31 Created filesystem with 5534/32000 inodes and 51924/128000 blocks

      3. 本地掛載方式2

      在完成當前介紹的掛載方式2,需要先完成NFS網絡掛載才可以繼續,大致的思路就是:

      (1)先將uboot、內核拷貝到開發板EMMC

      (2)進入到uboot命令行,對EMMC進行分區,格式化文件系統。

      (3)配置uboot環境變量,設置文件掛載掛載為NFS網絡掛載,最后成功進入到命令行終端,然后將某個EMMC分區掛載到文件系統目錄下,將根文件系統壓縮包解壓到這個目錄,最后重啟開發板進入到uboot命令行再次修改環境變量,設置uboot從剛才解壓文件系統的分區啟動,重啟開發板,最后完成掛載。

      接下來就詳細的完成上面說的步驟:

      (1)對EMMC進行分區安裝文件系統

      在uboot命令行執行以下代碼。注意: 當前是從SD卡啟動。

      TINY4412 # fdisk -c 1 1024 1024 1024 TINY4412 # ext2format mmc 1:2

      (2)打包PC機的rootfs文件系統

      [wbyq@wbyq work]$ sudo tar cvf rootfs.tar rootfs [wbyq@wbyq work]$ mv rootfs.tar rootfs/

      (3)使用NFS方式掛載解壓文件系統到EMMC指定分區

      以下命令是掛載NFS文件系統之后,進入到Linux命令行執行。注意: 當前是從SD卡啟動

      [root@wbyq ]# rm /dev/* [root@wbyq ]# mdev -s [root@wbyq ]# mount /dev/mmcblk1p2 /mnt/ [root@wbyq ]# cd /mnt/ [root@wbyq mnt]# tar xvf /rootfs.tar [root@wbyq mnt]# mv rootfs/* ./ [root@wbyq ]# umount /mnt/

      (4)切換成EMMC方式啟動設置UBOOT環境變量

      以下命令在UBOOT命令行執行。

      TINY4412 # setenv bootargs root=/dev/mmcblk0p2 rootfstype=ext2 init=/linuxrc console=ttySAC0 lcd=S702 TINY4412 # saveenv TINY4412 # reset

      (5)本地方式下,使用NFS方式掛載NFS服務器的目錄實現文件共享

      [root@wbyq ]# ifconfig eth0 192.168.10.123 [root@wbyq ]# mount -t nfs -o nolock 192.168.10.11:/home/wbyq/project

      把PC機文件拷貝到開發板上的方式:

      (1). SD卡或者U盤拷貝

      (2). NFS網絡方式

      (3). 串口傳輸

      Linux 嵌入式

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:怎么調動圖片(怎么調動圖片位置)
      下一篇:excel表格兩列數據對比差異性的方法(如何對比excel兩列數據的差異)
      相關文章
      在线观看亚洲人成网站| 亚洲AV无码一区二区二三区入口 | 亚洲综合精品第一页| 91亚洲精品视频| 久久国产精品亚洲综合| 亚洲AV一宅男色影视| 久久精品亚洲综合一品| 久久亚洲精品成人综合| 亚洲精品无码午夜福利中文字幕| 国产成人亚洲精品91专区手机| JLZZJLZZ亚洲乱熟无码| 久久精品国产精品亚洲| 中文字幕精品无码亚洲字| 亚洲精品国产精品乱码视色| 亚洲人成人一区二区三区| 狠狠色伊人亚洲综合成人| 亚洲AV无码专区在线播放中文 | 亚洲国产成人久久综合一| 亚洲嫩模在线观看| 亚洲福利电影在线观看| 亚洲xxxxxx| 亚洲精品国产精品| 国产亚洲午夜精品| 久久精品国产亚洲7777| 亚洲gv白嫩小受在线观看| 亚洲一本综合久久| 亚洲国产成人精品久久| 亚洲熟女综合色一区二区三区| 亚洲av无码无线在线观看| 国产亚洲精品美女2020久久| 国产亚洲精品拍拍拍拍拍| 亚洲国产精品无码专区影院| 久久久无码精品亚洲日韩蜜臀浪潮 | 国产精品亚洲一区二区三区久久| 亚洲欧洲自拍拍偷精品 美利坚 | 亚洲一本之道高清乱码| 亚洲色偷偷综合亚洲av78| 色偷偷亚洲第一综合| 中文字幕中韩乱码亚洲大片| 亚洲AV永久无码精品| 亚洲日本在线播放|