Kitz ADSL Broadband Information
adsl spacer  
Support this site
Home Broadband ISPs Tech Routers Wiki Forum
 
     
   Compare ISP   Rate your ISP
   Glossary   Glossary
 
Please login or register.

Login with username, password and session length
Advanced search  

News:

Author Topic: My horrible Canon GX6050 printer with iOS  (Read 3573 times)

Weaver

  • Senior Kitizen
  • ******
  • Posts: 11459
  • Retd s/w dev; A&A; 4x7km ADSL2 lines; Firebrick
My horrible Canon GX6050 printer with iOS
« on: October 06, 2022, 08:10:47 PM »

I’ve had an afternoon of horror trying to get this printer to work with Janet’s iPad. I found out that "she set it up" (sic) herself one or two years ago, and a few months ago something unknown happened to it and after that she couldn’t print to it any of a variety of methods from an iPad or iPhone (not sure which).

This is a really stupid piece of kit, but also way too sophisticated in some respects without fixing the basics. God help you if you are a *nix or iOS/iPadOS user as you have to type in a vast amount of stuff on an extremely complex touchscreen UI but to be fair there are apps for Windows and MacOS that can (somehow) set it up remotely. Why in the name of all that’s holy didn’t they have a web server admin ui app? Also the moment you set up a non-default admin password it constantly keeps challenging you for it. Why does it not just work on an eg 5 min timeout, so that one can do lots of operations in one time window?

It has three modes of connection to user/client machines. 1 wifi, 2, ethernet wired LAN, and this mysterious "direct" thing. The latter may be an ad-hoc mode WLAN (what is it called?) as opposed to the normal "infrastructure mode" used by our WAPs and combination wireless routers, but I’m not sure about that at all. It would be a useful feature if the device were to be useable by casual strangers who know nothing of the infrastructure WAP settings. I was pretty fed up that Janet had somehow turned this on as it was causing interference in the 2.4 GHz band where space is critically scarce. I’m not sure but I think that this was the mode in which she was printing to the thing before. So she possibly couldn’t print from any machines on the LAN, and when she went upstairs, the printer vanished. In mode #1, Wifi, it asks you if you want it to work with multiple accessible WAPs. Why would you not, for heavens sake. Maybe it should "Just do the right thing", as who wants a client machine to randomly stop working as you walk around when you have a larger multi-AP WLAN?

I tried wired ethernet first, couldn’t ping the machine, even though I had set a static IPv4 address/netmask/gateway and also had auto-IPv6 turned on (zeroconfig) just couldn’t print to it from an iPad because it said it couldn’t find the printer. The IPv4 address was fixed, static, and also locked down yet again because DHCPv4 was set to lock it according to the assignment of an IPv4 MAC address to the wired NIC. (I checked that, and it was wrong; I had mixed up wireful and wireless addresses, and I then sorted that out, but still now joy.) It has all the common internet printing and printing-related protocols turned on: including Bonjour, IPP etc etc.

Since I had got nowhere with wired connection, I next turned on Wifi. Amazingly, the devs, who should hang their heads in shame, had said that if I were to turn on Wifi, I have to turn off wired ethernet. Have they never heard of multi-homed goodness, or the source address selection algorithm (which comes for free within the IPv6 box of goodies), as in IPv6 for example, you always have to deal with multiple IP source addresses, multiple i/fs, multiple scopes, such as link-local and global. I suspect that they may know that they have too many bugs connected to selection of interfaces for one thing, but that’s only one part of it. You just keep your source address(es) in your conversation object? Is that over-simplistic, possibly. Anyway, you only have to write that source address+if code once, no? Grrr.

Anyway, despite all my "if those devs had ever worked for me "-type whining and grumbling, but after some unknown time, I saw that the thing was actually alive. I looked at the Firebrick’s ARP/NDP table and saw that it had the printer listed at the expected IPv4 address and MAC addr. What had fooled me before, was, I think, that it doesn’t respond to pings. I have some sympathy, but I think it’s a bad idea, and devs should make the config a three-way choice: i) never respond; ii) only respond to pings from the local-scoped subnets, so checking the intrinsically safe inside-netmask IPv4 and IPv6 src addresses; or iii) to respond to everything. Or as an addition to (iii), you could even also have an optional universal blacklist plus whitelists.

We have no idea why the printer suddenly started working. Janet thought that it had taken years to boot up. But if that were so, there ought to have been something visible on the touchscreen of the printer but I’m not sure that either of us were watching it all the time.

I suspect the printer might work properly with a MacOS or a Windows box, and I think there’s a remote control setup app for those o/s’s that removes the incredible tedium. I can’t see how much pain in any there would be for *nix users, and I’m not sure how to get the thing to work with eg CUPS and the usual *nix protocols unless the earlier noted failures were nothing to do with different o/s’s but just maybe  to do with the time after boot. Which is mad, I know.)

The printer can indeed speak even IPv6:445 and IPv4 and I can talk HTTP/1.1/TCP to it talk to it simply, so it just started working over WLAN at some point. Could it be possible that it’s an occasional PSU fault? But that seems to me to be ridiculously far-fetched.

Can anyone tell me anything I ought to, to be good wrt Bonjour best practices? I have an iPad tool to scan the contents of the Bonjour services’ and machines’ spaces but I’m not sure the tool is completely comprehensive in listing all the relevant devices in the Bonjour/mDNS world.

I have not yet tested the case where the client machine is definitely on the wrong SSID (but all WLANs have matching names and passwords) so traffic has to cross between WAPs via a switch. I don’t understand this issue enough (ESS ?) For clarity, all inter-WLAN traffic is transferred between WLANs by a 1Gbps wired bridge, and there’s no internal direct WLAN-to-WLAN traffic via radio.

How is someone supposed to even buy hardware that works properly on a wired LAN with an iPad or iPhone? "Guaranteed to work is what we want." The Apple marketing nonsense "Airprint" thing seems to be "licensed to fail" as it says nothing about ensuring access that is not across a single WLAN and nothing about AP-AP interconnection or access across the internet to another office down the hallway. We do not want the thing to mean guaranteed to work ONLY on the current, local WLAN, and I suggest that it may hide a dangerous ‘negative guarantee’. And if a printer works with a MacOS box then you probably want it to work with your alternative large-format iPad Pro large-screen machine too.

[Moderator edited to fix one broken pair of [i][/i] tags.]
« Last Edit: October 06, 2022, 10:47:57 PM by burakkucat »
Logged

Alex Atkin UK

  • Addicted Kitizen
  • *****
  • Posts: 5288
    • Thinkbroadband Quality Monitors
Re: My horrible Canon GX6050 printer with iOS
« Reply #1 on: October 07, 2022, 12:12:23 AM »

WiFi on printers seems to work on the assumption of SOHO, where multiple APs were pretty much not a thing until recent years.  Right or wrong I just don't think its expected for WiFi to be used in any serious environment.

I don't get the impression multi-homed networking is all that common either, Windows doesn't like it either, and I've never met a consumer level device designed to connect to WiFi and wired at the same time.  Its one of the many things I love about Linux, that all the potential is open, no stupid functionality locked down/omitted to sell their more expensive products.

Vendors are especially lazy with support for devices under a couple of grand, my previous HP AIO they never even updated Samba from 2.0 to 3.0, so I suddenly couldn't scan to network folder any more without the security issues of keeping SMB 2.0 enabled on my server.

I would certainly agree though, none of the broadcast related things like Bonjour should have any problem moving between switches/WAPs, I mean the whole point of a switch/bridge is it should forward broadcast traffic everywhere unless told otherwise.

Sadly as you mention, a lot of the focus with things like Airprint seems to about printing directly to the printer itself, as is WiFi Direct.  If it works over a WAP seems almost an afterthought.  Its not something I've thought about much tbh as I've never needed to print for a tablet/phone, I was probably more impressed than I should be when I discovered this was even a thing these days when I bought my last printer.

I assume clients from your WAPs can normally connect to wired devices without any issues?
Logged
Broadband: Zen Full Fibre 900 + Three 5G Routers: pfSense (Intel N100) + Huawei CPE Pro 2 H122-373 WiFi: Zyxel NWA210AX
Switches: Netgear MS510TXUP, Netgear MS510TXPP, Netgear GS110EMX My Broadband History & Ping Monitors

Weaver

  • Senior Kitizen
  • ******
  • Posts: 11459
  • Retd s/w dev; A&A; 4x7km ADSL2 lines; Firebrick
Re: My horrible Canon GX6050 printer with iOS
« Reply #2 on: October 07, 2022, 03:16:48 AM »

>  I assume clients from your WAPs can normally connect to wired devices without any issues?


Indeed they can Alex. My WAPs are just L2 bridges and seeing as my iPad (multihomed too, as that has 4G and WLAN interfaces) can talk to my Firebrick router and my Raspberry Pi over the wired LAN, then that’s a good test.
Logged

tubaman

  • Senior Kitizen
  • ******
  • Posts: 12669
Re: My horrible Canon GX6050 printer with iOS
« Reply #3 on: October 07, 2022, 08:13:12 AM »

I understand your pain Weaver, but as Alex Atkin UK said most consumer grade devices assume you have a single WAP to connect to and that everything is on the same network (ie SOHO type arrangement).  It certainly should work when hard-wired and I'm surprised that is causing issues as it's just another Ethernet device in that scenario.
All of these things are built down to a price so the firmware will do the minimum required to get it working and make the setup process tolerably easy for home users. I'd also suggest a 'pretty' interface ranks higher than functionality on some devices too.   
« Last Edit: October 07, 2022, 08:22:28 AM by tubaman »
Logged
BT FTTC 55/10 Huawei Cab - Zyxel VMG8924-B10A

Weaver

  • Senior Kitizen
  • ******
  • Posts: 11459
  • Retd s/w dev; A&A; 4x7km ADSL2 lines; Firebrick
Re: My horrible Canon GX6050 printer with iOS
« Reply #4 on: October 07, 2022, 03:14:49 PM »

What I don’t understand is how either Apple or Canon can save any development time by making such a hash of it. Other systems just get things right without sweating over it. Canon has even gone as far as to put in IPv6 support and every printing protocol under the sun. So I think the developers were possibly the kind of loose-thinking idiots that I have personally encountered. The only thing I can think of is that the we’re trying to mix up code used to communicate on an ad-hoc wireless network where there is not even any IP (or ethernet MAC?) setup available with the code for the normal ethernet case and included automatically with that code for L2-MAC over an infrastructure wifi network.

I’ll tell you a tale for your amusement. I once met a fool who explained proudly his file format for loading a file from an EPROM, which lacked a file system, so this entailed getting bytes direct from the hardware. This was assembler language code (for a CPU that was compatible with the Motorola 6801 and was made by Hitachi, the 6301). He proudly proclaimed that a sequence of three zero bytes was used as a terminator or end-of-file marker for the file content on the PROM. I couldn’t believe my ears. (This wasn’t a text file, in case you’re wondering, it was an arbitrary byte sequence.) I said, what happens when you accidentally get a sequence of three zeroes occurring in your content? Don’t you realise that then the end of the file will ‘drop off’? The reply was, oh, it’s not very likely. Nothing to worry about here. Leaving aside from the culpably careless attitude to quality, why in heaven’s name was there not simply a length word at the start of the data? The point here is that there’s no need to make things worse or make more trouble for yourself when there’s simply no justifiable reason to do so. In case you’re wondering about the Fool, I reported him to those in power and he was gone. This was a medical application program and the consequences could have been more than worrying.

Finally coming to the point. It does not save any time doing a bad job, and certainly doesn’t increase sales having a duff product.
Logged

burakkucat

  • Respected
  • Senior Kitizen
  • *
  • Posts: 38300
  • Over the Rainbow Bridge
    • The ELRepo Project
Re: My horrible Canon GX6050 printer with iOS
« Reply #5 on: October 07, 2022, 03:48:02 PM »

Finally coming to the point. It does not save any time doing a bad job, and certainly doesn’t increase sales having a duff product.

I most certainly agree with you.
Logged
:cat:  100% Linux and, previously, Unix. Co-founder of the ELRepo Project.

Please consider making a donation to support the running of this site.

Alex Atkin UK

  • Addicted Kitizen
  • *****
  • Posts: 5288
    • Thinkbroadband Quality Monitors
Re: My horrible Canon GX6050 printer with iOS
« Reply #6 on: October 07, 2022, 10:48:06 PM »

He proudly proclaimed that a sequence of three zero bytes was used as a terminator or end-of-file marker for the file content on the PROM. I couldn’t believe my ears. (This wasn’t a text file, in case you’re wondering, it was an arbitrary byte sequence.) I said, what happens when you accidentally get a sequence of three zeroes occurring in your content? Don’t you realise that then the end of the file will ‘drop off’? The reply was, oh, it’s not very likely. Nothing to worry about here. Leaving aside from the culpably careless attitude to quality, why in heaven’s name was there not simply a length word at the start of the data?

This is presumably a similar reason why the Internet years has had developers chasing their tails trying to remove buffer overrun security holes.

Only recently they have discovered the Playstation 5 still managed to have such an issue in the WebKit version they used on early retail firmware, which is likely to allow the console to be hacked.
Logged
Broadband: Zen Full Fibre 900 + Three 5G Routers: pfSense (Intel N100) + Huawei CPE Pro 2 H122-373 WiFi: Zyxel NWA210AX
Switches: Netgear MS510TXUP, Netgear MS510TXPP, Netgear GS110EMX My Broadband History & Ping Monitors

Weaver

  • Senior Kitizen
  • ******
  • Posts: 11459
  • Retd s/w dev; A&A; 4x7km ADSL2 lines; Firebrick
Re: My horrible Canon GX6050 printer with iOS
« Reply #7 on: October 08, 2022, 09:09:44 PM »

Another tale. I worked on a single project for several years as part of a new o/s development. Most code was pair-written, or reviewed. It went out and afaik zero bugs were reported in that initial release. In those days there was no internet so we couldn’t just rely on being able to update all of many thousands of machines remotely because the code had bugs in it. Mind you, no security worries in those days either, but we didn’t want any rogue app to crash the o/s either and make the o/s look bad. Buffer overruns were unknown as were accidental stack overflows. There was custom hardware memory range protection even on a mere 8086-clone, done by our own simple MMU. No virtual memory. There were two privilege levels and the graphics core process lived with the MMU range protection turned off so that it could access the screen frame buffer as well as its own data and stack areas. The graphics system architecture was very distantly inspired by the idea of X in *nix and VMS, but not X’s actual code, API or protocol. We didn’t study it, but had just heard about the idea of it. We just had the attitude that bugs weren’t acceptable.

Later when I was working on comms code, about 60% of the LOC was assert() statements, sanity checks and debug-build home-brew trace instrumentation. In case you’re worrying, that all disappeared with a flick of an #ifdef. That was encouraged because at that point I didn’t have a debugger. So not having any bugs was a great idea. I just read the trace log to see what was going on, and consulted a small portable HP protocol analyser (‘The Scope’).

I remember once flying from London City in Docklands to Amsterdam and I took the Scope with me as hand luggage. Changed days, I think I would probably be arrested now.
Logged
 

anything