# Setting up wireless on my x60s

## m_gustafsson

I am trying to get wireless access on my laptop Thinkpad X60s, but with no success.

I have tried with iwlwifi, and have tried to follow this wiki:

http://gentoo-wiki.com/HARDWARE_ipw3945

When I try to start the wireless access I get:

```
# /etc/init.d/net.eth1 restart

 * Service net.eth1 starting

 Failed to configure wireless for eth1                                                                                 [ !! ]

 * ERROR:  net.eth1 failed to start
```

As well as:

```
# dmesg

iwl3945: Error setting new configuration (-110).

iwl3945: Error sending REPLY_TX_PWR_TABLE_CMD: time out after 500ms.

iwl3945: Error sending REPLY_RXON: time out after 500ms.

iwl3945: Error setting new configuration (-110).

iwl3945: WARNING: Requesting MAC access during RFKILL wakes up NIC

iwl3945: MAC is in deep sleep!

iwl3945: WARNING: Requesting MAC access during RFKILL wakes up NIC

iwl3945: MAC is in deep sleep!

iwl3945: WARNING: Requesting MAC access during RFKILL wakes up NIC

iwl3945: MAC is in deep sleep!

iwl3945: WARNING: Requesting MAC access during RFKILL wakes up NIC

ACPI: PCI interrupt for device 0000:03:00.0 disabled

iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, 1.1.17kds

iwl3945: Copyright(c) 2003-2007 Intel Corporation

ACPI: PCI Interrupt 0000:03:00.0[A] -> GSI 17 (level, low) -> IRQ 21

PCI: Setting latency timer of device 0000:03:00.0 to 64

iwl3945: Detected Intel PRO/Wireless 3945ABG Network Connection

iwl3945: Tunable channels: 13 802.11bg, 23 802.11a channels

phy0: Selected rate control algorithm 'iwl-3945-rs'

udev: renamed network interface wlan0 to eth1
```

I can also see this:

```
# iwconfig eth1

eth1      IEEE 802.11g  ESSID:""  

          Mode:Managed  Frequency:2.412 GHz  Access Point: Not-Associated   

          Tx-Power=off   

          Retry min limit:7   RTS thr:off   Fragment thr=2346 B   

          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
```

And:

```
# ifconfig eth1

eth1      Link encap:Ethernet  HWaddr 00:1B:77:04:65:70  

          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)
```

My config files looks like this:

```
# ifconfig eth1

eth1      Link encap:Ethernet  HWaddr 00:1B:77:04:65:70  

          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)
```

```
# cat /etc/wpa_supplicant/wpa_supplicant.conf 

ctrl_interface=/var/run/wpa_supplicant

ctrl_interface_group=wheel

update_config=0

fast_reauth=1

network={

  ssid="ZyXEL"

  psk="********"

  pairwise=TKIP

  group=TKIP

  priority=5

}

```

Any ideas where I migth start to look?

Thanks for your help and time.

----------

## Abraxas

Are you sure that your killswitch is not enabled?

----------

## m_gustafsson

Thanks for your support.

I am pretty sure about the kill switch, at least from a "physical" point of view.

Below are two cases, the first one with the switch on (wireless is switched off) and the second with the switch off (wireless switched on):

```
# /etc/init.d/net.eth1 restart

 * Service net.eth1 starting

 network interface eth1 does not exist

 Please verify hardware or kernel module (driver)                         [ !! ]

 * ERROR:  net.eth1 failed to start

# /etc/init.d/net.eth1 restart

 * Service net.eth1 stopping

 * Service net.eth1 stopped

 * Service net.eth1 starting

 Failed to configure wireless for eth1                                    [ !! ]

 * ERROR:  net.eth1 failed to start
```

I have seen cases when I have got complaints about the kill switch even though it has been set to off.

I have then run:

```
# modprobe -r iwl3945

# modprobe iwl3945
```

and most of the times I have been able to start the service after that.

Here is also my general configuration:

```
# emerge --info

Portage 2.1.4.4 (default-linux/x86/2007.0/desktop, gcc-4.1.2, glibc-2.6.1-r0, 2.6.24-gentoo-r3 i686)

=================================================================

System uname: 2.6.24-gentoo-r3 i686 Intel(R) Core(TM) Duo CPU L2400 @ 1.66GHz

Timestamp of tree: Sun, 30 Mar 2008 17:15:01 +0000

app-shells/bash:     3.2_p17-r1

dev-java/java-config: 1.3.7, 2.1.4

dev-lang/python:     2.4.4-r9

dev-python/pycrypto: 2.0.1-r6

sys-apps/baselayout: 1.12.11.1

sys-apps/sandbox:    1.2.18.1-r2

sys-devel/autoconf:  2.13, 2.61-r1

sys-devel/automake:  1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10

sys-devel/binutils:  2.18-r1

sys-devel/gcc-config: 1.4.0-r4

sys-devel/libtool:   1.5.26

virtual/os-headers:  2.6.23-r3

ACCEPT_KEYWORDS="x86"

CBUILD="i686-pc-linux-gnu"

CFLAGS="-march=prescott -O2 -pipe -fomit-frame-pointer"

CHOST="i686-pc-linux-gnu"

CONFIG_PROTECT="/etc"

CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/udev/rules.d"

CXXFLAGS="-march=prescott -O2 -pipe -fomit-frame-pointer"

DISTDIR="/usr/portage/distfiles"

FEATURES="distlocks metadata-transfer sandbox sfperms strict unmerge-orphans userfetch"

GENTOO_MIRRORS="ftp://gentoo.imj.fr/pub/gentoo/ http://ftp.uni-erlangen.de/pub/mirrors/gentoo ftp://de-mirror.org/distro/gentoo/ ftp://ftp.rhnet.is/pub/gentoo/ "

LANG="en_GB"

MAKEOPTS="-j3"

PKGDIR="/usr/portage/packages"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"

USE="X acl acpi alsa apm cairo cdr cli cracklib crypt cups dbus doc dri dvd dvdr dvdread eds emboss encode esd evo exif fam firefox flac fortran gdbm gif gimp gnome gpm gstreamer gtk hal hdaps ibmacpi iconv ipv6 isdnlog java jpeg kerberos lcms ldap lm_sensors mad midi mikmod mp3 mpeg mudflap ncurses nforce2 nls nptl nptlonly nsplugin nvidia ogg opengl openmp oss pam pcre pda pdf perl pmu png pppd python qt-static qt3support quicktime raw readline reflection sdl session spell spl ssl svg tcpd tiff tpctlir truetype unicode vorbis win32codecs x86 xml xorg xv zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="i810 vesa"

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
```

----------

## m_gustafsson

I finally got the wireless up and running now.

It is still without any security, so that is the next step.

For the record, this is what I did...

Edited my /etc/conf.d/net:

```
$ cat /etc/conf.d/net

# This blank configuration will automatically use DHCP for any net.*

# scripts in /etc/init.d.  To create a more complete configuration,

# please review /etc/conf.d/net.example and save your configuration

# in /etc/conf.d/net (this file :]!).

config_eth0=( "dhcp" )

dhcp_eth0="nontp nonis"

modules_eth1=( "dhcpcd" "iwconfig" )

config_eth1=( "dhcp" )

dhcpcd_eth1="-t 5 -A"

essid_eth1="MyESSID"

pre-up(){

 ifconfig eth1 up

}
```

Removed net.eth1 from the default level (I think that keeping it there caused some kill switch error reporting):

```
# rc-update del net.eth1
```

And that was about it...

I will now try with some security switched on.

----------

