- 2016 MacBook Pro में इस्तेमाल होने वाला Broadcom BCM4350 चिप FreeBSD में डिफ़ॉल्ट रूप से सपोर्टेड नहीं है, इसलिए पहले Linux VM के ज़रिए wifibox workaround आम तरीका था
- लेखक ने Claude Code का उपयोग करके Linux के brcmfmac ड्राइवर को FreeBSD पर पोर्ट करने की कोशिश की, लेकिन kernel panic और LinuxKPI compatibility issues की वजह से असफल रहे
- इसके बाद Pi coding agent का उपयोग करके brcmfmac के काम करने के तरीके का विश्लेषण किया गया, और BCM4350 के लिए 11 अध्यायों वाली तकनीकी specification AI ने तैयार की
- कई AI मॉडल्स (Opus, Codex, Gemini आदि) से cross-validation करके specification को सुधारा गया, और इसके आधार पर FreeBSD के लिए नया ड्राइवर पूरी तरह अपने-आप जनरेट किया गया
- अंतिम परिणाम Wi‑Fi scan, 2.4/5GHz connection, WPA/WPA2 authentication सपोर्ट करने वाले kernel module के रूप में तैयार हुआ, और कोड GitHub पर सार्वजनिक किया गया
पृष्ठभूमि
- 2016 MacBook Pro में Broadcom BCM4350 Wi‑Fi चिप इस्तेमाल होती है, लेकिन FreeBSD में इस चिप के लिए native driver नहीं है
- FreeBSD फ़ोरम में आम तौर पर wifibox नाम के Linux VM के ज़रिए brcmfmac ड्राइवर इस्तेमाल करने का तरीका सुझाया जाता है
- brcmfmac Broadcom के FullMAC चिप्स के लिए Linux ड्राइवर है, जो 802.11 frame handling और WPA encryption जैसे काम चिप के अंदर के firmware को सौंप देता है
- FreeBSD के लिए native module बनाने के लिए Linux कोड के कुछ हिस्सों को FreeBSD के अनुरूप पोर्ट करने वाली “glue code” conversion की ज़रूरत होती है
Act 1 — Claude Code के साथ पहली कोशिश
- लेखक ने Claude Code का उपयोग करके brcmfmac कोड को FreeBSD के लिए बदलने की कोशिश की
- FreeBSD की LinuxKPI compatibility layer को देखते हुए, उससे Intel के iwlwifi ड्राइवर जैसा तरीका अपनाने को कहा गया
- module compile तो हुआ, लेकिन असली hardware पर काम नहीं किया और kernel panic हुआ
- Claude ने
#ifdef __FreeBSD__ statements जोड़कर बदलाव किए, लेकिन LinuxKPI की खामियों की वजह से यह फिर भी unstable रहा
- AI ने चेतावनी दी कि यह project “जटिल और बिखरा हुआ” हो जाएगा, और अंत में केवल काम न करने वाला कोड बचा
Act 2 — specification-आधारित approach
- इसके बाद Pi coding agent का उपयोग करके BCM4350-केंद्रित brcmfmac ड्राइवर संरचना का विश्लेषण कराया गया, और clean-room implementation के लिए विस्तृत specification तैयार कराई गई
- AI ने 11 अध्यायों वाला document बनाया
- उदाहरण:
00-overview.md, 04-firmware-interface.md, 08-data-path.md आदि
- लेखक ने Codex model का उपयोग करके specification और असली कोड के बीच के mismatch की जाँच की और उन्हें ठीक किया
- फिर Opus model से दोबारा validation करके सुनिश्चित किया गया कि बदलाव कोड से मेल खाते हैं
- कई मॉडल्स की तुलना में, Gemini 3 Pro preview में सबसे ज़्यादा errors (“hallucination”) पाए गए, ऐसा उल्लेख किया गया
Act 3 — नया FreeBSD ड्राइवर बनाना
- specification के आधार पर BCM4350 के लिए नया FreeBSD ड्राइवर लिखने का project शुरू किया गया
- AI ने project structure, language (C का उपयोग करना है या नहीं), LinuxKPI dependency, milestones जैसी design decisions को document किया
- शुरुआत में LinuxKPI का उपयोग किया गया, लेकिन बढ़ती complexity के कारण बाद में native FreeBSD code पर स्विच किया गया
- AI ने SSH के ज़रिए build host और test VM तक पहुँचकर automated build-test loop चलाया
- VM crash होने पर हर बार कारण का सारांश बनाकर रिकॉर्ड करने के लिए सेट किया गया
- कई sessions की पुनरावृत्ति के बाद Wi‑Fi scan, 2.4GHz/5GHz connection, WPA/WPA2 authentication करने वाला kernel module तैयार हो गया
परिणाम और सार्वजनिक रिलीज़
- पूरा हुआ ड्राइवर GitHub repository github.com/narqo/freebsd-brcmfmac में सार्वजनिक किया गया
- लेखक ने स्पष्ट रूप से कहा कि “उन्होंने खुद कोड नहीं लिखा”
- कुछ ज्ञात समस्याएँ अभी भी बाकी हैं, और फ़िलहाल इसे केवल सीखने के संदर्भ के रूप में उपयोग करने की सलाह दी गई है
3 टिप्पणियां
सिक्योरिटी में बड़े-बड़े छेद~
ऐसा करने के बाद उसे security-harden करके, review करवाकर, कम से कम upstream में PR तो छोड़ना चाहिए था, या अपने GitHub पर उसे और मजबूत करके BSD community में ठीक से बताना चाहिए था; अगर बात वहीं खत्म कर दी, तो उसकी sincerity पर मुझे ज़्यादा भरोसा नहीं होता। अगर वह सचमुच का user है, तो security के gaps हाथ से भरेगा, और अगर Windows आराम से इस्तेमाल करते हुए शौक में दूसरे OS के साथ खेलने वाला है, तो फिर छोड़ भी देगा। 2016 मॉडल होने को देखकर लगता है कि मामला दूसरा वाला ही है।
Hacker News टिप्पणियाँ
मेरी नज़र में spec-first approach ही मुख्य insight है
AI code generation में अगर मॉडल implementation से पहले एक detailed spec लिखे, तो iteration cycle काफ़ी कम हो जाती है
spec के बिना शुरू करने पर मॉडल plausible approaches के बीच भटकता रहता है, लेकिन अच्छी spec हो तो हज़ारों lines के code में भी consistency बनी रहती है
दो महीने की development timeline भी दिलचस्प है। यह मानो एक नया kernel driver बन जाने जैसा है, तो अगर API call cost लगभग 500 डॉलर रही हो, तब भी यह पूरी तरह worthwhile experiment है
code की बजाय एक नया Pi session खोलकर agent से
brcmfmacdriver की detailed spec लिखवाने वाली बात प्रभावशाली लगीइस तरह के planning documents (markdown) बड़े LLM tasks में सचमुच बहुत महत्वपूर्ण होते हैं
लेख में बताया गया मामला शायद उस रेखा को पार कर गया है। पारंपरिक clean-room design में एक टीम code नहीं, सिर्फ़ interface को document करती है
मेरा भी ऐसा ही अनुभव रहा है। QEMU पुराने MacOS (M1 architecture) पर अब compile नहीं हो रहा था, लेकिन Sonnet 4.6 को देने पर उसने कुछ ही मिनटों में patch लिख दिया और install भी कर दिया
मैंने बस error दिखाकर उसे fix करने को कहा था, और उसने बिल्कुल सही हल कर दिया। सच कहूँ तो AI न होता तो शायद मैं हार मान लेता
आगे चलकर शायद ऐसा समय आएगा जब लोग software खरीदने के बजाय खुद बना लेंगे
Thunderbird का spam filter ख़राब हो गया था, तो मैंने खुद नया बना लिया, और वह कहीं बेहतर काम करता है
अगर CRM में मनचाहा feature नहीं है, तो उसे खुद बनाया जा सकता है। अब अपने ही problems को solve करने वाले custom solutions को आसानी से बनाना और deploy करना संभव होता जा रहा है
मेरे परिवार जैसे non-technical लोग अब भी app store या websites ही इस्तेमाल करेंगे
standardized software के फ़ायदे भी बड़े हैं। कंपनियाँ Photoshop या Xero जैसे tools पहले से जानने वाले लोगों को hire कर सकती हैं
जल्द ही हर OS में hardware support की समस्या पूरी तरह सुलझी हुई लग सकती है
AI coding agents इतनी तेज़ी से आगे बढ़ रहे हैं कि वे किसी भी device के लिए driver बना सकें
जब तक hardware manufacturer जानबूझकर interface नहीं छिपाता, BSD या Linux support स्वाभाविक रूप से आ ही जाएगा
उल्टा, इंसानी management और review की भूमिका और भी महत्वपूर्ण हो गई
software जिस रफ़्तार से दुनिया को खा रहा था, अब वह और तेज़ हो रहा है
अब vibe-coded software हर जगह उभर सकता है, और लोग शायद उसे बिना ज़्यादा सोचे इस्तेमाल भी करेंगे
समस्या यह है कि उसमें malware मिला हुआ code भी आ सकता है। फिर उसका पूरा verification कौन करेगा?
जैसे आपको concert tickets खरीदनी हों, तो AI agent उसी समय code बनाकर चलाएगा
अगले साल फिर खरीदने पर API version के हिसाब से नया code regenerate कर देगा
यह wasteful लग सकता है, लेकिन संरचना कहीं ज़्यादा dynamic और flexible होगी
आख़िरकार vendor को सिर्फ़ API देनी होगी, और user के पास अपना UI हो सकता है
उदाहरण के लिए, अपना board game collection management app मैं AI को दे सकता हूँ, लेकिन finance या security वाले apps मैं experts के बनाए हुए ही इस्तेमाल करूँगा
AI से बना kernel module ring 0 में load हो रहा है, और बनाने वाला खुद कह रहा है कि “इसमें बहुत समस्याएँ हैं, इसलिए production use मत करो”
ऐसा लग रहा है जैसे हम “मूल रूप से असुरक्षित युग” को रफ़्तार के सहारे पार करने की कोशिश कर रहे हों
फिर भी कुछ न होने से यह बेहतर है, और code public है, इसलिए इसे सुधारा भी जा सकता है
हर GitHub project का commercial product होना आवश्यक नहीं है
यह काम मौजूदा implementation का उपयोग करने वाले porting effort के ज़्यादा क़रीब है
GPL के नज़रिए से यह ‘inspiration’ के स्तर का है या ‘based on’ के स्तर का, इसकी तुलना करना दिलचस्प होगा
कंपनियों में भी, अगर existing implementation हो तो लोग आत्मविश्वास से आगे बढ़ते हैं, लेकिन पहली बार रास्ता खोलने वाले लोग अक्सर मान्यता नहीं पाते
लेखक ने कहा कि “मैंने खुद code नहीं लिखा, इसमें बहुत bugs हैं, और इसे सिर्फ़ learning material की तरह देखें”
कई महीनों में तीन कोशिशों के बाद यह मुश्किल से चलने लायक हुआ, लेकिन कुछ लोग इसे “AI ने programming पर विजय पा ली” कहकर बढ़ा-चढ़ाकर बता रहे हैं
असल में यह एक अच्छा लेख है, लेकिन सिर्फ़ शीर्षक देखकर ग़लत समझ लेने वाली टिप्पणियाँ बहुत हैं
hardware या driver knowledge के बिना काम करने वाला driver बना लेना अपने आप में एक नया milestone है
ऐसे नतीजे starting point के रूप में बहुत मायने रखते हैं
जैसे high resolution में सीधे render करने के बजाय GPU बीच का अंतर ‘विश्वसनीय रूप से’ भर देता है
अच्छा होगा अगर Asahi Linux के लिए modern Mac drivers मिलें। मुझे लगता है यह AI के अच्छे इस्तेमाल का उदाहरण है
यह नकारा नहीं जा सकता कि AI ने Apple documentation या binaries से सीखा हो, और generated code की license compatibility की भी गारंटी नहीं है