Ubuntu – Samsung M2070W scanner no longer working in 17.10

samsungscanner

I own a Samsung M2070W printer/scanner, which worked in 17.04. After installing 17.10, it prints but is not detected my Simple Scan or Xsane.

The latest drivers from the Samsung website are installed.

It is detected by sane-find-scanner but not scanimage-L. Output from the former:

found USB scanner (vendor=0x04e8 [Samsung Electronics Co., Ltd.], product=0x3469 [M2070 Series]) at libusb:003:003

I tried modifying the .bashrc as suggested in Samsung SCX-4200 Scanner not working (printing OK) 14.04, but it didn't work.

I've seen this issue on several forums but no one seems to have a solution.

Best Answer

I just got the scanner from Samsung M2070FW running with Ubuntu 18.04. Just follow these steps:

  1. Get UnifiedLinuxDriver-1.00.37.tar.gz from this site and unpack it, open a terminal and do:

    cd /UnifiedLinuxDriver-1.00.37/uld
    sudo ./install.sh
    
  2. After successful installation of the Samsung Driver for the printer and the scanner, you can installer the printer first via Cups. For the scanner however, there should be a new directory with a single file in it:

    /opt/smfp-common/scanner/lib/libsane-smfp.so.1.0.1
    
  3. If you use a 64-bit system (which you probably do), use the terminal again to change to the scanner driver directory. Here you put a symbolic link to the file in /opt:

    cd /usr/lib/x86_64-linux-gnu/sane
    sudo ln -s /opt/smfp-common/scanner/lib/libsane-smfp.so.1.0.1 /usr/lib/x86_64-linux-gnu/sane/libsane-smfp.so.1
    
  4. But things still didn't work, so I had to install a USB library:

    sudo apt install libusb-0.1-4
    

    After that, I made sure that I was in the same network with my printer (via ping) and did scanimage -L:

    $ scanimage -L
    device `smfp:net;192.168.1.20' is a Samsung M2070 Series on 192.168.1.20 Scanner
    
  5. If pinging your scanner works but the command finds nothing, you can start to debug things:

    cd
    export SANE_DEBUG_DLL=255 && scanimage -L &> debug.txt
    grep -n2 "libsane-smf" debug.txt
    

    If everything works correctly, you would get the following output:

    ....
    84-[dll] sane_get_devices
    85-[dll] load: searching backend `smfp' in `/usr/lib/x86_64-linux-gnu/sane'
    86:[dll] load: trying to load `/usr/lib/x86_64-linux-gnu/sane/libsane-smfp.so.1'
    87:[dll] load: dlopen()ing `/usr/lib/x86_64-linux-gnu/sane/libsane-smfp.so.1'
    88-[dll] init: initializing backend `smfp'
    89-[dll] init: backend `smfp' is version 1.0.1
    ....
    

    If not, you might find a hint as to what file is missing or not found.