如何删除/禁用8250.o模块并实现我自己的8250驱动程序

时间:2013-04-12 12:23:08

标签: linux-kernel serial-port linux-device-driver

我想禁用或删除8250.c(低级UART驱动程序)模块,并在功能基础上实现相同功能,以便从用户空间执行读写请求

以下是我的问题:

  1. 如何删除/禁用8250.0模块
  2. 如果可能的话,请给我一些参考链接/示例来实现具有基本功能的8250驱动程序。
  3. 我是Linux设备驱动程序的新手,如果我错了,请原谅自己。我google了很多但没有得到正确的解决方案

1 个答案:

答案 0 :(得分:2)

答案1) 如果您当前的系统将8250驱动程序构建为模块,则只需卸载它:

$ lsmod | grep 8250
# rmmod 8250-driver-name

(我没有检查驱动程序的确切名称)

如果您当前的系统在内核中内置了8250驱动程序(或者您正在为新系统构建Linux内核),则必须编译内核。您必须编辑当前配置结束删除驱动程序。您可以使用:

$ make xconfig

$ make menuconfig

用于图形界面(在Linux内核源代码中运行这些命令)。 您也可以手动编辑.config文件并删除驱动程序

 CONFIG_SERIAL_8250=n

或通过设置:

将其编译为模块
 CONFIG_SERIAL_8250=m

(建议不要使用此驱动程序,请阅读xconfig或menuconfig文档)

如果您已有工作配置文件,可以将其作为.config

复制到内核源代码中
cp /path/to/you/config/file /path/to/your/kernel/source/.config

然后,如上所述编辑CONFIG_SERIAL_8250字段。

答案2)我可以链接的最好例子是8250.c driver。但是,如果您想了解如何开发Linux驱动程序,可以阅读Linux Device Driver