Linux 3.3.5 內核移植 for ok6410

Linux 3.3.5系統移植

from: http://www.cnblogs.com/zuobaozhu/archive/2012/05/13/2498092.html

  1. 將arch/arm/mach-s3c6410/下的,mach-smdk6410.c cp爲mach-my6410.c;
  2. 打開arch/arm/mach-s3c6410/下的Kconfig,仿照MACH_SMDK6410做一個菜單項:

    config MACH_MY6410

        bool "MY6410"

        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 Pillar MY6410

  3. 打開arch/arm/tools/mach-types文件,這裏面存的是機器ID必須要和uboot裏面的ID保持一致,將其283行復制添加在後面並修改爲:

    smdk6410        MACH_SMDK6410        SMDK6410        1626

xx6410  MACH_XX6410  XX6410  1626 這個機器ID和UBOOT裏的機器ID相同時才能啓動內核;

  1. 修改BSP文件mach-my6410.c,內容如下:

    將mach-mach-my6410.c文件中的所有smdk6410改成my6410(不要改大寫SMDK6410的)

    MACHINE_START(MY6410, "MY6410")//這個要和Kconfig裏的MACH-MY6410匹配 

  2. 在當前目錄的Makefile最後一行加上 obj-$(CONFIG_MACH_MY6410) += mach-my6410.o
  3.  修改頂層的Makefile:

     ARCH ?= arm

     CROSS_COMPILE ?= /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-

  4. 複製arch/arm/configs/下的s3c6400-defconfig文件,然後將其保存爲.config,配置內核支持EABI,再選中XX6410 board這一項,保存退出;
  5. 執行make menuconfig對內核進行配置:

    執行make編譯

    執行make zImage生成zImage

    將uboot根目錄下的mkimage拷貝到/user/bin目錄下

    執行make uImage生成uImage

通過以上幾步linux內核移植完了,剩下就移植驅動了。

這裏需要注意,每一次修改Kconfig文件都需要make menuconfig對內核進行配置。

 


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章