栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

编译ECM驱动并添加log

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

编译ECM驱动并添加log

最近遇到一个客户基于Linux2.6.26进行kernel开发,遇到了开发之后的kernel无法自动识别ECM网卡驱动的问题。我们本地需要帮忙其验证一下该版本的kernel能够本身自动识别ECM网卡。

首先我们找到了ubuntu10.04(kernel版本为2.6.32.21),因为ubuntu10.04版本太老旧了,我想换个源来安装kernel的源码,结果一换就出了各种各样的问题,后来决定还是在网络上手动下载kernel源码,然后再用U盘导到虚拟机里

kernel源码下载地址为:Index of /pub/linux/kernel/

ubuntu镜像下载地址为:WSL | Ubuntu

本文参考的网络文章链接为:Ubuntu内核源码修改编译及加载验证_面朝大海0902的博客-CSDN博客_ubuntu内核源码

查看ubuntu版本:lsb_release -a

查看gcc版本和linux kernel版本:cat /proc/version 或 uname -a

把kernel 2.6.32.21的源码解压到桌面上,进入其中,执行make modules (第一次编译时还需要编一下config,使用make oldconfig或者其他的编译方法都行,看需要啥),就可以对各类ko进行编译

由于ECM的驱动名字叫做cdc_ether,查找一下编译后的位置:

先将系统本身的ko干掉,然后重新加载:

lsmod | grep cdc

rmmod cdc_ether.ko

insmod cdc_ether.ko

在加载的过程中,可能会遇到一些依赖,甚至会报说版本不符合的问题,当时我解决的方法是先用

modprobe usbnet.ko

自动加载ubuntu原本自身的usbnet.ko,这是因为cdc_ether.ko依赖了usbnet.ko

modprobe 在这里起到了动态加载并自动解决加载过程中的依赖关系,加载了usbnet.ko之后再可以直接加载我们新编译出来的cdc_ether.ko

不过第一次使用ubuntu10-04连接上模块USB之后使用AT+GTRNDIS=1,1拨号后ubuntu并不可以通过USB连上网络

查看后发现模块端缺少了usblan0设备,最后调试通过的方法是将ubuntu端的cdc_ether.ko rmmod掉,再重新insmod就可以了

usblan就是外置网卡,直接连接USB口就可以实现方便快速的上网,无须像传统内置网卡一样需要打开机箱安装在网卡卡槽上

修改cdc_ether.c和usbnet.c,加入printk添加打印,

然后把 drivers/net/usb/ 下的 Makefile 改为:

下面是Makefile范例的文字版:

#sample driver module  

CONFIG_MODULE_SIG=n

obj-m := option.o

PWD := $(shell pwd)

OUTPUTDIR=/lib/modules/`uname -r`/kernel/drivers/usb/serial/

KDIR := /lib/modules/$(shell uname -r)/build

default:  

    $(MAKE) -C $(KDIR) M=$(PWD)  

install: default

    mkdir -p $(OUTPUTDIR)

    cp -f option.ko $(OUTPUTDIR)

    depmod

    modprobe -r option

    modprobe option

.PHONY:clean

clean:  

    rm -f *.mod.c *.mod.o *.ko *.o *.tmp_versions

这样,只需要修改 obj-m,在 drivers/net/usb/ 下执行 make,就可以编译出新的 usbnet.ko 或 cdc_ether.ko,使用 insmod 重新加载就可以

使用 dmesg -c 将旧的 dmesg 清理掉,然后重新加载并插入USB、拨号即可在 dmesg 中看到打印的 log  信息

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/964793.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号