【问题标题】:Usb to Ethernet driver compilation on linux kernel 3.0 and abovelinux kernel 3.0及以上版本usb转以太网驱动编译
【发布时间】:2015-01-03 18:12:12
【问题描述】:

我在 Linux 内核源代码树中为 Android 内核 3.0.8 交叉编译了 USB 到以太网驱动程序 drivers/net/usb/smsc75xx.c。交叉编译工作正常,并且使用insmod 插入内核模块。但是以太网接口没有出现,dmesg 也没有检测到模块的插入(使用insmod)或移除(使用rmmod)。由于dmesg 对其插入或删除保持沉默,似乎有些不对劲?

如何在非详细环境中调试这个不工作的驱动程序?

【问题讨论】:

  • 有人无缘无故降低这家伙的分数。我已经看到了数百万个类似的帖子,这些帖子都被重复了。我想似乎有一些偏见!!!
  • 听起来您面临内核版本之间 API 的差异。您找不到已经用于(或包含在)3.x 中的驱动程序版本吗?
  • @ChrisStratton,没有内核版本 3.0 及以上版本的驱动程序。我正在寻找内核 3.0 及更高版本是否有可能被愚弄,即从内核 2.6 编译的驱动程序可以被破解以与更新的内核一起使用。有什么想法,想法??
  • 你确定吗?主线内核中有一个 smsc75xx 驱动程序。
  • 感谢 Abhijeet 的编辑。真的很感激。

标签: c linux-kernel linux-device-driver


【解决方案1】:

检查驱动程序/net/usb/smsc75xx.c。看来司机已经在上游了。

【讨论】:

  • 感谢您的回答。我实际上需要为 Android Kernel 编译它。你是真的,它在内核源代码树中。我能够编译它并获得 smsc75xx.ko 文件。当我尝试使用 insmod 加载它时,我得到“insmod:无法插入'smsc75xx.ko':模块中的未知符号或无效参数”
  • 我能够安装 smsc75xx.ko 模块,但以太网接口 eth0 没有显示。当我执行“insmod smsc75xx.ko”时,Dmesg 也不显示任何消息。知道如何调试吗?
  • 如果你有可以运行的内核版本,我建议启动它并运行 lsusb -n。当您获得设备的 ID 时,请检查它是否在驱动程序中。可能是某些设备需要怪癖。不过我没有检查驱动程序。
  • !我在 Ubuntu 14.04 上没有看到带有 lsusb 的 -n 选项。如何在驱动程序中检查设备的ID?顺便说一句,没有任何开关的 lsusb 不会显示与此驱动程序相关的任何内容,但 dmesg 会显示
  • 哦,对不起,我似乎弄乱了 lspci 的选项。无论如何,dmesg 会告诉你关于设备的什么信息?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-11
  • 2011-07-18
  • 1970-01-01
  • 2022-10-13
相关资源
最近更新 更多