Trouble instalasi (driver) WLAN di Toshiba Portege 4010
Ringkasan:
Saya sedang mengupayakan agar WLAN built-in di Portege 4010 saya punya bisa
berfungsi; Toshiba dan Broadcom (vendor WLAN) tidak menyediakan dukungan, spec.
sistem saya sebagai berikut:
1. CPU Intel Pentium III Mobile at 933 MHz.
2. RAM 256 Mb, share VGA 16 Mb.
3. Slot PCMCIA 2 buah
4. OS GNU/Linux, distribusinya Slackware 10.2 (instalasi standar).
5. Kernel yang dipakai versi 2.4.31 (official-nya Slackware) dan 2.6.17.1
6. Paket wireless-tools terinstal.
Kronologis:
Toshiba Portege 4010 ini dibeli second; dari WinXP punya pemilik sebelumnya
saya mendapati driver WLAN yang native dari Broadcom. Direktori kernel yang
biasanya berisi segala macam driver telah saya periksa, dan tidak ada
tanda-tanda driver untuk WLAN saya tersedia di sana. Sebelum menghapus WinXP
(dan menggantinya dgn Slackware), saya sempat mencatat sepotong info tentang
WLAN ini:
"Dell TrueMobile 1300 WLAN Mini-PCI Card.
Manufacturer: Broadcom, Corp"
Ini saya peroleh dari apa kata WinXP, pada Device Manager atau apa, saya tidak
begitu ingat persis. Sedangkan perintah "lspci" memberi hasil:
00:10.0 Network controller: Broadcom Corporation BCM4306 802.11b/g Wireless
LAN Controller (rev 02)
String di atas telah dipotong, hanya memperlihatkan baris yang relevan untuk
menghemat tempat.
Berbekal data-data tsb di atas saya googling, yang paling relevan adalah situs
"bcm43xx.berlios.de". Situs ini menyebutkan memang Broadcom tidak mendukung OS
Linux, sehingga driver yang ada merupakan hasil reverse engineering. Berikut ini
potongan dari halaman depan situs bcm43xx.berlios.de:
A Linux driver for the Broadcom bcm43xx wireless chip.
Broadcom never released details about these chips. So, this
driver is based upon reverse engineered specification.
This driver was included into the kernel since 2.6.17-rc2.
Another branch of this driver, based on the Devicescape 802.11
Stack, which should be the future in Linux Wireless support and
which supports advanced capabilities (namely, full WPA support)
can be found in the wireless-dev tree:...
...
The bcm43xx-fwcutter tool (required - see documentation fo fur-
ther info) can be found here.
...
Kutipan di atas memang tidak lengkap, sengaja untuk memperlihatkan hanya bagian
yang relevan; kesimpulan info di atas adalah:
1. Situs ini tidak meyediakan file driver secara langsung, harus diambil dg
langsung ke kernel.org (saya sudah memeriksa semua halaman situs ini).
2. Ada tool tambahan yang mutlak perlu, di situ disebut "bcm43xx-fwcutter"
yang bisa diambil langsung dari situs ini (string "here" itu link).
Maka saya berencana upgrade kernel. Dari halaman dokumentasi yang disebut-sebut
di atas, ada beberapa link yang membahas seputar instalasi driver WLAN ini, yang
sayangnya hanya mengulas distro Debian, Ubuntu dan Gento di platform Mac. Selain
itu ada pula link ke arsip milis tentang pemasangan driver ini di Fedora Core 5.
Saya mengambil semuanya dengan harapan bisa mempelajari hal-hal umum yang tidak
distro-dependent.
Menurut dokumen-dokumen tsb, langkah pemasangannya sebagai berikut (poin utama):
1. Kompilasi kernel.
2. Proses ekstraksi firmware dengan tool bcm43xx-fwcutter.
3. Reboot.
4. Mengaktifkan modul (dengan "modprobe").
5. Testing dengan "ifconfig".
Dari hasil RTFM, mungkin tidak ada jeleknya saya ceritakan tentang "firmware"...
AFAIK, driver yang dibuat dengan bantuan teknik reverse engineering itu tetap
memerlukan driver native --tetapi tidak persis seperti pada "ndiswrapper". Ada
"potongan" informasi penting yang musti diekstrak keluar dari driver native, yg
tanpanya driver hasil reverse engineering kita tidak akan berarti. Untuk alasan
inilah dibuat tool bcm43xx-fwcutter, yang bisa mengekstrak "firmware" keluar
dari driver native; maka itu pula saya memerlukan driver WLAN milik WinXP, yang
untungnya ada. Saya tidak bisa menjelaskan lebih jauh tentang "firmware", saat
ini, info ini sajalah yang saya tahu dan mencukupi (untuk sementara).
Kembali pada cerita utama, kompilasi kernel telah dilakukan sesuai arahan dari
dokumen-dokumen tsb, dan, memang saya menemukan ada entri untuk chipset WLAN ini
di bagian "Device Driver" pada konfigurator kompilasi kernel. Untuk ekstraksi
firmware, dibutuhkan file berekstensi "sys" dari kumpulan file-file driver WLAN,
pada kasus saya, file ini bernama "bcmwl5.sys". Kita bisa memeriksa dulu apakah
file target dan tool-nya cocok, dengan memberi opsi "-i" pada bcm43xx-fwcutter;
outputnya sbb:
bcm43xx-fwcutter can cut the firmware out of driver/bcmwl5.sys
filename : bcmwl5.sys
version : 4.10.40.0
MD5 : 30d20fc98bcfd52e1da778cf19b223d4
Melihat itu saya yakin dengan driver native WLAN yang ada pada saya; selanjutnya
adalah proses ekstraksi itu sendiri, perintah yang sama tetapi tanpa opsi "-i".
Hasilnya:
bcm43xx-fwcutter can cut the firmware out of driver/bcmwl5.sys
filename : bcmwl5.sys
version : 4.10.40.0
MD5 : 30d20fc98bcfd52e1da778cf19b223d4
extracting bcm43xx_microcode2.fw ...
extracting bcm43xx_microcode4.fw ...
extracting bcm43xx_microcode5.fw ...
*****: Sorry, it's not posible to extract "bcm43xx_microcode11.fw".
*****: Extracting firmware from an old driver is bad. Choose a more recent
one.
*****: Luckily bcm43xx driver doesn't include microcode11 uploads at the
moment.
*****: But this can be added in the future...
extracting bcm43xx_pcm4.fw ...
extracting bcm43xx_pcm5.fw ...
extracting bcm43xx_initval01.fw ...
extracting bcm43xx_initval02.fw ...
extracting bcm43xx_initval03.fw ...
extracting bcm43xx_initval04.fw ...
extracting bcm43xx_initval05.fw ...
extracting bcm43xx_initval06.fw ...
extracting bcm43xx_initval07.fw ...
extracting bcm43xx_initval08.fw ...
extracting bcm43xx_initval09.fw ...
extracting bcm43xx_initval10.fw ...
Ada warning, tetapi melihat pesannya seperti itu saya mengabaikannya; kelak, itu
akan membuat saya menduga bahwa sebab masalah (salah satunya) adalah driver yang
lama (tua), aakan tetapi di saat menulis email ini saya belum sempat mengambil
driver native versi terbaru.
File-file hasil ekstrak tsb harus diletakkan di rirektori tertentu tempat dimana
file "firmware" seharusnya berada; ini berbeda dari distro ke distro; kebetulan
lokasi default tool ini sama dengan lokasi yang ditetapkan oleh Slackware, yaitu
di "/lib/firmware".
Langkah berikutnya adalah reboot untuk mencoba kernel baru ini, kemudian lakukan
"modprobe" untuk mengaktifkan driver, demikian menurut dokumentasi. Anehnya, itu
agak berbeda dengan yang terjadi pada sistem saya; menurut dokumentasi, langkah
"modprobe" perlu, sedangkan di sistem saya, itu tidak lagi perlu (sebab modulnya
telah aktif secara otomatis, artinya, bukan manual oleh saya).
Saya memeriksa dengan perintah "iwconfig" terlebih dahulu, dan memang hasilnya
menggembirakan, WLAN sepertinya dikenali (ini berbeda dengan saat masih memakai
kernel official, 2.4.31). Hasil "iwconfig" sbb:
lo no wireless extensions.
eth0 IEEE 802.11b/g ESSID:off/any Nickname:"Broadcom 4306"
Mode:Managed Frequency=2.437 GHz Access Point: FF:FF:FF:FF:FF:FF
Bit Rate=1 Mb/s
RTS thr:off Fragment thr:off
Encryption key:off
Link Quality:0 Signal level:0 Noise level:0
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
eth1 no wireless extensions.
Jika (masih) memakai kernel official (2.4.31), hanya ada "lo" dan "eth0" dengan
string "no wireless extensions." pada masing-masing interface, artinya WLAN tdk
dikenal. Saya pikir, sekarang saya bisa bergembira dengan menjalankan perintah
"ifconfig eth0 up"... Akan tetapi, sayangnya, masalah mulai terjadi; hasil yang
saya peroleh dari perintah itu sama sekali tidak menggembirakan:
SIOCSIFFLAGS: No such device
Nah, lho... :-(
Saya kira, tidak ada yang terlewat dari semua arahan di dalam dokumentasi; lalu,
investigasi terhadap log juga samar saja; berikut ini output "dmesg" setelah
perintah "ifconfig eth0 up" dieksekusi:
CLASS: registering class device: ID = '0000:00:10.0'
class_uevent - name = 0000:00:10.0
class->uevent() returned -19
class_uevent - name = 0000:00:10.0
CLASS: Unregistering class device. ID = '0000:00:10.0'
class_uevent - name = 0000:00:10.0
device class '0000:00:10.0': release.
CLASS: registering class device: ID = '0000:00:10.0'
class_uevent - name = 0000:00:10.0
class->uevent() returned -19
class_uevent - name = 0000:00:10.0
CLASS: Unregistering class device. ID = '0000:00:10.0'
class_uevent - name = 0000:00:10.0
CLASS: registering class device: ID = '0000:00:10.0'
class_uevent - name = 0000:00:10.0
class->uevent() returned -19
class_uevent - name = 0000:00:10.0
CLASS: Unregistering class device. ID = '0000:00:10.0'
class_uevent - name = 0000:00:10.0
device class '0000:00:10.0': release.
bcm43xx: Card IRQ register not responding. Giving up.
device class '0000:00:10.0': release.
Output tsb dipotong, untuk menghemat tempat. Bukankah aneh, proses registrasi
device selalu gagal (dugaan saya, nilai balik fungsi yang "-19" itulah tandanya
gagal). Berulang beberapa kali, dan sama saja hasilnya; akhirnya driver bcm43xx
"menyerah" (ditandai dengan pesan "Giving up."). Informasi tambahan: itu karena
"Card IRQ register not responding". Kaya' Windoz saja...
Dan, tidak ada jeleknya pula mengetahui bahwa error seperti pada log tsb telah
terjadi semenjak awal, yakni saat modul/driver aktif otomatis (yakni, di waktu
sistem booting). Log yang ada membuktikannya; berikut ini hasil "dmesg", sebelum
pesan-pesan error yang di atas:
device class 'pcmcia_socket': registering
bus pci: add driver yenta_cardbus
pci: Matched Device 0000:00:11.0 with Driver yenta_cardbus
PCI: Found IRQ 11 for device 0000:00:11.0
PCI: Sharing IRQ 11 with 0000:00:12.0
Yenta: CardBus bridge found at 0000:00:11.0 [1179:0001]
Yenta: ISA IRQ mask 0x06b8, PCI irq 11
Socket status: 30000007
CLASS: registering class device: ID = 'pcmcia_socket0'
class_uevent - name = pcmcia_socket0
bound device '0000:00:11.0' to driver 'yenta_cardbus'
pci: Bound Device 0000:00:11.0 to Driver yenta_cardbus
pci: Matched Device 0000:00:11.1 with Driver yenta_cardbus
PCI: Found IRQ 11 for device 0000:00:11.1
Yenta: CardBus bridge found at 0000:00:11.1 [1179:0001]
Yenta: ISA IRQ mask 0x06b8, PCI irq 11
Socket status: 30000007
CLASS: registering class device: ID = 'pcmcia_socket1'
class_uevent - name = pcmcia_socket1
bound device '0000:00:11.1' to driver 'yenta_cardbus'
pci: Bound Device 0000:00:11.1 to Driver yenta_cardbus
Pesan tsb, juga dipotong; ini adalah bagian yang memperlihatkan debug messages
waktu PCMCIA dideteksi dan dikonfigurasi; bagian ini terlihat lancar saja, saat
registrasi device tidak ada tanda masalah, dan memang faktanya tak ada masalah
dengan PCMCIA. Bagian lanjutannya berikut ini, memperlihatkan giliran si WLAN,
dan masalah terlihat mirip dengan saat perintah "ifconfig eth0 up" yang telah
saya ulas di atas. Sambungan hasil "dmesg" sbb:
ieee80211_crypt: registered algorithm 'NULL'
ieee80211: 802.11 data/management/control stack, git-1.1.7
ieee80211: Copyright (C) 2004-2005 Intel Corporation <[EMAIL PROTECTED]>
device class 'firmware': registering
bcm43xx driver
bus pci: add driver bcm43xx
pci: Matched Device 0000:00:10.0 with Driver bcm43xx
PCI: Enabling device 0000:00:10.0 (0000 -> 0002)
PCI: Found IRQ 11 for device 0000:00:10.0
PCI: Sharing IRQ 11 with 0000:01:00.0
PCI: Enabling bus mastering for device 0000:00:10.0
bcm43xx: Chip ID 0x4306, rev 0x2
bcm43xx: Number of cores: 6
bcm43xx: Core 0: ID 0x800, rev 0x2, vendor 0x4243, enabled
bcm43xx: Core 1: ID 0x812, rev 0x4, vendor 0x4243, enabled
bcm43xx: Core 2: ID 0x80d, rev 0x1, vendor 0x4243, enabled
bcm43xx: Core 3: ID 0x807, rev 0x1, vendor 0x4243, disabled
bcm43xx: Core 4: ID 0x804, rev 0x7, vendor 0x4243, enabled
bcm43xx: Core 5: ID 0x812, rev 0x4, vendor 0x4243, disabled
bcm43xx: Ignoring additional 802.11 core.
bcm43xx: PHY connected
bcm43xx: Detected PHY: Version: 1, Type 2, Revision 1
bcm43xx: Detected Radio: ID: 2205017f (Manuf: 17f Ver: 2050 Rev: 2)
bcm43xx: Radio turned off
bcm43xx: Radio turned off
Dibandingkan dengan potongan log sebelumnya, terbukti PCMCIA dan WLAN saling
berbagi IRQ, yakni IRQ 11. Sejauh ini terlihat oke (??) saja; selanjutnya:
CLASS: registering class device: ID = 'eth0'
class_uevent - name = eth0
bound device '0000:00:10.0' to driver 'bcm43xx'
pci: Bound Device 0000:00:10.0 to Driver bcm43xx
bus pci: add driver ohci1394
pci: Matched Device 0000:00:0c.0 with Driver ohci1394
PCI: Enabling device 0000:00:0c.0 (0000 -> 0002)
PCI: Found IRQ 11 for device 0000:00:0c.0
PCI: Sharing IRQ 11 with 0000:00:0a.0
PCI: Enabling bus mastering for device 0000:00:0c.0
DEV: registering device: ID = 'fw-host0'
PM: Adding info for ieee1394:fw-host0
bus ieee1394: add device fw-host0
CLASS: registering class device: ID = 'fw-host0'
class_uevent - name = fw-host0
bcm43xx: PHY connected
bcm43xx: PHY disconnected
bcm43xx: PHY connected
CLASS: registering class device: ID = '0000:00:10.0'
class_uevent - name = 0000:00:10.0
class->uevent() returned -19
class_uevent - name = 0000:00:10.0
ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[11] MMIO=[28109000-281097ff]
Max Packet=[2048] IR/IT contexts=[4/8]
bound device '0000:00:0c.0' to driver 'ohci1394'
pci: Bound Device 0000:00:0c.0 to Driver ohci1394
CLASS: Unregistering class device. ID = '0000:00:10.0'
class_uevent - name = 0000:00:10.0
CLASS: registering class device: ID = '0000:00:10.0'
class_uevent - name = 0000:00:10.0
class->uevent() returned -19
class_uevent - name = 0000:00:10.0
CLASS: Unregistering class device. ID = '0000:00:10.0'
class_uevent - name = 0000:00:10.0
device class '0000:00:10.0': release.
CLASS: registering class device: ID = '0000:00:10.0'
class_uevent - name = 0000:00:10.0
class->uevent() returned -19
class_uevent - name = 0000:00:10.0
device class '0000:00:10.0': release.
CLASS: Unregistering class device. ID = '0000:00:10.0'
class_uevent - name = 0000:00:10.0
bcm43xx: Card IRQ register not responding. Giving up.
device class '0000:00:10.0': release.
Nah, bagian terakhir ini mirip dengan log ketika "ifconfig eth0 up" dijalankan.
Ada banyak "...returned -19" dan juga "device class ...: release." terlihat di
log tsb.
Penutup:
Saya sebelumnya telah mencoba beberapa distro lain, untuk melihat progress
kemajuan yang mungkin bisa saya peroleh; saya pernah mencoba Mandriva 2006,
Knoppix 3.x dan BackTrack (turunan Slax). Akan tetapi semua tidak memberikan
hasil memuaskan --bahkan Mandriva sekalipun.
Saya tidak menginginkan pindah distro hanya gara-gara sebuah WLAN, Slackware
telah saya pakai semenjak kurang lebih 5 tahunan. Saya juga tak menginginkan
membeli PCMCIA card dengan chipset yang telah didukung Linux --tak ada budget
untuk itu ;-)
Saya telah mencoba memakai ndiswrapper milik BackTrack dengan driver native yang
saya peroleh dari WinXP tsb --tidak berhasil.
Dan, terakhir kali, saya tidak bermaksud membuat tutorial ;-) Dengan email yang
sepanjang ini, mohon maaf yang sangat kepada rekan-rekan di milis; maksud saya
adalah demi jelasnya masalah.
Adakah rekan yang punya solusi? Atau (pernah) punya Portege 4010 dan menghadapi
masalah yang sama? Atau mengetahui link/clue untuk pemecahannya? Did i miss
something?
Jangan-jangan, solusinya simpel saja... :)
Saya berencana, sementara email ini saya posting ke milis, untuk mencoba sendiri
kombinasi ndiswrapper 1.19 dengan driver native yang terbaru; atau mungkin tanpa
ndiswrapper dulu. Saya belum tahu kemungkinannya...
Terima kasih sebelumnya atas perhatian rekan-rekan. CU8LTR...
ttd
Fath
---------------------------------
Apakah Anda Yahoo!?
Kunjungi halaman depan Yahoo! Indonesia yang baru!
[Non-text portions of this message have been removed]
------------------------ Yahoo! Groups Sponsor --------------------~-->
Great things are happening at Yahoo! Groups. See the new email design.
http://us.click.yahoo.com/TISQkA/hOaOAA/yQLSAA/0XFolB/TM
--------------------------------------------------------------------~->
"This is my way being a linuxer..."
http://jogja.linux.or.id
http://jogja.linux.or.id/wiki/
Untuk berhenti langganan silahkan kirim email kosong ke:
[EMAIL PROTECTED]
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/jogja-linux/
<*> To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/