How to use a PCMCIA WiFi Card

Hi everybody,

I’m trying to use a PCMCIA WiFi Card in a PC104, but I can’t start using it,
there is some output:

prism_receive: Frame too long! 62842
prism_handle_info_event(): FID is 0
prism_write_rid(long preamble) failed: -1

And it doesn’t star network. I hope someone help me.



Eugenio Yime



Here is some useful information.

PCMCIA : NETGEAR MA401
QNX6 Driver (according to help in QNX): devn-prism.so
MAC 00095B49F8F7

PCMCIA BOOT OUTPUT WHEN STARTING IN LINUX
Starting PCMCIA services: Linux Kernel Card Services 3.1.22
options: [pci] [cardbus]
Intel ISA PCIC probe: not found.
PCI: Enabling device 00:0c.0 (0004 → 0006)
Yenta IRQ list 00c0, PCI irq10
Socket status: 30000010
using yenta_socket instead of i82365
cardmgr[109]: watching 1 socketscs: IO port probe 0x0c00-0x0cff: clean.
cs: IO port probe 0x0a00-0x0aff: clean.
cardmgr[110]: starting, version is 3.2.3
cs: memory probe 0xa0000000-0xa0ffffff: clean.
done.
cardmgr[110]: socket 0: Netgear MA401RA Wireless Adapter
cardmgr[110]: executing: ‘modprobe orinoco_cs’
cardmgr[110]: executing: ‘./network start eth1’

BIOS OUTPUT:

PCI Device Table.
Bus Dev Func VendID DevID Class Irq
00 00 00 1022 3000 Host Bridge
00 0C 00 104C AC56 CardBus Bridge
00 0D 00 1282 9102 Ethernet 11

PCMCIA in BUILDFILE


Start PCMCIA driver

display_msg Starting PCMCIA
devp-pccard -a0xa00:0xc00 -l7
waitfor /dev/pccard
io-net -dprism ssid=wireless2,mode=ibss,channel=6,ioport=0xa00:0xc00,irq=7
-pttcpip
if=en1:130.100.76.139:255.255.255.0,route=138.00.76.:255.255.255.0:138.100.76.1


OUTPUT when BOOTING QNX

Starting COM Ports
Starting PCI Server
Can’t locate PNP bios (No error)
Starting IDE
Mounting HD in QNXFS and DOSFS
Path=0 - Generic IDE
target=0 lun=0 Direct-Access(0) - SanDisk SDCFB-32 Rev: HDX
Starting Davicom Ethernet
Starting PCMCIA
Starting Shell

prism_receive: Frame too long! 62842

prism_handle_info_event(): FID is 0
prism_write_rid(long preamble) failed: -1
ttcpip: unable to add route: 138.100.76.1: No route to host.



COMPLETE BUILDFILE

[virtual=x86,bios +compress] boot = {
startup-bios -D8250.2f8.115200 -K8250.2f8.115200
PATH=/proc/boot procnto
}

[+script] startup-script = {

Start Up COM Ports

display_msg Starting COM Ports
devc-ser8250 3f8,4 -F -e -b115200 2f8,3 &
waitfor /dev/ser2

Start PCI server

display_msg Starting PCI Server
seedres
pci-bios &
waitfor /dev/pci

Start IDE

display_msg Starting IDE
devb-eide eide ioport=0x1f0,irq=14 &
display_msg Mounting HD in QNXFS and DOSFS
waitfor /dev/hd0
mount -t dos /dev/hd0t1 /DOSFS
mount -t qnx4 /dev/hd0t77 /QNXFS

Start Davicom LAN Network

display_msg Starting Davicom Ethernet
io-net -ddm9102 -pttcpip
if=en0:138.100.76.31:255.255.255.0,route=138.100.76.:255.255.255.0:138.100.76.1
waitfor /dev/socket

Start PCMCIA driver

display_msg Starting PCMCIA
devp-pccard -a0xa00:0xc00 -l7
waitfor /dev/pccard
io-net -dprism ssid=wireless2,mode=ibss,channel=6,ioport=0xa00:0xc00,irq=7

-pttcpip
if=en1:130.100.76.139:255.255.255.0,route=138.00.76.:255.255.255.0:138.100.76.1

Some common servers

pipe &
mqueue &
qconn &

Start a shell

display_msg Starting Shell
reopen /dev/con1
[+session] esh
}

Cheat and make the /temp point to the shared memory area…

[type=link] /tmp=/dev/shmem

Programs require the runtime linker (ldqnx.so) to be at a fixed location

[type=link] /usr/lib/ldqnx.so.2=/proc/boot/libc.so

Console redirection

[type=link] /dev/console=/dev/ser2
[type=link] /dev/con1=/dev/ser2

We use the “c” shared lib (which also contains the runtime linker)

libc.so

drivers for filesystems

io-blk.so
libcam.so
cam-disk.so
fs-dos.so
fs-qnx4.so
libmalloc.so

drivers for nerwork

libsocket.so
devn-dm9102.so
npm-ttcpip.so
devn-prism.so
devn-ne2000.so

The files above this line can be shared by mutiple processes

[data=c]

Executables must currently be below this line

Include pci server

pci-bios
seedres

Other executables

devc-ser8250
devb-eide
io-net
devp-pccard
pccard-launch

esh
mount
umount
ls
ping
pin
pipe
mqueue
qconn
shutdown

Well I had verified that each connection works well when only one interface
is configured.

For WiFi, my buildfile is:

Start WiFi Network

display_msg Starting WiFi Network

devp-pccard -a0xa00:0xc00 -i10 -l7 ss -V0x104C -D0xAC56

waitfor /dev/pccard

io-net -dprism ssid=wireless2,mode=bss,ioport=0xa00:0xc00,irq=7 -ptcpip

waitfor /dev/io-net/en0

ifconfig en0 138.100.76.53 netmask 255.255.255.0

route add default 138.100.76.1





For LAN my builfile is :

Start LAN Network

display_msg Starting LAN Network

io-net -ddm9102 -ptcpip

waitfor /dev/io-net/en0

ifconfig en0 138.100.76.36 netmask 255.255.255.0

route add default 138.100.76.1





But when I try to use both interface I obtain an error, of course in this
case I change the buildfile to avoid using the same en0:

Start Network

display_msg Starting Network Interface

io-net -ddm9102 -ptcpip -dprism
ssid=wireless2,mode=bss,ioport=0xa00:0xc00,irq=7 -ptcpip

waitfor /dev/io-net/en0

ifconfig en0 138.100.76.36 netmask 255.255.255.0

ifconfig en1 138.100.76.136 netmask 255.255.255.0

route add default 138.100.76.1





There’s an error after the second ifconfig: ifconfig en1 …



I’m waiting for help …

Eugenio Yime wrote:
[snip]

Start Network

display_msg Starting Network Interface

io-net -ddm9102 -ptcpip -dprism
ssid=wireless2,mode=bss,ioport=0xa00:0xc00,irq=7 -ptcpip

You do not need to run a tcpip stack per driver - remove one of the
“-ptcpip” entries here and that should work a lot better.

waitfor /dev/io-net/en0

ifconfig en0 138.100.76.36 netmask 255.255.255.0

ifconfig en1 138.100.76.136 netmask 255.255.255.0

route add default 138.100.76.1

Thanks, it works…

“Jay Greig” <greig@qnx.com> escribió en el mensaje
news:dvc8uq$37v$1@inn.qnx.com

Eugenio Yime wrote:
[snip]

Start Network

display_msg Starting Network Interface

io-net -ddm9102 -ptcpip -dprism
ssid=wireless2,mode=bss,ioport=0xa00:0xc00,irq=7 -ptcpip

You do not need to run a tcpip stack per driver - remove one of the
“-ptcpip” entries here and that should work a lot better.


waitfor /dev/io-net/en0

ifconfig en0 138.100.76.36 netmask 255.255.255.0

ifconfig en1 138.100.76.136 netmask 255.255.255.0

route add default 138.100.76.1