openwrt系统之字符设备驱动软件包加载、测试程序加载

1、首先将软件包(如mydrv)放到ubuntu虚拟机openwrt/trunk/package/kernel/目录下

2、回到openwrt/trunk/目录下,make menuconfig进行配置,把我们复制的软件包编译进去
  Kemel modules -> Other modules -> kmod-mydrv(按y选中)保存退出

3、然后在当前目录执行make  package/kernel/mydrv/compile  V=99

4、编译结束后,固件在openwrt/trunk/bin/ramips/packages/base目录下
  kmod-mydrv_1.10.36-1_ramips_24kec.ipk

5、执行make 得到OpenWrt系统固件位于penwrt/trunk/bin/ramips下,
 openwrt-ramips-rt305x-mpr-a2-squashfs-sysupgrade.bin
6、烧写固件进入开发板,再加载我们的模块.ipk文件(使用ssh网络服务)

7、进入开发板系统文件找到你加载的模块位置文件夹,进行ipk的安装
   opkg intall kmod-mydrv_1.10.36-1_ramips_24kec.ipk

8、安装完成后,到/lib/modules/3.14.25/下找到我们的驱动mydrv.ko

9、加载驱动 insmod mydrv.ko

10、卸载驱动 rmmod mydir.ko



驱动开机自动加载
  虽然我们通过 opkg insall 得到了.ko 为后缀的驱动模块,但是每次要使用都得进行 
insmod,比较麻烦,我们可以让系统开机后自动的加载该驱动模块。 
  首先进入到特定的目录: 
  cd  /etc/modules.d 
  然后创建一个文件并且写入一些信息
  vi  61-mydrv  说明:61 表示不使用外接 usb 类的自启动程序,分隔符‘-’后面接 
驱动模块名称!
   在创建的该文件中写入: mydrv 即驱动的名称。
   最后,必须保证 mydrv.ko文件即我们的驱动模块文件放在: /lib/modules/3.14.25/ 
   好的,重新启动系统即可: reboot 
可以通过命令查询当前已经加载的驱动模块:lsmod 


应用程序软件包测试(也就是通过编写另外一个程序来调用驱动程序,这属于嵌入式应用层,而上面属于驱动层)

1、首先将软件包(如mydrv_app)放到ubuntu虚拟机openwrt/trunk/package/目录下

2、回到openwrt/trunk/目录下,make menuconfig进行配置,把我们复制的软件包编译进去
  Utilitties -> mydrv_app (按y选中)保存退出

3、然后在当前目录执行
   make package/mydrv_app/compile V=99 
   make package/mydrv_app/install V=99 
   make package/index V=99

4、编译结束后,固件在openwrt/trunk/bin/ramips/packages/base目录下
   mydrv_app_1_ramips_24kec.ipk

5、执行make 得到OpenWrt系统固件位于penwrt/trunk/bin/ramips下,
 openwrt-ramips-rt305x-mpr-a2-squashfs-sysupgrade.bin
6、烧写固件进入开发板,再加载我们的模块.ipk文件(使用ssh网络服务)

7、进入开发板系统文件找到你加载的模块位置文件夹,进行ipk的安装
   opkg intall kmod-mydrv_1.10.36-1_ramips_24kec.ipk


8、安装完成后,到/lib/modules/3.14.25/下找到我们的驱动mydrv.ko

9、加载驱动 insmod mydrv.ko

10、进入开发板系统文件找到你加载的模块位置文件夹,进行ipk的安装
   opkg intall kmod-mydrv_app_1.10.36-1_ramips_24kec.ipk

11、安装完成后根目录运行应用程序mydrv_app

12、卸载驱动 rmmod mydir.ko
原文地址:https://www.cnblogs.com/yihujiu/p/5702451.html