核心板上板載了一個(gè)大小為 512mb 的 nand flash,所以我們可以直接將系統(tǒng)燒寫(xiě)到 nand 上,從 nand上來(lái)啟動(dòng)系統(tǒng),這樣就不用通過(guò)固態(tài)或者 U 盤(pán)了。 這里我們使用 tftp 來(lái)燒寫(xiě)系統(tǒng),我們需要在 Ubuntu 系統(tǒng)上搭建 tftp 服務(wù),如大家不清楚要如何在 Ubuntu上安裝 tftp,請(qǐng)參考手冊(cè) 4.4 章節(jié)。 這里大家也可以使用別的媒介來(lái)燒錄,如果 U 盤(pán),燒寫(xiě)思路為將 U 盤(pán)或者 tftp 中的鏡像拷貝到對(duì)應(yīng)的nand flash 分區(qū),所以使用 tftp 燒寫(xiě)的本質(zhì)是通過(guò)網(wǎng)絡(luò)將 pmon,內(nèi)核,文件系統(tǒng)等鏡像拷貝到 nand flash分區(qū)。 1、準(zhǔn)備系統(tǒng)鏡像 搭建好 tftp 服務(wù)后,我們需要將要燒寫(xiě)的 PMON 鏡像,內(nèi)核鏡像,文件系統(tǒng)鏡像拷貝到虛擬機(jī) Ubuntu 的 tftp 目錄下,如下圖所示: ![]() 2、設(shè)置網(wǎng)絡(luò) 首先,我們需要進(jìn)到 PMON 命令行下,使用命令 ifaddr syn0 192.168.1.10 設(shè)置開(kāi)發(fā)板的 IP 地址和虛擬機(jī) Ubuntu 的 IP 在同一個(gè)網(wǎng)段下,并可以 ping 通虛擬機(jī),如下圖所示: ![]() 燒寫(xiě)完成后重啟開(kāi)發(fā)板 PMON 即可更新成功。 3、加載 PMON 鏡像 注意:這里不建議大家在沒(méi)有 Ejtag 的情況下對(duì) PMON 進(jìn)行操作,以免開(kāi)發(fā)板變磚。 設(shè)置完網(wǎng)絡(luò)后,我們輸入命令 load -f 0xbfc00000 -r tftp://192.168.1.38/gzrom-dtb.bin,其中 192.168.1.38北京迅為電子有限公司 基于國(guó)產(chǎn)龍芯 SOC 為虛擬機(jī) Ubuntu 的 IP 地址,如下圖所示 ![]() 燒寫(xiě)完成后重啟開(kāi)發(fā)板 PMON 即可更新成功。 4、分區(qū)格式化 nand flash 在 pmon 命 令 行 下 輸 入 命 令 mtd_erase /dev/mtd0 , 分 區(qū) 格 式 化 分 區(qū) mtd0 , 如 下 圖 所 示 : ![]() 在 pmon 命令行下輸入命令 mtd_erase /dev/mtd1 分區(qū)格式化分區(qū) mtd1,如下圖所示: ![]() 5 、拷貝文件系統(tǒng)鏡像 在 PMON 目錄下輸入命令 devcp tftp://192.168.1.38/rootfs.yaffs2 /dev/mtd1y 拷貝內(nèi)核鏡像到開(kāi)發(fā)板nand flash 的/dev/mtd1 分區(qū),其中 y 是以 yaffs2 格式拷貝,192.168.1.38 為虛擬機(jī) Ubuntu 的 IP 地址,拷貝成功如下圖所示: ![]() 6、拷貝內(nèi)核鏡像 在 PMON 目錄下輸入命令 devcp tftp://192.168.1.38/vmlinuz /dev/mtd0 拷貝內(nèi)核鏡像到開(kāi)發(fā)板 nand flash 的 mtd0 分區(qū),其中 192.168.1.38 為虛擬機(jī) Ubuntu 的 IP 地址,拷貝成功如下圖所示:、 ![]() 7、設(shè)置環(huán)境變量 設(shè)置環(huán)境變量 al1 的值,使用命令 set al1 /dev/mtd0。設(shè)置完如下圖所示: ![]() 設(shè)置環(huán)境變量 append 的值,使用命令 set append "console=ttyS0,115200 init=/linuxrc rootfstype=yaffs2 rwroot=/dev/mtdblock1",設(shè)置完如下圖所示: ![]() 然后輸入 saveenv 保存,如下圖所示: ![]() 設(shè)置完成以后,重啟開(kāi)發(fā)板,登錄賬號(hào)為 root,密碼為 topeet,啟動(dòng)成功如下圖所示: ![]() 至此,給 nand flash 燒寫(xiě)系統(tǒng)完畢。 |