女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

roofs根文件系統簡介制作(下)

嵌入式技術 ? 2022-09-18 09:26 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

roofs 根文件系統簡介制作(下)

1.根文件系統簡介

?根文件系統首先是內核啟動時所mount的第一個文件系統,內核代碼映像文件保存在根文件系統中,而系統引導啟動程序會在根文件系統掛載之后從中把一些基本的初始化腳本和服務等加載到內存中去運行。文件系統是對一個存儲設備上的數據和元數據進行組織的機制。這種機制有利于用戶和操作系統的交互。文件是用戶和操作系統之間交互的主要工具。

Linux啟動時,第一個必須掛載的是根文件系統;若系統不能從指定設備上掛載根文件系統,則系統會出錯而退出啟動。成功之后可以自動或手動掛載其他的文件系統。因此,一個系統中可以同時存在不同的文件系統。

??接下來以busybox-1.30.1版本為例實現根文件系統制作。

2.根文件系統制作

開發平臺:ubuntu18.04.6
開發板:Cortex-A9 tiny4412
BusyBox版本:1.30.1
交叉編譯器:arm-linux-gcc

2.1 現在busybox源碼,配置環境,編譯源碼

??(1)下載busybox源碼,解壓到用戶目錄下。

[wbyq@wbyq src_pack]$ tar xvf /mnt/hgfs/ubuntu/software_pack/busybox-1.30.1.tar.bz2 

??(2)配置編譯環境

[wbyq@wbyq src_pack]$ cd busybox-1.30.1/
[wbyq@wbyq busybox-1.30.1]$ make menuconfig
    Settings  --->  
    	(arm-linx-)  Cross compiler prefix (NEW) 
    	(/home/wbyq/src_pack/rootfs) Destination path for 'make install' 

poYBAGMl2hOAdUs0AAIAVG383Dw126.png#pic_center
pYYBAGMl2hSAeBvUAAHZue_Y4f8731.png#pic_center

??配置好后保存退出,make編譯。

2.2 編碼源碼

[wbyq@wbyq busybox-1.30.1]$ make

2.2.1 編譯錯誤1

??編譯過程中若出現以下錯誤,則重新打開配置菜單,將syncfs屏蔽即可。

poYBAGMl2hSAc5TSAAHeRrCM9U0996.png#pic_center

[wbyq@wbyq busybox-1.30.1]$ make menuconfig
pYYBAGMl2hSAQgwvAACviLQ1968073.png#pic_centerpoYBAGMl2hWAECcaAAGZhiIT3Gg539.png#pic_center

??修改完成后保存退出,再次重新編譯。

2.2.2 編譯錯誤2

??編譯過程中若出現以下錯誤,則重新打開配置菜單,將setns屏蔽即可。

pYYBAGMl2hWAcbk1AAHZwKPb1L0729.png#pic_center

[wbyq@wbyq busybox-1.30.1]$ make menuconfig
poYBAGMl2haAWG7FAAELUlpDZyg692.png#pic_centerpYYBAGMl2haAP_L_AAENG8Sr5ig128.png#pic_center

??解決錯誤后重新編譯安裝。

[wbyq@wbyq busybox-1.30.1]$ make && make install -j8

??編譯安裝成功。

poYBAGMl2heAeO39AAFsiukUgL0219.png#pic_center

2.3 完善根文件系統

??進入到rootfs安裝目錄下,進行根文件系統完善。

[wbyq@wbyq busybox-1.30.1]$ cd /home/wbyq/src_pack/rootfs/
[wbyq@wbyq rootfs]$ ls
bin  linuxrc  sbin  usr

2.3.1 參考ubuntu根目錄,創建必要目錄

[wbyq@wbyq rootfs]$ mkdir etc lib lost+found proc snap tmp boot home media root srv cdrom mnt run dev opt sys
pYYBAGMl2heALctPAAGgVpCyV28495.png#pic_center

2.3.2 創建必要文件

??創建 etc/profile 文件、 etc/init.d 目 錄、 etc/init.d/rcS 文件

[wbyq@wbyq rootfs]$ touch etc/profile 
[wbyq@wbyq rootfs]$ mkdir etc/init.d
[wbyq@wbyq rootfs]$ touch etc/init.d/rcS
[wbyq@wbyq init.d]$ chmod +x rcS 

2.3.3 完善etc目錄

[wbyq@wbyq rootfs]$ cp /etc/passwd etc/
[wbyq@wbyq rootfs]$ cp /etc/group etc/
[wbyq@wbyq rootfs]$ cp /etc/fstab etc/
[wbyq@wbyq rootfs]$ cp ../busybox-1.30.1/examples/inittab etc/

2.3.4 修改 inittab 文件

??修改 etc/inittab文件,只保留下面內容:

::sysinit:/etc/init.d/rcS #設置初始化執行的文件
#需要加上 console askfirst 表示需要按下回車才可以進入系統
#respawn 表示開機直接進入系統
console::askfirst:-/bin/sh 
::ctrlaltdel:/sbin/reboot #指定重啟命令
::shutdown:/bin/umount -a -r #指定關機時執行的命令

2.3.5 編寫/etc/init.d/rcS啟動腳本文件

mount -a
mkdir /dev/pts
mount -a
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
/bin/hostname wbyq #設置主機名稱

rcS文件相關命令介紹

mount -a
mkdir /dev/pts

/dev/pts 是遠程登陸(telnet,ssh 等)后創建的控制臺設備文件所在的目錄。由于可能有好幾千個用戶登陸,所以/dev/pts 其實是動態生成的, 不象其他設備文件是構建系統時就已經產生的硬盤節點.

mount -t devpts devpts /dev/pts

內核虛擬文件。和 proc 一樣,Linux 提供給管理員通過文件系統和內核進行溝通( 讀\寫)的一種渠道。 pts 是遠程虛擬終端。 devpts 即遠程虛擬終端文件設備。 通過/dev/pts 可以了解目前遠程虛擬終端的基本情況。

echo /sbin/mdev > /proc/sys/kernel/hotplug

linux系統對于熱插拔事件的產生默認都是調用 /sbin/hotplug, 該程序通過加載驅動程序, 創建設備節點,掛載分區等。 如果系統中不是/sbin/hotplug 來執行,而是 mdev,那么用戶應當在早期啟 動的時候將改執行檔( 包含絕對位置)設置進去,于是有了上面的echo/sbin/mdev> /proc/sys/kernel/hotplug 我們可以在腳本中注釋掉該命令行,重新開機后 cat/proc/sys/kernel/hotplug 就會發現返回來的是/sbin/hotplug 說明系統默認都是調用這個。 這個配置在內核編譯的時候寫好的在內核 目錄下的.config可以看到有個配置叫做 CONFIG_UEVENT_HELPER_PATH=“/sbin/hotplug”

mdev -s #生成設備節點

/bin/hostname wbyq #設置主機名稱

2.3.6 編寫 profile 文件 gedit etc/profile

USER="id-un" #id -un 是獲得當前登陸的用戶名稱,USER="`id -un`" 則是將 id -un 的返回值賦值給變量 USER
LOGNAME=$USER #用于顯示用戶名稱
PS1='[\u@\h \W]\$ ' #命令行樣式環境變量, 查看系統命令行樣式 echo $PS1
PATH=$PATH
HOSTNAME='/bin/hostname'
export USER LOGNAME PS1 PATH HOSTNAME

2.3.7 拷貝必要動態庫文件

[wbyq@wbyq rootfs]$ cp ../arm-linux-gcc/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/lib/* ./lib/ -rfdv
[wbyq@wbyq rootfs]$ cp ../arm-linux-gcc/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/lib/* ./lib/ -rfdv
[wbyq@wbyq rootfs]$ cp ../arm-linux-gcc/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi/sys-root/usr/lib/* ./lib/ -rfdv

2.3.8 完善dev目錄,創建設備節點

[wbyq@wbyq rootfs]$ sudo mknod dev/null c 1 3

2.4 設置NFS共享

??添加NFS共享目錄

[wbyq@wbyq rootfs]$ sudo vim /etc/exports
/home/wbyq/src_pack/rootfs  *(rw,no_root_squash,sync,insecure)
poYBAGMl2heAKD9qAAFZ7ygabQU269.png#pic_center

2.5 配置網絡

pYYBAGMl2hiARWIlAACcwKomCnA773.png#pic_centerpoYBAGMl2hiATbdOAACJIDfTA8k651.png#pic_center

2.6 IP設置

??若開發板和電腦直連,則可設置為靜態IP方式,若是經過路由器,則可使用動態IP方式。

pYYBAGMl2hiAFeDSAAFS-TR8hTE505.png#pic_center

3.配置開發板環境變量

setenv bootargs root=/dev/nfs nfsroot=192.168.10.123:/home/wbyq/src_pack/rootfs ip=192.168.10.106:192.168.10.123:192.168.10.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0 lcd=S702

192.168.1.123:/home/xsw/linux_work/rootfs —服務器 IP 與共享目 錄
192.168.1.106 —開發板 IP 地址
192.168.1.123:192.168.1.1:255.255.255.0 —主機 IP、 子網掩碼、 網關
在uboot命令行執行,配置完后重啟開發板。

poYBAGMl2hiALc5YAABhIcJ1tcg914.png#pic_center

3.1 開發板啟動掛載NFS失敗問題

??若開發板引導內核后出現無法通過NFS掛載rootfs,則是由于開發板nfs版本協議和ubuntu的nfs協議不兼容。

poYBAGMl2hmANJArAAHMwP-EpSs205.png#pic_center

??解決辦法:修改/etc/default/nfs-kernel-server 文件,添加協議版本支持。

[wbyq@wbyq rootfs]$ sudo vim /etc/default/nfs-kernel-server
RPCNFSDOPTS="--nfs-version 2,3,4 --debug --syslog"
pYYBAGMl2hmAV7DjAAEvTB3SzTc560.png#pic_center

??保存后重啟NFS服務,重啟開發板。

3.2開發板啟動掛載進入命令行報錯

??原因:主要是etc/fstab文件格式不對,fstab文件報錯磁盤掛載信息。

poYBAGMl2hqAdvsaAAKE-iy95wA721.png#pic_center

??解決辦法:修改rootfs下的/etc/fstab文件

[wbyq@wbyq rootfs]$ gedit etc/fstab 

/dev/mapper/vg_wbyq-lv_swap swap                  swap    defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                  proc    defaults        0 0
pYYBAGMl2hqAMTb_AAD4U6vLI-A179.png#pic_center

啟動成功

poYBAGMl2hqAHjI2AAF6upuWzko491.png#pic_center

?至此,根文件系統制作完成,開發板啟動成功。接下來將正式進入驅動開發之旅。




審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11511

    瀏覽量

    213796
  • 根文件系統
    +關注

    關注

    0

    文章

    26

    瀏覽量

    12283
  • rootfs
    +關注

    關注

    0

    文章

    20

    瀏覽量

    4811
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    【創龍TL3562-MiniEVM開發板試用體驗】問題3 擴展ubuntu文件系統

    在ubuntu系統,沒放多少自定義的東西,報空間不夠,原以為是內存不夠,故換一個32G的SD卡作為文件系統(其實根本原因是rootfs.img鏡像大小,默認rootfs.img分區
    發表于 07-08 22:11

    飛凌嵌入式ElfBoard ELF 1板卡-文件系統簡介

    /3/4等,ELF 1開發板使用的是Ext3文件系統,每種文件系統類型都有自己的特性,下面我們逐一介紹一。一、Ext2/3/4Ext全稱Linux extended file system
    發表于 06-19 17:22

    服務器數據恢復—ocfs2文件系統被格式化為Ext4文件系統的數據恢復案例

    服務器存儲數據恢復環境&故障: 人為誤操作將Ext4文件系統誤裝入一臺服務器存儲上的Ocfs2文件系統數據卷上,導致原Ocfs2文件系統被格式化為Ext4文件系統
    的頭像 發表于 06-10 12:03 ?211次閱讀
    服務器數據恢復—ocfs2<b class='flag-5'>文件系統</b>被格式化為Ext4<b class='flag-5'>文件系統</b>的數據恢復案例

    Linux文件系統打包及鏡像制作,觸覺智能RK3562開發板演示

    本文介紹Linux開發板文件系統打包及鏡像制作的方法,演示Linux文件系統打包及鏡像制作,適用于想將配置好的系統環境打包成鏡像批量燒錄。觸
    的頭像 發表于 04-28 16:45 ?346次閱讀
    Linux<b class='flag-5'>文件系統</b>打包及鏡像<b class='flag-5'>制作</b>,觸覺智能RK3562開發板演示

    在stm32cubeprogrammer上燒錄時,取消勾選文件系統,燒錄后發現sd卡上文件系統的分區沒有了,為什么?

    在修改了linux內核后,我想只把bootfs燒錄到sd卡上,而不擦除根文件系統的分區。 我在stm32cubeprogrammer上燒錄時,取消勾選文件系統,燒錄后發現sd卡上
    發表于 03-07 06:38

    NFS網絡文件系統深度解析

    NFS:Network File System 網絡文件系統,基于內核的文件系統。Sun 公司開發,通過使用 NFS,用戶和程序可以像訪問本地文件一樣訪問遠端系統上的
    的頭像 發表于 03-01 14:15 ?704次閱讀

    防止文件系統破壞,OverlayRootfs 讓你的設備更安全

    OverlayRootfs介紹OverlayRootfs是指利用OverlayFS技術創建的文件系統(rootfilesystem)。OverlayFS是一種聯合文件系統(UnionFS),允許將
    的頭像 發表于 01-08 16:33 ?1439次閱讀
    防止<b class='flag-5'>根</b><b class='flag-5'>文件系統</b>破壞,OverlayRootfs 讓你的設備更安全

    stm32單片機基于rt-thread 的 littlefs 文件系統 的使用

    簡介littlefs是ARM官方推出的,專為嵌入式系統設計的文件系統,相比傳統的文件系統,littlefs具有以下優點:1、自帶擦寫均衡2、支持掉電保護3、占用的
    的頭像 發表于 11-06 08:04 ?3002次閱讀
    stm32單片機基于rt-thread 的 littlefs <b class='flag-5'>文件系統</b> 的使用

    NetApp數據恢復—NetApp存儲WAFL文件系統誤刪除的數據恢復案例

    NetApp某型號存儲,WAFL文件系統。 工作人員誤操作將該NetApp存儲中的重要數據刪除。
    的頭像 發表于 10-11 14:17 ?444次閱讀

    Linux文件系統的掛載過程

    Linux文件系統(rootfs)是Linux系統中所有其他文件系統和目錄的起點,它是內核啟動時掛載的第一個文件系統
    的頭像 發表于 10-05 16:50 ?968次閱讀

    如何構建Linux文件系統

    構建Linux文件系統是一個涉及多個步驟和概念的過程,它對于Linux系統的啟動和運行至關重要。
    的頭像 發表于 10-05 16:47 ?684次閱讀

    [2K300適配OpenharmonyV4.1]文件系統制作請教

    嘗試更改制作文件格式為ext4,但是燒錄時也失敗了。 請問能否提供一Openharmony 文件系統的相關資料,或者開源一Openha
    發表于 09-11 11:18

    如何更改Linux文件系統終端顯示顏色

    自己制作的簡單 Linux 文件系統,你會發現終端顯示為黑白色,很不好看
    的頭像 發表于 08-12 17:29 ?1244次閱讀
    如何更改Linux<b class='flag-5'>文件系統</b>終端顯示顏色

    STM32MP157D使用buildroot生成文件系統時就無法正常顯示,為什么?

    我在使用最新OpenSTLinux(5.1.0)Linux版本:6.1.28,使用官方的文件系統(st-image-weston-openstlinux-weston-stm32mp1.ext4
    發表于 07-26 06:21

    如何修改buildroot和debian文件系統

    本文檔主要介紹在沒有編譯環境的情況,如何修改buildroot和debian文件系統方法,如在buildroot文件系統中添加文件、修改目錄等文件
    的頭像 發表于 07-22 17:46 ?888次閱讀
    如何修改buildroot和debian<b class='flag-5'>文件系統</b>