太原飞北京航班时间:成功移植linux-2.6.33.5到fs2410上

来源:百度文库 编辑:偶看新闻 时间:2024/05/04 07:18:30
今天成功移植linux-2.6.33.5到fs2410上2010-06-29 20:19

这要是做了一些最基本的移植,没有修改什么功能,就添加了网络功能,主要问题就是cs8900的移植上

1、修改Makefile文件,修改平台和交叉编译工具
ARCH=arm
CROSS_COMPILE=arm-softfloat-linux-gnu-                                                          

2、拷贝arch/arm/configs/s3c2410_defconfig.到顶目录,主要是选着一个和开发板相似的默认配置
cp arch/arm/configs/smdk2410_defconfig .config

3、添加cs8900网卡的驱动
    1、修改drivers/net/arm/Makefile文件添加:
obj-$(CONFIG_ARM_CS8900) += cs8900.o

    2、修改drivers/net/arm/Kconfig文件添加:
config ARM_CS8900
tristate "CS8900 support"
depends on NET_ETHERNET && ARM && ARCH_SMDK2410
help
   support for cs8900 chipset based Ethernet cards , if you have a network card of this type

    3、编译配置内核
# make menuconfig

Device Drivers --->

       [*] Network device support --->

              [*]   Ethernet (10 or 100Mbit) --->

                     <*>   CS8900 support

    4、修改arch/arm/mach-s3c2410/mach-smdk2410.c文件
static struct map_desc smdk2410_iodesc[] __initdata最后添加:
{vSMDK2410_ETH_IO, pSMDK2410_ETH_IO, SZ_1M, MT_DEVICE}
    5、修改arch/arm/mach-s3c2410/include/mach/map.h文件增加:

/* CS8900 */
#define pSMDK2410_ETH_IO     __phys_to_pfn(0x19000000)
#define vSMDK2410_ETH_IO     0xE0000000
#define SMDK2410_ETH_IRQ      IRQ_EINT9

    6.把以下两个文件cs8900.c cs8900.h添加进drivers/net/arm/内,然后编译内核。

这样就可以完成了,有可能在编译途中会出现错误,如
arch/arm/mach-s3c2410/built-in.o:(.init.data+0x724): undefined reference to `s3c_device_usb'
arch/arm/mach-s3c2410/built-in.o:(.init.data+0x724): undefined reference to `s3c_device_nand'
那是因为我们的arch/arm/mach-s3c2410/Kconfig 配置文件中有点问题,在config ARCH_SMDK2410这个段里明显比其他段少点东西
config ARCH_SMDK2410
bool "SMDK2410/A9M2410"
select CPU_S3C2410
select MACH_SMDK
select S3C_DEV_USB_HOST
select S3C_DEV_NAND
我们把S3C_DEV_USB_HOST和 S3C_DEV_NAND添加上去就ok了 然后make zImage生成内核,用tftp下载就可以启动了

由于百度空间发不了附件,就不上传了,网上有很多下载的