استفاده از هوش مصنوعی برای مهندسی معکوس سخت افزار
آدرس مقاله: https://blogs.gnome.org/uraeus/2026/10/15/aiandreverseengineerhardware/ آدرس نظرات: https://news.ycombinator.com/item?id=50104299 امتیاز: 243 # نظرات: 236
پس از مرگ مادرم، جعبه بزرگی پر از نگاتیوهای قدیمی حاوی عکسهایی از سفرهای خانوادگی دوران کودکی و موارد مشابه داشتم. بنابراین تصمیم گرفتم یک اسکنر عکس نگاتیو بخرم و متوجه شدم که Plustek 8200i تحت لینوکس پشتیبانی می شود، بنابراین آن را خریدم. فقط برای کشف اینکه چیپست موجود در اسکنر به چیپست تغییر کرده است که دیگر تحت لینوکس پشتیبانی نمی شود. بنابراین در ساخت ابزارهای پیکربندی لینوکس برای برخی از سخت افزارهایم با استفاده از کد Claude، مانند برنامه کنترل کننده دوربین Dell، موفقیت زیادی کسب کردم، بنابراین فکر کردم، شاید Claude بتواند به من کمک کند تا یک درایور SANE کارآمد تهیه کنم.
من اساسا گیر کردم و برای طولانی ترین زمان به جایی نرسیدم و حتی اساسا برای چند ماه از پروژه منصرف شدم.
سپس پستی را در X دیدم از تام کرایدر با نام مستعار Glorious Eggroll که در مورد اینکه چگونه توانسته است یک درایور ماوس را با استفاده از ابزار هوش مصنوعی تعمیر کند، صحبت می کرد. او اساسا توضیح داد که چگونه آن را تنظیم کرده است تا عامل هوش مصنوعی کنترل کامل یک نمونه ویندوز را برای گرفتن داده های مورد نیاز برای تعمیر درایور داشته باشد. بنابراین من توییت او را به کلود چسباندم و از آن خواستم که به من کمک کند یک ماشین مجازی ویندوز راه اندازی کنم تا همان کارهایی را که تام برای اسکنر من انجام می دهد انجام دهد.
من فکر میکنم ترکیبی از توانایی اجرای اسکنها در زیر ویندوز و گرفتن دادههای USB در حین انجام این کار معجزه میکند، احتمالا همراه با بهبود کد کلود تفاوت بزرگی ایجاد کرده است. در عرض چند ساعت، من اولین اسکن خود را تحت لینوکس انجام دادم، مطمئنا با برخی مشکلات کیفیت، اما 100٪ به عنوان تصویر در نگاتیو قابل تشخیص است.
چند روز بعد، من یک درایور تقریبا عالی، از جمله پشتیبانی از اسکن مادون قرمز آماده کار داشتم، اما متوجه شدم که در فاصله زمانی بین من تسلیم شدم و سپس دوباره تلاش کردم، شخصی کدی را به SANE متعهد کرده بود تا از اسکنر پشتیبانی کند….. گاهی اوقات این اتفاق میافتد. من همچنین از Claude برای نوشتن برنامهای برای انجام اسکن منفی استفاده کردم که اسمش را Negative Vibes گذاشتم، فکر میکردم که اسم بامزهای است.
به هر حال، با موفقیت تلاش اسکنر من فکر می کنم، نمی دانم که آیا می توانم از این برای در نهایت رفع آخرین مشکلات پشتیبانی از دوربین MIPI در لپ تاپم استفاده کنم. بنابراین به کلود گفتم از مهاری که ساخته بودم دوباره استفاده کند و سعی کند دوربین MIPI لپتاپم را با بهروزرسانی درایور هسته و libcamera در صورت نیاز تعمیر کند. من کار را از صبح شروع کردم و در پایان روز وضعیت بسیار بهبود یافتهای با پچهای آماده برای هسته و libcamera داشتم.
بنابراین من فکر کردم که ممکن است ارزش به اشتراک گذاشتن آن با جهان را داشته باشد، و در حالی که هر کسی می تواند از صفر شروع کند، من از کلود خواستم که مهار را عمومی کند و آن را مستند کند تا مسیر را برای هر کس دیگری که می خواهد آن را روی سخت افزار خود امتحان کند کمی آسان تر کند. نوشتن درایور برای سخت افزارهای غیرمستند همیشه خسته کننده بوده است. شما ترافیک اتوبوس را ثبت میکنید، به زبالههای هگزا خیره میشوید و فرضیههایی در مورد آنچه که هر ثبت یا انتقال کنترل انجام میدهد تشکیل میدهید. سپس آنها را یک به یک، معمولا برای هفته ها آزمایش می کنید. هیچ کدام از نظر مفهومی سخت نیستند، اما به صبر و مهارت زیادی نیاز دارند.
این نوع کار با یک مدل هوش مصنوعی مناسب است. می تواند هزاران خط از USB را بخواند، متوجه شود که یک دنباله با تغییر یک بایت تکرار می شود و معنای آن بایت را پیشنهاد می کند. می تواند برای تایید آن تست بنویسد و خسته نمی شود. انسان هنوز تصمیم میگیرد چه چیزی بسازد و بررسی میکند که روی سختافزار واقعی کار میکند، اما slog بسیار کوچک میشود.
توجه داشته باشید که من از hw-harness در این فرم برای پروژههایم استفاده نکردم، زیرا در آن زمان این اساسا کد سفارشی بود، بنابراین این پروژه تلاشی است برای عمومیتر کردن و اشتراکگذاری هارنس از اسکریپتهایی که در حین انجام کار استفاده میکردم. منظور از hw-harness برای کمک به جلسه Claude یا Codex شما در موارد زیر است:
1. یک جلسه مرجع را ضبط کنید. درایور ویندوز فروشنده را در ماشین مجازی KVM اجرا کنید و دستگاه واقعی را به مهمان منتقل کنید. 2. از خارج از VM عکس بگیرید. ترافیک هاست لینوکس را با usbmon ضبط کنید. زیر لایه عبور قرار دارد، بنابراین مهمان نمی تواند آن را ببیند. 3. همان عملیات را در لینوکس با درایور خود تکرار کنید و آن را به همان روش ضبط کنید. 4. دو ردیابی را از هم جدا کنید. هر دو از یک ساز می آیند، بنابراین مستقیما با هم مقایسه می شوند. تفاوت ها در لیست اشکالات درایور شماست.
برای دستگاههایی که گذرگاهی برای ضربه زدن ندارند، مانند دوربین MIPI داخلی، مهار به جای آن از بازرسی سمت ویندوز استفاده میکند. این به معنی فایل های INF، داده های رجیستری، جداول ACPI و ویژگی های دستگاه است.
این رویکرد باید خوب باشد به این معنا که متکی به کپی کردن هیچ کدی نیست، در عوض آنچه سخت افزار انجام می دهد را مشاهده می کند و فقط داده های پیکربندی را از درایورهای ویندوز استخراج می کند، بنابراین هر ثابت در درایور جدید به چیزی ضبط شده بازمی گردد.
بنابراین برای علاقه مندان 3 توضیح کوتاه از پروژه هایی که انجام دادم و آنچه مورد نیاز بود دارم.
پروژه 1: پشتیبان SANE برای Plustek OpticFilm 8200i مقایسه خروجی درایور دو درایور موجود.
این به عنوان یک RPM فدورا بسته بندی شده است که به طور خودکار در هر فشار ساخته می شود. من بیشتر آن را با برنامه Negative Vibes خودم آزمایش کردم زیرا گزینه های زیادی در لینوکس برای اسکن منفی وجود ندارد.
بخش Genesys Upstream SANE نیز در سپتامبر 2026 از این اسکنر پشتیبانی کرد، بنابراین من این دو را مقایسه کردم. هر دو جزئیات دقیق مشابهی را در 3600 نقطه در اینچ حل می کنند. مال من در وضوح کامل سریعتر است (34.6 ثانیه در مقابل 54.4 ثانیه) و از حذف گرد و غبار مادون قرمز پشتیبانی می کند. Upstream مراحل وضوح بیشتری را ارائه می دهد. صفحه وب دارای یک مقایسه تعاملی کنار هم است که می توانید بررسی کنید. اینها نتایج تک واحدی و تک فریمی هستند، بنابراین آنها را به عنوان یک نقطه داده در نظر بگیرید.
صفحه تعاملی را که من ایجاد کردم و وضعیت فعلی دو درایور را نشان میدهد، بررسی کنید، امیدواریم اکتشافاتی که انجام دادم توسط پروژه SANE برای رفع برخی موارد کوچکتر در درایور بالادست مورد استفاده قرار گیرد. به هر حال، من این پروژه را بیشتر به عنوان اثبات مفهومی مطرح کردم، زیرا انتظار دارم همه از جمله خود من از درایور بالادستی پس از رسیدن به برابری با این یکی استفاده کنند.
پروژه 2: نوسانات منفی اسکن کامل نگاتیو شامل تمیز کردن تصویر مادون قرمز تکمیل شد.
اسکن دقیقا همانطور که اسکنر آن را تحویل داده است نگهداری می شود: 16 بیتی، خطی، با صفحه مادون قرمز. هر چیز دیگری مجموعه ای از تنظیمات غیر مخرب در بالا است، بنابراین می توانید ظاهر را تغییر دهید و دوباره صادر کنید. شامل:
این به عنوان Flatpak ارسال می شود که شامل قسمت پشتی اسکنر است. تا الان روی 8200i تست شده. هدف پشتیبانی از هر اسکنر فیلمی است که SANE پشتیبانی می کند. برای آن، SANE به یک روش استاندارد برای نمایش کانالهای مادون قرمز نیاز دارد، که هنوز آن را ندارد.
پروژه 3: تعمیر دوربین MIPI در ThinkPad من
نمایش خروجی MIPI قبل و بعد از رفع مشکل. رنگ ها بهتر از آن چیزی هستند که به نظر می رسند، زیرا تا پایان جلسه در یک اتاق نسبتا تاریک نشسته بودم.
در یک آزمایش کنترل شده در نور کم، روشنایی فریم از 31.1 به 90.9 افزایش یافت. نسبتهای قرمز/سبز و آبی/سبز از 0.890 و 0.672 به 1.047 و 0.823 نزدیک شدند، نزدیک به مرجع وبکم USB. آبی هنوز در نور کم حدود 17 درصد کوتاه است، که من آن را به تعادل سفیدی در دنیای خاکستری نشان میدهم. Fedora 44 RPM در صفحه انتشار است.
اگر سخت افزار بدون درایور لینوکس دارید، hw-harness را امتحان کنید. باز هم از Glorious Eggroll برای الهام گرفتن تشکر می کنم.
توجه: من ادعا نمیکنم که اسکنها یا دوربین MIPI من در حال حاضر کامل است، اما اسکنر به من اسکنهایی با ظاهر مناسب میدهد و دوربین MIPI بسیار بهتر از قبل به نظر میرسد. بنابراین با گذشت زمان مطمئن هستم که میتوانیم بیشتر اصلاح کنیم و صیقل دهیم، اما خوشحالم که با وجود نداشتن دانش عمیق برای این نوع کار به من اجازه داد سوزن را حرکت دهم.
متن اصلی (انگلیسی)
Using AI to reverse engineer hardware
Article URL: https://blogs.gnome.org/uraeus/2026/10/15/aiandreverseengineerhardware/ Comments URL: https://news.ycombinator.com/item?id=50104299 Points: 243 # Comments: 236