移植块设备驱动和虚拟网卡驱动

来源:互联网 发布:算法设计 克林伯格 编辑:程序博客网 时间:2024/06/07 22:49

移植块设备驱动

ramblock(内存模拟磁盘)

/* 参考文件:
drivers\block\Xd.c
drivers\block\Z2ram.c
*/

  1. 上传二期编写好的ramblock驱动文件及其Makefile,修改其Makefile,编译后出现如图错误提示。

    —修改Makefile

    —错误提示

  2. 根据错误提示,修改驱动文件后,重新编译,仍存在一些错误

    —根据参考文件Z2ram.c,修改一些错误

    —重新编译,仍存在如图一些错误

  3. 再次根据错误提示,参考文件Z2ram.c,修改驱动文件后,重新编译,编译成功

    —修改文件

    —编译成功

  4. 拷贝文件,测试驱动(内核:uImage_3.4.2_nolcd,加载驱动后,系统僵死)

  5. 修改文件后,上传文件重新编译(成功),重新拷贝文件

  6. 测试驱动(内核:uImage_3.4.2_nolcd)

    / # insmod ramblock.ko                  ---加载驱动/ # mkdosfs /dev/ramblock               ---格式化/ # mount -t vfat /dev/ramblock /mnt    ---挂接/ # ls /mnt/ # cd /mnt/mnt # vi tianpeng.txt                  ---创建文件

    /mnt # cd // # umount /mnt/ # mount -t vfat /dev/ramblock /mnt/ # cat /mnt/tianpeng.txt       ---验证是否创建文件成功/ # umount /mnt

    / # fdisk /dev/ramblock                 ---分区





    2017/12/19 星期二 11:24:37

Nand Flash

/* 参考文件:
* drivers\mtd\nand\S3c2410.c
* drivers\mtd\nand\At91_nand.c
*/

  1. 上传二期编写好的nand flash驱动文件及其Makefile,修改其Makefile,编译后出现如图错误提示。

    —修改Makefile

    —错误提示

  2. 根据错误提示,修改驱动文件后,重新编译,编译成功

    —修改1

    —修改2(提示使用的add_mtd_partitions函数存在问题)

    解决方法:寻找新内核现使用的函数。




    —编译成功

  3. 拷贝ko文件到根文件系统目录下,配置内核(去掉内核自带的nand驱动),并命名为uImage_3.4.2_nolcd_nonand

    —拷贝文件

    cp s3c_nand.ko /work/nfs_root/fs_mini_mdev_new

    —配置内核

    -> Device Drivers    -> <*> Memory Technology Device (MTD) support        -> <*> NAND Device Support            -> < > NAND Flash support for S3C2410/S3C2440 SoC

    —命名为uImage_3.4.2_nolcd_nonand

    cp arch/arm/boot/uImage /work/nfs_root/uImage_3.4.2_nolcd_nonand
  4. 测试驱动(新内核启动:uImage_3.4.2_nolcd_nonand)

    —nfs下载新内核,并启动

    nfs 30000000 192.168.0.3:/work/nfs_root/uImage_3.4.2_nolcd_nonandbootm 30000000

    —测试(本例还可以用工具测试,详见第19课NAND Flash之编写驱动+测试.txt)


Nor Flash

  1. 上传二期编写好的nor flash驱动文件及其Makefile,修改其Makefile,编译后出现如图错误提示。

    —修改Makefile

    —错误提示

  2. 根据错误提示,修改驱动文件后,重新编译,编译成功

    —根据nand驱动修改经验,修改nor驱动

    —编译成功

  3. 拷贝ko文件,测试驱动

    3.1 拷贝完文件后,开发板断电并将拨码开关拨到nor启动,上电重启,下载内核uImage_3.4.2_nolcd_nonand,并用其启动。

    3.2 测试

2017/12/20 星期三 15:31:25

移植虚拟网卡

  1. 上传二期编写好的虚拟网卡驱动文件及其Makefile,修改其Makefile,编译后出现如图错误提示。

    —修改Makefile

    —错误提示

  2. 错误提示:’struct net_device’ has no member named ‘hard_start_xmit’,参考内核网卡驱动dm9000.c修改文件,重新编译,编译成功

    —修改文件

    —重新编译

  3. 拷贝文件,测试驱动(内核:uImage_3.4.2_nolcd_nonand)

    insmod vir_net.koifconfig vnet0 2.2.2.2ifconfigping 2.2.2.3(成功)ifconfig                //vnet0网卡信息有变化





    2017/12/21 星期四 9:16:50

原创粉丝点击