在第六部分,我們講解了如何給開發(fā)板燒寫系統(tǒng),比如講系統(tǒng)燒寫到 U 盤,燒寫當(dāng)固態(tài)等,那么我們使用的這些鏡像是如何來的呢,在一部分會一一給大家揭曉。 7.1 編譯 PMON 龍芯 2K1000 的 bootloader 目前支持 pmon 和 uboot,但是截止到本開發(fā)板教程編寫的時間點(diǎn),官方只提供了 pmon 的 bsp 源碼,uboot 的資料并未對外開放,所以 2k1000 開發(fā)板的 bootloader 使用的 pmon。本節(jié)我們來講解一下 pmon 的編譯。 7.1.1 安裝庫文件 7.1.1.1 安裝 bison 我們在 Ubuntu 的終端命令窗口輸入“sudo apt-get install bison”安裝 bison 庫,如下圖所示: ![]() 安裝完成如下圖: ![]() 7.1.1.2 安裝 flex 我們在 Ubuntu 的終端命令窗口輸入“sudo apt-get install flex”命令,安裝 flex 庫,如下圖所示: ![]() 安裝完成如下圖所示: ![]() 7.1.1.3 安裝 makedepand 我們在 Ubuntu 的終端命令窗口輸入“sudo apt-get install xutils-dev”命令,安裝 makedepand,安裝完成如下圖所示: ![]() 7.1.1.4 安裝 python 我們在 Ubuntu 的終端命令窗口輸入“sudo apt-get install python”命令,安裝 python,如下圖所示: ![]() 安裝完成如下圖所示: ![]() 7.1.2 安裝 pmon 交叉編譯器 編譯 pmon 使用的是“gcc-4.4-gnu.tar.gz”,可以在迅為龍芯開發(fā)板資料中找到,位置:“LS2K1000 開發(fā)板資料\02_開發(fā)及燒寫工具”。我們將編譯器拷貝到 Ubuntu 的任意目錄下,如下圖所示: ![]() 然后我們輸入“sudo tar -xf gcc-4.4-gnu.tar.gz -C /”解壓命令,將交叉編譯器解壓到“/”目錄下,注意:解壓命令必須為這個命令,目錄是保證腳本里面的交叉編譯器環(huán)境變量的路徑跟編譯器實(shí)際解壓的路徑一致。因?yàn)槲覀冊诰幾g的時候使用的是均為絕對路徑并已經(jīng)在編譯腳本中寫好,大家只要按照這個路徑解壓即可,也就不用給編譯器設(shè)置環(huán)境變量了。解壓完成后會在/opt 下得到解壓生成的編譯器文件夾,如下圖所示: ![]() 7.1.3 安裝 pmoncfg 如果我們的 Ubuntu 系統(tǒng)是第一次編譯 pmon,我們首先需要安裝 pmoncfg 命令(如果我們已經(jīng)安裝過pmoncfg 可以跳過本小節(jié)),安裝 pmoncfg 的具體步驟如下: 首先將pmon源碼拷貝到Ubuntu的任意路徑下,pmon源碼包位置LS2K1000開發(fā)板資料\04_pmon&Linux內(nèi)核源碼,拷貝完成后使用命令 tar -xf pmon-loongson3_20210525.tar.gz 解壓 pmon 源碼,pmon-loongson3文件夾即為解壓得到的源碼,最后使用命令 cd pmon-loongson3/進(jìn)入到 pmon 源碼目錄下,如下圖所示: ![]() 然后使用“cd tools/pmoncfg”命令,進(jìn)入到 pmoncfg 的源碼目錄下,使用命令 make clean 清理之前編譯生成的文件,清理完成后執(zhí)行 make 編譯 pmoncfg,如下圖所示: ![]() ![]() 我們輸入“l(fā)s”命令,可以看到在“pmoncfg”目錄下生成了“pmoncfg”文件,如下圖所示: ![]() 接著我們輸入“sudo cp pmoncfg /usr/bin/”,將“pmoncfg”文件拷貝到 Ubuntu 系統(tǒng)的“/usr/bin/”目錄下,運(yùn)行結(jié)果如下圖所示: ![]() 至此,pmoncfg 的安裝就完成了。 7.1.4 編譯 pmon 源碼 34.1 到 33.4 準(zhǔn)備工作做好以后,我們就可以編譯 pmon 了,首先我們需要進(jìn)到 pmon 的源碼根目錄下,如下圖所示: ![]() 輸入“cd zloader.ls2k”命令,進(jìn)入到“zloader.ls2k”目錄,如下圖所示: ![]() 然后輸入“./create.sh”命令,開始編譯 pmon,如下圖所示: ![]() 編譯成功如下圖所示: ![]() create.sh 腳本文件里面執(zhí)行了三行代碼,如下: 1. export PATH=/opt/gcc-4.4-gnu/bin/ ![]() 2. make cfg all tgt=rom ARCH=mips CROSS_COMPILE=mipsel-linux- DEBUG=-g 3. make dtb 簡析: export PATH=/opt/gcc-4.4-gnu/bin/ ![]() 設(shè)置交叉編譯器 gcc-4.4-gnu 的環(huán)境變量 make cfg all tgt=rom ARCH=mips CROSS_COMPILE=mipsel-linux- DEBUG=-g 解析:其中 cfg 為使用默認(rèn)的配置文件進(jìn)行編譯,編譯目標(biāo)為 all,tgt=rom 為編譯生成 gzrom.bin 文件 make dtb 編譯設(shè)備樹,生成的設(shè)備樹文件和 gzrom.bin 文件會合并成最終的 gzrom-dtb.bin編譯成功以后最終會在上一級“zloader”目錄下生成“gzrom-dtb.bin”鏡像文件(后面 pmon 鏡像燒寫章節(jié)將會用到該文件),如下圖所示: ![]() 至此,pmon 的編譯就完成了。 |