1 |
Rich Freeman wrote: |
2 |
> On Sun, Mar 24, 2019 at 3:46 AM Peter Humphrey <peter@××××××××××××.uk> wrote: |
3 |
>> On Sunday, 24 March 2019 01:03:23 GMT Walter Dnes wrote: |
4 |
>>> When setting up a new kernel with "make oldconfig", almost all new |
5 |
>>> device drivers default to "N". The glaring exception is network cards. |
6 |
>>> They all seem to default to "Y". Is this a bug or a "feature"? |
7 |
>> It seems to be just to reveal the individual cards by that manufacturer. I |
8 |
>> don't see why it should differ from any other hardware options. Perhaps it's a |
9 |
>> leftover from a day long ago that no-one's thought to change. |
10 |
>> |
11 |
> I suspect it is because these options basically work opposite normal |
12 |
> ones. They're phased as "Do you want to see Acme network cards?" with |
13 |
> a default of Yes. However, they way they effectively work is "Do you |
14 |
> want to disable all Acme network cards?" with a default of No. |
15 |
> |
16 |
> Suppose you have an Acme model 1234 network card. You've previously |
17 |
> answered Yes to enabling its driver, and No to enabling the Acme model |
18 |
> 2345 card. |
19 |
> |
20 |
> Now a new option comes along to show/hide all the Acme cards. That is |
21 |
> a new option, so it has no existing value as far as the config |
22 |
> database design goes. If you answer No, then you disable your model |
23 |
> 1234 card (without even being asked, because that isn't a new option). |
24 |
> If you answer yes then effectively your previous choices remain in |
25 |
> effect (model 1234 remains enabled, and model 2345 remains disabled). |
26 |
> |
27 |
> Now, obviously a more elegant solution would be to look at all the |
28 |
> models of Acme cards in the database and see if you've selected any, |
29 |
> and use that to set the default. However, that would require a change |
30 |
> to how the entire config system works most likely. |
31 |
> |
32 |
> I might have a detail wrong and lkml is definitely where to go for the |
33 |
> full answer, but I suspect this was the rationale behind this design |
34 |
> decision. Those options effectively don't do anything but expose more |
35 |
> options, so defaulting them to Yes probably made more sense, because |
36 |
> defaulting to no would disable anything that depends on them. |
37 |
> |
38 |
> In any case, this is purely an upstream kernel issue, so you can |
39 |
> always try to convince Linus that he has it wrong. :) |
40 |
> |
41 |
|
42 |
|
43 |
One would think it should ask if you want any ACME drivers first. If |
44 |
you say yes then ask which ones you want. If you answer no then disable |
45 |
them all and move to the Better-than-nothing drivers next in the list, |
46 |
assuming the are alphabetical. Once you get past that driver, nothing |
47 |
else should disable the drivers you wanted. That way makes more sense |
48 |
but as you say, that could require some code that is either buggy, |
49 |
difficult to implement or something. That something could include, I |
50 |
never thought of doing it that way. LOL |
51 |
|
52 |
I need to remember to watch out for this when I build a new kernel. I |
53 |
know I'm going to forget tho. :/ |
54 |
|
55 |
Dale |
56 |
|
57 |
:-) :-) |