歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> S5PV210 Linux3.8.3內核移植

S5PV210 Linux3.8.3內核移植

日期:2017/3/1 9:09:40   编辑:Linux編程

操作系統:Ubuntu 14.04

交叉編譯工具鏈:arm-linux-gcc4.4.1

1. 下載linux內核

在ubuntu系統終端輸入: wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.8.3.tar.xz

(內核下載官網:www.kernel.org)

2.解壓內核

tar xvf linux-3.8.3.tar.xz

3.將uboot2012.10 tools目錄下的mkimage文件復制到/usr/bin目錄下

cp u-boot-2012.10/tools/mkimage /usr/bin

4.進入linux內核頂層目錄,進行配置清除

cd linux-3.8.3

make distclean

5.修改頂層Makefile,指定處理器類型和交叉編譯工具鏈

修改 ARCH ?= $(SUBARCH) 為 ARCH ?= arm

修改 CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%) 為 CROSS_COMPILE ?= arm-linux-

6.初步配置內核

make s5pv210_defconfig

注意:s5pv210_defconfig 可以通過查看 /arch/arm/configs 下的配置文件得到

7.修改內核配置

make menuconfig

出錯:

缺少庫,接下來安裝ncurses庫

apt-get install libncurses*

再重新 make menuconfig

8.按默認配置初步編譯內核

make uImage

9.修改加載地址和入口地址

vim scripts/Makefile.lib

將 UIMAGE_ENTRYADDR ?= $(UIMAGE_LOADADDR) 修改為 UIMAGE_ENTRYADDR ?= $(shell echo $(UIMAGE_LOADADDR)|sed -e "s/..$$/40/")

10.燒寫內核到sd卡

dd iflag=sync oflag=sync if=uImage of=/dev/sdb seek=1000

運行下程序,卡死在 starting kernel 。。。

首先 懷疑打印信息的串口 是否是正確的 我使用的是串口0作為調試接口

make menuconfig 查看 果然 linux內核用的是串口1 修改配置如下

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

S5PV210 Machines --->[*] SMDKV210

再次燒寫,串口就有信息了。

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2016-11/137078p2.htm

Copyright © Linux教程網 All Rights Reserved