手把手教你移植linux内核---------OK6410(一)
2012-08-22 16:21
639 查看
配置信息:
移植内核:linux-3.3.5 可以从 http://www.kernel.org/ 下载纯正的版本 编译环境:vmware下ubuntu11.04
交叉编译版本:4.3.2
准备工作:
一块OK6410开发板,交叉网线,串口线一根。在ubuntu根目录下创建forlinx文件,将内核拷贝至该目录下。
确保你的ubuntu已经安装libncures5-dev(安装方法 #sudo apt-get install libncurses5-dev)。
由于移植内核工作要频繁的测试所编译的内核运行情况,所以最好配置NFS服务和使用带有tftp网络功能的uboot。
http://download.csdn.net/detail/laoylhuli/4520015本人测试可以在ok6410上使用tftp下载
移植步骤:
1.解压内核
解压内核root@ubuntu:/forlinx# tar zxvf linux-3.3.5.tar.gz########################################################################################################
在arch/arm/mach-s3c64xx/目录下的mach-smdk6410.c 复制一份在当前文件下命名为mach-ok6410.c
root@ubuntu:/forlinx/linux-3.3.5/arch/arm/mach-s3c64xx# cp mach-smdk6410.c mach-ok6410.c########################################################################################################
有了ok6410开发板的bsp文件之后,修改当前目录下的Kconfig文件,将我们的bsp文件添加到内核配置中
root@ubuntu:/forlinx/linux-3.3.5/arch/arm/mach-s3c64xx# gedit Kconfig找到
config MACH_SMDK6410 bool "SMDK6410" select CPU_S3C6410 select SAMSUNG_DEV_ADC select S3C_DEV_HSMMC select S3C_DEV_HSMMC1 select S3C_DEV_I2C1 select SAMSUNG_DEV_IDE select S3C_DEV_FB select S3C_DEV_RTC select SAMSUNG_DEV_TS select S3C_DEV_USB_HOST select S3C_DEV_USB_HSOTG select S3C_DEV_WDT select SAMSUNG_DEV_BACKLIGHT select SAMSUNG_DEV_KEYPAD select SAMSUNG_DEV_PWM select HAVE_S3C2410_WATCHDOG if WATCHDOG select S3C64XX_SETUP_SDHCI select S3C64XX_SETUP_I2C1 select S3C64XX_SETUP_IDE select S3C64XX_SETUP_FB_24BPP select S3C64XX_SETUP_KEYPAD help Machine support for the Samsung SMDK6410复制一下,创建OK6410配置
config MACH_OK6410 bool "OK6410"--------------------------此处注意大小写 select CPU_S3C6410 select SAMSUNG_DEV_ADC select S3C_DEV_HSMMC select S3C_DEV_HSMMC1 select S3C_DEV_I2C1 select SAMSUNG_DEV_IDE select S3C_DEV_FB select S3C_DEV_RTC select SAMSUNG_DEV_TS select S3C_DEV_USB_HOST select S3C_DEV_USB_HSOTG select S3C_DEV_WDT select SAMSUNG_DEV_BACKLIGHT select SAMSUNG_DEV_KEYPAD select SAMSUNG_DEV_PWM select HAVE_S3C2410_WATCHDOG if WATCHDOG select S3C64XX_SETUP_SDHCI select S3C64XX_SETUP_I2C1 select S3C64XX_SETUP_IDE select S3C64XX_SETUP_FB_24BPP select S3C64XX_SETUP_KEYPAD help Machine support for the Forlinx OK6410保存退出
########################################################################################################
由于机器码ID必须和uboot的ID一致,所修改arch/arm/tools/mach-types文件,在283行找到
smdk6410 MACH_SMDK6410 SMDK6410 1626把它改成
ok6410 MACH_OK6410 OK6410 1626保存退出
########################################################################################################
修改BSP文件,
root@ubuntu:/forlinx/linux-3.3.5/arch/arm/mach-s3c64xx# gedit mach-ok6410.c使用gedit工具的search-->replace把文件中所有的smdk6410改成ok6410
在700行处找到
MACHINE_START(ok6410, "ok6410")把他改成
MACHINE_START(OK6410, "OK6410")--------------这里跟我们前面配置的Kconfig和mach-types文件中的名字对应,**大小写注意必须一致
########################################################################################################
在当前目录(arch/arm/mach-s3c64xx/)下打开Makefile添加我们的bsp文件
obj-$(CONFIG_MACH_OK6410) += mach-ok6410.o########################################################################################################
修改顶层的Makefile,第195和196行编辑
ARCH ?= arm ***************这里禁止在arm后出现空格或其它符号 CROSS_COMPILE ?= /usr/local/arm/4.3.2/bin/arm-linux- ********你的交叉编译器的路径########################################################################################################
将arch/arm/configs/s3c6400-defconfig配置文件复制到顶层然后保存为 .config 。
root@ubuntu:/forlinx/linux-3.3.5# cp arch/arm/configs/s3c6400_defconfig .config########################################################################################################
执行make menuconfig对内核进行配置
打开内核的EABI
选择自己的板极为OK6410 在
把自己的交叉编译器的路径输进去
配置打印串口为芯片的串口0
########################################################################################################
可以开始编译了
root@ubuntu:/forlinx/linux-3.3.5# make uImage几分钟后最初的内核已经编译完成了在arch/arm/boot下可以看到我们编译完成的内核了uImage。通过tftp在OK6410开发板上运行。
通过Uboot的tftp下载到开发板上
开始运行3.3.5内核
未完待续,整个教程包含内核的启动和OK6410的部分驱动的加载运行qt界面
相关文章推荐
- 手把手教你移植linux内核---------OK6410(五)
- 手把手教你移植linux内核---------OK6410(四)
- 手把手教你移植linux内核---------OK6410(二)
- 手把手教你移植linux内核---------OK6410(三)
- OK6410 linux内核移植
- OK6410之linux-2.6.39.2内核的移植愚见
- OK6410开发板linux内核移植
- Linux-3.3.5内核初步移植到OK6410开发板
- OK6410(256MRAM2Gnandflash) Linux3.0.1内核移植
- ok6410最新版linux3内核移植
- Linux3.6.7在OK6410平台的移植(三)NAND HWECC 8BIT驱动
- OK6410-LINUX2.6.39.2个人移植版本下载(板载硬件驱动基本都已移植成功)
- 【嵌入式Linux学习七步曲之第四篇 Linux内核移植】用BDI2000快速定位PPC Linux内核Uncompressing Kernel Image ... OK后无输出问题
- Linux3.6.7在OK6410平台的移植(二)编译配置linux3.6.7
- ok6410,dm9000,2.6.32.27内核移植,亲测可用
- OK6410 上linux的移植问题---nand flash
- Linux3.6.7在OK6410平台的移植(一)写在前面的话
- 在嵌入式Linux系统(OK6410)中移植Boa服务器
- qt在linux与ok6410上的安装移植(3)——linux上qt的安装和qtcreator的安装配置
- qt在linux与ok6410上的安装移植(4)——插曲:ok6410与ubuntu的nfs共享