为 OPENWRT 编译额外的内核模块
来源:互联网 发布:综合管线设计软件 编辑:程序博客网 时间:2024/05/16 08:46
举个例子,如果想在路由器上跑 OpenWRT 并未包含的 RTL8188EU 驱动模块该怎么办呢?在这里给出一种快捷但是比较 dirty 的办法(否则应该自己写个 package )。
首先得有编译固件时留下的 kernel 的源码,包括编译过程中生成的一些文件。
下面假定 OpenWRT 的源码目录在 /some/path/openwrt ,内核目录以及 Staging DIR 分别为其下的 build_dir/target-mips_r2_uClibc-x.x.x.x/linux-target_generic/linux-x.x.x和 staging_dir ,Toolchain 编译好后会存放在 Staging DIR 下的 toolchain-mips_r2_gcc-x.x-linaro_uClibc-x.x.x.x 目录里,前缀为 mips-openwrt-linux- 。目标机器指令集为 MIPS32 R2 。
那么,我们可以在内核驱动的目录下写一个脚本来帮助编译:
#!/bin/sh
PREFIX=
"/media/study/wrt/openwrt_trunk"
ARCH=mips
KSRC=
"$PREFIX/build_dir/target-mips_r2_uClibc-0.9.33.2/linux-ar71xx_generic/linux-3.10.9"
STAGING_DIR=
"$PREFIX/staging_dir"
TOOLCHAIN_DIR=
"$STAGING_DIR/toolchain-mips_r2_gcc-4.6-linaro_uClibc-0.9.33.2/bin"
CROSS_COMPILE=
"mips-openwrt-linux-"
export
STAGING_DIR=$STAGING_DIR
export
PATH=$TOOLCHAIN_DIR:$PATH
make
clean
make
ARCH=$ARCH CROSS_COMPILE=$CROSS_COMPILE KSRC=$KSRC
一般情况下厂商的 Makefile 都会帮你传递 ARCH 、CROSS_COMPILE和 KSRC 这几个变量,如 rtl8188eu 的驱动(https://github.com/lwfinger/rtl8188eu.git )。有的时候需要阅读 Makefile 并做些修改。
最后把生成的内核模块 scp 到装有对应固件的路由器上的 /lib/modules/<kernel_version>/ 下即可。使用 insmod 手动装入或者在 /etc/modules.d/ 下创建一个配置文件来完成开机自动加载。
- 为 OPENWRT 编译额外的内核模块
- Openwrt的内核编译
- Openwrt的内核编译
- openwrt 编译内核模块中的配置问题
- openwrt增加内核模块的方法
- openWRT内核模块加载
- Openwrt添加内核模块
- 内核模块的编译
- openwrt 驱动模块的编译与加载
- 加载模块时出现问题的解决方案-为已编译的内核编译模块
- openwrt编译内核
- openwrt 内核编译纪要
- 为Raspberry Pi 2编译内核模块
- 为树莓派2的openwrt编译mentohust
- openwrt安装内核模块* satisfy_dependencies_for
- openwrt 添加自定义内核模块
- openwrt 添加自定义内核模块
- 编译内核模块的方法
- 如何在AS3中引用swf中的元件、图片等资源以及布局信息
- 2014北大软工夏令营机试 C:单词翻转
- QQ、MSN、淘包旺旺、Skype常设对话的html链接代码
- 声回道,声音中透ltUtQ
- [leetcode] Binary Tree Level Order Traversal
- 为 OPENWRT 编译额外的内核模块
- oracle驱动异常:java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
- 网路编程
- linux中的设备节点
- openwrt的samba使用
- String、StringBuffer和StringBuilder的区别
- 升级 eudev-1.9 启动信息出现错误
- 如何清理释放 Android 手机内存空间
- LeetCode3.2 @ Implement strStr() D4F5