iwlwifi
によって駆動されるIntelワイヤレスカードを持っています。dmesgに次のメッセージが表示されます。
iwlwifi 0000:03:00.0: loaded firmware version 17.168.5.3 build 42301
ロードされているblobがわかっているとすると、このblobのバージョン(.ucode
ファイル)?
以下のucodeが読み込まれている場所を見ると、blobが読み込まれたことだけではバージョン情報がわかりません。しかし、私はこれらのIntelバージョンを知っています。
$ Sudo dmesg | grep ucode
[ 26.132487] iwlwifi 0000:03:00.0: firmware: direct-loading firmware iwlwifi-6000g2a-6.ucode
[40428.475015] (NULL device *): firmware: direct-loading firmware iwlwifi-6000g2a-6.ucode
iwlwifi
ドライバーは、起動時にwifiアダプターのマイクロコードファイルをロードします。マシンにあるblobのバージョンを知りたい場合は、 Andrew Bramptonのスクリプト を試してください。実行:
## Note the firmware may stored in `/usr/lib`
./ucode.py /lib/firmware/iwlwifi-*.ucode
そして、出力をジャーナルと比較します(dmesg
出力)。
このスクリプトはpython2
。
補足として、そして @ don_crisstiの答え で言及されているAndrew Bramptonスクリプトを見ると、リバースエンジニアリングフレームワークである Radare2 から同じ出力を得ることができます。
_pf x[4]z[64]zN1N1N1N1 magicfile magicblob text serial api minor major
_
pf
書式付きデータを印刷するx
0xHEX value and flag (fd @ addr) (see 'd' and 'i')
[4]z
_最小長4サイズの_null terminated string
_[64]z
_最小長64サイズの_null terminated string
_N1N1N1N1
_ next char specifies size of unsigned value (1, 2, 4 or 8 byte(s))
次のようなスクリプトから実行できます。
_for f in /lib/firmware/iwlwifi-*.ucode; do
echo $f;
radare2 -qc "pf x[4]z[64]zN1N1N1N1 magicfile magicblob text serial api minor major" "$f";
done;
_
ここにいくつかの出力例があります
_ magicfile : 0x00000000 = 0x00000000
magicblob : 0x00000004 = IWL.
text : 0x00000008 = 6000g2b fw v18.168.6.1 build 0.
serial : 0x00000048 = 1
api : 0x00000049 = 6
minor : 0x0000004a = 168
major : 0x0000004b = 18
_
_major.minor.api.serial
_を取得するには_18.168.6.1
_を逆方向に再生します