मैं संस्करण संख्या प्राप्त करने के लिए iwlwifi में माइक्रोकोड (यूकोड) को पार्स कैसे कर सकता हूं?


11

मेरे पास एक इंटेल वायरलेस कार्ड है iwlwifi, और मैं dmesg में निम्न संदेश देख सकता हूं:

iwlwifi 0000:03:00.0: loaded firmware version 17.168.5.3 build 42301

यह देखते हुए कि मुझे पता है कि कौन सी बूँद भरी हुई है, मैं इस बूँद ( .ucodeफ़ाइल) के संस्करण का पता कैसे लगा सकता हूँ ?

यदि आप नीचे देखते हैं जहां यूकोड लोड है, तो यह मुझे संस्करण की जानकारी नहीं बताता है कि एक बूँद भरी हुई थी। लेकिन मुझे पता है कि ये इंटेल संस्करण हैं।

$ 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

1
मुझे संदेह है कि यह हर बार सिस्टम के बूट होने पर फर्मवेयर लोड नहीं कर सकता है, लेकिन केवल रिपोर्ट करता है कि ईथरनेट कार्ड पर कौन सा फर्मवेयर संस्करण चल रहा है।
fduff

जवाबों:


8

iwlwifiचालक अपने लिए माइक्रोकोड फाइल लोड वाईफाई स्टार्टअप पर अनुकूलक। यदि आप अपने मशीन पर मौजूद ब्लब्स के संस्करण को जानना चाहते हैं, तो एंड्रयू ब्रैम्पटन की स्क्रिप्ट देखें । Daud:

## Note the firmware may stored in `/usr/lib`
./ucode.py /lib/firmware/iwlwifi-*.ucode

और आउटपुट को अपने जर्नल ( dmesgआउटपुट) से तुलना करें ।

ध्यान दें कि स्क्रिप्ट किसके साथ काम करती है python2


1

एक साइड नोट के रूप में, और @ डॉन_क्रिस्टी के उत्तर में वर्णित एंड्रयू ब्रैम्पटन स्क्रिप्ट को देखकर , आप रेडारे 2 से वही आउटपुट प्राप्त कर सकते हैं जो एक रिवर्स-इंजीनियरिंग फ्रेमवर्क है।

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 null terminated string न्यूनतम लंबाई 4 मिनट
    • [64]z null terminated string न्यूनतम लंबाई 64 आकार की
    • 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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.