編譯環境
1.1 ubuntu12.04.2 (訊為提供),基於itop4412_scp_elite開發板
1.2 安裝裝置樹編譯器:apt-get install device-tree-compiler
1.3 uboot及核心的原始碼和編譯器
原始碼檔案 itop4412_kernel_4_14_2_bsp-20190225.tar.gz
編譯器gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12.tar.gz
1.4 編譯器安裝和環境變數
編譯器拷貝到「/usr/local/arm/」目錄下,然後解壓
//設定環境變數並更新:
cd
vim .bashrc
shift + g
//新增編譯器目錄,到環境變數
export path=$path:/usr/local/arm/gcc-4.6.2-glibc-2.13-linaro- multilib-2011.12/fsl-linaro-toolchain/bin
//儲存,退出, 然後更新環境變數
source .bashrc
echo $path
進入解壓原始碼得到的「itop4412_kernel_4_14_2_bsp」目錄下
uboot、kernel和裝置樹一起編譯的命令:
編譯命令
./build_all.sh
u-boot-2017.11/u-boot/ 下./build.sh指令碼單獨編譯uboot
linux-4.14.2_itop-4412_scp 下./build_kernel.sh指令碼單獨編譯核心
build_kernel.sh編譯指令碼中可知:itop-4412_scp_defconfig 是預設的編譯配置檔案(.config)
arch/arm/configs/itop-4412_scp_defconfig
如果修改核心配置檔案,需要覆蓋掉itop-4412_scp_defconfig,才能編譯成功
生成的映象
uboot映象:
u-boot-2017.11/u-boot/u-boot-itop-4412.bin
核心映象:
linux-4.14.2_itop-4412_scp/arch/arm/boot/uimage
裝置樹映象:
linux-4.14.2_itop-4412_scp/arch/arm/boot/dts/exynos4412-itop-elite.dtb
.裝置樹的燒寫
先燒寫uboot
u-boot-itop-4412.bin
使它支援具有裝置樹功能到linux系統,
進入fastboot,鍵入燒寫命令:
fastboot.exe flash bootloader u-boot-itop-4412.bin
啟
fastboot reboot
再次進入uboot,此時uboot已經支援裝置樹,進入fastboot 模式,uboot進入fastboot 模式:
fastboot 0
此過程如果連線不上,需要重新安裝驅動(可以借助驅動人生)
上位機燒寫命令:
fastboot.exe flash kernel uimage
fastboot.exe flash dtb exynos4412-itop-elite.dtb
fastboot.exe flash system system.img
燒寫成功後,兩端的控制台都會顯示ok
5.斬殺bug
重啟進入檔案系統,控制台列印出如下錯誤…可見儲存介質編號不一致,系統無法啟動
arch/arm/configs/itop-4412_scp_defconfig
vim開啟,查詢
/mmcblk
修改mmcblk0p2
遮蔽後,重新編譯生成img映象:
make_ext4fs -s -l 314572800 -a root -l linux system.img system
編譯->燒寫->重啟->發現新的問題,檔案系統上,無法新建資料夾,檔案系統為唯讀
修改 arch/arm/configs/itop-4412_scp_defconfig,
檔案中搜尋root .
執行編譯指令碼 ->再次燒寫.
開機啟動後,看到自動建立了/mnt/disk資料夾 ,
這個資料夾是在啟動指令碼中建立的,
它的建立,說明檔案系統可以正常寫入了
裝置樹之編譯和燒寫
編譯環境 1.1 ubuntu12.04.2 訊為提供 基於itop4412 scp elite開發板 1.2 安裝裝置樹編譯器 apt get install device tree compiler 1.3 uboot及核心的原始碼和編譯器 原始碼檔案 itop4412 kernel 4 14 ...
busybox編譯與燒寫
一 實驗環境 硬體 jz2440開發板 busybox版本 busybox 1.7.0 交叉工具鏈 gcc 3.4.5 glibc 2.3.6 二 實驗步驟 1 解壓核心原始碼包 為了方便以後檢視我們對核心原始碼所作的修改可以使用git建立乙個 倉庫,從而記錄修改的點滴 tar xjfv busyb...
OpenWRT 樹莓派編譯 燒寫
sudo apt get install gcc sudo apt get install binutils sudo apt get install bzip2 sudo apt get install flex sudo apt get install python sudo apt get i...