this post was submitted on 24 Oct 2024
34 points (94.7% liked)

Linux

48129 readers
477 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

Today I noticed that after I first booted my computer, my motherboard's Bluetooth card wasn't detected. I need bluetooth to use my speakers because my soundcard doesn't have linux drivers(another problem for another day) so I went without sound today. But then when I restarted the computer to see if that would change anything regarding the Bluetooth, it,

a.) Didn't change anything about the Bluetooth driver, and B) now my 2.4g dongle doesn't work for me to connect my mouse(I can still use it wired though) and my wired keyboard doesn't work.

Both times I booted my noticed that systemd was shutting down udevd, which I have never noticed before. I know that udev is controls peripherals, so that is the most likely issue.

How would I go about fixing my computer?

Computer is running fedora 40 and has an MSI mpg B650 gaming edge wifi. I can send a hardware probe if necessary

top 11 comments
sorted by: hot top controversial new old
[–] [email protected] 7 points 2 weeks ago (4 children)

That sounds like a hardware issue.

Keep in mind that Linux is a monolithic kernel. It doesn't technically have drivers at all or go missing. All supporting kernel modules for hardware are always present at the configuration level. The general kernels shipped by distros are configured to work out of the box for most hardware. The only exceptions should be instances where oddball hardware can cause conflicts with the standard way other hardware works in the same space. Then there are cases where hardware is totally undocumented publicly by the chip manufacturers. That is the worst kind as some of those have poor or no support.

By contrast, Windows is a microkernel. It only creates an API layer for the hardware vendor to write a driver that interfaces with Windows. They leave it entirely up to the end user to get stuck in the middle, source and install the driver and deal with any potential issues. In other words they don't have devs to maintain or do anything meaningful in this space, and they enable undocumented proprietary crap hardware.

[–] [email protected] 9 points 2 weeks ago

I invite you to take a peak at the "drivers" folder in the Linux kernel source tree.

There are absolutely drivers in Linux. This is nonsensical. That they are often bundled with the kernel makes no difference.

[–] [email protected] 4 points 2 weeks ago

"Drivers" are only when you do ring 2 message passing in a hurd microkernel. Everything else is just "late-bound function call steering that happens to satisfy hardware-specific device communication and control".

/s

[–] [email protected] 4 points 2 weeks ago (1 children)

It doesn’t technically have drivers at all or go missing. All supporting kernel modules for hardware are always present at the configuration level.

This isn't true? The Linux kernel has a lot of drivers in the kernel source tree. But not all of them. Notably NVIDIA drivers have not been included before. And even for the included drivers they may or may not be compiled into the kernel. They can and generally are compiled with the kernel but as separate libraries that are loaded at runtime. These days few drivers are compiled in and most are dynamically loaded depending on what hardware is present on the system. Distros can opt to split these drives up into different packages that you may or may not have installed - which is common for less common hardware.

Though with the way most distros ship drivers they don't tend to spontaneously stop working. Well, with the exception of Arch Linux which deletes the old kernel and modules during an upgrade which means the current running kernel cannot find its drivers and stops dynamically loading them - which often results in hotplug devices like USB to stop working if you try to plug them in again after the drivers get unloaded (and need a reboot to fix as that boots into the latest kernel that has its drivers present).

[–] [email protected] 4 points 2 weeks ago (1 children)

That is what I meant by configure. You're not going to HP to download your printer driver or realtek to get one for your network adaptor. To the end user, the kernel includes the required modules, or it is a matter of simple configurations. The exception being proprietary garbage. However with Nvidia on Fedora, it is a non issue as the Anaconda system builds the Nvidia module from source with every kernel update from outside of the kernel but under the shim, so even secure boot works.

The OP was not asking computer science OS 101. My reply is just intended as a surface level to cause them to question the drivers mentality. I've seen many people follow this logic and not get anywhere.

[–] [email protected] 1 points 2 weeks ago

That is what I meant by configure. You're not going to HP to download your printer driver or realtek to get one for your network adaptor.

I mean... You can.

https://www.intel.com/content/www/us/en/download/16008/linux-driver-for-intel-raid-module-rmsp3ad160f-rmsp3cd080f-rmsp3hd080e-and-intel-raid-adapter-rsp3td160f-rsp3md088f-rsp3dd080f-rsp3wd080e.html

Just because Linux bundles a lot of drivers with your distribution doesn't mean "drivers don't exist".

And it's not only "closed source garbage":

https://github.com/umlaeute/v4l2loopback

[–] [email protected] 12 points 2 weeks ago (1 children)

By contrast, Windows is a microkernel. It only creates an API layer for the hardware vendor to write a driver that interfaces with Windows.

NT is a hybrid kernel that is nearly monolithic.

Also you don't seem to understand what the difference between a microkernel and a monolithic kernel is. The defining difference is what mode and address space drivers and non-core kernel subsystems run in. If they run in the higher half in a privileged CPU mode like the base kernel then you have a monolithic kernel. If they run in userspace as one or more programs then you have a microkernel. If some run in kernel space and others run in userspace you have a hybrid kernel. And if your kernel exposes hardware interfaces directly to application programs providing only protection and multiplexing of them between programs and shared libraries are used to interact with those interfaces then you have an exokernel. If the kernel mimics the underlying hardware to each program running on top of it and let's them think they're running on the hardware directly then you don't have a kernel at all you have a type II hypervisor.

[–] [email protected] 5 points 2 weeks ago (1 children)

Indeed, gaps are present in my knowledge. I understand what you wrote, in theory, but vaguely based on my reading from a forum on kernel architectures several years ago. I'm most familiar with the user experience of configuring a custom Linux kernel with Gentoo versus needing a WiFi driver that I need WiFi access to source.

Since you are touching on a gap in my knowledge, perhaps a more recent issue and curiosity will help me ground this a little better if you do not mind responding. What is the deal with secure boot and Windows drivers? How are they able to run some random driver from the internet that has DMA?

[–] [email protected] 4 points 2 weeks ago

Secureboot and DMA are two different and AFAIK unrelated things. Secureboot primarily exists to ensure that only trusted OS kernels are run on a particular device. Otherwise someone could just boot their own OS installation from wherever and then have it access your storage and other devices and thus compromise your machine. I am not entirely sure how it works but I think it uses cryptographic signatures for kernels and drivers that aren't built into a kernel. I know that on Linux with Secureboot on if you want to use certain dynamically loaded drivers then they have to be signed. I prefer not to deal with all that so I just disable it in the firmware because no cyber criminal has physical access to my PC anyway.

DMA is just a way to get data from peripherals without CPU intervention. Without DMA every time a peripheral wanted to send your machine data it would have to trigger an interrupt (or be polled continuously) which the OS would catch and then read the data from the device. This isn't really super practical with modern hardware hence DMA allows peripheral devices to write directly to the system's main memory without the CPU (or the OS that runs on it) being involved at all. Then the kernel can read that data from memory whenever it sees fit to do so.

[–] [email protected] 9 points 2 weeks ago

Maybe its with the motherboard. Try and unplug your computer from the wall for 15 minutes or more.

I had a similar issue with my motherboard (msi mpg x570 gaming edge wifi), unplugged it for the night and fixed.

Here is the original post I found that fixed my problem. https://forum-en.msi.com/index.php?threads/bluetooth-no-longer-working-on-my-x570-gaming-edge-wifi-mobo.330263/#post-2143426

[–] [email protected] 17 points 2 weeks ago

I think the first thing to figure out would be why udev is getting shut down. Perhaps you could extract its logs? journalctl -b -u systemd-udevd.service should do the trick. This gets you the logs of the current boot's udevd service.

Once you know why it is shutting down, it will be time to figure out how to stop it from shutting down. That should, hopefully, fix the problem you're having.