本子的网卡是 bcm4312,内核里面是有驱动支持的,只要编译了,再装一个 firmware 就应该能用了。可我这的表现是开机能连上一会,后面会断,断了后就再也连不上了,只能重启。
没办法,找了半天,看到一个 broadcom-sta 的驱动,这个是 broadcom 官方出的。装的时候刚好赶上了 2.6.33 的内核,这个内核对比 2.6.32 有不少的变化。我记得之前没有先的选项在 .config 里面好像也是可以搜到的,不过是注释的。现在 2.6.33 里面,直接就搜不到了。而安装 broadcom-sta 的时候要求的几个内核选项花了好大功夫才搞定。
比如这个 wireless_ext。make menuconfig 后搜一下,能搜到,不过会发现他没有 Location,只有个 selected by。这就是说,只有满足了那些 selected by 的时候,这个才会被选上。在 selected by 里面,能看到 GELIC_WIRELESS [=n] && NETDEVICES [=y] && NETDEV_1000 [=y] && WLAN [=y] && GELIC_NET [=n] || IPW2100 [=m] && NETDEVICES [=y] && WLAN [=y] && PCI [=y] && CFG80211 [=y] 这样的一些内容。怎么理解呢?这些是按照那些 || 来分割的,竖线左右的是或的关系,不管哪边满足都可以。我在那个长长的列表里面摸索了半天,总算找到一个合适的,那就是先把 ipw2100 这个驱动选上,因为网卡不是这个型号的,所以把这个编译成模块,然后加在 blacklist 里面。
要使用无线,一般还需要一个模块,LIB80211_CRYPT_TKIP,用来支持 wpa 的。这个你在 dmesg | grep lib80 的时候能看到,如果没有 tkip 在里面,那基本应该是连不了 wpa 的网络的。这个模块也是需要选别的模块才能激活,上面选的那个 ipw2100 刚好还用在了这里,呵呵。另外还需要一个 hostap 的模块。
然后 broadcom-sta 还需要把 ssb,mac8012 这些模块关闭,反正按照提示来做就好了,这些都有 location,很好搞定。
装好后,就可以使用 wpa_supplicant 来连接无线了。要注意的是,使用的 driver 不是那个 braodcom,而是 wext。