Frank Peters posted on Sat, 08 Jan 2011 18:11:27 -0500 as excerpted:
>> Curious: why aren't you using udev?
> I've been using Linux since 1998 and I like most the opportunity
> for control that Linux allows. To suit my minimalist needs, I have
> customized my system to a great extent. For example, I have completely
> eliminated the complex and cumbersome initialization scripts that
> are found in /etc/init.d, /etc/conf.d, and other locations. In their
> place I wrote my own very simple initialization script that
> automatically boots into console (no login). From there I can go to X
> (my usual action) or just use the console for configuration,
> troubleshooting, or other tasks.
> I have also eliminated udev as part of this simplification. I know
> what's on my machine and what has to be done to enable it. I would
> rather not have actions performed "automagically" for me whenever I plug
> in a USB printer of storage device. Part of the reason is philosophical
> and part is just a desire to understand the OS better.
Wow. I understand exactly why you do it, because I'm the same way, only
the Gentoo initscripts are reasonable enough for me and I've enjoyed
watching openrc/baselayout2 develop -- in fact, since I actually /grok/
bash scripting at a reasonable level, its the one area I can quite
frequently not only submit bug reports, but trace the code and suggest
patches, which I've done on a number of occasions. (In one case, once I
started hitting an error and traced it, it was quite apparent the error
path/case had never been tested at all, as the logic was apparent but the
code simply didn't and couldn't work as intended. By the time the
original bug was fixed I think I'd had patches for two others taken and
helped work on a third, in addition to the one for the original triggering
Also, I remember static dev and highly prefer a dynamic dev, since that
makes it that way, it's a simple binary-case (1) device there, the kernel
detects the hardware and created a device, any problem must be above that
level, (0) device not there, kernel/module/detection problem, that you
don't get if the device node always exists regardless of whether the
kernel knows what to do with the device or not, since it's a static file.
But I definitely understand the appeal and simplicity of doing it the
other way, avoiding all the layers on layers of "automagic".
But it seems I often have at least one and sometimes two or three
initscripts that I've highly modified, either to cover "advanced"
functionality the script doesn't offer on its own (back when md-raid first
got partitioning support, my version of the script handled that way before
Gentoo's did, and I had a bug open for some time on it before Gentoo
finally added that feature based on my work and that of another user, as
well as the md-raid initscript maintainer; I'm doing similar now with
additional file-specific bind-mounts into the bind/named chroot), or to
delete complexity I don't need, sometimes both (I simplify the script,
cutting out what I don't need, to better undestand it before adding my own
> Linux allows many possibilities for customization and, IMO, that is half
> the fun of using it. Most distributions, including Gentoo, adhere to
> the standard methods. But if one has the inclination for exploration
> then there is much that can be done to go well beyond the standard
And of course, Gentoo makes maintaining customization much easier than
many distributions. =:^) I pretty much learned bash, at least the
scripting side, by rewriting the Mandrake rc.sysinit script, modularizing
it, etc. Then I upgraded to the next version, and had to do it again...
Then I upgraded again, and shortly thereafter, started running cooker
(rolling "testing" version), at which point I gave up. Gentoo's rolling
updates and configuration update management tools make it relatively easy
to avoid having a custom config broken.
Meanwhile, I see you've fixed the problem, but it's worth noting that lspci
lists devices based on generic pci-bus device queries, not what the kernel
has drivers for. Just because lspci lists it doesn't mean the kernel can
handle that device, only that the device returned certain information when
the kernel queried for devices on that bus.
Unless you use the -k switch, enabled by default with -v, that is (and
only on 2.6 kernels, which we're dealing with of course, but...). -k
shows kernel drivers handling and/or that can handle a device. In that
case, you get that information too if the kernel can handle the device,
but devices that the kernel knows not how to handle will still be listed,
just without any assigned kernel driver.
Maybe you meant that lspci -v (or -k) was saying it had assigned a driver
to it, but that's not what you said, you said lspci wouldn't show the
sound card as there if the module wasn't loaded, and that's not correct,
as it'd still be a device on the bus and would respond to queries (with
the results printed) as such.
This is an important distinction, because lspci can thus be used to see
devices that the kernel does NOT have drivers for (or doesn't have them
built and available). Using lspci to see what hardware a machine has
(once Linux boots on it at all), so one can google for support status and
what driver to use, especially on second-hand equipment where a manual
isn't available, and/or where it's easier to run lspci than to crack open
the box to look, is a very important usage case for it. If lspci didn't
list devices the kernel wasn't configured with drivers for, that wouldn't
work, so I'm very glad it DOES list them. =:^)
alsa-info.sh, OTOH, I don't know. You may be correct about it.
Duncan - List replies preferred. No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master." Richard Stallman