martybugs.net Wireless Info
 navigation
. MartyBugs home
. wireless home
 
 antenna
. Conifer antenna modifications
. my mast & antenna install
. my old mast & antenna install
. Marcus' mast & antenna install
. biquad antenna construction
. double biquad antenna
. compact collinear antenna
. anatomy of rubber ducky
. using antennas
 
 antenna testing
. Conifer antenna testing
. more Conifer testing
. antenna comparison
 
 software
. OpenWrt Wireless Router
. Linux Wireless Router
. Link Monitoring with RRDTool
. Traffic Monitoring with RRDTool
. Bandwidth Monitoring with ipac-ng
. HDD Temp Monitoring with RRDTool
 
 installation
. RedHat 7.3 on Dell Optiplex GXi
. RedHat 7.3 on PPro VS440FX
. RedHat 9.0 on Celeron 466
. Aironet PCI4800
 
 site search
Custom Search
 
Linux Wireless Router :: RedHat 9 on Celeron 466

This page documents my experiences getting Enterasys RoamAbout wireless cards and SVEC PCI adapters working in a Celeron 466 box, running RedHat 9 Linux.
Hopefully it'll prove useful for some other people trying to do the same thing.

Contents:   Hardware | Software | Firmware | Installation | References

Hardware
  • generic-brand PC with the following specs
        -Celeron 466
        -Tekram motherboard
        -384MB RAM
        -6.4GB IDE HDD
  • 2 x SVEC WL-123 PCMCIA to PCI adapters
  • 2 x Enterasys RoamAbout wireless network cards (flashed to 6.06 firmware)
  • 3 x RealTek RTL-8139/8139C/8139C+ PCI network cards
Software Firmware Software Installation & Configuration
RedHat 9.0 Installation
After an uneventful installation of RedHat 9 from CD, the machine was put onto the the network by configuring a static IP on eth0 by editing /etc/sysconfig/network-scripts/ifcfg-eth0:

 DEVICE=eth0
 ONBOOT=yes
 BOOTPROTO=static
 IPADDR=10.60.11.130
 NETMASK=255.255.255.224

Changing Some Defaults
I edited /etc/sysconfig/network and changed the value of HOSTNAME to something more appropriate (ie, gimli.mpot.mm.wafreenet instead of localhost.localdomain).

I then installed various updates, and compiled a fresh 2.4.28 kernel for the box, using kernel pcmcia rather than pcmcia-cs.

PCMCIA and RoamAbout Drivers
Unlike the issues I had with RedHat 7.3 on older motherboards, RedHat 9 on this motherboard had no issues finding the two PCMCIA cradles and RoamAbout PCMCIA cards.

However, I found that after restarting the PCMCIA service, the second RoamAbout card would fail to start, with syslog showing the failure:

Dec  1 00:47:01 gimli cardmgr[3468]: socket 1: Cabletron RoamAbout 802.11 DS
Dec  1 00:47:01 gimli kernel: GetNextTuple().  No matching CIS configuration, 
 maybe you need the ignore_cis_vcc=1 parameter.
Dec  1 00:47:01 gimli kernel: orinoco_cs: GetFirstTuple: No more items
Dec  1 00:47:02 gimli cardmgr[3468]: get dev info on socket 1 failed: Resource 
 temporarily unavailable

Despite trying various things, I couldn't find the cause of this. As a workaround, (soft) ejecting the cards before restarting PCMCIA works:

  cardctl eject
  service pcmcia restart
  cardctl insert

IP Forwarding
Unlike RedHat 7.3, I found executing

  echo 1 > /proc/sys/net/ipv4/ip_forward

was not sufficient to get routing working, as it would reset to 0 after a reboot.
Instead, I had to edit /etc/sysctl.conf and change the contents to read

  net.ipv4.ip_forward = 1

Bogus Route
When looking at the routing table (using route -n), I noticed the following entry:

169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth3

After googling for more info, I found this post, indicating it was caused by zero configuration networking (zeroconf), which apparently is default behaviour in RedHat 9.
To remove this route, I edited /etc/sysconfig/network, and added

 NOZEROCONF=yes

After restarting the network (service network restart), the extra route was gone.

Wireless Configuration
RedHat 9's network scripts totally ignore any configuration placed into /etc/pcmcia/wireless.opts. There are a number of workarounds to this, but I found the easiest way was to add all wireless configuration parameters to the interface script.

For my freenet uplink interface, I edited /etc/sysconfig/network-scripts/ifcfg-eth3:

DEVICE=eth3
ONBOOT=yes
BOOTPROTO=static
IPADDR=10.60.11.2
NETMASK=255.255.255.224
INFO="WA FreeNet..."
ESSID="MartinMast"
NWID=""
MODE="Managed"
FREQ=""
CHANNEL=""
SENS=""
RATE="1M"
KEY=""
RTS="off"
FRAG=""
IWCONFIG="nick mpot"
IWSPY=""
IWPRIV=""

The other wireless interface was similarly configured by editing /etc/sysconfig/network-scripts/ifcfg-eth4:

DEVICE=eth4
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.1
NETMASK=255.255.255.0
TYPE=wireless
INFO="home wireless network"
ESSID="pothome"
NWID=""
MODE="Ad-Hoc"
FREQ=""
CHANNEL="1"
SENS=""
RATE=""
KEY="s:XXXXX"
RTS=""
FRAG=""
IWCONFIG="nick gimli"
IWSPY=""
IWPRIV=""

Note that the XXXXX indicates the WEP key I'm using (obscured for obvious reasons).

PCMCIA was restarted:

cardctl eject
service pcmcia restart
cardctl insert

and both wireless interfaces now came up correctly configured.

Upgrade orinoco_cs
The orinoco_cs driver was upgraded to 0.15rc2.

Upgrade Wireless Tools
Whenever using any of the wireless tools (ie, iwconfig, iwspy, etc), the following error would be displayed:

 Warning: Driver for device eth2 has been compiled with version 16
 of Wireless Extension, while this program is using version 15.
 Some things may be broken...

I downloaded wireless tools version 27 from Jean Tourrilhes' Wireless Tools for Linux page, and SCP-ed it into /usr/src.

I first uninstalled the RedHat wireless tools RPM:

rpm -e wireless-tools

and then untarred the wireless tools source code:

cd /usr/src
tar zxvf wireless_tools.27.tar.gz
cd wireless_tools.27

To ensure the binaries would be installed into the locations that RedHat was expecting, I edited the Makefile, and changed

PREFIX = /usr/local

to

PREFIX = 

This will ensure the binaries will be installed into /sbin/, instead of /usr/local/sbin/.

I then compiled and installed the wireless tools from the source:

make
make install

After a reboot, all wireless tools now worked correctly without any errors.

Broken wavemon
However, after rebooting, I found that wavemon (a very useful tool for monitoring signal, noise and SNR in real-time) would no longer run:

 [mpot mpot]# wavemon
 fatal error: could not get range information

and the following error would be logged to the syslog:

 Dec  7 05:46:17 gimli kernel: eth2 (WE) : Buffer for request 8B0B too small (308<564)

Recompiling wavemon now that a newer version of wireless tools was installed made no difference.

Further investigation indicated it was due to a mismatch of versions of the wireless header files, caused by the earlier upgrade of the wireless tools.
/usr/include/linux/wireless.h was from wireless extensions version 15, while /include/wireless.h was from wireless extensions version 17. The later version was copied over the top of the older version:

  cp /usr/include/linux/wireless.h /usr/include/linux/wireless.h.old
  cp /include/wireless.h /usr/include/linux/wireless.h

and wavemon now successfully worked after being recompiled.


More Info
Refer to my page on setting up a wireless router for more info on updating the orinoco_cs driver, setting up routing, dhcpd, etc.

References
Jean Tourrilhes' Wireless Tools for Linux
Recipe for a Linux 802.11b Home Network


last updated 22 Oct 2013
 
.