FreeBSD and a working but unknown wlan adapter
gabor at zahemszky.hu
gabor at zahemszky.hu
Wed Oct 19 06:51:11 UTC 2011
Hi!
Yesterday I bought a wlan adapter for my TV.
I tried it under FreeBSD, but it couldn't recognise it.
So I made my homework, and here is the output.
It is a "Samsung WIS09ABGN Wireless LAN Adapter".
It has Ralink chipset in it, so the if_run and runfw
drivers should work with it.
Here is the info and the usbconfig outputs:
Name: Samsung Wireless LAN Adapter WIS09ABGN (for selected 2009-2011
models of Samsung TVs & Blu-Ray Players)
Model: WIS09ABGN
Model Code: WIS09ABGNX/XEC
it should work - and it works! - with the if_run & runfw drivers
# usbconfig -d 2.2 dump_device_desc
ugen2.2: <802.11 n WLAN Ralink> at usbus2, cfg=0 md=HOST spd=HIGH
(480Mbps) pwr=ON
bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0200
bDeviceClass = 0x0000
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0000
bMaxPacketSize0 = 0x0040
idVendor = 0x04e8
idProduct = 0x2018
bcdDevice = 0x0101
iManufacturer = 0x0001 <Ralink>
iProduct = 0x0002 <802.11 n WLAN>
iSerialNumber = 0x0003 <1.0>
bNumConfigurations = 0x0001
# usbconfig -d 2.2 dump_all_config_desc
ugen2.2: <802.11 n WLAN Ralink> at usbus2, cfg=0 md=HOST spd=HIGH
(480Mbps) pwr=ON
Configuration index 0
bLength = 0x0009
bDescriptorType = 0x0002
wTotalLength = 0x0035
bNumInterfaces = 0x0001
bConfigurationValue = 0x0001
iConfiguration = 0x0000 <no string>
bmAttributes = 0x0080
bMaxPower = 0x00e1
Interface 0
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0000
bAlternateSetting = 0x0000
bNumEndpoints = 0x0005
bInterfaceClass = 0x00ff
bInterfaceSubClass = 0x00ff
bInterfaceProtocol = 0x00ff
iInterface = 0x0005 <1.0>
Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0081 <IN>
bmAttributes = 0x0002 <BULK>
wMaxPacketSize = 0x0200
bInterval = 0x0000
bRefresh = 0x0000
bSynchAddress = 0x0000
Endpoint 1
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0001 <OUT>
bmAttributes = 0x0002 <BULK>
wMaxPacketSize = 0x0200
bInterval = 0x0000
bRefresh = 0x0000
bSynchAddress = 0x0000
Endpoint 2
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0002 <OUT>
bmAttributes = 0x0002 <BULK>
wMaxPacketSize = 0x0200
bInterval = 0x0000
bRefresh = 0x0000
bSynchAddress = 0x0000
Endpoint 3
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0003 <OUT>
bmAttributes = 0x0002 <BULK>
wMaxPacketSize = 0x0200
bInterval = 0x0000
bRefresh = 0x0000
bSynchAddress = 0x0000
Endpoint 4
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0004 <OUT>
bmAttributes = 0x0002 <BULK>
wMaxPacketSize = 0x0200
bInterval = 0x0000
bRefresh = 0x0000
bSynchAddress = 0x0000
===
This output is with the original if_run and runfw modules.
After it, I made two small changes in the src:
a) added the device info into /usr/src/sys/dev/usb/usbdevs file:
product SAMSUNG WIS09ABGN 0x2018 WIS09ABGN Wireless LAN adapter
b) and added it to the known list of HWs in the
/usr/src/sys/dev/usb/wlan/if_run.c file:
RUN_DEV(SAMSUNG, WIS09ABGN),
unloading the original module, generating the new (with
cd /usrs/src/sys/modules/usb/run
make
and loading it with:
kldload runfw
kldload ./if_run.ko
and voila, the system has a new run0 interface. After it, created the
wlan0 interface,
started wpa_supplicant and dhclient, and I have a working wifi
connection.
usbconfig -d 2.2 - with the "modified" driver
ugen2.2: <802.11 n WLAN Ralink> at usbus2, cfg=0 md=HOST spd=HIGH
(480Mbps) pwr=ON
It is on FreeBSD 8.2-p4 i386.
bye,
Gábor Zahemszky < Gabor at Zahemszky dot HU >
More information about the freebsd-wireless
mailing list