Registering old RHEL systems into new Satellite versions

Sometimes you find out you need to register really ancient Red Hat Enterprise Linux systems into a new Satellite, but this poses a number of challenges, namely around support, and having the right tools in the system (subscription-manager, curl and others) available so the system can be successfully managed by Red Hat Satellite.

Supported Satellite client operating systems

Red Hat maintains a list of supported operating systems per version on Satellite here:

https://access.redhat.com/solutions/5607011 - What are the supported operating systems for hosts of Red Hat Satellite 6 ?

The reality is a bit more complex, as Red Hat only tests new Satellite versions with actively supported RHEL operating systems. For RHEL6, this means that the only tested combinations are those using RHEL 6.10 using the ELS (Extended Lifecycle Support) add-on.

For ancient RHEL 7.0 and RHEL 7.1 versions, it's even more complicated because curl lacks some cryptographic cyphers, which make connecting to Satellite impossible.

The workaround is to upgrade the relevant system packages to the latest version PRIOR to attempting to register the system into Satellite 6.x .

So here are some notes on how to accomplish that:

Registering RHEL 6 older than 6.10 are not supported with Satellite 6.10+. Registration does not work.

  • It is required to update the subscription-manager, rpm, and other components to those provided by RHEL 6.10 prior to onboarding the system into Satellite 6.12 .
  • This process might render the "subscription-manager" inoperable. It is recommended to perform a full backup of the system, and implement access to the RHEL 6.10 DVD prior to attempting this upgrade.
  • The RHEL 6.10 content can be made available via the RHEL ISO, or hosted in a web server or NFS server.
  • Red Hat Engineering does not certify a full list of packages that need to be upgraded. However, when testing the following list of packages seems to be sufficient to allow a successful registration:
  • yum upgrade -y "yum*" "subscription-manager*" "rpm" python-requests.noarch python-rhsm.x86_64 python-six.noarch python-urlgrabber.noarch python-urllib3.noarch openssl
  • More packages might be required depending on the installed packages in the managed system that needs to be migrated.

RHEL 7.0 and RHEL 7.1 cannot be registered with Satellite.

  • In a similar way to RHEL 6, RHEL 7.0 and RHEL 7.1 cannot connect to a new satellite because of openssl ciphers and because of subscription-manager components. Registration errors might include curl: (35) Peer reports incompatible or unsupported protocol version.
  • The problem can be solved by upgrading the following packages prior to registration. Packages should come from RHEL 7.9.
  • yum upgrade -y openssl curl "yum*" "subscription-manager*" "rpm" python-six python-rhsm
  • Again, this process might render the "subscription-manager" inoperable. It is recommended to perform a full backup of the system, and implement access to the RHEL 7.9 DVD prior to attempting this upgrade.
  • The RHEL 7.9 content can be made available via the RHEL ISO, or hosted in a web server or NFS server.

Happy Satellite-ing!

Installing a Brother DCP-L2550DN printer and scanner in Fedora 37

Bother DCP-L2550DN printer

My trusty, 15 year old Brother HL-2030 printer died with a Laser sensor error, so it was due time for a replacement. Brother has been known to make good printers and I wanted to get a replacement ASAP.

My requirements for the printer were:

  • Laser B&W / monochrome. I only print a few pages per year, but I really need to work OK (as I'm usually very remote to the printer).
  • Reasonable low cost (under 200€).
  • Network attachable (Ethernet), wifi optional.
  • Fedora compatible.

So I found this Brother DCP-L2550DN on Amazon, and after a couple of days for shipping, I was ready to get it installed.

Installing the printer

In my case, I just had to remove the old printer, and replace in place with the new one. I connected the same USB-A (computer) to USB-B (printer) cable, and it was immediately recognized by lsusb.

#> lsusb | grep -i Brother
Bus 001 Device 005: ID 04f9:0423 Brother Industries, Ltd DCP-L2550DN series

The Brother support page instructs you to download the installer script, which in my case was:

  • linux-brprinter-installer-2.2.3-1
  • dcpl2550dnpdrv-4.0.0-1.i386.rpm
  • brscan-skey-0.3.1-2.x86_64.rpm
  • brscan4-0.4.11-1.x86_64.rpm

After running the script and asking for the specific model (DCP-L2550DN in my case, hyphen included), CUPS reported it as configured.

#> ./linux-brprinter-installer-2.2.3-1 
Input model name ->DCP-L2550DN

You are going to install following packages.
   dcpl2550dnpdrv-4.0.0-1.i386.rpm
   brscan4-0.4.11-1.x86_64.rpm
   brscan-skey-0.3.1-2.x86_64.rpm
OK? [y/N] ->y

rpm -ihv --nodeps --replacefiles --replacepkgs dcpl2550dnpdrv-4.0.0-1.i386.rpm
Verifying...                          ########################################
Preparing...                          ########################################
Updating / installing...
dcpl2550dnpdrv-4.0.0-1                ########################################
ln: failed to create symbolic link '/opt/brother/Printers/DCPL2550DN/lpd/rawtobr3': File exists
ln: failed to create symbolic link '/opt/brother/Printers/DCPL2550DN/lpd/brprintconflsr3': File exists
ln: failed to create symbolic link '/etc/opt/brother/Printers/DCPL2550DN/inf/brDCPL2550DNrc': File exists
ln: failed to create symbolic link '/usr/lib/cups/filter/brother_lpdwrapper_DCPL2550DN': File exists
ln: failed to create symbolic link '/usr/share/cups/model/brother-DCPL2550DN-cups-en.ppd': File exists
ln: failed to create symbolic link '/usr/share/ppd/brother/brother-DCPL2550DN-cups-en.ppd': File exists
lpadmin -p DCPL2550DN -E -v usb://Brother/DCP-L2550DN%20series?serial=E78284M2N111836 -P /usr/share/ppd/brother/brother-DCPL2550DN-cups-en.ppd
lpadmin: Printer drivers are deprecated and will stop working in a future version of CUPS.
ValueError: File context for /etc/opt/brother/Printers/DCPL2550DN/inf(/.*)? already defined
ValueError: File context for /opt/brother/Printers/DCPL2550DN/inf(/.*)? already defined
ValueError: File context for /opt/brother/Printers/DCPL2550DN/lpd(/.*)? already defined
ValueError: File context for /opt/brother/Printers/DCPL2550DN/cupswrapper(/.*)? already defined
#
semanage fcontext -a -t bin_t /opt/brother
ValueError: File context for /opt/brother already defined
restorecon -R /opt/brother
semanage fcontext -a -t cupsd_rw_etc_t /etc/opt/brother
ValueError: File context for /etc/opt/brother already defined
restorecon -R /etc/opt/brother
semanage fcontext -a -t cupsd_rw_etc_t /opt/brother/Printers/(.*/)?inf(/.*)?
ValueError: File context for /opt/brother/Printers/(.*/)?inf(/.*)? already defined
restorecon -R /opt/brother/Printers
semanage fcontext -a -t cupsd_rw_etc_t /etc/opt/brother/Printers/(.*/)?inf(/.*)?
ValueError: File context for /etc/opt/brother/Printers/(.*/)?inf(/.*)? already defined
restorecon -R /etc/opt/brother/Printers
semanage fcontext -a -t bin_t /opt/brother/Printers/(.*/)?lpd(/.*)?
ValueError: File context for /opt/brother/Printers/(.*/)?lpd(/.*)? already defined
restorecon -R /opt/brother/Printers
semanage fcontext -a -t bin_t /opt/brother/Printers/(.*/)?cupswrapper(/.*)?
ValueError: File context for /opt/brother/Printers/(.*/)?cupswrapper(/.*)? already defined
restorecon -R /opt/brother/Printers
restorecon -RFv /usr/lib/cups/filter
setsebool -P cups_execmem 1
Will you specify the Device URI? [Y/n] ->


0: beh
1: ipp
2: cups-brf:/
3: https
4: socket
5: serial:/dev/ttyS0?baud=115200
6: lpd
7: http
8: ipps
9: smb
10 (I): Specify IP address.
11 (A): Auto. (usb://dev/usblp0)

select the number of destination Device URI. ->11

lpadmin -p DCPL2550DN -v usb:///etc/usblp0 -E
Test Print? [y/N] ->

You are going to install following packages.
   brscan4-0.4.11-1.x86_64.rpm
rpm -ihv --nodeps --replacefiles --replacepkgs brscan4-0.4.11-1.x86_64.rpm
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:brscan4-0.4.11-1                 ################################# [100%]
This software is based in part on the work of the Independent JPEG Group.
You are going to install following packages.
   brscan-skey-0.3.1-2.x86_64.rpm
rpm -ihv --nodeps --replacefiles --replacepkgs brscan-skey-0.3.1-2.x86_64.rpm
Verifying...                          ################################# [100%]
Preparing...                          ################################# [100%]
Updating / installing...
   1:brscan-skey-0.3.1-2              ################################# [100%]
ln: failed to create symbolic link '/etc/opt/brother/scanner/brscan-skey/brscan_mail.config': File exists
ln: failed to create symbolic link '/etc/opt/brother/scanner/brscan-skey/brscan-skey.config': File exists
ln: failed to create symbolic link '/etc/opt/brother/scanner/brscan-skey/brscan-snmp.cfg': File exists
ln: failed to create symbolic link '/etc/opt/brother/scanner/brscan-skey/scantofile.config': File exists
ln: failed to create symbolic link '/etc/opt/brother/scanner/brscan-skey/scantoimage.config': File exists
ln: failed to create symbolic link '/etc/opt/brother/scanner/brscan-skey/scantoocr.config': File exists
ln: failed to create symbolic link '/etc/opt/brother/scanner/brscan-skey/scantoemail.config': File exists
ln: failed to create symbolic link '/usr/bin/brscan-skey': File exists

I tried printing a test page but nothing would work because it was configured to use a device called /dev/usb/lp0 , or /dev/usblp0 . Neither of those existed on my system so I was troubleshooting for a while.

Some useful resources:

https://fedoraproject.org/wiki/How_to_debug_printing_problems

Configuring the right CUPS queue

In the end, I used good old system-config-printer graphical assistant, which automatically detected the printer, and configured it in cups in the following manner:

#> lpstat -p
printer Brother-DCP-L2550DN-series is idle.  enabled since Thu Mar 30 14:46:53 2023
Description:    Brother DCP-L2550DN series
Location:   mycomputer
Driver: Brother DCPL2550DN for CUPS (grayscale, duplex)
Connection: usb://Brother/DCP-L2550DN%20series?serial=XXXXXXXXXXXXX
Default Options:    Banners=none, none paper=iso_a4_210x297mm sides=one-sided

Configuring SANE

This was my first try with SANE in 20+ years using Linux, and I only had to install the driver as performed with the automatic installer.

Fedora ships simple-scan, which takes care of scanning pages both from the external feeder or the internal scanner. It works nicely and can output images to both JPGs or PDFs (for documents).

Happy hacking!