用SD卡下载uboot、linux内核和文件系统
1、 移植mtd-utils:
?
a) 下載utd-utils 下載地址為ftp://ftp.infradead.org/pub/mtd-utils/
b) 交叉編譯mtd-utils
i?? 修改Makefile?? CROSS=arm-linux-
ii? make
iii 查看下mtd-utils-1.0.0目錄下是否生成了咱們所需要大工具????
(flashcp,nandwrite......等)。有工具生成了,OK,交叉編譯成功。
iv 將生成大工具拷貝到文件系統開發板的根文件系統,放在/bin 或/sbin 都行。
?
2、 sd卡燒錄
?
a) 在安裝了 Linux 的 PC 機上通過 fdisk 給一張空的SD 卡分為 2 個區(如果SD卡中本身已經包含,請通過fdisk的“d”命令全部刪除),得到如下的分區表:
?
Command (m for he lp) : p
?
Di sk /dev/ sdb: 1030 MB, 1030225920 byte s
32 he ads, 62 se c tor s / t rack, 1014 cyl inde r s
Uni t s = cyl inde r s of 1984 * 512 = 1015808 byt e s
Di sk ident i f ie r : 0x6f20736b
?
Devic eBoot? Sta r t? End? Blocks? Id? Sys tem
/dev/ sdb1 *? 1? 20? 19809?? 83?? Linux
/dev/ sdb2 21? 1014? 986048? 83? Linux
?
注意第 1 個分區制作的命令為:
?
Command (m for he lp) : n
Command a c t ion
e? ext ended
p? primary partit ion (14)
p
Partition numbe r (1-4): 2
Firs t cyinde r (11014, defaul t 21) :
Using defaul t value 21
Last cyl inder, +cyl inde rs or +s ize{K,M,G} (11014,defaul t 1014) : 20M
第 2 個分區制作的命令是:
Command (m for he lp) : n
Command action
e? ext ended
p? primary partition (14)
p
Partition numbe r (14): 2
Firs t cyl inde r (211014)defaul t 21) :
Us ing defaul t value 21
La st cyl inder, +cyl inde r s or +s iz e{K,M,G} (211014,de faul t 1014) :
Us ing defaul t value 1014
Command (m for he lp) :
我們還要通過“a”命令標記第 1 個分區:
Command (m for he lp) : a
Pa rtition numbe r (14) : 1
最后要通過“w”命令把建好的分區表寫入 SD 卡。
b) 格式化 SD 卡的分區 1 和分區 2:
mkfs .vfa t /dev/ sdb1 mkfs. ext3 /dev/ sdb2 fsck.ext3 /dev/ sdb2
c) 通過 moviNAND_Fusing_Tool.exe 燒寫 SD 卡 UBOOT 和 zImage:
?
更新SD卡根文件系統的方法很簡單,在PC機器上 mount /dev/sdb2 后,直接通過
cp fa <your rootfs> </your rootfs>的方式就可以替換根文件系統了。是你的根文件系統的目錄,是你的/dev/sdb2 掛載的目錄。特別要注意的是,SD 的設備節點不一定是/dev/sdb,應該視用戶電腦的硬盤情況而言,可能是/dev/sdc,/dev/sdd 等。
<new_rootfs_di r> </new_rootfs_di r>
<your rootfs> </your rootfs>
?
3、 nand燒錄
?
a) 更新NAND版UBOOT
先把在電腦上把uboot復制到sd卡根文件系統中;再運行# f lashcp ubootmovi.bin /dev/mtd0;
b) 更新NAND分區中的Linux內核
建立fix-image腳本,內容為:
rm arch/arm/boot/zImage-fix;
dd if=arch/arm/boot/zImage of=arch/arm/boot/zImage-fix bs=2048 count=4096 conv=sync;
chmod 755 arch/arm/boot/zImage-fix;
編譯內核
?
注意執行最后一步./fix-image腳本,將編譯好的zImage-fix復制到sd卡根文件系統中;運行:# flashcp zImage-f ix? /dev/mtd1;
c) 更新NAND分區中的文件系統
在 PC 上將做好的新的根文件系統拷貝入 SD 卡的某目錄,下面我們以指代該目錄。
以 SD 卡或 NFS 為根文件系統啟動系統,運行如下命令擦除dev/mtd2分區:# flash_eraseall /dev/mtd2;然后將 NAND 的該分區 mount 到/mnt:??? # mount /dev/mtdblock2 t yaffs2 /mnt 將新的文件系統拷貝到/mnt:
# cp fa <new_rootfs_di r> /mnt;</new_rootfs_di r>
總結
以上是生活随笔為你收集整理的用SD卡下载uboot、linux内核和文件系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Delphi环境中编写调用DLL的方法和
- 下一篇: CTF-Web-[极客大挑战 2019]