এটা নিয়ে অনেকদিন যন্ত্রণায় ছিলাম। এবার বাংলাদেশ ওপেন সোর্স নেটওয়ার্ক এটার একটা হেস্তনেস্ত করতে চাচ্ছে। কারণ ইতিমধ্যে অনেকে এটা ব্যবহার করছেন। আর তাদেরকে, বিশেষ করে সরকারী প্রতিষ্ঠানগুলোকে ওপেনসোর্সে মাইগ্রেট করা যাচ্ছে না যতক্ষণ পর্যন্ত এ ব্যাপারে একটা সমাধান দেয়া না যায়।
সমস্যাটা এরকম। যখন কেউ এতদিন ধরে উইন্ডোজে ব্যবহার করতে থাকা মবিডাটা মডেম উবুন্টুতে লাগান, সে দেখায় সে কোন মডেম পায়নি। অর্থাত সে মডেমকে চিনতে পরছেনা। অপারেটিং সিস্টেমে যেকোন ডিভাইসকে চেনার জন্য ডিভাইস আইডি লাগে। যেমন এখন আমি মবিডাটা যদি লাগাই আমার মেশিনে এবং তারপর lsusb কমানড চালিয়ে দেখি ইউএসবি পোর্টে কি কি ডিভাইস লাগানো আছে তাহলে একটি ই ডিভাইস আইডি পাবো সেটা হল 0x10CE, 0xEA6A. এখন দেখি লিনাক্স কি বলে? এসব বিষয় লিনাক্সের সোর্সকোডের যে ফাইলটি হ্যান্ডেল করে তার নাম cp2101.c । এটি থাকে কার্নেল/drivers/usb/serial/cp2101.c ডিরেক্টরীতে।
মজার ব্যাপার হল এই ফাইলে ১০০ নম্বর লাইনে মবিডাটা মডেম কে চিনিয়ে দেয়া আছে। লাইনটি এমন:
{ USB_DEVICE(0x10C5, 0xEA61) }, /* Silicon Labs MobiData GPRS USB Modem */
দেখেন ডিভাইস আইডি কিন্তু 0x10CE, 0xEA6A না! তাহলে এটাই আসল কালপ্রিট। ১০০ নম্বর লাইনটি যদি এমন হত
{ USB_DEVICE(0x10CE, 0xEA6A) }, /* Silicon Labs MobiData GPRS USB Modem */
তাহলে ঠিকই উবুন্টু মবিডাটা মডেমকে চিনতে পারত। এখন এটা আমাদেরকে ঠিক করতে হবে।
একটি স্বল্পমেয়াদী সমাধান হল প্যাচ লিখে ফেলা। কিন্তু মূলত যেটা করতে হবে যে ব্যাটারা এই সোর্সফাইলটি মেইনটেইন করে তাদেরকে দিয়ে ঠিক করাতে হবে। তাহলে এটা পরের কার্নেলের সাথে সমাধান হিসেবে চলে আসবে।
আপনারা যে যেই লিনাক্স ফোরামে মেম্বার সেখানে আলাপ করুন এবং জানান যে কোডের একটা সামান্য ভুলের জন্য বাংলাদেশের অনেক ব্যক্তি ও প্রতিষ্ঠান ওপেনসোর্সে মাইগ্রেট করতে পারছেনা (সংস্কৃতি মন্ত্রণালয় ২৫টি মবিডাটা কিনে বসে আছে)। আসুন সবাই মিলে ওদের চাপ দেই।