移植块设备驱动和虚拟网卡驱动
来源:互联网 发布:算法设计 克林伯格 编辑:程序博客网 时间:2024/06/07 22:49
移植块设备驱动
ramblock(内存模拟磁盘)
/* 参考文件:
drivers\block\Xd.c
drivers\block\Z2ram.c
*/
上传二期编写好的ramblock驱动文件及其Makefile,修改其Makefile,编译后出现如图错误提示。
—修改Makefile
—错误提示
根据错误提示,修改驱动文件后,重新编译,仍存在一些错误
—根据参考文件Z2ram.c,修改一些错误
—重新编译,仍存在如图一些错误
再次根据错误提示,参考文件Z2ram.c,修改驱动文件后,重新编译,编译成功
—修改文件
—编译成功
拷贝文件,测试驱动(内核:uImage_3.4.2_nolcd,加载驱动后,系统僵死)
修改文件后,上传文件重新编译(成功),重新拷贝文件
测试驱动(内核: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
*/
上传二期编写好的nand flash驱动文件及其Makefile,修改其Makefile,编译后出现如图错误提示。
—修改Makefile
—错误提示
根据错误提示,修改驱动文件后,重新编译,编译成功
—修改1
—修改2(提示使用的add_mtd_partitions函数存在问题)
解决方法:寻找新内核现使用的函数。
—编译成功
拷贝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
测试驱动(新内核启动: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
上传二期编写好的nor flash驱动文件及其Makefile,修改其Makefile,编译后出现如图错误提示。
—修改Makefile
—错误提示
根据错误提示,修改驱动文件后,重新编译,编译成功
—根据nand驱动修改经验,修改nor驱动
—编译成功
拷贝ko文件,测试驱动
3.1 拷贝完文件后,开发板断电并将拨码开关拨到nor启动,上电重启,下载内核uImage_3.4.2_nolcd_nonand,并用其启动。
3.2 测试
2017/12/20 星期三 15:31:25
移植虚拟网卡
上传二期编写好的虚拟网卡驱动文件及其Makefile,修改其Makefile,编译后出现如图错误提示。
—修改Makefile
—错误提示
错误提示:’struct net_device’ has no member named ‘hard_start_xmit’,参考内核网卡驱动dm9000.c修改文件,重新编译,编译成功
—修改文件
—重新编译
拷贝文件,测试驱动(内核: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
- 移植块设备驱动和虚拟网卡驱动
- 简单虚拟块设备驱动流程
- 块设备和字符设备驱动比较
- 块设备和字符设备驱动比较
- 块设备和字符设备驱动比较
- 虚拟网卡驱动
- linux虚拟网卡驱动
- 虚拟网卡驱动
- 虚拟网卡驱动
- linux虚拟网卡驱动
- 网卡驱动2----虚拟网卡
- 网卡驱动移植成功
- CS8900A网卡驱动移植
- DM9000网卡驱动移植
- cs8900a网卡驱动移植
- DM9000网卡驱动移植
- WIFI网卡驱动移植
- 网卡驱动移植1
- 字符游戏——贪吃蛇
- NDK的基础使用(AS版)
- 让 Python 更加充分的使用 Sqlite3
- 【Python】多进程的进程池pool运行时报错:ValueError: Pool not running
- iOS热更新实现方式
- 移植块设备驱动和虚拟网卡驱动
- google浏览器cookie文件位置
- 令人智熄的智(zhi)能(zhang)蛇
- tensorflow官网进不去,因为它的地址改变了。
- NET中泛型的理解与简单代码示例
- jstack详解
- javascript中BOM和DOM篇
- Android Lint增量扫描实战纪要
- 判断"CTRL" 键是否被按住