Scanners
Installing scanner support
Scanner support is provided by the SANE library. To enable scanner support, amend /etc/nixos/configuration.nix:
{
...
hardware.sane.enable = true;
...
}
Testing scanner support
To determine if your scanner is supported by SANE:
$ scanimage -L
If you can only see scanners when running as root, try adding the user to the scanner or lp groups:
$ sudo usermod -a -G scanner,lp username
Supported backends
See the Supported Devices page to see if your scanner is supported. Some backends are proprietary and are not installed by default; see below.
Note: The detection of installed backends by SANE depends on the LD_LIBRARY_PATH environment variable, which is set at login. You will need to logout and back in again for backend changes to take effect after nixos-rebuild switch.
HP
hardware.sane.extraBackends = [ pkgs.hplipWithPlugin ];
Epson
If your scanner is listed as supported by the epkowa backend:
hardware.sane.extraBackends = [ pkgs.epkowa ];
SnapScan firmware
Many scanners require firmware blobs which can be downloaded from the website of the scanner or extracted from the drivers they provide. Once you have the appropriate firmware you need to tell SANE where to find it in your configuration.nix:
{
hardware.sane.enable = true;
nixpkgs.config.sane.snapscanFirmware = pkgs.fetchurl {
# https://wiki.ubuntuusers.de/Scanner/Epson_Perfection/#Unterstuetzte-Geraete
url = "https://media-cdn.ubuntu-de.org/wiki/attachments/52/46/Esfw41.bin"; #Epson Perfection 2480
sha256 = "00cv25v4xlrgp3di9bdfd07pffh9jq2j0hncmjv3c65m8bqhjglq";
};
}
Brother
Brother currently provides four different scanner backends for various generations of its scanners. The newest (brscan4) is supported as a loadable submodule in NixOS. It can be activated by importing the appropriate file into /etc/nixos/configuration.nix:
{
...
imports = [
<nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan4.nix>
./hardware-configuration.nix
];
...
}
Then just add a scanner in the sane module:
{
...
hardware = {
sane = {
enable = true;
brscan4 = {
enable = true;
netDevices = {
home = { model = "MFC-L2700DN"; ip = "192.168.178.23"; };
};
};
};
};
...
}
In some cases, configuration changes may not take effect until after a reboot.
GIMP support
To enable support for scanning in GIMP:
- You need to install a special version of xsane, which you can enable by amending /etc/nixos/configuration.nix as follows:
{ ... nixpkgs.config.packageOverrides = pkgs: { xsaneGimp = pkgs.xsane.override { gimpSupport = true; }; }; ... }
- Rebuild:
$ sudo nixos-rebuild switch
- Finally, you will need to manually create a symlink:
$ ln -s /run/current-system/sw/bin/xsane ~/.gimp-2.8/plug-ins/xsane
Network scanning
Currently (2017-08-16) the SANE backend does not support overriding according to nixpkgs issue #17411. The workaround for this is to download michaelrus's sane-extra-config.nix, copy it to /etc/nixos/sane-extra-config.nix
and import it in /etc/nixos/configuration.nix
as follows:
{
...
imports = [
...
./sane-extra-config.nix
...
];
...
hardware.sane.extraConfig."magicolor" = ''
net 10.0.0.30 0x2098
''; # Magicolor 1690mf
...
}