A Linux Evening
fabiensanglard.net
fabiensanglard.net
Mika Westerberg is constantly fine-tuning the allocation of PCI resources in the Linux kernel to avoid such scenarios. Some recent patches:
https://lore.kernel.org/linux-pci/20220905080232.36087-1-mik...
https://lore.kernel.org/linux-pci/20221130112221.66612-1-mik...
On macOS, it's possible to pause the PCI bus, reallocate resources and unpause the bus:
https://developer.apple.com/library/archive/documentation/Ha... (search for "Supporting PCIe Pause")
We don't have that on Linux unfortunately, so we depend on getting the initial resource allocation right.
Sergei Miroshnichenko has worked on such a reallocation feature for Linux but it hasn't been accepted into mainline yet and he hasn't posted a new version of his patches for almost two years, so the effort seems stalled:
https://lore.kernel.org/linux-pci/20201218174011.340514-1-s....
The patch for pausing and unpausing seems quite reasonable, except that it does require driver support (unsurprising - you’re literally reallocating the resources used by the driver!). I suppose if you had at least a few movable devices then you should be ok in the event of a hotplug event, so you’d have to hope that enough drivers bother to support the feature.
I wonder what is necessary to get people to care about the patch enough to fix it up and mainline it? I suppose the problem it fixes is still niche enough that not so many people are clamoring for the fix.
Open source projects rely on volunteers mostly so it isn’t like there’s some outside force to appeal to. If nobody volunteers a solution, then it isn’t important enough to solve. The point is that, if it were important enough to fix, anybody with the requisite skills could do so.
With open source and mainlined drivers, it's very difficult to change all the drivers and ensure they work.
Without open source and mainlined drivers, it becomes impossible.
Mainline drivers can move gradually. If they want to be nice for out-of-tree drivers then they can describe a timeline for deprecating and removing the support for non-reallocating drivers.
This would require the kernel being able to either update its own command line somehow, or having some permanent storage somewhere it could store it.
Or this could all be done by systemd - detect that message, increase the resource, next reboot will fix it.
That would need help from userland, which is not involved in the early boot process.
You could I guess change kernel init parameters and save that in your boot loader, but that is very hackish.
Actually I forgot to mention there's another solution: A PCIe feature called Flattening Portal Bridge (PCIe Base Spec r6.0 section 6.26). That was introduced with PCIe 5.0. It's more likely that FPB support is added in mainline than the pause/unpause feature. It's supported by recent Thunderbolt chips and it's an official feature of the PCIe standard, so companies will prefer dedicating resources to it rather than some non-standard approach.
I guess this is sorry for those niche hardware use cases.
Isn't FPB into PCIe 4.0? (I am not a SIG member, cannot read the specs).
This is probably true for this specific case here, but my experience with fixing stuff in Linux is actually the opposite. I learnt a lot doing so, and learnt stuff that turned out to be later useful in very unexpected spots.
Back when I was a teen and using Windows, I've spent countless hours fiddling in stuff in regedit and other atrocities and it feels like I never learnt anything useful in the long run.
*sigh*
"Have you tried turning it off and on again?"
I had a similar problem as the article with a standard USB 3 enclosure. Two PCs, identical OS (oS Tumbleweed), same kernel version even. modprobe -r then modprobe usbstorage and it worked. An obscure error in the logs pointed to the uas module which for some reason failed to reload, enabling the enclosure to work.
Oddly, the other PC on which it worked was loading uas.
I'm kinda disappointed to myself as I found out I didn't like too much trouble so I'll probably never be a good/great programmer.
A lot of what seem low-level in Linux are implementation-specific things. For example, how you set up wifi or how you manage your firewall. Knowledge of these things gives you less long-lived and less transferable skills than knowledge of protocols like TCP/IP which is shared by everything that is plugged to the internet. It doesn't make you a better programmer, unless these daemons and tools are what you want to write software for.
Also, your options are not only Arch Linux and Windows/Mac. There are more desktop-ready distributions, too, like Ubuntu or Fedora. Linux lets you still inspect the plumbing if you install one of those.
To be honest, I've dabbed in a lot of low level stuffs but never went deep enough to make any impact, career-wise at least. For example I completed a full course on MCU programming, completed the first half of nand2tetris, read the first few hundreds of pages of "Beginner Reverse Engineering" (basically the part that teaches one to recognize C from decompiled assembly code), and many others. My most recent low level adventure was the book "Practical Binary Analysis" which I planned to use the whole holiday to push maybe a few chapters.
But I never drilled deep enough into any of the topics. I believe I have the brain to drill at least a few more chapters deeper for any of them, but I don't have the mental power to do it. I secretly want someone to put me into some sort of prison and keep me from getting out until I completed all previous projects and learnings. But of course I need to figure out a way to deal with the problem.
Anyway, really appreciate your answer, and probably I'll still install Archlinux, play with it a few days and then lose interest -- just another failed project to spend time.
Arch teaches you about the most boring parts of how linux works: the specific idiosyncrasies and configuration minutiae of a ton of libraries and programs (GNU coreutils, systemd, udev, mesa, glib, X11, Xlib, xdg, dbus, etc.)
Arch will usually not teach you the really interesting "low level" things about Linux: How the kernel works, how threads are created, etc.
I know people who have written kernel-level Linux drivers who have difficulty upgrading macOS. They're separate skillsets.
I think I'm split between career growth and hobby. My career is much closer to a sys admin/devops than a low level programmer, but my hobby probably is closer to the later. Of course it could be just my fancy about low level programming that fascinates me as after all I have never done any low level programming except some entry level MCU programming.
I started out my career on the sysadmin side of things before becoming a developer and that doesn't surprise me at all. Most devs I work with have little to no understanding of things like file permissions, how networking works beyond making HTTP calls with $SomeRequestLibrary in their programming language of choice, or how services/daemons work in Windows/Linux.
I use Linux every day and I never touch the engine.
I also set up Linux for computer-illiterate old ladies. They love it.
They don't like free, stable and fast? They don't like how it isn't going after your wallet every 5 minutes?
It's gotta be propaganda at work. It's the only explanation.
Maybe you just use it for web browsing. But for everyone else, there's Windows. Which is still crap but at least you can set an environment variable without doing a research project into the differences between .bash_profile, .bashrc, .profile, and /etc/environment. None of which have a GUI. And the best part is that none of them can ever be renamed because muh scripts would break and the entire OS would come crashing down.
Ubuntu on hardware a few years old will chug along without issues more often than not especially if you are just using it as a glorified thin client for Chrome which is an increasingly large base of users.
There are of course some gotchas with things like integrated graphics and dedicated graphics in laptops or some device drivers for peripherals like printers (it is still linux after all, year of the linux desktop any year now aha)
They all roll Debian stable with unattended_upgrades and it's an absolute joy of stability.
Not that I would use Debian stable for my personal machines: I want the latest shiniest and I want to be close to upstream to report bugs when they're fresh and easy to fix by the maintainer (yes, "I use arch btw" indeed), but for "computer-illiterate" people, stability trumps everything else.
The "computer illiterate" isn't amused by constant breaking behavior / visual changes. They want the thing to work reliably and unsurprisingly. Debian delivers this and never breaks. Once every major dist-upgrade I review changes with them, and they're good to go until next time.
- That being said, a well-configured/simplified Plasma these would certainly be all well (or not, see my final paragraph below about locking things down; GNOME is less infinitely configurable than KDE/Plasma, so there's less room for user fuckup). Also I'm certainly biased towards GNOME because that's what I choose to use for my machines. Also also, I go where there are the most eyeballs (again, for stability & maximal guarantee that bugs are seen), and for now it's GNOME.
- Exception: one grandma has a particularly old laptop (x86-32 old :D) with meager RAM, so for her setup I went with MATE. I hesitated between LxQt and MATE, tried both, and MATE (at the time) seemed a tad more polished.
Finally, since I have your interest and GUIs are a subject I love ranting about, one more thing you need to do when setting up an old ladies machine, is to LOCK DOWN ALL THE THINGS YOU CAN:
- LibreOffice toolbars that can be accidentally dragged, then maybe dragged offscreen or closed? LOCK THEM.
- Thunderbird folder column titles that will change email ordering if accidentally clicked? HIDE THEM with userChrome.css until https://bugzilla.mozilla.org/show_bug.cgi?id=237051 is fixed.
- Etc etc, when I'm done provisioning such a machine, I spend an hour playing with it and wondering "How could someone haphazardly clicking and dragging everywhere break/mismanage this?" , and I disable/lock/hide everything I can. There is a million configurable / breakable things that we power users don't imagine being confusing to a user, because we know the features and we're precise at clicking on stuff. But to non-computerists, these things are veeeeery confusing! They'll email you with a gibberish issue description when invoked accidentally, and when it happens too often they get scared. There's potential to build a whole distribution aimed at such users, with everything properly locked down.
Might be more intuitive than locking them?
I couldn't check it as I run Tb beta (which the extension doesn't support last time I check), but I might give it a try next time I maintain one of these machines ..... or not:
0. They never ever need to click it to re-order. Why bother with an unneeded feature?
1. Extensions break! UserChrome.css too, but maybe less so :) , and a CSS rule is simpler/smaller in added complexity & potential for bugs than an extension.
2. Also, hiding the columns means one less bit of chrome to read/parse. Hiding stuff avoids misclicks, but also increases GUI legibility for people with bad eyesight.
For the old ladies, no: Fedora has a short release cycle, and no LTS; not great for maximal stability. "a version of Fedora is usually supported for at least 13 months" ( https://endoflife.date/fedora ), while Debian is security-supported at least 5 years! ( https://endoflife.date/debian )
Debian's whole project architecture & release cycle is built towards being stable bedrock, I see virtually no reason to use anything else if you aim at max. stability and don't care about running old (but still secure!) software.
I think you're trying to say that they don't have problems with the browser, and maybe an email client. If they're computer-illiterate, they don't know enough about an operating system to have an opinion at all, other than being happy about it turning on and off when they want.
Don't mistake that for loving Linux, because it is not really praise of Linux, it is praise for a computer that works well enough to run a web browser, which is an extremely low bar.
Meanwhile the latest supported versions of MacOS or Windows will not work on such a machine. Those ecosystems demand you continually buy new hardware.
I think is -is- Linux they love here.
I started out using DOS in the mid 90's to play games, used Windows 3.1, skipped over to 98SE then XP and 7.
I have used Macs before, not enough to make an impression.
I tried Linux back when I was in collage during the XP days but it always seemed to need more tweaking than my XP install and the lack of gaming kept me on Windows.
Currently I am running Linux Mint. I install the OS and go. No need to tweak or mess with command line.
I am not that interested in which OS I am running aside from the fact that I dislike telemetry and forced updates. I want the OS to get our of the way so that I can do whatever I am trying to do, Linux seems to be there now. It feels like Windows has regressed, with setting pages buried in 5 different places.
MacOS is like driving a car by yelling at the driver from the kids seat in the back.
In the end, learning how an engine works to maintain one myself is not so bad.
There's also a timing issue. Often when something goes wrong it's at a random time when I'm probably intending to do something else. I don't want to put off that other thing even more by taking a "slower" route to fixing the issue.
You can of course still learn a lot along the way, as you say. So, it's not all lost, but it does seem sub-optimal.
On the other hand, if the solution to a problem on Linux is to change some dotfile controlling some daemon, reliably scripting it can be difficult to impossible. Did the distro put the config file somewhere weird? Is awk good enough here? What if the key I'm looking to update is found in a comment, and what is the commenting structure for this file anyway? What if the daemon rewrites its config file on exit [0]? Or has a config file with an extremely complex format [1]? Or I need to poke several /sys files in a particular order [2]?
Both systems are hard to reason about, especially if you don't know them. But Linux isn't easy to approach for the first time, and there are advantages to the way Windows does things.
[0]: https://askubuntu.com/questions/251797/transmission-daemon-k... [1]: https://www.sudo.ws/docs/man/1.8.15/sudoers.man/#SUDOERS_FIL... [2]: https://www.youtube.com/watch?v=9-IWMbJXoLM
- for windows, the problem is solved by:
1) common sense troubleshooting
2) web search for the problem
3) ask the developer
- for linux, you also get: 4) break out the source
5) push an updateI recently had an OpenGL related issue on Linux, I googled the error message and got 1 search result. Now I can speculate, is my program wrong? Or is it the Nvidia driver, perhaps Xorg? Did the Ubuntu devs configure something wrong etc.
Why won't Nsight or Renderman work on my machine?
Windows has by contrast a significantly larger userbase, an architecture that's set in stone, meaning I can find relevant answers from a decade ago, and there's thankfully no Windows 'distributions' so the issue I face is likely to appear on any person's machine.
I always felt I could dive deeper with linux problems _if I wanted to_, and that weirdly gives me some confidence that I can fix it.
Same, in fact it's how I fell ass-backwards into my career path.
> The author, dkozel, never came back to answer. I imagine they typed the solution on a 40% keyboard featuring unmarked keys and then rolled into the sunset on a Segway for which they had compiled the kernel themselves. Completely oblivious of their awesomeness and of how many people would later find solace in their prose.
Here's how I would have started to find the answer:
1. Open https://lxr.linux.no/, search for
"No bus number available for hot-added bridge"
2. Open the three files it finds.
3. ^F that same string in each file, then notice
that
https://lxr.linux.no/#linux+v6.0.9/drivers/pci/probe.c#L3336
is it.
4. Chase down `dev->bus->busn_ref->end`.
Er, well, this step is hard because `end` is
so generic.
5. git clone linux and use cscope to index it.
6. Search for assignments to `end`, filtering with
egrep for bus and pci.
7. Weed through it all until I find
https://lxr.linux.no/#linux+v6.0.9/drivers/pci/probe.c#L2964
8. Search for assignments to `pci_hotplug_bus_size`, find
https://lxr.linux.no/#linux+v6.0.9/drivers/pci/pci.c#L6882
9. Search for `pci_hotplug_bus_size` and also find
https://lxr.linux.no/#linux+v6.0.9/Documentation/admin-guide/kernel-parameters.txt#L4267
which says:
hpbussize=nn The minimum amount of additional bus numbers
reserved for buses below a hotplug bridge.
Default is 1.
But @dkozel probably just knew the answer.I do find it hard to believe that the default for this setting is 1 though!
I am curious if the kernel could just bump this number up, especially if Thunderbolt is getting more popular.
Your mention of integration does bring back some memories of a bank I worked at where we had source code to proprietary operating systems, and it was sooo useful to a) debug things, b) find undocumented things and ways to work around bugs and limiations, and I was pretty much the only one using that source code. At the time I didn't really understand that (b) is risky, but I managed not to get burned. That was how I started learning how to navigate huge codebases.
hpbussize=nn The minimum amount of additional bus numbers
reserved for buses below a hotplug bridge.
Default is 1.
The way to get from the error "No bus number available for hot-added bridge" at https://github.com/torvalds/linux/blob/master/drivers/pci/pr... to this specific kernel param is still a bit involved.I had about weekly kernel panics or machine freezes (would not wake from sleep) while unplugging my Thunderbolt dock (with displays and lots of devices) all throughout the USB-C Intel Mac era, but they all went away when I got an M1 Pro machine, so I wonder how much is down to OS design vs drivers vs hardware (vs how specific hardware influences driver design).
https://en.wikipedia.org/wiki/BridgeOS says it runs the Touch Bar.
- Most OSes do a full dhcp look up when they connect to a network even if they have connected to the network before. Wifi saved networks is a good example of a network where you have some historical information on the connection
- MacOs however keeps track of the IP addresses that it saw for each of the networks it has connected to recently. If it sees a network it's been on before, it first tries to just use the old IP address. This is under the assumption that the lease is still tied to the user's laptop.
- In the best case, the laptop gets a working IP very quickly and in the worst case, you just do dhcp again
- From a user's perspective, if they walk into a meeting with a bunch of folks with non Mac laptops, it will seem like the Mac connects much faster than everyone else's machine
When I read this story, the author pointed out that many people say "Macs just feel like they work better!" and used this as an example. Granted, this partly comes from owning the ENTIRE stack from hardware to drivers to OS etc which is something only Mac can do.
I assume MacOS actually only re-uses IPs if it sees the lease hasn't already expired but it might be dumber than that.
One of the common issues with this is that home routers don't usually persist leases across power cycles.
azalp
description: Desktop Computer
product: B660M AORUS PRO AX DDR4 (Default string)
vendor: Gigabyte Technology Co., Ltd.
version: -CF
serial: Default string
width: 64 bits
capabilities: smbios-3.4.0 dmi-3.4.0 smp vsyscall32
configuration: boot=normal chassis=desktop family=B660 MB sku=Default string uuid=dotdotdot
People posting those CPU and SSD screens shots rather than, say, some linked data that contributes to make a graph to forums has such a deleterious effect on people's ability to reason. I suppose eventually we'll end up screen scraping the screen shots. # dmidecode 3.4
Getting SMBIOS data from sysfs.
SMBIOS 2.7 present.
Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
Manufacturer: Dell Inc.
Product Name: 02##K5
Version: A01
Serial Number: /BGK####/CN#######/
Asset Tag: Not Specified
Features:
Board is a hosting board
Board is replaceable
Location In Chassis: Not Specified
Chassis Handle: 0x0003
Type: Motherboard
Contained Object Handles: 0Why? I mean do you hate the future? Did a month from the present beat you up as a child? Perhaps when you were 10 years old 2 years from now kicked sand in your face and now you're going to punish it. I don't know. But they need to get over it for everyone's sake.
Eventually I rigged up a tool to automatically pull screenshots from tickets via the ticket system's API, then raise contrast on them with imagemagick and run them through OCR. Some red error text on a black background screencapped through multiple layers of compression might as well not exist, even if it's perfectly readable to the end user, so I'd even done comparisons (that I've since unfortunately lost) of how different command-line OCR tools fared with low-contrast color text, because Tesseract wasn't always the most functional option.
This was driven home recently by my experience switching to NixOS. NixOS is brilliant in many ways, but boy are there papercuts everywhere. It's all soluble but it is annoying. 25 years ago this sort of fiddling was fun, but now it's just tedious.
As a Mac-user would do?
I guess a Windows-User would just rate [1/5] stars and don't even research.
We should keep in mind:
Linux users care a lot and do research. Most other will just say "nope" and leave it a issue for the manufacturer or keep turning it off and on again. What I don't know is if the initial situation is to blame upon Linux, Intel (Thunderbolt), device manufacturer or all of them. We have valuable post a the top explaining PCIe-Pause on MacOS and that Linux tries to apply a similar mitigation?
Apple:
Because Thunderbolt allows the addition and removal of arbitrary numbers of peripherals connected in arbitrary topologies, the task of dividing up the PCI tree’s address space can be challenging. Sometimes, particularly when large numbers of devices are attached, it is possible to exhaust portions of that address space. When this happens, a new device cannot be enabled without moving existing devices.
To solve this problem, OS X v10.9 supports PCIe Pause—a special power management state in which all driver and device operations are temporarily suspended. Whenever address space exhaustion occurs, OS X may ask drivers to pause operations. After the drivers are paused, OS X changes the address space layout of the paused devices to make room for new devices, and then tells the drivers to resume normal operation
Oh. If your driver does not explicitly declare support for pausing, your driver will never receive pause requests. As a result, devices may fail to appear when the user plugs in additional devices, particularly on hardware with multiple Thunderbolt ports. For this reason, you are strongly encouraged to support this functionality as soon as possible.
Ouch. On Linux this shouldn't be an big issue because the kernel provides them.From the mentioned Linux patches:
Currently PCI hotplug works on top of resources which are usually reserved:
by BIOS, bootloader, firmware, or by the kernel (pci=hpmemsize=XM). These resources are gaps in the address space where BARs of new devices may fit, and extra bus number per port, so bridges can be hot-added. This series aim the BARs problem: it shows the kernel how to redistribute them on the run, so the hotplug becomes predictable and cross-platform.
Fits into what Apple describes. The patch for Linux would be helpful. And I've the feeling that the approach Intel has chosen to add TB upon PCIE isn't bulletproof?I suspect that end-user smoothness based on 'the user is not required to know everything' that makes the likes of Apple implement bus pausing for dynamic topology assignment and BAR adjustment is not available in Linux land because there simply isn't a big enough overlap of people to make this a hot topic.
You need:
1. A person who understands how this works
2. A person who understands what they want to use it for
3. A person who understands what person 1 has to do so person 2 can use it
Usually you get 1 or 2, sometimes both, but almost never 3 except at places like Canonical, RedHat, SuSE etc. because it's too much of an analyst role and not enough of a "I need it for myself and I can build it" role.Similar but different problems exist in other software areas like when person "3" is split in "business", "end-user" and "licensing" with competing interests. That's where you get the NT kernel which gets split into arbitrary partitions where based on an integer configuration it may or may not want to address your RAM.
Same goes for the old "aperture size" for GPU memory transfers, and later on the BAR resize support. It was never 'hard' to implement, it's just that IBV's didn't bother and mainboard manufacturers didn't care. Yet it was always available and even Tianocore EDK2, Apple's own EFI and (for some reason) BIOS and UEFI from Quanta and Supermicro all did support it just fine. Same goes for KMS and non-blink GPU switchovers where AMD, NVDA and Intel used to constantly sell it as 'impossible' and we all just accepted that. Yet KMS, the MobileFramebuffer (and the old AppleTV Gen 1) and even VesaFB showed that it's totally possible and it's just everyone using the same joke sample implementation from the vendor that's causing it.
Another example would be VESA where DisplayPort topology changes on the control channel side do similar things to PCIe bus pausing. The display controllers and bus drivers should pause on hot plug to let the host decide on the new topology, but implementing that costs time and effort, and you need to have some in-depth knowledge on both the hardware and software side, so lots of companies don't bother. Result: some host+display combinations only work after restarting either end to force it to re-discover the current topology. This even happens in 1:1 topology scenarios where a simple GPU driver update might restart the host bus and the display ignores it and simply stops receiving data until the watchdog timer restarts the embedded processor causing the screen to blink. I'd just dumb low-quality choices and corner-cutting that causes this.
Browsers maybe have been the toughest to sort out. I use links for my usual reading, tor-browser for random surfing, seamonkey for sites I log into, and chrome for the couple sites I need to use that don't work in seamonkey. All minimally configured, and all proxied through my vps and use a hosts file blocklist, except for tor. I had an awesome tweaked version of firefox, but upgrades were more hassle than I wanted to deal with. I use the fvwm window manager included with the base openbsd installation, which can be customized using a single text file. I have productivity software like audacity, claws-mail, gnumeric, krita, and linphone. I've also fiddled with things like shotcut, matrix (over pidgen!), some astrophtography software, and godot. I'm not worried about the latest and greatest games - been there, done that.
It's worked out well. The system gets out of my way and lets me focus on what I'm doing. I've shell scripted my os and app/user/website configurations (except claws-mail, those configs are backed up), so I know everything I setup is reproducible, and all my tweaks are documented. I still get to fiddle, I just prioritize stability over time, as opposed to worry about the bleeding edge.
Prior to this I've used chrome os, debian, freebsd, redhat, and slack over the years. Gave up on windows a long time ago. Chromebooks are low-maintenance, if you don't mind google in your business. Never owned a mac, but don't think a profit-driven os would work for me anymore. My phone is a refurbed pixel 3a running graphene os. ftw! ;-)
For the vast majority of the population the response to errors is identical on both platforms: reboot, internet searches, learn to live with it, or reinstall and hope for the best.
For my own use I'd have just given up and installed Linux on this machine as well but I have to dogfood this for everyone else in the company. I'm starting to try out using web versions of everything, particularly Microsoft Office, in the hope that ChromeOS is actually a hope for a usable desktop for unsophisticated corporate users.
The conclusion was, as you've already tried, change sleep setting in bios to "Linux-mode", or just get a mac.
Ahh, but now others can benefit from your work :) It's a system or a community. The wizards hand off to the communicators and enable more users.
>In the meantime, the best I can think of is to pay for my distro, report bugs, and email manufacturers for Linux support.
Hell yeah! and keep posting technical solutions. Even the little things you do like keeping your site very readable, posting the text instead of screenshots so it's searchable, etc. all help.
>dkozel and your kind, whoever you are, wherever you are, and whatever you are doing right now, you are legend.
You too, man. Remember Gandi's quote: “Whatever you do will be insignificant, but it is very important that you do it.”
I know it's a tradeoff and I sacrifice a lot to live in my current Macintosh rut, but I just don't have the motivation to be my own DIY tech support wiz after a full day on computers for work.
EDIT: as pointed out by others, one headline takeaway from this is that the author was able to fix the problem at all, which s/he may not have been able to do on Mac/Windows (though it's much less likely the issue would occur in the first place).
Where is this mythical platform?
If something like this happened on Windows, you'd just end up clicking around arbitrary settings, googling desperately, and rebooting over and over again, until you reinstalled the entire OS. That option is also available with Linux.
I also have a somewhat interesting usecase that doesn't let me switch to Mac (not that I am keen to). If I buy a Mac, I will have to switch my phone to iPhone too because integration with Android isn't nearly as good. However I _must_ have a dual sim phone (which is fairly easy with Android) and there aren't any dual sim models of iPhone.
Aren't phones with an eSIM + regular SIM effectively dual-SIM? I'm pretty sure iphones have those.
Docs for SIM + eSIM: https://support.apple.com/en-gb/guide/iphone/iph9c5776d3c/io...
Docs for dual physical SIM: https://support.apple.com/en-us/HT209086
Now my phone is still confused after restoring from backup and cannot see the eSIM. I’ve been filing feedbacks and radars to no avail. If I was on Android I’d have just rooted it and deleted the offending (mis)configuration file already!
You can't access the whole filesystem of a running iDevice with it, but you can access the whole filesystem of the backup. So I suspect it might be possible for you to clean-up the backup offline & then restore it. (At a minimum it should enable you to extract the valuable contents out of the backup and manually restore it on top of a clean iOS install.)
I've used it with some success to extract info from the photos database. I just wish they had a consumer-facing (read: more affordable/perpetually licensed) version of their CLI tool.
[1]: https://imazing.com/
Also, I like the flexibility of using the physical SIM because I can easily use them with both smart and feature phones without issues.
I use iPhone + Mac, but I don’t remember any hiccups when it was android + Mac. Most of my interaction between the devices is pretty indirect anyway (photos are shared through google cloud, etc).
Occasionally I will have a Linux Evening, and I attribute it to the fact that I didn’t pay for my OS and can therefore only expect so much. After all, you only get what you pay for.
That being said, I will never leave Linux because using an open source operating system is completely worth the occasional hassles it brings me.
There is still a recurring issue that I was encountering, that is similar to the one reported by Fabien Sanglard. It is with the small usb-c to usb-3 thunderbolt accessory. It is working perfectly, and suddenly, after months, it will not work anymore with anyhting plugged to it, without reason.
In that case, in the syslog I can also see that the "memory space" is exhausting, with something "BAR" and it looks like that it is not able to allocate ports anymore.
Before, in such a case, I was forced to reboot and that was a lot of frustration for me, to lose all my contexts. And most often at the wrong time when you are in a hurry.
But, recently,in a Linux Evening, I found a command that "magically" resolve my issue when it is happening, without having to reboot:
for i in /sys/bus/pci/drivers/[uoex]hci_hcd/*:*; do [ -e "$i" ] || continue; echo "${i##*/}" > "${i%/*}/unbind"; echo "${i##*/}" > "${i%/*}/bind"; done
This will deinit/deallocate all the usb internal hubs (usb2/usb3/...) freeing the ports that were allocated (leaked?) for them. And then reset them. Then everything is working correctly again.Even if it is not great to have this issue, this is the case when I like Linux, when there is always a way to fix your issues without having to reboot.
The other day I changed /etc/ld.so.conf and the system would not boot—my fault. I choose the previous deployment in GRUB and I had a working system back.
I think better UX and more configurability would solve this stuff (from a friendly interface). The reason desktop/distro people won't do that is because it is considered bad UX practice to have too many decisions for the user. But imo, a Linux user would be an exception. In an ideal world, whoever decided to disable the boot flag in this case should have provided an easy to access distro/de setting to flip it back on.
Mind you I have my grub set to boot into windows by default so that if there's a power outage, my game streaming and backup setup, which is on my windows partition for now, will relaunch if I'm traveling or something. Yet if it had booted into that stupid splash screen, Steam and etc won't have been able to launch, and I'd have been SOL!
I hate windows!!!!! I can't wait to get EVERYTHING onto linux. I have a todo to see about using proton compatibility for desktop gaming, it works great on steam deck. After that the only remaining thing is ableton, and I'll have been completely freed from windows forever!
Because the amount of time spent on unwanted Windows things is radically less than the amount of time spent on Linux evenings.
Windows does by and large just work. Every OS has warts and bugs. I want to spend the absolute minimum time on them.
Linux is getting better and may not require too many Linux evenings these days. But that’s really only true if you’ve burned hundreds of hours dealing with increasingly obscure Linux errors.
It’s not too hard to understand why different people prefer Linux, Mac, or even Windows. They all have pros and cons.
I'm so glad that my hit-and-run post has been so useful. After seeing Fabien's blog post I did a quick search and it turns out that the solution has spread fairly broadly to other forums. My choice of 0x33 was arbitrary so makes a nice canary for seeing it spread out. I'm thrilled. Sharing experiences and solutions is so essential to learning. I've benefited enormously from the generosity of open source developers and communities and from individuals documenting pieces of their projects, glad to have raised the ocean a little in return.
My use case was (and remains) having a Xilinx Artix 7 FPGA in an external Thunderbolt 3 enclosure for testing the development of DSP accelerators using open source tooling. I didn't want to have the FPGA board inside the PC to be able to swap it to my laptop easily, because it produces a lot of heat, and so when I misused the PCIe soft core (litePCIe: https://github.com/enjoy-digital/litepcie/) it doesn't take down the OS. Being able to reload the FPGA and effectively hotplug the device has been very helpful.
Since I knew my issue was around hotplugging I searched for information around PCIe hotplugging and I think (it was two years ago...) that I found the answer from one of these two threads. Both mention the option of reserving PCIe addresses for hotplug busses as a workaround, and a workaround was all I needed.
https://www.spinics.net/lists/linux-pci/msg64841.html
https://review.coreboot.org/c/coreboot/+/35946
dmesg and the various kernel logs are my first stop for any odd behavior on Linux. Especially with any state change to a device (plugging in, turning on, removing, reconfiguring etc) the kernel logs tend to give invaluable info.
I had already been looking at eGPU forums to choose the Thunderbolt 3 enclosure (ended up with the ORI-SCM2T3-G40-GY) and there were various discussions of hotplugging issues there, but I don't think I found the specific kernel options to fix it there.
Check out this docs page for the kernel parameters: https://docs.kernel.org/admin-guide/kernel-parameters.html
For the string "pci=realloc,assign-busses,hpbussize=0x33"
`realloc` Enable/disable reallocating PCI bridge resources if allocations done by BIOS are too small to accommodate resources required by all child devices.
assign-busses [X86] Always assign all PCI bus numbers ourselves, overriding whatever the firmware may have done.
`hpbussize=nn` The minimum amount of additional bus numbers reserved for buses below a hotplug bridge. Default is 1.
0x33 (decimal 51) is arbitrary, but large enough that I was unlikely to ever exhaust that address range even with a large number of devices chained together on the Thunderbolt bus. I think (though would have to check) that the address space does get exhausted with multiple hotplug cycles. I haven't hit that issue since I shutdown the computer close to daily to save power.
Sadly, there's no Segway, those things are expensive and I have a long wish list before reaching that point. Currently I'm saving up to get a microscope, I have a large box of RF integrated circuits that I'd like to do some show and tell with on Twitch. :) Also no unmarked 40% keyboard, RSI means I'm a total fanboy of the Microsoft Ergonomic keyboard and the Anker vertical mouse. Cheap and so comfortable. I have done some kernel compiling, mostly to learn more about kernel modules as I've been trying to make the learning curve and user experience of experimenting with FPGAs over PCIe easier. If anyone has some experience with DKMS and creating Debs I'd welcome a chance to chat. Ditto if there's any Debian maintainer with experience packaging kernel modules, I made some headway a while back to repackage linux-gpib but got stalled out on a few of the details of maintaining patches against the upstream.
Cheers and Happy Holidays!
If you have a PayPal account, I will gladly contribute to your microscope fund!
Thank you again, and happy end of year!
Also I love all your retro work. I have a NeXTStation Turbo Color that's my retro pride and joy. Have you seen or been involved in any of the Demoscene activities? It's amazing the graphics that people are able to squeeze and abuse out of older hardware.
Off topic, but folks might enjoy Poems for Bugs, a talk where Linus Åkesson talks about cycle accurate coding to exploit GPU bugs in the C64. https://www.linusakesson.net/programming/poems-for-bugs/inde...
Both of you are :-)
Heart=warmed. Happy holidays to both of you!
What does RSI mean?
Easy solution if you know how to solve it, 1 hour searching for that solution, and about 0% chance of that knowledge ever being useful again in the future.
In the end I was still satisfied because at least I learned something (no matter if it's useful or not), and I was under no pressure to get that particular Linux system working again (I could still dual-boot Windows for example).
I try setting the machine to sleep and manually waking it up. No problem.
Later, I spent some time watching a long youtube video, then I opened the terminal and then the OS crashed.
Dmesg? It showed nothing
But, sometimes, when I tried to launch the terminal, I tried running htop and then the OS hanged. I had the feeling that it was something HD related.
I restarted the machine, updated the kernel, asked the forums, everything. No answer.
It was my work machine. They let me install Linux but I couldn't spend so much time with the OS. I need to have work done. Otherwise I need to bail and go back to Windows (ugh).
I was about to delete Linux from the laptop, but I had an idea: The machine was a Thinkpad T1. I looked on the Arch Wiki about compatibility with that laptop. If the problem came from an incompatibility with the hardware, it will surely show up there. The machine showed up in a list and according to the wiki, there's nothing related to a crash or a freeze.
Then, I looked up on lshw if there was any piece of hardware that was different of what the Thinkpad has by defaults.
The result? A Kingston 1TB SSD. I googled "Linux Kingston ssd lock up", "Linux Kingston ssd crash".
It turns out, some Kingston SSDs don't support all the deep sleep levels of energy saving. I needed to switch some off with a kernel parameter.
I never had any problems with that machine again.
Linux is a relatively obscure OS, but you were on popular hardware with a popular SSD which helped increase the chance that someone else had run into a similar issue.
I forget what I googled, but I essentially found a forum post almost immediately that explained the reason for the ibp=off, something to do with an intel security issue, caching, and the actual likelyhood of it being a security risk on a personal machine. The conclusion was basically "its enabled by default because its a good idea, but not really needed for most use-cases". Away I went disabling it, somewhat understanding why it was there.
But I've also been an arch user for years, and one thing I'm accustomed to is when the bleeding edge breaks something, other bleeding edge users are already discussing it. The overall community documentation on issues is exhaustive. If you have an obscure issue in Windows and search the error, you get windows support forums with official support asking you to click the "try to fix it pwease" button and no other solution. Half the time the only fix is a reinstall.
I ended up building a new computer because my old machine's windows install got itself in a state where it would fail to login after an update, yet constantly tried to apply that update after I'd revert it. No solutions anywhere online, no way to stop windows from trying to apply the ill-fated update. Just a broken install. I figured if I was going to spend hours re-installing and reconfiguring windows, I might as well get new hardware.
2 - Have you actually tried Linux?
My KDE Plasma setup is nothing like MacOS.
Personally, I've been riding the linux struggle bus for years in my personal time. It really hasn't been a struggle, but weird issue's I've dealt with during my "Linux evenings" has made obscure struggles at my day job far easier to debug and deal with, and overall has made me a better engineer because I know how my tools work and I can use them more effectively.
It's a whole lot more fun learning about kernel drivers, systemd, networking drivers, etc when you're personally invested in tweaking your machine just right. I much rather deal with a Linux issue for an hour than spend an hour on leetcode.
Anything you use has a chance of failure and on the whole I feel Linux has taken less time to do what I want to do with it than other similar options.
Thought I started using macOS at home because I got tired of dealing with Linux desktop shit, so take that as you will.
> “If you’ve ever read a mystery story you know that a detective never works so hard as when he’s on vacation. He’s like the postman who goes for a long walk on his day off.”
I got tired of taking the long walks.
If you're dealing with new hardware, situations like the one described in the article may pop up since vendors will focus their testing on Windows (and possibly macOS) so there is a good chance that it will work on the commercial operating systems but not the open source ones. That is going to be especially true to more exotic hardware since there will also be less testing by the open source community.
On the other hand, I find managing a Linux system significantly more time efficient. Some of it is because of the nature of open source. For example: installing, updating, and removing software is much easier since the licensing model allows distribution maintainers to create a universal software management tool. In other cases, it is simply because of the approaches typically taken by open source developers. For example: it is usually easy to copy configuration files from one system to another.
To me, a lot of the frustrations boiled down to familiarity. I used to be touchy around Linux, because it was weird to me all the time, switching from a decade plus of Windows experience. Whatever broke with Linux, it was a Linux problem, and whatever broke in Windows, it was a stupid computer problem. Do you see the bias? Now that I have the user experience, Linux issues are familiar, and whenever there's anything that's out of place, I know where to look, what to search. And Windows, with its penchant to reorganize the Control Panel every release, seems like a maze to me, where I get more frustrated at every turn.
At the end of the day, it's pick your poison really.
I was much more frustrated on windows when i ran into issues and your best bet was some incompetent support, and watching blue screens til you come to the conclusion that your system is scrapped, who knows why, and you need to reinstall and start over from scratch.
On arch you can save your dotfiles, make snapshots, chroot to fix things, and so on, there's tons of safeguards you can put in place, and tons of options for remediation. You really just need to RTM.
On top of that if you have a gripe about some software not working how you think it should, you can usually hack it or replace it. If you have an idea for some new functionality you want you can usually find/install some existing software for your needs in like 2 seconds, or you can find the repo of your software and submit an issue or PR.
Alternatively you can also just string together existing tools in a script in order to fulfill your needs. I did this recently to create an OCR screenshot to clipboard tool using tesseract and flameshot, something I wouldn't have even considered possible on windows.
I don’t think it really matters if windows bugs exist, but how often they occur and impact use of the tool.
The major difference for me is that Linux problems are always theoretically operator-fixable i.e. the information needed to fix your problem is available to you, even if you're not technical enough to understand it. The means to fix Windows problems are frequently not accessible at all, anywhere.
While I've had plenty of Linux evenings, I've had stuff broken on Windows that stretched into weeks until I finally gave up and reinstalled.
Computers suck, in general. I have a hard time seeing an attempt to leverage blame on Windows or Linux as anything but an excuse to start a flame war.
My gripe with Windows is usually not related to the operating system itself, but rather the direction it's headed as a product. And I also don't like that when people say that Linux is so tinker-y, compared to Windows, which "just works". A system that "just works", in my experience, is a system that the user is used to. Familiarity makes the issues seem trivial, and the unfamiliar issues seem insurmountable, which hardly results in a fair comparison.
I think all OSs can experience these kinds of weird problems from time to time.
It isn't. I mostly use Linux and sometimes (work) have to use windows.
The exact same thing happens with windows if you try to do anything remotely techy on it.
The difference though is that "Windows evening" often end in failure because at some point, you hit the wall of a binary blob whose source code isn't online.
> I spent several hours fixing a problem and I learned next to nothing in the process. This trick is unlikely to be useful again. By the time I encounter something similar, it is likely I will have forgotten about the solution.
This is why it is important to keep a personal knowledge base/documentation. Mine is full of things I'll probably never encounter again, but I know it may be useful one day or another.
It's surprising it works anywhere near as well as it does.
I then learned that GRUB had a bug introduced in an update that completely borked it for my system. So rather than deal with it I finally used it as the excuse I needed to ditch GRUB for systemd-boot, which if anything is actually simpler.
While one some proprietary systems the solution is usually "you are fucked deal with it".
Having said that it has been litterally years since I had this kind of problem. Checking if people have issues with devices on linux distros before buying actually works really well. I just don't buy the things that don't work. Kind of like checking at the back of the box if it is <insert os of choice> compatible.
But whenever I wanted to try out something new or install anything, some random stuff would go wrong and would need hours of searching and fixing. Happens much less often with MacOs.
I don’t see you trying simple things like “apt install go” and your pc would stop working (unless faulty hardware).
On the other hand I just bought an Intel NUC to turn into a NAS and am planning to try out NixOS. I think I'm going to have a lot of evenings..
Good error messages are important pointers. Make sure you include good, unique, descriptive errors in software you write.
When you figure out a solution, post it online with the error message so others can search it to make the connection and get to the solution more easily.
So much of modern programming in general is like this because of the always changing languages, libraries, tools, software, hardware etc. such that when you're coding you have to accept it will keep happening occasionally no matter how experienced you get so you don't get too wound up about it. It's especially discouraging when you're starting out too and don't know this yet.
OK.
> I spent several hours fixing a problem and I learned next to nothing in the process. This trick is unlikely to be useful again. By the time I encounter something similar, it is likely I will have forgotten about the solution.
So much this.
I _NEVER HAD_ a Linux Evening.
I only faced problems for my noobness in my earlier years, and help was always a reddit visit away.
Yes and no. I think if our only tools are are Google (well, now Kagi for me), Stack overflow et al., and the sites that hold quality content quick to the point, you'll be spending a lot of time on the info finding and not the fixing.
I think it requires a a lot of information organization tools to continue to keep up with it. Or sink more time into info finding. Or just memorize everything if you have a brain for that
Put another way, "after I'm done being abused, I wonder if it's my fault".
Easy to install. Easy to upgrade. Never breaks. Never gets "infected". Fast.
The absence of commercial bullshit is extremely nice too.
(I like Debian)
(Is it just me or is there a lot of FUD in this thread?)
My propositions, which aren't in vogue on this site:
My Kubuntu system is rock solid and never crashes. Firefox is still a performant world-class browser. Brave's crypto can be disabled and the browser is world-class. And Elon Musk isn't the devil.
Lots and lots of 'this is why I haven't used Linux for N years (and thus don't know what it's like)'.
I have to use Windows at work, and the system is way, way less predictable and reliable then any Linux system I've run for a decade. Shit changes out from underneath me (Windows Update, policy changes) in breaking ways all the time, and there's often no rest to inspect or reverse what causes breakage. For every 'evening of Linux' I've had on my life, I have a few 'afternoons of Windows' (mostly hopelessly, blindly turning things off and on again) every week.
When I ask colleagues who are my more accustomed to Windows than I am about how to solve issues, how to achieve particular configurations, or how Windows does certain things, it becomes clear that actually managing their workstations like comprehensible devices which are substantially under their own control is a foregone conclusion to them.
The reality for Windows users is not a system that actually 'just works', but a deeply internalized helplessness that manifests as conservatism (attempting little, assuming many reasonable configurations are not possible), superstition (attempting and advising reboots, constantly, without being able to articulate a real reason), and blindness to the outrageousness of the situation (e.g., thinking it's perfectly acceptable that their laptop can't handle an uptime of 4 days before it starts falling apart, or 'I always shut my laptop all the way down at the end of the day so it'll run better').
It's no wonder that people conditioned by this kind of usage pattern don't have a sense of what reliability or mastery look like in the Linux world, how frequently issues like this do or don't occur, how easy or hard they are to avoid, etc. They live on a different planet, where mastery in desktop computing is worthless because there's just no hope for a predictable, transparent system that doesn't change out from under your feet. It'll just break tomorrow anyway. And on their planet, it doesn't occur to anyone to research hardware compatibility ahead of time; they never need to. So of course the thought of spending an evening rooting out a hardware incompatibility issue strikes them as some mixture of futile, extremely burdensome, and unavoidable/common for those poor Linux users— even when none of those things are true.
I remember Linux 2.x times and I had similar problems with hardware but a lot of them I fixed by following a limited set of tricks/patterns. Sometime I read a source code of some drivers or maybe applied some patches but not so often.
But at that time I felt confidence that most problems I could fix. Now I don’t (and actually switched to Mac 5 years ago)
Perhaps dkozel is reading this right now. :P
Empathy isn't the word. It's feeling like you're trapped on a deserted island in a vast empty sea - suddenly realizing that there's another S.O.B. who's been right next to you the whole time and also knowing that neither of you has the faintest idea how to get off the island.
I swore that this one was about the finding only person who had the same issue but who then had posted 'fixed it' soon after. That's even worse, it's like being stuck on the island and watching the S.O.B. walk on water into the distance.
I'm a bit sad about Mthe whole thing : I want it to work, but it doesn't. I don't have the time to waste yet another linux evening, yet I can't resent the people who work on it for free, and understand very well that it works for some people.
Haven’t laughed that hard in a while.
2. If principles mattered more than convenience, most Linux users would be on FreeBSD or OpenBSD instead of GNU/Linux. Either follow your arguments to their conclusions, or understand that Windows/macOS users are doing the same thing as you—making practical tradeoffs.
3. Unless you are doing tons of system administration on your daily driver, most of your time is spent in applications, and the choice of operating system doesn't matter too much.
Which principles do you think are at play?
There are 3 type of person who knows a lot about cars:
1. A Car mechanic 2. People who love cars, and tinker them constantly 3. People who have a shitty car and something always breaks.
Personally I'm not a car guy, I treat them as tools. I can do this because I always had a reliable car. I have a friend who once mocked me for my inexperience. I had to reminding him why he knew so much about cars. He was a Type 3 guy. No a shitty car tho, but something always broke on it anyway.
So getting back to you, can we just have something Works? Is that a high bar?
When I (and many others) first started out using Linux, this was when the most trouble was likely to crop up. Over time, one learns and adapts to certain intricacies, hardware or methodologies used, and hopefully good practises, such as avoiding utterly rubbish or quaint distributions. Of course no scenario is bound to be 100% trouble free, but this is a far cry from an inexperienced user.
Even if I were to accept the premise that the other users are simply "doing nothing interesting", what would your idea of interesting be? Is it heavily exotic in nature (which I do agree in this case), or things that fall outside the purview of web browsing, document editing and leisurely activities? These things can also cause trouble outside the fault of a user for any reason, but this doesn't necessarily mean that they are inexperienced or do nothing interesting.
If you can elaborate more, I'd be interested to gauge if I agree in a new context.
> 1. If you don't encounter any trouble daily driving GNU/Linux, that is actually a sign of inexperience. That or you're doing nothing interesting.
I do loads of interesting stuff on linux, I use it for research, numerical computing, biology etc. None of these things cause linux to skip a beat.
> 2. If principles mattered more than convenience, most Linux users would be on FreeBSD or OpenBSD instead of GNU/Linux. Either follow your arguments to their conclusions, or understand that Windows/macOS users are doing the same thing as you—making practical tradeoffs.
The world is not black and white! There are degrees to which people behave, and there is a spectrum of behaviour that abides by certain principals and doesn't. I had someone say to me recently that they didn't believe there are 'ethical people', instead people make use of the opportunities presented to them. This isn't true and is more a sign of how they've justified their own life choices.
> 3. Unless you are doing tons of system administration on your daily driver, most of your time is spent in applications, and the choice of operating system doesn't matter too much.
I, like many people, tend to use more than one application, so I find the OS does matter. On Windows 10, when I hit the start bar, and start typing the name of an application I want to launch, I really do care when the bar sits there loading up, scraping internet data to show me its suggested apps and adverts.
What principles? Is this another BSD vs GPL licensing turf war you're trying to start here? I think there are obviously coherent sets of principles on which it makes sense to prefer the latter.
I'm chiming in with everybody else here, but why do you think that my principles are better served by licensing that is less supportive of my principles?
GRUB_CMDLINE_LINUX_DEFAULT="mitigations=off acpi_enforce_resources=lax pci=noaer intel_iommu=off"
All of them due to various problems I had to 'google and cut paste bits and see if it works'. I'm considered a bit of an expert, and I only understand fully one of the added parameter, and why it's needed.
Now doing this across different operating systems is clunky and quite challenging.
You could use something like True Crypt or Vera Crypt, but mounting your drive then won't be typically as simple as plugging it in.
For that reason it's probably better to have a separate computer for backups connected to the network. That way you don't need to care about encryption on every system you connect it to. It just works (tm).
I really want to move to Linux but unless my laptop manufacturer provides support, its never going to happen. I don't want to think my OS when buying a hardware accessary or a software product.
A laptop's a tool and Windows still provides the most support.
But I think it's OK. I have always had an interest in system programming and that's why I wanted to dab into Linux. But system programming is not a shiny, whole smooth thing one may imagine, but is quite messy all the time. I simply got what I wanted.
Contribution does not necessarily mean code. It can be documentation, design, UX, sharing information, or just working getting people familiar with Linux.
My story, I bought a new widget, a gaming wheel a few years back, and it did not work on my Windows machine, I even reinstalled Windows, installed the drivers from disk it did not work. I send the thing back and report it broken and the guys call me to report that works perfectly. In the end I bought a different model that worked both on Windows and Linux.
So a gadget with official Windows support did not work on my machine, even after I wasted my time reinstalling Windows just in case but worked fine for some support people.
I had a diffrent experience with a USB WifFi antenna , it come with a mini CD with drivers but my PC had no CD Drive, there was no online source for that no name brnd.
I plugged it on a Linux machine and it worked, then I done a lsusb and found the real chip powering the device, then Googled for that I found a compatible Windows driver on a drivers website and I fixed it for Windows machine.
Linux has problems, but install a LTS distro on compatible hardware and you should not have issues for a few years.
To balance things, my latest bad experience in KDE was when Kwin crashed and refused to enable compositing again printing a vague reason in the logs, I found using Google that KWin put an isOPenGLSafe=false in soem log file and refused to start compositing but for some reason (maybe is a valid one) was incapable to print also that "I refuse to start compositing because of this setting - lesson for us devs, when we put stuff in log messages, put as much info as possible
And following up by silently escalating recently-solved problems beyond the reach of posted workarounds.
Just in case the doubling down does not proceed as expected.
I've supported both professionally, and no, you don't. I blame the claim on a lot of people using commercial operating systems feeling a bit guilty, like they're supposed to be on Linux to be a real developer. They respond by criticizing an OS that they don't really use for the problems that they imagine happen all the time. Instead, what's happening is that they, personally, always run into problems trying to figure out why something won't work in prod, or trying to get their VMs to work like the tutorial, and they assume that people who use Linux as a daily driver run into problems at that rate. They never pay attention to Linux unless something critical has already broken.
Also, whenever they decide that they're going to try Linux again to see if it's ready for them yet, they always choose Arch (it used to be Gentoo) or the latest trendy distro that has a MacOS aping desktop. Just install Debian, it's easy.
That isn't a just Linux thing. You can easily fork-bomb (or equivalent) Windows/iOS/other and so forth, especially (though not only) if running as a privileged user.
> And then non-obvious issues that just "appear" out of nowhere
That is definitely not something that I've never seen when using Windows! Where it has happened to me under Linux it has been eventually traced to a hardware issue or a bad update (the latter I've experienced on both those OSs over the years and the former will affect everything).
I've crashed DWM with WSL before, by doing something completely unrelated to Windows.
What happens is you start getting the solitaire effect because suddenly no windows have graphics buffers anymore
>That is definitely not something that I've never seen when using Windows!
Case in point: my laptop (running the Windows 10 it came with) recently stopped hibernating properly, well it hibernates OK but half the time when it wakes up the screen does not turn on, and this evening it has decided that it doesn't want to be asleep while plugged in. If I tell it to sleep (through power key or start menu) while plugged in it does very temporarily and then returns to the login screen. If I tell it to sleep when running on battery it does but immediately wakes up once power is connected.
While Linux distros are far from free from random problems at times, in my experience Windows exhibits them more and tends to be harder to diagnose because more is hidden.
The solution is running a userspace out-of-memory killer, e.g. earlyoom.
Nowadays, I cannot afford to take a day off to fix obscure incompatibilities like this.
The last straw to me was when I stored my closed lid xps in a bag and 3 hours later everything was smelling like burning plastic because the computer suspend suddenly stoped working. To get things worst, it happened during a long haul flight.
https://www.dell.com/community/XPS/FAQ-Modern-Standby/td-p/7...
Which is the stupidest thing ever. I want to see Apple use this to shame Dell in ad.
Its that good.
This seems like the wrong attitude to me. It's the perfect opportunity to dig into what those kernel params do! Understand _why_ that fixed the problem.
Who knows how many total days and weeks I spent on random things like this and all the obstacles I had to overcome. Just to get secure boot working on debian, I had to overcome their block of my vpn IP on their wiki, and the sign-tool which is impossible to find and after a lot of googling found an ubuntu post suggesting a weird kernel version speicific path that worked but the builtin vbox kernel module signing thing can't find it during apt update so at each kernel update I have to manually sign vbox modules (which means making the privkey readily available and defeating the whole point but whatever), at least I made a small script that only needs my secureboot pin/pass now. And then I decided to use apparmor, which is nicer than selinux but it took weeks to lockdown two apps and have them work and I am still not confident I did it right.
Ok,ok... let me pause there because I could go on. In my current day job, I attribute my success to two things: 1) Using linux for many years and fighting these "stupid" battles 2) I learned C which made learning a lot of other stuff a lot easier. I work in security now, so when there is a linux or container/k8s related incident it is easier for me than for my colleagues. I also don't shy away from difficult technically complex incidents or problems because I am battle-hardened in the art of figuring out seemingly random problems in topics I know nothing about with the sheer power of search engines, docs and random internet posts.
When I worked my first k8s incident, I knew nothing about it. I was watching talks by google people on one window while reading docs on another and poking around in the gke node scratching my head on why the hell a k8s node is running chromeos and everything is readonly. But all of that is a piece of cake. Try random browser crashes because weird grsec/pax patches (before they closed it off) that were messing with jit or untangling a dependency mess on a gentoo install neglected for years which doesn't even have a supported python version now. The brutality and fragility of Linux has given me a lot of mental muscles that has helped me immensly and it has forced me to be distrustful of software in general and learn a lot of stuff from programming languages to permission models, os architecture and gnu tools like sed,grep,awk and the like.
But yeah, I love linux so much but let's not pretend it is easy to use or user friendly. But hey, 2023 will be the year of the Linux desktop so we'll see.
A lot if *nix philosophy and mentality like "RTFM" and defaults not being a big deal I think are from an era where the ecosystem was much less complex and the userbase was much smaller. I attribute many of these pain points to that undying mindset.
For starters, Windows is Ubuntu bug #1. (I kid).
The nice thing about Linux is it can evolve without being pulled into advertising-and-data-monetization as a business plan. In other words, society is better off with it.
if you wanna learn, you should've known at least about dmesg
This is a catch-22