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