Linux in a Wireless World - Page 2
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
no product info available
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:
manfid 0x0138, 0x0000
# 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="126.96.36.199"
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:
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
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
Until the server end is set up, you will still get the low beep and no network configuration.
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:
PCIC_OPTS="irq_mode=1 fast_pci=1 do_scan=0 irq_list=3,4,5"
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:
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?
CREATE_SSID="AYS_NET" # Pick your own SSID and channel!!!
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