Re: Installing DKMS driver on Ubuntu 26.04
dave penkler <[email protected]> Thu, 4 Jun 2026 21:51:39 +0200
| Newsgroups | gmane.linux.hardware.gpib.general |
|---|---|
| Message-ID | <CAL=kjP28cfPwnsoaAXyCDsnYG3H9g_TcGSrAFC0k5cVpKMC6Ww@mail.gmail.com> |
--===============4548438760282500788==
Content-Type: multipart/alternative; boundary="0000000000001d8b3e065372e048"
--0000000000001d8b3e065372e048
Content-Type: text/plain; charset="UTF-8"
Hi David,
I built a 7.0.11 kernel and installed the 4.3.7 modules and
successfully tested it with the sequence below.
My conclusion at this point is that your system is not routing the irq's
correctly.
What does
cat /proc/interrupts | grep ni-pci
show when you let the system route the irq's itself.
# gpib_config -m1
gpib.conf:
interface {
/* ni-pci */
minor = 1
board_type = "ni_pci"
name = "gpib1"
pad = 1
sad = 0You might rebuild the modules with make GPIB_DEBUG=1
There is debug console output in the tnt4882 and nec7210 drivers to see if
we are getting any interrupts.
eos = 0x0a
set-reos = no
master = yes
}
$ lspci -v -k -s 04:06.0
04:06.0 Communication controller: National Instruments PCI-GPIB (rev 02)
Flags: bus master, medium devsel, latency 64, IRQ 21
Memory at febfe800 (32-bit, non-prefetchable) [size=2K]
Memory at febf8000 (32-bit, non-prefetchable) [size=16K]
Kernel driver in use: tnt4882
Kernel modules: tnt4882
$ ibtest
(b) gpib1
: l
DAV off
NDAC on
NRFD off
IFC off
REN on
SRQ off
ATN on
EOI off
gpib status is:
ibsta = 0x130 < CMPL CIC ATN >
iberr= 0
On Thu, 4 Jun 2026 at 19:33, David Gravereaux <[email protected]> wrote:
> 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
>
>
>
> _______________________________________________
> Linux-gpib-general mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/linux-gpib-general
>
--0000000000001d8b3e065372e048
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
<div dir=3D"ltr">Hi=C2=A0David,<div>I built a 7.0.11 kernel and installed t=
he 4.3.7 modules and successfully=C2=A0tested it with the sequence=C2=A0bel=
ow.</div><div>My conclusion at this point is that your system is not routin=
g the irq's correctly.</div><div>What does=C2=A0</div><div>cat /proc/in=
terrupts | grep ni-pci</div><div>show when you let the system route the irq=
's itself.</div><div><br></div><div># gpib_config -m1</div><div><br></d=
iv><div>gpib.conf:</div><div>interface { =C2=A0 =C2=A0 <br>=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0/* ni-pci */<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 minor =3D 1=
<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 board_type =3D "ni_pci"<br>=C2=A0=
=C2=A0 =C2=A0 =C2=A0 name =3D "gpib1"<br>=C2=A0 =C2=A0 =C2=A0 =
=C2=A0 pad =3D 1<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 sad =3D 0You might rebuild =
the modules with make GPIB_DEBUG=3D1<br>There is debug console output in th=
e tnt4882 and nec7210 drivers to see if we are getting any interrupts.<br>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 eos =3D 0x0a<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 set=
-reos =3D no<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 master =3D yes<br>}</div><div><=
br></div><div>$ lspci -v =C2=A0-k -s 04:06.0<br>04:06.0 Communication contr=
oller: National Instruments PCI-GPIB (rev 02)<br>=C2=A0 =C2=A0 =C2=A0 =C2=
=A0 Flags: bus master, medium devsel, latency 64, IRQ 21<br>=C2=A0 =C2=A0 =
=C2=A0 =C2=A0 Memory at febfe800 (32-bit, non-prefetchable) [size=3D2K]<br>=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Memory at febf8000 (32-bit, non-prefetchable) [=
size=3D16K]<br>=C2=A0 =C2=A0 =C2=A0 =C2=A0 Kernel driver in use: tnt4882<br=
>=C2=A0 =C2=A0 =C2=A0 =C2=A0 Kernel modules: tnt4882<br></div><div><br></di=
v><div>$ ibtest</div><div>(b) gpib1</div><div>: l<br>DAV off<br>NDAC on<br>=
NRFD off<br>IFC off<br>REN on<br>SRQ off<br>ATN on<br>EOI off<br>gpib statu=
s is: <br>ibsta =3D 0x130 =C2=A0< CMPL CIC ATN ><br>iberr=3D 0<br><br=
></div></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail=
_attr">On Thu, 4 Jun 2026 at 19:33, David Gravereaux <<a href=3D"mailto:=
[email protected]" target=3D"_blank">[email protected]</a>> wrote:<br>=
</div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;b=
order-left:1px solid rgb(204,204,204);padding-left:1ex">On 6/4/26 10:12 AM,=
dave penkler wrote:<br>
> Hi,<br>
> The strace run looks perfect.<br>
> Can we try ibtest ?<br>
> open (b)oard<br>
> primary<br>
> (t)ake control<br>
> (l)ine status<br>
> <br>
> and see the output.<br>
> <br>
> Also let's try with irq lines in the gpib.config commented out.<br=
>
> <br>
> cheers,<br>
> /d<br>
<br>
Ok, done.<br>
<br>
$ cat /etc/gpib.conf<br>
/* /etc/gpib.conf */<br>
<br>
interface {<br>
=C2=A0 =C2=A0 =C2=A0minor =3D 0=C2=A0 /* board index, minor =3D 0 uses /dev=
/gpib0, minor =3D 1 uses <br>
/dev/gpib1, etc. */<br>
=C2=A0 =C2=A0 =C2=A0board_type =3D "ni_pci"=C2=A0 =C2=A0 =C2=A0 /=
* type of interface board being used */<br>
=C2=A0 =C2=A0 =C2=A0name =3D "primary"=C2=A0 =C2=A0/* optional na=
me, allows you to get a board <br>
descriptor using ibfind() */<br>
=C2=A0 =C2=A0 =C2=A0pad =3D 0=C2=A0 =C2=A0 /* primary address of interface=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*/<br>
=C2=A0 =C2=A0 =C2=A0sad =3D 0=C2=A0 =C2=A0 /* secondary address of interfac=
e=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*/<br>
=C2=A0 =C2=A0 =C2=A0timeout =3D T3s=C2=A0 =C2=A0 =C2=A0 /* timeout for comm=
ands */<br>
<br>
=C2=A0 =C2=A0 =C2=A0eos =3D 0x0a /* EOS Byte, 0xa is newline and 0xd is car=
riage return */<br>
=C2=A0 =C2=A0 =C2=A0set-reos =3D yes=C2=A0 =C2=A0 =C2=A0/* Terminate read i=
f EOS */<br>
=C2=A0 =C2=A0 =C2=A0set-bin =3D no=C2=A0 =C2=A0 =C2=A0 =C2=A0/* Compare EOS=
8-bit */<br>
=C2=A0 =C2=A0 =C2=A0set-xeos =3D no=C2=A0 =C2=A0 =C2=A0 /* Assert EOI whene=
ver EOS byte is sent */<br>
=C2=A0 =C2=A0 =C2=A0set-eot =3D yes=C2=A0 =C2=A0 =C2=A0 /* Assert EOI with =
last byte on writes */<br>
<br>
=C2=A0 =C2=A0 =C2=A0//irq =3D 20<br>
<br>
/* pci_bus and pci_slot can be used to distinguish two pci boards <br>
supported by the same driver */<br>
=C2=A0 =C2=A0 =C2=A0pci_bus =3D 5<br>
=C2=A0 =C2=A0 =C2=A0pci_slot =3D 5<br>
<br>
=C2=A0 =C2=A0 =C2=A0master =3D yes=C2=A0 =C2=A0 =C2=A0 =C2=A0/* interface b=
oard is system controller */<br>
}<br>
<br>
interface {<br>
=C2=A0 =C2=A0 =C2=A0minor =3D 1=C2=A0 /* board index, minor =3D 0 uses /dev=
/gpib0, minor =3D 1 uses <br>
/dev/gpib1, etc. */<br>
=C2=A0 =C2=A0 =C2=A0board_type =3D "ni_pci"=C2=A0 =C2=A0 =C2=A0 /=
* type of interface board being used */<br>
=C2=A0 =C2=A0 =C2=A0name =3D "secondary" /* optional name, allows=
you to get a board <br>
descriptor using ibfind() */<br>
=C2=A0 =C2=A0 =C2=A0pad =3D 0=C2=A0 =C2=A0 /* primary address of interface=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*/<br>
=C2=A0 =C2=A0 =C2=A0sad =3D 0=C2=A0 =C2=A0 /* secondary address of interfac=
e=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0*/<br>
=C2=A0 =C2=A0 =C2=A0timeout =3D T3s=C2=A0 =C2=A0 =C2=A0 /* timeout for comm=
ands */<br>
<br>
=C2=A0 =C2=A0 =C2=A0eos =3D 0x0a /* EOS Byte, 0xa is newline and 0xd is car=
riage return */<br>
=C2=A0 =C2=A0 =C2=A0set-reos =3D yes=C2=A0 =C2=A0 =C2=A0/* Terminate read i=
f EOS */<br>
=C2=A0 =C2=A0 =C2=A0set-bin =3D no=C2=A0 =C2=A0 =C2=A0 =C2=A0/* Compare EOS=
8-bit */<br>
=C2=A0 =C2=A0 =C2=A0set-xeos =3D no=C2=A0 =C2=A0 =C2=A0 /* Assert EOI whene=
ver EOS byte is sent */<br>
=C2=A0 =C2=A0 =C2=A0set-eot =3D yes=C2=A0 =C2=A0 =C2=A0 /* Assert EOI with =
last byte on writes */<br>
<br>
=C2=A0 =C2=A0 =C2=A0//irq =3D 21<br>
<br>
/* pci_bus and pci_slot can be used to distinguish two pci boards <br>
supported by the same driver */<br>
=C2=A0 =C2=A0 =C2=A0pci_bus =3D 5<br>
=C2=A0 =C2=A0 =C2=A0pci_slot =3D 6<br>
<br>
=C2=A0 =C2=A0 =C2=A0master =3D yes=C2=A0 =C2=A0 =C2=A0 =C2=A0/* interface b=
oard is system controller */<br>
}<br>
<br>
$ cat /etc/udev/rules.d/97-gpib.rules<br>
#<br>
SUBSYSTEM=3D=3D"pci", ACTION=3D=3D"add", KERNELS=3D=3D&=
quot;0000:05:05.0",\<br>
RUN+=3D"/sbin/modprobe tnt4882",\<br>
RUN+=3D"/usr/sbin/gpib_config --minor 0"<br>
#<br>
SUBSYSTEM=3D=3D"pci", ACTION=3D=3D"add", KERNELS=3D=3D&=
quot;0000:05:06.0",\<br>
RUN+=3D"/sbin/modprobe tnt4882",\<br>
RUN+=3D"/usr/sbin/gpib_config --minor 1"<br>
<br>
<br>
$ lspci -k<br>
...<br>
05:05.0 Communication controller: National Instruments PCI-GPIB (rev 01)<br=
>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Kernel driver in use: tnt4882<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Kernel modules: tnt4882<br>
<br>
<br>
I rebooted to be certain.=C2=A0 I also remove the second card on slot 6 to =
be <br>
sure.<br>
<br>
<br>
: k<br>
Enter '1' to assert ATN synchronously, or '0' for asynchron=
ously [1]: 1<br>
Taking control synchronously...<br>
gpib status is:<br>
ibsta =3D 0x8000=C2=A0 < ERR ><br>
iberr=3D 1<br>
ECIC 1: Board not controller in charge<br>
<br>
<br>
<br>
_______________________________________________<br>
Linux-gpib-general mailing list<br>
<a href=3D"mailto:[email protected]" target=3D"_blan=
k">[email protected]</a><br>
<a href=3D"https://lists.sourceforge.net/lists/listinfo/linux-gpib-general"=
rel=3D"noreferrer" target=3D"_blank">https://lists.sourceforge.net/lists/l=
istinfo/linux-gpib-general</a><br>
</blockquote></div>
--0000000000001d8b3e065372e048--
--===============4548438760282500788==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
--===============4548438760282500788==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
Linux-gpib-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/linux-gpib-general
--===============4548438760282500788==--