รูปร่างหน้าตา USB Wireless LAN ที่ผมใช้ครับ รุ่น EP-N8508GS ยี่ห้อ EDUP รองรับ 802.11 B/G/N
ขั้นตอนการติดตั้ง USB Wireless LAN บน Raspberry Pi มีดังต่อไปนี้ครับ
1. เสียบ USB Wireless LAN ในช่อง USB ที่ว่างๆ
เครื่องจะ Auto Detect ฮาร์ดแวร์อัตโนมัติ
2. รันคำสั่งตรวจสอบอินเตอร์เฟสของ Wireless LAN
คำสั่ง
- โค้ด: เลือกทั้งหมด
ip a
ผลลัพธ์
- โค้ด: เลือกทั้งหมด
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,DYNAMIC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether b8:27:eb:a4:fa:96 brd ff:ff:ff:ff:ff:ff
inet 192.168.130.145/24 brd 192.168.130.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::ba27:ebff:fea4:fa96/64 scope link
valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether e8:4e:06:20:06:d2 brd ff:ff:ff:ff:ff:ff
โชคดีมากๆครับที่ Raspberry Pi มองเห็น USB Wireless LAN อันนี้อัตโนมัติ ทำให้เราไม่ต้องคอมไพล์ไดร์เวอร์เลย ตัว USB Wireless LAN ที่ผมใช้นี้ข้างในเป็นชิปเซ็ตของ Realtek ครับ ชื่ออินเตอร์เฟสของ Wireless LAN คือ wlan0
3. หรือรันคำสั่ง lshw ตรวจสอบว่า RasPBX มองเห็น USB Wireless LAN หรือไม่
คำสั่ง
- โค้ด: เลือกทั้งหมด
lshw
ถ้ารันคำสั่งนี้ไม่ได้แสดงว่ายังไม่ได้ติดตั้งครับ ให้ติดตั้งก่อนโดยรันคำสั่ง apt-get install lshw ครับ
ผลลัพธ์ครับ เห็นไดร์เวอร์ที่โหลดขึ้นมา
- โค้ด: เลือกทั้งหมด
*-usb:1 DISABLED
description: Wireless interface
vendor: Realtek
physical id: 3
bus info: usb@1:1.3
logical name: wlan0
version: 2.00
serial: 00e04c000001
capabilities: usb-2.00 ethernet physical wireless
configuration: broadcast=yes driver=rtl8192cu maxpower=500mA multicast=yes speed=480Mbit/s wireless=unassociated
สั่งให้ wlan0 อัพ
- โค้ด: เลือกทั้งหมด
ip link set wlan0 up
ตรวจสอบ
รันคำสั่ง ip a อีกครั้ง
ผลลัพธ์เลือกมาเฉพาะ wlan0 จะเห็นข้อความ UP ต่อจาก MULTICAST
- โค้ด: เลือกทั้งหมด
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether e8:4e:06:20:06:d2 brd ff:ff:ff:ff:ff:ff
แสกนหา Access Point
ถ้า Access Point ที่เราจะเอา USB Wireless LAN ไปเกาะ มีการเข้ารหัสแบบ WPA/WPA2 เราต้องติดตั้ง wpa_supplicant เพิ่มเติมด้วยครับ เพื่อทำหน้าที่เป็น WPA Client จะได้รองรับ WPA-PSK (WPA Personal) และ WPA2-PSK (WPA2 Personal) นอกจากนั้น wpa_supplicant ยังรองรับ WPA-EAP (IEEE 802.1X) ด้วย
ติดตั้ง wpa_supplicant รันคำสั่ง
- โค้ด: เลือกทั้งหมด
apt-get install wpasupplicant
หาค่าเข้ารหัสของ pre-shared key
** เป็นออปชั่นครับ จะเข้ารหัสหรือไม่เข้าก็ได้ **
ค่า pre-shared key เป็นค่า wireless password ที่เราตั้งบน Access Point นั่นแหล่ะครับ ซึ่งใครจะมาเกาะ Wireless ของเราได้จะต้องใส่ password ให้ถูกต้อง วิธีการใส่ค่า pre-shared key ในไฟล์คอนฟิกของ wlan0 มี 2 วิธีครับ คือใส่ค่าตรงๆ เช่น ถ้าพาสเวอร์ดคือ nuiznuiz ก็ใส่ nuiznuiz เลย อีกวิธีคือใส่แบบเข้ารหัส ซึ่งเราก็ต้องมาหาก่อนว่าค่าเข้ารหัสของ nuiznuiz คืออะไร ดังนี้ครับ
คำสั่ง
- โค้ด: เลือกทั้งหมด
wpa_passphrase SBN_1234 nuiznuiz
ค่า SBN_1234 คือ SSID ครับ ต้องใส่ให้ตรงด้วย ผลลัพธ์จะเป็นแบบนี้
- โค้ด: เลือกทั้งหมด
network={
ssid="SBN_1234"
#psk="nuiznuiz"
psk=b8b6033611a9ef2e3660d325f3d84bfa6a6eda195fde8cba2243f294c212fd08
}
บรรทัดสุดท้ายหลังเครื่องหมาย = คือ nuiznuiz ที่เข้ารหัสแล้วครับ เราจะเอาค่านี้ไปใช้งาน
แก้ไขไฟล์ /etc/network/interfaces
เพิ่มอินเตอร์เฟส wlan0 เข้าไปพร้อมทั้งกำหนดค่า ip address, ssid, pre-shared key ที่เข้ารหัสแล้ว
เพิ่มบรรทัดต่อไปนี้เข้าไปครับ
- โค้ด: เลือกทั้งหมด
auto wlan0
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ssid SBN_1234
wpa-psk 45864114f1c4e29f0964a3e298fcc5621053b93ba593524f383c4667a6d0a30c
บรรทัด allow-hotplug wlan0 จะทำให้อินเตอร์เฟส wlan0 อัพทุกครั้งที่รีสตาร์ทเครื่อง Raspberry Pi ครับ
ทดลองสตาร์ทอินเตอร์เฟส wlan0
- โค้ด: เลือกทั้งหมด
ifup wlan0
แล้วตรวจสอบไอพี wlan0 ดูครับ
- โค้ด: เลือกทั้งหมด
ifconfig
ผลลัพธ์
- โค้ด: เลือกทั้งหมด
wlan0 Link encap:Ethernet HWaddr e8:4e:06:20:06:d2
inet addr:192.168.100.100 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: fe80::ea4e:6ff:fe20:6d2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:13 errors:0 dropped:21 overruns:0 frame:0
TX packets:42 errors:0 dropped:3 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2562 (2.5 KiB) TX bytes:8622 (8.4 KiB)
ตัวอย่างการคอนฟิก /etc/network/interfaces สำหรับ wlan0 รูปแบบต่างๆ
1. สร้างคอนฟิกการเชื่อมต่อกับ Access Point ไว้ในไฟล์อื่น
- โค้ด: เลือกทั้งหมด
auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
ไฟล์ /etc/wpa_supplicant/wpa_supplicant.conf
- โค้ด: เลือกทั้งหมด
network={
ssid="SBN_1234"
scan_ssid=1
key_mgmt=WPA-PSK
psk="nuiznuiz"
}
2. ไม่เข้ารหัส pre-shared key
- โค้ด: เลือกทั้งหมด
auto wlan0
iface wlan0 inet dhcp
wpa-ssid SBN_1234
wpa-psk nuiznuiz
3. กำหนดไอพี wlan0 แบบ static
- โค้ด: เลือกทั้งหมด
auto wlan0
iface wlan0 inet static
address 192.168.100.250
netmask 255.255.255.0
gateway 192.168.100.1
dns-nameservers 192.168.100.1
wpa-ssid SBN_1234
wpa-psk nuiznuiz
แล้วรันคำสั่ง ifdown wlan0 และตามด้วยคำสั่ง ifup wlan0 แล้วตรวจสอบไอพีด้วยคำสั่ง ifconfig จะได้
- โค้ด: เลือกทั้งหมด
wlan0 Link encap:Ethernet HWaddr e8:4e:06:20:06:d2
inet addr:192.168.100.250 Bcast:192.168.100.255 Mask:255.255.255.0
inet6 addr: fe80::ea4e:6ff:fe20:6d2/64 Scope:Link
UP BROADCAST RUNNING MULTICAST DYNAMIC MTU:1500 Metric:1
RX packets:2 errors:0 dropped:150 overruns:0 frame:0
TX packets:24 errors:0 dropped:5 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:48742 (47.5 KiB) TX bytes:41066 (40.1 KiB)
4. ถ้า Access Point ใช้การเข้ารหัสแบบ WEP Key (Key=00000000)
- โค้ด: เลือกทั้งหมด
auto wlan0
iface wlan0 inet dhcp
wireless-essid SBN_4567
wireless-key 00000000
wireless-mode managed