[FirePrime学习笔记] 讓它跑起來吧!

  • MOP
  • LV5工程师
  • |      2015-11-06 11:18:03
  • 浏览量 7043
  • 回复:2

<前言>

繼上一篇,本篇將缺少的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=/arm-eabi-4.6/bin/arm-eabi-
4. Uboot的編譯相當簡單,輸入以下指令
cd u-boot-rockchip

make rk3128_defconfig
其中設定檔是由官方文件來得知的,如下圖


 讓它跑起來吧!

官方文件說明


設定編譯組態


5. 輸入以下指令開始編譯,3128晶片是使用兩級Loader,所以會有一個mini Loader和一個Uboot

make -j8

編譯成功!


6. 編譯完成後會產生RK312XMiniLoaderAll(L).binuboot.img,這是將來要燒寫至開發板的檔案,至此完成Uboot編譯


7. FirePrime預設提供的DTS已經在Kernel時候一起編譯完成了,原來產生的檔案為/fireprime-kernel/arch/arm/boot/dts/rk3128-fireprime.dtb,並且在Kerenl目錄下包裝成resource.img,所以我們不需做額外的動作,此檔案也是用來燒寫至開發板


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社區

  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:2
东方青 2015-11-06
灰常给力!挺起!
0   回复
举报
发布
奔跑小蜗牛 2015-11-06
给力 顶起!!
0   回复
举报
发布
x
收藏成功!点击 我的收藏 查看收藏的全部帖子