歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

S5PV210 Linux3.8.3內核移植

操作系統: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