SULDR Forums Supported Printers Printing Questions Scanning Questions General Questions Samsung Installer

Howto enable SULD drivers on rasberrypi

Started by ellepdesk, July 02, 2021, 04:03:56

Previous topic - Next topic

ellepdesk

I've managed to get the suld drivers working on armhf/arm64 devices by using qemu-user emulation of amd64.
Sharing my work so others can benefit:

# enable transparent emulation of amd64 (on armhf/arm64)

apt install qemu-user-binfmt binfmt-support
dpkg --add-architecture amd64

# enable suldr repo for amd64
echo 'deb [arch=amd64] https://www.bchemnet.com/suldr/ debian extra' > /etc/apt/sources.list.d/suldr.list
wget 'http://www.bchemnet.com/suldr/pool/debian/extra/su/suldr-keyring_2_all.deb'
dpkg -i suldr-keyring_2_all.deb


# Make sure you have set up apt to install packages for amd64
# You may need to add [arch=arm64] or [arch=armhf] modifiers to lines in /etc/apt.sources.list
# and/or add the main ubuntu/debian repositories for arm64

# Update the package DB
apt update

# Install the driver indicated for your printer, in my case for a Samsung C410, suld-driver2-1.00.39. 

# This wil pull in a LOT of dependencies (about 200MB) of amd64 libs
apt install suld-driver2-1.00.39:amd64


Enjoy printing

IMPORTANT NOTICE:
This procedure is BROKEN for raspberry os/raspbian, due to a difference in the version of libc used!

UPDATE:
Thanks to bchemnet for updating the drivers before anyone else read this, the procedure has been shortened considerably.
I've removed the redundant steps to avoid confusion

bchemnet

#1
Thank you for sharing.  I have made this sticky and linked to it from the web pages.

Note that the steps for modifying and overriding packages should not be necessary with the most recent update to the repository (eliminating most of the steps in the middle).  Also note that version 1.00.36 is no longer available and 1.00.39 should be used.

ellepdesk

Thanks for updating the driver-common and ppd packages, I've updated the procedure.
I've also updated to 1.00.39.

schluppschlupp

Sounds very interesting to me! I want to get a Samsung ML-1670 running on a Raspberry Pi 4 compute module with PiOS (Linux-5.10.52-v7l+).

Unfortunely apt has difficulties solving the dependencies:

# export LANG=en_US.UTF-8 ; export LC_ALL=en_US.UTF-8 ; apt-get install suld-driver-3.00.65
bash: Warnung: setlocale: LC_ALL: Kann die Locale nicht ändern (en_US.UTF-8).
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
suld-driver-3.00.65:amd64 : Depends: libstdc++5:amd64 but it is not installable
                             Depends: libusb-0.1-4:amd64 but it is not installable
                             Depends: libxml2:amd64 but it is not installable
                             Depends: suld-network-install:amd64
                             Depends: libcupsimage2:amd64 but it is not installable
E: Unable to correct problems, you have held broken packages.

Can somebody give me a hand with this issue?

Many thanks in advance,
Jürgen.

ellepdesk

This is probably due to the fact that there is no repository configured for amd64 packages.

Can you post the content of '/etc/apt/sources.list' and all/any files in '/etc/apt/sources.list.d/'?

You will need to add a source for amd64 sources, matching the version of your os.

schluppschlupp


Many thanks for the quick response! Please find below the requested data:

root@pi4-pios-nas:~# cat /etc/apt/sources.list
deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi

root@pi4-pios-nas:~# ls -l /etc/apt/sources.list.d/
total 20
-rw-r--r-- 1 root root 187 Jan 11  2021 raspi.list
-rw-r--r-- 1 root root  56 Aug 11 09:50 raspotify.list
-rw-r--r-- 1 root root  50 Aug 11 09:46 spotify.list
-rw-r--r-- 1 root root  62 Aug 23 15:58 suldr.list

root@pi4-pios-nas:~# cat /etc/apt/sources.list.d/*
deb http://archive.raspberrypi.org/debian/ buster main
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://archive.raspberrypi.org/debian/ buster main
deb https://dtcooper.github.io/raspotify raspotify main
deb http://repository.spotify.com stable non-free
deb [arch=amd64] https://www.bchemnet.com/suldr/ debian extra

Cheers, Jürgen

ellepdesk

#6
Ok, so your distro is based on debian buster.

I think you need to add the following lines to a new file, '/etc/apt/sources.list.d/debian-arm64.list':

deb [arch=amd64] http://deb.debian.org/debian buster main
# deb [arch=amd64] http://deb.debian.org/debian-security/ buster-security main
# deb [arch=amd64] http://deb.debian.org/debian buster-updates main

This will add the main debian repositories for buster to you system, but only for amd64 packages.
run 'apt update' after adding the file and try installing suld again.


For my own system, which is based on ubuntu focal, I've added the file '/etc/atp/sources.list.d/ubuntu-amd64.list' with the content:
deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal main
deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal-updates main
deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ focal-security main

schluppschlupp

Hmm... tough ride here... I had to solve some GPG errors first, but now I get this:

root@pi4-pios-nas:~# apt-get update
Hit:1 http://deb.debian.org/debian buster InRelease
Hit:2 http://repository.spotify.com stable InRelease                                                                                                                                                         
Ign:3 http://deb.debian.org/debian-security buster-security InRelease                                                                                                                                         
Hit:4 http://archive.raspberrypi.org/debian buster InRelease                                                                                                                                                 
Hit:5 https://dtcooper.github.io/raspotify raspotify InRelease                                                         
Get:6 http://deb.debian.org/debian buster-updates InRelease [51.9 kB]                                                 
Hit:7 http://raspbian.raspberrypi.org/raspbian buster InRelease                                               
Err:8 http://deb.debian.org/debian-security buster-security Release       
  404  Not Found [IP: 151.101.14.132 80]
Hit:9 https://www.bchemnet.com/suldr debian InRelease
Get:10 http://deb.debian.org/debian buster-updates/main amd64 Packages [15.2 kB]
Get:11 http://deb.debian.org/debian buster-updates/main Translation-en [13.9 kB]
Reading package lists... Done       
E: The repository 'http://deb.debian.org/debian-security buster-security Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
N: Skipping acquire of configured file 'non-free/binary-armhf/Packages' as repository 'http://repository.spotify.com stable InRelease' doesn't support architecture 'armhf'
N: Skipping acquire of configured file 'main/binary-amd64/Packages' as repository 'https://dtcooper.github.io/raspotify raspotify InRelease' doesn't support architecture 'amd64'
N: Skipping acquire of configured file 'main/binary-amd64/Packages' as repository 'http://raspbian.raspberrypi.org/raspbian buster InRelease' doesn't support architecture 'amd64'
N: Skipping acquire of configured file 'contrib/binary-amd64/Packages' as repository 'http://raspbian.raspberrypi.org/raspbian buster InRelease' doesn't support architecture 'amd64'
N: Skipping acquire of configured file 'non-free/binary-amd64/Packages' as repository 'http://raspbian.raspberrypi.org/raspbian buster InRelease' doesn't support architecture 'amd64'
N: Skipping acquire of configured file 'rpi/binary-amd64/Packages' as repository 'http://raspbian.raspberrypi.org/raspbian buster InRelease' doesn't support architecture 'amd64'

Tried to install anyway, and got the same error as above :( Any help is very much appreciated!

ellepdesk

Hmm,  I'll have a good look tomorrow, in the meantime can you try removing the second and third line and try again?

ellepdesk

I think that

deb [arch=amd64] http://deb.debian.org/debian buster main

or maybe

deb [arch=amd64] http://deb.debian.org/debian buster main contrib

should be enough to work

I also found that adding [arch=arm64] after 'deb' to the existing repos cleans up a lot of the 'doesn't support architecture' warnings

markosjal

I think this is a serious case of "Pi in the Sky" as it does not work, even with the "updated instructions". (English in quotes)

root@raspberrypi:/etc/apt/sources.list.d# apt install suld-driver2-1.00.39:amd64
Leyendo lista de paquetes... Hecho (reading...)
Creando árbol de dependencias        (Creating dependency tree...)
Leyendo la información de estado... Hecho (reading state...)
No se pudieron instalar algunos paquetes. Esto puede significar que (could not instrall some packages, this could mean that)
usted pidió una situación imposible o, si está usando la distribución
inestable, que algunos paquetes necesarios aún no se han creado o se
han sacado de «Incoming».  (you asked for an impossible situation or you are using ...)
La siguiente información puede ayudar a resolver la situación: (the following may be helpful...)

Los siguientes paquetes tienen dependencias incumplidas: (...incomplete dependencies...)
suld-driver2-1.00.39:amd64 : Depende: libxml2:amd64 pero no va a instalarse
                              Depende: libstdc++6:amd64 pero no va a instalarse
                              Depende: libusb-0.1-4:amd64 pero no va a instalarse
                              Depende: libcupsimage2:amd64 pero no va a instalarse
E: No se pudieron corregir los problemas, usted ha retenido paquetes rotos. (unable to correct problems)

Using Raspbian debian stretch


I have  created /etc/apt/sources.list.d/debian-arm64.list

which  contains:
deb [arch=amd64] http://deb.debian.org/debian stretch main
deb [arch=amd64] http://deb.debian.org/debian-security/ stretch-security main
deb [arch=amd64] http://deb.debian.org/debian stretch-updates main

on apt-get update I see..

Err:13 http://deb.debian.org/debian-security stretch-security/main amd64 Packages
  404  Not Found [IP: 2a04:4e42:64::644 80]

W: El repositorio «http://deb.debian.org/debian-security stretch-security Release» no tiene un fichero de Publicación.
N: Los datos de un repositorio como este no se pueden autenticar y por tanto su uso es potencialmente peligroso.
N: Vea la página de manual apt-secure(8) para los detalles sobre la creación de repositorios y la configuración de usuarios.
W: Error de GPG: http://deb.debian.org/debian stretch-updates InRelease: Las firmas siguientes no se pudieron verificar porque su clave pública no está disponible: NO_PUBKEY 04EE7237B7D453EC NO_PUBKEY 648ACFD622F3D138
W: El repositorio «http://deb.debian.org/debian stretch-updates InRelease» no está firmado.
N: Los datos de un repositorio como este no se pueden autenticar y por tanto su uso es potencialmente peligroso.
N: Vea la página de manual apt-secure(8) para los detalles sobre la creación de repositorios y la configuración de usuarios.
W: Error de GPG: http://deb.debian.org/debian stretch Release: Las firmas siguientes no se pudieron verificar porque su clave pública no está disponible: NO_PUBKEY 04EE7237B7D453EC NO_PUBKEY 648ACFD622F3D138 NO_PUBKEY 0E98404D386FA1D9 NO_PUBKEY EF0F382A1A7B6500
W: El repositorio «http://deb.debian.org/debian stretch Release» no está firmado.
N: Los datos de un repositorio como este no se pueden autenticar y por tanto su uso es potencialmente peligroso.
N: Vea la página de manual apt-secure(8) para los detalles sobre la creación de repositorios y la configuración de usuarios.
E: Fallo al obtener http://deb.debian.org/debian-security/dists/stretch-security/main/binary-amd64/Packages  404  Not Found [IP: 2a04:4e42:64::644 80]
E: No se han podido descargar algunos archivos de índice, se han omitido, o se han utilizado unos antiguos en su lugar.



now to try and undo the damage.....


ellepdesk

Well, it does work, but it is not for the faint of heart.
The main problem is that it requires setting up sources for amd64 corresponding to the distribution you are running. This will differ fron distro to distro, and there are quite a lot of variants around.

There is definitely something wrong with my debian config, I'll have a look later, I'll mark it as broken for now.

yamahito

Is it possible that @markosjal and @schluppschlupp are encountering these problems because they are using a 32 bit Raspberry Pi OS?

I think that this is the problem for me, and I encountered many similar messages to those posted above.

bchemnet

Quote from: yamahito on September 28, 2021, 06:03:00
Is it possible that @markosjal and @schluppschlupp are encountering these problems because they are using a 32 bit Raspberry Pi OS?

Although I do not have any device to test with it, I believe the process should work with 32 bit as well.  Try replacing "amd64" with "i386" everywhere it appears.

yamahito

Thanks bchemnet, that's exactly what I'm working on now - good to know that I'm not on the wrong track!

yamahito

Looks like no luck with i386 either:

```
apt install suld-driver2-1.00.39:i386
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
suld-driver2-1.00.39:i386 : Depends: libxml2:i386 but it is not going to be installed
                             Depends: libstdc++6:i386 but it is not going to be installed
                             Depends: libusb-0.1-4:i386 but it is not going to be installed
                             Depends: libcupsimage2:i386 but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
```

bchemnet

Quote from: yamahito on September 28, 2021, 08:10:02
suld-driver2-1.00.39:i386 : Depends: libxml2:i386 but it is not going to be installed
                             Depends: libstdc++6:i386 but it is not going to be installed
                             Depends: libusb-0.1-4:i386 but it is not going to be installed
                             Depends: libcupsimage2:i386 but it is not going to be installed

Those are all standard Debian packages, so perhaps you do not have the Debian main repository enabled, or the equivalent for a different distribution?  It is the universe repository for Ubuntu and derivatives, but I'm not sure how Raspberry-specific distributions are configured.

ellepdesk

Can you post the contents of /etc/apt/sources.list and /etc/apt/sources.list.d/* ?

I'd like to compare them to mine.

I have personally succeeded in installing the amd64 binaries on both a arm32 debian based box, as well as an arm64 Ubuntu based box.

yamahito

Certainly.  These are with the i386 options, but the equivalents were the same when I tried amd64.

$ cat /etc/apt/sources.list
deb [arch=armhf] http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi

$ cat /etc/apt/sources.list.d/*
deb [arch=i386] http://deb.debian.org/debian buster main
deb http://archive.raspberrypi.org/debian/ buster main
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://archive.raspberrypi.org/debian/ buster main
deb [arch=i386] https://www.bchemnet.com/suldr/ debian extra
### Disabled by raspberrypi-sys-mods ###

yamahito

(As an aside, I think I have my printer working with CUPS using the hints in the last post of this page: https://www.raspberrypi.org/forums/viewtopic.php?p=1031295 )

ellepdesk

Hi, I found a raspberrypi running raspbian buster in my house, so I'm trying the procedure there.

Can you post the result of 'sudo apt update' to verify something?

ellepdesk

#21
I think I found something, it seems raspbian uses a custom version of gcc-8-base, 8.3.0-6+rpi1, where the amd64 version is just 8.3.0-6.

From what I figure apt requires the foreign package versions to EXACTLY match the native version, otherwise installation will fail.

It seems my other boards run a baseline gcc-8-base from armbian.

If I find the time I will try to prepare a docker image, that is the only way out of this I can think of.

yamahito

Hi @ellepdesk,

Good work on the investigation!

Apologies for not responding sooner, but I was away from the office yesterday.  Would you still like the output of apt update?

Quote from: ellepdesk on September 29, 2021, 08:51:19
If I find the time I will try to prepare a docker image, that is the only way out of this I can think of.

I am more than happy to provide any info I can, but please don't put yourself out on my account; I have a work-around, as mentioned earlier :)

Eim

Quote from: ellepdesk on July 02, 2021, 04:03:56
IMPORTANT NOTICE:
This procedure is BROKEN for raspberry os/raspbian, due to a difference in the version of libc used!
@ellepdesk: what OS did work for you?

I'm running on Raspberry Pi OS 32 bit based on debian bullseye.

Followed the guide with amd64 and i386 and neither works for me. Here's the output of the amd64 attempt, I can post the i386 output as well.

root@raspberrypi:~# apt update
Hit:1 http://deb.debian.org/debian bullseye InRelease
Hit:2 http://archive.raspberrypi.org/debian bullseye InRelease                                     
Hit:3 http://raspbian.raspberrypi.org/raspbian bullseye InRelease                                 
Hit:4 https://www.bchemnet.com/suldr debian InRelease
Get:5 https://www.bchemnet.com/suldr debian/extra amd64 Packages [3,796 B]
Fetched 3,796 B in 2s (2,083 B/s)
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
All packages are up to date.
N: Skipping acquire of configured file 'main/binary-amd64/Packages' as repository 'http://raspbian.raspberrypi.org/raspbian bullseye InRelease' doesn't support architecture 'amd64'
N: Skipping acquire of configured file 'contrib/binary-amd64/Packages' as repository 'http://raspbian.raspberrypi.org/raspbian bullseye InRelease' doesn't support architecture 'amd64'
N: Skipping acquire of configured file 'non-free/binary-amd64/Packages' as repository 'http://raspbian.raspberrypi.org/raspbian bullseye InRelease' doesn't support architecture 'amd64'
N: Skipping acquire of configured file 'rpi/binary-amd64/Packages' as repository 'http://raspbian.raspberrypi.org/raspbian bullseye InRelease' doesn't support architecture 'amd64'

root@raspberrypi:~# apt install suld-driver2-1.00.39:amd64
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
gnupg : Depends: dirmngr (< 2.2.27-2.1~)
         Depends: dirmngr (>= 2.2.27-2)
         Depends: gnupg-utils (< 2.2.27-2.1~)
         Depends: gnupg-utils (>= 2.2.27-2)
         Depends: gpg (< 2.2.27-2.1~)
         Depends: gpg (>= 2.2.27-2)
         Depends: gpg-agent (< 2.2.27-2.1~)
         Depends: gpg-agent (>= 2.2.27-2)
         Depends: gpg-wks-client (< 2.2.27-2.1~)
         Depends: gpg-wks-client (>= 2.2.27-2)
         Depends: gpg-wks-server (< 2.2.27-2.1~)
         Depends: gpg-wks-server (>= 2.2.27-2)
         Depends: gpgsm (< 2.2.27-2.1~)
         Depends: gpgsm (>= 2.2.27-2)
libcrypt1 : Depends: libc6 (>= 2.25) but it is not installable
perl-base : PreDepends: libc6 (>= 2.29) but it is not installable
suld-driver2-1.00.39:amd64 : Depends: cups:amd64 or
                                       cupsys:amd64 but it is not installable
                              Recommends: sane-utils:amd64
E: Unable to correct problems, you have held broken packages.

@ellepdesk Is this the libc error you are reffering to?

Also I've added the debian bullseye package source:
root@raspberrypi:~# cat /etc/apt/sources.list.d/raspi.list
deb [arch=amd64] http://deb.debian.org/debian/ bullseye main
#deb [arch=i386] http://deb.debian.org/debian/ bullseye main

ellepdesk

@Eim:
Yes, that is the libc issue that happens on raspberry pi os.

I've had success with armbian as os

Eim

Thanks. No luck with ubuntu server 20.04 32-bits either.

@ellepdesk: What armbian version or image did you use?
I don't see Raspberry Pi 3B+ in the list of supported devices on their website: https://www.armbian.com/download/?device_support=Supported

ellepdesk

@Eim: My experiments with this driver are not on raspberry hardware, but on a Cubieboard2 (arm7) and a NanoPI Neo4 (arm64)

Do you get the (exact) same error for libc when using ubuntu for raspberry?

steffl

For everyone running into the libc6 issue, or any other issue when installing Suldr on Rasperry Pi OS there is another potential way to get Samsung printers working using the so called Splix Samsung printer driver package.

This can be easily installed by just running installing it from the default debian sources like this:

sudo apt install printer-driver-splix
No fiddling needed. The drivers will then show up in CUPS when setting up your printer. If your exact model isn't listed you should try the closest one. In my case I am using the SCX-3200 driver, which works fine for my SCX-3400 printer.

Further infos:
- https://packages.debian.org/de/bullseye/printer-driver-splix
- http://splix.ap2c.org/

dan

Dear All,

I want to share my success story with Asus TinkerBoard and Samsung CLP-360 printer.
I used a fresh install of Armbian 22.08 Jammy (found here), which is also available for most of the current RaspberryPis (except RPi Zero, but Zero 2W is supported).

I updated my packages and installed the emulation binaries:
apt-get update
apt-get upgrade
apt-get install qemu-user-binfmt binfmt-support
dpkg --add-architecture amd64

Then I modified my /etc/apt/sources.list file to look like this:
deb [arch=armhf] http://ports.ubuntu.com/ jammy main restricted universe multiverse
deb [arch=armhf] http://ports.ubuntu.com/ jammy-security main restricted universe multiverse
deb [arch=armhf] http://ports.ubuntu.com/ jammy-updates main restricted universe multiverse
deb [arch=armhf] http://ports.ubuntu.com/ jammy-backports main restricted universe multiverse

deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy main restricted universe multiverse
deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy-security main
deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy-updates main
deb [arch=amd64] http://archive.ubuntu.com/ubuntu/ jammy-backports main
deb [arch=amd64] https://www.bchemnet.com/suldr/ debian extra

... then I run the following:

wget 'http://www.bchemnet.com/suldr/pool/debian/extra/su/suldr-keyring_2_all.deb'
dpkg -i suldr-keyring_2_all.deb
apt-get update

... finally I installed the driver:
apt-get install suld-driver2-1.00.39:amd64

Everything went smoothly - no errors.
I also followed this tutorial to install CUPS and this tutorial to enable AirPrint.

It all worked as described and I can print from my Mac and iDevices without any problems.

As it was already mentioned before - the key to make it all work was to add proper repository sources for amd64 architecture. These sources have to mach the distribution you're using otherwise it won't work.

P.S.
I made it work before on RPi Zero W with a driver from printer-driver-foo2zjs package on current RaspberryPi OS - however this Pi was a bit too slow when printing large documents, that's why I replaced it with Armbian on a TinkerBoard that I had lying around unused.

BethanyBurgess


Repository Information Legal Contact Alternative Drivers