我本仁慈,奈何苍天不许
分类: LINUX
2013-12-27 18:03:38
说明:配置s5pc100内核,并支持NFS启动网络文件系统
实验环境:
主机:ubuntu 12.04发行版
目标机:FS_S5PC100
交叉编译工具:arm-none-linux-gnueabi-gcc
内核版本:2.6.35
1、修改内核顶层Makefile
$ vi Makefile
修改:
ARCH ?=(SUBARCH)
CROSS_COMPILE ?=
CROSS_COMPILE ?= arm-none-linux-gnueabi-
2、拷贝标准板配置文件
$cp arch/arm/configs/s5pc100-defconfig .config
3、因为要通过NFS启动,故还需要配置内核支持网卡DM9000
3.1、平台代码修改
vim arch/arm/mach-s5pc100/mach-smdkc100.c
a、添加需要的头文件
#if defined(CONFIG_DM9000)
#include
#include
#endif
b、平台设备添加
/*DM9000 Support*/
#if defined(CONFIG_DM9000)
static struct resource dm9000_resources[]={
[0] = {
.start =0x88000000,
.end =0x88000000 + 0x3,
.flags =IORESOURCE_MEM,
},
[1] = {
.start =0x88000000 + 0X4,
.end =0x88000000 + 0X4 + 0x3,
.flags =IORESOURCE_MEM,
},
[2] = {
.start = IRQ_EINT(10),
.end = IRQ_EINT(10),
.flags = IORESOURCE_IRQ | IRQ_TYPE_LEVEL_HIGH,
},
};
static struct dm9000_plat_data s5pc100_dm9000_platdata = {
.flags = DM9000_PLATF_16BITONLY,
.dev_addr[0] = 0x00,
.dev_addr[1] = 0x00,
.dev_addr[2] = 0x3e,
.dev_addr[3] = 0x26,
.dev_addr[4] = 0x0a,
.dev_addr[5] = 0x00,
};
static struct platform_device s5pc100_device_dm9000 = {
.name = "dm9000",
.id = -1,
.num_resources = ARRAY_SIZE(dm9000_resources),
.resource = dm9000_resources,
.dev = {
.platform_data = &s5pc100_dm9000_platdata,
}
};
#endif
c、平台设备列表添加
在static struct platform_device *smdkc100_devices[] __initdata 结构体中添加如下内容:
#if defined(CONFIG_DM9000)
&s5pc100_device_dm9000,
#endif
4、配置内核
4.1、网络配置
4.2、网卡驱动配置
4.3、网络文件系统的配置
5、编译内核,并拷贝到tftp目录下
$ make zImage
6、启动开发板,修改内核启动参数,通过NFS挂载根文件系统。
修改内核启动参数和挂载NFS可以查看之前的博文。