裁内核并非想象中那么难,但是也不简单。
两件事印象很深:
1、编网卡驱动
网卡是用的broadcom公司的百兆以太网网卡芯片,用的开源驱动模块编出来以后叫tg3.ko,insmod一下kernel就报错了。开始一两天在网
上找了很多资料,没有结果,后来仔细阅读硬件工程师发过来的硬件设计文档,发现网卡是通过PCI-E BUS接在南桥芯片上的,看看kernel呢,没有编入PCI-E。于是乎加选了PCI-E。当时的选项是这样的:
[*] PCI support
PCI access mode (Any) --->
[*] PCI Express support
[*] Message Signaled Interrupts (MSI and MSI-X)
在选了PCI-E以后自动加选了MSI,MSI 是个什么东西我没认真去管,就编了。重新编网卡驱动,insmod。这下倒好,直接kernel crash了。
于是想,也许是这个MSI造成的,选掉以后,
[*] PCI support
PCI access mode (Any) --->
[*] PCI Express support
[*] Message Signaled Interrupts (MSI and MSI-X)
在选了PCI-E以后自动加选了MSI,MSI 是个什么东西我没认真去管,就编了。重新编网卡驱动,insmod。这下倒好,直接kernel crash了。
于是想,也许是这个MSI造成的,选掉以后,
[*] PCI suppo