I recently shifted to Bazzite (based on Silverblue) and ran into the same problem with my Samsung Xpress SL-M2020 printer.
I ended up creating an rpm and installing it as an rpm-ostree overlay to get my printer working (as per below).
Create RPM of Samsung Xpress SL-M2020 printer files
In clean install of Fedora Workstation 41 (virtual machine in boxes)
Download Samsung printer drivers from HP website at: https://ftp.hp.com/pub/softlib/software13/printers/SS/SL-C4010ND/uld_V1.00.39_01.17.tar.gz
Install RPMCreator GUI tool
$sudo dnf install https://github.com/AKotov-dev/RPMCreator/releases/download/v2.6/rpmcreator-2.6-0.mrx9.x86_64.rpm
find files modified less than a minute ago for comparison after printer driver install script has been run (iâve added exceptions to limit the amount of locations searched for changed files to reduce the size of the captured output file)
open terminal
$cd /
$sudo find -L . ! ( -name proc -type d -prune -o -name sys -type d -prune -o -name run -type d -prune -o -name tmp -type d -prune -o -name dev -type d -prune -o -path â./var/lib/selinux/â -o -path './var/lib/flatpak/â -o -path â./var/cache/â -o -path './var/lib/nfs/â -o -path â./var/lib/gdm/â -o -path './var/log/â -o -path â./var/lib/fwupd/*â -o -name â.cacheâ -type d -prune -o -name âsystemdâ -type d -prune ) -mmin -10 > $HOME/Downloads/pre-install.txt
Extract the downloaded samsung printer tar file and execute the install script
$cd âextract locationâ/uld_V1.00.39_01.17/uld
$sudo ./install.sh
once install is finished capture changes to file system
$cd /
$sudo find -L . ! ( -name proc -type d -prune -o -name sys -type d -prune -o -name run -type d -prune -o -name tmp -type d -prune -o -name dev -type d -prune -o -path â./var/lib/selinux/â -o -path './var/lib/flatpak/â -o -path â./var/cache/â -o -path './var/lib/nfs/â -o -path â./var/lib/gdm/â -o -path './var/log/â -o -path â./var/lib/fwupd/*â -o -name â.cacheâ -type d -prune -o -name âsystemdâ -type d -prune ) -mmin -10 > $HOME/Downloads/post-install.txt
Note: change -mmin -10 minutes value if needed to capture changes further back in time
Comparing the pre and post install txt files and the contents of the extracted tar file I then created a project in RPMCreator as follows:
Create project âsamsung-printerâ
Under Basic tab
+Files and Folders
Add directories: (not sure if they have to be first in the list but there are some sym links to files in these folders)
/opt/samsung/
/opt/smfp-common/
/usr/share/cups/model/uld-samsung
/usr/share/ppd/uld-samsung
Add files:
/etc/sane.d/smfp-samsung.conf
/etc/udev/rules.d/64-smfp_samsung.rules
/usr/lib/cups/backend/smfpnetdiscovery
/usr/lib/cups/filter/rastertospl
/usr/lib/cups/filter/pstosecps
/usr/lib64/sane/libsane-smfp.so.1.0.1
/usr/lib64/sane/libsane-smfp.so.1
/usr/lib64/sane/libsane-smfp.so
/usr/share/locale/fr/LC_MESSAGES/sane-smfp.mo
Package Name: samsung-printer
fill in something for other blue coloured fields
Scripts tab â clear contents
repack.txt tab
enter info in blue fields
click âCreate repack.txtâ
Save project
Build package
Trying to build the package at this point generated an error with ârastertosplâ due to an embedded rpath issue. Rather than work out how to build from the command line with build flag to ignore the error i removed the embedded rpath in ârastertosplâ file and added a symbolic link to the affected library into /usr/lib64:
$sudo dnf install chrpath
$sudo chrpath -d /opt/smfp-common/printer/bin/rastertospl
$sudo ln -s /opt/smfp-common/printer/lib/libscmssc.so /usr/lib64/libscmssc.so
Add following to list of files in RPMCreator project, save and âbuild packageâ
/usr/lib64/libscmssc.so
Assuming package build is successful
copy rpm from $HOME/rpmbuild/RPMS to host machine
On host machine run
$rpm-ostree install samsung-printer.xxx.rpm
Manual File Changes
I found one existing file that was updated so just manually made the change.
Edit /etc/sane.d/dll.conf (i used $sudo vim /etc/sane.d/dll.conf) and add at end of file:
smfp
Reboot, add printer and print test page.
Note: my specific printer (M2020 series) doesnât support ipp-usb.