太原飞北京航班时间:成功移植linux-2.6.33.5到fs2410上
来源:百度文库 编辑:偶看新闻 时间:2024/05/04 07:18:30
这要是做了一些最基本的移植,没有修改什么功能,就添加了网络功能,主要问题就是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下载就可以启动了
由于百度空间发不了附件,就不上传了,网上有很多下载的