一、確定TF卡掛載到ubuntu上的設(shè)備名稱及分區(qū)情況
- 1. 在ubuntu不接入TF卡的情況下,?使用df -lh /dev/sd*命令查看當(dāng)前"/dev/sd開頭"的設(shè)備。
##輸入df -lh /dev/sd*命令,敲回車鍵
~$ df -lh /dev/sd*
- 2.將TF卡接入到ubuntu,再次使用df命令,進(jìn)行查看,多出來(lái)的設(shè)備即是TF卡掛載到ubuntu的設(shè)備名稱
如圖所示,多出來(lái)的/dev/sdb1 /dev/sdb2即為TF卡的掛載分區(qū),TF設(shè)備名稱為/dev/sdb
注:因?yàn)槲抑耙呀?jīng)對(duì)SD卡進(jìn)行過(guò)分區(qū),分出兩個(gè)區(qū),sdb1為分區(qū)1(存放Linux內(nèi)核及設(shè)備樹文件),sdb2為分區(qū)2(存放根文件系統(tǒng)) uboot存放在默認(rèn)sdb。如果你的SD卡未分過(guò)區(qū),僅顯示/dev/sdb 或者sd* (*為b c d....)
- 可以使用cat ?/proc/partitions命令,查看設(shè)備的分區(qū)情況
如圖所示,SD卡sdb分出sdb1 sdb2兩個(gè)分區(qū)。
二、刪除SD卡原分區(qū),對(duì)SD卡進(jìn)行重新分區(qū)
1.取消SD卡掛載,準(zhǔn)備進(jìn)行分區(qū)操作
~$ sudo umount /dev/sdb
2.使用fdisk對(duì)SD卡進(jìn)行格式化,輸入sudo fdisk /dev/sdb命令,按m查看fdisk幫助信息
qhw@qhw:~$ sudo fdisk /dev/sdb
歡迎使用 fdisk (util-linux 2.31.1)。
更改將停留在內(nèi)存中,直到您決定將更改寫入磁盤。
使用寫入命令前請(qǐng)三思。
命令(輸入 m 獲取幫助): m
幫助:
DOS (MBR)
a 開關(guān) 可啟動(dòng) 標(biāo)志
b 編輯嵌套的 BSD 磁盤標(biāo)簽
c 開關(guān) dos 兼容性標(biāo)志
常規(guī)
d 刪除分區(qū)
F 列出未分區(qū)的空閑區(qū)
l 列出已知分區(qū)類型
n 添加新分區(qū)
p 打印分區(qū)表
t 更改分區(qū)類型
v 檢查分區(qū)表
i 打印某個(gè)分區(qū)的相關(guān)信息
雜項(xiàng)
m 打印此菜單
u 更改 顯示/記錄 單位
x 更多功能(僅限專業(yè)人員)
腳本
I 從 sfdisk 腳本文件加載磁盤布局
O 將磁盤布局轉(zhuǎn)儲(chǔ)為 sfdisk 腳本文件
保存并退出
w 將分區(qū)表寫入磁盤并退出
q 退出而不保存更改
新建空磁盤標(biāo)簽
g 新建一份 GPT 分區(qū)表
G 新建一份空 GPT (IRIX) 分區(qū)表
o 新建一份的空 DOS 分區(qū)表
s 新建一份空 Sun 分區(qū)表
命令(輸入 m 獲取幫助):
3.按照顯示信息,一直按d及對(duì)應(yīng)分區(qū)序號(hào),刪除sdb設(shè)備下所有分區(qū),至到提示“還沒(méi)有定義分區(qū)”為止。
4.按n進(jìn)行重新分區(qū),
分區(qū)大小根據(jù)個(gè)人實(shí)際需要進(jìn)行定義,
本文分區(qū)如下:
- 前面10MB空間留給uboot (SD卡一個(gè)扇區(qū)為512字節(jié),2048個(gè)扇區(qū)容量為1MB)
- uboot空間之后建立分區(qū)1給內(nèi)核和設(shè)備樹,給100MB
- 分區(qū)1之后建立分區(qū)2給根文件系統(tǒng),剩余全部空間
命令(輸入 m 獲取幫助): n
分區(qū)類型
p 主分區(qū) (0個(gè)主分區(qū),0個(gè)擴(kuò)展分區(qū),4空閑)
e 擴(kuò)展分區(qū) (邏輯分區(qū)容器)
選擇 (默認(rèn) p): p
分區(qū)號(hào) (1-4, 默認(rèn) 1): 1
第一個(gè)扇區(qū) (2048-122152959, 默認(rèn) 2048): 20480 #SD卡一個(gè)扇區(qū)512字節(jié),2048個(gè)扇區(qū)為1MB;
上個(gè)扇區(qū),+sectors 或 +size{K,M,G,T,P} (20480-122152959, 默認(rèn) 122152959): +204800 #加100M空間
創(chuàng)建了一個(gè)新分區(qū) 1,類型為“Linux”,大小為 100 MiB。
命令(輸入 m 獲取幫助): n
分區(qū)類型
p 主分區(qū) (1個(gè)主分區(qū),0個(gè)擴(kuò)展分區(qū),3空閑)
e 擴(kuò)展分區(qū) (邏輯分區(qū)容器)
選擇 (默認(rèn) p): p
分區(qū)號(hào) (2-4, 默認(rèn) 2): 2
第一個(gè)扇區(qū) (2048-122152959, 默認(rèn) 2048): 225281
上個(gè)扇區(qū),+sectors 或 +size{K,M,G,T,P} (225281-122152959, 默認(rèn) 122152959):
創(chuàng)建了一個(gè)新分區(qū) 2,類型為“Linux”,大小為 58.1 GiB。
分區(qū)完成后,按p打印分區(qū)表,查看是否修改成功。
命令(輸入 m 獲取幫助): p
Disk /dev/sdb:58.3 GiB,62542315520 字節(jié),122152960 個(gè)扇區(qū)
單元:扇區(qū) / 1 * 512 = 512 字節(jié)
扇區(qū)大小(邏輯/物理):512 字節(jié) / 512 字節(jié)
I/O 大小(最小/最佳):512 字節(jié) / 512 字節(jié)
磁盤標(biāo)簽類型:dos
磁盤標(biāo)識(shí)符:0x2d530f15
設(shè)備 啟動(dòng) 起點(diǎn) 末尾 扇區(qū) 大小 Id 類型
/dev/sdb1 20480 225280 204801 100M 83 Linux
/dev/sdb2 225281 122152959 121927679 58.1G 83 Linux
確認(rèn)修改成功后,按w進(jìn)行保存?
命令(輸入 m 獲取幫助): w
分區(qū)表已調(diào)整。
正在同步磁盤。
三、格式化/dev/sdb1分區(qū)為vfat格式,用來(lái)存放內(nèi)核與設(shè)備樹文件
使用mkfs.vfat命令,格式化/dev/sdb1分區(qū)為vfat格式
- 1.取消SD卡分區(qū)1掛載,準(zhǔn)備進(jìn)行格式化操作
~$ sudo umount /dev/sdb1
- 2.格式化/dev/sdb1分區(qū)
qhw@qhw:~$ sudo mkfs.vfat /dev/sdb1
mkfs.fat 4.1 (2017-01-24)
四、格式化/dev/sdb2分區(qū)為ext4格式,用來(lái)存放根文件系統(tǒng)
- 1.取消SD卡分區(qū)2掛載,準(zhǔn)備進(jìn)行格式化操作
~$ sudo umount /dev/sdb2
- 2.格式化/dev/sdb2分區(qū)
qhw@qhw:~$ sudo mkfs.ext4 /dev/sdb2
mke2fs 1.44.1 (24-Mar-2018)
創(chuàng)建含有 15240959 個(gè)塊(每塊 4k)和 3817472 個(gè)inode的文件系統(tǒng)
文件系統(tǒng)UUID:55a36819-e9fd-45d5-9bd4-22dad621be41
超級(jí)塊的備份存儲(chǔ)于下列塊:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424
正在分配組表: 完成
正在寫入inode表: 完成
創(chuàng)建日志(65536 個(gè)塊) 完成
寫入超級(jí)塊和文件系統(tǒng)賬戶統(tǒng)計(jì)信息: 已完成
至此,SD卡分區(qū)及分區(qū)格式化操作完成。
五、將uboot寫入SD卡
sudo dd if=u-boot-dtb.imx of=/dev/sdb bs=1K seek=1 && sync
具體操作待補(bǔ)充。。。
六、將內(nèi)核、設(shè)備樹文件寫入SD卡
##創(chuàng)建內(nèi)核與設(shè)備樹掛載目錄
mkdir kernel_dtb
##掛載/dev/sdb1到kernel_dtb目錄
sudo mount /dev/sdb1 kernel_dtb
##復(fù)制zImage文件到掛載目錄
sudo cp zImage kernel_dtb/
##復(fù)制.dtb設(shè)備樹文件到掛載目錄 拷貝自己實(shí)際設(shè)備樹名稱
sudo cp imx6ull-14x14-evk.dtb kernel_dtb/
##取消掛載
sudo umount kernel_dtb
七、將根文件系統(tǒng)寫入SD卡
##創(chuàng)建內(nèi)核與設(shè)備樹掛載目錄
mkdir mount_rootfs
##掛載/dev/sdb2到mount_rootfs目錄
sudo mount /dev/sdb2 mount_rootfs
##復(fù)制根文件系統(tǒng)目錄下所有文件到掛載目錄:nfs/rootfs目錄下為創(chuàng)建編譯好的具體根文件系統(tǒng)
sudo cp nfs/rootfs/* mount_rootfs/ -drf
##取消掛載
sudo umount mount_rootfs
八、設(shè)置uboot啟動(dòng)環(huán)境變量
設(shè)置bootcmd,從SD卡啟動(dòng)內(nèi)核與設(shè)備樹文件
setenv bootcmd 'mmc dev 0;fatload mmc 0:1 80800000 zImage;fatload mmc 0:1 83000000 imx6ull-14x14-evk.dtb;bootz 80800000 - 83000000'
?設(shè)置bootargs,從SD卡啟動(dòng)根文件系統(tǒng)
setenv bootargs 'consoe=ttymxc0,115200 root=/dev/mmcblk0p2 rootwait rw'
保存設(shè)置并重啟
saveenv
reset
附:uboot啟動(dòng)錯(cuò)誤解決,設(shè)置網(wǎng)卡mac、IP、服務(wù)器等地址
進(jìn)入調(diào)試界面對(duì)EHT mac地址進(jìn)行設(shè)置文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-761950.html
=> setenv ipaddr 192.168.1.128 ##設(shè)置開發(fā)板IP地址
=> setenv gatewayip 192.168.1.2 ##設(shè)置網(wǎng)關(guān)
=> setenv netmask 255.255.255.0 ##設(shè)置子網(wǎng)掩碼
=> setenv ethaddr ca:38:29:c3:28:30 ##設(shè)置eth0地址
=> setenv eth1addr 76:7d:33:a8:f0:e7 ##設(shè)置eth1地址
=> setenv serverip 192.168.1.17 ##設(shè)置服務(wù)器IP,也就是與開發(fā)板連接的ubuntu IP地址
=> saveenv ##保存
Saving Environment to MMC... Writing to MMC(0)... OK
=> reset ##重啟
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-761950.html
到了這里,關(guān)于IMX6ULL ARM Linux開發(fā)板SD卡啟動(dòng),SD卡的分區(qū)與分區(qū)格式化創(chuàng)建的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!