พื้นที่ให้บริการ 3G ในบ้านเราแม้จะยังจำกัดค่อนข้างมาก แต่ก็ยังมีประโยชน์กับคนพื้นที่ให้บริการค่อนข้างมาก เช่นคอนโดหรือหอพักที่ไม่อาจติดตั้งสายโทรศัพท์ด้วยตัวเองได้ โดยทั่วไปแล้วทางเลือกที่ง่ายที่สุดก็คือการซื้อ USB dongle มาใช้งานกับคอมพิวเตอร์ในบ้าน แต่ก็จะจำกัดอยูกับการใช้งานกับคอมพิวเตอร์เครื่องเดียวเท่านั้น
ถ้าเราสังเกตจะพบว่า 3G dongle รุ่นใหม่ๆ นั้นล้วนมีไดรเวอร์มาตัวโดยไม่ต้องแถมซีดีเพิ่มเติม ที่จริงแล้ว dongle เหล่านี้สามารถทำงานเสมือนเป็นสองอุปกรณ์ภายใต้ USB พอร์ตเดียว นั่นคือมีเสียบครั้งแรกเครื่องจะมองเห็นเป็นเพียง usb-storage (หรือแฟลชไดร์ฟ) เท่านั้น เพื่อให้เราติดตั้งซอฟต์แวร์ที่มากับตัวการ์ด เมื่อติดตั้งเสร็จแล้ว ตัวการ์ดเหล่านี้จะยิงคำสั่งพิเศษเพื่อเปิดการทำงานส่วนโมเด็มขึ้นมา เทคโนโลยีนี้เรียกว่า ZeroCD โดยคำสั่งนี้แม้จะใช้งานใกล้เคียงกัน การ์ดแต่ละรุ่นกลับใช้คำสั่งต่างกันไปจนไม่สามารถใช้งานไดรเวอร์ร่วมกันได้ นี่เป็นเหตุผลที่เรามักไม่สามารถดาวน์โหลดซอฟต์แวร์สำหรับการ์ดรุ่นอื่นๆ มาใช้งานร่วมกันได้
ในฝั่งลินุกซ์นั้น เริ่มมีคนสังเกตความเหมือนกันนี้และเขียนซอฟต์แวร์ที่เปิดการทำงานในส่วนของโมเด็มขึ้นมาในชื่อว่า usb_modeswitch
(manpage) เป็นซอฟต์แวร์สำหรับเปิดการทำงานนี้โดยตรง และรวมรวมฐานข้อมูลของการ์ดรุ่นต่างๆ ว่าต้องการคำสั่งใดเพื่อเปิดการทำงานโมเด็มไว้บ้าง โดยจะอ้างอิงจากหมายเลขประจำอุปกรณ์ USB เช่นการ์ด ZTE 627 จะมีคำสั่งดังนี้
######################################################## # ZTE devices DefaultVendor= 0x19d2 DefaultProduct= 0x2000 TargetVendor= 0x19d2 TargetProductList="0001,0002,0015,0016,0017,0031,0037,0052,0055,0063,0064,0066,0091,0108,0117,0128" MessageContent="5553424312345678000000000000061e000000000000000000000000000000" MessageContent2="5553424312345679000000000000061b000000020000000000000000000000" MessageContent3="55534243123456702000000080000c85010101180101010101000000000000" NeedResponse=1 CheckSuccess=20
เช่นเดียวกับการ์ด 3G ที่มักใช้เทคโนโลยีที่ใกล้เคียงกัน ทางฝั่งเราท์เตอร์นั้นเราจะพบว่ามีสถาปัตยกรรมที่แตกต่างกันภายในไม่มากนัก ทำให้มีคนพอร์ดลินุกซ์สำหรับเราท์เตอร์แทบทุกรุ่นที่มีทรัพยากรเพียงพอสำหรับการทำงาน เช่นแรมและรอมต้องไม่น้อยเกินไป หนึ่งในโครงการที่ได้รับความนิยมค่อนข้างสูงคือ OpenWRT ที่ออกมาถึงรุ่น 10.03 backfire หากใครต้องการทำเราท์เตอร์ 3G ก็อาจจะไปตรวจสอบหาเครื่องรุ่นที่รองรับ USB และลง OpenWRT ได้ในรายการฮาร์ดแวร์ที่รองรับ อย่าลืมตรวจว่ารุ่นที่รองรับนั้นรองรับรุ่น 10.03 แล้วหรือยัง
ในส่วนของการติดตั้งขอข้ามไป โดยอาจอ่านวิธีการติดตั้ง (แต่ละรุ่นไม่เหมือนกัน) ได้จากหน้าฮาร์ดแวร์ที่รองรับเอง หรือทาง OpenTLE มีบทความเขียนไว้
ใน OpenWRT เราสามารถติดตั้ง usb_modeswitch ได้ทันทีด้วยคำสั่ง
opkg update opkg install usb-modeswitch
ในลินุกซ์รุ่นเต็มนั้น เราอาจติดตั้ง usb-modeswitch-data
เพิ่มอีกหนึ่งแพ็กเกจเพื่อให้รองรับการ์ดจำนวนมากโดยไม่ต้องคอนฟิกเอง แต่ใน OpenWRT นั้นเราต้องเข้าไปแก้ไฟล์ /etc/usb-modeswitch.conf
ด้วยตัวเอง เช่นในการ Huawei E158 หรือในไทยชื่อว่า DTAC Flip 158 อาจจะใช้คอนฟิกดังนี้
DefaultVendor= 0x12d1 DefaultProduct=0x1446 TargetVendor= 0x12d1 TargetProductList="1001,1406,140b,140c,1412,141b,14ac" CheckSuccess=20 MessageContent="55534243123456780000000000000011060000000000000000000000000000"
เมื่อติดตั้งและคอนฟิกแล้วก็จะทดลองเปิดการทำงานโมเด็มได้ โดยสั่ง usb_modeswitch
จะได้ผลดังนี้
root@OpenWrt:~# usb_modeswitch Looking for target devices ... No devices in target mode or class found Looking for default devices ... Found default devices (1) Accessing device 002 on bus 001 ... Using endpoints 0x01 (out) and 0x81 (in) Inquiring device details; driver will be detached ... Looking for active driver ... OK, driver found ("usb-storage") OK, driver "usb-storage" detached SCSI inquiry data (for identification) ------------------------- Vendor String: HUAWEI Model String: Mass Storage Revision String: 2.31 ------------------------- USB description data (for identification) ------------------------- Manufacturer: HUAWEI Technology Product: HUAWEI Mobile Serial No.: not provided ------------------------- Setting up communication with interface 0 ... Trying to send the message to endpoint 0x01 ... OK, message successfully sent Device is gone, skipping any further commands Checking for mode switch (max. 20 times, once per second) ... Original device is gone already, not checking Searching for target devices ... Searching for target devices ... Searching for target devices ... Searching for target devices ... Searching for target devices ... Searching for target devices ... Found correct target device Mode switch succeeded. Bye.
ถึงตอนนี้แอร์การ์ดที่เสียบอยู่กับเราท์เตอร์ก็พร้อมจะทำงานเป็นโมเด็มแล้ว
หลังจากนี้เราต้องคอนฟิกตัว interface ให้ทำงานได้อย่างถูกต้อง โดยเพิ่มอินเทอร์เฟชใหม่ในหน้า Network > Interfaces
หลังจากนั้นเลือกเป็นโหมด UTMS/3G พร้อมใส่ค่า APN ให้เรียบร้อยตามผู้ให้บริการที่เราใช้งาน
เนื่องจากหน้าคอนฟิกของ OpenWRT นั้นไม่สมบูรณ์ โดยขาดหมายเลขโทรศัพท์ที่ใช้โทรไปยังผู้ให้บริการไป และไม่มีหน้าให้คอนฟิก ดังนั้นต้องเข้าทางคอนโซลเพื่อคอนฟิกโดยตรง โดยแก้ที่ไฟล์ /etc/chatscripts/3g.chat
จะมีบรรทัดระบุหมายเลขอยู่เป็น OK "ATD *99***1#"
(หมายเลขอาจจะไม่ตรงนี้) ให้เราเป็นเป็นหมายเลขตามผู้ให้บริการของเราเอง
ถึงตอนนี้หาเราคอนฟิกทั้งหมดถูกต้อง เราท์เตอร์ของเราน่าจะใช้อินเทอร์เน็ตได้แล้ว อาจจะลองถอดสายแลนแล้วรันคำสั่ง opkg update
อีกครั้งเพื่อดูว่าสามารถดึงไฟล์จากอินเทอร์เน็ตได้หรือไม่
กรณีที่เราเลือกโซนในหน้าคอนฟิกเอาไว้เป็น wan อาจจะไม่ต้องทำอะไรเพิ่มเติม แต่กรณีของผมมีการแก้ zone ของการ์ด 3G ทำให้เราท์เตอร์ไม่ยอม forward ข้อมูล อาจจะต้องเข้าไปแก้ในไฟล์ /etc/config/network
ในส่วนของ forward เพื่อแก้ทุกโซนให้ส่งต่อไปยังการ์ด 3G
สุดท้ายเราอาจจะต้องการให้เราท์เตอร์ต่อ 3G เองทุกครั้งที่เปิดเครื่อง เราอาจจะเพิ่มไฟล์ /etc/init.d/gsm
เข้ามาดังนี้
#!/bin/sh /etc/rc.common # Written by Simon Josefsson 2009-03-05. Released into the public domain. START=90 start() { usb_modeswitch ifup gsm0 }
เท่านี้เพียงเสียบการ์ดก่อนเปิดเครื่อง เราเตอร์ก็จะทำงานทุกอย่างต่อไปเอง
เนื่องจากผมเองมีการ์ด 3G อยู่ก่อนแล้ว ต้นทุนของการทำเราท์เตอร์ 3G นี้ถึงนับว่าต่ำมาก โดยตัวเราท์เตอร์อย่างเดียวที่ผมซื้อรุ่นที่แรงที่สุดที่มีในตลาดคือ Buffalo WZR-HP-G300NH นั้นสามารถหาซื้อได้ในราคาประมาณ 2800 บาท โดยที่ความสามารถของมันสามารถทำได้เต็มที่กว่าเราท์เตอร์สำเร็จรูปอย่างชัดเจน เช่นในงาน Blognone's Contributors Party เองก็มีการเชื่อมต่อพร้อมกันประมาณ 14 คนได้โดยไม่มีปัญหา แต่เราท์เตอร์ที่รองรับ OpenWRT และมีพอร์ต USB อีกจำนวนมากที่ราคาถูกกว่านี้ก็น่าจะสามารถทำงานได้เช่นเดียวกัน ทางออกนี้อาจจะเหมาะสมเมื่อเราต้องการใช้งานกับจำนวนหลายๆ คนเพราะเราท์เตอร์ 3G ทั่วไปมักรองรับอุปกรณ์ไม่เกิน 5 ชิ้น รวมถึงการทำโครงงานวิจัยการบันทึกข้อมูลจากระยะไกลแล้วส่งต่อข้อมูลผ่านเครือข่ายไร้สายไปได้อีกด้วย
Comments
โอ้โห...ขอบคุณมากครับ
Cool
รอได้ลองเล่นบ้างล่ะครับแบบนี้
ผมอ่านคร่าวๆ ก่อน
มันเจ๋งมากเลยครับ ซึ่งจริงๆแล้วผมยังไม่เข้าใจทั้งหมดด้วยซ้ำว่า 3G คืออะไร
ปล.ขอวิจารณ์การเขียนบทความหน่อยครับ ขอบอกว่าอ่านแล้วงงมากยิ่งในส่วนของข้อมูลด้านเทคนิค
อีกอย่างที่ขอแนะนำคือประโยค "โดยตัวเราท์เตอร์อย่างเดียวที่ผมซื้อรุ่นที่แรงที่สุดที่มีในตลาดคือ Buffalo WZR-HP-G300NH นั้นสามารถหาซื้อได้ในราคาประมาณ 2800 บาท โดยที่ความสามารถของมันกลับทำได้อย่างเต็มที่"
รุ่นที่แรงที่สุดแต่กลับทำงานได้อย่างเต็มที่... ฟังดูแปลกๆ มั้ยครับ รุ่นที่แรงที่สุดมันก็ต้องทำงานได้อย่างเต็มที่อยู่แล้วนิ
แต่เขียนเหมือนรู้สึกผิดหวังที่รุ่นที่แรงที่สุดแต่กลับทำงานได้อย่างเต็มที่
เหมาะกับใช้งานแก้ขัด ที่สายไปไม่ถึงมากๆ
เพราะ 3G(และระบบไร้สายอื่นๆ) เองมีข้อด้อยเรื่องทรัพยากรความถี่ที่มีจำกัด
ยิ่งใช้กันเยอะ ยิ่งช้า
แถมค่าบริการคิดตาม Data ที่ใช้ โหดไม่เบา -_-'
แต่แน่นอนว่า ข้อดีคือ พกไปไหนก็ได้ สะดวกสะบาย
สุดยอดเลยคร๊าบบบ
ว้าว เยี่ยมเลย
แฟนพันธุ์แท้สตีฟจ็อบส์ | MacThai.com
ผมใช้ DD-WRT ก็โอเคเหมือนกันนะครับ
กำลังมองของดีเทคอยู่เลยวันก่อนเห็นรีวิวที่เมเนเจอร์ แบบนี้น่าลอง
ขอบคุณนะครับ
3G ของ TOT (และพวก MVNO ทั้งหลายแหล่) ก็ใช้หมายเลข *99# ได้ครับ