I'm trying to get a epson v39 scanner running under NixOS.

I followed the instructions on this page, which basically tells you to add the following to the configuration.nix :

hardware.sane.enable = true;
# nixpkgs.config.sane.snapscanFirmware = /firmware/esfw41.bin;
nixpkgs.config.packageOverrides = pkgs: {
  xsaneGimp = xsane.override { gimpSupport = true; };

I commented out the firmware section, since I would not know where to get a "blob" like this for my scanner.

anyways. The rebuilding works. When trying sane-find-scanner in the command line, it looks like the scanner is detected:

found USB scanner (vendor=0x04b8 [EPSON], product=0x013d [Epson Perfection V39]) at libusb:003:005

However, when trying to use scanimage as root, I get this for example:

bash-4.3# scanimage -L
[bjnp] create_broadcast_socket: ERROR - bind socket to local address failed - Cannot assign requested address

Note: During none of the steps I see any activity on the device (lights, etc).


I managed Epson Perfection 1270 to work like this:

  1. import module mentioned in https://github.com/NixOS/nixpkgs/issues/17411
  2. replace line cat ${builtins.toFile "" (c.value + "\n")} >>"$f" in that module with cat ${builtins.toFile "" (c.value + "\n")} >"$f"
  3. add hardware.sane.enable = true; hardware.sane.extraConfig.snapscan = '' # Epson Perfection 1270 firmware /path/to/firmware/ESFW3E.bin # in your case # usb 0x04b8 0x013d usb 0x04b8 0x0120 ''; hardware.sane.snapshot = true;

and that's it . Firmware is a must and was downloaded somewhere from internet.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.