<前言>
繼上一篇,本篇將缺少的Uboot,DTS(Device Tree Source)和Parameter參數表做個完整介紹,並實際燒寫到FirePrime,讓MATE Desktop成功跑起來
<準備>
1. 虛擬機搭載Ubuntu 14.04 64Bit LTS
2. MicroUSB傳輸線
3. FirePrime
4. USB轉TTL傳輸線(CH340,PL2302)
1. 到目前為止我們完成了Kernel和Rootfs,但啟動要件還有包含Parameter參數表和Uboot,首先我們來編譯Uboot,官方在Android SDK中有提供,但我們一樣可以從別處下載到,linux-rockchip是由一個團隊共同維護,開放可用的資源供使用者下載開發
2. 輸入以下指令下載Uboot原始碼,此包含了2014-10的Uboot版本
git clone https://github.com/linux-rockchip/u-boot-rockchip.git
下載Uboot原始碼
3. 建立編譯環境,和Kernel篇類似,輸入以下指令
export ARCH=arm export CROSS_COMPILE=4. Uboot的編譯相當簡單,輸入以下指令/arm-eabi-4.6/bin/arm-eabi-
cd u-boot-rockchip make rk3128_defconfig其中設定檔是由官方文件來得知的,如下圖
官方文件說明
設定編譯組態
5. 輸入以下指令開始編譯,3128晶片是使用兩級Loader,所以會有一個mini Loader和一個Uboot
make -j8
編譯成功!
6. 編譯完成後會產生RK312XMiniLoaderAll(L).bin和uboot.img,這是將來要燒寫至開發板的檔案,至此完成Uboot編譯
7. FirePrime預設提供的DTS已經在Kernel時候一起編譯完成了,原來產生的檔案為
8. 接下來的Parameter參數表是RockChip仿照Android的方式,讓Linux系統可以成功執行,算是特有的,因此我們要製作一個,首先參考官方雙系統的Parameter如下:
FIRMWARE_VER:5.1 MACHINE_MODEL:rk312x MACHINE_ID:007 MANUFACTURER:RK30SDK MAGIC: 0x5041524B ATAG: 0x60000800 MACHINE: 312x CHECK_MASK: 0x80 KERNEL_IMG: 0x60408000 #RECOVER_KEY: 1,1,0,20,0 CMDLINE:console=ttyFIQ0,115200 earlyprintk androidboot.hardware=rk30board androidboot.console=ttyFIQ0 board.ap_has_alsa=0 init=/init initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(misc),0x00008000@0x00006000(resource), 0x00008000@0x0000e000(kernel),0x00010000@0x00016000(boot),0x00010000@0x00026000(recovery),0x0001a000@0x00036000(backup),0x00040000@0x00050000(cache), 0x00002000@0x00090000(kpanic),0x00180000@0x00092000(system),0x00002000@0x00212000(metadata), 0x00200000@0x00214000(userdata),0x00020000@0x00414000(radical_update),-@0x00434000(user)其中CMDLINE之上的設定就不需要更動,CMDLINE將來會藉Uboot傳送給Kernel,所以此設定攸關系統是否能成功啟動,參數的定義如下:
官方文件說明
0xXXXXXXXX@0xYYYYYYYY XXXXXXXX=代表該分區的大小,以 512 Byte = 1 sector為單位 YYYYYYY=代表該分區的起始位置這些定義將幫助我們製作
9. 在虛擬機創建Parameter文件,輸入以下內容
FIRMWARE_VER:5.1 MACHINE_MODEL:rk312x MACHINE_ID:007 MANUFACTURER:RK30SDK MAGIC: 0x5041524B ATAG: 0x60000800 MACHINE: 312x CHECK_MASK: 0x80 KERNEL_IMG: 0x60408000 #RECOVER_KEY: 1,1,0,20,0 CMDLINE:console=ttyFIQ0,115200 console=tty0 earlyprintk root=/dev/block/mtd/by-name/linuxroot rw rootfstype=ext4 init=/sbin/init mac_addr=ab:cd:ef:dc:ba:ab initrd=0x62000000,0x00800000 mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00006000@0x00004000(resource), 0x0000a000@0x00006000(boot),-@0x00010000(linuxroot)其中分區定義上只是去掉了某些分區,且設定各分區如下:
uboot分區 起始位置0x00002000 大小為16^3 *2*512B=4MB resource分區 起始位置0x00004000 大小為4MB boot分區 起始位置0x0000a000 大小為20MB linuxroot分區 起始位置0x00010000 大小為分區之後的所有區域
此外root要指定根目錄系統的區域,即/dev/block/mtd/by-name/linuxroot,而mac_addr為網路實體位址,earlyprintk是Kernel的Debug訊息,至此設定Parameter完成
<燒寫>
10. 目前為止我們完成了Kernel,Parameter,Resource,Uboot,Rootfs構成所有啟動的要件後,可以開始進行燒寫了,打開Andorid Tool,將檔案從虛擬機器中拷貝出來到Windows上,共需要以下文件
loader分區 <=> RK312XMiniLoaderAll(L).bin uboot分區 <=> uboot.img parameter分區 <=>parameter resource分區 <=> resource.img boot分區 <=> linux-boot.img linuxroot分區 <=> rootfs.img其中rootfs.ext4重新命名成rootfs.img
11. 按最右邊的小框中選擇檔案,並且新增linuxroot分區的項目資訊,在框框中點選滑鼠右鍵即可添加,填入地址0x00010000,名稱linuxroot,選擇檔案rootfs.img,配置完後如下圖:
配置好燒寫的分區資訊
12. 按住開發板上的Recovery按鈕,用MicroUSB傳輸線連接電腦和開發板,進入燒寫模式,先按下低格,將Nand Flash清空
低階格式化Nand Flash
13. 按下執行,開始燒寫,大約需要10分鐘的時間
燒寫所有需要的檔案,進行中
14. 燒寫過程中可以開啟Serial console,用USB轉TTL傳輸線連接開發板上的Debug UART,Baud rate=115200,我使用secureCRT,燒寫完成後會自動啟動,UART的接線如下:
白線(RXD)<=>TX 綠線(TXD)<=>RX 黑線(GND)<=>GND 紅線(VCC)不接
開發板和USB轉TTL傳輸線的接線方式
成功登入到Ubuntu,也可觀看自動加載的GPU驅動成功
15. 登入完成後,目前還是原生的Linaro GNOME,我們要開始安裝MATE Desktop,首先輸入以下指令擴充根目錄系統分區
resize2fs /dev/block/mtd/by-name/linuxroot
可以檢查是否真的擴充成功,輸入以下指令
df -h
確認分區為7.2G
16. 接下來開始安裝MATE Desktop,輸入以下指令
apt-get install ubuntu-mate-core ubuntu-mate-desktop
約需1.2G空間,按下y開始安裝,大約需要15~20分鐘
請耐心等候!
設定中,注意,如果先行在鏡像檔安裝MATE的話會造成Error,因為有設定硬體關聯
17. 安裝完成後,確認無錯誤,輸入以下指令重新啟動
reboot
安裝完成! 重新啟動吧! 您不再需要USB轉TTL傳輸線了
18. 重新啟動後,可以看到HDMI螢幕顯示的畫面了,以下是秀圖
帳號=linaro,密碼=linaro
桌面,螢幕邊緣會切到,請見諒
資源使用監視器和檔案總管
Firefox瀏覽器
LibreOffice Writer就是Microsoft Office Word的Linux版啦!
<完整固件檔案下載>
請依照文章步驟燒寫
密碼:n2g5
以上固件已刪除,請至本篇下載
<總結>
本篇完整的分享整個Ubuntu MATE的移植過程,包含完整的軟體可當辦公使用,看膩了舊介面嗎? 那您一定要來嘗試喔!!
作者:MOP 發布於:ICKEY社區