1.
从
http://www.at.kernel.org/pub/linux/kernel/v2.6/下载2.6.14
2.
解压arm-linux-gcc-3.4.1.tar.gz到/usr/local/arm/中
3.1指定目标平台。
移植前:ARCH?= $(SUBARCH)
移植后:ARCH :=arm
3.2指定交叉编译器。
移植前:CROSS_COMPILE ?=
移植后:CROSS_COMPILE =/usr/local/arm/3.4.1/bin/arm-linux-
3.3生成默认配置
make s3c2410_defconfig
4.复制cs8900
#cp cs8900.c ./drivers/net/arm/
#cp cs8900.h ./drivers/net/arm/
5.修改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或者make xconfig命令的时候就会出现:[ ] CS8900 support
这一选项。
6. 参照
http://skyeye.wiki.sourceforge.net/Linux 修改内核文件
修改include/asm-arm/arch-s3c2410/map.h
#define S3C2410_CS6 (0x30000000)
to
#define S3C2410_CS6 (0xC0000000)
修改include/asm-arm/arch-s3c2410/memory.h
#define PHYS_OFFSET UL(0x30000000)
to
#define PHYS_OFFSET UL(0xC0000000)
7.
修改drivers/net/arm/目录下的Makefile文件,在最后添加如下内容:
obj-$(CONFIG_ARM_CS8900) += cs8900.o
注:2.6版本内核的Makefile文件也与2.4版本的有所不同。添加以上语句,就会使内核在
编译的时候根据配置将cs8900A的驱动程序以模块或静态的方式编译到内核当中。
8. 修改/arch/arm/mach-s3c2410/mach-smdk2410.c文件
在/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>
9. 在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_SMDK2410_H_
10、配置、编译内核。在内核顶层目录当中键入:
#make smdk2410_defconfig
由于2.6的内核默认就支持了S3C2410,所以就有一个默认的内核配置文件。里面只是包
括了一个简单的配置,要使网卡编译进内核,还要进行手工配置。
#make menuconfig
根目录文件使用skyeye-testsuite-2.3.tar.bz2 中s3c2410的镜像
设置内核启动参数mem=32M console=ttySAC0 root=/dev/ram initrd=0xc0800000,0x00800000 ramdisk_size=2048 rw
设置CS8900的支持
Networking support --->
Ethernet (10 or 100Mbit) --->
CS8900 support
将刚才添加的网卡驱动程序静态添加到内核当中。
最后进行内核编译。
#make
11 修改skyeye 1.2.4 的device/net/dev_net_cs8900a.c 文件
参照http://lists.gro.clinux.org/pipe ... 4/skyeye.cs8900.bin
相关推荐
LINUX2.6.14在TE2410开发板上的移植
vue.js官方2.6.14版本
linux2.6.14内核移植流程 linux2.6.14内核移植流程 linux2.6.14内核移植流程
vue2.6.14源码
https://unpkg.com/browse/vue@2.6.14/ 下载本地资源,适合网络不好或者需要离线使用Vue.js的情况。
redis2.6.14 linux安装包,内含自己整理的两种安装模式,及操作说明文档,并在文档最后附上了配置文件说明
vue@2.6.14离线资源包,内部网络解压即用
vue.min.js官方2.6.14版本
xUtils-2.6.14.jar,相信不用多说都知道是干什么的,快来下载吧。
redis-2.6.14.tar.gz
Android网络请求xUtils源代码2.6.14
linux2.6.14内核移植到CVT2410上的详细过程,包括内核修改编译,根文件系统的制作,jfss2文件系统的制作,QT桌面的制作,以及nfs的搭建(研究生嵌入式系统课程所用教材!)文章需要的FILE文件可以在我的资源另行下载...
Linux内核2.6.14源码分析-双向循环链表代码分析(巨详细)
Rubygems是类似Radhat的RPM、centOS的Yum、Ubuntu的apt-get的应用程序打包部署解决方案。Rubygems本身基于Ruby开发,在Ruby命令行中执行。我们需要它主要是因为jekyll的执行需要...在此提供rubygems-2.6.14的下载版本。
详细的讲述了linux-2.6在2410的详细移植过程,内核分区的移植,和添加分区
redis资源安装包下载,tar包解压安装即可,数据缓存必备
xUtils-2.6.14 jar包用于android开发使用
xUtils 的源码,喜欢的朋友可以专研一下
在原xutils-2.6.14.jar基础上,新增一个方法,可循环遍历上传文件(修改版-可提供多图上传)