GPIB.CONF(5)

πŸ“¦
version 4.3.7 Β· 2 versions
, in ubuntu stonking

πŸ’– GPIB.CONF(5) πŸ’– β€” the gpib.conf manual, but make it a group chat

okay bestie, quick vibe check: this is the manpage for gpib.conf, from the GPIB section of the manual, and it's literally the config file situation for the GPIB library. sit down, grab a strawberry drink πŸ“, we're going through it together.


✨ NAME ✨

gpib.conf β€” the GPIB library configuration file πŸŽ€


🌸 DESCRIPTION 🌸

okay so. the library itself, and also the admin tool gpib_config, both read their configuration info from the file gpib.conf. no cap. πŸ’…

by default, that file lives in the sysconfdir directory that got configured when linux-gpib was compiled. and sysconfdir is typically set to /etc or /usr/local/etc. also there's a template gpib.conf file hanging out in the util/templates/ subdirectory of the linux-gpib package, if you want a starting point. πŸ¦‹

you can override the default config file btw β€” just set the IB_CONFIG environment variable to a custom file path. main character move honestly. ✨

now the real tea: the configuration file must contain one interface entry for each of the board minors that are going to be used β€” unless all the required options are specified in the command-line invocation of the administration tool gpib_config to configure that minor. and if you want to open the board descriptor with ibfind() instead of directly using the minor as the board descriptor, then the file must contain an interface entry with the name option set. periodt. πŸ‘‘

and if there is no entry for the minor in the configuration file, the required command-line options are board_type and pad. plus, the --system-controller option must be specified if the board is to be system-controller, which is the normal case. ngl that's the usual situation for basically everyone. for example:

gpib_config --minor 8 --board-type ni_usb_b --pad 0 --system-controller

and the configuration file can contain zero or more device entries. device entries are only required if you wish to open device descriptors with ibfind() instead of using ibdev(). 🫢

each device entry must have at least the minor, pad and name options specified. and heads up: the minor of a device entry must have a corresponding interface entry. no interface, no device, that's the rule bestie. πŸ’€


several example entries, and a table summarizing the possible options, follow. (we'll get to the table in another part, don't panic 🌈)

πŸ’‘ side note: this comment style is permitted:
/*  This comment style is permitted */
and this alternate comment style is also permitted:
// This is an alternate comment style

now the examples, look at her go πŸ˜­πŸ’–

interface {
     minor = 0
     board_type = "ni_pci"
     pad = 0
     master = yes
}
interface {
     minor = 1
     board_type = "ines_pci"
     name = "joe"
     pad = 5
     sad = 0
     timeout = T10s
     pci_bus = 0
     pci_slot = 0xd
     master = no
}
interface {
     minor = 2
     board_type = "pcII"
     pad = 3
     sad = 0x62
     eos = 0x0d
     set-reos = yes
     set-bin = no
     set-xeos = no
     set-eot = yes
     base = 0x300
     irq  = 5
     dma  = 0
     master = no
}
device {
     minor = 0
     name = "counter"  // name that can be used with ibfind
     pad = 24
}
device {
     minor = 0
     name = "voltmeter"
     pad = 7
     sad = 110
     eos = 0xa
     set-reos = yes
     set-bin = no
     set-xeos = yes
     set-eot = no
     timeout = T1s
}

✨ Table 1. configuration options ✨

okay bestie, here's the full lineup of config options from Table 1 β€” every name, what it does, who uses it (interface or device entries), and whether it's required or optional. no cap, we're keeping all the deets. πŸ’–

  • base β€” Specifies the base ioport or io memory address for a board that lacks plug-and-play capability. Used by: interface. Required or optional: optional. πŸŽ€
  • board_type β€” Specifies the type of interface board. See the last two columns of Table 2. for a list of possible board types, and the kernel driver module that supports them. There is no default. Used by: interface. Required or optional: required. πŸ‘‘
  • dma β€” Specifies the dma channel for a board that lacks plug-and-play capability. Used by: interface. Required or optional: optional. ✨
  • eos β€” Sets the end-of-string byte for board or device descriptors obtained with ibfind(). By default eos = 0. See also the set-reos, set-bin, and set-xeos options. Used by: interface or device. Required or optional: optional. πŸ’–
  • irq β€” Specifies the interrupt level for a board that lacks plug-and-play capability. Used by: interface. Required or optional: optional. πŸ¦‹
  • master β€” Set to 'yes' if you want the interface board to be the system controller of the bus. There can only be one system controller on a bus. By default master = no. Used by: interface. Required or optional: required. πŸ”₯
  • minor β€” 'minor' specifies the minor number of the device file this interface board will use. A 'minor' of 0 corresponds to /dev/gpib0, 1 is /dev/gpib1, etc. The minor number is also equal to the 'board index' which can be used as a board descriptor, and is passed as the first argument of ibdev(). Used by: interface. Required or optional: required. πŸ’…
  • name β€” The 'name' specifies the name which can be used with ibfind() to get a descriptor for the board or device associated with this entry. Used by: interface or device. Required or optional: interface optional; device required. 🌈
  • pad β€” Specifies the primary GPIB address (valid addresses are 0 to 30). For interfaces, this is the primary address that the board will be assigned when it is first brought online. For

For devices, this is literally the address that will be used by device descriptors obtained with ibfind(). No default, bestie. πŸ’…

  • pci_bus β€” okay so this is lowkey useful for distinguishing between multiple PCI cards. If you have more than one PCI card with the same 'board_type', you can use the 'pci_bus' and 'pci_slot' options to specify the particular card you are interested in. Applies to: interface. Default: optional. πŸ¦‹
  • pci_slot β€” and pci_slot can be used in conjunction with 'pci_bus' to specify a particular pci card. Applies to: interface. Default: optional. ✨
  • sad β€” specifies the secondary GPIB address. Valid values are 0, or 0x60 to 0x7f hexadecimal (96 to 127 decimal). A value of 0 means secondary addressing is disabled (the default). Secondary addresses from 0 to 31 are specified by the library's convention of adding an offset of 0x60. Applies to: interface or device. Default: optional. πŸ’–
  • set-bin β€” enables 8-bit comparisons when matching the end-of-string byte, instead of only comparing the 7 least significant bits. Only affects descriptors returned by ibfind(), and has same effect as setting the BIN bit in a ibeos() call. Default is set-bin = 0. Applies to: interface or device. Default: optional. πŸ”₯
  • set-eot β€” Enables assertion of the EOI line at the end of writes, for descriptors returned by ibfind(). See ibeot(). Default set-eoi = yes. Applies to: interface or device. Default: optional. πŸ‘‘
  • set-reos β€” Enables the termination of reads on reception of the end-of-string byte for descriptors returned by ibfind(). Same as setting the REOS bit in a ibeos() call. Default is set-reos = no. Applies to: interface or device. Default: optional. 🌸
  • set-xeos β€” Enables the assertion of EOI on transmission of the end-of-string byte for descriptors returned by ibfind(). Same as setting the XEOS bit in a ibeos() call. Default is set-xeos = no. Applies to: interface or device. Default: optional. πŸ’€
  • sysfs_device_path β€” A string which may be used to select

Applies to: interface. Default: optional. 🌈

…and it genuinely just means picking out one specific piece of hardware by its sysfs device path πŸ’… like yes bestie, that exact device, no vibe-guessing involved ✨

  • timeout β€” sets the io timeout for a board or device descriptor that gets opened through ibfind() ⏳. The settings you can use are the same ones as the constants that ibtmo() takes 🫢. Default is timeout = T3s, which is 3 seconds. Section: interface or device. Optional.
lowkey reminder: those two little columns on the right in the original table are the whole plot β€” which section the option lives in (interface or device) and whether it's optional. Not every option is optional, so read them, ok? πŸ™ˆ

Copyright Β© 2003-2006, 2008 Frank Mori Hess πŸ’–


okay that's the whole page bestie, you made it, and I'm so proud of you fr fr 🌸✨

This was linux-gpib 4.3.7, dated 07/06/2026, and yes it's the GPIB.CONF(5) girlie herself πŸŽ€ go configure something iconic, mwah πŸ’œπŸ¦‹πŸŒˆ

πŸ“¦ where this page comes from