| | 84 | }}} |
| | 85 | * 從以上資訊,大致上可以猜出為什麼使用 DRBL 產生的 initrd-pxe.img 會無法取得 firmware,因為 bnx2 這個核心模組並不會自動去檔案系統裡去找 /lib/firmware 裡有沒有需要的檔案。而是透過 udev 去執行 firmware.agent 把 /lib/firmware 裡的檔案塞到 /sys/$DEVPATH/data 去。因此如果要讓 initrd-pxe.img 也支援這樣的機制,有兩種作法,第一種 initrd-pxe.img 全面改用 udev,第二種是自己補拷貝 /sys/$DEVPATH/data 那一段。 |
| | 86 | * 附帶值得一提的是我在 Debian Lenny 的 2.6.26-2-amd64 核心模組上看到 firmware-class 這個奇特的模組。看樣子 Linux 核心對於這些非公開的韌體處理方式目前仍處於混亂的局面。 |
| | 87 | {{{ |
| | 88 | jazz@hadoop:~$ lsb_release -a |
| | 89 | No LSB modules are available. |
| | 90 | Distributor ID: Debian |
| | 91 | Description: Debian GNU/Linux 5.0.1 (lenny) |
| | 92 | Release: 5.0.1 |
| | 93 | Codename: lenny |
| | 94 | jazz@hadoop:~$ uname -a |
| | 95 | Linux hadoop 2.6.26-2-amd64 #1 SMP Fri Mar 27 04:02:59 UTC 2009 x86_64 GNU/Linux |
| | 96 | jazz@hadoop:~$ lsmod | grep bnx2 |
| | 97 | bnx2 63496 0 |
| | 98 | firmware_class 12544 1 bnx2 |
| | 99 | jazz@hadoop:~$ sudo modinfo firmware_class |
| | 100 | [sudo] password for jazz: |
| | 101 | filename: /lib/modules/2.6.26-2-amd64/kernel/drivers/base/firmware_class.ko |
| | 102 | license: GPL |
| | 103 | description: Multi purpose firmware loading support |
| | 104 | author: Manuel Estrada Sainz |
| | 105 | depends: |
| | 106 | vermagic: 2.6.26-2-amd64 SMP mod_unload modversions |
| | 107 | jazz@hadoop:~$ sudo modinfo bnx2 |
| | 108 | filename: /lib/modules/2.6.26-2-amd64/kernel/drivers/net/bnx2.ko |
| | 109 | firmware: bnx2-09-4.0.5.fw |
| | 110 | firmware: bnx2-06-4.0.5.fw |
| | 111 | version: 1.7.5 |
| | 112 | license: GPL |
| | 113 | description: Broadcom NetXtreme II BCM5706/5708 Driver |
| | 114 | author: Michael Chan <mchan@broadcom.com> |
| | 115 | srcversion: AA4F7411285F32C5C55775A |
| | 116 | alias: pci:v000014E4d0000163Asv*sd*bc*sc*i* |
| | 117 | alias: pci:v000014E4d00001639sv*sd*bc*sc*i* |
| | 118 | alias: pci:v000014E4d000016ACsv*sd*bc*sc*i* |
| | 119 | alias: pci:v000014E4d000016AAsv*sd*bc*sc*i* |
| | 120 | alias: pci:v000014E4d000016AAsv0000103Csd00003102bc*sc*i* |
| | 121 | alias: pci:v000014E4d0000164Csv*sd*bc*sc*i* |
| | 122 | alias: pci:v000014E4d0000164Asv*sd*bc*sc*i* |
| | 123 | alias: pci:v000014E4d0000164Asv0000103Csd00003106bc*sc*i* |
| | 124 | alias: pci:v000014E4d0000164Asv0000103Csd00003101bc*sc*i* |
| | 125 | depends: firmware_class |
| | 126 | vermagic: 2.6.26-2-amd64 SMP mod_unload modversions |
| | 127 | parm: disable_msi:Disable Message Signaled Interrupt (MSI) (int) |