Hacker News new | past | comments | ask | show | jobs | submit login

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.


But can we achieve 10gig/2.5gig or even gigabit with that?

Yes. With an NCM Belkin 2.5Gbe dongle, I get ~2300/2300 last time I checked.

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.


> (Plug'n'Play — remember that

I remember it as Plug-n-Pray


I only know that phrase thanks to the Computer Man song that I’ve seen on YouTube.

> 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.


I had a Lenovo Yoga a little bit ago and it took 3 years iirc for the kernel module for the wifi/bt chip to be merged.

Yeah, I hate it when vendors are slow to upstream their drivers too.

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.


or large high DPI monitor

For more than a decade I have used only 4k displays (in most cases with 10 bit color components) on all my desktops and laptops, all of which run Linux.

I have never encountered any problem whatsoever. Only in Windows I have encountered sometimes scaling problems.

The only programs with which I had sometimes problems in Linux with high-DPI monitors have been commercial applications written in Java, some of which were very expensive. However those problems were not Linux-specific, but Java-specific, because those Java programs behaved equally bad on Windows.

For some reason, there seems to exist a high percentage of Java programmers who are incompetent at writing GUIs and the programs written by them neither follow the platform DPI settings nor allow the user to select a suitable display font, making their programs unusable without a magnifying glass when using high-DPI monitors. Moreover, I have encountered several expensive Java applications that crash and die immediately when used with monitors configured for 10-bit color instead of 8-bit color, both on Linux and on Windows.

So in more than a decade of using only high-DPI displays, I have never had problems with native Linux GUI applications, I have seldom encountered problems with native Windows applications and I have very frequently encountered problems with Java applications, regardless of the operating system on which they were run.


> For some reason, there seems to exist a high percentage of Java programmers who are incompetent at writing GUIs

There's multiple GUI Java toolkits and they all equally suck in their own way. Eclipse for example uses SWT which translates to the native application toolkit, which "should" support HiDPI, but as you're limited to native widgets it's not very common.


What's the issue you have with high DPI monitors? I've used 3200x1800 14" screens way back (on Fujitsu U904 when that came out: I found a review from 2014 online), 4k 24" Dell when it still required two DP cables for 60Hz, and more recently 4k 14" screens on X1 Carbon: while you need to configure scaling (I prefer 125% or 150% for UI elements, and fonts further increased by a factor of 1.4x), most programs work well with that (including non-native UI peograms like Firefox, LibreOffice or even Emacs).

For a long while there was an issue with multiple monitors which you want to configure with different settings: you couldn't.

I believe that is also fixed today with Wayland but I mostly stick to a single monitor anyway.


Programs? I meant kernel and drivers. I don’t even need to open an app. My ASUS laptop with a 4090 steadily fails with an LG 40WP95XP with anything else than 100% DPI. My previous ASUS N552VW failed quite often on kernel level because it couldn’t handle the built in 960M, and it definitely couldn’t handle at all my older ultra wide monitor (I don’t remember anymore what was the model exactly).

Please describe "failure": I've had a Sony Vaio Z with switchable Intel/Nvidia graphics in 2009 before Optimus (though that did require some tinkering), but had GTX 960 and GTX 970 (actually still do) in a couple of computers, along with an integrated Intel and AMD GPUs in a bunch of laptops.

Note that kernel is totally unconcerned with DPI in general: it only cares about physical pixels and reports physical dimensions to apps — if scaling caused kernel level issues, it might be related to proprietary driver issue (they frequently lag in Nvidia's case).

I never used ultrawides myself, but if the monitor did not report proper "timings" and available resolutions, you might have needed some manual tweaks.


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.


Where do you buy such things? Every USB Ethernet card I've used in the last 10 years was either RNDIS or some version of USB-CDC. They've worked out of the box on both Linux, Windows and some even Android.

If you start the configuration of the Linux kernel and you go to "Device Drivers", then to "USB Network Adapters", you will notice that there are close to 50 such device drivers.

That should tell you that there are plenty of different USB Ethernet Adapters that you can find when buying one.

Among those that I have encountered more frequently have been several kinds of Realtek, and of ASIX, and of Aquantia.

Especially among the faster USB Ethernet adapters I doubt that there are many without custom drivers.

Some people may not notice this, if they are using only fat Linux kernels, with all the possible device drivers being enabled and compiled, but if you use a streamlined kernel, e.g. for instant booting, you may need to add a device driver whenever you buy such an Ethernet adapter.


> That should tell you that there are plenty of different USB Ethernet Adapters that you can find when buying one.

It doesn't tell you that at all. Linux contains tons of drivers for odd devices that you will never encounter in your lifetime.


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.



Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: