作者andytzeng (Ya-Shiuan)
看板LinuxDev
标题Re: [转录][问题]kernel跟驱动程式版本不合
时间Thu Apr 12 12:06:05 2007
※ 引述《wlsabcd (我不会C++)》之铭言:
1F:推 andytzeng:事实上..执行 make install 就会帮你 copy config file 04/08 18:35
2F:→ andytzeng:再者, 2.6.18, 2.6.19, 2.6.20 许多 module 位置换地方 04/08 18:36
3F:→ andytzeng:因此直接套用就会发现部分功能出问题(尤其 iptables) 04/08 18:36
4F:推 wlsabcd:回andytzeng,谢谢你提供的资料,敢问你提到的make install 04/09 10:20
5F:→ wlsabcd:是直接执行就行吗?还是前後要哪些步骤? 04/09 10:23
6F:推 windleaf:意思是你最後一步不用作 作到make install 即可reboot 04/09 11:00
7F:推 wlsabcd:了解,谢谢 04/09 11:26
Sorry 最近在忙论文,没有常上版来看..
在 2.6 kernel 可以直接打 make help 看到所有支援的 target
事实上这整套 Makefile 被称为 Kbuild...我上次花了一些时间才把
整套 Makefile trace 过...里面可以做到非常多事情...以下,我以
2.6.20.6 的 Makefile 来说明(其他版本差异不大)
一般来说,你 download 下来,设定完组态 (make config 系列,有
11 个 target) 就可以直接依序完成指令完成编译与安装
make (这动作等同於 make modules && make bzImage,在
make help 也有说明)
make modules_install
make install
reboot
在 make install 这步骤 makefile 已经帮你将 mkinitrd 以及 grub
修改都完成所以直接重开就会有新的 kernel 选项可以开机...
当然,我们知道 make 的 target 也是可以一次指定多组,他会依序执
行,因此上面指令可以用下面方式执行
make modules bzImage modules_install install && reboot
以上,指的是「完整」的编译一次,包含 modules & vmlinux image
第二次编译就依需求来选择
比方说:
case 1)
我修改了 build-in 的档案,那就得 make bzImage install && reboot
case 2)
修改 module 的档案,这就容易多,make path/file.ko
再把正在使用的 module rmmod,使用新的 ko 去 insmod 就可马上使用
至於 copy 方式,make modules 以及 make modules_install 最小单位
都是目录,因此印象中没有仅复制单一档案的方式,所以搞不好手动
cp 还比较快..
更多说明可以在 kernel 解开的 Documentation/kbuild 里面找到相关
使用说明
顺便一提,kernel 的 makefile 也可以帮你将 documentation 转成 pdf/html
等格式,也可以帮你包成 rpm/tarball 等
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.214.90
8F:推 zxvc:推 04/12 12:17
9F:推 wlsabcd:推,看到好文章,我的手又不由自主的推文,Thx 04/12 12:51
10F:→ andytzeng:not at all... 04/12 16:30
11F:推 sonyu:推~! 04/13 02:03
12F:推 vixen:还可以包成deb档呢!! 只差考试不能一百分与长高而已 09/21 06:01