sane-agfafocus(5)
π sane-agfafocus β the AGFA Focus glow-up π
okay bestie, welcome to sane-agfafocus(5), the manual for the SANE backend that talks to AGFA Focus flatbed scanners. pull up a chair, grab a snack, we're doing this π«Ά
β¨ NAME β¨
sane-agfafocus β the SANE backend for AGFA Focus flatbed scanners. that's it, that's the name, slay.
πΈ DESCRIPTION πΈ
so the sane-agfafocus library implements a SANE (Scanner Access Now Easy) backend, and it gives you access to AGFA Focus flatbed scanners. no cap.
right now, these are the scanners this backend supports:
- AGFA Focus GS Scanner (6 bit gray scale) (untested)
- AGFA Focus Lineart Scanner (lineart) (untested)
- AGFA Focus II (8 bit gray scale) (untested)
- AGFA Focus Color (24 bit color 3-pass)
- AGFA Focus Color Plus (24 bit color 3-pass)
- Siemens S9036 (8 bit gray scale) (untested)
and the driver itself supports line art, 6bpp and 8bpp gray, and 18bpp and 24bpp color scans. iconic range honestly π
if you own a scanner that isn't on that list but does work with this backend, please tell us!! send the scanner's model name, SCSI id, and firmware revision to sane-devel@alioth-lists.debian.net. and if you wanna know how to subscribe to sane-devel, go look at http://www.sane-project.org/mailing-lists.html. we wanna hear from you fr fr π
π¨ real talk: all of these scanners are pre-SCSI-2, and they don't even report properly to SCSI Inquiry. you'll usually clock this during SCSI bus scans, where the scanner comes up with literally only garbage as the vendor and model strings. it's giving mystery box π
π DEVICE NAMES π
this backend expects device names that look like this:
special
where special is the path-name for the special device that corresponds to a SCSI scanner. for SCSI scanners, that special device name has to be a generic SCSI device or a symlink pointing at one. on Linux, that could be something like /dev/sga or /dev/sge, for example. see sane-scsi(5) for the details, bestie.
π¦ CONFIGURATION π¦
the contents of the agfafocus.conf file is a list of device names that correspond to AGFA Focus scanners. empty lines get ignored, and so do lines that start with a hash mark (#). here's a sample config file, look how cute:
/dev/scanner
# this is a comment
/dev/sge
π FILES π
/etc/sane.d/agfafocus.confβ the backend configuration file (see also the description ofSANE_CONFIG_DIRbelow π)/usr/lib/libsane-agfafocus.aβ the static library implementing this backend/usr/lib/libsane-agfafocus.soβ the shared library implementing this backend (present on systems that support dynamic loading)
β ENVIRONMENT β
SANE_CONFIG_DIRβ this environment variable specifies the list of directories that may contain the configuration file. on NIX systems, the directories are separated by a colon (:), and under OS/2 they're separated by a semi-colon (;). if this variable isn't set, the configuration file gets searched in two default directories: first, the current working directory (".") and then in/etc/sane.d. if the value of the environment variable ends with the directory separator character, then the default directories are searched *after the explicitly specified directories. for example, settingSANE_CONFIG_DIRto"/tmp/config:"would result in directoriestmp/config,., and/etc/sane.dbeing searched (in this order). noted πSANE_DEBUG_AGFAFOCUSβ if the library was compiled with debug support enabled, this environment variable controls the debug level for this backend. e.g., a value of128requests all debug output to be printed. smaller levels reduce verbosity. here are theSANE_DEBUG_AGFAFOCUSvalues:0β print important errors (printed each time)1β print errors2β print sense3β print warnings4β print scanner-inquiry5β print information6β print less important information7β print called procedures8β print reader_process messages10β print called sane-init-routines11β print called sane-procedures12β print sane infos13β print sane option-control messages
π MISSING FUNCTIONALITY π
uploading of dither matrices and tonecurves has been implemented, but so far it hasn't proven useful for anything. so for that reason, these options have been disabled. it's giving "we built it and nobody came" π
π BUGS π
the scanners that don't support disconnect have problems with SCSI timeouts if the SCSI bus gets loaded β like, e.g., if you do a kernel build at the same time as scanning. multitasking is not their moment π
to see if your scanner supports disconnect, run this in a terminal:
SANE_DEBUG_AGFAFOCUS=128 scanimage -L
and go look for the "disconnect:" line. that's your answer, bestie.
π§ DEBUG π§
if you're having problems with SANE not detecting your scanner, make sure the Artec backend is disabled. somehow, this backend causes at least my scanner to not respond correctly to SCSI inquiry commands. not naming names but π
if you encounter a bug, please set the environment variable SANE_DEBUG_AGFAFOCUS to 128 and try to regenerate the problem. then send me a report with the log attached. we love receipts π«Ά
if you encounter a SCSI bus error or trimmed and/or displaced images, please also set the environment variable SANE_DEBUG_SANEI_SCSI to 128 before sending me the report. double receipts.
π₯ TODO π₯
more scanners?
the AGFA ACS and ARCUS scanners are similar to the FOCUS scanners. the driver could probably be extended to support these scanners without too many changes. i don't have access to such scanners, and i can't add support for it. however, if you are in possession of such a scanner, i could be helpful in adding support for these scanners π
the AGFA HORIZON scanners are SCSI-2 scanners, and it would probably be easier to support these scanners in a SCSI-2 compliant backend. different vibe, different backend, iykyk.
π SEE ALSO π
π AUTHOR π
Ingo Schneider and Karl Anders Γygard. legends, honestly.
and that's the whole page, bestie!! this little masterpiece is from 10 Jul 2008 and it belongs to the sane-agfafocus(5) manual, straight out of the SANE Scanner Access Now Easy universe. go forth and scan something iconic πβ¨ππ¦πΈπ
π«Ά
π¦ where this page comes from
- alpine 3.24: sane-doc 1.4.0-r4 Β· GPL-2.0-or-later GPL-2.0-or-later-with-sane-exception Public-Domain
- arch rolling: sane 1.4.0-4 Β· GPL-2.0-or-later AND LicenseRef-GPL-2.0-or-later-with-linking-exception
- centos-stream 10: sane-backends 1.2.1-10.el10 Β· GPL-2.0-or-later WITH SANE-exception AND GPL-2.0-or-later AND GPL-2.0-only AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND LicenseRef-Fedora-Public-Domain AND IJG AND MIT
- debian bookworm: libsane-common 1.2.1-2 Β· GPL-2.0-or-later WITH sane exception
- debian trixie: libsane-common 1.3.1-3 Β· GPL-2.0-or-later WITH sane exception
- fedora 43: sane-backends 1.4.0-4.fc43 Β· GPL-2.0-or-later WITH SANE-exception AND GPL-2.0-or-later AND GPL-2.0-only AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND LicenseRef-Fedora-Public-Domain AND IJG AND MIT
- fedora 44: sane-backends 1.4.0-6.fc44 Β· GPL-2.0-or-later WITH SANE-exception AND GPL-2.0-or-later AND GPL-2.0-only AND LGPL-2.0-or-later AND LGPL-2.1-or-later AND LicenseRef-Fedora-Public-Domain AND IJG AND MIT
- opensuse-leap 16.0: sane-backends 1.3.0-bp160.1.14 Β· GPL-2.0-or-later AND SUSE-GPL-2.0+-with-sane-exception AND SUSE-Public-Domain
- opensuse-leap 16.0: sane-backends 1.3.0-bp160.1.14 Β· GPL-2.0-or-later AND SUSE-GPL-2.0+-with-sane-exception AND SUSE-Public-Domain
- opensuse-leap 16.0: sane-backends 1.3.0-bp160.1.14 Β· GPL-2.0-or-later AND SUSE-GPL-2.0+-with-sane-exception AND SUSE-Public-Domain
- opensuse-leap 16.0: sane-backends 1.3.0-bp160.1.14 Β· GPL-2.0-or-later AND SUSE-GPL-2.0+-with-sane-exception AND SUSE-Public-Domain
- ubuntu jammy: libsane-common 1.1.1-5 Β· GPL-2.0-or-later WITH sane exception
- ubuntu noble: libsane-common 1.2.1-7build4 Β· GPL-2.0-or-later WITH sane exception
- ubuntu questing: libsane-common 1.3.1-4build1
- ubuntu resolute: libsane-common 1.4.0-1ubuntu1 Β· GPL-2.0-or-later WITH sane exception
- ubuntu stonking: libsane-common 1.4.0-1ubuntu2 Β· GPL-2.0-or-later WITH sane exception
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms