To expand our hardware list, i would be interested to know which printers are supported/or not supported.
Of course, this only makes sense if you run Haiku directly on hardware.
Please provide the following information:
Manufacturer: for example HB
Model: for example B109b
Connection: for example USB
Haiku hrev number you use this on
Note: Information necessary for operation
Please don’t have any discussions about it here, only post hardware
Canon MP 610
USB connection
Hrev… beta3, or some nightlies?
Driver: Gutenprint for MP 610
Note: Has to be setup explicitly with the gutenprint driver as usb printer, with selecting the model.
Note: All gutenprint driven usb printers are supported, this is just one example i can verify, perhaps linking to their list is a better idea.
I don´t think this really applies here. If you pass through your USB printer to the virtual machine or use a network connected printer it doesn`t make a difference if you are running Haiku directly on the hardware or in a VM.
No, you just pass the raw USB device to the VM. The printer driver handling all happens in the guest OS, Haiku in this case. Same thing with networked printers.
What @BlueSky wrote stands, but let me extend: you have to configure the USB passtrough in your virtualization software. It is not nevessarily a simple task (in case of qemu, for example).
Search for guides on the web with you preferred search engine using the “name-of-your-virtualization-software + usb + passthrough “
It’s good that we have so many possible printers thanks to the Gutenprint driver, but in the end they haven’t been tested on haiku (well, no one has them all at home ;-)).
I think a real hardware list can only be good if what is included is functional.
What I find particularly interesting are network printers that are supported, since these are the ones that are used the most these days?
I checked about porting cups, which has probably the biggest number of printers supported (USB and network), but there are plenty of dependencies not yet available (libavahi, kerberos, etc…) and some are clearly out of my comptency (kerberos in particular)
We don’t need cups, gutenprint already provides what we need for usb printers.
For airprint we basically need to implement mdns service discovery, and then use ipp printing. We now have working multicast so the next thing to work on is probably service discovery.
Manufacturer: HP
Model: Office Jet Pro 6970
Connection: USB Not working
Connection: Network over HP JET Direct (Work, but with errors, second printjob hangs, first was already done.
Haiku hrev number you use this on: 55843
Note: use Gutenprint
Not only we don’t need it, but also we don’t want it. Who thought “oh I will serve a web interface on localhost to configure printers” was a good idea? And “oh I will use HTTP authentication but provide no logout button, so if you log in with the wrong user account you can never do anything with cups anymore?”
Modern printers don’t need any specific drivers. Thanks to Apple AirPrint, where Apple said “the iPad will have no drivres, if you want your printer to work, you have to follow this protocol”. There is also the “IPP Anywhere” protocol that is very similar.
So we just have to implement a single driver for that. No need to port the whole CUPS stack. The first step is implementing Bonjour/mdns/avahi so we can discover printers on the network. This requires working multicast support, I’m not sure where we are with it exactly. Then it requires a mdns client, we could use avahi, but mDNSResponder from Apple looks a little easier to port. Then we need to see how to integrate this in our network stack, should it be integrated together with DNS/getaddrinfo, or as a separate API for example?
After that part is done, we need to adjust the printer preferences to use it to discover printers. And then there is a little more work in the driver itself to encode images in the right format, and also get some info from the printer (ink levels, etc). This is all done using REST APIs that are well standardized, so it should not be a lot of effort.