يوليو 06، 2011

إعداد الموديم Huawei E153 يدويا على نظام غنو/لينكس

Modem Huawei E153 هو موديم من الجيل الثالث (3G) يتعرف عليه مدير التشبيك NetworkManager تلقائيا من على أبونتو لينكس 10.10 Ubuntu Linux فما فوق أو دبيان غنو/لينكس 6 Debian GNU/Linux وقد شرحت ذلك سابقا هنا.

قبل يومين كنت أبحث عن طريقة لتشغيله على نظامي OpenBSD 4.9 و FreeBSD 8.2 و للأسف لم أنجح حينها لسببين: عدم تمكني من تحديد المنفذ الفعلي الذي يستعمله هذا المودم لربط الإتصال مع مزود الخدمة، و لجهلي بصيغة رسالة الوصل بين المودم و مزود الخدمة "إتصالات المغرب". صيغة رسالة الوصل تأتي مع إعدادات تعريف نظام ويندوز المدمج مع المودم على شاكلة قرص  CD-ROM وهمي.

بعدها قررت أن أبحث أولا عن طريقة لتشغيله يدويا على غنو/لينكس من دون الإعتماد على مدير التشبيك و من ثم سأأقلم الطريقة لتعمل مع نظامي BSD.

بإختصار لم أجد أي شيء مفيد يخص الإعداد اليدوي من سطر الأوامر لمودم Huawei e153، عثرت فقط على من لم يصل إلى حل معه. قلت لا بأس، لن أتراجع حتى لو إضطررت إلى قراءة الكود المصدري لمدير التشبيك. جيد، لأبدأ بأداة usb_modeswitch.

وصلت المودم بمنفذ usb، انتظرت بضع ثوان ثم نفذت الأمر  lsusb  لعرض العتاد المتعرف عليه فلمحت:
Bus 002 Device 011: ID 12d1:14ac Huawei Technologies Co., Ltd. 

ما يهمني هو ذلك المعرف المشار إليه باللون الأحمر. بحثت في ملفات إعدادات usb-modeswitch-data لكن لم أعثر على ملف إعدادات مستقل يخص المُعَرف 12d1:14ac

ملف الإعدادات ذاك ضروري لمعرفة الطريقة التي يمكن تحويل بها نمط المودم من قرص cd-rom إلى موديم فعلي.

بعدها سحبت الموديم ثم نفدت الأمر tail -f /var/log/messages لألتقط كل رسائل و مخرجات النظام عندما أصل المودم على منفذ usb من جديد.

وها أنا ألمح:
ubuntu usb_modeswitch: switching 12d1:1446 (HUAWEI Technology: HUAWEI Mobile)

المعرف مختلف!

بحثت من جديد في ملفات إعدادات usb-modeswitch-data عن المعرف 12d1:1446 لأجده موجودا و فيه المعلومة التي أبحث عنها:
MessageContent="55534243123456780000000000000011062000000100000000000000000000"

بعدها أنشأت ملف تحويل النمط عند الوصل:
sudo nano -w  /etc/udev/rules.d/10-huawei-e153

و وضعت فيه
SUBSYSTEM=="usb", SYSFS{idVendor}=="12d1", SYSFS{idProduct}=="14ac", RUN+="/usr/sbin/usb_modeswitch --default-vendor 0x12d1 --default-product 0x1446 --message-content  "55534243123456780000000000000011062000000100000000000000000000"

بعدها نفذت الأمر sudo udevadm control --reload-rules حتى تتجدد قواعد الإعدادات التلقائية للعتاد الذي يحتاج إلى خطوات تجهيز إضافية. المسؤول عن عن هذه المهمة هو udev. راجع هذا الموضوع للإستزادة عن أهم آليات نظام غنو/لينكس.


طبعا كل ما سبق ليس ضروريا لعمل الموديم على أبونتو 10.10 فما فوق لأنه يتكفل بالتحويل التلقائي لنمط عمل الموديم.


الآن حان وقت كتابة ملف الإتصال بمزود الخدمة و تحديد منفذ الوصل.

تنفيذ الأمر cat /var/log/messages | grep -i ttyU سيعرض وجود أربعة منافد، واحد فقط هو من سيصلح لربط الإتصال.
usb 2-2: GSM modem (1-port) converter now attached to ttyUSB0
usb 2-2: GSM modem (1-port) converter now attached to ttyUSB1
usb 2-2: GSM modem (1-port) converter now attached to ttyUSB2
usb 2-2: GSM modem (1-port) converter now attached to ttyUSB3


لنكتب ملف الإتصال:
sudo nano -w /etc/wvdial.conf

و سنضع فيه:
[Dialer Defaults]

[Dialer iam]
Modem = /dev/ttyUSB0
Phone = *99#
Init1=ATZ
#Init2=ATE0V1&D2&C1S0=0
Init3 = AT+CGDCONT=1,"IP","www.iamgprs2.ma"
Username = "gprs"
Password = "gprs"
Stupid Mode = 1
Baud = 921600
ISDN = 0

لأشرح ما سبق:
* Dialer iam إسم الإتصال من عندي و سنستعمله بعد قليل.
* /dev/ttyUSB0 المنفد المستخدم للوصل مع مزود الخدمة.
* *99# رقم الإتصال مع المزود. أحيانا قد نحتاج إستخدام الرقم *99***1#
* #Init2=ATE0V1&D2&C1S0=0 صيغة رسالة الربط الثانية و قد عطلتها عمدا بإضافة # في أول السطر لأن هذه الصيغة في الغالب لم تعد ضرورية. تركنها فقط كتلميح.
* www.iamgprs2.ma نقطة الوصل APN و هي تتغير حسب مزود الخدمة
* "gprs" ثم اسم المستخدم و كلمة السر الإفتراضية المستخدمة من طرف مزود الخدمة.


بعد ننفذ ما يلي لتجربة الإتصال:
sudo route del default
sudo wvdial iam &


إذا كان المنفد صحيح (أي ttyU) فسنتوصل برسالة شبيه بـ
--> Carrier detected.  Starting PPP immediately.
--> Starting pppd at Wed Jul  6 12:18:06 2011
--> Pid of pppd: 26569
--> Using interface ppp0
--> pppd: ���[08]
--> pppd: ���[08]
--> local  IP address 10.203.88.237
--> pppd: ���[08]
--> remote IP address 10.64.64.64
--> pppd: ���[08]
--> primary   DNS address 212.217.0.1
--> pppd: ���[08]
--> secondary DNS address 212.217.0.12
--> pppd: ���[08]

و إلا فستكون الرسالة في حالة الفشل : --> Modem not responding.


و فعلا المنفذ المستخدم على هذا الموديم هو /dev/ttyUSB0

لأكمل بعدها طريقي في إيجاد حل على نظام OpenBSD و FreeBSD.



على الهامش:
لتهيئة المودم:
sudo usb_modeswitch -v 12d1 -p 14ac -R

لعرض تفاصيل الموديم كعتاد:
lsusb -v -d 12d1:14ac


مصادر يمكن الإستفادة منها:
https://wiki.ubuntu.com/NetworkManager/Hardware/3G
https://wiki.ubuntu.com/NetworkManager/Hardware/3G/Probing
USB_ModeSwitch - Handling Mode-Switching USB Devices on Linux
How To : Mobile Broadband Connections [ Ubuntu 10.10 : 10.04 : 9.10 ]
https://wiki.ubuntu.com/MoroccanTeam/Modems
bayn : configurer le modem Huawei E-325 sous GNU/Linux

ليست هناك تعليقات:

إرسال تعليق