หน้า 1 จากทั้งหมด 1

เทคนิคการติดตั้ง USB Wireless LAN บน Raspberry Pi (RasPBX)

โพสต์โพสต์แล้ว: 28 ก.ย. 2015 23:49
โดย nuiz
บทความนี้ผมจะแนะนำวิธีการติดตั้ง USB Wireless LAN บนเครื่อง Raspberry Pi ครับ โดยจะให้ลิงค์กับ Access Points

รูปร่างหน้าตา 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