| 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) |