حصلت من صديق على مودم جديد لمزود الخدمة inwi من فئة LG LDU-800 و هو أيضا مودم من الجيل الثالث (USB 3G Modem) ،فبحثت عن حل لطريقة إعداده على نظام OpenBSD و نظام FreeBSD مستفيدا من تجاربي السابقة و من بعض المصادر على الشبكة.
على OpenBSD 4.9
1. نصل المودم بمنفذ usb ثم ننفذ أحد الأمرين لعرض مخرجات النظام المتعلقة به:
المخرجات ستكون كالتالي:
2. على نظام أوبن بي إس دي التعريف المكلف بهذا النوع من المودمات هو umodem و الإعداد و الوصل يتم عبر أداة ppp أو أداة pppd لكن هذه المرة اخترت السابقة.
سننشئ ثلاثة ملفات. الأول لربط الإتصال و هو كالتالي:
هذا الملف يضم:
* منفذ العتاد /dev/ttyU0
* صيغة الربط
* اسم و كلمة السر (wana wana) الإفتراضية لدى مزود الخدمة
* و كل ما يساعد من إعدادات لضمان إتصال مستقر.
الأجزاء المسبوقة بعلامة # متروكة كمرجع و لا تأثير لها.
لمعرفة المنافد المتاحة نفد أحد الأمرين:
الملف الثاني يحدد مفرز أسماء الشبكة على الإنترنت (dns). هذا الأخير يمكن تغييره بخادوم غوغل (8.8.8.8 و 8.8.4.4) أو خادوم أوبن دي إن إس (208.67.222.222 و 208.67.220.220)
الملف الثالث يضمن إستعادة الملف /etc/resolv.conf الذي يضم عناوين خوادم فرز الأسماء إلى حالته السابقة، ثم إزالة كل اعدادات بظاقة المودم على النظام
3. الآن إفتح نافدتين لعرض مخرجات الوصل (فقط للتأكد من أننا نجحنا أم لا)
نفذ على الأولى:
ثم لربط الإتصال بمزود الخدمة نفذ:
الآن على نافدتي المخرجات سنتوصل بكل ما يجري:
الآن إختبر الوصول إلى الأنترنت بالتصفح أو بتنفيذ الامر:
لاحظ جيدا أني استخدمت أداة ppp بمعيار -ddial بمعنى أنها ستتصل ثم ستبقى في الخلفية تراقب الإتصال و تضمن تجديد الربط في حالة إنقطاعه. هذه الطريقة جيدة في حالة نجاحك في الربط لكن ستزعجك إن لم تكن قد نجحت في إعداد الموديم من قبل.
على العموم لقطع الإتصال، و إنهاء عمل ppp و إزالة كل الإعدادات المتعلقة بالموديم، أزل هذا الأخير ثم نفذ:
تذكر: للوصل بمزود الخدمة يدويا قم بوصل الودم و انتظر لبضع ثوان ثو نفذ:
الربط التلقائي عند الوصل ممكن بواسطة آلية hotplugd لكن إعداده أصعب مقارنة مع devd على فري بي إس دي:
هذا مثال :
* ننشئ ملف السكريبت التالي
ثم نضع فيه:
ثم نعطيه صلاحية التشغيل:
ثم نشغل خدمة hotplugd
و لكي تشتغل خدمة hotplugd تلقائيا مع النظام سنضيفها إلى ملف إعدادات النظام rc.conf.local
من اﻵن فصاعدا سيتم الربط تلقائيا بالشبكة عند وصل المودم.
على FreeBSD 8.2
1. علينا تشغيل وحدة النواة المكلفة بالتعرف عليه
و بعدها سنصل المودم بمنفد usb ثم ننفذ ما يلي:
المخرجات ستكون كالتالي:
في حالة عدم تشغيل وحدة umodem ستكون المخرجات كالتالي:
و حتى نتفادى تشغيل تلك الوحدة يدويا كلما احتجنا إلى الإتصال، سنضيفها على ملف إعدادات إقلاع نواة النظام بتنفيذ:
2. على نظام فري بي إس دي التعريف المكلف بهذا النوع من المودمات هو umodem و الإعداد و الوصل يتم عبر أداة ppp.
سننشئ ثلاثة ملفات. الأول لربط الإتصال و هو كالتالي:
هذا الملف يضم:
* منفذ العتاد /dev/ttyU0
* صيغة الربط
* اسم و كلمة السر (wana wana) الإفتراضية لدى مزود الخدمة
* و كل ما يساعد من إعدادات لضمان إتصال مستقر.
كل شيء موثق جيدا هنا و هنا.
الأجزاء المسبوقة بعلامة # متروكة كمرجع و لا تأثير لها.
لمعرفة المنافد المتاحة نفد أحد الأمرين:
الملف الثاني يحدد مسار الخروج الإفتراضي (route) و يحدد مفرز أسماء الشبكة على الإنترنت (dns). هذا الأخير يمكن تغييره بخادوم غوغل (8.8.8.8 و 8.8.4.4) أو خادوم أوبن دي إن إس (208.67.222.222 و 208.67.220.220)
الملف الثالث يضمن إستعادة الملف /etc/resolv.conf الذي يضم عناوين خوادم فرز الأسماء إلى حالته السابقة، ثم إزالة مسار الخروج الإفتراضي
3. الآن إفتح نافدتين لعرض مخرجات الوصل (فقط للتأكد من أننا نجحنا أم لا)
نفذ على الأولى:
ثم لربط الإتصال بمزود الخدمة نفذ:
الآن على نافدتي المخرجات سنتوصل بكل ما يجري:
الآن إختبر الوصول إلى الأنترنت بالتصفح أو بتنفيذ الامر:
لاحظ جيدا أني استخدمت أداة ppp بمعيار -ddial بمعنى أنها ستتصل ثم ستبقى في الخلفية تراقب الإتصال و تضمن تجديد الربط في حالة إنقطاعه. هذه الطريقة جيدة في حالة نجاحك في الربط لكن ستزعجك إن لم تكن قد نجحت في إعداد الموديم من قبل.
على العموم لقطع الإتصال، و إنهاء عمل ppp و إزالة كل الإعدادات المتعلقة بالموديم، أزل هذا الأخير ثم نفذ:
بالنسبة للربط التلقائي عند الوصل فسنستخدم آلية devd
devd تحتاج إلى معرفة معرفات العتاد لتنفد عملية معينة عندما يوصل هذا الأخير.
معرفات LG LDU-800 سنجدها على مخرجات الأمر tail -f /var/log/messages عند وصله، و هي كالتالي:
سنفتح الملف
و سنضيف إلى آخره ما يلي:
ثم سنعيد تشغيل خدمة devd:
من الآن فصاعدا كلما وصلت الموديم LG LDU-800 بالمعرف 0x605e و المصنع 0x1004 سيتم الإنتظار لمدة 20 ثانية ليكتمل الموديم من تحضير نفسه ثم ليبدأ بعدها الوصل بمزود الخدمة.
مصادر و مراجع :
.
على OpenBSD 4.9
1. نصل المودم بمنفذ usb ثم ننفذ أحد الأمرين لعرض مخرجات النظام المتعلقة به:
dmesg | grep -i "lg electro"أو
tail /var/log/messages
المخرجات ستكون كالتالي:
pufy /bsd: umodem0 at uhub4 /bsd: port 1 configuration 1 interface 0 "LG Electronics Inc. LG EV-DO USB MODEM" rev 1.10/0.00 addr 2 pufy /bsd: umodem0: data interface 1, has CM over data, has break pufy /bsd: umodem0: status change notification available pufy /bsd: ucom0 at umodem0 pufy /bsd: umodem1 at uhub4 pufy /bsd: port 1 configuration 1 interface 2 "LG Electronics Inc. LG EV-DO USB MODEM" rev 1.10/0.00 addr 2 pufy /bsd: umodem1: data interface 3, has CM over data, has break pufy /bsd: umodem1: status change notification available pufy /bsd: ucom1 at umodem1 pufy /bsd: umodem2 at uhub4 pufy /bsd: port 1 configuration 1 interface 4 "LG Electronics Inc. LG EV-DO USB MODEM" rev 1.10/0.00 addr 2 pufy /bsd: umodem2: data interface 5, has CM over data, has break pufy /bsd: umodem2: status change notification available pufy /bsd: ucom2 at umodem2
2. على نظام أوبن بي إس دي التعريف المكلف بهذا النوع من المودمات هو umodem و الإعداد و الوصل يتم عبر أداة ppp أو أداة pppd لكن هذه المرة اخترت السابقة.
سننشئ ثلاثة ملفات. الأول لربط الإتصال و هو كالتالي:
nano -w /etc/ppp/ppp.conf
default: ident user-ppp set log Phase Chat LCP IPCP CCP connect tun command wana_lg800: set device /dev/ttyU0 #set device /dev/cuaU0 set speed 115200 set timeout 0 set authname "wana" set authkey "wana" set dial "ABORT BUSY TIMEOUT 2 \ \"\" \ AT OK-AT-OK \ ATDT#777 CONNECT" set crtscts on disable vjcomp disable acfcomp disable deflate disable deflate24 disable pred1 disable protocomp disable mppe disable ipv6cp disable lqr disable echo nat enable yes set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0 add default HISADDR enable dns resolv writable set dns 208.67.220.220 208.67.222.222
هذا الملف يضم:
* منفذ العتاد /dev/ttyU0
* صيغة الربط
* اسم و كلمة السر (wana wana) الإفتراضية لدى مزود الخدمة
* و كل ما يساعد من إعدادات لضمان إتصال مستقر.
الأجزاء المسبوقة بعلامة # متروكة كمرجع و لا تأثير لها.
لمعرفة المنافد المتاحة نفد أحد الأمرين:
ls -l /dev/ttyU* ls -l /dev/cuaU*
الملف الثاني يحدد مفرز أسماء الشبكة على الإنترنت (dns). هذا الأخير يمكن تغييره بخادوم غوغل (8.8.8.8 و 8.8.4.4) أو خادوم أوبن دي إن إس (208.67.222.222 و 208.67.220.220)
nano -w /etc/ppp/ppp.linkup
wana_lg800: !bg sh -c "echo 'nameserver 192.168.60.58' > /etc/resolv.conf" !bg sh -c "echo 'nameserver 192.168.50.55' >> /etc/resolv.conf"
الملف الثالث يضمن إستعادة الملف /etc/resolv.conf الذي يضم عناوين خوادم فرز الأسماء إلى حالته السابقة، ثم إزالة كل اعدادات بظاقة المودم على النظام
nano -w /etc/ppp/ppp.linkdown
default: shell logger "LABEL down (up UPTIME): OCTETSIN received, OCTETSOUT sent" wana_lg800: resolv restore iface clear
3. الآن إفتح نافدتين لعرض مخرجات الوصل (فقط للتأكد من أننا نجحنا أم لا)
نفذ على الأولى:
tail -f /var/log/messagesعلى الثانية نفذ:
tail -f /var/log/ppp.log
ثم لربط الإتصال بمزود الخدمة نفذ:
ppp -ddial wana_lg800
الآن على نافدتي المخرجات سنتوصل بكل ما يجري:
pufy ppp[8050]: Phase: Using interface: tun0 pufy ppp[8050]: Phase: deflink: Created in closed state pufy ppp[8050]: tun0: Command: wana: set device /dev/ttyU0 pufy ppp[8050]: tun0: Command: wana: set speed 115200 pufy ppp[8050]: tun0: Command: wana: set timeout 0 pufy ppp[8050]: tun0: Command: wana: set authname wana pufy ppp[8050]: tun0: Command: wana: set authkey ******** pufy ppp[8050]: tun0: Command: wana: set dial ABORT BUSY TIMEOUT 2 "" AT OK-AT-OK ATDT#777 CONNECT pufy ppp[8050]: tun0: Command: wana: set crtscts on pufy ppp[8050]: tun0: Command: wana: disable vjcomp pufy ppp[8050]: tun0: Command: wana: disable acfcomp pufy ppp[8050]: tun0: Command: wana: disable deflate pufy ppp[8050]: tun0: Command: wana: disable deflate24 pufy ppp[8050]: tun0: Command: wana: disable pred1 pufy ppp[8050]: tun0: Command: wana: disable protocomp pufy ppp[8050]: tun0: Command: wana: disable mppe pufy ppp[8050]: tun0: Command: wana: disable ipv6cp pufy ppp[8050]: tun0: Command: wana: disable lqr pufy ppp[8050]: tun0: Command: wana: disable echo pufy ppp[8050]: tun0: Command: wana: nat enable yes pufy ppp[8050]: tun0: Command: wana: set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0 pufy ppp[8050]: tun0: Command: wana: add default HISADDR pufy ppp[8050]: tun0: Command: wana: enable dns pufy ppp[8050]: tun0: Command: wana: resolv writable pufy ppp[8050]: tun0: Command: wana: set dns 208.67.220.220 208.67.222.222 pufy ppp[20150]: tun0: Phase: PPP Started (ddial mode). pufy ppp[20150]: tun0: Phase: bundle: Establish pufy ppp[20150]: tun0: Phase: deflink: closed -> opening pufy ppp[20150]: tun0: Phase: deflink: Connected! pufy ppp[20150]: tun0: Phase: deflink: opening -> dial pufy ppp[20150]: tun0: Chat: Send: AT\^M pufy ppp[20150]: tun0: Chat: Expect(2): OK pufy ppp[20150]: tun0: Chat: Received: \^M pufy ppp[20150]: tun0: Chat: Received: OK\^M pufy ppp[20150]: tun0: Chat: Send: ATDT#777\^M pufy ppp[20150]: tun0: Chat: Expect(2): CONNECT pufy ppp[20150]: tun0: Chat: Received: \^M pufy ppp[20150]: tun0: Chat: Received: CONNECT\^M pufy ppp[20150]: tun0: Phase: deflink: dial -> carrier pufy ppp[20150]: tun0: Phase: deflink: /dev/ttyU0: CD detected pufy ppp[20150]: tun0: Phase: deflink: carrier -> login pufy ppp[20150]: tun0: Phase: deflink: login -> lcp pufy ppp[20150]: tun0: LCP: FSM: Using "deflink" as a transport pufy ppp[20150]: tun0: LCP: deflink: State change Initial --> Closed pufy ppp[20150]: tun0: LCP: deflink: State change Closed --> Stopped pufy ppp[20150]: tun0: LCP: deflink: LayerStart pufy ppp[20150]: tun0: LCP: deflink: SendConfigReq(1) state = Stopped pufy ppp[20150]: tun0: LCP: ACCMAP[6] 0x00000000 pufy ppp[20150]: tun0: LCP: MRU[4] 1500 pufy ppp[20150]: tun0: LCP: MAGICNUM[6] 0x17b3a610 pufy ppp[20150]: tun0: LCP: deflink: State change Stopped --> Req-Sent pufy ppp[20150]: tun0: LCP: deflink: RecvConfigReq(1) state = Req-Sent pufy ppp[20150]: tun0: LCP: ACCMAP[6] 0x00000000 pufy ppp[20150]: tun0: LCP: AUTHPROTO[5] 0xc223 (CHAP 0x05) pufy ppp[20150]: tun0: LCP: MAGICNUM[6] 0x022729c0 pufy ppp[20150]: tun0: LCP: PROTOCOMP[2] pufy ppp[20150]: tun0: LCP: ACFCOMP[2] pufy ppp[20150]: tun0: LCP: deflink: SendConfigAck(1) state = Req-Sent pufy ppp[20150]: tun0: LCP: ACCMAP[6] 0x00000000 pufy ppp[20150]: tun0: LCP: AUTHPROTO[5] 0xc223 (CHAP 0x05) pufy ppp[20150]: tun0: LCP: MAGICNUM[6] 0x022729c0 pufy ppp[20150]: tun0: LCP: PROTOCOMP[2] pufy ppp[20150]: tun0: LCP: ACFCOMP[2] pufy ppp[20150]: tun0: LCP: deflink: State change Req-Sent --> Ack-Sent pufy ppp[20150]: tun0: LCP: deflink: RecvConfigAck(1) state = Ack-Sent pufy ppp[20150]: tun0: LCP: ACCMAP[6] 0x00000000 pufy ppp[20150]: tun0: LCP: MRU[4] 1500 pufy ppp[20150]: tun0: LCP: MAGICNUM[6] 0x17b3a610 pufy ppp[20150]: tun0: LCP: deflink: State change Ack-Sent --> Opened pufy ppp[20150]: tun0: LCP: deflink: LayerUp pufy ppp[20150]: tun0: LCP: deflink: SendIdent(0) state = Opened pufy ppp[20150]: tun0: LCP: MAGICNUM 17b3a610 pufy ppp[20150]: tun0: LCP: TEXT user-ppp pufy ppp[20150]: tun0: Phase: bundle: Authenticate pufy ppp[20150]: tun0: Phase: deflink: his = CHAP 0x05, mine = none pufy ppp[20150]: tun0: Phase: Chap Input: CHALLENGE (16 bytes) pufy ppp[20150]: tun0: Phase: Chap Output: RESPONSE (wana) pufy ppp[20150]: tun0: LCP: deflink: RecvCodeRej(1) state = Opened pufy ppp[20150]: tun0: Phase: Chap Input: SUCCESS pufy ppp[20150]: tun0: IPCP: Using trigger address 0.0.0.0 pufy ppp[20150]: tun0: CCP: FSM: Using "deflink" as a transport pufy ppp[20150]: tun0: CCP: deflink: State change Initial --> Closed pufy ppp[20150]: tun0: CCP: deflink: State change Closed --> Stopped pufy ppp[20150]: tun0: Phase: deflink: lcp -> open pufy ppp[20150]: tun0: Phase: bundle: Network pufy ppp[20150]: tun0: IPCP: FSM: Using "deflink" as a transport pufy ppp[20150]: tun0: IPCP: deflink: State change Initial --> Closed pufy ppp[20150]: tun0: IPCP: deflink: LayerStart. pufy ppp[20150]: tun0: IPCP: deflink: SendConfigReq(1) state = Closed pufy ppp[20150]: tun0: IPCP: IPADDR[6] 0.0.0.0 pufy ppp[20150]: tun0: IPCP: PRIDNS[6] 208.67.220.220 pufy ppp[20150]: tun0: IPCP: SECDNS[6] 208.67.222.222 pufy ppp[20150]: tun0: IPCP: deflink: State change Closed --> Req-Sent pufy ppp[20150]: tun0: IPCP: deflink: RecvConfigReq(1) state = Req-Sent pufy ppp[20150]: tun0: IPCP: IPADDR[6] 192.168.181.12 pufy ppp[20150]: tun0: IPCP: deflink: SendConfigAck(1) state = Req-Sent pufy ppp[20150]: tun0: IPCP: IPADDR[6] 192.168.181.12 pufy ppp[20150]: tun0: IPCP: deflink: State change Req-Sent --> Ack-Sent pufy ppp[20150]: tun0: IPCP: deflink: RecvConfigNak(1) state = Ack-Sent pufy ppp[20150]: tun0: IPCP: IPADDR[6] 10.43.70.3 pufy ppp[20150]: tun0: IPCP: IPADDR[6] changing address: 0.0.0.0 --> 10.43.70.3 pufy ppp[20150]: tun0: IPCP: deflink: SendConfigReq(2) state = Ack-Sent pufy ppp[20150]: tun0: IPCP: IPADDR[6] 10.43.70.3 pufy ppp[20150]: tun0: IPCP: PRIDNS[6] 208.67.220.220 pufy ppp[20150]: tun0: IPCP: SECDNS[6] 208.67.222.222 pufy ppp[20150]: tun0: IPCP: deflink: RecvConfigAck(2) state = Ack-Sent pufy ppp[20150]: tun0: IPCP: IPADDR[6] 10.43.70.3 pufy ppp[20150]: tun0: IPCP: PRIDNS[6] 208.67.220.220 pufy ppp[20150]: tun0: IPCP: SECDNS[6] 208.67.222.222 pufy ppp[20150]: tun0: IPCP: deflink: State change Ack-Sent --> Opened pufy ppp[20150]: tun0: IPCP: deflink: LayerUp. pufy ppp[20150]: tun0: IPCP: myaddr 10.43.70.3 hisaddr = 192.168.181.12 pufy ppp[20150]: tun0: Command: wana: !bg sh -c echo 'nameserver 192.168.60.58\\nnameserver 192.168.50.55' > /etc/resolv.conf pufy ppp[20150]: tun0: Warning: 0.0.0.0/0: Change route failed: errno: No such process pufy ppp[20150]: tun0: Warning: ff01:7::/32: Change route failed: errno: Network is unreachable pufy ppp[20150]: tun0: Warning: ff02:7::/32: Change route failed: errno: Network is unreachable pufy ppp[20150]: tun0: Warning: ff02:7::/32: Change route failed: errno: Network is unreachable
الآن إختبر الوصول إلى الأنترنت بالتصفح أو بتنفيذ الامر:
ping -c 3 google.com
لاحظ جيدا أني استخدمت أداة ppp بمعيار -ddial بمعنى أنها ستتصل ثم ستبقى في الخلفية تراقب الإتصال و تضمن تجديد الربط في حالة إنقطاعه. هذه الطريقة جيدة في حالة نجاحك في الربط لكن ستزعجك إن لم تكن قد نجحت في إعداد الموديم من قبل.
على العموم لقطع الإتصال، و إنهاء عمل ppp و إزالة كل الإعدادات المتعلقة بالموديم، أزل هذا الأخير ثم نفذ:
pkill -9 ppp ifconfig tun0 destroy route flush
تذكر: للوصل بمزود الخدمة يدويا قم بوصل الودم و انتظر لبضع ثوان ثو نفذ:
ppp -ddial wana_lg800
الربط التلقائي عند الوصل ممكن بواسطة آلية hotplugd لكن إعداده أصعب مقارنة مع devd على فري بي إس دي:
هذا مثال :
* ننشئ ملف السكريبت التالي
nano -w /etc/hotplug/attach
ثم نضع فيه:
#!/bin/sh DEVCLASS=$1 DEVNAME=$2 if [ $DEVNAME == "umodem2" ]; then if [ -z `usbdevs | grep -i "LG EV-DO USB MODEM"` ]; then sleep 20 ppp -ddial wana_lg800 fi fi
ثم نعطيه صلاحية التشغيل:
chmod +x /etc/hotplug/attach
ثم نشغل خدمة hotplugd
/usr/sbin/hotplugd &
و لكي تشتغل خدمة hotplugd تلقائيا مع النظام سنضيفها إلى ملف إعدادات النظام rc.conf.local
echo "hotplugd_flags=YES" >> /etc/rc.conf.local
من اﻵن فصاعدا سيتم الربط تلقائيا بالشبكة عند وصل المودم.
على FreeBSD 8.2
1. علينا تشغيل وحدة النواة المكلفة بالتعرف عليه
kldload -v umodem
و بعدها سنصل المودم بمنفد usb ثم ننفذ ما يلي:
dmesg | grep -i "lg electro"أو
tail /var/log/messages
المخرجات ستكون كالتالي:
freedy root: Unknown USB device: vendor 0x0483 product 0x2016 bus uhub1 freedy kernel: ugen3.2:at usbus3 freedy kernel: umodem0: on usbus3 freedy kernel: umodem0: data interface 1, has CM over data, has break freedy kernel: umodem1: on usbus3 freedy kernel: umodem1: data interface 3, has CM over data, has break freedy kernel: umodem2: on usbus3 freedy kernel: umodem2: data interface 5, has CM over data, has break
في حالة عدم تشغيل وحدة umodem ستكون المخرجات كالتالي:
freedy kernel: ugen3.2:at usbus3 freedy root: Unknown USB device: vendor 0x1004 product 0x605e bus uhub3
و حتى نتفادى تشغيل تلك الوحدة يدويا كلما احتجنا إلى الإتصال، سنضيفها على ملف إعدادات إقلاع نواة النظام بتنفيذ:
echo 'umodem_load="YES"' >> /boot/loader.conf
2. على نظام فري بي إس دي التعريف المكلف بهذا النوع من المودمات هو umodem و الإعداد و الوصل يتم عبر أداة ppp.
سننشئ ثلاثة ملفات. الأول لربط الإتصال و هو كالتالي:
ee /etc/ppp/ppp.conf
default: set log Phase Chat Connect LCP IPCP CCP tun command ident user-ppp VERSION wana_lg800: set device /dev/ttyU0 set speed 115200 set timeout 0 set authname "wana" set authkey "wana" #set phone PHONE_NUM #set device /dev/cuaU0 #set speed 921600 #set speed 384000 #set mtu maximum 296 #set mru maximum 296 set dial "ABORT BUSY TIMEOUT 2 \ \"\" \ AT OK-AT-OK \ ATDT#777 CONNECT" set crtscts on disable vjcomp disable acfcomp disable deflate disable deflate24 disable pred1 disable protocomp disable mppe disable ipv6cp disable lqr disable echo nat enable yes enable dns resolv writable set dns 208.67.220.220 208.67.222.222 # openDNS set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0 #add default HISADDR # See ppp.link*
هذا الملف يضم:
* منفذ العتاد /dev/ttyU0
* صيغة الربط
* اسم و كلمة السر (wana wana) الإفتراضية لدى مزود الخدمة
* و كل ما يساعد من إعدادات لضمان إتصال مستقر.
كل شيء موثق جيدا هنا و هنا.
الأجزاء المسبوقة بعلامة # متروكة كمرجع و لا تأثير لها.
لمعرفة المنافد المتاحة نفد أحد الأمرين:
ls -l /dev/ttyU* ls -l /dev/cuaU*
الملف الثاني يحدد مسار الخروج الإفتراضي (route) و يحدد مفرز أسماء الشبكة على الإنترنت (dns). هذا الأخير يمكن تغييره بخادوم غوغل (8.8.8.8 و 8.8.4.4) أو خادوم أوبن دي إن إس (208.67.222.222 و 208.67.220.220)
ee /etc/ppp/ppp.linkup
wana_lg800: shell route delete default shell route add default -interface INTERFACE shell sh -c "echo 'nameserver 192.168.60.58' > /etc/resolv.conf" shell sh -c "echo 'nameserver 192.168.50.55' >> /etc/resolv.conf"
الملف الثالث يضمن إستعادة الملف /etc/resolv.conf الذي يضم عناوين خوادم فرز الأسماء إلى حالته السابقة، ثم إزالة مسار الخروج الإفتراضي
ee /etc/ppp/ppp.linkdown
default: shell logger "LABEL down (up UPTIME): OCTETSIN received, OCTETSOUT sent" wana_lg800: resolv restore shell route delete default
3. الآن إفتح نافدتين لعرض مخرجات الوصل (فقط للتأكد من أننا نجحنا أم لا)
نفذ على الأولى:
tail -f /var/log/messagesعلى الثانية نفذ:
tail -f /var/log/ppp.log
ثم لربط الإتصال بمزود الخدمة نفذ:
ppp -ddial wana_lg800
الآن على نافدتي المخرجات سنتوصل بكل ما يجري:
freedy ppp[3096]: Phase: Using interface: tun0 freedy ppp[3096]: Phase: deflink: Created in closed state freedy ppp[3096]: tun0: Command: default: ident user-ppp VERSION freedy ppp[3096]: tun0: Command: wana_lg800: set device /dev/ttyU0 freedy ppp[3096]: tun0: Command: wana_lg800: set speed 921600 freedy ppp[3096]: tun0: Command: wana_lg800: set timeout 0 freedy ppp[3096]: tun0: Command: wana_lg800: set authname wana freedy ppp[3096]: tun0: Command: wana_lg800: set authkey ******** freedy ppp[3096]: tun0: Command: wana_lg800: set dial ABORT BUSY TIMEOUT 2 "" AT OK-AT-OK ATDT#777 CONNECT freedy ppp[3096]: tun0: Command: wana_lg800: set crtscts on freedy ppp[3096]: tun0: Command: wana_lg800: disable vjcomp freedy ppp[3096]: tun0: Command: wana_lg800: disable acfcomp freedy ppp[3096]: tun0: Command: wana_lg800: disable deflate freedy ppp[3096]: tun0: Command: wana_lg800: disable deflate24 freedy ppp[3096]: tun0: Command: wana_lg800: disable pred1 freedy ppp[3096]: tun0: Command: wana_lg800: disable protocomp freedy ppp[3096]: tun0: Command: wana_lg800: disable mppe freedy ppp[3096]: tun0: Command: wana_lg800: disable ipv6cp freedy ppp[3096]: tun0: Command: wana_lg800: disable lqr freedy ppp[3096]: tun0: Command: wana_lg800: disable echo freedy ppp[3096]: tun0: Command: wana_lg800: nat enable yes freedy ppp[3096]: tun0: Command: wana_lg800: enable dns freedy ppp[3096]: tun0: Command: wana_lg800: resolv writable freedy ppp[3096]: tun0: Command: wana_lg800: set dns 208.67.220.220 208.67.222.222 freedy ppp[3096]: tun0: Command: wana_lg800: set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0 freedy ppp[3098]: tun0: Phase: PPP Started (ddial mode). freedy ppp[3098]: tun0: Phase: bundle: Establish freedy ppp[3098]: tun0: Phase: deflink: closed -> opening freedy ppp[3098]: tun0: Phase: deflink: Connected! freedy ppp[3098]: tun0: Phase: deflink: opening -> dial freedy ppp[3098]: tun0: Chat: Send: AT^M freedy ppp[3098]: tun0: Chat: Expect(2): OK freedy ppp[3098]: tun0: Chat: Received: ^M freedy ppp[3098]: tun0: Chat: Received: OK^M freedy ppp[3098]: tun0: Chat: Send: ATDT#777^M freedy ppp[3098]: tun0: Chat: Expect(2): CONNECT freedy ppp[3098]: tun0: Chat: Received: ^M freedy ppp[3098]: tun0: Chat: Received: CONNECT^M freedy ppp[3098]: tun0: Phase: deflink: dial -> carrier freedy ppp[3098]: tun0: Phase: deflink: /dev/ttyU0: CD detected freedy ppp[3098]: tun0: Phase: deflink: carrier -> login freedy ppp[3098]: tun0: Phase: deflink: login -> lcp freedy ppp[3098]: tun0: LCP: FSM: Using "deflink" as a transport freedy ppp[3098]: tun0: LCP: deflink: State change Initial --> Closed freedy ppp[3098]: tun0: LCP: deflink: State change Closed --> Stopped freedy ppp[3098]: tun0: LCP: deflink: LayerStart freedy ppp[3098]: tun0: LCP: deflink: SendConfigReq(1) state = Stopped freedy ppp[3098]: tun0: LCP: ACCMAP[6] 0x00000000 freedy ppp[3098]: tun0: LCP: MRU[4] 1500 freedy ppp[3098]: tun0: LCP: MAGICNUM[6] 0x69044a57 freedy ppp[3098]: tun0: LCP: deflink: State change Stopped --> Req-Sent freedy ppp[3098]: tun0: LCP: deflink: RecvConfigReq(10) state = Req-Sent freedy ppp[3098]: tun0: LCP: ACCMAP[6] 0x00000000 freedy ppp[3098]: tun0: LCP: AUTHPROTO[5] 0xc223 (CHAP 0x05) freedy ppp[3098]: tun0: LCP: MAGICNUM[6] 0x02228f59 freedy ppp[3098]: tun0: LCP: PROTOCOMP[2] freedy ppp[3098]: tun0: LCP: ACFCOMP[2] freedy ppp[3098]: tun0: LCP: deflink: SendConfigAck(10) state = Req-Sent freedy ppp[3098]: tun0: LCP: ACCMAP[6] 0x00000000 freedy ppp[3098]: tun0: LCP: AUTHPROTO[5] 0xc223 (CHAP 0x05) freedy ppp[3098]: tun0: LCP: MAGICNUM[6] 0x02228f59 freedy ppp[3098]: tun0: LCP: PROTOCOMP[2] freedy ppp[3098]: tun0: LCP: ACFCOMP[2] freedy ppp[3098]: tun0: LCP: deflink: State change Req-Sent --> Ack-Sent freedy ppp[3098]: tun0: LCP: deflink: RecvConfigAck(1) state = Ack-Sent freedy ppp[3098]: tun0: LCP: ACCMAP[6] 0x00000000 freedy ppp[3098]: tun0: LCP: MRU[4] 1500 freedy ppp[3098]: tun0: LCP: MAGICNUM[6] 0x69044a57 freedy ppp[3098]: tun0: LCP: deflink: State change Ack-Sent --> Opened freedy ppp[3098]: tun0: LCP: deflink: LayerUp freedy ppp[3098]: tun0: LCP: deflink: SendIdent(0) state = Opened freedy ppp[3098]: tun0: LCP: MAGICNUM 69044a57 freedy ppp[3098]: tun0: LCP: TEXT user-ppp 3.4.2 freedy ppp[3098]: tun0: Phase: bundle: Authenticate freedy ppp[3098]: tun0: Phase: deflink: his = CHAP 0x05, mine = none freedy ppp[3098]: tun0: Phase: Chap Input: CHALLENGE (16 bytes) freedy ppp[3098]: tun0: Phase: Chap Output: RESPONSE (wana) freedy ppp[3098]: tun0: LCP: deflink: RecvCodeRej(10) state = Opened freedy ppp[3098]: tun0: Phase: Chap Input: SUCCESS freedy ppp[3098]: tun0: IPCP: Using trigger address 0.0.0.0 freedy ppp[3098]: tun0: CCP: FSM: Using "deflink" as a transport freedy ppp[3098]: tun0: CCP: deflink: State change Initial --> Closed freedy ppp[3098]: tun0: CCP: deflink: State change Closed --> Stopped freedy ppp[3098]: tun0: Phase: deflink: lcp -> open freedy ppp[3098]: tun0: Phase: bundle: Network freedy ppp[3098]: tun0: IPCP: FSM: Using "deflink" as a transport freedy ppp[3098]: tun0: IPCP: deflink: State change Initial --> Closed freedy ppp[3098]: tun0: IPCP: deflink: LayerStart. freedy ppp[3098]: tun0: IPCP: deflink: SendConfigReq(1) state = Closed freedy ppp[3098]: tun0: IPCP: IPADDR[6] 0.0.0.0 freedy ppp[3098]: tun0: IPCP: PRIDNS[6] 208.67.220.220 freedy ppp[3098]: tun0: IPCP: SECDNS[6] 208.67.222.222 freedy ppp[3098]: tun0: IPCP: deflink: State change Closed --> Req-Sent freedy ppp[3098]: tun0: IPCP: deflink: RecvConfigReq(10) state = Req-Sent freedy ppp[3098]: tun0: IPCP: IPADDR[6] 192.168.181.12 freedy ppp[3098]: tun0: IPCP: deflink: SendConfigAck(10) state = Req-Sent freedy ppp[3098]: tun0: IPCP: IPADDR[6] 192.168.181.12 freedy ppp[3098]: tun0: IPCP: deflink: State change Req-Sent --> Ack-Sent freedy ppp[3098]: tun0: IPCP: deflink: RecvConfigNak(1) state = Ack-Sent freedy ppp[3098]: tun0: IPCP: IPADDR[6] 10.43.63.248 freedy ppp[3098]: tun0: IPCP: IPADDR[6] changing address: 0.0.0.0 --> 10.43.63.248 freedy ppp[3098]: tun0: IPCP: deflink: SendConfigReq(2) state = Ack-Sent freedy ppp[3098]: tun0: IPCP: IPADDR[6] 10.43.63.248 freedy ppp[3098]: tun0: IPCP: PRIDNS[6] 208.67.220.220 freedy ppp[3098]: tun0: IPCP: SECDNS[6] 208.67.222.222 freedy ppp[3098]: tun0: IPCP: deflink: RecvConfigAck(2) state = Ack-Sent freedy ppp[3098]: tun0: IPCP: IPADDR[6] 10.43.63.248 freedy ppp[3098]: tun0: IPCP: PRIDNS[6] 208.67.220.220 freedy ppp[3098]: tun0: IPCP: SECDNS[6] 208.67.222.222 freedy ppp[3098]: tun0: IPCP: deflink: State change Ack-Sent --> Opened freedy ppp[3098]: tun0: IPCP: deflink: LayerUp. freedy ppp[3098]: tun0: IPCP: myaddr 10.43.63.248 hisaddr = 192.168.181.12 freedy ppp[3098]: tun0: Command: wana_lg800: shell route delete default freedy ppp[3098]: tun0: Command: wana_lg800: shell route add default -interface INTERFACE freedy ppp[3098]: tun0: Command: wana_lg800: shell sh -c echo 'nameserver 192.168.60.58' > /etc/resolv.conf freedy ppp[3098]: tun0: Command: wana_lg800: shell sh -c echo 'nameserver 192.168.50.55' >> /etc/resolv.conf freedy ppp[3098]: tun0: Warning: 0.0.0.0/0: Change route failed: errno: No such process
الآن إختبر الوصول إلى الأنترنت بالتصفح أو بتنفيذ الامر:
ping -c 3 google.com
لاحظ جيدا أني استخدمت أداة ppp بمعيار -ddial بمعنى أنها ستتصل ثم ستبقى في الخلفية تراقب الإتصال و تضمن تجديد الربط في حالة إنقطاعه. هذه الطريقة جيدة في حالة نجاحك في الربط لكن ستزعجك إن لم تكن قد نجحت في إعداد الموديم من قبل.
على العموم لقطع الإتصال، و إنهاء عمل ppp و إزالة كل الإعدادات المتعلقة بالموديم، أزل هذا الأخير ثم نفذ:
pkill -9 ppp ifconfig tun0 destroy route flush
بالنسبة للربط التلقائي عند الوصل فسنستخدم آلية devd
devd تحتاج إلى معرفة معرفات العتاد لتنفد عملية معينة عندما يوصل هذا الأخير.
معرفات LG LDU-800 سنجدها على مخرجات الأمر tail -f /var/log/messages عند وصله، و هي كالتالي:
freedy kernel: ugen3.2:at usbus3 freedy root: Unknown USB device: vendor 0x1004 product 0x605e bus uhub3
سنفتح الملف
nano -w /etc/devd.conf
و سنضيف إلى آخره ما يلي:
attach 100 { device-name "umodem[2]+"; match "vendor" "0x1004"; match "product" "0x605e"; action "/bin/sleep 20 ; /usr/sbin/ppp -ddial wana_lg800"; };
ثم سنعيد تشغيل خدمة devd:
/etc/rc.d/devd restart
من الآن فصاعدا كلما وصلت الموديم LG LDU-800 بالمعرف 0x605e و المصنع 0x1004 سيتم الإنتظار لمدة 20 ثانية ليكتمل الموديم من تحضير نفسه ثم ليبدأ بعدها الوصل بمزود الخدمة.
مصادر و مراجع :
* Wana : configurer le modem LG LDU-800 sous GNU/Linux * [Solved] Internet access in freebsd (LG LDU-800)? * FreeBSD Forums: [Solved] ppp Change route failed * OpenBSD MAKEDEV(8) man page * ML: Re: Run script on cd insertion * BSD start services * OpenBSD 3.8 Service commands * OpenWikiBSD - OpenBSD Réseau * Re: My modem was working in ubuntu 9.10 but it doesn't in 10.04 lts #21 * Modem usb LG LDU-800 wana 3g * Ubuntu Wiki - MoroccanTeam - Modems * Ubuntu Fr Doc - cles_3g * Ubuntu Fr Doc - modem * bayn : configurer le modem Huawei E-325 sous GNU/Linux * comment installer- HUAWEI- E173 -MAROC TELECOM-Ubuntu [Resolu] #2 * [Résolu] Problème de connexion avec le modem 3G ZTE MF100
.
شكراً على الشرح ممكن تضيف طريقة إتصال عن طريق pppd
ردحذف