linux驅動開發_文件系統本地掛載
數碼相冊功能:
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
mmc write
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
硬件開發 網絡
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。