Can someone help me setup my scanner

So i have installed all these packages (brscan + libsane) with paru command:


(SANE/Scanner-specific problems - ArchWiki)
I installed a SANE frontend (skanpage)

(SANE - ArchWiki)
I already had these SANE packages installed:

Now i thought i should be good, i went into skanpage, also into ‘document scanner’ (already had this installed, idk if it is also SANE…) refreshed the device list on both, but it does not detect my scanner.

What am i missing?

System:
Kernel: 6.10.6-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 14.2.1
clocksource: tsc avail: acpi_pm
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=34819b7f-d663-441b-bdcc-f1157c3768e0 rw rootflags=subvol=@
quiet loglevel=3 ibt=off
Desktop: KDE Plasma v: 6.1.5 tk: Qt v: N/A info: frameworks v: 6.6.0
wm: kwin_wayland vt: 1 dm: SDDM Distro: Garuda base: Arch Linux
Machine:
Type: Desktop Mobo: Gigabyte model: B660M DS3H DDR4 v: x.x
serial: <superuser required> uuid: <superuser required> UEFI: American
Megatrends LLC. v: F6 date: 08/08/2022
CPU:
Info: model: 12th Gen Intel Core i3-12100F bits: 64 type: MT MCP
arch: Alder Lake gen: core 12 level: v3 note: check built: 2021+
process: Intel 7 (10nm ESF) family: 6 model-id: 0x97 (151) stepping: 5
microcode: 0x35
Topology: cpus: 1x dies: 1 clusters: 4 cores: 4 threads: 8 tpc: 2
smt: enabled cache: L1: 320 KiB desc: d-4x48 KiB; i-4x32 KiB L2: 5 MiB
desc: 4x1.2 MiB L3: 12 MiB desc: 1x12 MiB
Speed (MHz): avg: 4100 min/max: 800/4300 scaling: driver: intel_pstate
governor: performance cores: 1: 4100 2: 4100 3: 4100 4: 4100 5: 4100 6: 4100
7: 4100 8: 4100 bogomips: 52838
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Vulnerabilities: <filter>
Graphics:
Device-1: Advanced Micro Devices [AMD/ATI] Navi 22 [Radeon RX 6700/6700
XT/6750 XT / 6800M/6850M XT] vendor: Gigabyte driver: amdgpu v: kernel
arch: RDNA-2 code: Navi-2x process: TSMC n7 (7nm) built: 2020-22 pcie:
gen: 4 speed: 16 GT/s lanes: 16 ports: active: DP-2 empty: DP-1,
HDMI-A-1, HDMI-A-2, Writeback-1 bus-ID: 03:00.0 chip-ID: 1002:73df
class-ID: 0300
Display: wayland server: X.org v: 1.21.1.13 with: Xwayland v: 24.1.2
compositor: kwin_wayland driver: X: loaded: amdgpu
unloaded: modesetting,radeon alternate: fbdev,vesa dri: radeonsi
gpu: amdgpu display-ID: 0
Monitor-1: DP-2 res: 2752x1152 size: N/A modes: N/A
API: EGL v: 1.5 hw: drv: amd radeonsi platforms: device: 0 drv: radeonsi
device: 1 drv: swrast gbm: drv: kms_swrast surfaceless: drv: radeonsi
wayland: drv: radeonsi x11: drv: radeonsi
API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 24.2.3-arch1.1
glx-v: 1.4 direct-render: yes renderer: AMD Radeon RX 6700 XT (radeonsi
navi22 LLVM 18.1.8 DRM 3.57 6.10.6-zen1-1-zen) device-ID: 1002:73df
memory: 11.72 GiB unified: no display-ID: :1.0
API: Vulkan v: 1.3.295 layers: 7 device: 0 type: discrete-gpu name: AMD
Radeon RX 6700 XT (RADV NAVI22) driver: mesa radv v: 24.2.3-arch1.1
device-ID: 1002:73df surfaces: xcb,xlib,wayland device: 1 type: cpu
name: llvmpipe (LLVM 18.1.8 256 bits) driver: mesa llvmpipe
v: 24.2.3-arch1.1 (LLVM 18.1.8) device-ID: 10005:0000
surfaces: xcb,xlib,wayland
Audio:
Device-1: Intel Alder Lake-S HD Audio vendor: Gigabyte driver: snd_hda_intel
v: kernel alternate: snd_soc_avs,snd_sof_pci_intel_tgl bus-ID: 00:1f.3
chip-ID: 8086:7ad0 class-ID: 0403
Device-2: Advanced Micro Devices [AMD/ATI] Navi 21/23 HDMI/DP Audio
driver: snd_hda_intel v: kernel pcie: gen: 4 speed: 16 GT/s lanes: 16
bus-ID: 03:00.1 chip-ID: 1002:ab28 class-ID: 0403
API: ALSA v: k6.10.6-zen1-1-zen status: kernel-api with: aoss
type: oss-emulator tools: N/A
Server-1: PipeWire v: 1.2.4 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Network:
Device-1: Realtek RTL8125 2.5GbE vendor: Gigabyte driver: r8169 v: kernel
pcie: gen: 2 speed: 5 GT/s lanes: 1 port: 3000 bus-ID: 06:00.0
chip-ID: 10ec:8125 class-ID: 0200
IF: enp6s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
Info: services: NetworkManager, smbd, sshd, systemd-timesyncd
Drives:
Local Storage: total: 931.51 GiB used: 548.61 GiB (58.9%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Western Digital
model: WD Blue SN570 1TB size: 931.51 GiB block-size: physical: 512 B
logical: 512 B speed: 31.6 Gb/s lanes: 4 tech: SSD serial: <filter>
fw-rev: 234110WD temp: 35.9 C scheme: GPT
Partition:
ID-1: / raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
used: 548.61 GiB (58.9%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
used: 584 KiB (0.2%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
ID-3: /home raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
used: 548.61 GiB (58.9%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-4: /var/log raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
used: 548.61 GiB (58.9%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
ID-5: /var/tmp raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
used: 548.61 GiB (58.9%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
ID-1: swap-1 type: zram size: 15.46 GiB used: 288.2 MiB (1.8%)
priority: 100 comp: zstd avail: lzo,lzo-rle,lz4,lz4hc,842 max-streams: 8
dev: /dev/zram0
Sensors:
System Temperatures: cpu: 35.0 C mobo: 31.0 C gpu: amdgpu temp: 52.0 C
mem: 46.0 C
Fan Speeds (rpm): N/A gpu: amdgpu fan: 0
Info:
Memory: total: 16 GiB available: 15.46 GiB used: 7.91 GiB (51.2%)
Processes: 353 Power: uptime: 41m states: freeze,mem,disk suspend: deep
avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
suspend, test_resume image: 6.17 GiB services: org_kde_powerdevil,
power-profiles-daemon, upowerd Init: systemd v: 256 default: graphical
tool: systemctl
Packages: 1762 pm: pacman pkgs: 1761 libs: 506 tools: aura,
gnome-software, octopi, pamac, paru pm: rpm pkgs: 1 Compilers: gcc: 14.2.1
Shell: garuda-inxi default: fish v: 3.7.1 running-in: konsole inxi: 3.3.36
Garuda (2.6.26-1):
System install date:     2024-07-22
Last full system update: 2024-09-23 ↻
Is partially upgraded:   No
Relevant software:       snapper NetworkManager dracut
Windows dual boot:       Probably (Run as root to verify)
Failed units:            configure-printer@usb-001-007.service updatedb.timer

Reboot

Fix printer and updatedb.timer

1 Like

I rebooted, the failed units have dissapeared from Garuda-inxi, but that did not fix my scanner issue

Have you checked the chapter after the one you provided as picture (please use links instead)?
https://wiki.archlinux.org/title/SANE#Verification

Now you can try to see if sane recognizes your scanner.

$ scanimage -L

If that fails, run the command again as root to check for permission problems. If that fails as well, check that your scanner is plugged into the computer. You also might have to unplug/plug your scanner for /usr/lib/udev/rules.d/65-sane.rules to recognize your scanner.

Check also:

man sane

Section “Problems”.

If your device isn’t found but you know that it is supported, make sure that it is detected by your operating system. For SCSI and USB scanners, use the sane-find-scanner(1) utility. It prints one line for each scanner it has detected and some comments (#). If sane-find-scanner(1) finds your scanner only as root but not as normal user, the permissions for the device files are not adjusted correctly. If the scanner isn’t found at all, the operating system hasn’t detected it and may need some help. Depending on the type of your scanner, read sane-usb(5) or sane-scsi(5). If your scanner (or other device) is not connected over the SCSI bus or USB, read the backend’s manual page for details on how to set it up.

2 Likes

Missing frontend?


I use my cell phone for scanning, life can be so easy when you don’t need it for work.

I “loved” it when the Canon scanner didn’t work because there was no more yellow printer ink in the tank, black and white printing was of course no longer possible, and woe betide you if you bought one without a chip. On M$ OS for sure, and after some years they stopped the driver support. :nauseated_face:
Or was it Brother, HP? :thinking:
I think the “big” suppliers are all the same.

Or has something changed in the last twenty years? :smiley:

Ups, OT. Please do not answer :grin:


Have you checked the chapter after the one you provided as picture (please use links instead)?

Yes i did and i completed all those steps to no avail.

So following the “Problems” section, i am able to find the scanner.

sane-find-scanner

# sane-find-scanner will now attempt to detect your scanner. If the
# result is different from what you expected, first make sure your
# scanner is powered up and properly connected to your computer.

# No SCSI scanners found. If you expected something different, make sure that
# you have loaded a kernel SCSI driver for your SCSI adapter.
# Also you need support for SCSI Generic (sg) in your operating system.
# If using Linux, try "modprobe sg".

could not open USB device 0x1d6b/0x0003 at 002:001: Access denied (insufficient permissions)
could not open USB device 0x05e3/0x0608 at 001:005: Access denied (insufficient permissions)
found possible USB scanner (vendor=0x04f9 [Brother], product=0x01f3 [MFC-6490CW]) at libusb:001:004
could not open USB device 0x258a/0x0049 at 001:003: Access denied (insufficient permissions)
could not open USB device 0x145f/0x0283 at 001:002: Access denied (insufficient permissions)
could not open USB device 0x048d/0x5702 at 001:006: Access denied (insufficient permissions)
could not open USB device 0x1d6b/0x0002 at 001:001: Access denied (insufficient permissions)
# Your USB scanner was (probably) detected. It may or may not be supported by
# SANE. Try scanimage -L and read the backend's manpage.

# Not checking for parallel port scanners.

# Most Scanners connected to the parallel port or other proprietary ports
# can't be detected by this program.

# You may want to run this program as root to find all devices. Once you
# found the scanner devices, be sure to adjust access permissions as
# necessary.

however, i am confused on the next step.

Depending on the type of your scanner, read sane-usb(5) or sane-scsi(5).

(sane-usb(5) — Arch manual pages)

This section assumes that your scanner is detected by sane-find-scanner(1). It doesn’t make sense to go on, if this is not the case. While sane-find-scanner(1) is able to detect any USB scanner, actual scanning will only work if the scanner is supported by a SANE backend. Information on the level of support can be found on the SANE webpage (http://www.sane-project.org/), and the individual backend manpages.

So i went there:

http://www.sane-project.org/

But i am lost as to what to do on there…

Following http://www.sane-project.org/ your model would seem to be unsupported. See: SANE: Supported Devices
Anyway, I’d reconsider this:

In order to install a Brother scanner or printer/scanner combo you need the right driver. To find the right one, see the FAQ for your model at the Brother Support, i.e. Home > Country > Your model > FAQs & Troubleshooting > Linux > Scanner / Scan Key Tool > Scan using XSane or GIMP. You can also search the web.

Following that link, I landed here:

There, it seems you might need brscan2 or brscan3.
Maybe not xsane, if you use sane. Or you may want to try it anyway… Probably in x11, not wayland.
Good luck!

1 Like

I dont get it man… Installed xsane by using paru command, because just doing ‘sane’ in terminal does nothing. And like i mentioned earlier, using the sane GUI (skanpage) does not find scanner. So when i used xsane, the menu popped up, but after scanning it just said:

no devices available.

Then i read this part on the brother website, i get the first part i think, but not the configure scan settings link.

To scan via USB, log in with the root account or configure udev.

> Configure scan settings without administrator privileges (Linux)

((Scan using XSane or GIMP (Linux) | Brother))

what i got from this is that i had to run xsane after using sudo su command, which i did, but still, same thing happened, ‘no devices available’.


maybe this is the issue… i dont know.
using paru sane i see i have these installed:

extra/sane 1.3.1-1 [3.72 MiB 18.50 MiB] [Installed]
Scanner Access Now Easy

aur/xsane 0.999-7 [+10 ~6.02] [Installed]
A GTK-based X11 frontend for SANE and plugin for Gimp.

extra/libksane 24.08.1-1 [0 B 677.04 KiB] [Installed]
An image scanning library

Do i have more than one version installed?

I can’t be of much help here. I also use a Brother MFC machine, but I am always happy to have the installation and setup behind me. Unfortunately, contrary to my habit, I did not write my own documentation.

I’m not sure which version of brscan you have installed. According to the Brother website, you need brscan3 for your model. You should remove all other installed versions and reboot after installing/uninstalling.
As a frontend, I recommend simple-scan. Unlike some other frontends, it always works for me.

1 Like

Thanks for sharing, will check if this works tommorow :pray:

i removed the other brscan versions with

sudo pacman R-

And rebooted but did not work unfortunately.

I removed simple-scan and tried to install older version:

aur/simple-scan-3.12 3.12.0-1 [+2 ~0.00]
Simple scanning utility - the version before they broke everything

but that did not work for some reason:

Aur (1)               Old Version  New Version    Make Only
aur/simple-scan-3.12               3.12.0-1       No

:: Proceed to review? [Y/n]: y

:: Downloading PKGBUILDs...
PKGBUILDs up to date
nothing new to review
fetching devel info...
==> Making package: simple-scan-3.12 3.12.0-1 (di 24 sep 2024 10:37:03 CEST)
==> Retrieving sources...
-> Found simple-scan-3.12.0.tar.xz
==> Validating source files with sha256sums...
simple-scan-3.12.0.tar.xz ... Passed
==> Making package: simple-scan-3.12 3.12.0-1 (di 24 sep 2024 10:37:04 CEST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Found simple-scan-3.12.0.tar.xz
==> Validating source files with sha256sums...
simple-scan-3.12.0.tar.xz ... Passed
==> Removing existing $srcdir/ directory...
==> Extracting sources...
-> Extracting simple-scan-3.12.0.tar.xz with bsdtar
==> Sources are ready.
simple-scan-3.12-3.12.0-1: parsing pkg list...
==> Making package: simple-scan-3.12 3.12.0-1 (di 24 sep 2024 10:37:06 CEST)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> WARNING: Using existing $srcdir/ tree
==> Removing existing $pkgdir/ directory...
==> Starting build()...
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for valac... /usr/bin/valac
checking whether /usr/bin/valac is at least version 0.16.0... yes
checking for style of include used by make... GNU
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.16... yes
checking for glib-compile-resources... /usr/bin/glib-compile-resources
checking for SIMPLE_SCAN... yes
checking for COLORD... yes
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking sane/sane.h usability... yes
checking sane/sane.h presence... yes
checking for sane/sane.h... yes
checking sane/saneopts.h usability... yes
checking sane/saneopts.h presence... yes
checking for sane/saneopts.h... yes
checking whether ln -s works... yes
checking for itstool... itstool
checking for xmllint... xmllint
checking whether NLS is requested... yes
checking for intltool >= 0.35.0... 0.51.0 found
checking for intltool-update... /usr/bin/intltool-update
checking for intltool-merge... /usr/bin/intltool-merge
checking for intltool-extract... /usr/bin/intltool-extract
checking for xgettext... /usr/bin/xgettext
checking for msgmerge... /usr/bin/msgmerge
checking for msgfmt... /usr/bin/msgfmt
checking for gmsgfmt... /usr/bin/msgfmt
checking for perl... /usr/bin/perl
checking for perl >= 5.8.1... 5.40.0
checking for XML::Parser... ok
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating data/Makefile
config.status: creating data/icons/Makefile
config.status: creating help/Makefile
config.status: creating po/Makefile.in
config.status: creating src/Makefile
config.status: executing depfiles commands
config.status: executing po/stamp-it commands
Making all in src
make[1]: Entering directory '/home/disciplinedfury/.cache/paru/clone/simple-scan-3.12/src/simple-scan-3.12.0/src'
CC       simple_scan-book.o
/home/bob/bzr/simple-scan/trunk/src/book.vala: In function ‘book_compress_jpeg’:
/home/bob/bzr/simple-scan/trunk/src/book.vala:196:42: error: passing argument 2 of ‘gdk_pixbuf_save_to_callbackv’ from incompatible pointer type [-Wincompatible-pointer-types]
In file included from /usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf.h:34,
from book.c:21:
/usr/include/gdk-pixbuf-2.0/gdk-pixbuf/gdk-pixbuf-core.h:382:60: note: expected ‘GdkPixbufSaveFunc’{aka ‘int (*)(const char *, long unsigned int,  struct _GError **, void *)’} but argument is of type ‘gboolean (*)(guint8 *, gsize,  GError **, void *)’ {aka ‘int (*)(unsigned char *, long unsignedint,  struct _GError **, void *)’}
382 |                                          GdkPixbufSaveFunc save_func,
|                                          ~~~~~~~~~~~~~~~~~~^~~~~~~~~
/home/bob/bzr/simple-scan/trunk/src/book.vala: In function ‘ps_writer_construct’:
/home/bob/bzr/simple-scan/trunk/src/book.vala:563:47: error: passing argument 1 of ‘cairo_ps_surface_create_for_stream’ from incompatible pointer type [-Wincompatible-pointer-types]
In file included from book.c:25:
/usr/include/cairo/cairo-ps.h:72:57: note: expected ‘cairo_write_func_t’ {aka ‘enum _cairo_status (*)(void *, const unsigned char *, unsigned int)’} but argument is of type ‘cairo_status_t (*)(void *, guchar *, int)’ {aka ‘enum _cairo_status (*)(void *, unsigned char *, int)’}
72 | cairo_ps_surface_create_for_stream (cairo_write_func_t  write_func,
|                                     ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~
make[1]: *** [Makefile:449: simple_scan-book.o] Error 1
make[1]: Leaving directory '/home/disciplinedfury/.cache/paru/clone/simple-scan-3.12/src/simple-scan-3.12.0/src'
make: *** [Makefile:375: all-recursive] Error 1
==> ERROR: A failure occurred in build().
Aborting...
error: failed to build 'simple-scan-3.12-3.12.0-1':
error: packages failed to build: simple-scan-3.12-3.12.0-1

For the public, it must be

sudo pacman -R <application-name>

It is important to avoid typos, not only when programming, but also in the terminal. You will then get fewer error messages :wink:

1 Like

Oops, yeah my bad, i did use the right command in the terminal though.

I didn’t do anything special, i.e. regular printing on a brother printer. ‘sane’ is installed already. I ran:
scanimage -L | grep device
I tested the various ‘devices’ found and this one worked:

scanimage --device "escl:https://192.168.1.19:443" --format=tiff --output-file test.tiff --progress

The key was:

scanimage -L

Didn’t return any errors.

What about if you use scanpage by KDE. Curios

1 Like

You mean ‘skanpage’ ?

Yes,
I am no expert on this matter though: - -

Just suggestions on apps to try:
skanpage : kde
Document-scanner : gnome
DeepinCloudScan : deepin (this may install deepin-extras though)

Hopefully one of them might help you figure out the dependancies that were needed to make it work.

I tried those except ‘DeepinCloudScan’, cant find that one…