linux training in Thailand
| Home | Articles | Download | Free Linux Tips | Resources | Training | Web Link | Linux Training English|
| Courses | Schedule | Price & Promotion | Map | Customer Ref. | Instructors | Certification | FAQ | Registration Form |
สถาบันฯ ขอแจ้งปิดทำการระหว่างวันที่ 27 -31 กรกฏาคม 2558 และเปิดทำการปกติวันที่ 3 สิงหาคม 2558
We are on vacations 5 days in July 27-31, 2015 Please contract Line ID : nok_fly or e-mail : info@itdestination.com
ITDestination จะปิดปรับปรุงเว็บไซต์ ตั้งแต่วันที่ 7 - 9 มิถุนายน 2556
อาจจะทำให้ใช้งานไม่ได้ในบริการ Webboard Freetips และ E-Learning จึงขออภัยในความไม่สะดวกมา ณ ที่นี้
สถาบันฯ ขอแจ้งปิดทำการวันที่ 22-28 กุมภาพันธ์ 2560 และจะเปิดทำการปกติในวันที่ 1 มีนาคม 2560
กรณีติดต่อส่งข้อความมาที่ Facebook: LinuxITDestination หรือ e-mail: info@itdestination.com ซึ่งจะติดต่อกลับประมาณ 17.00 น.
ผู้ลงทะเบียนอบรมสามารถทำข้อสอบ online ในช่วงที่มาอบรมเพื่อทบทวนความรู้ ทำได้ไม่จำกัดจำนวนครั้ง มีข้อเฉลยที่ถูกต้องแนะนำ
สอบถามรายละเอียดโทร 089 890-5494 >>> อ่านรายละเอียด... คลิ๊ก

ตอน Zyxel ADSL USB Modem

โดย ธีรภัทร มนตรีศาสตร์,RHCE,LPIC-2

ในวันนี้บริการอินเตอร์เน็ตชนิดบรอดแบนด์ได้รับความนิยมเพิ่มขึ้นอย่างรวดเร็ว สำหรับผู้ใช้งานทั่วไปตามบ้างหรือกิจการขนาดเล็กเพียงยกหูโทรศัพท์แจ้งความประสงค์ไปยังผู้ให้บริการโทรศัพท์แล้วรอแค่เพียงไม่กี่วัน อินเตอร์เน็ตความเร็วสูงหรือ ADSL ก็จะมาติดตั้งให้ได้สัมผัสกับประสบการณ์ใหม่บนโลกของไซเบอร์กันแล้ว ซึ่งนอกจากสัญญาณอินเตอร์เน็ตความเร็วสูงที่ว่านี้แล้ว ยังแถมอุปกรณ์เชี่อมต่อหรือโมเด็มมาให้ใช้ฟรีอีกด้วย นี่เป็นที่มาของบทความ "ฮาร์ดแวร์ในอ้อมกอดของลีนุกซ์" ในวันนี้ที่เราจะมาพูดคุยกันถึงการใช้งานลีนุกซ์ร่วมกับโมเด็มประเภทนี้กัน Zyxel Prestige 630 ใช่แล้วครับ โมเด็มรูปร่างกระทัดรัดของ Zyxel ตัวนี้ เป็น ADSL USB Modem ที่ใช้อินเทอร์เฟสแบบ USB 1.1สนับสนุนดาวน์สตรีมถึง 8 Mbps และอัพสตรีมที่ 832Kbps อาศัยพลังงานไฟฟ้าจากพอร์ต USB เช่นเดียวกับอุปกรณ์ที่ใช้อินเทอร์เฟสเช่นนี้ รายละเอียดเหล่านี้คงไม่สำคัญเท่ากับคำตอบที่ผู้ใช้งานลีนุกซ์สนใจที่สุดคือ มันใช้งานร่วมกับลีนุกซ์ได้หรือไม่? และจะต้องทำอย่างไรบ้าง? สภาพแวดล้อมของการทดสอบเนื่องจากผู้เขียนต้องการทดสอบในสภาพที่ครอบคลุมทั้งการใช้งานกับลีนุกซ์เคอร์เนล 2.4 และ 2.6 จึงเลือกทดสอบกับ Fedora Core 1 เป็นหลัก ด้วยเครื่องพีซี AMD Duron 950MHz RAM 128MB ใช้เมนบอร์ด Asus A7V8x โดยติดตั้ง Fedora Core 1 แบบ Everything ( ติดตั้งแพคเกจครบทั้งหมด ) เมื่อเปิดเครื่องพีซีลีนุกซ์ไว้ แล้วเสียบโมเด็มตัวนี้เข้าที่พอร์ต USB ก็พบว่า Fedora ของเราไม่มีไดร้วเวอร์ที่เหมาะสมกับอุปกรณ์ตัวนี้ เมื่อเรียกคำสั่ง lsusb ดูพบว่ามีข้อมูลเกี่ยวกับ Vendor/Product ID ดังรูปที่ 1

รูปที่ 1 ผลลัพธ์คำสั่ง lsusb

จากคำสั่ง lsusb ทำให้เราได้ข้อมูลเกี่ยวกับโมเด็มตัวนี้ซึ่งสามารถนำไปค้นหารายละเอียดเกี่ยวกับชิปควบคุมของมัน และโปรแกรมไดร้วเวอร์ที่เหมาะสมได้ ซึ่งพบว่ามีข้อมูลที่น่าสนใจอยู่ตามเว็บไซต์หลายแห่ง เช่น http://www.linux.ie/articles/tutorials/zyxel630-11.php เป็นต้น ซึ่งนำมาใช้เป็นแนวทางการคอนฟิกได้เป็นอย่างดี ดาวน์โหลดซอฟต์แวร์ ซอฟต์แวร์ที่จำเป็นต้องใช้ในการคอนฟิกมีส่วนประกอบหลายส่วน ดังนี้
  • rp-pppoe ซึ่งใช้ในการเชื่อมต่อด้วยโปรโตคอล PPPoE ( PPP over Ethernet ) สามารถดาวน์โหลดได้จาก
    http://www.roaringpenguin.com/products/rp-pppoe
  • amedyn เป็นโมดูลไดร้วเวอร์สำหรับชิปตัวนี้ ดาวน์โหลดได้ที่ http://sourceforge.net/projects/zyxel630-11
  • libusb ใช้ประกอบการคอมไพล์ ดาวน์โหลดได้ที่ http://libusb.sourceforge.net
  • linux-atm ใช้ในการคอมไพล์เช่นกัน ดาวน์โหลดได้ที่ sourceforge.net/projects/accessrunner/
  • คอมไพล์เคอร์เนล และติดตั้งเคอร์เนลใหม่ ขั้นตอนนี้จำเป็นมากสำหรับผู้ที่ใช้เคอร์เนล 2.4 โดยจะต้องทำการคอมไพล์เคอร์เนลใหม่ ซึ่งคุณสมบัติของโปรแกรมต้นฉบับของเคอร์เนลของ Fedora Core 1 จะเปิดการทำงานที่จำเป็นสำหรับการเชื่อมต่อกับอุปกรณ์ USB ไว้แล้ว ในส่วนของการสนับสนุนโปรโตคอล PPPoE /PPPoA ก็มีแล้ว แต่อย่างไรก็ตามเนื่องจากเราจะต้อง patch โมดูลใหม่เข้าไปจึงหลีกเลี่ยงการคอมไพล์เคอร์เนลใหม่ไม่ได้ สำหรับขั้นตอนการคอมไพล์เคอร์เนลและติดตั้งเคอร์เนลใหม่สำหรับผู้ที่าคุ้นเคยอยู่แล้วคงไม่มีอะไรเพิ่มเติมเป็นพิเศษ แต่สำหรับผู้ที่ยังไม่เคยคอมไพล์มาก่อนขอให้ศึกษาจากบทความในเว็บไซต์ของผู้เขียนที่ http://www.itdestination.com/articles/ นะครับ หลังจากบูตด้วยเคอร์เนลใหม่แล้วจึงดำเนินขั้นตอนต่อไป กรณีที่ท่านใช้งานลีนุกซ์ที่เป็นเคอร์เนล 2.6 เช่น Fedora Core 3 สามารถข้ามขั้นตอนนี้ไปได้เลยไม่จำเป็นต้องคอมไพล์เคอร์เนลใหม่แต่อย่างใด คอมไพล์โมดูลไดร้วเวอร์ amedyn เริ่มต้นที่เข้าไปที่ /usr แล้ว extract ไฟล์ amedyn-2003-10-29-src.tgz แล้วจะพบว่ามีไดเร็คทอรี่ชื่อ /usr/amedyn เกิดขึ้น ให้สำเนาโปรแกรมต้นฉบับของ speedtch.c มาทับไฟล์ของ amedyn ที่ชื่อ xdslusb_2.4.c ดังนี้
    # cp /usr/src/linux-2.4/drivers/usb/speedtch.c /usr/amedyn/module/xdslusb_2.4.c
    จากนั้นใช้โปรแกรมอีดิตเตอร์แก้ไขหมายเลข Vendor/Product ID ให้สอดคล้องกับชิปโมเด็ม Zyxel ของเรา ดังรูปที่ 2

    รูปที่ 2 แก้ไขหมายเลข Vendor/Product ID

    หลังจากแก้ไขหมายเลข Vendor/Product ID แล้ว ลงมือคอมไพล์ด้วยคำสั่งต่อไปนี้ # cd /usr/amedyn
    # make

    หากไม่มีความผิดพลาดอะไร จะมีไฟล์คอนฟิกและสคริปต์ควบคุมเกิดขึ้น ซึ่งจะต้องปรับแก้ไขค่าพารามิเตอร์ที่เกี่ยวข้องกับผู้ให้บริการ เช่น ค่า VPI/VCI โดยใช้โปรแกรมอีดิตเตอร์แก้ไขไฟล์ /etc/amedyn ( ค่าพารามิเตอร์ที่เห็นนี้ผู้เขียนทำการทดสอบกับ ADSL ของ TOT ) ดังรูปที่ 3

    รูปที่ 3 กำหนดค่าพารามิเตอร์ของ PPPoE

    คอนฟิกโปรแกรม rp-pppoe ก่อนที่จะเริ่มติดต่อเข้าสู่อินเตอร์เน็ตจะต้องกำหนดค่าเกี่ยวกับการเชื่อมต่อของโปรแกรม rp-pppoe เสียก่อนซึ่ง Fedora Core จะติดตั้งแพคเกจนี้ให้มาพร้อมอยู่แล้ว ดังนั้นจึงเข้าสู่ขั้นตอนของการคอนฟิกได้ทันที โดยรันโปรแกรม
    # adsl-setup
    adsl-setup จะสอบถามข้อมูลทีละคำถาม ให้ตอบไปตามลำดับ เช่น ชื่อล๊อกอิน รหัสผ่าน เป็นต้น ดังรูปที่ 4 เมื่อจบขั้นตอนนี้โปรแกรมจะจัดเก็บชื่อและรหัสผ่านไว้ที่ไฟล์ /etc/ppp/pap-secrets ดังรูปที่ 5

    รูปที่ 4 ขั้นตอนคอนฟิก PPPoE


    รูปที่ 5 ไฟล์จัดเก็บชื่อและรหัสผ่าน

    การใช้งาน ADSL ในชุดโปรแกรม amedyn จะมีสคริปต์ควบคุมมาให้ด้วยแล้ว โดยคำสั่ง amstart.sh ใช้เพื่อการเริ่มเชื่อมต่อ และ amstop.sh ใช้ตัดการติดต่อออก ดังรูปที่ 6 และ 7

    รูปที่ 6 การเชื่อมต่อด้วยคำสั่ง amstart.sh


    รูปที่ 7 คำสั่งยุติการเชื่อมต่อ ADSL

    หากการเชื่อมต่อสำเร็จ จะสามารถตรวจสอบได้จากคำสั่ง ifconfig จะเห็นว่ามีอินเทอร์เฟสเพิ่มขึ้นเป็น ppp0 และ nas0 ดังรูปที่ 8 แน่นอนว่าคุณควรตรวจสอบเรื่องของ Default Gateway ว่ามีการกำหนดลงมาให้ด้วยแล้วหรือไม่ด้วยคำสั่ง route -n และสิ่งที่หลายๆ ท่านมักหลงลืมไปก็คือ ค่าของ DNS Server ที่จะต้องใส่ไว้ที่ไฟล์ /etc/resolv.conf มิฉะนั้นคุณจะไม่สามารถเรียกชื่อเว็บไซต์ต่างๆ ได้ตามที่ต้องการ จะพาลเข้าใจผิดไปว่าโมเด็มไม่คอนเน็กเสียอีก

    รูปที่ 8 ผลลัพธ์คำสั่ง ifconfig

    ปัญหาหนึ่งที่มักจะพบอยู่บ่อยๆ ก็คือ หากมีการเชื่อมต่อซ้ำบางครั้งจะเกิดข้อความแสดงความผิดปรกติเกี่ยวกับ USB ขึ้น และทำให้ไม่สามารถเชื่อมต่อได้ ดังรูปที่ 9 วิธีแก้ไขคือ ให้ถอดสายโมเด็มด้านใดด้านหนึ่งออกแล้วเสียบใหม่จึงจะใช้คำสั่ง amstart เพื่อเชื่อมต่อได้อีกครั้งหนึ่ง

    รูปที่ 9 ข้อความผิดพลาดเมื่อคอนเน็คซ้ำ

    อุปสรรคช่วยให้เกิดการพัฒนา ท่านผู้อ่านคงรู้สึกเช่นเดียวกันถึงความยากลำบากในการติดตั้งใช้งานอุปกรณ์ฮาร์ดแวร์ต่างๆ กับระบบปฏิบัติการลีนุกซ์ อย่างกรณีของโมเด็ม ADSL USB ที่ผ่านไปนี้ช่างเต็มไปด้วยขั้นตอนที่ยุ่งยากต่อการทำความเข้าใจและปฏิบัติ แต่ผู้เขียนมีความเชื่อว่าอุปสรรคเหล่านี้จะเป็นแรงบันดาลใจให้เกิดการเปลี่ยนแปลงในด้านการพัฒนาที่ดีกว่าเดิม บทเรียนที่ชาวโอเพ่นซอร์สต้องเผชิญหน้ากับปัญหาด้านความเข้ากันได้เกับอุปกรณ์ฮาร์ดแวร์ทำให้เกิดเทคโนโลยีใหม่ๆขึ้นมา ไม่ว่าจะเป็น udev หรือ Linux HAL ( Linux Hardware Abstraction Layer ) หรือ Project Utopia หรือ ABI ( Application Binary Interface ) รวมทั้งโปรเจคอิสระอย่างเช่น Driver on Demand ล้วนเกิดขึ้นและกำลังพัฒนาไปข้างหน้า สักวันหนึ่งคุณอาจจะนึกขำตัวเองที่เคยนั่งคอมไพล์เคอร์เนลลีนุกซ์เพียงเพื่อติดตั้งโมเด็มซักตัวนึง แต่มันก็เป็นประสบการณ์ที่ดีไม่ใช่หรือ