OpenSolaris

You are not signed in. Sign in or register.

Solaris Wireless FAQ

Jan. 25, 2008

Contents:



Solaris Wireless GENERAL INFORMATION

1.
Q: How to install WiFi driver?
    Please install the latest Solaris Nevada build, or SXDE release. Almost all WiFi works are integrated into Nevada. However, if you want to add driver, please make sure to choose the right one, and follow the steps below:

  • Step 1: Check WiFi hardware
       # prtconf -pv
    You can grep "pciclass, 028000" for WiFi card's vendor id, and device id; To check compatible list to make sure it is supported.

    You can also read information from scanpci output directly to check if the hardware is supported or not:
       # /usr/X11/bin/scanpci -v
  • Step 2: Choose right driver & right versions according to the compatible list ;

  • Step 3: Install driver by specific command:
       # cp driver_32bit /kernel/drv
       # cp driver_64bit /kernel/drv/amd64
       # add_drv -i '"pcixxxx,xxxx"' driver_name
    or, install driver by pkgadd command:
       # pkgadd -d . SUNWxxxx
[top | opensolaris wireless ]

2.
Q: My laptop has WiFi driver installed, how come it doesn't work?
    All drivers integrated into Nevada or uploaded to OpenSolaris community have been tested and verified. Before reporting any problems, please check the following things first:

  • Make sure driver is correctly installed by:
       # modinfo | grep [driver_name]
    Also, run devfsadm to make sure a link to WiFi interface is created under /dev:
       # devfsadm -i [driver_name]
  • Do not forget plumb interface:
       # ifconfig [WiFi_interface] plumb
  • Make sure radio switch is ON. It is very easy to be neglected. Although wificonfig support get radio status, but not all drivers support this feature. For ipw and iwi drivers, you can try:
       # wificonfig getparam radio
  • If you are using build(snv_62+), you can try GUI tool nwam. The usability is friendly. Initiate it, by:
       # svcadm disable svc:/network/physical:default
       # svcadm enable svc:/network/physical:nwam
  • If GUI doesn't work, or you run earlier build, or you want to try command line tools(dladm), you can try some basic commands:
       # svcadm disable nwam /* disable nwam firstly */
       # dladm scan-wifi
       # dladm show-wifi
    For WEP/WPA network, please create security object first:
       # dladm create-secobj -c wep/wpa [key_name]
       ...input key here...
    Then, you can connect to a specific AP:
       # dladm connect-wifi -e [essid_name] -k [key_name] [WiFi_interface]
    for other scenario, dladm manpage has more detailed information.

  • The other command line tool, wificonfig, can be used as well:
       # wificonfig -i [WiFi_interface] scan
    wificonfig support profile, so user can connect to specific profile directly:
       # wificonfig createprofile [myprofile_name] essid=[essid_name] encryption=wep wepkey1=[key]
       # wificonfig -i [WiFi_interface] connect [myprofile_name]
    for more usage, please refer to wificonfig manage.

  • If all above steps do not work, please send an email to laptop community for more advices.
[top | opensolaris wireless ]

3.
Q: How to BFU the latest build from external network?
[top | opensolaris wireless ]

4.
Q: How do I know what features my WiFi driver supports?
    None Encryption and WEP encryption are basic functions. If they don't work, please send mail to laptop community to let us know.

    For other features, such as WPA/WPA2, please refer to compatible list which contains the information of the latest supported features.
[top | opensolaris wireless ]

5.
Q: How to set up console to monitor what happens when system hangs?
    If you'd like to try Solaris debugging, you can do:
       1. # eeprom console=ttya        /* redirect console */
       2. # eeprom boot-file=kmdb      /* enable kmdb at boot */
       3. # reboot
       4. connect the serial port in you laptop to that in another machine with a
          DB9 serial cable.
    On another machine which the serial connects to:
       5. # tip -9600 /dev/ttya        /* open a serial console */
    when driver hangs, in the redirected serial console
       6. push key 'Shift'+'~'+'#'     /* enter kmdb */
       7. in kmdb
          7.1 >pcwl_intr:b             /* set breakpoint */
          7.2 >:c                      /* continue */
          7.3 >$C                      /* print the interrupt stack frame */
[top | opensolaris wireless ]

6.
Q: Is there any WiFi support in S10 and updates?
    At present, we do not have any plan to integrate wireless support into Solaris 10 & updates.

    However, we provided several GLDv2 version drivers on opensolaris webpage for download. You can download packages and install them following instructions. Please note, these GLDV2 version drivers are not integrated into Solaris and the testing was not done as sufficienty as GLDv3 versions. It's at your own risk use these drivers.
[top | opensolaris wireless ]

7.
Q: Is there any GUI tool for WiFi that I can use in Solaris?
    Check your system first. If it's snv_62+, you can use nwam already, which is a GUI tool to configurate network. You can use it by running:
       # svcadm disable svc:/network/physical:default
       # svcadm enable svc:/network/physical:nwam
    Get more detailed info with # man nwamd.
[top | opensolaris wireless ]

8.
Q: I do not know how to use command line tool for WiFi set up, do you have any document that I can refer to?
    We have two command line tools: dladm and wificonfig

  • Please refer to the document "System Administration Guide: IP Services" on how to configure WiFi with dladm:
    http://docs.sfbay.sun.com/app/docs/doc/819-3000/gduew?a=view
    When this section was written, WPA was not supported. So for setting WPA, you still need to # man dladm and check dladm create-secobj section.

    Detailed info about nwam is on opensolaris.org:
    http://opensolaris.org/os/project/nwam/
    Currently phase 0 has been integrated into OpenSolairs b62.

  • Wificonfig is going to be obsolete. But as it's the first WiFi configuration tool and has been there for years, many GUI tools, like inetmenu and the network admin panel, are developed on its basis. The available doc is # man wificonfig.

  • NOTE: snv boundled wificonfig doesn't support WPA while dladm does. Set WPA-PSK as beow:
       # dladm create-secobj -c wpa wpa_key
       # dladm connect-wifi -e ap_name -k wpa_key
[top | opensolaris wireless ]

9.
Q: Do I have to compile WiFi drivers downloaded from the OpenSolaris webpage? Can I get the binary directly?
    Except for malo, zyd and ndiswrapper, you can access all other WiFi driver from SXDE or opensolaris laptop community(wireless project). For malo, zyd and ndiswrapper, you need to build them yourself due t license issues. The instructions are listed in their pages: malo, zyd and ndis.

[top | opensolaris wireless ]

10.
Q: Which WiFi driver supports SPARC platform?
    pcwl and pcan drivers support SPARC platform.

[top | opensolaris wireless ]

11.
Q: How can I get debug message output?
    The way to enable debug message output for different drivers are different. But, most drivers have debug flags. Set them to correct values, you can see more debug message from /var/adm/messages output. Drivers' debug flags are:
       . ath: ath_dbg_flags
       . wpi: wpi_dbg_flags
       . ipw: ipw2100_debug
       . iwi: ipw2200_debug
       . wpa: wpa_debug_level
       . ndis: debug-level
    There are different ways for this:
  • Add debug flag line in the bootom of /etc/system for different drivers:
       set driver-name:debug_flag = 0xffffffff 
  • use mdb to set up message log, for example(wpa):
       # echo "wpa_debug_level, 1/w 1" | mdb -p `pgrep wpad`
  • modify configuration file, for example(ndis):
       insert one line in /kernel/drv/bcmndis.conf:
       debug-level=0xf;
  • a specifical case, wpad(OpenSolaris version), you can use command like below:
       # wpa_supplicant -i ath -F -dd

[top | opensolaris wireless ]


DRIVER INFORMATION

1. wpi(Intel Pro. Wireless 3945 chip) : -> OpenSolaris WPI page

1.1
Q: The wpi(Intel 3945 driver) doesn't work because of I/O error, is there any work around for this?
1.2
Q: The wpi has permission denied error, how to fix it?
    If the output message of # ifconfig wpi0 plumb looks like anyone of below:
       # ifconfig wpi0 plumb
       ifconfig: plumb: wpi0: I/O error
    
       # ifconfig wpi0 plumb
       ifconfig: SIOCSLIFNAME for ip: wpi0: permission denied
    Or, if dmesg out has 0xFF eeprom read out, this may relate to a known boot bug of solaris: CR6419924 which is not integrated yet.

    Becasue of the incorrect configuration of the pcie-pci bridge, the memory operation can not be forwarded by the bridge, so all I/O(memory mapped I/O) operation on 3945 fail, so that all the registers on 3945 are read out as 0xFF.

    There is a workaround: wpi-bdg-workaround.tar.gz. Please download the tar file, unzip and run it following below steps:
       # gzip -dc wpi-bdg-workaround.tar.gz | tar xvf -
       # ./wpi_bdg_workaround.ksh
[top | opensolaris wireless ]

2. WPA(wireless protected access) : -> OpenSolaris WPA page

2.1
Q: I installed the latest build which is supposed to support WPA, how come it doesn't work?
2.2
Q: I can connect to my access point successfully, but I can not get an IP address through DHCP. Why?
[top | opensolaris wireless ]

2.3
Q: The wpa_supplicant fails to start with error message "ld.so.1: wpa_supplicant: fatal : libssl.so.0.9.7: open failed: No such file or directory". What does it mean?
    Make sure that openssl 0.9.7 or higher is installed on your system. You can use the following command to determine your openssl version:
       # /usr/sfw/bin/openssl version
       OpenSSL 0.9.7d 17 Mar 2004 
[top | opensolaris wireless ]

2.4
Q: The EAP-TLS does not work, why?
    The EAP-TLS mode needs a Radius Server, such as Freeradius. Please contact your network administrator to make sure your Radius Server and your AP are configured correctly and you have a certificate for your machine.
[top | opensolaris wireless ]

2.5
Q: Why doesn't CCMP encryption work?
    The wpa_supplicant deamon supports both TKIP and CCMP, while because of CR6615681 which is about AES-CCM algorithm, drivers relying on software to handle encryption do not support CCMP.
[top | opensolaris wireless ]


3. NDIS Wrapper : -> OpenSolaris NDIS page

3.1
Q: Can ndis wrapper support other chipsets besides Broadcom?
    This wrapper is an experimental solution to support broadcom driver. We only verified them on broadcom chipset. There is the probability that the ndiswrapper may also work for other chipsets. However, we didn't try any and could not give you any guarantee.

[top | opensolaris wireless ]

3.2
Q: Why ndis wrapper doesn't work on my AMD64bit laptop?
    Because Solaris lacks of SSE2 instruction support, but most of Windows 64bit drivers have SSE2 instructions in it. On current state, it relys on the Solaris kernel feature enhancement. But, it's unfortune that we do not know any specific plan of that yet.

[top | opensolaris wireless ]

3.3
Q: How to build and compile the ndiswrapper code?
    For license concers, you need to compile this driver. The steps are easy and straight forward, please follow the details on the following website:
       # wget http://opensolaris.org/os/community/laptop/wireless//os/community/laptop/downloads/Wireless_Success.pdf

[top | opensolaris wireless ]


4. IPW/IWI : -> OpenSolaris ipw page, iwi page

4.1
Q: radio parameter is supported, can I set radio on by command?
    ipw and iwi are two drivers support WL_RADIO ioctl. But, they support get command only that means wificonfig can be used to check whether currently radio is on or off by command # wificonfig -i ipw0 getparam radio, but can not turn radio on.

[top | opensolaris wireless ]