একটি অসমর্থিত ফিল্ম স্ক্যানারের Windows ড্রাইভার USB দিয়ে কী পাঠায় তা রেকর্ড করার পর Christian Schaller সেটি দিয়ে Linux-এ চেনা যায় এমন স্ক্যান তৈরি করেন। তাঁর ১৫ অক্টোবরের বিবরণে তিনি জানান, ওই ক্যাপচার বিশ্লেষণ ও SANE ব্যাকএন্ড তৈরিতে Claude-এর সাহায্য নিয়েছিলেন। প্রথম স্ক্যানে তখনও মানগত সমস্যা ছিল; পরে তিনি অনেক উন্নত ড্রাইভারের কথা জানান। এটি একজন ডেভেলপার ও একটি স্ক্যানারের ফল, AI কতবার ড্রাইভার লিখতে পারে তার স্বাধীনভাবে পুনরুৎপাদিত পরিমাপ নয়।
এরপর Schaller প্রকাশ করেন hw-harness। MIT লাইসেন্সের এই স্ক্রিপ্ট ও ডকুমেন্টেশনের সংগ্রহ তাঁর পদ্ধতিকে সাধারণভাবে ব্যবহারযোগ্য করে সাজায়। তিনি স্পষ্ট করে বলেন, স্ক্যানার ও ক্যামেরা প্রকল্পে আলাদাভাবে লেখা কোড ব্যবহৃত হয়েছিল, প্রকাশিত harness-এর বর্তমান রূপ নয়। অসমর্থিত USB ডিভাইসে সরাসরি হাতেকলমে কাজের সুযোগ থাকা Linux ড্রাইভার ডেভেলপারের জন্য দরকারি কাজটি ‘AI-কে রিভার্স ইঞ্জিনিয়ার করতে দেওয়া’র চেয়ে সীমিত: নির্মাতার সচল ড্রাইভার দিয়ে একটি কাজ ক্যাপচার করা, Linux ড্রাইভার দিয়ে একই কাজ ক্যাপচার করা এবং প্রথম অর্থবহ পার্থক্যটি খতিয়ে দেখা।
বড় পরিবর্তন
- কী বদলেছে: Schaller এমন একটি পুনরাবৃত্তিযোগ্য পদ্ধতি সাজিয়েছেন, যাতে সচল Windows ডিভাইস সেশন ও Linux ড্রাইভারের চেষ্টা হোস্টের একই USB রেকর্ডার দিয়ে রেকর্ড করা যায়। তাঁর স্ক্যানারের ফল দেখায় কেন এই তুলনা সাহায্য করতে পারে, তবে এটি এখনও একটি রিপোর্ট করা ঘটনা।
- কেন গুরুত্বপূর্ণ: ড্রাইভার ডেভেলপার লেবেল দেওয়া ট্রেস কোনো AI কোডিং সহকারীকে দিয়ে প্রোটোকলের সম্ভাব্য ব্যাখ্যা বা ছোট পরীক্ষামূলক প্রোব চাইতে পারেন। তৈরি করা কোড গ্রহণের আগে ডেভেলপারের এখনও হার্ডওয়্যার, সচল রেফারেন্স কাজ এবং সরাসরি পরীক্ষা দরকার।
- কী খেয়াল রাখবেন: প্রাসঙ্গিক ডিভাইস ট্র্যাফিক দেখা যায় কি না, পদ্ধতিটি তার ওপর নির্ভর করে। ভেতরে থাকা MIPI ক্যামেরার ক্ষেত্রে প্রকাশিত harness বরং Windows ডিভাইস কনফিগারেশন ও ACPI পরীক্ষা করে; USB ট্রেসের নির্দেশনা অনুসরণ করলে ডেভেলপারের প্রয়োজনীয় তথ্য বাদ পড়বে।
ক্যাপচারের আগে যা দরকার
প্রকল্পের hw-harness README জানায়, এটি Fedora-তে তৈরি ও পরীক্ষা করা হয়েছে। নথিভুক্ত সেটআপে libvirt/KVM, নির্মাতার ড্রাইভার চালানো Windows গেস্ট, প্রকৃত USB passthrough, Linux হোস্টে usbmon দিয়ে ক্যাপচার এবং তুলনা করার জন্য Linux ড্রাইভার বা প্রোব দরকার। Windows 11 Pro-তে harness-এর RDP-ভিত্তিক গ্রাফিক্যাল নিয়ন্ত্রণগুলো ব্যবহার করা যায়। এর VM নির্দেশিকা বলে, Home গেস্টেও SSH ব্যবহার করা যায়, কিন্তু ওই RDP নিয়ন্ত্রণগুলো নয়। রিপোজিটরিতে Fedora প্যাকেজ ও গ্রুপের অনুমতি দেওয়া আছে; ডিভাইস সংযোগের আগে চেকআউট করা রিভিশনে harness doctor চালিয়ে কী কী অনুপস্থিত তা খুঁজুন।
ব্যবহারের অনুমতি থাকা Windows ইনস্টলেশন ও নির্মাতার সফটওয়্যার, ঠিক সেই ডিভাইস, একইভাবে বারবার করা যায় এমন কাজ এবং প্যাকেট ক্যাপচারের জায়গা রাখুন। VM, হার্ডওয়্যার ব্যবহারের সুযোগ, Windows ও আপনার পছন্দের AI পরিষেবার খরচ ধরুন; রিপোজিটরিতে পুরো প্রক্রিয়ার নির্দিষ্ট খরচ দেওয়া নেই। এর স্ক্রিপ্ট MIT লাইসেন্সে থাকলেও তাতে Windows বা নির্মাতার সফটওয়্যারের লাইসেন্স মেলে না। সংগৃহীত তথ্য ব্যবহার বা বিতরণের আগে নিজের লাইসেন্সের শর্ত এবং প্রযোজ্য রিভার্স-ইঞ্জিনিয়ারিং নিয়ম দেখুন।
প্রতিটি ডিভাইসের জন্য আলাদা প্রকল্প ডিরেক্টরি ব্যবহার করুন। README অনুযায়ী harness init কনফিগারেশন এবং উপেক্ষিত etc/ ও captures/ ডিরেক্টরি তৈরি করে। README-এর উদাহরণ কপি না করে নিজের ডিভাইস অনুযায়ী VM-এর নাম এবং USB নির্মাতা/পণ্যের ID দিন। winctl auth, harness iso এবং নথিভুক্ত গেস্ট বুটস্ট্র্যাপ Windows VM-এর নিয়ন্ত্রণ তৈরি করে; ক্যাপচারের আগে winctl status থেকে ssh: ok দেখা উচিত। এটি প্রকল্পের নথিভুক্ত সেটআপ, BIG CHANGE-এর চালানো কোনো ধাপের ক্রম নয়।
দুই সিস্টেমে একই কাজ মিলিয়ে নিন
- বেসলাইন ও Windows রেফারেন্স রেকর্ড করুন। রিপোজিটরির পদ্ধতির নথি অনুসরণ করুন: প্রথমে নিষ্ক্রিয় অবস্থার ট্র্যাফিক কেমন দেখায় বুঝুন। শুরুতে ডিভাইস শনাক্তকরণ বা enumeration দরকার হলে USB ডিভাইস গেস্টকে দেওয়ার আগেই হোস্টে ক্যাপচার শুরু করুন। passthrough করা ডিভাইসে নির্মাতার Windows ড্রাইভার চালিয়ে একটি ছোট, নির্দিষ্ট কাজের লেবেল দিন, যেমন নির্দিষ্ট রেজোলিউশনে স্ক্যান।
usbcapবাসের ট্র্যাফিক ক্যাপচার করে এবং একটি.metaসহায়ক ফাইলে ডিভাইস, বাস ঠিকানা, সময়কাল ও লেবেল লিখে রাখে। হোস্টের ক্যাপচার বিন্দু USB passthrough-এর নিচের স্তরে থাকে, তাই গেস্টের কাজ দেখতে পারে। - Linux-এর সমতুল্য কাজ রেকর্ড করুন। ডিভাইস হোস্টকে ফিরিয়ে দিন এবং একই সেটিং ও একই বাস্তব উপকরণ দিয়ে Linux ড্রাইভারের একই কাজ ক্যাপচার করুন। সমতুল্য Linux রান ছাড়া শুধু রেফারেন্স ক্যাপচার থেকে ড্রাইভারের কোন কাজ আলাদা হয়েছে তা নির্ধারণ করা যায় না। রিপোজিটরির স্ক্যানার কমান্ড লেখকের সেটআপের উদাহরণ, সব ডিভাইসের জন্য সাধারণ কমান্ড নয়।
- তুলনা করে একটি অনুমান পরীক্ষা করুন। দুটি ট্রেস Wireshark-এ বা পদ্ধতির নথিতে থাকা
tsharkফিল্টার দিয়ে পড়ুন। সূচনার ট্রান্সফার, কাজের আগে-পরে হওয়া write, স্ট্যাটাস পোলিং ও bulk-transfer-এর সময় দেখুন। কোন ট্রান্সফার বদলায় জানতে একবারে একটি সেটিং, যেমন রেজোলিউশন, বদলান। AI সহকারীকে সম্ভাব্য পার্থক্যটি শনাক্ত করতে এবং তার ভিত্তি হিসেবে ক্যাপচার ও ফ্রেম উল্লেখ করতে বলুন। এরপর ড্রাইভারে সীমিত পরিবর্তন করুন বা প্রোব তৈরি করুন, এবং বাস্তব হার্ডওয়্যারে একই কাজ আবার করুন। মডেলের উত্তরে বিশ্বাসযোগ্য মনে হওয়া ব্যাখ্যা সাফল্যের সংকেত নয়।
সরাসরি পাওয়া ফল হলো লেবেল দেওয়া দুটি ক্যাপচার ফাইল এবং প্রথম অর্থবহ ভিন্নতার বিবরণ। সফল মেরামতের জন্য ডেভেলপারের নিজের পরীক্ষায় Linux ডিভাইসকে প্রত্যাশিত আউটপুটসহ ধারাবাহিকভাবে নির্দিষ্ট কাজটি করতে হবে। কয়েকটি বাইট মিলে যাওয়া বা একটি আংশিক ছবি তৈরি হওয়া সম্পূর্ণ ড্রাইভারের মান প্রমাণ করে না। Schaller-এর বিবরণে প্রথম চেনা যায় এমন স্ক্যানের পরও কাজ বাকি ছিল, আর তিনি কাজ করার সময় প্রধান SANE প্রকল্পে তাঁর স্ক্যানারের সমর্থন আলাদাভাবে আসে।
ট্রেস তুলনা করা কঠিন হলে কাজটি ছোট করুন এবং ডিভাইস, সেটিং ও ক্যাপচার স্তর মেলে কি না দেখুন। পদ্ধতিটি একটি প্রশ্নের উত্তর দেয় এমন ছোট ক্যাপচার এবং ডিভাইস সংযোগের একবারের ক্যাপচারের পরামর্শ দেয়। passthrough বা গেস্ট নিয়ন্ত্রণ ব্যর্থ হলে ফাঁকা ট্রেসকে ড্রাইভারের ত্রুটি বলার আগে harness doctor, hostdev status ও VM সেটআপ নির্দেশিকা ব্যবহার করুন। মূল ক্যাপচার ও নোট রাখুন, যাতে প্রস্তাবিত রেজিস্টার ধ্রুবকের উৎস দেখা কোনো ফ্রেম পর্যন্ত অনুসরণ করা যায়।
USB ট্রেসিংয়ের সীমা
অভ্যন্তরীণ MIPI ক্যামেরা হোস্টের USB রেকর্ডারকে একই ধরনের দরকারি ট্র্যাফিক দেখায় না। পদ্ধতির নথিতে তার বদলে Windows PnP বৈশিষ্ট্য, INF ফাইল, registry এন্ট্রি ও ACPI টেবিলের জন্য winctl probe এবং Linux-এর দিকের পরীক্ষায় hwdbg ব্যবহারের কথা বলা হয়েছে। Schaller বলেন, kernel ও libcamera প্যাচসহ এই ভিন্ন পথ তিনি নিজের ল্যাপটপ ক্যামেরায় প্রয়োগ করেছেন; ওই ফলও তাঁর নিজের বিবরণ থেকে আসে। ক্যামেরার ফলকে অন্য ডিভাইসে USB চক্র কাজ করেছে তার প্রমাণ হিসেবে ব্যবহার করবেন না।
তদন্তটি ডিভাইসের দেখা আচরণ এবং ঘোষণামূলক কনফিগারেশনের মধ্যে রাখুন। রিপোজিটরির clean-room নির্দেশিকা নির্মাতার বাইনারি ডিসঅ্যাসেম্বল করা বা তার কোড Linux ড্রাইভারে কপি করা এই পদ্ধতির বাইরে রাখে। এটি আরও সতর্ক করে যে ক্যাপচারে ডিভাইসের সিরিয়াল নম্বর থাকতে পারে এবং প্রকল্প ডিরেক্টরিতে ব্যক্তিগত SSH কি থাকে। AI পরিষেবায় দেওয়া বা প্রকাশ্যে শেয়ার করার আগে ট্রেস, ডিভাইস শনাক্তকারী ও গেস্টের ফাইল পরীক্ষা করুন; কি ও কাঁচা ক্যাপচার source control-এর বাইরে রাখুন। প্রকাশিত নির্দেশনা চেষ্টা করার একটি পদ্ধতি দেয়। BIG CHANGE নির্দিষ্ট রিভিশনে ব্লগ ও রিপোজিটরি পরীক্ষা করেছে, কিন্তু VM চালায়নি, ডিভাইসের ক্যাপচার নেয়নি বা তৈরি হওয়া ড্রাইভার যাচাই করেনি।
উৎস ও আরও পড়ুন
- Christian Schaller-এর ১৫ অক্টোবরের বিবরণ তাঁর স্ক্যানার ও ল্যাপটপের কাজ, Claude-কে তিনি যে ভূমিকা দেন এবং বিশেষ স্ক্রিপ্টের পরে শেয়ার করা harness আসার কারণ ব্যাখ্যা করে। স্ক্যানারের ফল তাঁর নিজস্ব রিপোর্ট; এই নিবন্ধে স্বাধীনভাবে পুনরুৎপাদন করা হয়নি।
- hw-harness রিপোজিটরি টুল, Fedora ও Windows-এর পূর্বশর্ত, উদাহরণ সেটআপ এবং প্রকল্পের গোপনীয়তা সতর্কতা বর্ণনা করে। BIG CHANGE পরীক্ষা করেছে commit
093afc5c576c200f29b771d01624a327d0ff1806, যার তারিখ ১৪ অক্টোবর ২০২৬; রিপোজিটরি MIT লাইসেন্সে রয়েছে এবং ওই রিভিশনের পরে বদলাতে পারে। - পদ্ধতি বেসলাইন, রেফারেন্স, Linux তুলনা ও পুনরাবৃত্তির চক্র, ক্যাপচারের সতর্কতা, USB ট্রেস পড়া এবং হোস্টের কাছে দৃশ্যমান বাস নেই এমন ডিভাইসের আলাদা পথ নির্ধারণ করে।
- Windows রেফারেন্স VM সেটআপ গেস্টে প্রবেশ, USB passthrough এবং RDP নিয়ন্ত্রণে Windows Pro ও Home-এর পার্থক্য নিয়ে আলোচনা করে। নিজের ইনস্টলেশনের লাইসেন্সের শর্ত দেখুন।
- Clean-room-এর সীমা প্রকল্পের পর্যবেক্ষণভিত্তিক চর্চা, নির্মাতার বাইনারি নিয়ে সীমা এবং ধ্রুবকের উৎস নথিভুক্ত করার প্রয়োজন তুলে ধরে। এটি প্রকল্পের প্রকৌশল নির্দেশনা, আইনি মতামত নয়।



