【摘要】 介紹Linux開發根文件系統掛載、NFS文件系統配置,UBOOT環境變量配置,完成文件系統啟動。
數碼相冊功能:
1.?支持兩種格式圖片顯示: bmp、jpg
區分兩種圖片格式,通過后綴名稱區分。
2.?支持觸摸屏、按鍵方式翻頁(支持前后翻頁)
建立雙向鏈表,調用讀取目錄的函數(opendir),將目錄下所有符合要求的圖片加入到鏈表里。
3.?支持三軸加速度計,實現姿態感應。根據三軸加速度的姿態,調整圖片的顯示方向。
4.?支持圖片的自適應: 居中顯示,超大尺寸的圖片需要自動縮小到屏幕能夠顯示的大小。
5.?居中顯示。
6.?數碼相冊需要有狀態欄: 當前系統的時間信息,當前圖片的名稱、數量。
任務1: 產品發布(本地掛載)
1.?在紅帽子系統上將根文件系統進行壓縮打包。(PC機上操作)
[root@wbyq work]# tar cvf rootfs.tar rootfs/* |
2.?將打包之后的壓縮文件,移動到rootfs目錄下,方便在開發板上進行訪問(PC機上操作)
[root@wbyq work]# mv rootfs.tar rootfs/ |
3.?將SD卡上內核、UBOOT等一些代碼拷貝到EMMC里面,(接下來就可以通過EMMC啟動)
講解MMC命令:
開發板: 從SD卡啟動的 mmc read addr blk# cnt mmc write addr blk# cnt mmc read 0 0x40000000 1 5 mmc write 1 0x40000000 1 5 |
??一次性將SD卡上所有需要的數據拷貝到EMMC里: BL1BL2 UBOOT.bin 簽名文件 內核
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; |
命令執行成功之后,將SD卡拔出,開發板開關撥到EMMC啟動,復位開發板,重新進入到UBOOT命令行。
4.?對EMMC進行分區 (UBOOT命令行里執行)
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.?對分區進入格式化,安裝文件系統(UBOOT命令行里執行)
TINY4412 # ext3format mmc 0:1 TINY4412 # ext3format mmc 0:2 TINY4412 # ext3format mmc 0:3 TINY4412 # ext3format mmc 0:4 |
將設備0(EMMC設備)的第2個分區格式化陳EXT3文件系統格式。
6.?設置UBOOT環境變量,讓內核使用網絡方式掛載根文件系統(NFS)。(UBOOT命令行里執行)
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 //保存環境變量 Saving Environment to SMDK bootable device... Done TINY4412 # reset //重啟開發板,進行網絡文件系統掛載 |
7.?掛載EMMC的2號分區
將EMMC的第2個分區掛載到/mnt目錄下。
[root@tiny4412 ]#rm /dev/mmcblk* //將dev目錄下原來的mmc設備節點刪除掉 [root@tiny4412 ]#mdev -s //重新生成設備節點 [root@tiny4412 ]#ls /dev/mmcblk0* -l //查看生成之后的EMMC設備節點 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個分區掛載到/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.?將之前打包的文件系統壓縮包解壓到掛載目錄下
[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.?重啟開發板,進入到UBOOT命令行,重新設置環境變量為本地掛載
TINY4412 # set bootargs root=/dev/mmcblk0p2 rootfstype=ext3 init=/linuxrc console=ttySAC0,115200 lcd=s702 coherent_pool=2M //設置環境變量 TINY4412 # save //重啟開發板 Saving Environment to SMDK bootable device... done TINY4412 # reset //復位開發板 |
正常沒有問題的情況下,開發板文件已經掛載成功。
10.? 開發板文件系統與PC通信的方法
(1)?可以通過SD卡、U盤等方式給開發板拷貝文件。
(2)?可以通過NFS文件系統進行遠程掛載: 將NFS文件服務器的目錄掛載到本地。
??開發板NFS網絡文件系統掛載
1.?修改PC機上NFS文件系統共享的目錄
[root@wbyq /]# mkdir /code //在根目錄下創建一個code目錄 [root@wbyq /]# gedit /etc/exports //打開NFS服務器配置文件 |
2.?重啟NFS服務器 (運行之前編寫好的腳本文件)
3.?設置開發板上的網卡IP地址 (開發板終端上進行操作)
[root@tiny4412 ]#ifconfig eth0 192.168.10.123 |
4.?掛載NFS服務器共享的目錄(開發板終端上進行操作)
[root@tiny4412 ]#mount -t nfs -o nolock 192.168.10.11:/code /mnt/ |
5.?為了方便后續使用,可以編寫一個腳本。
[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 //查看腳本文件里的內容 ifconfig eth0 192.168.10.123 mount -t nfs -o nolock 192.168.10.11:/code /mnt [root@tiny4412 ]#chmod 777 nfs_start.sh //修改腳本權限 |
任務2: 360WIFI驅動(與相關的無線管理工具安裝)
購買的360WIFI: 2代。小度WIFI(百度)。 小米WIFI(小米)。
??學習無線WIFI驅動: 完整的WIFI驅動
1.?如何下載官網提供的驅動源碼,進行編譯、配置、安裝: ARM
2.?學習WIFI相關的無線管理工具。
3.?學習網卡自動分配IP地址,才可以訪問公網: 必須保證連接的熱點可以上網
uboot環境變量設置:
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
-
文件系統
+關注
關注
0文章
287瀏覽量
19979 -
Uboot
+關注
關注
4文章
125瀏覽量
28349 -
NFS
+關注
關注
1文章
53瀏覽量
26169
發布評論請先 登錄
相關推薦
評論