Re: Installing DKMS driver on Ubuntu 26.04

David Gravereaux <[email protected]> Thu, 4 Jun 2026 10:33:02 -0700
Newsgroups gmane.linux.hardware.gpib.general
Message-ID <[email protected]>
On 6/4/26 10:12 AM, dave penkler wrote:
> Hi,
> The strace run looks perfect.
> Can we try ibtest ?
> open (b)oard
> primary
> (t)ake control
> (l)ine status
> 
> and see the output.
> 
> Also let's try with irq lines in the gpib.config commented out.
> 
> cheers,
> /d

Ok, done.

$ cat /etc/gpib.conf
/* /etc/gpib.conf */

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 = "primary"	/* optional name, allows you to get a board 
descriptor using ibfind() */
     pad = 0	/* primary address of interface             */
     sad = 0	/* secondary address of interface           */
     timeout = T3s	/* timeout for commands */

     eos = 0x0a	/* EOS Byte, 0xa is newline and 0xd is carriage return */
     set-reos = yes	/* Terminate read if EOS */
     set-bin = no	/* Compare EOS 8-bit */
     set-xeos = no	/* Assert EOI whenever EOS byte is sent */
     set-eot = yes	/* Assert EOI with last byte on writes */

     //irq = 20

/* pci_bus and pci_slot can be used to distinguish two pci boards 
supported by the same driver */
     pci_bus = 5
     pci_slot = 5

     master = yes	/* interface board is system controller */
}

interface {
     minor = 1	/* board index, minor = 0 uses /dev/gpib0, minor = 1 uses 
/dev/gpib1, etc. */
     board_type = "ni_pci"	/* type of interface board being used */
     name = "secondary"	/* optional name, allows you to get a board 
descriptor using ibfind() */
     pad = 0	/* primary address of interface             */
     sad = 0	/* secondary address of interface           */
     timeout = T3s	/* timeout for commands */

     eos = 0x0a	/* EOS Byte, 0xa is newline and 0xd is carriage return */
     set-reos = yes	/* Terminate read if EOS */
     set-bin = no	/* Compare EOS 8-bit */
     set-xeos = no	/* Assert EOI whenever EOS byte is sent */
     set-eot = yes	/* Assert EOI with last byte on writes */

     //irq = 21

/* pci_bus and pci_slot can be used to distinguish two pci boards 
supported by the same driver */
     pci_bus = 5
     pci_slot = 6

     master = yes	/* interface board is system controller */
}

$ cat /etc/udev/rules.d/97-gpib.rules
#
SUBSYSTEM=="pci", ACTION=="add", KERNELS=="0000:05:05.0",\
RUN+="/sbin/modprobe tnt4882",\
RUN+="/usr/sbin/gpib_config --minor 0"
#
SUBSYSTEM=="pci", ACTION=="add", KERNELS=="0000:05:06.0",\
RUN+="/sbin/modprobe tnt4882",\
RUN+="/usr/sbin/gpib_config --minor 1"


$ lspci -k
...
05:05.0 Communication controller: National Instruments PCI-GPIB (rev 01)
	Kernel driver in use: tnt4882
	Kernel modules: tnt4882


I rebooted to be certain.  I also remove the second card on slot 6 to be 
sure.


: k
Enter '1' to assert ATN synchronously, or '0' for asynchronously [1]: 1
Taking control synchronously...
gpib status is:
ibsta = 0x8000  < ERR >
iberr= 1
ECIC 1: Board not controller in charge