Comment by bentcorner

2 months ago

I actually really appreciate USB devices that masquerade as a storage device to provide their own drivers. I suppose in this day and age the "right" thing to do is to upload a bunch of stuff to microsoft servers so that it downloads whatever is needed upon getting plugged in, but I've observed enough stuff needing manually installed drivers to know that this isn't as apparently easy as it may appear to be. (For example, I very often need to download vendor-specific ADB drivers)

Anyways, I think it's clever for peripherals to help you bootstrap, and having the drivers baked into the device makes things a little easier instead of trying to find a canonical download source.

>I actually really appreciate USB devices that masquerade as a storage device to provide their own drivers.

I appreciate the ones that don't need their own drivers in the first places. Sure something needs special drivers but things like usb sticks and mice should just work using the default ones and let you get the updates from the internet if you want them.

  • usb sticks and mice

    And USB Ethernet, USB CDC-ECM/NCM has existed for a while and have drivers in common OSes. And yet we are plagued by USB Ethernet with custom drivers (some of which are not available for macOS on Apple Silicon).

    Of course, PCIe over Thunderbolt is even better.

I appreciate them working out-of-the-box on Linux even more. And they mostly do, with Linux being the best PnP (Plug'n'Play — remember that with Windows 95? :) OS today.

But multiple modes of operation really made it harder for to configure devices like those 4G/LTE USB dongles: they will either present as USB storage, or one type of serial device or a CDC-ACM modem device (or something of the sort), requiring a combination of the tools + vendor-specific AT commands to switch it into the right mode. Ugh, just get me back those simple devices that do the right thing OOB.

  • > with Linux being the best PnP

    as long as it isn't wireless or bluetooth

    • Linux has out of the box support for the SBC-XQ hack, which is pretty much the highest quality, most widely supported (even by Apple hardware) low-latency-ish way to drive BT audio. Works exceptionally well. And switching profiles works better than under Windows.

      fwiw the last time I had wireless issues was with an exceedingly cheap 2013 laptop built from tablet hardware. That required an out of tree driver for a few years.

      2 replies →

    • Linux Bluetooth got upgraded to best in class when Microsoft replaced the windows 7 Bluetooth stack with the present heap of flaming garbage.

      Bluetooth works better under modern Linux than modern windows. I can go on for literal hours about this. Windows Bluetooth stack is the most broken and disgraceful pile of code I've ever had to work with.

In this specific case it makes a bit more sense, as when you need to install a RJ45 dongle is likely when you don't have a network connection.

  • While that's true, you'd also expect USB network devices to be standardized and have builtin drivers under all the main operating systems.

    • That would be desirable but it does not happen in practice.

      All the USB network devices that I have ever used required specific drivers. Sometimes the drivers happened to be already bundled with the Linux kernel or with Windows, but frequently they were not.

      3 replies →

So, rather like NuBus? IIRC, cards for early Macintoshes often had at least a basic driver in ROM, written in either Forth or 680x0 assembly code.