加载新驱动的方法

本文介绍了两种方法在Linux系统中加载新字符驱动。方法一是将驱动编译进内核,通过修改Kconfig和Makefile文件,配置Makemenuconfig并编译内核。方法二是直接编译成.ko文件,放置在任意位置,并通过insmod命令加载。加载成功后,驱动模块会出现在/proc/device中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

加载新驱动的方法(以字符驱动为例)

1. 将驱动编译进内核(方法一)

将新驱动文件放入字符驱动对应的目录下,然后更改该目录下的Kconfig和Makefile文件:

  • Kconfig添加config选项,参照已有驱动格式添加。
config TELCLOCK
	tristate "Telecom clock driver for ATCA SBC"
	depends on EXPERIMENTAL && X86
	default n
	help
	  The telecom clock device is specific to the MPCBL0010 and MPCBL0050
	  ATCA computers and allows direct userspace access to the
	  configuration of the telecom clock configuration settings.  This
	  device is used for hardware synchronization across the ATCA backplane
	  fabric.  Upon loading, the driver exports a sysfs directory,
	  /sys/devices/platform/telco_clock, with a number of files for
	  controlling the behavior of this hardware.
  • Makefile添加编译项。
obj-$(CONFIG_TELCLOCK)		+= tlclk.o
  • 此时多了新驱动的模块选择选项,需要配置Make menuconfig来将宏CONFIG_TELCLOCK打开,然后新驱动模块就会加入编译选项中。
2. 将驱动编译成.ko文件(方法二)

该方法可以将驱动程序放在任意位置,但是需要在Makefile指定内核的目录路径。

Makefile如下:

KERN_DIR = /work/system/linux-xx.xx

all:
	make -C $(KERN_DIR) M=`pwd` modules 

clean:
	make -C $(KERN_DIR) M=`pwd` modules clean
	rm -rf modules.order

obj-m	+= My_drv.o

采用这种编译方式可以把内核驱动编译成.ko文件。
然后将.ko文件放入根文件系统,利用insmod加载命令加载驱动模块insmod My_drv.ko.,可以查看/proc/device文件浏览已加载的驱动。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值