国产欧美日韩一区二区在线_亚洲免费视频在线观看_亚洲综合小视频_在线免费观看亚洲_国产成人免费_91lu在线观看

投资中国
您的位置:首页 >宽带 > 正文

Openwrt开发指南 第17章 驱动开发之字符设备驱动程序|焦点日报

来源:嵌入式大杂烩 时间:2023-07-02 09:32:58

开发环境:

主机:Ubuntu12.04


【资料图】

开发板:RT5350

Openwrt:Openwrt15.05

1 配置编译驱动程序

首先将 RT5350_drv 文件夹传到 OpenWrt 源码的chaos_calmer/package/kernel 目录下。然后进入 OpenWrt 源码的顶层目录,执行 make menuconfig。

注意:至于RT5350_drv的内容,建议初学者按照步骤做就是了,不必追问细节,初学者应该知道openwrt驱动开发流程,代码的具体实现笔者在后文也会讲到,跟着笔者一步一步做就是了。

$ cd openwrt/

$ make menuconfig

在弹出的菜单界面里,配置选项。

Kernel modules  --- >  Other modules  --- >< * > kmod-RT5350_drv

然后我们就能看到我们的驱动程序的选项了 kmod-RT5350_drv,将它配置成M,也可编译进入内核。

图1

最后,退出保存。然后再执行编译命令。

make V=99

编译完成以后,就能在源码/bin/ramips/packages/base目录下看到我们的内核模块驱动程序的软件包。

kmod-RT5350_drv_3.18.109-1_ramips_24kec.ipk

2 字符设备驱动软件包 Makefile 介绍

首先进入到RT5350_drv 文件夹,里面有两个文件。Makefile内容如下。

## Copyright (C) 2008-2019 OpenWrt.org## This is free software, licensed under the GNU General Public License v2.# See /LICENSE for more information.#include $(TOPDIR)/rules.mkinclude $(INCLUDE_DIR)/kernel.mkPKG_NAME:=RT5350_drvPKG_RELEASE:=1include $(INCLUDE_DIR)/package.mkdefine KernelPackage/RT5350_drv  SUBMENU:=Other modules  # DEPENDS:=@!LINUX_3_3  TITLE:=Motor driver  FILES:=$(PKG_BUILD_DIR)/RT5350_drv.ko  # AUTOLOAD:=$(call AutoLoad,30,RT5350_drv,1)  KCONFIG:=endefdefine KernelPackage/RT5350_drv/description This is a RT5350_drv drivers endefMAKE_OPTS:= \\ARCH="$(LINUX_KARCH)" \\CROSS_COMPILE="$(TARGET_CROSS)" \\SUBDIRS="$(PKG_BUILD_DIR)"define Build/Preparemkdir -p $(PKG_BUILD_DIR)$(CP) ./src/* $(PKG_BUILD_DIR)/endefdefine Build/Compile$(MAKE) -C "$(LINUX_DIR)" \\$(MAKE_OPTS) \\modulesendef$(eval $(call KernelPackage,RT5350_drv))

至于该 Makefile 文件中每行是什么意思,请查阅上一章,这里不再赘述。进入到 src 文件夹中;我们看一下 Makefile 的内容,非常简单:

obj-m +=RT5350_drv.o

告诉内核添加的??槟勘晡募莆猂T5350_drv.o,至于RT5350_drv.c 这一个驱动模板,在上一章介绍过了,这里就不加以阐述了。

3 动态的加载和卸载内核驱动??槿砑?p>通过前面的努力,我们终于得到了我们自己的内核驱动??槿砑?。接下来就来使用它。首先将 kmod-RT5350_drv_3.18.109-1_ramips_24kec.ipk软件包传到开发板上面。

然后使用 opkg install 命令来安装软件包。

opkg install kmod-RT5350_drv_3.18.109-1_ramips_24kec.ipk

使用 opkg list 命令来查看已经安装了哪些软件包。这里是否执行该命令都无所谓。接下来进入我们的/lib/modules/3.18.109 目录,就能看到我们的驱动程序??榱?。

cd lib/modules/3.18.109/

接下来就通过 insmod 命令来装载驱动模块。

insmod RT5350_drv.ko

当我们一执行该命令,串口终端上面就会打印出。

这行打印信息,正是我们在驱动程序的入口函数中添加的调试信息。如果我们想卸载驱动???,则使用 rmmod 命令。

rmmod RT5350_drv

当执行完这条命令后,就成功的卸载了该驱动程序。我们也能看到如下打印。

这条打印,是在我们的驱动的出口函数中添加的调试信息

4 驱动开机自动加载

虽然我们通过 opkg insall 得到了.ko 为后缀的驱动??椋敲看我褂枚嫉媒衖nsmod,比较麻烦,我们可以让系统开机后自动的加载该驱动模块。

首先进入到特定的目录:

$cd /etc/modules.d

然后创建一个文件并且写入一些信息:

vi 61-RT5350_drv

说明:61 表示不使用外接 usb类的自启动程序,分隔符‘ -’后面接驱动模块名称!在创建的该文件中写入RT5350_drv 即驱动的名称。最后,必须保证RT5350_drv.ko 文件即我们的驱动模块文件放在: /lib/modules/3.18.109/

好的,重新启动系统即可:reboot

可以通过命令查询当前已经加载的驱动??椋簂smod审核编辑:汤梓红

标签:

相关阅读


主站蜘蛛池模板: 国产一区二区三区不卡在线看 | 爱爱视频欧美 | 黄色成人小视频 | 亚洲av人人夜夜澡人人 | 国产福利在线小视频 | 久草免费在线播放 | 四虎精品成人免费视频 | 天天干天天操天天 | 成人99国产精品 | 亚洲美女aⅴ久久久91 | 成在线人免费无码高潮喷水 | 国产三级国产精品 | 日韩一区二区三区四区不卡 | 粉嫩被粗大进进出出视频 | 日韩三级精品 | 欧美性欧美巨大黑白大战 | 国产午夜精品av一区二区麻豆 | 四虎影院免费观看 | 久久久久亚洲av成人人电影 | 免费无码av片在线观看播放 | 美国大黄 | 日韩一区二区免费视频 | 国产精品v欧美精品v日韩精品 | 一区二区三区久久精品 | 国产久热美女福利视频 | aa在线免费观看 | 色综合天天综合高清网国产 | 日本一区二区三区四区不卡 | 美女久久久久 | 国产成人影院一区二区三区 | 亚洲av无码成人精品区在线播放 | 日韩 欧美 自拍 | 亚洲av无码电影网 | 久久久久久亚洲精品 | 爱爱一级| 久久国产精品高清一区二区三区 | 女人下边被添全过视频 | 欧美三级韩国三级日本一级 | 99国产精品国产精品九九 | 性一交一乱一伦一色一情丿按摩 | 亚洲精品第一国产综合高清 |