開發平台:win10+虛拟機Ubuntu+4412 pop
第一步:
目标:手上沒有觸摸屏,隻能用顯示器,編寫linux的hdmi核心,儲存,之後可以看看驅動怎麼編寫的以及Qt的使用者程式的移植,
前期工作
環境配置起來
核心編譯需要什麼東西
檔案系統編譯需要什麼東西
虛拟機Ubuntu可以用迅為配置好的鏡像安裝,可以省不少事
安裝交叉編譯器(核心的編譯器和 uboot 的編譯器一樣),但是檔案系統的編譯器 和 uboot 和 kernel 的 編 譯 器 不 一 樣
編譯 QtE4.7 庫使用的編譯器是交叉編譯器編譯工具“arm-linux-gcc-4.3.2.tar.gz”,
Qt/E4.7.1 的 u-boot-iTOP-4412.bin、zImage 以及 ramdisk-uboot.img 和 Qtopia 通用,編譯方法也一樣。
它們的差別是“Qtopia”帶有一個桌面系統,“Qt/E4.7.1”隻是一個強大的庫。
Qt/E4.7.1 使用的是 arm-linux-gcc-4.3.2.tar.gz是一個交叉編譯器
交叉編譯器:在主控端上編譯的程式可以在不同平台的目标系統上運作。(平台具有的兩層含義:核心處理器的架構,所運作的系統)有三種情況(一個·相同,和都不同)
核心編譯
1)找到 iTop4412_Kernel_3.0核心源碼, 配置核心
2)核心目錄下運作指令“cp config_for_ubuntu_hdmi .config” ,如果要配置核心,需要修改目前的配置檔案(vim .config), (開發資料的293頁)

3)然後執行make(核心的編譯器和 Android4.0.3 的核心編譯器一模一樣(arm-2009q3)參照7.2.2 ,p272頁,安裝交叉編譯器,有些操作需要root權限)
4)生成核心鏡像,在目前核心目錄的 : ls arch\arm\boot 可以看到zImage
檔案系統編譯
所需資料:4412CD光牒資料\08_源碼_QtE以及qtopia2.2.0檔案系統中的root_20150422.tar (檔案系統源碼)+ 編譯工具 linux_tools.tgz(CD光牒資料\ 02_編譯器以及燒寫工具\tools)
安裝編譯器步驟
1) 拷貝壓縮包到 (開發平台的)Ubuntu 系統的“/”目錄下,注意目錄是“/”
2)進入“/”目錄,然後使用指令“tar -vxf linux_tools.tgz ”,将壓縮包解壓。
3)解壓後如下圖所示,在“/usr/local/bin/”目錄下生成了兩個檔案。
編譯檔案系統
1)使用指令“cd /home/t使用者/”進入 使用者 目錄,然後使用指令“mkdir Linux+QT” 建立一個“Linux+QT”檔案夾,如下圖所示
2)拷貝檔案系統的源碼至建立的檔案夾
3) 使用指令“tar -vxf root_xxxx.tar.gz”解壓壓縮包,生成root檔案夾
4)修改啟動配置檔案/etc/init.d/rcS(為了可以從qt界面啟動)
5)然後修改/bin/qt4檔案(在第一行後面添加),為了可以從hdmi輸出顯示
mv /dev/fb0/dev/fb0_bak
ln -s /dev/fb6 /dev/fb0
然後儲存,退出
- 使用之前安裝的編譯工具編譯檔案系統,生成system.img,注意需要傳回root檔案夾的上一級,不然找不到
make_ext4fs -s -l 314572800 -a root -L linux system.img root
7)燒寫zImage和system.img檔案
燒寫核心和檔案系統
參考文檔:6.2 OTG燒寫工具
安裝超級終端以及OTG燒寫的驅動,在超級終端裡面切換模式,之後通過otg刷系統,(驅動可以用驅動精靈安裝)
一個使用232序列槽工具(需要轉接)一個使用USB線(OTG)
超級終端工具進去uboot
進入uboot,按鍵啟動直接按Enter鍵
指令:
fdisk -c 0
建立 eMMC 分區并格式化。如果原來已經做過此步驟,則可以跳過,不必每次燒寫前都分區和格
式化。在超級終端中,輸入下面分區和格式化指令。
若之前分區過,則直接fastboot
注意,fastboot 指令需要與 PC 上的 USB_fastboot_tool 工具配套使用,而且 fastboot 指令需要進入uboot 模式中才能使用
OTG燒寫
1)在 PC 機上運作“USB_fastboot_tool”–>“platform-tools”檔案夾中的檔案“cmd.exe”(cmd.exe 可執行文
件是 Windows 自帶的指令行工具
2)一般不用燒寫uboot檔案,因為這是通用的程式,出廠前已經燒寫了的
3)輸入燒寫 zImage 核心指令:fastboot.exe flash kernel zImage
4)輸入燒寫 ramdisk 指令:fastboot.exe flash ramdisk ramdisk-uboot.img
5)輸入燒寫 system 檔案系統指令: fastboot.exe flash system system.img
6)輸入擦除指令: fastboot -w
7)輸入重新開機開發闆指令: fastboot reboot
下一步規劃:
qte庫檔案的編譯和qt程式的移植
stem 檔案系統指令: fastboot.exe flash system system.img
6)輸入擦除指令: fastboot -w
7)輸入重新開機開發闆指令: fastboot reboot
下一步規劃:
qte庫檔案的編譯和qt程式的移植