Linux in a Wireless World - Page 2

By Stew Benedict | Posted Nov 15, 2000
Page 2 of 3   |  Back to Page 1
Print ArticleEmail Article
  • Share on Facebook
  • Share on Twitter
  • Share on LinkedIn

When a card is recognized properly and configured, cardmgr issues two high-pitched beeps. If the hardware is recognized but not set up, you will hear one high and one low beep. If the card is not recognized, cardmgr emits just one low beep, which is what I got for the Compaq card. As root, I ran the following:

[root@omnibook]# cardctl ident
Socket 0:
    no product info available
Socket 1:
    product info: "Compaq", "2Mbps_Wireless_LAN_Card", "", ""
    manfid: 0x0138, 0x0000
    function: 6 (network)

This result seemed like a good sign; at least it looked like the card I wanted. I then looked at some of the other entries in wlan.config, and based on the previous output, created the following entry:

card "Compaq"
manfid 0x0138, 0x0000
bind "am930_cs" 

This got me the initial high beep and left me to set up the networking scripts to tie the card into the TCP/IP network. Doing so requires editing /etc/pcmcia/network.opts:
# IP address
IPADDR="192.168.193.40"
# Netmask
NETMASK="255.255.255.0"
# Network address
NETWORK="192.168.193.0"
# Gateway address
GATEWAY="192.168.193.1"
# Domain name
DOMAIN="ays.net"
# Nameserver #1
DNS_1="207.217.126.81"

There's more, and you can set up multiple names for different schemes, but the previous lines show the critical parts. Now start the cardmgr daemon:

/etc/rc.d/init.d/pcmcia start

That's ityou should see the following message on the console when you insert the card:

am930: Io=0x100 Iraq=3
am930: Firmware Banner: PCnetMobile:v2.01 101498 PI005
f/w version:2.01  date:101498 pi:5
ethconv=rfc1042

If not, then you'll need to go back, review your config files, and look at the log entries in /VAR/log/messages. Chances are you've made a typo, or the card is not being recognized. Any changes to files in /etc/pcmcia require restarting the cardmgr daemon with

/etc/rc.d/init.d/pcmcia restart

Until the server end is set up, you will still get the low beep and no network configuration.

Server Setup

On the server, I had to add the PCI card PCMCIA adapter to the machine. As a result, I had to shut down the server and open the case. Normally, under Linux, this task and kernel updates are the only reasons you need to reboot. Most changes can be done with the system running. I installed the card and then rebooted:

[root@moe /root]# cat /proc/pci:

Bus  0, device  15, function  0:
PCMCIA bridge: Cirrus Logic CL 6729 (rev 7).
Slow devsel. IRQ 3. 
I/O at 0xa800 [0xa801].

The card was recognized. (In case you aren't aware, the /proc directory under Linux contains a virtual filespace that details all your hardware and software interfaces with the kernel. You can discover a wealth of information by exploring these files.)

On the server, you must do a little more work to get PCMCIA working. You need to edit /etc/sysconfig/pcmcia to help the cardmgr daemon set up the adapter:

PCMCIA=yes
PCIC=i82365
PCIC_OPTS="irq_mode=1 fast_pci=1 do_scan=0 irq_list=3,4,5"
CORE_OPTS=
CARDMGR_OPTS=

In my case, this took considerable trial and error, and I locked up the machine several times before I achieved a successful setup. The Cirrus controllers have some issues that require special setup in /etc/sysconfig/pcmcia, and the system is still not happy if I bring up cardmgr services with no card in the slot. Because this card is more or less stationary, I can live with that; and I can change cards by stopping and restarting the cardmgr service:

/etc/rc.d/init.d/pcmcia stop
swap cards
/etc/rc.d/init.d/pcmcia start

The setup for wlan.config is a little different on the server. This time you do want to create a BSS when you start up:

# Create a BSS if one not detected?
      CREATEBSS=yes
      CREATE_SSID="AYS_NET"   # Pick your own SSID and channel!!!
      CREATE_CHANNEL=1
      CREATE_BCN_INT=100

The server is already running a conventional Ethernet configuration on subnet 192.168.192.0, with an IP address of 192.168.192.1 assigned to itself. For the wireless network, you want a separate subnet, so you'll use 192.168.193.0, assigning 192.168.193.1 to the server. You enter this information in /etc/pcmcia/network.opts, as before:

# Host's IP address, netmask, network address, broadcast address
IPADDR="192.168.193.1"
NETMASK="255.255.255.0"

Comment and Contribute
(Maximum characters: 1200). You have
characters left.
Get the Latest Scoop with Enterprise Networking Planet Newsletter