Are all major hardwares included in the Linux Kernel?

I was watching the youtube video from Chris Tech today (5 Things I Hate About Linux - YouTube).
According to Chris, usually in Linux, you do not have to download drivers for hardware because most of them are already included in the Kernel. Few exceptions include Nvidia.
I am kind of noob on how device drivers (‘Kernel modules’) work in Linux. So, I have 3 basic questions on drivers in Linux

Question1.
So, if Linux developers are going to add drivers of major hardwares into the Linux Kernel (the vanilla kernel), it is going to make end users’ life easier. But, wouldn’t that make Linux kernel ‘bloated’, so to speak ? i.e. make the kernel grow bigger in size

Question2.
Hardware drivers usually added to Linux or Windows kernels are of the following types:

  1. Keyboard/Mouse
  2. Internal wifi/Bluetooth cards
  3. Display Graphics cards
  4. Sound card
  5. Monitors

Did I miss any major ones ? I see lot of stuff in lsmod output, which I don’t understand.Hence asking.

What about Motherboard, physical RAM, the CPU itself ? Do they need drivers/kernel modules ?

Question3.
Red Hat’s Fedora team takes the vanilla Linux kernel and add in lots of GNU software and make the Fedora distribution. Does Fedora team add any kernel modules for hardwares ?

1 Like

   Also some drivers can be “compiled in” L. Kernel.  Those aren’t shown by lsmod.
   You may wish to search for “how to compile Kernel”: inside of the unpacked sources one can make nconfig (see make help for alternatives) to see all of that stuff.

3 Likes

Hi crudolph, and welcome to the forum.

Q1, the kernel ships with drivers for a lot of hardware, on startup, the system detects what hardware is actually present and loads those drivers into the kernel. You can find all the available kernel modules in /usr/lib/modules/<kernel-version> - you’ll notice that there is much more stuff there than what you see in the output of lsmod, because only those modules that are needed are actually loaded.

Q2, a lot of the rather cryptic stuff in the output of lsmod are the drivers for the low-level hardware in your PC, things like USB controllers, I2C interfaces, memory controllers, etc… However, since these are fairly generic, if you run into driver problems, it is usually with the high-level stuff like soundcards, wlan & graphics cards.*

Q3, the Fedora kernel package contains a lot of patches to fix various (sometimes Fedora-specific) issues, as well as Fedora-specific configuration. I don’t think it contains any modules that are not also available upstream. You can read more about it here .

*although I once had a problem with my laptop’s keyboard, because of a missing module for I2C - that took some time to figure out.

7 Likes

Suggested reading:

2 Likes