linux内核支持动态加载模块,内核模块以.ko为后缀,在Linux系统中,内核模块放在/lib/modulex/x.x.x目录中,其中x.x.x为linux版本号
加载模块
insmod xxx.ko
如果带参数 insmod xxx.ko a=1
卸载模块
rmmod xxx.ko
支持的数据类型
bool :布尔类型
invbool:颠倒了值的bool类型
charp :字符指针类型,内存为用户提供的字符串分配
int:整型
long :长整型
short :短整型
uint :无符号整型
ulong :无符号长整型
ushort :无符号短整型
内核模块源码Makefile编写格式和linux源码的格式一样
在OpenWrt系统中,内核模块编译和应用层的package编译类似
make package/模块名/compile V=s
比如:
make package/hello_kernel/compile V=s
编译完成后会生成.ko文件,目录文件在build_dir中,但和应用层的build目录有点区别,内核模块的package放在linux目录,如(X86平台):
build_dir/target-x86_64_musl/linux-x86_64/
将编译完成的ko文件传输到OpenWrt系统中,注意编译平台和开发板平台的系统架构要一致。
1、将OP的路由通过无线client模式连接到上级无线路由器(inter)端,网络接口中的wwan(无线client接口)使用DHCP或者PPPOE认证到上级路由,设置完毕保存应用2、将OP的路由通过无线client模式链接到上级无线路由器(inter)端,无线设置中将接口选择为lan,进行桥接,网络接口中的br-lan关闭DHCP配置,防火墙转发开启、出入开启请自行测试
在openwrt嵌入式产品开发中添加。需要将4G模块驱动代码直接编译到系统中,省去了生成ko驱动文件手动加载 *** 作,下面将驱动代码添加到openwrt的方法总结如下:
步骤1:拷贝驱动代码将需要添加的驱动代码拷贝到linux内核driver对应的文件夹下。/openwrt/openwrt-hiwooya/build_dir/target-mipsel_24kec+dsp_uClibc-0、9、33、2/linux-ramips_mt7688/linux-3、18、29/drivers/net/usb。
步骤2:修改Makefile在driver对应的文件夹中修改Makefile,把新加的驱动源文件添加到Makefile中。
步骤3:修改Kconfig在driver对应的文件夹中修改Kconfig,把新加的驱动menuconfig相关配置添加到Kconfig中。
步骤4:修改*、mk文件需要修改package/linux/modules/下对应的usb、mk文件,添加以下内容。需要特别注意,这里是openwrt与一般linux的不同之处。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)