Re: how to have the kernel do udev's job and autoload the right modules ?

From: David Lang
Date: Thu May 07 2015 - 15:19:47 EST


On Thu, 7 May 2015, Austin S Hemmelgarn wrote:

On 2015-05-06 16:49, David Lang wrote:
On Wed, 6 May 2015, linuxcbon linuxcbon wrote:

On Wed, May 6, 2015 at 7:53 PM, David Lang <david@xxxxxxx> wrote:
It's perfectly legitimate to not want to use udev, but that doesn't mean
that the kernel will (or should) do it for you.
David Lang

When I boot the kernel without modules, I don't have anything working
except "minimal video".
I think the kernel should give a minimal support for network, sound and
video, even if 0 modules are loaded. I am just dreaming,

You can do that, you just need to build in all the network and sound
drivers (and pick which driver in the case of conflicts)

There isn't such a thing as a 'generic' network or sound card. For video
there is 'VGA video' which is used by default on x86 systems, but even
that's a driver that could be disabled.

To explain further, video has a standardized hardware level API (VGA and VBE) because it is considered critical system functionality (which is BS in my opinion, you can get by just fine with a serial console, but that's irrelevant to this discussion). Sound is traditionally not considered critical, and therefore doesn't have a standardized hardware API. Networking is (traditionally) only considered critical if the system is booting off the network, and therefore only has a standardized API (part of the PXE spec, known as UNDI) on some systems, and even then only when they are configured to netboot (and IIRC, also only when the processor is in real mode, just like for all other BIOS calls).

I don't think that it has anything to do with critical system functionality, but rather just the legacy history of the PC clones. At one point VGA was the standard, and at that point the different video card manufacturers got into the game, but since they all had to boot the system, and the BIOS only knew how to talk to a VGA card, all the enhanced cards had to implement VGA so that DOS and the BIOS could function. That legacy has continued on the PC clone systems to today. Non PC clones didn't have such a standard, and they don't implement VGA on their video cards (unless it's a card ported from a PC)

Network cards were never standardized, and were optional add-ons. They also weren't needed for the system to boot, so there was never any standard for newcomers to implement.

David Lang
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/