ARM64 and Printer

First of all, thank you very much for continuing to look into my problem and contributing possible solutions.

@mountain: I looked at the driver lists, but couldn’t find a current printer that covers my use cases.

@josch: The MFC is connected via LAN. But your question gave me the idea to try USB. And what can I say? LibreOffice recognizes it and it prints. After a short time, it also appears in the printer management. That gives me hope.

But it still doesn’t work via LAN. It’s probably due to the wrong protocol (ipp, etc.) and the missing ARM64 driver.

1 Like

The printer supposedly supports both: wifi direct and airprint. It should thus appear when you run the avahi-browse command I mentioned above. Did you try that out and got no results? Can you ping the printer? Have you tried inspecting which ports it has open? The HP I have here shows this with nmap:

PORT     STATE SERVICE
80/tcp   open  http
443/tcp  open  https
631/tcp  open  ipp
8080/tcp open  http-proxy
9100/tcp open  jetdirect

But first try avahi-browse -rt _ipp._tcp. You need the packages avahi-daemon and avahi-utils installed for that.

1 Like

Here is the output from nmap:

Nmap scan report for Brother-MFC-J6940DW.fritz.box (192.168.17.36)
Host is up (0.042s latency).
Not shown: 995 closed tcp ports (conn-refused)
PORT STATE SERVICE
80/tcp open http
443/tcp open https
515/tcp open printer
631/tcp open ipp
9100/tcp open jetdirect

avahi-browse -rt _ipp._tcpreports:

  • wlP4p65s0 IPv6 Brother MFC-J6940DW Internet Printer local
  • wlP4p65s0 IPv4 Brother MFC-J6940DW Internet Printer local
  • lo IPv4 Brother MFC-J6940DW (USB)                     Internet Printer     local
    

= lo IPv4 Brother MFC-J6940DW (USB) Internet Printer local
hostname = [mntmk1.local]
address = [127.0.0.1]
port = [60000]
txt = [“air=none” “mopria-certified=2.1” “rp=ipp/print” “priority=50” “kind=document,envelope,postcard,photo” “PaperMax=isoC-A2” “URF=SRGB24,W8,CP1,IS19-20-21,MT1-8-11,OB9,PQ3-4-5,RS200-600,OFU0,V1.5,DM3” “UUID=e3248000-80ce-11db-8000-b42200721f96” “Color=T” “Duplex=T” “note=” “qtotal=1” “pdl=application/octet-stream,image/urf,image/jpeg,image/pwg-raster,application/vnd.brother-hbp” “txtvers=1” “adminurl=http://localhost:60000/net/net/airprint.html” “Fax=T” “rfo=ipp/faxout” “Scan=T”]
= wlP4p65s0 IPv6 Brother MFC-J6940DW Internet Printer local
hostname = [BRW4CD5775A4E94.local]
address = [192.168.17.36]
port = [631]
txt = [“mopria-certified=2.1” “print_wfds=T” “UUID=e3248000-80ce-11db-8000-b42200721f96” “PaperMax=tabloid-A3” “kind=document,envelope,postcard,photo” “URF=SRGB24,W8,CP1,IS19-20-21,MT1-8-11,OB9,PQ3-4-5,RS200-600,OFU0,V1.5,DM3” “rfo=ipp/faxout” “TBCP=F” “Transparent=T” “Binary=T” “PaperCustom=T” “Scan=T” “Fax=T” “Duplex=T” “Copies=F” “Color=T” “usb_CMD=HBP,PJL,URF” “usb_MDL=MFC-J6940DW” “usb_MFG=Brother” “priority=25” “adminurl=http://BRW4CD5775A4E94.local./net/net/airprint.html” “product=(Brother MFC-J6940DW)” “ty=Brother MFC-J6940DW” “note=” “rp=ipp/print” “pdl=application/octet-stream,image/urf,image/jpeg,image/pwg-raster,application/vnd.brother-hbp” “qtotal=1” “txtvers=1”]
= wlP4p65s0 IPv4 Brother MFC-J6940DW Internet Printer local
hostname = [BRW4CD5775A4E94.local]
address = [192.168.17.36]
port = [631]
txt = [“mopria-certified=2.1” “print_wfds=T” “UUID=e3248000-80ce-11db-8000-b42200721f96” “PaperMax=tabloid-A3” “kind=document,envelope,postcard,photo” “URF=SRGB24,W8,CP1,IS19-20-21,MT1-8-11,OB9,PQ3-4-5,RS200-600,OFU0,V1.5,DM3” “rfo=ipp/faxout” “TBCP=F” “Transparent=T” “Binary=T” “PaperCustom=T” “Scan=T” “Fax=T” “Duplex=T” “Copies=F” “Color=T” “usb_CMD=HBP,PJL,URF” “usb_MDL=MFC-J6940DW” “usb_MFG=Brother” “priority=25” “adminurl=http://BRW4CD5775A4E94.local./net/net/airprint.html” “product=(Brother MFC-J6940DW)” “ty=Brother MFC-J6940DW” “note=” “rp=ipp/print” “pdl=application/octet-stream,image/urf,image/jpeg,image/pwg-raster,application/vnd.brother-hbp” “qtotal=1” “txtvers=1”]

This looks really good! Theoretically this means that you do not need any driver at all to print. The line starting with URF= is the important one as that one tells the client (your reform) what the printer is capable of. The pdl key tells us that it accepts the mime type image/urf (apple raster) and this allows driverless printing (the urf format was reverse-engineered). Are you sure you have the cups-browsed package installed?

Now, yes.

But I’m not sure how things will proceed.

Does this mean you did not have installed it before and only now installed it?

If yes, then it makes sense that your system didn’t see the printer earlier. The “magic” of driverless printing is, that printers capable of it (as it seems is the case with yours) advertise their presence of the network and then all devices in the same network can send print jobs without installing any drivers but by sending data in one of the formats the printer understands. And if you have the avahi packages and cups packages installed then that means that you can now just open up any printer dialog and your network printer will “magically” be in the list of available printers. No installation, no drivers.

I’m sorry about that. I thought that “install cups” would install a complete package. I wasn’t aware that cups-browsed had to be installed separately.

Unfortunately, the printer still doesn’t appear in the list of available printers.

When I plug in the USB cable, it appears in the list and prints correctly.

Note that for network printing autodetection to work out-of-the-box, it needs to be on the same network segment, as it relies on mDNS (multicast packets with a TTL of 1). If you use VLANs, a segmented network, or any other form of client isolation, you may need to look into installing avahi/igmpproxy on your router or manually specifying the printer IP. There is supposedly a way to bypass this issue via local DNS records; I am looking into this on my own network for this exact reason, as my WLAN has its own subnet and my printer is on the physical LAN. (This is a bigger issue with AirPrint in particular, as there is no way to specify printer IPs on iOS, you must rely on autodetection.)

1 Like

A valid objection. However, the printer is in the same segment. Both Wi-Fi and LAN. I can access it without any problems via the Bunsenlabs Laptop.

Above, @MichaK showed that avahi-browse sees the printer. Is that not proof enough that this part is working?

But it does. The package cups depends on cups-daemon which in turn recommends all the packages needed for driverless printing: avahi-daemon, cups-browsed, ipp-usb

Do you maybe have installing recommends by default turned off? Maybe you have the logs from when you installed cups in your /etc/apt/history.log* and can figure out what exactly got installed at the time when you installed it?

1 Like

It seems that this file does not exist. At least, I did not find it in /etc/apt.

Indeed, I missed that detail. It must be a CUPS config issue, I’m less versed in troubleshooting this so I will defer to others. It should just work over the network if CUPS is configured correctly and there is no unusual network setup.

Shoot, sorry, I mistyped. I meant /var/log/apt/history.log*. Finger memory must’ve made me type /etc/apt/... XD

No problem. Thank you for your patience.

The log is really long…

Here are the results of my search. The following was installed in connection with the printer:

cups

ipp-usb

system-config-printer

printer-driver-gutenprint

printer-driver-brlaser

avahi-utils

avahi-daemon

cups-browsed

Good, so cups-browsed was installed back then. You can use the same log to figure out what removed it. But in any case, you still cannot print over the network for some reason. I think though that your problem is a “Linux printing” problem and not a “ARM64 Linux” problem. :slight_smile:

I am not yet using Reform productively and have therefore tested some software and uninstalled some of it again. I cannot rule out the possibility that important parts have been lost. It would therefore make sense to set up Reform again. Would that be advisable, or would it involve risks?

You can try out what happens with a vanilla installation by flashing a new system image to an sd-card, booting that and then install cups on that system and see what happens. That way, you don’t loose your existing installation.

Just thought I’d drop this here. The idea of a non-evil actually repairable printer should be exciting to all of us. Even if it does use HP cartridges.

1 Like

What a great project! I’ve been following the development of this printer very closely. Unfortunately, we don’t hear much about it these days. But if it ever becomes available for purchase, I’ll definitely buy it.