openwrt中添加自定义驱动模块

1:make menuconfig中的 kernel modules


其中的各个配置选项来自于下面目录中的.mk文件

[root@localhost /openwrt/openwrt/trunk/package/kernel/linux/modules]$ls
001-depends.mk  crypto.mk    hwmon.mk  leds.mk        netdevices.mk.bak  nls.mk     sound.mk  video.mk    wireless11221.mk
block.mk        firewire.mk  i2c.mk    lib.mk         netfilter.mk       other.mk   spi.mk    virtual.mk  wireless.mk
can.mk          fs.mk        input.mk  netdevices.mk  netsupport.mk      pcmcia.mk  usb.mk    w1.mk
[root@localhost /openwrt/openwrt/trunk/package/kernel/linux/modules]$

兄弟们可以打开就知道,


其中我们将自己将要添加的内核模块添加到Network Devices中。添加之后的效果为:


2:添加自己的模块到文件netdevices.mk


其中自己的模块代码在 FILES:=$(LINUX_DIR)/drivers/net/ethernet/ethernet中

内核控制选项为:CONFIG_AR9344_PHY8035 其中这个很重要需要在多个文件中进行定义AR9344_PHY8035。

在下面的目录中的Makefile添加obj-y += ethernet/

[root@localhost /openwrt/openwrt/trunk/build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/linux-3.10.36/drivers/net/ethernet]$more Makefile
#
# Makefile for the Linux network Ethernet device drivers.
#
obj-y += ethernet/

同时还需要在Kconfig中添加source "drivers/net/ethernet/ethernet/Kconfig"

其中内容如下:

[root@localhost /openwrt/openwrt/trunk/build_dir/target-mips_34kc_uClibc-0.9.33.2/linux-ar71xx_generic/linux-3.10.36/drivers/net/ethernet/ethernet]$cat Kconfig
config AR9344_PHY8035  //很重要的东西
        tristate "db12x borad for 9344chip"
        depends on PCI
        ---help---
          This driver supports for ar9035 phy id

其中看看自己模块中的makefile的内容如下:


主要上面makefile中的CONFIG_AR9344_PHY8035的变量,关于此值相关的配置值如下:

[root@localhost /openwrt/openwrt/trunk]$cat .config |grep 9344
CONFIG_PACKAGE_kmod-ar9344_ethernet=y


其中不管CONFIG_PACKAGE_kmod-ar9344_ethernet=y的 值是Y还是M,Linux内核目录中的CONFIG_AR9344_PHY8035的值都是M,古可以知道在根目录(/openwrt/openwrt/trunk)中的make menuconfig的时候是会与Linux内核中的config文件建立起联系的,之间是怎么的联系,现在还不是很清楚。

当在在总的menuconfig中选中自定义的模块之后,系统会自动将此模块加载到内核所在文件系统中


同事也会成ipk格式的文件。

Generating index for package ./kmod-ar9344_ethernet_3.10.36-1_ar71xx.ipk



  • 4
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 15
    评论
要在OpenWrt添加识别USB驱动,可以按照以下步骤进行操作: 1. 确认OpenWrt系统已经安装了USB驱动,可以通过以下命令进行检查: ``` opkg list-installed | grep kmod-usb ``` 如果没有安装,可以使用以下命令进行安装: ``` opkg update opkg install kmod-usb-core kmod-usb2 kmod-usb3 ``` 2. 连接USB设备到OpenWrt系统,使用以下命令检查USB设备是否已经被识别: ``` dmesg | grep usb ``` 如果USB设备已经被识别,可以看到类似如下的输出: ``` [ 424.702000] usb 1-1: new high-speed USB device number 2 using ehci-platform [ 424.942000] usb-storage 1-1:1.0: USB Mass Storage device detected [ 424.948000] scsi host2: usb-storage 1-1:1.0 [ 425.954000] scsi 2:0:0:0: Direct-Access XXXXXXXX XXXXXXXX PQ: 0 ANSI: 0 CCS [ 425.962000] sd 2:0:0:0: [sda] 30253056 512-byte logical blocks: (15.5 GB/14.4 GiB) [ 425.970000] sd 2:0:0:0: [sda] Write Protect is off [ 425.974000] sd 2:0:0:0: [sda] Mode Sense: 03 00 00 00 [ 425.974000] sd 2:0:0:0: [sda] No Caching mode page found [ 425.979000] sd 2:0:0:0: [sda] Assuming drive cache: write through [ 425.986000] sd 2:0:0:0: [sda] No Caching mode page found [ 425.990000] sd 2:0:0:0: [sda] Assuming drive cache: write through [ 426.056000] sda: sda1 [ 426.062000] sd 2:0:0:0: [sda] No Caching mode page found [ 426.067000] sd 2:0:0:0: [sda] Assuming drive cache: write through [ 426.071000] sd 2:0:0:0: [sda] Attached SCSI removable disk ``` 3. 如果USB设备没有被识别,可以通过以下命令查看系统日志来查找问题: ``` logread | grep usb ``` 根据日志信息,可以尝试安装对应的USB驱动或者调整系统配置来解决问题。 注意:添加USB驱动需要对系统有一定的了解和操作技能,如果不熟悉系统操作,建议寻求专业人士帮助。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

家有工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值