Hacker News new | ask | show | jobs
by StudentStuff 2542 days ago
Windows has less hardware support than Linux. Most single board computers can run mainline Linux, whereas just a handful support Windows IoT.

AMD, ARM (CPUs & Mali GPUs), Intel, VIA, Qualcomm (Adreno) all have support in kernel 5, whereas Microsoft is still stuck subsetting a small group of ARM GPUs and branding Windows 10's OpenGL ES support as DirectX 11. This is a repeat of the troubles Microsoft had with supporting Windows Phone, but now the userbase is significantly smaller despite a wider array of hardware to support.

1 comments

There are things that don't work well though, classic example are laptops that dynamically switch between discrete and integrated graphics. You'll probably run everything on the dedicated GPU which hurts battery life.

Still, my old desktop scanner that the manufacturer stopped publishing drives for during the Windows Vista era? Yeah Linux runs it like a boss. No looking up drivers or config parameters on the internet, it just works.

> classic example are laptops that dynamically switch between discrete and integrated graphics

YMMV, but as far as I know that's more or less a solved problem by default (for X anyway) with DRI3.

This particular complaint echoes folks (I was one) who booted Ubuntu desktop a decade ago and couldn't get wifi to work, and proceeded to complain about shoddy driver support (to present day, clearly), using only that single outdated* example as an argument. Of course this is compounded by a ~months to ~years delay in most desktops getting those improvements thanks to the glacial pace at which the mainstream desktop distros update their repos.

Was there a point when Optimus/Bumblebee/Prime was a shitshow? Yes. Is that still reality? No.

What this ignores is that Linux driver support is generally fantastic, works out of the box in a way that desktop architects at MS dream about and is infinitely more current in practice since you go to one place to update all your software, including driver software, something MS hasn't been able to get right in a decade of trying.

Regardless, mobile battery life's still worse on Linux. And as much as some things are super convenient compared to the Windows/Apple world, the truism a friend told me as I wrestled with Ubuntu ten years ago remains true today: Linux is for folks that enjoy configuring Linux.

* I have to use a combo of DKMS and an AUR package to get WiFi on my one year old IdeaPad, so outdated may be the wrong word there. Better to say that realtek and broadcom chips have gotten hit hard by Intel's move into consumer networking.

Worth pointing out that 'year of the Linux desktop' probably predates that.

> What this ignores is that Linux driver support is generally fantastic, works out of the box in a way that desktop architects at MS dream about and is infinitely more current in practice since you go to one place to update all your software, including driver software, something MS hasn't been able to get right in a decade of trying.

Generally, yes, it's pretty decent on first go and there's a nice default happy path.

Unfortunately in my own experience, that path isn't particularly wide, and there's a huge number of gaps.

Version compatibility is a major issue, imo. One driver or package works great on one kernel version is completely broken on the next.

A few hours ago I tried to install the official AMD drivers for Ubuntu. It's not until the install script has already gone and screwed up my system that I get told that they don't support 19.04.

I just don't have that issue on Windows as a rule. I'm not claiming Windows is perfect by any means, it's got it's own set of issues.

Version incompatibility is expected, because Linux kernel changes a lot. You need the correct driver for your kernel. The amdgpu driver is a part of Linux distribution, your best option is to install it from Ubuntu apt repository, not from manufacturer's website. Which now explicitly and clearly says the driver is for Ubuntu 18.04 only - did you not see that?
> Version incompatibility is expected, because Linux kernel changes a lot.

Expected by whom, though?

I could understand it if it was major kernel versions or something like that, but it seems that a whole bunch of things are really tightly linked.

> Which now explicitly and clearly says the driver is for Ubuntu 18.04 only - did you not see that?

I honestly didn't. I went back and checked - yep, it does say for 18.04[1].

I have to say though that I wouldn't have automatically assumed it was ONLY for 18.04 though without it being more explicit about that. If the official drivers are available within the repo from now on, then it'd be great for AMD to actually say that. (I realise this isn't Ubuntu's fault)

[1] https://www.amd.com/en/support/graphics/amd-radeon-hd/amd-ra...

Of course, not expected by a basic user. But if you follow Linux, it is quite well known that the Linux project intentionally does not promise stable internal api in the kernel, they "run a tight ship" where if a program needs to use kernel api, it has to be maintained in the Linux tree. Given this modus operandi of the Linux project, breakage of the old drivers with the new kernel version is expected.

Advice to Linux users: one would best get their the graphics driver and a matching Linux kernel from the same source, either the Linux project, or the OS distribution. Mixing versions downloaded from AMD website with random kernel is supported by nobody and is testing your luck. That is a Windows model and kind of works with Linux only with nvidia drivers for their hardware, although it brings a lot of headaches too.

I agree that the installer should have warned you about the incompatibility at the beginning of the install, not at the end. That sucks.

With graphics, it is usually best to run the newest drivers with Linux, that means the newest kernel possible. Except for the older cards, which are not supported by AMD anymore (which sucks), where one can only use old drivers with appropriate old kernel.

Version compatibility is not an issue for in-kernel drivers, only for the few remaining external ones. On Windows you have this issue much more often if you are trying to use an older device, in particular if it's one that came out before Vista, on Linux, once a driver is in the kernel it's continuously adjusted to driver API changes and will keep working. You can still run a current kernel on a 386 if you want to.

I'm running a quite current Dell on an essentially unpatched kernel (just includes Gentoo's default patches) with no additional modules involved and everything I tested up until now works, even fancy things like Dell's mini-dock.

> On Windows you have this issue much more often if you are trying to use an older device, in particular if it's one that came out before Vista,

I think that's a bit of a difference though. Vista came out nearly ~13 years ago, and we're talking things breaking a year or less later.

Heck, for more obscure drivers[1], it seems necessary to recompile for every kernel patch. Perhaps that's the fault of that driver's developer for not following the correct way to build kernel drivers, or there's something unique about this particular device - I don't know.

[1] an example: https://github.com/milesp20/intel_nuc_led

> > On Windows you have this issue much more often if you are trying to use an older device, in particular if it's one that came out before Vista,

> I think that's a bit of a difference though. Vista came out nearly ~13 years ago, and we're talking things breaking a year or less later.

I'm not. I'm talking about the fact that drivers for devices older than me that have been merged into the kernel keep on working today while on Windows for some subsystems (like graphics or sound) you can't expect things to work after "just" 15 years. I admit that this is a long time, it's still a huge difference.

And yes, on Linux you are expected to recompile drivers for every new kernel version, that's intentional (https://github.com/torvalds/linux/blob/master/Documentation/...). Since the driver API is reasonably stable, the code doesn't need to be adjusted for every version, and if the driver has landed in the kernel, this is done while changing the API.

Linux driver support is fantastic because it's not made by manufacturers.
This is not correct.

Many manufacturers contribute drivers to the kernel.

I do not enjoy configuring Linux, but I hate fixing Windows issues. I just reboot, deinstall, reinstall and at the end I have not learned anything and I do not even know if the problem will occur again. When I fix a problem in Linux, it is a journey that makes me discover unknown territories. At the end, I have improved my experience and knowledge.

For linux, I am in control. For windows I am a puppet of Microsoft will.

The last time I was shopping for a laptop (a year ago), Arch's wiki said it was all broken for the models that interested me. Here's an example, if you have better information maybe update the wiki.

https://wiki.archlinux.org/index.php/Dell_XPS_15_9570#Graphi...

I'm not updating the wiki for a device I don't own, or plan on owning.

Especially when the relevant part of the wiki is correct.[1]

[1]https://wiki.archlinux.org/index.php/PRIME#PRIME_GPU_offload...

I spent a lot of time trying to get dynamic switching working and after countless hours I gave up.

Optimus is definitely not a "solved problem", unless you know some method I didn't find in my dozens of hours of googling how to get it to work on a system76 laptop (Linux preinstalled) and a 2012 MacBook.

The "solved problem" is using the kernel implementation of muxless hybrid graphics (PRIME), not Nvidia's proprietary one (Optimus).
Yeah, the "happy path" here is applicable if you don't attempt to install janky/poorly maintained proprietary out of tree drivers. The reason these drivers are out of tree is usually due to either serious hardware flaws, incompetent/inept vendors, or a combination of both. AMD has (in large part) fixed this by reusing the kernel shim from AMDGPU (open source & mainlined in kernel) for their proprietary driver (AMDGPU-Pro).

Nvidia meanwhile has stated they will not support Wayland, and has sandbagged the integration of their Linux Kernel patches for their single board computers (like the ones that are used in Tesla's cars). They don't give a fuck if their clients are stuck on broken, insecure BSPs, and frankly they operate as a malicious vendor: https://www.theregister.co.uk/2018/01/03/nvidia_server_gpus/

Yes, Nvidia provides terrible support for Linux, but it doesn't matter whose fault it is. That is the basis of many, many complaints about drivers for Linux. Nvidia ships in a great many laptops. If Nvidia sucks on linux, linux has a problem with drivers, full stop.
I'm not sure how the bubble you live in came to be but for ordinary desktop/laptop hardware that is as false as can be.

And there is a very simple reason for that. All desktop PCs and laptops are sold with windows, if no support exist the hardware as a whole will not exist.

Meanwhile in linux land I still can't use my three monitors because displayport MST doesn't work with the open source AMD driver. Support has existed for quite a while, but it seems none of the five people on the internet that have actually tried it has gotten it to work. Just one of the many driver issues I currently have on a couple of machines with linux.

> YMMV, but as far as I know that's more or less a solved problem by default (for X anyway) with DRI3.

Just no.

It is not false. Complaining about obscure gpu driver feature not working in Linux kind of proves the parent's point. Most usual hardware works out of the box on Linux now, except for the nvidia cards, but even that can be made to work with their binary driver. If the AMD driver does not support some obscure feature, that is on AMD. They work on it, complain there, but naturally some things have higher priority than driving multiple monitors from a single port.
I'm not blaming linux for manufacturer not supporting linux well enough. But I'm stating drivers are an immense issue for linux - regardless of who is to blame.

Maybe I shouldn't have started with an "obscure" example. Maybe that the driver crashes if displays are awakened from sleep? Mind you - only waking the screens from sleep, not the entire system (that doesn't work either, but I don't know which driver that is to blame for that yet).

Or that ubuntu LTS are just incapable of turning off most machines I've installed it on? (machines that did exist for a while when the LTS version came out).

Yeah, those other issues are real and they suck, especially when one uses the most up-to-date software and they still happen. Point taken.
For what it's worth it is my experience that displayport MST has never worked reliably on any OS or hardware whatsoever. I gave up on it and am thankful I can now just buy a thunderbolt dock with multiple video outputs.
MST on a NUC was pretty seamless for me when I used it.