用 wireless-testing 制作自己的 compat-wireless (2010.4.7 更新)
版权声明: 允许非商业性转载,但转载时必须标明原作者 fcicq、原始链接 http://www.fcicq.net/wp/?p=786 及本声明。
官方 compat-wireless 基于 wireless-next-2.6 制作.
可以用一些工具, 使用 wireless-testing 中的代码制作自己的 compat-wireless.
compat-wireless 起到了 api 中间层的作用, 如果主线接纳了 api 的修改, compat-wireless 就必须制作 api 兼容层.
参考:
http://wireless.kernel.org/en/users/Download/hacking
cd /usr/src
git clone git://git.eu.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
git clone git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/compat.git
git clone git://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/compat-wireless-2.6.git
cd compat-wireless-2.6
export GIT_TREE=/usr/src/wireless-testing/
export GIT_COMPAT_TREE=/usr/src/compat/
scripts/admin-clean.sh
scripts/admin-update.sh
(可能会有 patch 出错的情形, 删除掉那些打不上的 patch 然后再次 update. 对于正规 build 来说应该不会发生这些情况)
scripts/admin-refresh.sh 等于先 clean 再 update, 如果已经对代码进行改动, 可能需要做清理.
然后这个目录中剩下的就是自己做的的 compat-wireless 了.
不过还有一个问题. compat-wireless-2.6/config.mk 的内容和内核 .config 很像.
正因为 compat-wireless 不跟着 compat-testing 走, 所以需要补全 config.mk.
例如 (for ar9271):
CONFIG_ATH=m
CONFIG_ATH9K_HW=m
CONFIG_ATH9K_HTC=m
缺什么补什么. 或者编译完了看看缺什么模块也行.
核心头文件(Kernel Headers) 制作方法:
加注: 本方法完全不对. 正确的方法很抱歉暂时没有找到.
(参考 Documentation/make/headers_install.txt, 制作时应该更换一个路径)
make headers_install ARCH=i386 INSTALL_HDR_PATH=/usr/include
直接编译核心中模块的方法(不推荐):
(参考 Documentation/kbuild/modules.txt, 可以增加 modules_install 以完成安装)
make -C /lib/modules/`uname -r`/build M=`pwd`
其中 -C 跟着的就是核心头文件或者源代码目录. 制作方法如前.
compat-wireless 使用另外一种编译方式:
(参考 compat-wireless 包中 README, Building for external kernels 部分)
make KLIB=/lib/modules/2.6.xx-yyyy -j2
make KLIB=/lib/modules/2.6.xx-yyyy KMODPATH_ARG='INSTALL_MOD_PATH=' install
另外可以指定 KLIB_BUILD 为源代码或头文件目录
友情提示: 请注意文章的时效性与准确性, 作者不对文章的有效性负责.
Tags:
Permalink Bookmark on del.icio.us
Last Modified: April 7, 2010 at 2:54 pm