logoalt Hacker News

AceJohnny2today at 5:59 AM6 repliesview on HN

The author did not test the DFU flow, so I'm not sure why they're blaming the DFU port documentation.

Certainly there is a bug in the external disk upgrade sequence if switching the disk to a different (also non-DFU? They didn't specify) port solved their problem. But that's not necessarily related to which port is the DFU port.

To be clear, DFU (Device Firmware Upgrade) is a standard USB protocol (from 2004!), for a device to receive upgrades from a host. It is a specific port on the mac because that's all the boot-rom can support. This system does not come into play when booting from or upgrading an external disk, as the author was struggling with, because the external disk cannot be a USB Host to drive the DFU.

And I'm guessing that the reason macOS doesn't give more details is because macOS is likely not involved in the step that fails (maybe iBoot is?), and they didn't develop a way for the failing step to communicate failure data back to macOS. Yet another UX failure.


Replies

vbezhenartoday at 2:47 PM

I'm not sure that it uses standard DFU protocol. When I had to write firmware from Linux, I had to use some software specifically for Mac (idevicerestore) and I had the impression that it was super proprietary stuff.

numpad0today at 6:45 AM

  Situation:
  - The author is running macOS ARM64  
  - off of a USB disk  
      - plugged into DFU capable USB-C port    
      - that shouldn't be the DFU one according to docs
  - attempting to run macOS updater  
  - (supposedly)there's nothing else connected to it  

  Outcomes:  
  - updates were failing and rolling back with cryptic errors  
  - errors persist despite all efforts  
  - -> later magically solved after changing the port  
  - -> the problematic port later revealed to be the DFU port  
      - contradictory to Apple documentation
Or at least that's how it reads to me. As for reasons, I don't know why anything that can boot from USB can't from DFU-enabled USB port, but maybe it's configured as a special non-USB debug connector while bootloader is executing.
show 2 replies
watttoday at 10:01 AM

The author just wants to apply system update, and it should "just work". The DFU part is just a distraction, what happened to "just works", as they point out in the article. We should not even _know_ anything about DFU unless we actually _are_ updating firmware.

j16sdiztoday at 7:22 AM

The author was not saying the document labeled wrong port as DFU port.

He is saying the documented _behaviour_ of DFU port is wrong (or, at least, in complete.)

show 1 reply
lapcattoday at 10:40 AM

> The author did not test the DFU flow

I'd rather not. I'm not even sure that I have all the prerequisites on hand.

> I'm not sure why they're blaming the DFU port documentation.

1) The documentation says that macOS cannot be updated on the DFU port.

2) Switching ports allowed my macOS update to succeed after repeated failures on one port.

3) The 14-inch MacBook Pro with M4 chip is documented as different from all other models, but strangely, not the 16-inch MacBook Pro with M4 chip.

You don't present any alternative theory for the behavior, just assert that I'm wrong.

show 1 reply