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

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

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

linux驅(qū)動開發(fā)_文件系統(tǒng)本地掛載

DS小龍哥-嵌入式技術(shù) ? 2022-09-17 15:52 ? 次閱讀

【摘要】 介紹Linux開發(fā)根文件系統(tǒng)掛載、NFS文件系統(tǒng)配置,UBOOT環(huán)境變量配置,完成文件系統(tǒng)啟動。

數(shù)碼相冊功能:

1.?支持兩種格式圖片顯示: bmp、jpg

區(qū)分兩種圖片格式,通過后綴名稱區(qū)分。

2.?支持觸摸屏、按鍵方式翻頁(支持前后翻頁)

建立雙向鏈表,調(diào)用讀取目錄的函數(shù)(opendir),將目錄下所有符合要求的圖片加入到鏈表里。

3.?支持三軸加速度計,實現(xiàn)姿態(tài)感應(yīng)。根據(jù)三軸加速度的姿態(tài),調(diào)整圖片的顯示方向。

4.?支持圖片的自適應(yīng): 居中顯示,超大尺寸的圖片需要自動縮小到屏幕能夠顯示的大小。

5.?居中顯示。

6.?數(shù)碼相冊需要有狀態(tài)欄: 當(dāng)前系統(tǒng)的時間信息,當(dāng)前圖片的名稱、數(shù)量。

任務(wù)1: 產(chǎn)品發(fā)布(本地掛載)

1.?在紅帽子系統(tǒng)上將根文件系統(tǒng)進(jìn)行壓縮打包。(PC機(jī)上操作)

[root@wbyq work]# tar cvf rootfs.tar rootfs/*

pYYBAGMlOaKANPlHAACUo7y2ANE955.png

2.?將打包之后的壓縮文件,移動到rootfs目錄下,方便在開發(fā)板上進(jìn)行訪問(PC機(jī)上操作)

[root@wbyq work]# mv rootfs.tar rootfs/

3.?將SD卡上內(nèi)核、UBOOT等一些代碼拷貝到EMMC里面,(接下來就可以通過EMMC啟動)

講解MMC命令:

開發(fā)板: 從SD卡啟動的

mmc read addr blk# cnt

mmc write addr blk# cnt

mmc read 0 0x40000000 1 5

mmc write 1 0x40000000 1 5

??一次性將SD卡上所有需要的數(shù)據(jù)拷貝到EMMC里: BL1BL2 UBOOT.bin 簽名文件 內(nèi)核

movi r f 0 40008000;emmc open 1;movi w z f 1 40008000;emmc close 1;

movi r b 0 40008000;emmc open 1;movi w z b 1 40008000;emmc close 1;

movi r u 0 40008000;emmc open 1;movi w z u 1 40008000;emmc close 1;

movi r t 0 40008000;emmc open 1;movi w z t 1 40008000;emmc close 1;

movi r k 0 40008000;movi w k 1 40008000;

命令執(zhí)行成功之后,將SD卡拔出,開發(fā)板開關(guān)撥到EMMC啟動,復(fù)位開發(fā)板,重新進(jìn)入到UBOOT命令行。

4.?對EMMC進(jìn)行分區(qū) (UBOOT命令行里執(zhí)行)

TINY4412 # fdisk -c 0 2000 1000 1000

TINY4412 # fdisk -p 0

partion # size(MB) block start # block count partition_Id

1 3301 8359120 6761931 0x0C

2 2004 134343 4104925 0x83

3 1005 4239268 2059926 0x83

4 1005 6299194 2059926 0x83

5.?對分區(qū)進(jìn)入格式化,安裝文件系統(tǒng)(UBOOT命令行里執(zhí)行)

TINY4412 # ext3format mmc 0:1

TINY4412 # ext3format mmc 0:2

TINY4412 # ext3format mmc 0:3

TINY4412 # ext3format mmc 0:4

將設(shè)備0(EMMC設(shè)備)的第2個分區(qū)格式化陳EXT3文件系統(tǒng)格式。

6.?設(shè)置UBOOT環(huán)境變量,讓內(nèi)核使用網(wǎng)絡(luò)方式掛載根文件系統(tǒng)(NFS)。(UBOOT命令行里執(zhí)行)

TINY4412 # set bootargs root=/dev/nfs nfsroot=192.168.10.11:/work/rootfs ip=192.168.10.123:192.168.10.11:192.168.10.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0,115200 lcd=s702

TINY4412 # save //保存環(huán)境變量

Saving Environment to SMDK bootable device...

Done

TINY4412 # reset //重啟開發(fā)板,進(jìn)行網(wǎng)絡(luò)文件系統(tǒng)掛載

7.?掛載EMMC的2號分區(qū)

將EMMC的第2個分區(qū)掛載到/mnt目錄下。

[root@tiny4412 ]#rm /dev/mmcblk* //將dev目錄下原來的mmc設(shè)備節(jié)點刪除掉

[root@tiny4412 ]#mdev -s //重新生成設(shè)備節(jié)點

[root@tiny4412 ]#ls /dev/mmcblk0* -l //查看生成之后的EMMC設(shè)備節(jié)點

brw-rw---- 1 root root 179, 0 Dec 10 2018 /dev/mmcblk0

brw-rw---- 1 root root 179, 8 Dec 10 2018 /dev/mmcblk0boot0

brw-rw---- 1 root root 179, 16 Dec 10 2018 /dev/mmcblk0boot1

brw-rw---- 1 root root 179, 1 Dec 10 2018 /dev/mmcblk0p1

brw-rw---- 1 root root 179, 2 Dec 10 2018 /dev/mmcblk0p2

brw-rw---- 1 root root 179, 3 Dec 10 2018 /dev/mmcblk0p3

brw-rw---- 1 root root 179, 4 Dec 10 2018 /dev/mmcblk0p4

[root@tiny4412 ]#mount /dev/mmcblk0p2 /mnt/ //將EMMC的第2個分區(qū)掛載到/mnt目錄下

[ 19.635000] EXT2-fs (mmcblk0p2): warning: mounting ext3 filesystem as ext2

[ 19.635000] EXT2-fs (mmcblk0p2): warning: checktime reached, running e2fsck is recommended

[root@tiny4412 ]#cd /mnt/

[root@tiny4412 mnt]#ls //查看掛載目錄

lost+found

8.?將之前打包的文件系統(tǒng)壓縮包解壓到掛載目錄下

[root@tiny4412 mnt]#pwd

/mnt

[root@tiny4412 mnt]#ls

lost+found

[root@tiny4412 mnt]#tar xvf /rootfs.tar //將之前打包的rootfs文件壓縮包解壓到/mnt目錄下

[root@tiny4412 mnt]#mv rootfs/* ./ //將解壓出來的rootfs目錄下所有文件,移動到/mnt頂層目錄下

[root@tiny4412 mnt]#ls //移出來之后目錄下的文件

bin etc linuxrc proc sys var

code home lost+found rootfs tmp work

dev lib mnt sbin usr

[root@tiny4412 mnt]#cd / //回到根目錄下

[root@tiny4412 ]#umount /mnt/ //取消目錄掛載

9.?重啟開發(fā)板,進(jìn)入到UBOOT命令行,重新設(shè)置環(huán)境變量為本地掛載

TINY4412 # set bootargs root=/dev/mmcblk0p2 rootfstype=ext3 init=/linuxrc console=ttySAC0,115200 lcd=s702 coherent_pool=2M //設(shè)置環(huán)境變量

TINY4412 # save //重啟開發(fā)板

Saving Environment to SMDK bootable device...

done

TINY4412 # reset //復(fù)位開發(fā)板

正常沒有問題的情況下,開發(fā)板文件已經(jīng)掛載成功。

poYBAGMlOaKAKVLDAAEsk4iffvo210.png

10.? 開發(fā)板文件系統(tǒng)與PC通信的方法

(1)?可以通過SD卡、U盤等方式給開發(fā)板拷貝文件。

(2)?可以通過NFS文件系統(tǒng)進(jìn)行遠(yuǎn)程掛載: 將NFS文件服務(wù)器的目錄掛載到本地。

??開發(fā)板NFS網(wǎng)絡(luò)文件系統(tǒng)掛載

1.?修改PC機(jī)上NFS文件系統(tǒng)共享的目錄

[root@wbyq /]# mkdir /code //在根目錄下創(chuàng)建一個code目錄

[root@wbyq /]# gedit /etc/exports //打開NFS服務(wù)器配置文件

pYYBAGMlOaKAbhBKAAC4f-azORc770.png

2.?重啟NFS服務(wù)器 (運行之前編寫好的腳本文件)

poYBAGMlOaKADtVyAAHBUtRIPbA827.png

3.?設(shè)置開發(fā)板上的網(wǎng)卡IP地址 (開發(fā)板終端上進(jìn)行操作)

[root@tiny4412 ]#ifconfig eth0 192.168.10.123

4.?掛載NFS服務(wù)器共享的目錄(開發(fā)板終端上進(jìn)行操作)

[root@tiny4412 ]#mount -t nfs -o nolock 192.168.10.11:/code /mnt/

5.?為了方便后續(xù)使用,可以編寫一個腳本。

[root@tiny4412 ]#ifconfig eth0 192.168.10.123

[root@tiny4412 ]#echo "ifconfig eth0 192.168.10.123" >nfs_start.sh

[root@tiny4412 ]#echo "mount -t nfs -o nolock 192.168.10.11:/code /mnt" >>nfs_st

art.sh

[root@tiny4412 ]#cat nfs_start.sh //查看腳本文件里的內(nèi)容

ifconfig eth0 192.168.10.123

mount -t nfs -o nolock 192.168.10.11:/code /mnt

[root@tiny4412 ]#chmod 777 nfs_start.sh //修改腳本權(quán)限

任務(wù)2: 360WIFI驅(qū)動(與相關(guān)的無線管理工具安裝)

購買的360WIFI: 2代。小度WIFI(百度)。 小米WIFI(小米)。

??學(xué)習(xí)無線WIFI驅(qū)動: 完整的WIFI驅(qū)動

1.?如何下載官網(wǎng)提供的驅(qū)動源碼,進(jìn)行編譯、配置、安裝: ARM

2.?學(xué)習(xí)WIFI相關(guān)的無線管理工具。

3.?學(xué)習(xí)網(wǎng)卡自動分配IP地址,才可以訪問公網(wǎng): 必須保證連接的熱點可以上網(wǎng)

uboot環(huán)境變量設(shè)置:

set bootargs root=/dev/nfs nfsroot=192.168.18.3:/work/rootfs ip=192.168.18.123:192.168.18.3:192.168.18.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0,115200 lcd=s70 coherent_pool=2M
set bootargs noinitrd root=/dev/mmcblk0p3 rootfstype=ext3 console=ttySAC0,115200 init=/linuxrc ctp=2 lcd=S70 coherent_pool=2M
set bootargs noinitrd root=/dev/mmcblk0p2 rootfstype=ext3 console=ttySAC0,115200 init=/linuxrc ctp=2 lcd=S70 coherent_pool=2M
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 文件系統(tǒng)
    +關(guān)注

    關(guān)注

    0

    文章

    283

    瀏覽量

    19860
  • Uboot
    +關(guān)注

    關(guān)注

    4

    文章

    124

    瀏覽量

    28099
  • NFS
    NFS
    +關(guān)注

    關(guān)注

    1

    文章

    52

    瀏覽量

    26063
收藏 人收藏

    評論

    相關(guān)推薦

    Linux文件系統(tǒng)掛載過程

    Linux文件系統(tǒng)(rootfs)是Linux系統(tǒng)中所有其他文件系統(tǒng)和目錄的起點,它是內(nèi)核啟動時掛載
    的頭像 發(fā)表于 10-05 16:50 ?145次閱讀

    如何構(gòu)建Linux文件系統(tǒng)

    構(gòu)建Linux文件系統(tǒng)是一個涉及多個步驟和概念的過程,它對于Linux系統(tǒng)的啟動和運行至關(guān)重要。
    的頭像 發(fā)表于 10-05 16:47 ?146次閱讀

    rtthread支持nandflash掛載fatfs文件系統(tǒng)嗎?

    rtthread支持nandflash掛載fatfs文件系統(tǒng)
    發(fā)表于 09-27 09:45

    如何更改Linux文件系統(tǒng)終端顯示顏色

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

    Linux高級文件系統(tǒng)管理詳解

    階的文件系統(tǒng)就得要學(xué)習(xí),本章我們會介紹磁盤陣列 (RAID),及邏輯卷軸文件系統(tǒng) (LVM),這些工具都可以幫助你管理與維護(hù)使用者可用的磁盤容量.
    的頭像 發(fā)表于 07-16 16:31 ?276次閱讀

    linux--sysfs文件系統(tǒng)

    sysfs文件系統(tǒng) sysfs,全稱為System Filesystem,是一個由Linux內(nèi)核實現(xiàn)的虛擬文件系統(tǒng)。它扮演著一個橋梁的角色,將內(nèi)核中的設(shè)備和驅(qū)動程序信息以
    的頭像 發(fā)表于 07-08 11:37 ?589次閱讀
    <b class='flag-5'>linux</b>--sysfs<b class='flag-5'>文件系統(tǒng)</b>

    STM32H750 FATFS文件系統(tǒng)掛載USB驅(qū)動,USB驅(qū)動枚舉過程一直處于ready狀態(tài)是為什么?

    就是FATFS文件系統(tǒng)掛載USB驅(qū)動,讀寫U盤,我一直不成功USB驅(qū)動枚舉過程一直處于ready 狀態(tài),文件系統(tǒng)
    發(fā)表于 03-27 06:52

    STM32L552VET6配置SDMMCH和文件系統(tǒng),加載文件系統(tǒng)掛載存儲卡會返回FR_NOT_READY如何解決?

    STM32L552VET6配置SDMMCH和文件系統(tǒng),不加載文件系統(tǒng)可以正常操作存儲卡,但是加載文件系統(tǒng)掛載存儲卡返回FR_NOT_READY,該如何解決。
    發(fā)表于 03-08 07:30

    Linux系統(tǒng)如何擴(kuò)展文件系統(tǒng)

    當(dāng)數(shù)據(jù)盤沒有創(chuàng)建分區(qū),只在設(shè)備上創(chuàng)建了文件系統(tǒng)?;蛘吒袷交擞脖P,就直接mount上系統(tǒng)使用。
    的頭像 發(fā)表于 02-21 09:53 ?757次閱讀

    教你在Ubuntu系統(tǒng)上定制文件系統(tǒng)

    開發(fā)板都需要去apt-get安裝,這樣會大幅增加工作量,很不便于批量化生產(chǎn)。 能不能把軟件一起打包到鏡像呢?這樣每次燒寫完就不用再去apt-get在線安裝了。答案當(dāng)然是肯定的,這就涉及到文件系統(tǒng)的定制了
    發(fā)表于 12-26 16:33

    嵌入式學(xué)習(xí)——ElfBoard ELF1板卡 之文件系統(tǒng)的介紹

    文件系統(tǒng)是一樣的,只是嵌入式Linux文件系統(tǒng)根據(jù)產(chǎn)品功能進(jìn)行過裁剪,在內(nèi)容多少和體積大小上不同。進(jìn)行嵌入式Linux產(chǎn)品開發(fā),構(gòu)建一個合
    發(fā)表于 11-24 10:02

    i.MX6ULL——ElfBoard ELF1板卡 之文件系統(tǒng)目錄的介紹

    文件系統(tǒng)是一樣的,只是嵌入式Linux文件系統(tǒng)根據(jù)產(chǎn)品功能進(jìn)行過裁剪,在內(nèi)容多少和體積大小上不同。進(jìn)行嵌入式Linux產(chǎn)品開發(fā),構(gòu)建一個合
    發(fā)表于 11-24 09:59

    Linux文件系統(tǒng)層的主要結(jié)構(gòu)

    Linux 文件系統(tǒng)體系結(jié)構(gòu)是一個對復(fù)雜系統(tǒng)進(jìn)行抽象化的有趣例子。通過使用一組通用的 API 函數(shù),Linux 可以在許多種存儲設(shè)備上支持許多種文件
    的頭像 發(fā)表于 11-10 10:37 ?508次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>文件系統(tǒng)</b>層的主要結(jié)構(gòu)

    Linux文件系統(tǒng)特點

    Linux文件系統(tǒng)特點 文件系統(tǒng)要有嚴(yán)格的組織形式,使得文件能夠以塊為單位進(jìn)行存儲。 文件系統(tǒng)中也要有索引區(qū),用來方便查找一個
    的頭像 發(fā)表于 11-09 14:48 ?1039次閱讀
    <b class='flag-5'>Linux</b>的<b class='flag-5'>文件系統(tǒng)</b>特點

    nfs掛載文件系統(tǒng)終于沒有問題了

    192.168.2.101 網(wǎng)絡(luò)連接正常。 5.nfs掛載文件系統(tǒng): => setenv mmcargs setenv bootargs console=ttymxc0,115200 root
    發(fā)表于 11-08 09:27