移植linux3.4內(nèi)核到2440

平臺(tái):JZ2440開發(fā)板
作者:趙賀

移植linux3.4內(nèi)核到2440

1. 下載內(nèi)核源碼

https://www.kernel.org/pub/linux/kernel/

2. 交叉環(huán)境搭建(只要編譯不出錯(cuò),一般都可以使用,如果出現(xiàn)匯編錯(cuò)誤,升級(jí)gcc版本即可)

工具下載
最新版下載

  1. 在/usr/local/下建立交叉編譯器的安裝目錄arm
    sudo mkdir /usr/local/arm

  2. 將下載的交叉編譯器包解壓到/usr/local/arm目錄下
    sudo tar jxvf cross-4.2.2-eabi.tar.bz2 -C /usr/local/arm/

  3. 解壓成功后,修改PATH環(huán)境變量
    sudo vim /etc/profile

export PATH=$PATH:/usr/local/arm/4.2.2-eabi/usr/bin

Special for me:(下面是我配置的方法,由于經(jīng)常需要更換編譯器版本,用軟鏈接指向當(dāng)前的編譯器)
sudo vim /etc/profile
export PATH=$PATH:/usr/local/arm/current_compiler/bin
sudo ln -s 編譯器文件夾 /usr/local/arm/current_compiler/

  1. 更新一下配置文件/etc/profile
    source /etc/profile

3.解壓內(nèi)核

tar xvf linux-3.4.tar.bz2
make clean(每次編譯內(nèi)核前使用 make clean 一種良好的習(xí)慣)

4.修改Makefile

vim Makefile
修改
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)

ARCH ?= arm
CROSS_COMPILE ?= arm-linux-

5.make xxx_defconfig(具體使用什么由廠家提供)

make s3c2410_defconfig (這個(gè)目錄下可以找到 配置arm的全部的配置文件/linux-3.4/arch/arm/configs)

ps:執(zhí)行make s3c2410_defconfig -n可以現(xiàn)實(shí)詳細(xì)的信息

如果出現(xiàn)下面的錯(cuò)誤
make: *** /home/zhaohe/Linux/linux-3.4/arch/arm: Is a directory. Stop.
查看上面的修改在行末是否有多出來(lái)的括號(hào)

6.make一下查看是否成功

7.支持串口調(diào)試

make menuconfig
"System Type--->"
    --->"(0)S3C UART to use for low-level messages"

這里我的理解
1,開發(fā)板上使用的COM1 這里之所以設(shè)置為0 因?yàn)橛?jì)算機(jī)里面是以0開始的
2,即便這里設(shè)置成其他在命令行中 加入命令 set bootargs console=ttySAC0,115200 依然會(huì)使用ttySAC0

8.make uImage

make uImage

CHK include/linux/version.h
CHK include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
Kernel: arch/arm/boot/Image is ready
Kernel: arch/arm/boot/zImage is ready
UIMAGE arch/arm/boot/uImage //這個(gè)目錄下可以找到uImage文件
Image Name: Linux-3.4.0
Created: Tue Nov 22 17:16:07 2016
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2353088 Bytes = 2297.94 kB = 2.24 MB
Load Address: 0x30108000 //這個(gè)地址是由鏈接文件指定的
Entry Point: 0x30108000

Image arch/arm/boot/uImage is ready

9. 下載內(nèi)核到開發(fā)板子中 并啟動(dòng)

配置環(huán)境變量

set bootcmd 'tftp 30000000 uImage;bootm 30000000'

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容