LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   Wireless problem (not that again!) (https://www.linuxquestions.org/questions/slackware-14/wireless-problem-not-that-again-4175420632/)

m.knives 08-06-2012 07:52 AM

Wireless problem (not that again!)
 
Hello, I apologize for yet another wi-fi topic, but I can't find a solution. Bear with me as I strike you with a wall of text, where I'll try to show you what I've done so far.

I should mention that wireless connection worked without any issues on this 6 or 7 years old laptop when running OpenSUSE and Ubuntu. Now I've installed a fresh full Slackware 13.37 (32 bit).

Haven't configured network during installation.

Code:

# ifconfig
lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Code:

#iwconfig
lo          no wireless extensions.

eth0          no wireless extensions.

wlan0    IEEE 802.11bg  ESSID:off/any 
          Mode:Managed  Access Point: Not-Associated  Tx-Power=0 dBm 
          Retry  long limit:7  RTS thr:off  Fragment thr:off
          Encryption key:off
          Power Management:off

Code:

#ifconfig wlan0 up
(I've configured my router so that it has no encryption)
Code:

#iwlist wlan0 scan
wlan0    Scan completed :
          Cell 01 - Address: <router's mac>
                    Channel:9
                    Frequency:2.452 GHz (Channel 9)
                    Quality=70/70  Signal level=-30 dBm 
                    Encryption key:off
                    ESSID:"linuxquestions"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                              9 Mb/s; 12 Mb/s; 18 Mb/s
                    Bit Rates:24 Mb/s; 36 Mb/s; 48 Mb/s; 54 Mb/s
                    Mode:Master
                    Extra:tsf=0000000024300d80
                    Extra: Last beacon: 510ms ago
                    IE: Unknown: 000E6C696E75787175657374696F6E73
                    IE: Unknown: 010882848B960C121824
                    IE: Unknown: 030109
                    IE: Unknown: 2A0100
                    IE: Unknown: 32043048606C
                    IE: Unknown: DD180050F2020101860003A4000027A4000042435E0062322F00
                    IE: Unknown: DD1E00904C334E101BFFFF000000000000000000000000000000000000000000
                    IE: Unknown: 2D1A4E101BFFFF000000000000000000000000000000000000000000
                    IE: Unknown: DD1A00904C34090F0800000000000000000000000000000000000000
                    IE: Unknown: 3D16090F0800000000000000000000000000000000000000
                    IE: Unknown: DD0900037F01010000FF7F
                    IE: Unknown: DD0A00037F04010000004000
#and a bunch of other networks

Trying to connect to my network:
Code:

#iwconfig wlan0 essid linuxquestions
Code:

#iwconfig wlan0
wlan0    IEEE 802.11bg  ESSID:"linuxquestions" 
          Mode:Managed  Frequency:2.452 GHz  Access Point: F8:D1:11:CF:E8:FC 
          Bit Rate=1 Mb/s  Tx-Power=20 dBm 
          Retry  long limit:7  RTS thr:off  Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=70/70  Signal level=-30 dBm 
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:1  Missed beacon:0

Looks good. Now to get IP:
Code:

#dhcpcd
dhcpcd[2105]: version 5.2.11 starting
dhcpcd[2105]: wlan0: rebinding lease of 192.168.0.103
dhcpcd[2105]: eth0: waiting for carrier
dhcpcd[2105]: wlan0: acknowledged 192.168.0.103 from 192.168.0.1
dhcpcd[2105]: wlan0: checking for 192.168.0.103
dhcpcd[2105]: wlan0: leased 192.168.0.103 for infinity
dhcpcd[2105]: forked to background, child pid 2152

It worked, but just to be sure:
Code:

#ping linuxquestions.org
PING linuxquestions.org (75.126.162.205) 56(84) bytes of data.
64 bytes from www.linuxquestions.org (75.126.162.205): icmp_req=1 ttl=48 time=161 ms
64 bytes from www.linuxquestions.org (75.126.162.205): icmp_req=2 ttl=48 time=163 ms
64 bytes from www.linuxquestions.org (75.126.162.205): icmp_req=3 ttl=48 time=161 ms
64 bytes from www.linuxquestions.org (75.126.162.205): icmp_req=4 ttl=48 time=160 ms

--- linuxquestions.org ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 160.654/161.793/163.821/1.252 ms

Great.

Now, need to check if automatic connection during boot works.
Code:

# vim /etc/rc.d/rc.inet1.conf

# This file contains the configuration settings for network interfaces.
# If USE_DHCP[interface] is set to "yes", this overrides any other settings.
# If you don't have an interface, leave the settings null ("").

# You can configure network interfaces other than eth0,eth1... by setting
# IFNAME[interface] to the interface's name. If IFNAME[interface] is unset
# or empty, it is assumed you're configuring eth<interface>.

# Several other parameters are available, the end of this file contains a
# comprehensive set of examples.

# =============================================================================

# Config information for eth0:
IPADDR[0]=""
NETMASK[0]=""
USE_DHCP[0]=""
DHCP_HOSTNAME[0]=""

# Config information for eth1:
IPADDR[1]=""
NETMASK[1]=""
USE_DHCP[1]=""
DHCP_HOSTNAME[1]=""

# Config information for eth2:
IPADDR[2]=""
NETMASK[2]=""
USE_DHCP[2]=""
DHCP_HOSTNAME[2]=""

# Config information for eth3:
IPADDR[3]=""
NETMASK[3]=""
USE_DHCP[3]=""
DHCP_HOSTNAME[3]=""

# Default gateway IP address:
GATEWAY=""

# Change this to "yes" for debugging output to stdout.  Unfortunately,
# /sbin/hotplug seems to disable stdout so you'll only see debugging output
# when rc.inet1 is called directly.
DEBUG_ETH_UP="no"

## Example config information for wlan0.  Uncomment the lines you need and fill
## in your data.  (You may not need all of these for your wireless network)
IFNAME[4]="wlan0"
IPADDR[4]=""
NETMASK[4]=""
USE_DHCP[4]="yes"
#DHCP_HOSTNAME[4]="icculus-wireless"
#DHCP_KEEPRESOLV[4]="yes"
#DHCP_KEEPNTP[4]="yes"
#DHCP_KEEPGW[4]="yes"
#DHCP_IPADDR[4]=""
WLAN_ESSID[4]=linuxquestions
#WLAN_MODE[4]=Managed
#WLAN_RATE[4]="54M auto"
#WLAN_CHANNEL[4]="auto"
#WLAN_KEY[4]="D5A31F54ACF0487C2D0B1C10D2"
#WLAN_IWPRIV[4]="set AuthMode=WPAPSK | set EncrypType=TKIP | set WPAPSK=96389dc66eaf7e6efd5b5523ae43c7925ff4df2f8b7099495192d44a774fda16"
#WLAN_WPA[4]="wpa_supplicant"
#WLAN_WPADRIVER[4]="wext"
#WLAN_WPAWAIT[4]=30

Reboot.
Code:

/etc/rc.d/rc.inet1:  wlan0 information: 'Any ESSID'
Error for wireless request Set Nickname (8B1C) :
    SET failed on device wlan0 ; Operation not supported.
Polling for DHCP server on interface wlan0:
dhcpcd[2017]: version 5.2.11 starting
dhcpcd[2017]: wlan0: waiting for carrier
dhcpcd[2017]: wlan0: carrier acquired
dhcpcd[2017]: wlan0: rebinding lease of 192.168.0.103
dhcpcd[2017]: wlan0: acknowledged 192.168.0.103 from 192.168.0.1
dhcpcd[2017]: wlan0: checking for 192.168.0.103
dhcpcd[2017]: wlan0: leased 192.168.0.103 for infinity
dhcpcd[2017]: forked to background, child pid 2055

There was an error, but it worked.

Now, of course I want my wi-fi to be encrypted eventually, so let's try wicd (but still with unprotected network).

I went back to the original inet1.conf (as suggested in extra/wicd package), installed it and rebooted.
Code:

#ifconfig
eth0      Link encap:Ethernet  HWaddr 00:16:36:6C:77:63 
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Interrupt:18

lo        Link encap:Local Loopback 
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

wlan0    Link encap:Ethernet  HWaddr 00:17:C4:00:22:0B 
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

Looks like wicd enabled all my cards. That's fine. Now let's try connecting to my network:
Code:

#wicd-curses

Wireless Networks(s)
C STR                ESSID          ENCRYPT        BSSID        MODE  CHNL
  100%        linuxquestions  Unsecured  <mac addr>  Master    9
...
a bunch of other networks
...

Not connected

I select my network and press ENTER to connect to it, at the bottom the messages change like this:
Code:

Not connected
None: Putting interface up...       
linuxquestions: Obtaining IP address...
Not connected

When I refresh the list:
Code:

No wireless networks found.
So wicd can't even connect to an unprotected network.

And it looks like wicd hard-blocks my card:
Code:

#rfkill list
0: phy0: Wireless LAN
        Soft blocked: no
        Hard blocked: yes

At this point I can do only one thing to bring back my card up - reboot.

After that ifconfig shows all 3 (eth0, lo, wlan0) interfaces up again.
Checking rfkill:
Code:

#rfkill list
0: phy0: Wireless LAN
        Soft blocked: no
        Hard blocked: no

Bringing wlan0 down manually
Code:

#ifconfig wlan0 down
ifconfig shows only 2 interfaces and rfkill prints out no/no, but when I try to bring wlan0 up, it doesn't come up and rfkill shows no/yes! :( This laptop has a separate physical button to enable/disable wi-fi card, but it has never worked under any distribution I've tried, so I can't enable it manually.

I've uninstalled wicd and went back to Alien BOB's wiki to configure wi-fi manually using wpa_supplicant (I've reconfigured my router to use WPA-PSK encryption).

Copied output from
Code:

#wpa_passphrase linuxquestions SlacKWaRE
to /etc/wpa_supplicant.conf
Code:

# See /usr/doc/wpa_supplicant-0.7.3/wpa_supplicant.conf.sample
# for many more options that you can use in this file.

# This line enables the use of wpa_cli which is used by rc.wireless
# if possible (to check for successful association)
ctrl_interface=/var/run/wpa_supplicant
# By default, only root (group 0) may use wpa_cli
ctrl_interface_group=0
eapol_version=1
ap_scan=1
fast_reauth=1
#country=US

# WPA protected network, supply your own ESSID and WPAPSK here:
network={
  scan_ssid=0
  ssid="linuxquestions"
  proto=WPA RSN
  key_mgmt=WPA-PSK
  pairwise=CCMP TKIP
  group=CCMP TKIP WEP104 WEP40
  #psk="SlacKWaRE"
  psk=8c52a60432c1109267723e89231fec2e5d87cc003af3015075b512615f99e799
  priority=10
}

# Plaintext connection (no WPA, no IEEE 802.1X),
# nice for hotel/airport types of WiFi network.
network={
  key_mgmt=NONE
  priority=0
}

Edited /etc/rc.d/rc.inet1.conf as well:
Code:

/etc/rc.d/rc.inet1.conf

# Config information for eth0:
IPADDR[0]=""
NETMASK[0]=""
USE_DHCP[0]=""
DHCP_HOSTNAME[0]=""

# Config information for eth1:
IPADDR[1]=""
NETMASK[1]=""
USE_DHCP[1]=""
DHCP_HOSTNAME[1]=""

# Config information for eth2:
IPADDR[2]=""
NETMASK[2]=""
USE_DHCP[2]=""
DHCP_HOSTNAME[2]=""

# Config information for eth3:
IPADDR[3]=""
NETMASK[3]=""
USE_DHCP[3]=""
DHCP_HOSTNAME[3]=""

# Default gateway IP address:
GATEWAY=""

# Change this to "yes" for debugging output to stdout.  Unfortunately,
# /sbin/hotplug seems to disable stdout so you'll only see debugging output
# when rc.inet1 is called directly.
DEBUG_ETH_UP="no"

## Example config information for wlan0.  Uncomment the lines you need and fill
## in your data.  (You may not need all of these for your wireless network)
IFNAME[4]="wlan0"
IPADDR[4]=""
NETMASK[4]=""
USE_DHCP[4]="yes"
#DHCP_HOSTNAME[4]="icculus-wireless"
#DHCP_KEEPRESOLV[4]="yes"
#DHCP_KEEPNTP[4]="yes"
#DHCP_KEEPGW[4]="yes"
#DHCP_IPADDR[4]=""
WLAN_ESSID[4]=linuxquestions
WLAN_MODE[4]=Managed
#WLAN_RATE[4]="54M auto"
#WLAN_CHANNEL[4]="auto"
#WLAN_KEY[4]="D5A31F54ACF0487C2D0B1C10D2"
#WLAN_IWPRIV[4]="set AuthMode=WPAPSK | set EncrypType=TKIP | set WPAPSK=96389dc66eaf7e6efd5b5523ae43c7925ff4df2f8b7099495192d44a774fda16"
WLAN_WPA[4]="wpa_supplicant"
WLAN_WPADRIVER[4]="wext"
#WLAN_WPAWAIT[4]=30

During boot, I see this:
Code:

/etc/rc.d/rc.M:  wlan0 information: 'Any ESSID'
Error for wireless request Set Nickname (8B1C) :
    SET failed on device wlan0 ; Operation not supported.

#hangs here for about a minute

SIOCSIFFLAGS: Operation not possible due to RF-kill
Polling for DHCP server on interface wlan0:
dhcpcd[1949]: version 5.2.11 starting
dhcpcd[1949]: wlan0: up_interface: Operation not possible due to RF-kill
dhcpcd[1949]: wlan0: waiting for carrier
dhcpcd[1949]: timed out
dhcpcd[1949]: allowing 8 seconds for IPv4LL timeout
dhcpcd[1949]: timed out

I've also tried setting IP manually in inet1.conf:
Code:

IFNAME[4]="wlan0"
IPADDR[4]="192.168.0.103"
NETMASK[4]="255.255.255.0"
USE_DHCP[4]=""
DHCP_HOSTNAME[4]=""
GATEWAY="192.168.0.1"
#DHCP_KEEPRESOLV[4]="yes"
#DHCP_KEEPNTP[4]="yes"
#DHCP_KEEPGW[4]="yes"
#DHCP_IPADDR[4]=""
WLAN_ESSID[4]=linuxquestions
WLAN_MODE[4]=Managed
#WLAN_RATE[4]="54M auto"
#WLAN_CHANNEL[4]="auto"
#WLAN_KEY[4]="D5A31F54ACF0487C2D0B1C10D2"
#WLAN_IWPRIV[4]="set AuthMode=WPAPSK | set EncrypType=TKIP | set WPAPSK=96389dc66eaf7e6efd5b5523ae43c7925ff4df2f8b7099495192d44a774fda16"
WLAN_WPA[4]="wpa_supplicant"
WLAN_WPADRIVER[4]="wext"
#WLAN_WPAWAIT[4]=30

So, with manual configuration rfkill also shows "hard block yes" :(

Can anyone throw ideas at me?

P.S. I've tried setting router to use WEP encryption and I could connect to it by editing /etc/rc.d/rc.inet1.conf. However I don't intend to run my router with WEP.

P.P.S I've now booted Ubuntu-live (which connected to my "linuxquestions" "SlaCKwaRE" without problems), but I wanted to check if bringing down and back up wlan0 would also hardblock my card, and the answer is: yes.

allend 08-06-2012 09:38 AM

With my hardware I have had problems with connecting when the wireless router is set to use WPA2. I find it helps to specify the use of WPA2 only in /etc/wpa_supplicant.conf as well as in wicd.
What happens if you set
Code:

proto=RSN
in /etc/wpa_supplicant.conf, reboot, and then, as root, do a manual setup
Code:

wpa_supplicant -B -c/etc/wpa_supplicant.conf -iwlan0 -Dwext
dhcpcd

This is to test that your hardware is properly detected and initialised.

onebuck 08-06-2012 10:05 AM

Member Response
 
Hi,

For your static IP, you need to define 'Gateway=" in '/etc/rc.d/rc.inet1.conf'. You will need to do a 'route' to setup the device. Do a 'route -n' from the cli to see the route table.

Here is a method that you can use with modification for your local setting;
Quote:

I would setup a static IP first, do as root from cli;

Code:

For Ethernet(wired) use this part;
~#/sbin/ifconfig eth0 192.168.0.18
~#/sbin/route add default gw 192.168.0.1

OR
For wireless use this part
Code:

~#ifconfig -a                      #get recognized devices
 ~#ifconfig wlan0 192.168.0.10      #set to a available IP
~#route add default gw 192.168.0.1 #set to your gateway

Then proceed to this part;
Code:

  ~#route -n                        #show the kernel route table
 ~#ifconfig wlan0 up          #should be up already

Code:



 ~#ping 192.168.0.1              #ping your gateway
 ~#ping 208.69.32.130          #google.com IP
 ~#ping google.com              #test DNS, if fail then
                                    #check /etc/resolv.conf
 

You should have your '/etc/resolv.conf' setup with your 'ISP DNS' nameservers.

Code:

sample '/etc/resolv.conf';

 search 192.168.1.1   
 nameserver xxx.xxx.xxx.xxx  #ISP DSN 'replace xxx.xxx.xxx.xxx
                              #with IP from your ISP

 nameserver  8.8.8.8            #Google
 nameserver  67.215.65.132 #OpenDNS
 nameserver 4.2.2.1          #Verizon third level DNS
 nameserver 4.2.2.2            #OK to use
 nameserver 4.2.2.3
 nameserver 4.2.2.4
 

If you want a script for wireless then cut & paste the below script or copy it to the filename 'wlan.sh' Don't forget to chmod it to +x. (You need to learn some things on your own) Hint you will be root to run it.

Code:

~# cat wlan.sh
#!/bin/bash            ###start
#
#10-26-09 13:30 gws
#setup the bcm4312 wlan0 device
#
/sbin/ifconfig wlan0 192.168.0.18
/sbin/route add default gw 192.168.0.1
/sbin/iwconfig wlan0 essid "Your Device ID"
/sbin/iwconfig wlan0 key <PLACE KEY>
/sbin/iwconfig wlan0 ap <00:00:00:00:00:00> <you get this from the 'iwlist wlan0 scan' above  ### end

Once you have filled in the correct assignments above then just execute the script. The commands should all be available on any Gnu/Linux.

You will need to setup the '/etc/resolv.conf' with your ISP nameservers the fallback Verizon third level or google and OpenDNs are useful fallbacks.
Quote:

sample '/etc/resolv.conf;
#Verizon third level DNS
#place your ISP DNS first thus ahead of the Verizon DNS
#
nameserver xxx.xxx.xxx.xxx
nameserver 4.2.2.1
nameserver 4.2.2.2

Or You may want to look at the '/etc/resolv.conf' file before modifying it.

HTH!

m.knives 08-06-2012 12:19 PM

@onebuck, but all that configuration is for unencrypted or just WEP-encrypted network, I can connect that way without problems using DHCP.

@allend, that works! With vanilla inet1.conf (so that interfaces don't start up automatically) and typing
Code:

wpa_supplicant -B -c/etc/wpa_supplicant.conf -iwlan0 -Dwext
dhcpcd

resulted in a successful connection to WPA2-encrypted network.
(proto=RSN had no effect)
Now, the way I just made it to work, is by adding those 2 lines to /etc/rc.d/rc.local.

I was afraid that plugging in ethernet cable would not make all traffic switch to eth0, but it does. Unplugging it switches traffic back to wlan0. Good.

I will leave it the way it is set up now, because I don't know if it's possible change wicd's behavior from:

1. putting interfaces up during boot
2. putting wlan0 down when trying to connect to a network
3. putting it back up (which doesn't work, because my card is "rf-killed" at this point)

to not putting wlan0 down at all.

I think my parents will survive without a gui configuration tool for configuring wi-fi. The laptop travels mostly around the flat, so it's not often that it has to connect to other networks.

I'll mark the thread as solved, but if anyone has a better solution, feel free to post it here :)

onebuck 08-06-2012 12:47 PM

Member Response
 
Hi,
Quote:

Originally Posted by m.knives (Post 4747353)
@onebuck, but all that configuration is for unencrypted or just WEP-encrypted network, I can connect that way without problems using DHCP.
<snip>

Then I would look at: Configuring your network in Slackware <- Alien_Bob's excellent article on the way network cards are configured in Slackware. + Loads of internal reference links + Ethernet & Wireless

Eric covers security setup in the guide.

I usually setup static IP this way then when things are working I will setup security. From what I have read from you to date you were not able to get the wireless setup period.

Probably missed something. My apologies.

m.knives 08-06-2012 01:31 PM

No worries. There's a lot of information in my 1st post, and it's a bit chaotic too, but I did write that even though there was an error, Slackware managed to connect to my unencrypted network during boot. I've also said:
Quote:

and went back to Alien BOB's wiki to configure wi-fi manually using wpa_supplicant
which means I've already visited the wiki you have linked :)

allend 08-06-2012 08:01 PM

Good to know that those lines I posted for testing actually worked. It means that your hardware can be properly recognised and configured for WPA2. I strongly advise that you persist with getting wicd to work. It will make it easy for users to switch between wired and wireless interfaces. You could also investigate the use of post-connect scripts for running an appropriate firewall script for the interface in use.

m.knives 08-07-2012 03:06 PM

Quote:

Originally Posted by allend (Post 4747637)
I strongly advise that you persist with getting wicd to work.

You bastard! By saying that, you made me work a whole day on finding a solution... and I did!

I checked what driver my wi-fi card was running on, and it was ath5k. Since it's an old laptop, I thought that maybe some support for my card was dropped in newer kernel modules/drivers. I popped in my Ubuntu 8.10 and booted it in live-cd mode. I tried putting my card up and down several times, and it worked this time. The strange (for me) thing was that instead of 1 wireless interface (wlan0), I had 2 (ath0 + wifi0-00); I assume that the 2nd one is some kind of virtual interface. Anyway; next I ran
Code:

# lsmod | grep -i ath
and it showed a different module
Code:

ath_pci
After some investigation, I stumbled upon Alien BOB's wiki again! (thanks for writing that 5 or so years ago, Eric :) ), which pointed me to the MadWifi project. I grabbed their v0.9.4 drivers, installed them on my Slackware 13.37, blacklisted the ath and ath5k modules and modprobed the new (or rather old :P ) ath_pci.

Now wicd works without any issues (I only had to change the wireless interface in preferences to ath0).

Thanks for pushing me, allend :)


All times are GMT -5. The time now is 03:20 PM.