首先將在ubuntu環境中,新增交叉編譯工具到path變數,永久有效。
root@linux:~/linux-3.14-fs4412# vim /etc/bash.bashrc
export path=/home/linux/soft/gcc-4.6.4/bin:$path
/home/linux/soft/ 是工具鏈的路徑,新增到path的頭部;寫入/etc/bash.bashrc 中保證重啟機器後變數仍然有效。
2.解壓核心
tar -xvf linux-4.19.1.tar.xz
3.進入目錄,在makefile中指定交叉編譯工具
root@linux:~/linux-3.14-fs4412# vim makefile
arch ?= arm
cross_compile ?= arm-none-linux-gnueabi-
arch指定預設索引路徑,cross_compile 指定交叉編譯工具的字首
4.匯入三星公司對該晶元的配置檔案
make exynos_defconfig (arch/arm/configs/ 目錄下,arch/arm/configs/exynos_defconfig)
5.編譯核心,生成壓縮的核心映象檔案uimage
root@linux:~/linux-4.19.1# make uimage loadaddr=0x40008000
或者
make arch=arm cross_compile=arm-none-linux-gnueabi- //編譯將會生成 zimage
cd linux-4.19.1/arch/arm/boot //進入目錄
執行命令將 zimage 製作成 uimage
mkimage -a arm -o linux -t kernel -c none -a 0x41000000 -e 0x41000040 -n "aaa" -d zimage uimage
6.編譯裝置樹
root@linux:~/linux-4.19.1# make dtbs
7.將核心與裝置樹檔案,放在 /tftpboot/(tftp服務根目錄)下
root@linux:~/linux-4.19.1/arch/arm/boot # cp uimage /tftpboot/
root@linux:~/linux-4.19.1/arch/arm/boot # cp dts/exynos4412-origen.dtb /tftpboot/
通過串列埠配置u-boot的啟動引數,讓u-boot通過tftp服務獲取uimage和 exynos4412-origen.dtb
配置如下
至此沒有異常的話可以正常啟動 linux, 但是掛載不了根檔案系統,因為沒有配置網絡卡驅動。
1.配置核心,menuconfig 驅動選配
make arch=arm menuconfig
[*] networking support --->
networking options --->
packet socket
unix domain sockets
[*] tcp/ip networking
[*] ip: kernel level autoconfiguration
device drivers --->
[*] network device support --->
[*] ethernet driver support (new) --->
2.配置裝置樹,新增裝置樹節點
root@linux:~/linux-4.19.1# vim arch/arm/boot/dts/exynos4412-origen.dts
srom-cs1@5000000 ;
};
3.重新編譯核心和裝置樹,並覆蓋到tftp跟目錄下這樣上電就能成功載入核心,掛載nfs檔案系統了。
完畢。
嵌入式移植
深度學習嵌入式移植 1 移植原因 演算法必須在優化後的硬體上執行,因為學習成千上萬的資料可能需要長達幾周的時間。移動端其實不需要做tranning,只需要進行propagating,所以問題集中在移動端能不能存放並執行更大的network。2 常見的移動端開發裝置 nvidiajetsontx1 t...
嵌入式Linux系統移植(Linux核心初步分析)
嵌入式linux系統移植 linux核心初步分析 核心概述 linux是類似unix的作業系統,而linux系統的核心稱為linux kernel,這個作業系統的核心部分提供了對硬體的統一介面。核心是在引導時裝入的程式。核心識別硬體,初始化啟動指令碼,並且執行網路和終端守護程式 當啟動完畢之後,核心...
嵌入式Linux系統移植(Linux核心配置)
嵌入式linux系統移植 linux核心配置 linux移植是把linux作業系統針對具體的目標平台做必要改寫之後,安裝到該目標平台使其正確的執行起來。基本內容 1.獲取某版本的linux核心原始碼,根據我們的具體目標平台對這原始碼進行必要的改寫 主要是修改體系結構相關部分 2.新增一些外設的驅動,...