Le 10/12/2020 à 10:35, Bastien Nocera a écrit : > On Wed, 2020-12-09 at 22:45 +0100, Laurent Vivier wrote: >> Le 09/12/2020 à 21:27, Bastien Nocera a écrit : >>> On Wed, 2020-12-09 at 20:04 +0100, Laurent Vivier wrote: >>>> Le 09/12/2020 à 12:34, Bastien Nocera a écrit : >>>>> On Wed, 2020-12-09 at 12:14 +0100, Laurent Vivier wrote: >>>> ... >>>>>>> If the printer has uses the SPP or HCRP printing profiles, >>>>>>> you >>>>>>> should >>>>>>> see it when using: >>>>>>> /usr/lib/cups/backend/bluetooth >>>>>>> without any arguments. >>>>>> >>>>>> As I don't see it once it is paired, I guess it is not using >>>>>> one >>>>>> of >>>>>> these profiles. >>>>> >>>>> I don't remember how this used to work, but you'll probably >>>>> only >>>>> see >>>>> something if the printer is visible. >>>>> >>>>> You might be able to get the printer to work by adding: >>>>> bluetooth://DC0D309023C7 >>>>> as a printer in the printer settings of your favourite desktop >>>>> environment, if it actually uses SPP. >>>>> >>>>> running the cups backend with: >>>>> /usr/lib/cups/backend/bluetooth --get-deviceid >>>>> bluetooth://DC0D309023C7 >>>>> >>>>> should show you whether it can get autoconfigured for CUPS use. >>>>> >>>> >>>> Thank you Bastien, it's exactly what I needed to know. >>>> >>>> Correct me if I'm wrong but it seems there is a bug in the >>>> cups/bluetooth >>>> command: >>> >>> Sigh. No, it's not a bug, it's just that the cups tool was never >>> ported >>> from the bluez 4.x to the current bluez 5.x API... >>> >>> Until that's ported (if ever, given the low number of Bluetooth >>> printers around...), you could try to extract the IEEE1284 ID >>> using: >>> sdptool records DC:0D:30:90:23:C7 >> >> $ sdptool records DC:0D:30:90:23:C7 >> Service Name: SPP Dev >> Service RecHandle: 0x10001 >> Service Class ID List: >> "Serial Port" (0x1101) >> Protocol Descriptor List: >> "L2CAP" (0x0100) >> "RFCOMM" (0x0003) >> Channel: 1 >> Language Base Attr List: >> code_ISO639: 0x656e >> encoding: 0x6a >> base_offset: 0x100 >> >> It doesn't seem to provide an IEEE1284 ID. >> >>> >>> But I'm not certain that this working is necessary to actually try >>> a >>> print. Have you tested that? >>> >> >> Not sure what to do... >> >> If I try to add the printer using the GUI, it doesn't appear in the >> list and I cannot add it >> manually (Fedora 33/GNOME 3.38.2) in GUI. >> >> If I add it with the following command line: >> >> lpadmin -p M02 -E -v bluetooth://DC0D309023C7 -P >> /usr/share/cups/model/Phomemo/Phomemo-M02.ppd.gz >> >> It doesn't print anything. >> >> But I had some selinux related error: >> >> setroubleshoot[13488]: SELinux interdit à bluetooth d'utiliser >> l'accès connect sur le >> bluetooth_socket Inconnu.Pour des messages SELinux exhaustifs, lancez >> sealert -l >> 965e2270-948f-4791-93f0-3b856c162cea >> setroubleshoot[13488]: SELinux interdit à bluetooth d'utiliser >> l'accès connect sur le >> bluetooth_socket Inconnu. >> ... >> >> So I ran: >> >> ausearch -c "bluetooth" --raw | audit2allow -M my-bluetooth >> semodule -X 300 -i my-bluetooth.pp >> >> And now what I have in the syslogs is: >> >> cupsd[1185]: REQUEST localhost - - "POST /printers/M02 HTTP/1.1" 200 >> 499560 Print-Job successful-ok >> DC0D309023C7[14310]: sdp_send_req_w4_rsp: Error sending >> data:Permission denied > > Well, that's not going to work. > > I'm afraid that's about as far as I can help you. Ideally, you would > port the bluez cups code to the current 5.x API, and then add support > for your devices, but it's likely a difficult task without access to > non-SPP/HCRP hardware. > > I'd recommend writing a new cups backend, replacing the bluetooth one > for this case (see https://www.cups.org/doc/man-backend.html for the > API). > > Launching without a command-line argument would list the paired phomemo > printers, and printing would search the RFCOMM channel on the remote > device (see bluez's sdp.c in the cups backend), and connect to it to > send the data in the format you expect (see bluez's spp.c in the cups > backend). > > There might be additional refinements I'm missing, but that should be > able to get you started. > > Good luck. > Thank you for your help. I will try to do that. Thanks, Laurent