• Welcome to OS2World OLD-STATIC-BACKUP Forum.
 

News:

This is an old OS2World backup forum for reference only. IT IS READ ONLY!!!

If you need help with OS/2 - eComStation visit http://www.os2world.com/forum

Main Menu

Networking configuration issue - boot does not complete

Started by Peter400, 2010.07.29, 02:32:59

Previous topic - Next topic

Andi

Quote from: Peter400 on 2010.08.11, 18:54:21
...
>ifconfig lan1 192.168.4.1                      <= my router IP address
ioctl (SIOCAIFADDR): File exists

>ifconfig lan1 192.168.4.44

>ifconfig lan1
lan1: flags=8843<UP,BROADCAST,RUNNING,MULTICAST,LOOPBRD>
        inet 192.168.4.44  netmask 0xffffff00 broadcast 192.168.4.255

>ifconfig lan2 192.168.4.34                     <= lan2 is not configured
ioctl (SIOCAIFADDR): Invalid argument

When the driver loads, a light on the router comes up, indicating an active link.
But when I try to ping the router:
>ping 192.168.4.1

nothing is sent successfully

Peter

Now I run out of ideas :-(

As the answer from 'ifconfig lan1' tell us the driver is loaded and seems to work. I would interpret 'ioctl (SIOCAIFADDR): File exists' that your machine even sees the router. The netmask seems to be okay. No clue about the other flags.

As stated before I would check IRQ setting - which one has you set and is it shared with others? Personally I wouldn't trust any 'automatic resource assignment' software with ISA (PCMCIA). Maybe the output of pci.exe gives some ideas.

I don't think that a wrong route setting can make a ping within the same subnet fail. But not sure about this. Anyway it's in the \mptn\bin\setup.cmd. Does not hurt if you post your current version as the older one you posted before is with DHCP. If there's still no default route in there you can set one with 'route add ....' on the fly or in tcpcfg2.

Peter400

Update:

After many tests, also with a different PCMCIA card, I came to the conclusion that there's nothing wrong with the networking setup, the problem is with the PCMCIA controller. The interrupts do not pass from the card to the driver, they are lost on their way somewhere in the PCMCIA controller or bridge.
Trying wireless MA401 (with generic Prism driver), I saw on my router service page (from a different computer, of course) that it leased an IP address to my OS/2 laptop - yet OS/2 never recognized this, and the corresponding LAN was in a permanent "configuring" state.

I tried to manually configure many different IRQs, and to reserve them using RESERVE.SYS. The Xircom driver says on boot-up that it accepts the given IRQ (I still have to disable the resource checking though). Generic Prism driver does not work with other IRQs either.

So DHCP does not work, because the driver never sees the response. The same with ping, because the driver never sees the acknowledgement packet which arrives as the reponse (the ping packets are reported as sent, but not "successfully").

I also tried using CBENABLE.SYS from Veit Kannegieser (this required using a different socket driver, TI1225CB.SYS, and also his SPCIIRQ package), but it made no difference.

The hardware is not defective, both cards work just fine under Linux.

So, my original subject line is no longer correct, now I have to figure out how to unblock these interrupts in the PCMCIA controller so they'll reach the Xircom driver.

Peter


warpcafe

Hi Peter,

okay, I cannot wait any longer to double-check since it will take some time for me to get back to the machine again... I was successful in digging out the old floppy disk I used for storing the network setup and have even found a floppy drive that was able to read at least some of the files (the floppy was in a box for about 8 years).

While I cannot give you the perfect 100% setup instructions, there is one thing I want you to check:
In your protocol.ini there must be a section (somewhere to the bottom) that is named [cemndis] something or similar... (something with either xircom and/or ndis in it). In this section there are parameters like "irq = 10" or similar (I can't check here!!) ... BUT:

Make sure there is a line that reads
SHAREIRQ = YES
I remember THAT was the key point to make the crap work in my case.

What would help is that you send me the drivers you are using - especially, there should ba a file with the extension of ".NIF", possibly contained in a (sub)directory called "NDIS" perhaps below/within a (sub)directory called "OS2".
Best would be to ZIP the whole stuff and send me. The problem is that I can't access these thing on the old floppy disk ;) so perhaps we can make something work here...

Cheers, HTH,
Thomas
"It is not worth an intelligent man's time to be in the majority.
By definition, there are already enough people to do that"
- G.H. Hardy

warpcafe

Hi,

okay - a little more information... I was able to dig out something on the internet.

Quote
PROTOCOL.INI Example

    [XIRCOMNET]
    DRIVERNAME=XIRCOM
    MEM=0xD2000
    MODE=IO

The protocol.ini section name "[XIRCOMNET]" does not apply in your case, obviously it should be something different.
You will find a relating entry in your protocol.ini somewhere at the top...

Here are explanations/samples for nearly all the keywords supported (the amount of supported keywords may vary with your driver)


Keyword Default Valid Values
COMx AUTO (x = 1, 2, 3, or 4)
COMIRQ= AUTO (3 to 15)
COMBASE= AUTO (0x248 to 0x3F8)
DRIVERNAME=XIRCOM$ (required first item in PROTOCOL.INI)
INTERRUPT= AUTO (3 - 15)
IOADDRESS= AUTO (100 - FF0)
IOWAITSTATES= 0 (1 - 3)
LINESPEED= auto (10 or 100)
LINKDISABLE (no keyword = link integrity enabled)
MEMORY= AUTO (C0000 to EE000)
MEMWAITSTATES= 0 (1 - 3)
MODE= MEM (MEM or IO)
NOCHECK (no keyword = adapter resource verification enabled)
NOCOM (no keyword = MODEM enabled)
NOEARLYRX (no keyword = early receive enabled)
NOEARLYTX (no keyword = early transmit enabled)
NOLED (no keyword = LEDs enabled)
SHAREIRQ  
SOCKET= Auto (1 - 4)
WORDSIZE= 16 (8 or 16)


Now, from what I recall, I had the following entries in my protocol.ini for the NDIS driver:
(But I will check this once I have access to the old floppy again...)


    [CE2NDIS]
    DRIVERNAME={depends_on_your_driver-just_keep_existing_entry}
    MEM=0xD2000
    MODE=MEM
    INTERRUPT=11
    SHAREIRQ


...as you might have noticed, it's not "shareirq=yes" but rather the keyword "shareirq" only that needs to be present.
And as a final hint to find the "NDIS" driver: Sometimes you might find it under "IBM LAN Manager driver"...

Let me close by stating the key message: For Xircom PC-Cards and OS/2, there is only 1 thing that counts - the correct entries in protocol.ini
(At least my experience)

HTH,
Thomas
"It is not worth an intelligent man's time to be in the majority.
By definition, there are already enough people to do that"
- G.H. Hardy

Peter400

Hi Thomas,

Thanks for your replay. I'll post my current protocol.ini after I get home tonight.
My Xircom card model is CE3B-100.
I downloaded the driver from Hobbes http://hobbes.nmsu.edu/download/pub/os2/system/drivers/network/ce3b-os2.zip
As you can see, the NIF file does not list any options for IRQ sharing, but of course I'll try it anyway!

Peter

I

warpcafe

Hi Peter,

...but a look (view, hex...) into the first part of the driver reveals that "shareirq" is a value that the driver looks for in the protocol.ini ;) anyway... yes, please, send your files. I cannot promise to solve this but I'll do my best.
BTW: The "shareirq" apparently tells the Xircom card to use the same IRQ for modem and network components (perhaps OS/2 had problems assigning multiple interrupts to 1 PCCard...). In your case, however, this wouldn't apply since you have a "network only" card I guess... (?).

Let's see what your files tell us. ;)
Cheers,
Thomas
"It is not worth an intelligent man's time to be in the majority.
By definition, there are already enough people to do that"
- G.H. Hardy

Peter400

Hi Thomas,

My PROTOCOL.INI says:

[CE3OS2_nif]
  DriveName = XIRCOM$
  IRQ = 10
  SOCKET = 1
  MODE = "IO"
  NOCHECK
  LINESPEED = 10


Adding SHAREIRQ made no difference.

I also tried it without enforcing IO mode, and without enforcing line speed - no success.
I'm using 10 Mbit setting, because the card is said to work in full duplex mode at this speed. Only half-duplex is possible with 100 Mbit.

Peter

Andi

Quote from: Peter400 on 2010.08.25, 04:49:51
....
I also tried it without enforcing IO mode, and without enforcing line speed - no success.
I'm using 10 Mbit setting, because the card is said to work in full duplex mode at this speed. Only half-duplex is possible with 100 Mbit.

Peter

Usually forcing Link speed/mode is a bad thing. It is guaranteed to work ONLY when the link partner is forced to the same settings too. Of course most times it will work if the other one is in Auto mode, but not for sure.

Your are sure your cabling is okay? Have you tried this setup with other OSes?

warpcafe

Hi Peter,

okay, there is one thing that looks "wrong" with the protocol.ini in my mind:
For the operation mode ("MODE=...") you have selected "IO" however, there is no IO-Address specified... and I'm pretty sure the driver is not capable of "auto-assigning" itself an IO address even if "IOADDRESS=AUTO" is in there... which in theory means it will fallback to a default IO address (in the best case - otherwise it will simply fail). And even if it is assigned a default IOAddress, that particular one might already be used by something else.

I suggest you try
IOADDRESS=320
as an additional entry in protocol.ini... obviously, one should use an address that is available, however I can't tell how to check if that is free, IIRC there is something like "rmview /IO" on the command-line that shows the adresses in use... if that helps.

To see if the IRQ is available, you can use "rmview /irq" on the command-line respectively.

There is also a switch for memory... not sure how that was called though.
The reason I talk about "memory" is that, as far as I recall from my experience, I always used the "MEM" operation mode instead of "IO". Try something like that:

[CE3OS2_nif]
 DriveName = XIRCOM$
 IRQ = 10
 SOCKET = 1
 MODE = "MEM"
 MEMORY=0xD2000
 NOCHECK
 LINESPEED = 10

Make sure you have the right socket (1,...4) specified.
BTW - is there no error message displayed at driver load?
There are loads of messages built into the driver like
- A card was not detected in the selected slot
- The specified IRQ failed resource checking
- The selected I/O address is in use
et cetera...
This could really be helpful ;)
In order for this to work, you must remove the "NOCHECK" line - because right now, with that "nocheck", the resources allocated by the driver will not be checked and you will not be given error messages in case they are unavailable. Here's a complete protocol.ini (the included IOADDRESS is "inactive" and just for information because mode is "MEM"ory...)

[CE3OS2_nif]
 DriveName = XIRCOM$
 IRQ = 10
 SOCKET = 1
 MODE = "MEM"
 MEMORY=0xD2000
 IOADDRESS=320
 LINESPEED = 10

I remember that for me it was a question of a couple of reboots (with power off/back on to ensure proper hardware re-initialization) until I had a working combination of IRQ and memory address.

Keeping fingers crossed... please let us know if your driver issues useful error messages at load time...
Thomas
"It is not worth an intelligent man's time to be in the majority.
By definition, there are already enough people to do that"
- G.H. Hardy

Andi

Quote from: warpcafe on 2010.08.25, 11:32:15
...
Which brings us back to the DOS config tool I mentioned above. Does this not exist for this special card? Can this card be configured through the driver? All PCMCIA network cards I've seen till now have to be configured with the DOS program before using it. Or at least I've used the DOS utility to find out the settings. I only have to tell the driver which settings the card was configured before.

If there's no DOS configurartion utility I suggested using pci utility. Maybe this will show the 'configured' settings for IO and IRQ...

warpcafe

Hi Andi,

...although I know that Xircom is now Intel I was not successful in finding anything useful and OS/2-related at their end.
Perhaps there is something available hidden in a "full driver set" ZIP... whatever. My personal copies of driver CDs and files have vanished to Valhalla some years ago. Perhaps there's some FTP servers around or hobbes if we are lucky (which we mostly are not...) and perhaps that belgian site (os2warp.be?) has some remains.

However, I did not check at Intel for DOS stuff. And IIRC there is some. ;)

Cheers,
Thomas
"It is not worth an intelligent man's time to be in the majority.
By definition, there are already enough people to do that"
- G.H. Hardy

warpcafe

Hi again,

well, there still is this one:
http://os2warp.be/index2.php?name=nicpak

It's a link to Chuck McKinnis' Nicpak which also lists a zip file for PCMCIA cards (an the ZIP can be downloaded).
This ZIP from Chuck has drivers for various Xircom pccards (listed on the page).
While Nicpak installer cannot detect PCMCIA cards and thus install drivers automatically, it at least HAS drivers in case we need. ;)
(Just as a last resort in case there is someting fishy about Peters drivers...)

And another request from my side:
Peter, can you add a line "VERBOSE=YES" to the protocol.ini section in question?
This will turn on diagnostic messages (like pccard controller detected et cetera).

HTH,
Thomas
"It is not worth an intelligent man's time to be in the majority.
By definition, there are already enough people to do that"
- G.H. Hardy

Peter400

Quote from: warpcafe on 2010.08.25, 11:32:15
Hi Peter,

okay, there is one thing that looks "wrong" with the protocol.ini in my mind:
For the operation mode ("MODE=...") you have selected "IO" however, there is no IO-Address specified... and I'm pretty sure the driver is not capable of "auto-assigning" itself an IO address even if "IOADDRESS=AUTO" is in there... which in theory means it will fallback to a default IO address (in the best case - otherwise it will simply fail). And even if it is assigned a default IOAddress, that particular one might already be used by something else.

I suggest you try
IOADDRESS=320
as an additional entry in protocol.ini... obviously, one should use an address that is available, however I can't tell how to check if that is free, IIRC there is something like "rmview /IO" on the command-line that shows the adresses in use... if that helps.

Yes, it uses the default IO addres 320 - see below.

Quote
Make sure you have the right socket (1,...4) specified.
BTW - is there no error message displayed at driver load?
There are loads of messages built into the driver like
- A card was not detected in the selected slot
- The specified IRQ failed resource checking
- The selected I/O address is in use
et cetera...
This could really be helpful ;)

When the driver loads, it displays the following message:

Xircom CreditCard Ethernet Adapter NDIS v2.90 (000107)
Copyright (C) Xircom, Inc. 1995-1999 All Rights Reserved
Resource checking has been disabled
Forcing 10 Mbit operation
Using Socket 1
IO Address 320, IRQ 10, Node Address <MAC-address-here>

Quote
In order for this to work, you must remove the "NOCHECK" line - because right now, with that "nocheck", the resources allocated by the driver will not be checked and you will not be given error messages in case they are unavailable. Here's a complete protocol.ini (the included IOADDRESS is "inactive" and just for information because mode is "MEM"ory...)

[CE3OS2_nif]
  DriveName = XIRCOM$
  IRQ = 10
  SOCKET = 1
  MODE = "MEM"
  MEMORY=0xD2000
  IOADDRESS=320
  LINESPEED = 10

I remember that for me it was a question of a couple of reboots (with power off/back on to ensure proper hardware re-initialization) until I had a working combination of IRQ and memory address.

Keeping fingers crossed... please let us know if your driver issues useful error messages at load time...
Thomas

If I remove NOCHECK, the driver says "The specified IRQ failed resource checking", no matter what IRQ I put in (and I have still a few unused ones). Then it says that it starts in "polled mode". And I back to my original problem - the boot does not complete (see my earlier posts) ...

Peter

Peter400

Quote from: warpcafe on 2010.08.25, 14:12:58
And another request from my side:
Peter, can you add a line "VERBOSE=YES" to the protocol.ini section in question?
This will turn on diagnostic messages (like pccard controller detected et cetera).

HTH,
Thomas

Well, with VERBOSE=YES the driver crashes the boot badly. I get a register dump on the screen (I did not care to write down the values) and I have to turn the power down and up to get going ... and I did not notice any useful information displayed just before the crash either.

Peter

Peter400

Hi Andi,

Quote from: Andi on 2010.08.25, 11:31:42
Quote from: Peter400 on 2010.08.25, 04:49:51
....
I also tried it without enforcing IO mode, and without enforcing line speed - no success.
I'm using 10 Mbit setting, because the card is said to work in full duplex mode at this speed. Only half-duplex is possible with 100 Mbit.

Peter

Usually forcing Link speed/mode is a bad thing. It is guaranteed to work ONLY when the link partner is forced to the same settings too. Of course most times it will work if the other one is in Auto mode, but not for sure.

Your are sure your cabling is okay? Have you tried this setup with other OSes?

Yes, my router should handle 10 Mbit Ethernet. And another reason I went with 10 Mbit is that the Xircom dongle has a little light which is supposed to go on when the card works in 10 Mbit mode. The light goes on, so it provides me yet another assurance that the driver actually talks to the card.

The setup works without any changes in Linux and Windows 98.
Linux says on startup (dmesg):
   eth0: Xircom: port 0x300, irq 3, hwaddr <MAC-address-here>

In Windows I see the following resources:
  Input/Output Range   1020-102F
  Interrupt Request  03
  Memory Range    0A000000 - 0A000FFF
  Memory Range    0A001000 - 0A001FFF

In case you wonder, yes, I tried using IRQ 3 as well. It made no difference.

Peter