সংস্করণ নম্বর পেতে কীভাবে আমি ইলউইফাইতে মাইক্রোকোড (ইউকোড) পার্স করতে পারি?


11

আমার দ্বারা চালিত একটি ইন্টেল ওয়্যারলেস কার্ড রয়েছে iwlwifiএবং আমি নিম্নলিখিত বার্তাটি ডেমসগে দেখতে পাচ্ছি:

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চালক আপনার জন্য মাইক্রো-ফাইল লোড করে ওয়াইফাই স্টার্টআপে অ্যাডাপ্টার। আপনি যদি আপনার মেশিনে থাকা ব্লবগুলির সংস্করণ জানতে চান তবে অ্যান্ড্রু ব্র্যাম্পটনের স্ক্রিপ্টটি ব্যবহার করে দেখুন । চালান:

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

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.