device.conf(5)

πŸ“¦ version 1.72_release+6.a11b6777660b, in opensuse-leap 16.0

πŸ’… device.conf(5) β€” bestie's guide to the config file

okay so this is the manual page for device.conf, and it's the config file for vtllibrary(1) and vtltape(1). yes, both. it's giving shared custody. 🫢


✨ NAME ✨

device.conf β€” the configuration file for vtllibrary(1) and vtltape(1). that's it. that's the name section. slay.


🌸 DESCRIPTION 🌸

so every device you configure gets its own unique entry in device.conf. one entry per device, no sharing, no "we can just put it all in one blob" nonsense. πŸ’…

each section starts at column 1 and is terminated by a blank line. that's the whole rule. column 1, blank line, done. don't overthink it bestie.

here's what a section looks like, literally verbatim, do not touch:

Library: 10 CHANNEL: 00 TARGET: 00 LUN: 00
 Vendor identification: SPECTRA
 Product identification: PYTHON
 Product revision level: 550V
 Unit serial number: XYZZY_A
 NAA: 10:22:33:44:ab:00:00:00
 Home directory: /var/lib/mhvtl/Spectra
 fifo: /var/tmp/mhvtl
 PERSIST: True

see how cute that is? now let me break down what's actually happening here.

the descriptor Library: or Drive: starts each section, and it's followed by a unique ID β€” which is a decimal number. no hex, no vibes, decimal.

on that same line, right after the descriptor, you've got the SCSI coordinates for the device being described (CHANNEL, TARGET, LUN β€” the whole trio).

πŸŽ€ the common fields

Vendor identification, Product identification, Product revision level and Unit serial number are common fields across all device types. so like, everyone has them, no matter what kind of device you are. it's giving universal experience.

πŸ¦‹ NAA (the mysterious one)

the NAA field is used by some backup software (e.g. Legato) as a means to uniquely identify devices. it's used by INQUIRY VPD page 0x83. but ngl, most software just uses the Unit serial number as the unique identifier instead. so the NAA is lowkey the understudy here. 😭

πŸ”₯ Compression

Compression: factor X enabled Y

where:

  • X is 1 through 9.
    • 1 is fastest compression, 9 is best compression.
  • Y
    • 1: compression is enabled, 0: compression is disabled.

so X is your speed-vs-size slider (1 = zoom zoom, 9 = smol file) and Y is just the on/off switch. iconic duo honestly.

🧚 Compression type

Compression type: β€” it's either zlib or lzo. pick your fighter.

⭐ Backoff

Backoff: β€” a value between 10 and 10000. default is 1000.

what does it do? okay so this value gets added to the existing 'usleep' time in between ioctl polls. and if there's actually work to do, the usleep time gets reset to 10. so it's basically the "chill out for a sec" number, but it snaps back to 10 the moment there's stuff happening. main character energy: knows when to rest, knows when to go. ✨

πŸ’– Home directory

Home directory: /some/where/with/space

you use this to specify a parent directory for the virtual media associated with this library. but heads up β€” it's only valid in ^Library: entries, not for ^Tape: entries. so don't try it on a tape entry, it's not gonna happen for you. πŸ™ˆ

πŸ“ fifo

fifo: /some/where/for/named/pipe

if fifo: is defined, (near) real time state information will be available for external applications β€” they just read from this named pipe. cute little info stream. 🫢

⚠️ note: the -f fifo switch on daemon startup has higher precedence. so like, that one wins if there's a fight.

πŸ‘‘ PERSIST

PERSIST: True | False

if PERSIST is set to 'Yes' or 'True' β€” enable saving state on shutdown. a file 'library_contents.XX.persist' will be created on shutdown to save persistent state. and on startup? default to reading the library_contents.XX.persist if the file exists. falls back to library_contents.XX if no .persist file exists. so it remembers things, and if it can't, it just uses the regular one. resilient queen. πŸ’œ


🌈 AUTHOR 🌈

Written by Mark Harvey. legend behavior.


😭 BUGS 😭

  • This man page.
  • No version information.
  • Config file not xml.
  • vtllibrary(1) and vtltape(1) needs to be restarted to read any changes made.

that last one is the real jump scare bestie β€” you change the config and the daemons just do not care until you restart them. no hot reload, no nothing. periodt.


πŸ¦‹ REPORTING BUGS πŸ¦‹

Report bugs to <markh794@gmail.com> β€” go off, tell them everything.


Copyright Β© 2005 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

like, none. zero. don't come for them if it breaks. πŸ’€


πŸŽ€ SEE ALSO πŸŽ€

library_contents(5) make_vtl_media(1), mktape(1), vtlcmd(1), vtllibrary(1), vtltape(1)

the whole friend group, honestly. iykyk. 🫢


okay that's the whole page!! this was device.conf(5) from mhvtl 1.72_release+6.a11b6777660..., dated May 2025. go configure some virtual tapes bestie, you're gonna ate πŸ’…βœ¨