亚洲精品久久久久久久久久久,亚洲国产精品一区二区制服,亚洲精品午夜精品,国产成人精品综合在线观看,最近2019中文字幕一页二页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

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

掃碼添加小助手

加入工程師交流群

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

1.根文件系統(tǒng)簡介

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

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

??接下來以busybox-1.30.1版本為例實(shí)現(xiàn)根文件系統(tǒng)制作。

2.根文件系統(tǒng)制作

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

2.1 現(xiàn)在busybox源碼,配置環(huán)境,編譯源碼

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

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

??(2)配置編譯環(huán)境

[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 編譯錯(cuò)誤1

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

poYBAGMl2hSAc5TSAAHeRrCM9U0996.png#pic_center

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

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

2.2.2 編譯錯(cuò)誤2

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

pYYBAGMl2hWAcbk1AAHZwKPb1L0729.png#pic_center

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

??解決錯(cuò)誤后重新編譯安裝。

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

??編譯安裝成功。

poYBAGMl2heAeO39AAFsiukUgL0219.png#pic_center

2.3 完善根文件系統(tǒng)

??進(jìn)入到rootfs安裝目錄下,進(jìn)行根文件系統(tǒng)完善。

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

2.3.1 參考ubuntu根目錄,創(chuàng)建必要目錄

[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 創(chuàng)建必要文件

??創(chuàng)建 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文件,只保留下面內(nèi)容:

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

2.3.5 編寫/etc/init.d/rcS啟動(dòng)腳本文件

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 #設(shè)置主機(jī)名稱

rcS文件相關(guān)命令介紹

mount -a
mkdir /dev/pts

/dev/pts 是遠(yuǎn)程登陸(telnet,ssh 等)后創(chuàng)建的控制臺設(shè)備文件所在的目錄。由于可能有好幾千個(gè)用戶登陸,所以/dev/pts 其實(shí)是動(dòng)態(tài)生成的, 不象其他設(shè)備文件是構(gòu)建系統(tǒng)時(shí)就已經(jīng)產(chǎn)生的硬盤節(jié)點(diǎn).

mount -t devpts devpts /dev/pts

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

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

linux系統(tǒng)對于熱插拔事件的產(chǎn)生默認(rèn)都是調(diào)用 /sbin/hotplug, 該程序通過加載驅(qū)動(dòng)程序, 創(chuàng)建設(shè)備節(jié)點(diǎn),掛載分區(qū)等。 如果系統(tǒng)中不是/sbin/hotplug 來執(zhí)行,而是 mdev,那么用戶應(yīng)當(dāng)在早期啟 動(dòng)的時(shí)候?qū)⒏膱?zhí)行檔( 包含絕對位置)設(shè)置進(jìn)去,于是有了上面的echo/sbin/mdev> /proc/sys/kernel/hotplug 我們可以在腳本中注釋掉該命令行,重新開機(jī)后 cat/proc/sys/kernel/hotplug 就會發(fā)現(xiàn)返回來的是/sbin/hotplug 說明系統(tǒng)默認(rèn)都是調(diào)用這個(gè)。 這個(gè)配置在內(nèi)核編譯的時(shí)候?qū)懞玫脑趦?nèi)核 目錄下的.config可以看到有個(gè)配置叫做 CONFIG_UEVENT_HELPER_PATH=“/sbin/hotplug”

mdev -s #生成設(shè)備節(jié)點(diǎn)

/bin/hostname wbyq #設(shè)置主機(jī)名稱

2.3.6 編寫 profile 文件 gedit etc/profile

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

2.3.7 拷貝必要?jiǎng)討B(tài)庫文件

[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目錄,創(chuàng)建設(shè)備節(jié)點(diǎn)

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

2.4 設(shè)置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 配置網(wǎng)絡(luò)

pYYBAGMl2hiARWIlAACcwKomCnA773.png#pic_centerpoYBAGMl2hiATbdOAACJIDfTA8k651.png#pic_center

2.6 IP設(shè)置

??若開發(fā)板和電腦直連,則可設(shè)置為靜態(tài)IP方式,若是經(jīng)過路由器,則可使用動(dòng)態(tài)IP方式。

pYYBAGMl2hiAFeDSAAFS-TR8hTE505.png#pic_center

3.配置開發(fā)板環(huán)境變量

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 —服務(wù)器 IP 與共享目 錄
192.168.1.106 —開發(fā)板 IP 地址
192.168.1.123:192.168.1.1:255.255.255.0 —主機(jī) IP、 子網(wǎng)掩碼、 網(wǎng)關(guān)
在uboot命令行執(zhí)行,配置完后重啟開發(fā)板。

poYBAGMl2hiALc5YAABhIcJ1tcg914.png#pic_center

3.1 開發(fā)板啟動(dòng)掛載NFS失敗問題

??若開發(fā)板引導(dǎo)內(nèi)核后出現(xiàn)無法通過NFS掛載rootfs,則是由于開發(fā)板nfs版本協(xié)議和ubuntu的nfs協(xié)議不兼容。

poYBAGMl2hmANJArAAHMwP-EpSs205.png#pic_center

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

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

??保存后重啟NFS服務(wù),重啟開發(fā)板。

3.2開發(fā)板啟動(dòng)掛載進(jìn)入命令行報(bào)錯(cuò)

??原因:主要是etc/fstab文件格式不對,fstab文件報(bào)錯(cuò)磁盤掛載信息。

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

啟動(dòng)成功

poYBAGMl2hqAHjI2AAF6upuWzko491.png#pic_center

?至此,根文件系統(tǒng)制作完成,開發(fā)板啟動(dòng)成功。接下來將正式進(jìn)入驅(qū)動(dòng)開發(fā)之旅。




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11585

    瀏覽量

    217344
  • 根文件系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    26

    瀏覽量

    12460
  • rootfs
    +關(guān)注

    關(guān)注

    0

    文章

    20

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    如何在 nuc980 上切換到持久文件系統(tǒng)?

    ” General setup > 初始 RAM 文件系統(tǒng)和 RAM 磁盤 (initramfs/initrd) 支持 然后當(dāng)嘗試構(gòu)建(制作)時(shí),它再次被自動(dòng)選擇。 因此無法取消選擇 ramfs 。 如何在 nuc980 上切換到持久
    發(fā)表于 08-29 07:58

    Linux三大主流文件系統(tǒng)解析

    還在為選擇哪個(gè)文件系統(tǒng)而糾結(jié)?作為一名摸爬滾打多年的運(yùn)維老鳥,我將用最接地氣的方式,帶你徹底搞懂 Linux 三大主流文件系統(tǒng)的奧秘。
    的頭像 發(fā)表于 08-05 17:37 ?936次閱讀

    【創(chuàng)龍TL3562-MiniEVM開發(fā)板試用體驗(yàn)】問題3 擴(kuò)展ubuntu文件系統(tǒng)

    在ubuntu系統(tǒng),沒放多少自定義的東西,報(bào)空間不夠,原以為是內(nèi)存不夠,故換一個(gè)32G的SD卡作為文件系統(tǒng)(其實(shí)根本原因是rootfs.img鏡像大小,默認(rèn)rootfs.img分區(qū)
    發(fā)表于 07-08 22:11

    飛凌嵌入式ElfBoard ELF 1板卡-文件系統(tǒng)簡介

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

    服務(wù)器數(shù)據(jù)恢復(fù)—ocfs2文件系統(tǒng)被格式化為Ext4文件系統(tǒng)的數(shù)據(jù)恢復(fù)案例

    服務(wù)器存儲數(shù)據(jù)恢復(fù)環(huán)境&故障: 人為誤操作將Ext4文件系統(tǒng)誤裝入一臺服務(wù)器存儲上的Ocfs2文件系統(tǒng)數(shù)據(jù)卷上,導(dǎo)致原Ocfs2文件系統(tǒng)被格式化為Ext4文件系統(tǒng)。
    的頭像 發(fā)表于 06-10 12:03 ?445次閱讀
    服務(wù)器數(shù)據(jù)恢復(fù)—ocfs2<b class='flag-5'>文件系統(tǒng)</b>被格式化為Ext4<b class='flag-5'>文件系統(tǒng)</b>的數(shù)據(jù)恢復(fù)案例

    Linux文件系統(tǒng)打包及鏡像制作,觸覺智能RK3562開發(fā)板演示

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

    rootfs鏡像制作其實(shí)沒那么難

    在嵌入式Linux開發(fā)中,文件系統(tǒng)的打包和鏡像制作是關(guān)鍵步驟。本文介紹了Linux核心板文件系統(tǒng)的打包與鏡像制作方法,適合嵌入式開發(fā)人員快速上手。前言致遠(yuǎn)電子Linux核心板提供的
    的頭像 發(fā)表于 04-03 11:37 ?810次閱讀
    rootfs鏡像<b class='flag-5'>制作</b>其實(shí)沒那么難

    如何正確選擇嵌入式文件系統(tǒng)?

    Linux嵌入式系統(tǒng)中,文件系統(tǒng)和緩存機(jī)制常導(dǎo)致數(shù)據(jù)存儲穩(wěn)定性問題。本文通過案例分析原因,對比不同文件系統(tǒng)特性,為開發(fā)者提供優(yōu)化建議,助力提升數(shù)據(jù)穩(wěn)定性和系統(tǒng)可靠性。前言基于Linux
    的頭像 發(fā)表于 03-17 11:35 ?755次閱讀
    如何正確選擇嵌入式<b class='flag-5'>文件系統(tǒng)</b>?

    在stm32cubeprogrammer上燒錄時(shí),取消勾選文件系統(tǒng),燒錄后發(fā)現(xiàn)sd卡上文件系統(tǒng)的分區(qū)沒有了,為什么?

    在修改了linux內(nèi)核后,我想只把bootfs燒錄到sd卡上,而不擦除根文件系統(tǒng)的分區(qū)。 我在stm32cubeprogrammer上燒錄時(shí),取消勾選文件系統(tǒng),燒錄后發(fā)現(xiàn)sd卡上
    發(fā)表于 03-07 06:38

    NFS網(wǎng)絡(luò)文件系統(tǒng)深度解析

    NFS:Network File System 網(wǎng)絡(luò)文件系統(tǒng),基于內(nèi)核的文件系統(tǒng)。Sun 公司開發(fā),通過使用 NFS,用戶和程序可以像訪問本地文件一樣訪問遠(yuǎn)端系統(tǒng)上的
    的頭像 發(fā)表于 03-01 14:15 ?1067次閱讀

    防止文件系統(tǒng)破壞,OverlayRootfs 讓你的設(shè)備更安全

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

    華納云:VFS在提升文件系統(tǒng)性能方面的具體實(shí)踐

    VFS(Virtual File System)通過提供統(tǒng)一的接口和抽象層,使得操作系統(tǒng)能夠以高效的方式管理和訪問不同的文件系統(tǒng)。以下是一些VFS在提升文件系統(tǒng)性能方面的具體實(shí)踐示例: 統(tǒng)一的
    的頭像 發(fā)表于 11-27 15:59 ?1310次閱讀

    Jtti:Linux中虛擬文件系統(tǒng)和容器化的關(guān)系

    資源。在這種架構(gòu),VFS 提供了容器和宿主機(jī)之間、以及容器之間對文件系統(tǒng)的統(tǒng)一訪問接口。 1.容器和文件系統(tǒng)的關(guān)系 容器化技術(shù)(如 Docker、Podman)使得多個(gè)應(yīng)用程序可以在隔離的環(huán)境中運(yùn)行,但共享宿主機(jī)的操作
    的頭像 發(fā)表于 11-27 15:38 ?711次閱讀

    服務(wù)器數(shù)據(jù)恢復(fù)—raid5陣列+reiserfs文件系統(tǒng)數(shù)據(jù)恢復(fù)案例

    reiserfs文件系統(tǒng)作為分區(qū)。 服務(wù)器故障: 服務(wù)器操作系統(tǒng)在運(yùn)行過程中由于未知原因崩潰,管理員重裝操作系統(tǒng)后發(fā)現(xiàn)分區(qū)結(jié)構(gòu)變?yōu)椋篵oot分區(qū)+swap分區(qū)+LVM卷(按照
    的頭像 發(fā)表于 11-07 13:15 ?734次閱讀

    stm32單片機(jī)基于rt-thread 的 littlefs 文件系統(tǒng) 的使用

    簡介littlefs是ARM官方推出的,專為嵌入式系統(tǒng)設(shè)計(jì)的文件系統(tǒng),相比傳統(tǒng)的文件系統(tǒng),littlefs具有以下優(yōu)點(diǎn):1、自帶擦寫均衡2、支持掉電保護(hù)3、占用的
    的頭像 發(fā)表于 11-06 08:04 ?4078次閱讀
    stm32單片機(jī)基于rt-thread 的 littlefs <b class='flag-5'>文件系統(tǒng)</b> 的使用