2012年2月1日 星期三

如何在開機時由kernel啟動驅動程式

在linux上的kernel其實支援很多硬體,
不過要是這個硬體的驅動程式沒有在開機時被自動載入該怎麼辦呢?

比如說是無線網卡驅動程式好了 ,如果能在開機時可以被自動載入就會比較方便,
就不用還要自己手動去up網卡。
你可以先用
$lspci -vv|less
然後找到
Network controller
大概是長的像這個樣子
03:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8191SEvB Wireless LAN Controller (rev 10)
Subsystem: Realtek Semiconductor Co., Ltd. Device e020
Physical Slot: 1
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 17
Region 0: I/O ports at 2000 [size=256]
Region 1: Memory at f4300000 (32-bit, non-prefetchable) [size=16K]
Capabilities: <access denied>
Kernel driver in use: rtl8192se
Kernel modules: rtl8192se

你可以看到Kernel driver in use: rtl8192se,
那麼我們就可以到/etc/moudles中添加這筆driver進去,
這樣以後每次開機就可以自動的啟動無線網卡了

$sudo vi /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

lp
rtl8192se