Submitted by admin on Fri, 03/12/2010 - 23:39
เนื่องจากบอร์ด mini2440 ไม่ได้มาพร้อมกับความสามารถในการต่อเน็ทเวิร์คแบบไร้สาย ดังนั้นหากต้องการที่จะใช้เน็ทเวิร์คบนบอร์ด mini2440 แบบไร้สายจำเป็นต้องใช้ usb wireless adapter บทความนี้จะนำเสนอการเลือกใช้ usb wireless adapter การสร้างจัดเตรียม driver ตลอดจนถึงการเซ็ทอัพเพื่อใช้งาน
1. ขั้นตอนแรกที่สำคัญมากคือการเลือกใช้ usb adapter เราจะต้องเลือกใช้รุ่นที่ chip ภายในของมันมี Driver ที่รองรับโดย linux kernel มิฉนั้นแล้วท่านจะต้องไปหา driver เอาเอง ก่อนที่จะซื้อให้ตรวจสอบได้จากที่นี่ครับ
http://linuxwireless.org/en/users/Devices/USB

จากตัวอย่าง เราจะใช้ usb wifi adapter ของ NetGear รุ่น WG111v3 ซึ่งจะใช้ Driver rtl8187 เป็นหลักในการสาธิต
2. ระบบที่จะใช้จะเป็น Debian Distribution สำหรับ mini2440 เราเริ่มต้นด้วยการติดตั้งโปรแกรมที่จำเป็นก่อนครับ
# apt-get update |
3. เสียบ usb wifi adapter เข้ากับบอร์ด จะเห็นข้อความดังนี้ปรากฏบน serial console
mini2440:~# usb 1-1: new full speed USB device using s3c2410-ohci and address 2 |
ใช้คำสั่ง lsusb เพื่อตรวจสอบรายละเอียดของ usb devices ที่ต่ออยู่กับระบบ จะเห็นว่าระบบรายงานข้อมูลของ usb wifi ตรงกับรายละเอียดในข้อที่ 1
mini2440:~# lsusb |
ใช้คำสั่ง ifconfig -a เพื่อตรวจสอบว่าระบบของเรามี Device Driver สำหรับ usb wifi ตัวนี้หรือเปล่า
|
|
ถ้าระบบของเรามี Device Driver ที่รองรับ เราจะเห็น device ที่ชื่อ wlan0 ในกรณีนี้ปรากฏว่ามีเพียง eth0 ดังนั้นเราจำเป็นต้องติดตั้ง Device Driver เพิ่มเติมสำหรับ usb wifi adapter ตัวนี้
4. เราสามารถสร้าง Device Driver สำหรับ usb wifi ของเราด้วยการแก้ไข config ในขั้นตอนการสร้าง kernel ดังนี้
- ให้ทำตามขั้นตอน การสร้าง Kernel สำหรับ mini2440 จนกระทั่งก่อนขั้นตอนการสร้าง uImage
- ทำการ config ระบบเพื่อเพิ่ม Driver ด้วยคำสั่งดังนี้
$ cd ~/kernel/mini2440 |
เลือกเมนูตามลำดับดังนี้
Device Drivers/Network device support/Wireless LAN/Wireless LAN (IEEE 802.11)

จากข้อมูลในข้อ 1 และ 3 แสดงให้เห็นว่า usb adapter ของเราใช้ Driver RTL8187B ดังนั้นให้เลื่อน cursor ไปยัง Realtek 8187 and 8187B USB support และเคาะ space bar เพื่อเลือกให้สร้าง Module
เลือก exit ไปจนกระทั่งก่อนออกจากโปรแกรมและ save config หลังจากนั้นทำการสร้าง uImage และสร้าง Modules ตามขั้นตอนดังนี้
$ CROSS_COMPILE=arm-angstrom-linux-gnueabi- ARCH=arm make O=../kernel-bin/ |
เมื่อเสร็จสิ้นขั้นตอนนี้เราจะได้ uImage อยู่ใน ~/kernel/mini2440 และ Device Drivers Modules อยู่ใน ~/kernel/kernel-modules
5. ทำการแทนที่ uImage เดิมด้วย uImage ตัวใหม่ และคัดลอกไฟล์ภายใต้ ~/kernel/kernel-modules ไปยัง root directory ของ mini2440 หลังจากบูท mini2440 แล้วให้ใช้คำสั่ง depmod -a เพื่อทำการ update module dependency list
# depmod -a |
หลังจากนั้นให้เสียบ usb wifi adapter เข้าไปใหม่อีกครั้ง ข้อความที่ปรากฏที่ console จะแสดงให้เห็นว่าระบบรู้จัก usb wifi adapter ของเราแล้ว
mini2440:~# usb 1-1: new full speed USB device using s3c2410-ohci and address 3 |
ยืนยันอีกครั้งด้วยคำสั่ง ifconfig -a จะสังเกตุเห็น device ที่ชื่อ wlan0 ปรากฏในระบบ
|
|
6. มาถึงขั้นตอนนี้ การติดตั้ง Driver ก็เสร็จสิ้นเรียบร้อย ขั้นตอนต่อไปก็เป็นการเซ็ทอัพ usb wifi adapter ของเราให้ต่อเข้ากับระบบเน็ทเวิร์ค ในระบบตัวอย่าง Router ที่ใช้ทำการ encrypt แบบ WEP ข้อมูลที่จำเป็นต้องใช้ในการเซ็ทอัพมีดังนี้
- ssid ของเน็ทเวิร์ค
- key
- channel
ซึ่ง ssid และ channel ถ้าหากไม่ทราบสามารถหาได้ด้วยคำสั่งดังนี้
|
|
สำหรับ key นั้นหากท่านเป็นเจ้าของเน็ทเวิร์ค ท่านต้องรู้อยู่แล้วเพราะท่านเป็นคนกำหนดเอง แต่หากใช้เน็ทเวิร์คอื่น ก็ต้องติดต่อขอ key จากเจ้าของระบบก่อนครับ ในกรณีนี้สมมติให้ key = 1234567890
เมื่อได้ข้อมูลมาแล้ว เราทำการทดลองตรวจสอบและเซ็ทค่าให้กับ wlan0 ของเราด้วยคำสั่ง iwconfig ดังนี้
|
|
หมายเหตุ ลองใช้คำสั่ง iwconfig --help เพื่อดู option ทั้งหมด
เมื่อพร้อมแล้วก็ทำการต่อเข้ากับระบบ network ด้วยคำสั่ง dhclient wlan0
|
|
เมื่อตรวจสอบด้วย ifconfig จะเห็นว่า wlan0 ต่อกับระบบโดยได้รับ ip address 192.168.1.143
เราจะทำทดสอบด้วยการปลด eth0 ออกจากระบบและใช้ wlan0 ในการติดต่อ network อย่างเดียวดังนี้
|
|
ผลจากการ ping แสดงว่าเราสามารถที่จะใช้ usb wireless adapter ของเราติดต่อสื่อสารกับอินเตอร์เน็ทผ่านเน็ทเวิร์คไร้สายได้เป็นที่เรียบร้อย
7. หากเราต้องการให้ระบบติดต่อกับเน็ทเวิร์คผ่าน usb wireless adapter โดยอัตโนมัติทุกครั้งที่เราบูท mini2440 ก็ให้ทำขั้นตอนต่อไปนี้
แก้ไขไฟล์ /etc/network/interfaces โดยใส่ # เพื่อ comment ในส่วนของ eth0 และเพิ่มเติมส่วนของ wlan0 แทนที่ดังนี้
|
|
ทุกครั้งที่บูท mini2440 จะใช้ wlan0 ในการต่อเข้ากับ wireless network โดยอัตโนมัติ
สำหรับผู้ที่ใช้ encyption ในแบบอื่นๆให้ดูการเซ็ทอัพได้จาก เอกสารอ้างอิง
อ้างอิง
http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch13_:_Linux_Wireless_Networking