Memperbaiki Driver WiFi Adapter RTL8188CUS di Beaglebone Black
Untuk proyek yang akan saya bangun berikutnya, saya membutuhkan koneksi wireless dari Laptop ke modul Beaglebone Black (BBB). Kebetulan saya membeli WiFi dongle dari adafruit.com. Waktu itu saya membelinya tanpa melihat detil spesifikasi teknisnya, kalau dari judulnya perangkat ini bisa digunakan untuk Raspberry Pi dan lainnya termasuk Beaglebone. Mikirnya beli adapter ini sekalian saja karena saya beli Raspberry Pi, dan kebetulan di penjelasannya bisa untuk Beaglebone juga. Tapi setelah mencobanya dengan Beaglebone, ternyata tidak langsung konek semulus yang saya harapkan. Beberapa blog juga menyebutkan ada masalah ketika menggunakan modul WiFi dongle dengan chipset RTL8188CUS ini pada Beaglebone. Ternyata memang tidak semua adapter bisa disupport langsung oleh Beaglebone. Beberapa solusi yang saya temukan kebanyakan menggunakan Ubuntu sebagai OSnya.
Dalam tutorial ini saya gunakan Beaglebone dengan Debian Linux Distribution versi 3.8.13-bone70. Setelah dua hari browsing mulai habis sahur hingga mau buka puasa dan hampir saja pesan adapter baru, akhirnya bisa juga. Coba ikuti langkah berikut, jika ada yang kurang akan saya update segera (saya menulis artikel ini sebagai pengingat setelah melakukan “banyak” tahap yang mungkin terlewat).
Anda perlu siapkan selain Beaglebone tentunya 😉 :
- Miniature WiFi (802.11b/g/n) Module, dengan chipset RTL8188CUS.
- USB HUB, usahakan memilih yang portnya tidak terlalu banyak karena akan menarik daya yang besar, apalagi yang menggunakan lampu LED. Untuk ini saya gunakan 4 port. USB HUB digunakan untuk menghubungkan adapter ke Beaglebone, lho kenapa tidak langsung saja? Beberapa blog yang saya baca ada pengaruh dengan sinyal yang ditangkap oleh adapater. Port USB Beaglebone terletak tepat dibalik port HDMI (yang mungkin aktif) sehingga bisa melemahkan tangkapan adapternya. Dengan alasan ini lalu orang menjauhkan adapternya dari Beaglebone (terus terang saya belum membuktikannya). Solusi lain adalah dengan mematikan akses HDMI di Beaglebone (nanti dibahas caranya).
- Power Supply 5V min. 2A, ini penting untuk menjamin ketercukupan daya dan menghindari kerusakan modul.
- Kabel USB untuk koneksi SSH ke Laptop.
- Program Putty atau MobaXterm.
- Koneksi internet ke Beaglebone.
Baik kita mulai dengan menghubungkan adapter WiFi melalu USB HUB ke Beaglebone dalam keadaan mati, karena beberapa kasus adapter tidak dapat dikenali otomatis ketika dihubungkan setelah proses booting. Nyalakan Beaglebone dan lakukan proses SSH menggunakan kabel USB ke Laptop melalui Putty atau MobaXterm. Kemudian, cek apakah perangkat sudah dikenali. Pada kasus saya modul adapter WiFi dikenali sebagai Device 004.
debian@beaglebone:~$ lsusb Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. 4-Port HUB Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 004: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter Bus 001 Device 005: ID 046d:0826 Logitech, Inc.
Driver Realtek yang terdapat di Beaglebone tidak dapat bekerja, untuk itu download drivernya langsung dari website Realtek. Sebelumnya, install dulu header linux untuk proses compile kernel drivernya nanti.
sudo apt-get install linux-headers-$(uname -r)
Kemudian download driver di halaman Support ini, atau ke halaman originalnya Realtek lalu copy-kan ke Beaglebone atau gunakan perintah berikut untuk download langsung ke Beaglebone kemudian unzip.
wget http://sonoku.com/supports/Driver_RTL8188CUS_Linux.zip
Kompilasi dan Instalasi Driver
Masuk ke dalam direktori “driver” pada folder hasil ekstrak file driver. Kemudian ekstrak file RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911
sudo untar xvzf RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911.tar.gz
masuk ke direktori hasil ekstrak, kemudian kompilasi filenya menggunakan perintah berikut
sudo make ARCH=arm
Jika terjadi error, coba buat file kosong bernama timex.h seperti yang disarankan di forum ini.
root@beaglebone:~# cd /usr/src/linux-headers-$(uname -r)/arch/arm/include/ root@beaglebone:/usr/src/linux-headers-3.8.13-bone70/arch/arm/include# mkdir mach root@beaglebone:/usr/src/linux-headers-3.8.13-bone70/arch/arm/include# touch mach/timex.h
Kemudian kembali ke direktori awal driver dan install drivernya
sudo bash install.h
Blacklist Driver Lama
Lakukan blacklist driver lama agar tidak diakses oleh adapter dengan perintah berikut:
cd /etc/modprobe.d echo "install rtl8192cu /bin/false" >> wifi_blacklist.conf echo "install rtl8192c_common /bin/false" >> wifi_blacklist.conf echo "install rtlwifi /bin/false" >> wifi_blacklist.conf
Jika file wifi_blacklist.conf tidak ada, silakan buat baru sendiri dengan editor nano. Setelah selesai reboot Beaglebone. Sekarang anda memiliki koneksi WiFi di Beaglebone, gunakan perintah berikut untuk melihat hasil scanning WiFi.
wicd-curses
Hasil yang saya dapat seperti gambar berikut, dan selanjutnya anda bisa koneksikan dengan jaringan yang tersedia.