你好,游客 登录 注册 搜索
背景:
阅读新闻

Linux-2.6.35内核移植—网卡驱动的移植

[日期:2012-07-09] 来源:Linux社区  作者:lr-ting [字体: ]

一、移植环境:

1、  Ubuntu 10.10发行版

2、  u-boot.bin

3、  目标机:FS_S5PC100平台

4、  交叉编译器 arm-cortex_a8-linux-gnueabi-gcc

u-boot.bin下载:

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是www.linuxidc.com

具体下载目录在 /2012年资料/7月/9日/Linux-2.6.35内核移植—网卡驱动的移植/

二、移植步骤

1、平台代码修改

$ vim arch/arm/mach-s5pc100/mach-smdkc100.c
  • 添加需要的头文件
#if defined(CONFIG_DM9000)
#include <linux/dm9000.h>
#include <linux/irq.h>
#endif
  • 平台设备的添加
/** 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
 
  • 平台设备列表的添加
#if defined(CONFIG_DM9000)
    &s5pc100_device_dm9000,
#endif

 

 

2、配置内核

$ make menuconfig
  • 网络配置
[*] Networking support(NEW) --->
  Networking option --->
    <*> Packet socket
    <*> Unix domain socket
    [*] TCP/IP networking
    [*] IP: multicasting
    [*] IP: kernel level autoconfiguration
    [*] IP: BOOTP support 
  • 网上驱动配置
[*] Device Drivers --->
  [*] Network device support --->
    [*] Ethernet(10 or 100Mbit) --->
      <*> DM9000 support 
  • 网络文件系统的配置
File systems --->
  [*] Network File Systems --->
    <*> NFS client support
    [*] NFS client support for NFS version 3
    [*] NFS client support for the NFSv3 ACL protocol extension
    [*] Root file system on NFS

三、编译内核,并拷贝到tftpboot目录下

$ make zImage
$ cp  arch/arm/boot/zImage  /tftpboot 

启动开发板,修改内核启动参数,通过NFS方式挂载根文件系统

linux
相关资讯       Linux内核移植 
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致���民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款