You can subscribe to this list here.
| 2002 |
Jan
(2) |
Feb
(2) |
Mar
(22) |
Apr
(24) |
May
(7) |
Jun
(44) |
Jul
(16) |
Aug
(2) |
Sep
(13) |
Oct
(11) |
Nov
(19) |
Dec
(25) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(16) |
Feb
(27) |
Mar
(5) |
Apr
(20) |
May
(17) |
Jun
(34) |
Jul
(29) |
Aug
(22) |
Sep
(25) |
Oct
(11) |
Nov
(13) |
Dec
(18) |
| 2004 |
Jan
(25) |
Feb
(22) |
Mar
(33) |
Apr
(15) |
May
(37) |
Jun
(15) |
Jul
(12) |
Aug
(22) |
Sep
(18) |
Oct
(45) |
Nov
(19) |
Dec
(30) |
| 2005 |
Jan
(31) |
Feb
(35) |
Mar
(27) |
Apr
(22) |
May
(9) |
Jun
(13) |
Jul
(13) |
Aug
(9) |
Sep
(25) |
Oct
(25) |
Nov
(12) |
Dec
(20) |
| 2006 |
Jan
(14) |
Feb
(16) |
Mar
(17) |
Apr
(8) |
May
(7) |
Jun
(20) |
Jul
(21) |
Aug
(12) |
Sep
(19) |
Oct
(6) |
Nov
(23) |
Dec
(15) |
| 2007 |
Jan
(13) |
Feb
(14) |
Mar
(24) |
Apr
(21) |
May
(9) |
Jun
(5) |
Jul
(7) |
Aug
(9) |
Sep
(21) |
Oct
(5) |
Nov
(30) |
Dec
(9) |
| 2008 |
Jan
(15) |
Feb
(18) |
Mar
(4) |
Apr
(11) |
May
(3) |
Jun
(14) |
Jul
(12) |
Aug
(1) |
Sep
(31) |
Oct
(10) |
Nov
(9) |
Dec
(2) |
| 2009 |
Jan
(9) |
Feb
(6) |
Mar
(9) |
Apr
(2) |
May
(7) |
Jun
(22) |
Jul
(5) |
Aug
(1) |
Sep
(26) |
Oct
(13) |
Nov
(2) |
Dec
(10) |
| 2010 |
Jan
(29) |
Feb
(2) |
Mar
(23) |
Apr
(9) |
May
(7) |
Jun
(8) |
Jul
(4) |
Aug
(4) |
Sep
(1) |
Oct
(3) |
Nov
(2) |
Dec
(9) |
| 2011 |
Jan
(1) |
Feb
|
Mar
|
Apr
(25) |
May
(2) |
Jun
(19) |
Jul
(6) |
Aug
(4) |
Sep
(9) |
Oct
(3) |
Nov
(8) |
Dec
(7) |
| 2012 |
Jan
(5) |
Feb
(10) |
Mar
(10) |
Apr
(1) |
May
(2) |
Jun
|
Jul
|
Aug
(4) |
Sep
(1) |
Oct
|
Nov
(18) |
Dec
(10) |
| 2013 |
Jan
(1) |
Feb
(2) |
Mar
|
Apr
(1) |
May
(4) |
Jun
|
Jul
(26) |
Aug
(13) |
Sep
(24) |
Oct
(2) |
Nov
(1) |
Dec
(4) |
| 2014 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(2) |
Jul
(1) |
Aug
(2) |
Sep
(6) |
Oct
(1) |
Nov
|
Dec
(5) |
| 2015 |
Jan
(1) |
Feb
(8) |
Mar
(7) |
Apr
(30) |
May
(3) |
Jun
(4) |
Jul
|
Aug
(7) |
Sep
(6) |
Oct
(13) |
Nov
(9) |
Dec
(2) |
| 2016 |
Jan
|
Feb
(7) |
Mar
(11) |
Apr
(6) |
May
(2) |
Jun
(16) |
Jul
(2) |
Aug
(6) |
Sep
(2) |
Oct
(2) |
Nov
(2) |
Dec
(7) |
| 2017 |
Jan
(9) |
Feb
(25) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
(5) |
Aug
(14) |
Sep
(23) |
Oct
(3) |
Nov
|
Dec
(4) |
| 2018 |
Jan
|
Feb
|
Mar
(6) |
Apr
(4) |
May
(11) |
Jun
(2) |
Jul
|
Aug
|
Sep
(2) |
Oct
(3) |
Nov
(20) |
Dec
(10) |
| 2019 |
Jan
(4) |
Feb
(2) |
Mar
(9) |
Apr
(7) |
May
(2) |
Jun
(14) |
Jul
(17) |
Aug
(8) |
Sep
(9) |
Oct
(2) |
Nov
(2) |
Dec
(5) |
| 2020 |
Jan
(5) |
Feb
(13) |
Mar
|
Apr
(6) |
May
|
Jun
(7) |
Jul
(1) |
Aug
(3) |
Sep
|
Oct
|
Nov
(11) |
Dec
(4) |
| 2021 |
Jan
|
Feb
(3) |
Mar
(2) |
Apr
(4) |
May
(7) |
Jun
|
Jul
|
Aug
(4) |
Sep
|
Oct
(8) |
Nov
|
Dec
(3) |
| 2022 |
Jan
(5) |
Feb
(13) |
Mar
|
Apr
(3) |
May
(4) |
Jun
(4) |
Jul
|
Aug
(10) |
Sep
|
Oct
(1) |
Nov
(4) |
Dec
(4) |
| 2023 |
Jan
(10) |
Feb
(5) |
Mar
|
Apr
|
May
(5) |
Jun
(4) |
Jul
(6) |
Aug
(4) |
Sep
(28) |
Oct
(8) |
Nov
(2) |
Dec
(1) |
| 2024 |
Jan
|
Feb
(1) |
Mar
(2) |
Apr
|
May
(3) |
Jun
(1) |
Jul
(10) |
Aug
(6) |
Sep
(3) |
Oct
|
Nov
(9) |
Dec
|
| 2025 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(3) |
Jul
(2) |
Aug
(31) |
Sep
(15) |
Oct
(10) |
Nov
(5) |
Dec
|
| 2026 |
Jan
(7) |
Feb
(14) |
Mar
(34) |
Apr
(7) |
May
(6) |
Jun
(28) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Jakub L. <la...@vo...> - 2026-06-26 00:26:46
|
I am using PCIe to PCI bridge with agilent_82350b lspci -PP ... 00:01.3/03:00.2/20:07.0/28:00.0 PCI bridge: ASMedia Technology Inc. ASM1083/1085 PCIe to PCI Bridge (rev 03) 00:01.3/03:00.2/20:07.0/28:00.0/29:00.0 Communication controller: PLX Technology, Inc. PCI <-> IOBus Bridge (rev 01) ... Can't comment on speed or reliability at huge load because that's not what I do. Basic usage is perfectly possible. Only downside was, that a metal scissors action on the PC case was needed to fit it in. JL |
|
From: David G. <dav...@po...> - 2026-06-12 16:55:48
|
On 6/10/26 11:37 AM, David Gravereaux wrote: > So I'm thinking one thread per board looping on WaitSRQ() followed by a > FindRQS() that becomes the basis of a notifier. I'll go with AllSpoll() on all addresses, instead of FindRQS() on a list I'm watching, to make sure I clear everyone and not have a stuck SRQ line from rouge devices. It's dumping status bytes of devices not open, but if I don't, the line is stuck. |
|
From: David G. <dav...@po...> - 2026-06-10 21:34:50
|
On 6/10/26 1:12 AM, dave penkler wrote: > With the cable plugged in: > Initilisation ibsta 0x1110 lines 0x72ff ibsta 0x1110 <-- ATN | > SRQ | REN | NDAC > So correctly the board did not transition to CIC because it saw someone > else on the bus was CIC. > With the cable unplugged ATN is not asserted: > Initilisation ibsta 0x1120 lines 0x30ff ibsta 0x1120 <-- SRQ | REN Thank you for the understanding of the flags |
|
From: David G. <dav...@po...> - 2026-06-10 18:38:08
|
Hi again, I want to write a real channel driver for Tool Command Language to do I/O in the usual alterable manner as say pipes, serial, network streams, files, tty (console), etc.. But IEEE 488.1 is a different beast with its hardware lines. Interrupts and the resultant serial poll are device specific. So I'm thinking one thread per board looping on WaitSRQ() followed by a FindRQS() that becomes the basis of a notifier. https://github.com/davygrvy/aGPIB/blob/master/aGPIBChan.cpp#L82 I would have to redefine what a readable event means. It would mean a status byte is ready and we'd feed that directly into the readable fileevent procedure. Maybe something like this for a Tektronix DM5010 proc read_dmm {chan stb} { switch -- $stb { 65 { #power on puts $chan {init; acv; dig 4.5; rqs on; opc on; monitor on; mode run} } 67 {puts "you pressed the 'inst id' key"} 132 - 140 { # device has a measurement ready set acv [format %f [string trimright [read $chan] {;}]] puts ">DM5010: ${acv} Vrms" } } } I started on this idea like 15 years ago and now is my time to realize it as I have the need to automate all my gear. |
|
From: dave p. <dpe...@gm...> - 2026-06-10 08:13:18
|
Hi David, Thanks for the good news. The cable or some device on the bus was asserting ATN: With the cable plugged in: Initilisation ibsta 0x1110 lines 0x72ff ibsta 0x1110 <-- ATN | SRQ | REN | NDAC So correctly the board did not transition to CIC because it saw someone else on the bus was CIC. With the cable unplugged ATN is not asserted: Initilisation ibsta 0x1120 lines 0x30ff ibsta 0x1120 <-- SRQ | REN Mystery solved. cheers, -Dave On Wed, 10 Jun 2026 at 00:12, David Gravereaux <dav...@po...> wrote: > I unplugged the cable at the controller at the test program completes, > therefore one of my 8 cables must be bad. I have a lot of gear on that > one card. > > It was the last cable or the HP 6038A PSU in the chain, sorry to have > spammed the list so much > > davygrvy@workbench:~$ ./tibrsc > Initilisation ibsta 0x1120 lines 0x30ff ibsta 0x1120 > Set no ren ibsta 0x1120 lines 0x20ff ibsta 0x1120 > Release control ibsta 0x1120 lines 0x20ff ibsta 0x1120 > Request control ibsta 0x1120 lines 0x30ff ibsta 0x1120 > Send interface clear ibsta 0x1120 lines 0x30ff ibsta 0x1120 > Assert ATN ibsta 0x1130 lines 0x72ff ibsta 0x1130 > Go to standby ibsta 0x1120 lines 0x30ff ibsta 0x1120 > Release control ibsta 0x1120 lines 0x20ff ibsta 0x1120 > Request control ibsta 0x1120 lines 0x30ff ibsta 0x1120 > davygrvy@workbench:~$ ibterm -m 0 -d 25 > Attempting to open /dev/gpib0 > pad = 25, sad = 0, timeout = 10, send_eoi = 1, eos_mode = 0x0000 > ibterm>ID? > ID TEK/SG5010,V81.1,F1.1; > ibterm> > > > > > _______________________________________________ > Linux-gpib-general mailing list > Lin...@li... > https://lists.sourceforge.net/lists/listinfo/linux-gpib-general > |
|
From: David G. <dav...@po...> - 2026-06-10 00:27:29
|
Hi, I want to move up to a modern motherboard but I'm stuck with a couple NI PCI-GPIB cards so time has stopped for me at a 5th gen Asus M5A97 motherboard for its two PCI slots. The NI PCIe cards are still pricey on eBay while the PCI ones are dirt cheap. Has anyone tried something like this? https://www.startech.com/en-us/cards-adapters/pex2pci4 |
|
From: David G. <dav...@po...> - 2026-06-09 22:11:51
|
I unplugged the cable at the controller at the test program completes, therefore one of my 8 cables must be bad. I have a lot of gear on that one card. It was the last cable or the HP 6038A PSU in the chain, sorry to have spammed the list so much davygrvy@workbench:~$ ./tibrsc Initilisation ibsta 0x1120 lines 0x30ff ibsta 0x1120 Set no ren ibsta 0x1120 lines 0x20ff ibsta 0x1120 Release control ibsta 0x1120 lines 0x20ff ibsta 0x1120 Request control ibsta 0x1120 lines 0x30ff ibsta 0x1120 Send interface clear ibsta 0x1120 lines 0x30ff ibsta 0x1120 Assert ATN ibsta 0x1130 lines 0x72ff ibsta 0x1130 Go to standby ibsta 0x1120 lines 0x30ff ibsta 0x1120 Release control ibsta 0x1120 lines 0x20ff ibsta 0x1120 Request control ibsta 0x1120 lines 0x30ff ibsta 0x1120 davygrvy@workbench:~$ ibterm -m 0 -d 25 Attempting to open /dev/gpib0 pad = 25, sad = 0, timeout = 10, send_eoi = 1, eos_mode = 0x0000 ibterm>ID? ID TEK/SG5010,V81.1,F1.1; ibterm> |
|
From: David G. <dav...@po...> - 2026-06-09 21:58:52
|
I swapped to a different PCI-GPIB card to make it wasn't a hardware issue, but it's the same problem of ECIC davygrvy@workbench:~$ ibterm -m 0 -d 25 Attempting to open /dev/gpib0 pad = 25, sad = 0, timeout = 10, send_eoi = 1, eos_mode = 0x0000 ibterm>ID? ibterm error: Unable to write to device at pad 25 - ECIC 1: Board not controller in charge ibterm> ibterm: Done. |
|
From: David G. <dav...@po...> - 2026-06-09 19:33:30
|
Hi,
It's me again. I an unable to get my National Instruments PCI-GPIB card
to go into controller mode.
This under a fresh install of Ubuntu 26.04 LTS. The last time I used
the card in this mobo was back in February, so I know the hardware and
the devices on the buss function.
User mode stuff installed by the system with
$ sudo apt-get install gpib-user-tools libgpib-dev
Kernel mode compiled and installed from source and even added in DKMS.
The second card on slot 6 is not installed right now to isolate the issue.
davygrvy@workbench:~$ lspci -kvs "05:05"
05:05.0 Communication controller: National Instruments PCI-GPIB (rev 01)
Flags: bus master, medium devsel, latency 16, IRQ 20, NUMA node 0
Memory at fe408000 (32-bit, non-prefetchable) [size=2K]
Memory at fe404000 (32-bit, non-prefetchable) [size=16K]
Expansion ROM at fe400000 [disabled] [size=16K]
Kernel driver in use: tnt4882
Kernel modules: tnt4882
I have verified these udev rules run on boot.
$ cat /etc/udev/rules.d/99-ni_pci-gpib.rules
#
SUBSYSTEM=="pci", ACTION=="add", KERNELS=="0000:05:05.0",\
RUN+="/usr/sbin/modprobe tnt4882",\
RUN+="/usr/sbin/gpib_config --minor 0 --pci-bus 5 --pci-slot 5"
#
SUBSYSTEM=="pci", ACTION=="add", KERNELS=="0000:05:06.0",\
RUN+="/usr/sbin/modprobe tnt4882",\
RUN+="/usr/sbin/gpib_config --minor 1 --pci-bus 5 --pci-slot 6"
This my config
davygrvy@workbench:~$ cat /etc/gpib.conf
interface {
minor = 0
board_type = "ni_pci"
name = "primary"
pad = 0
sad = 0
timeout = T3s
eos = 0x0a
set-reos = yes
set-bin = no
set-xeos = no
set-eot = yes
pci_bus = 5
pci_slot = 5
master = yes
}
interface {
minor = 1
board_type = "ni_pci"
name = "secondary"
pad = 0
sad = 0
timeout = T3s
eos = 0x0a
set-reos = yes
set-bin = no
set-xeos = no
set-eot = yes
pci_bus = 5
pci_slot = 6
master = yes
}
The card just won't go into system controller mode.
davygrvy@workbench:~$ ibterm -m 0 -d 25
Attempting to open /dev/gpib0
pad = 25, sad = 0, timeout = 10, send_eoi = 1, eos_mode = 0x0000
ibterm>ID?
ibterm error: Unable to write to device at pad 25
- ECIC 1: Board not controller in charge
ibterm>
ibterm: Done.
Dave Penkler sent me a test program to try and it fails with ECIC, too
$ ./tibrsc
Initilisation ibsta 0x1110 lines 0x72ff ibsta 0x1110
Set no ren ibsta 0x1110 lines 0x62ff ibsta 0x1110
Release control ibsta 0x1110 lines 0x62ff ibsta 0x1110
Request control ibsta 0x1110 lines 0x72ff ibsta 0x1110
Send interface clear ibsta 0x1110 lines 0x72ff ibsta 0x1110
error: Assert ATN
- ECIC 1: Board not controller in charge
error: Go to standby
- ECIC 1: Board not controller in charge
Release control ibsta 0x1110 lines 0x62ff ibsta 0x1110
Request control ibsta 0x1110 lines 0x72ff ibsta 0x1110
|
|
From: David G. <dav...@po...> - 2026-06-04 22:51:46
|
On 6/4/26 2:41 PM, dave penkler wrote: > iowrite8 calls writeb <https://elixir.bootlin.com/linux/v7.0.10/source/ > include/asm-generic/io.h#L260> which has a barrier before the > __raw_writeb same for ioread8 > This driver has been working fine without the mb()'s > Sorry to take up your time on my distraction ;) |
|
From: dave p. <dpe...@gm...> - 2026-06-04 21:41:49
|
On Thu, 4 Jun 2026 at 22:09, David Gravereaux <dav...@po...> wrote:
> ...
Regarding
> /usr/src/linux-gpib-4.3.7/drivers/gpib/tnt4882/tnt4882_gpib.c:63 for
> tnt_paged_readb(), would this be more correct or am I just thinking this
> all wrong?
>
> static inline unsigned int tnt_paged_readb(struct tnt4882_priv *priv,
> unsigned long offset) {
> unsigned int val;
>
> // 1. Write the page-in command
> iowrite8(AUX_PAGEIN, priv->nec7210_priv.mmiobase + AUXMR *
> priv->nec7210_priv.offset);
>
> // 2. Force full synchronization: Write MUST complete before Read
> starts
> mb();
>
> // 3. Read the data from the newly established page
> val = ioread8(priv->nec7210_priv.mmiobase + offset);
>
> // 4. Force Read completion before the function returns or next
> instructions run
> rmb();
>
> return val;
> }
>
> iowrite8 calls writeb
<https://elixir.bootlin.com/linux/v7.0.10/source/include/asm-generic/io.h#L260>
which
has a barrier before the __raw_writeb same for ioread8
This driver has been working fine without the mb()'s
|
|
From: David G. <dav...@po...> - 2026-06-04 20:09:19
|
On 6/4/26 12:51 PM, dave penkler wrote:
> 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.
Thanks so much for your time on my issue! I am lost.
$ cat /proc/interrupts | grep ni-pci
20: 0 0 0 0 2955 0
IO-APIC 20-fasteoi ohci_hcd:usb5, ni-pci-gpib
It is shared with my keyboard. I have moved the keyboard and mouse to
different USB ports and now I can confirm that this doesn't increment
$ watch -n 0.1 'cat /proc/interrupts | grep "20:"'
Regarding
/usr/src/linux-gpib-4.3.7/drivers/gpib/tnt4882/tnt4882_gpib.c:63 for
tnt_paged_readb(), would this be more correct or am I just thinking this
all wrong?
static inline unsigned int tnt_paged_readb(struct tnt4882_priv *priv,
unsigned long offset) {
unsigned int val;
// 1. Write the page-in command
iowrite8(AUX_PAGEIN, priv->nec7210_priv.mmiobase + AUXMR *
priv->nec7210_priv.offset);
// 2. Force full synchronization: Write MUST complete before Read
starts
mb();
// 3. Read the data from the newly established page
val = ioread8(priv->nec7210_priv.mmiobase + offset);
// 4. Force Read completion before the function returns or next
instructions run
rmb();
return val;
}
|
|
From: dave p. <dpe...@gm...> - 2026-06-04 19:52:05
|
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 <dav...@po...> 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
> Lin...@li...
> https://lists.sourceforge.net/lists/listinfo/linux-gpib-general
>
|
|
From: David G. <dav...@po...> - 2026-06-04 17:33:19
|
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
|
|
From: dave p. <dpe...@gm...> - 2026-06-04 17:12:47
|
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 On Wed, 3 Jun 2026 at 20:07, David Gravereaux <dav...@po...> wrote: > Hi Dave, > > Does this help? > > davygrvy@workbench:~$ sudo strace -e openat,ioctl,write gpib_config > --minor 0 > openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 > openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libgpib.so.0", > O_RDONLY|O_CLOEXEC) = 3 > openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libc.so.6", > O_RDONLY|O_CLOEXEC) = 3 > openat(AT_FDCWD, "/etc/gpib.conf", O_RDONLY) = 3 > ioctl(3, TCGETS2, 0x7ffcba676770) = -1 ENOTTY (Inappropriate ioctl > for device) > ioctl(3, TCGETS2, 0x7ffcba6752f0) = -1 ENOTTY (Inappropriate ioctl > for device) > openat(AT_FDCWD, "/dev/gpib0", O_RDWR) = 3 > ioctl(3, IBONL, 0x7ffcba676a20) = 0 > ioctl(3, CFCBOARDTYPE, 0x7ffcba676aa0) = 0 > ioctl(3, CFCBASE, 0x7ffcba676a58) = 0 > ioctl(3, CFCIRQ, 0x7ffcba676a50) = 0 > ioctl(3, CFCDMA, 0x7ffcba676a60) = 0 > ioctl(3, IBPAD, 0x7ffcba676a10) = 0 > ioctl(3, IBSAD, 0x7ffcba676a18) = 0 > ioctl(3, IBSELECT_PCI, 0x7ffcba676a08) = 0 > ioctl(3, IBSELECT_DEVICE_PATH, 0x7udo strace -e openat,ioctl,write > gpib_config > --minor 0ffcba6759b0) = 0 > ioctl(3, IBONL, 0x7ffcba676a20) = 0 > openat(AT_FDCWD, "/etc/gpib.conf", O_RDONLY) = 4 > ioctl(4, TCGETS2, 0x7ffcba6764a0) = -1 ENOTTY (Inappropriate ioctl > for device) > ioctl(4, TCGETS2, 0x7ffcba675020) = -1 ENOTTY (Inappropriate ioctl > for device) > openat(AT_FDCWD, "/dev/gpib0", O_RDWR) = 4 > ioctl(4, IBMUTEX, 0x74cd53c60d80) = 0 > ioctl(4, IBWAIT, 0x7ffcba676930) = 0 > ioctl(4, IBMUTEX, 0x74cd53c60d48) = 0 > ioctl(4, IBMUTEX, 0x74cd53c60d80) = 0 > ioctl(4, IBRSC, 0x7ffcba676974) = 0 > ioctl(4, IBBOARD_INFO, 0x7ffcba676910) = 0 > ioctl(4, IBSRE, 0x7ffcba67690c) = 0 > ioctl(4, IBWAIT, 0x7ffcba676930) = 0 > ioctl(4, IBMUTEX, 0x74cd53c60d48) = 0 > ioctl(4, IBMUTEX, 0x74cd53c60d80) = 0 > ioctl(4, IBBOARD_INFO, 0x7ffcba676970) = 0 > ioctl(4, IBSIC, 0x7ffcba676970) = 0 > ioctl(4, IBWAIT, 0x7ffcba676930) = 0 > ioctl(4, IBMUTEX, 0x74cd53c60d48) = 0 > +++ exited with 0 +++ > > > > _______________________________________________ > Linux-gpib-general mailing list > Lin...@li... > https://lists.sourceforge.net/lists/listinfo/linux-gpib-general > |
|
From: David G. <dav...@po...> - 2026-06-03 18:06:41
|
Hi Dave, Does this help? davygrvy@workbench:~$ sudo strace -e openat,ioctl,write gpib_config --minor 0 openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libgpib.so.0", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3 openat(AT_FDCWD, "/etc/gpib.conf", O_RDONLY) = 3 ioctl(3, TCGETS2, 0x7ffcba676770) = -1 ENOTTY (Inappropriate ioctl for device) ioctl(3, TCGETS2, 0x7ffcba6752f0) = -1 ENOTTY (Inappropriate ioctl for device) openat(AT_FDCWD, "/dev/gpib0", O_RDWR) = 3 ioctl(3, IBONL, 0x7ffcba676a20) = 0 ioctl(3, CFCBOARDTYPE, 0x7ffcba676aa0) = 0 ioctl(3, CFCBASE, 0x7ffcba676a58) = 0 ioctl(3, CFCIRQ, 0x7ffcba676a50) = 0 ioctl(3, CFCDMA, 0x7ffcba676a60) = 0 ioctl(3, IBPAD, 0x7ffcba676a10) = 0 ioctl(3, IBSAD, 0x7ffcba676a18) = 0 ioctl(3, IBSELECT_PCI, 0x7ffcba676a08) = 0 ioctl(3, IBSELECT_DEVICE_PATH, 0x7ffcba6759b0) = 0 ioctl(3, IBONL, 0x7ffcba676a20) = 0 openat(AT_FDCWD, "/etc/gpib.conf", O_RDONLY) = 4 ioctl(4, TCGETS2, 0x7ffcba6764a0) = -1 ENOTTY (Inappropriate ioctl for device) ioctl(4, TCGETS2, 0x7ffcba675020) = -1 ENOTTY (Inappropriate ioctl for device) openat(AT_FDCWD, "/dev/gpib0", O_RDWR) = 4 ioctl(4, IBMUTEX, 0x74cd53c60d80) = 0 ioctl(4, IBWAIT, 0x7ffcba676930) = 0 ioctl(4, IBMUTEX, 0x74cd53c60d48) = 0 ioctl(4, IBMUTEX, 0x74cd53c60d80) = 0 ioctl(4, IBRSC, 0x7ffcba676974) = 0 ioctl(4, IBBOARD_INFO, 0x7ffcba676910) = 0 ioctl(4, IBSRE, 0x7ffcba67690c) = 0 ioctl(4, IBWAIT, 0x7ffcba676930) = 0 ioctl(4, IBMUTEX, 0x74cd53c60d48) = 0 ioctl(4, IBMUTEX, 0x74cd53c60d80) = 0 ioctl(4, IBBOARD_INFO, 0x7ffcba676970) = 0 ioctl(4, IBSIC, 0x7ffcba676970) = 0 ioctl(4, IBWAIT, 0x7ffcba676930) = 0 ioctl(4, IBMUTEX, 0x74cd53c60d48) = 0 +++ exited with 0 +++ |
|
From: David G. <dav...@po...> - 2026-06-03 17:48:13
|
On 6/3/26 12:58 AM, dave penkler wrote: > > HI > On Tue, 2 Jun 2026 at 20:01, David Gravereaux <dav...@po... > <mailto:dav...@po...>> wrote: > > Thanks Dave, > > Getting closer, but still not loading as CIC not set on the board and > timeout isn't 3 seconds as configured. > > The timeout for the device is set in ibterm, the configured timeout for > the board is separate. > > That you get an ECIC after the udev rules are run and then it (sort of) > works when you reload the drivers and run ibconfig again is weird. > Are we sure nothing else is talking to the board between the udev > rule running and the ibterm returning ECIC ? Everything on the buss is a listener. All the gear is off except two are on for testing. This worked two weeks ago under Ubuntu 22.04 and self compiled Linux-GPIB. So this is not the hardware. > What device are you using? For now, just a Tektronix SG5010 and a AA5001 > ENOL occurs when the controller asserts ATN and no device responds by > asserting one or both of NDAC and NRFD. > Can you try and just rerun gpib_config after the ECIC (without reloading > the drivers) and see if that avoids the ECIC error ? Still stuck in ECIC. I can't get it to do ENOL anymore, now. How can I debug this deeper? davygrvy@workbench:~$ sudo modprobe -r tnt4882 davygrvy@workbench:~$ sudo modprobe -r gpib_common davygrvy@workbench:~$ sudo modprobe -v tnt4882 insmod /lib/modules/7.0.0-22-generic/updates/dkms/gpib_common.ko.zst insmod /lib/modules/7.0.0-22-generic/updates/dkms/nec7210.ko.zst insmod /lib/modules/7.0.0-22-generic/updates/dkms/tnt4882.ko.zst davygrvy@workbench:~$ sudo gpib_config --minor 0 --system-controller --ifc --pci-bus 5 --pci-slot 5 --irq 20 --board-type ni_pci davygrvy@workbench:~$ ibterm -m 0 -d 25 Attempting to open /dev/gpib0 pad = 25, sad = 0, timeout = 10, send_eoi = 1, eos_mode = 0x0000 ibterm>ID? ibterm error: Unable to write to device at pad 25 - ECIC 1: Board not controller in charge ibterm> |
|
From: dave p. <dpe...@gm...> - 2026-06-03 07:58:56
|
HI On Tue, 2 Jun 2026 at 20:01, David Gravereaux <dav...@po...> wrote: > Thanks Dave, > > Getting closer, but still not loading as CIC not set on the board and > timeout isn't 3 seconds as configured. > > The timeout for the device is set in ibterm, the configured timeout for the board is separate. That you get an ECIC after the udev rules are run and then it (sort of) works when you reload the drivers and run ibconfig again is weird. Are we sure nothing else is talking to the board between the udev rule running and the ibterm returning ECIC ? What device are you using? ENOL occurs when the controller asserts ATN and no device responds by asserting one or both of NDAC and NRFD. Can you try and just rerun gpib_config after the ECIC (without reloading the drivers) and see if that avoids the ECIC error ? cheers, /d |
|
From: David G. <dav...@po...> - 2026-06-02 22:28:40
|
On 6/2/26 2:38 PM, David Gravereaux wrote: > cat /proc/interrupts | grep tnt4882 nevermind davygrvy@workbench:~$ cat /proc/interrupts | grep "tnt4882\|gpib" 20: 0 0 0 0 981 0 IO-APIC 20-fasteoi ohci_hcd:usb5, ni-pci-gpib 21: 0 0 3 0 0 0 IO-APIC 21-fasteoi ehci_hcd:usb3, ni-pci-gpib |
|
From: David G. <dav...@po...> - 2026-06-02 21:38:46
|
Shouldn't IRQ20 be shown as registered by the driver? davygrvy@workbench:~$ lspci -v -s 05:05.0 05:05.0 Communication controller: National Instruments PCI-GPIB (rev 01) Flags: bus master, medium devsel, latency 16, IRQ 20, NUMA node 0 Memory at fe411000 (32-bit, non-prefetchable) [size=2K] Memory at fe40c000 (32-bit, non-prefetchable) [size=16K] Expansion ROM at fe408000 [disabled] [size=16K] Kernel driver in use: tnt4882 Kernel modules: tnt4882 davygrvy@workbench:~$ cat /proc/interrupts | grep tnt4882 davygrvy@workbench:~$ |
|
From: David G. <dav...@po...> - 2026-06-02 19:45:51
|
davygrvy@workbench:~$ sudo modprobe -r tnt4882 davygrvy@workbench:~$ sudo modprobe -r gpib_common davygrvy@workbench:~$ sudo modprobe tnt4882 davygrvy@workbench:~$ sudo gpib_config --minor 0 davygrvy@workbench:~$ sudo gpib_config --minor 1 davygrvy@workbench:~$ ibterm -m 0 -d 25 Attempting to open /dev/gpib0 pad = 25, sad = 0, timeout = 10, send_eoi = 1, eos_mode = 0x0000 ibterm>ID? ibterm error: Unable to write to device at pad 25 - ENOL 2: No listeners ibterm> I found a slight change if I reset the driver. ECIC no more, but my device on pad 25 doesn't hear it |
|
From: David G. <dav...@po...> - 2026-06-02 18:00:56
|
Thanks Dave, Getting closer, but still not loading as CIC not set on the board and timeout isn't 3 seconds as configured. $ ibterm -m 0 -d 25 Attempting to open /dev/gpib0 pad = 25, sad = 0, timeout = 10, send_eoi = 1, eos_mode = 0x0000 ibterm>ID? ibterm error: Unable to write to device at pad 25 - ECIC 1: Board not controller in charge ibterm> $ lspci -k ... 05:05.0 Communication controller: National Instruments PCI-GPIB (rev 01) Kernel driver in use: tnt4882 Kernel modules: tnt4882 05:06.0 Communication controller: National Instruments PCI-GPIB (rev 01) Kernel driver in use: tnt4882 Kernel modules: tnt4882 $ 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 --pci-bus 5 --pci-slot 5" # SUBSYSTEM=="pci", ACTION=="add", KERNELS=="0000:05:06.0",\ RUN+="/sbin/modprobe tnt4882",\ RUN+="/usr/sbin/gpib_config --minor 1 --pci-bus 5 --pci-slot 6" Should I set that for earlier in the boot process? Some useful bits from the boot log: pci 0000:05:05.0: [1093:c801] type 00 class 0x078000 conventional PCI endpoint pci 0000:05:05.0: BAR 0 [mem 0xfe411000-0xfe4117ff] pci 0000:05:05.0: BAR 1 [mem 0xfe40c000-0xfe40ffff] pci 0000:05:05.0: ROM [mem 0xfe408000-0xfe40bfff pref] pci 0000:05:06.0: [1093:c801] type 00 class 0x078000 conventional PCI endpoint pci 0000:05:06.0: BAR 0 [mem 0xfe410000-0xfe4107ff] pci 0000:05:06.0: BAR 1 [mem 0xfe404000-0xfe407fff] pci 0000:05:06.0: ROM [mem 0xfe400000-0xfe403fff pref] pci_bus 0000:05: resource 1 [mem 0xfe400000-0xfe4fffff] pci_bus 0000:05: resource 4 [io 0x0000-0x03af window] pci_bus 0000:05: resource 5 [io 0x03e0-0x0cf7 window] pci_bus 0000:05: resource 6 [io 0x03b0-0x03df window] pci_bus 0000:05: resource 7 [io 0x0d00-0xffff window] pci_bus 0000:05: resource 8 [mem 0x000a0000-0x000dffff window] pci_bus 0000:05: resource 9 [mem 0xc0000000-0xffffffff window] systemd-udevd[691]: /usr/lib/udev/rules.d/98-gpib-generic.rules:2 Group gpib configured to own a device node is not a system group. Support for device node ownership by non-system accounts is deprecated ... gpib_common: loading out-of-tree module taints kernel. gpib_common: module verification failed: signature and/or required key missing - tainting kernel gpib_common: Linux-GPIB 4.3.7 core driver loaded |
|
From: David G. <dav...@po...> - 2026-06-01 19:33:13
|
Michael, Wonderful, Thanks $ dkms status linux-gpib/4.3.7, 7.0.0-22-generic, x86_64: installed (Original modules exist) |
|
From: Michael K <vk...@ya...> - 2026-06-01 13:32:31
|
Sorry that should read ..
then...
dkms add -m linux-gpib -v 4.3.7
dkms build -m linux-gpib -v 4.3.7
dkms install -m linux-gpib -v 4.3.7
On Monday, June 1, 2026 at 09:22:39 AM EDT, Michael K <vk...@ya...> wrote:
Copy the contents of the linux-gpib-kernel directory to /usr/src/linux-gpib-4.3.7 and add the dkms.conf file (see attached).
$ ls /usr/src/linux-gpib-4.3.7
AUTHORS compat COPYING dkms.conf drivers INSTALL Makefile README
then...
|
|
From: Michael K <vk...@ya...> - 2026-06-01 13:23:17
|
Copy the contents of the linux-gpib-kernel directory to /usr/src/linux-gpib-4.3.7 and add the dkms.conf file (see attached).
$ ls /usr/src/linux-gpib-4.3.7
AUTHORS compat COPYING dkms.conf drivers INSTALL Makefile README
then...
dkms add -m linux-gpib -v 4.3.7 -q
dkms build -m linux-gpib -v 4.3.7
dkms install -m %{name} -v 4.3.7 --force
Michael
On Saturday, May 30, 2026 at 11:12:25 AM EDT, David Gravereaux <dav...@po...> wrote:
Hi,
I just installed Ubuntu Cinnamon 26.04 LTS (kernel 7.0.x) on an old ASUS
M5A97 AM3+ mobo to use a couple NI PCI-GPIB cards that I got off eBay
for $30
The minimum video card that seems to work is a GT 1030 for a supported
driver. Even though it is PCIe 3.0, it is backward compatible in a 2.0
slot.
$ sudo apt-get install gpib-user-tools libgpib-dev
That got me most of the way for all the user-space items. There is no
gpib-dkms package. gpib_config fails to open a device
Is this part build from source?
_______________________________________________
Linux-gpib-general mailing list
Lin...@li...
https://lists.sourceforge.net/lists/listinfo/linux-gpib-general
|