Re: Bluetooth printer connection error

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux