linux 2.6.14 移植

skyeye 版本1.2.6

busybox版本 2009.03

linux内核版本2.6.14

 

  修改linux源码目录下的 Makefile, 将
  ARCH          ?= $(SUBARCH)
  CROSS_COMPILE ?=
  改为
  ARCH          ?= arm
  CROSS_COMPILE ?= arm-linux-

 

 

生成默认的内核配置文件(for s3c2410):
  #make smdk2410_defconfig

 

为内核添加 cs8900网卡驱动,以支持 NFS 挂接:
  (1)复制 cs8900 驱动到 drivers/net/arm 目录
     #cp cs8900.c drivers/net/arm
     #cp cs8900.h drivers/net/arm

  (2)修改 drivers/net/arm 目录下的 Kconfig 文件, 在最后添加:
     config ARM_CS8900
        tristate "CS8900 support"
        depends on NET_ETHERNET && ARM && ARCH_SMDK2410
        help
          Support for CS8900A chipset based Ethernet cards. If you have a network
          (Ethernet) card of this type, say Y and read the Ethernet-HOWTO, available
          from as well as .To compile this driver as a module, choose M here and read.
          The module will be called cs8900.o.

     注:在运行 make menuconfig 命令时就会出现: [ ] CS8900 support 这一选项

 

  修改 drivers/net/arm 目录下的Makefile文件,在最后添加如下内容:
     obj-$(CONFIG_ARM_CS8900) += cs8900.o

 

 修改 arch/arm/mach-s3c2410/mach-smdk2410.c
     在此文件中找到 smdk2410_iodesc[] 结构数组,添加如下如下内容:

     {vSMDK2410_ETH_IO,pSMDK2410_ETH_IO, SZ_1M, MT_DEVICE}

     修改之后变成:

     static struct map_desc smdk2410_iodesc[] __initdata = {
     /* nothing here yet */
     /* Map the ethernet controller CS8900A */
     {vSMDK2410_ETH_IO,pSMDK2410_ETH_IO, SZ_1M, MT_DEVICE}
     };

     并且添加一个头文件引用:
     #include <asm-arm/arch-s3c2410/smdk2410.h>

 

  在 include/asm-arm/arch-s3c2410 目录下创建文件 smdk2410.h
     #ifndef _INCLUDE_SMDK2410_H_
     #define _INCLUDE_SMDK2410_H_

     #include <linux/config.h>
     #define pSMDK2410_ETH_IO 0x19000000
     #define vSMDK2410_ETH_IO 0xE0000000
     #define SMDK2410_ETH_IRQ IRQ_EINT9

     #endif

 

  修改 include/asm-arm/arch-s3c2410/map.h
  #define S3C2410_CS6 (0x30000000UL)
  to
  #define S3C2410_CS6 (0xC0000000UL)

  修改 include/asm-arm/arch-s3c2410/memory.h
  #define PHYS_OFFSET (0x30000000UL)
  to
  #define PHYS_OFFSET (0xC0000000UL)

 

裁剪/定制内核
  (1)#make menuconfig
  (2)设置内核启动参数
     Boot options ---> Default kernel command string:
     mem=32M console=ttySAC0 root=/dev/ram initrd=0xc0800000,0x00800000 ramdisk_size=8192 rw
  (3)设置 CS8900 的支持
     Device Drivers --->
     Network device support --->
     Ethernet (10 or 100Mbit)  ---> []   CS8900 support
     选中 [*]   CS8900 support
  (4)设置 initrd 的支持
     Device Drivers ---> Block devices  ---> [ ] RAM disk support
     下面三项必须设置:
     1.确保 RAM disk support 被选中
     2.相应的将默认的 (4096) Default RAM disk size (kbytes) 改成 8192;
     3.Initial RAM disk (initrd) support 一定要选中, 切记!
  (5)设置 NFS 的支持
     File systems  ---> Network File Systems  --->
     至少确保下面两项被选中:
     [*] NFS file system support
     [*]   Provide NFSv3 client support
  (6)设置 ROM file system 的支持
     File systems  ---> [*] ROM file system support
     确保 [*] ROM file system support 被选中
  (7)设置 ext2 的支持
     File systems  ---> [*] Second extended fs support
     确保 [*] Second extended fs support 被选中

 

编译
  #make

 

 

busybox编译时要设置 设置静态编译方式
  Busybox Settings  ---> Build Options  ---> [*] Build BusyBox as a static binary (no shared libs)
  确保 [*] Build BusyBox as a static binary (no shared libs) 被选中

 

skyeye.conf:

# skyeye config file for S3C2410X
 
cpu: arm920t
mach: s3c2410x
 
# physical memory
mem_bank: map=M, type=RW, addr=0xc0000000, size=0x00800000
mem_bank: map=M, type=RW, addr=0xc0800000, size=0x00800000, file=./initrd.img
mem_bank: map=M, type=RW, addr=0xc1000000, size=0x01000000
 
# all peripherals I/O mapping area
mem_bank: map=I, type=RW, addr=0x48000000, size=0x20000000
 
mem_bank: map=I, type=RW, addr=0x19000300, size=0x00000020
net: type=cs8900a, base=0x19000300, size=0x20,int=9, mac=0:4:3:2:1:f, ethmod=tuntap, hostip=10.0.0.1
 
lcd: type=s3c2410x, mod=gtk
#dbct:state=on

 

linux可以顺利启动,但是还有个问题/bin/ash: can't access tty; job control turned off

迟点再解决,现在试试高版本内核能不能运行起来.

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值