Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Oct 2011 08:31:11 +0200
From:      gabor@zahemszky.hu
To:        <freebsd-wireless@freebsd.org>, 'Akinori Furukoshi' <moonlightakkiy@yahoo.ca>, 'Hans Petter Selasky' <hselasky@freebsd.org>
Subject:   FreeBSD and a working but unknown wlan adapter
Message-ID:  <19c213c04750b8021717de03b0ddee2d@zahemszky.hu>

next in thread | raw e-mail | index | archive | help
 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 >



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19c213c04750b8021717de03b0ddee2d>