# Old ISA board (AT-GPIB) not being recognized (SOLVED)

## HiFidk

Hi

I need to get this very old ISA board working for a university project...

The board is this :

http://sine.ni.com/nips/cds/view/p/lang/en/nid/10664

the manual for hardware settings are her:

http://digital.ni.com/manuals.nsf/websearch/A9B7742A2343D5D486256F090046D8E6?opendocument

It's the AT-GPIB board

allthough it's not exactly the board on the picture... it's described in the data-sheet pdf as the legacy ISA board

Since I don't have much experience with ISA hardware, this is very frustrating, cause I'm kind of guessing ...

The software I should use with the board is here:

http://linux-gpib.sf.net

I can install that without problems, but the software can't communicate with the board, and I can't get the kernel to recognize the board in any way at all...

First i tried running the gentoo-2.6.11-r6 kernel , an now I'm trying the 2.4.26-r9 instead... thought it would give me better ISA support... can't go further back since the software is for 2.4 -> ... but it should work anyway according to the doc. at linux-gpib.

The current kernel config can be found at:

http://tnb.aau.dk/~kimhh/isa_prob/config

The problem is that even though I've set the irq and dma manually to something I know there's nothing else using, nothing is registered in /proc/interrupts og /proc/dma

I've set the bios to "legacy ISA" for both DMA 7 and IRQ 11 as jumped on the board, but dmesg gives me nothing and still nothing in /proc

Can anyone help here ??

BTW... the motherboard I use is this:

http://www2.abit.com.tw/page/en/motherboard/motherboard_detail.php?pMODEL_NAME=BH6&fMTYPE=Slot+1

----------

## NeddySeagoon

HiFidk,

I suspect you have only done a part of the setup - the hardware part.

When you load the kernel driver, you will need to pass it parameters to tell it which DMA, IRQ and I/O Ports to use.

```
modinfo <module_name>
```

will show you what parameters the module will accept.

----------

## HiFidk

ok, that sounds right to me... but since the module is made by the guys at the gpib project, that command doesn't give much usefull info  :Sad: 

```

modinfo tnt4882

filename:    /lib/modules/2.4.26-gentoo-r9/gpib/tnt4882.o

description: <none>

author:      <none>

license:     "GPL"

```

----------

## NeddySeagoon

HiFidk,

The settings are not module parameters the are in the the gpib.conf file 

```
/* settings for boards that lack plug-n-play capability */

        base = 0        /* Base io ADDRESS                  */

        irq  = 0        /* Interrupt request level */

        dma  = 0        /* DMA channel (zero disables)      */
```

which gets put into /etc

Thats a snippet from the file in the tarball

----------

## HiFidk

ok, well the gpib.conf have been there all along... here's what it looks like:

```

interface {

        minor = 0

        board_type = "ni_nat4882_isa"

        master = yes

        pad = 30

        base = 0x2c0

        irq = 11

        dma = 0

}

```

Still it doesn't work... or at least I find nothing in /proc/interrupts, and with dma set to 7 nothing in /proc/dma either

/proc/interrupts:

```

          CPU0       

  0:    5944092          XT-PIC  timer

  1:          2             XT-PIC  keyboard

  2:          0             XT-PIC  cascade

  8:          2             XT-PIC  rtc

  9:          0             XT-PIC  usb-uhci

 12:      45737         XT-PIC  eth0

 14:      40266         XT-PIC  ide0

 15:          3            XT-PIC  ide1

NMI:         0 

LOC:    5944051 

ERR:         0

MIS:         0

```

----------

## NeddySeagoon

HiFidk,

Does 

```
dmesg
```

 show anything useful after the kernel module has been loaded.?

Can the test program talk to the board?

DMA is not essential to get you going

----------

## HiFidk

dmesg gives me the following when modprobe tnt4882:

```

Linux-GPIB 3.1.101 Driver -- Kernel Release 2.4.26-gentoo-r9

devfs_register(gpib0): could not append to parent, err: -17

devfs_register(gpib1): could not append to parent, err: -17

devfs_register(gpib2): could not append to parent, err: -17

devfs_register(gpib3): could not append to parent, err: -17

devfs_register(gpib4): could not append to parent, err: -17

devfs_register(gpib5): could not append to parent, err: -17

devfs_register(gpib6): could not append to parent, err: -17

devfs_register(gpib7): could not append to parent, err: -17

devfs_register(gpib8): could not append to parent, err: -17

devfs_register(gpib9): could not append to parent, err: -17

devfs_register(gpib10): could not append to parent, err: -17

devfs_register(gpib11): could not append to parent, err: -17

devfs_register(gpib12): could not append to parent, err: -17

devfs_register(gpib13): could not append to parent, err: -17

devfs_register(gpib14): could not append to parent, err: -17

devfs_register(gpib15): could not append to parent, err: -17

gpib: registered ni_isa interface

gpib: registered ni_isa_accel interface

gpib: registered ni_nat4882_isa interface

gpib: registered ni_nat4882_isa_accel interface

gpib: registered ni_nec_isa interface

gpib: registered ni_nec_isa_accel interface

gpib: registered ni_pci interface

gpib: registered ni_pci_accel interface

Available NI PCI device IDs:

```

I just noticed that the devfs errors doesn't appear with the 2.6 kernel...

when i try using the test program linux-gpib-3.1.101/examples/ibtest I get this:

```

Do you wish to open a (d)evice or an interface (b)oard?

        (you probably want to open a device): b

enter name of interface board (or device) you wish to open: gpib

trying to open board named 'gpib'

libgpib: ibdev failed to get descriptor

libgpib: ibfind failed to get descriptor

failed to open board

enter name of interface board (or device) you wish to open: voltmeter

trying to open board named 'voltmeter'

libgpib: ibBoardOpen failed to open device file

libgpib: No such file or directory

libgpib: error in is_cic()!

libgpib: ibfind failed to get descriptor

failed to open board

```

and the dmesg gives me nothing... 

with the other test program for the lib test linux-gpib-3.1.101/test/libgpib_test I get this:

```

option: run as bus master

Finding board...libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: error locking board mutex!

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

libgpib: invalid descriptor

FAILED: libgpib_test.c line 155, ibsta 0x8000, iberr 0, ibcntl 22

```

which gives the following dmesg:

```

gpib: no gpib board configured on /dev/gpib3

gpib: no gpib board configured on /dev/gpib3

```

the dmesg changes if I change the "minor" option in /etc/gpib.conf[/code]

----------

## NeddySeagoon

HiFidk,

If the devfs errors don't appear with a 2.6 kernel, thats a good reason to use 2.6.

```
enter name of interface board (or device) you wish to open: gpib
```

tries to match the name given in your

config file here

```
interface {

        minor = 0       /* board index, minor = 0 uses /dev/gpib0, minor = 1 uses /dev/gpib1, etc. */

        board_type = "ni_pci"   /* type of interface board being used */

        name = "violet" /* optional name, allows you to get a board descriptor using ibfind() */
```

otherwise you should use the device name like /dev/gpib0, where the number on the end is the minor number mentioned in the config snippet above. You may not need the /dev/ prefix. You should have a /dev/gpibX where X is the minor number you allocated.

```
gpib: no gpib board configured on /dev/gpib3
```

means that either /dev/gpib3 doesn't exist or there is no hardware attached to the device file.

----------

## HiFidk

oh, my bad... I have of course put ' name = "gpib" ' in the gpib.conf before i tried the ibtest

using /dev/gpib* as device doesn't help... it just gives this:

```

enter name of interface board (or device) you wish to open: /dev/gpib3

trying to open board named '/dev/gpib3'

failed to open board

```

in /dev there are listed gpib0 - gpib15 but I think they're just put there when the module loads

I tried running "ibtest" on all minor values from 0 - 15, no joy  :Sad: 

----------

## NeddySeagoon

HiFidk,

Probably the kernel module can drive 16 gpib cards so they are are all created.

Your one (if its the only one) is probably gbib0, unless you assigned a different minor number.

Have you tried them all?

The test program wil not take wildcards - it needs to talk to a specific card.

----------

## HiFidk

yes, I tried all of them with same result...

how can I be sure that the card actually "works"  ?

----------

## NeddySeagoon

HiFidk,

Read your PM

----------

## HiFidk

problem solved, very nice

many a thx to NeddySeagoon for the patience with the ISA noobs  :Smile: 

after installing the MS-DOS software on a boot disk environment, finding out that the hardware worked fine, we managed to locate the problem to be a wrong software version

after installing the 3.2.x version og the linux-gpib software, it started working

----------

