Frans Pop wrote:
> After loading the cd-drivers floppy, the menu looks like this:
> Choose language
> Choose country or region
> Detect and mount CD-ROM (4)
> Load drivers from a floppy
> Select a keyboard layout
> Load installer components from CD (5)
> Detect network hardware (6)
> ...
>
> As can be seen from the numbers, kbd-chooser is never run.
>
> Also, why is "Detect and mount CD-ROM" inserted in the menu _before_ "Load
> drivers from a floppy"?
That seems to be the real problem. I don't know why cdrom-detect is put
so far up in the menu, but once it is, main-menu makes it the default
since it's the first menu item that has not been run. Once it is run,
this happens when main-menu is looking for the next item to make
default:
- It goes down the list looking for items that have not been run, and
lands on kbd-chooser.
- It notices that kbd-chooser has a menu-item-number less than that of
the last run menu item.
- So it skips over kbd-chooser and keeps going, landing on load-cdrom.
This skipping code was intended to be used when the user manually
skipped over a menu item, down to a higher numbered item. But it also
triggers if the menu gets rearranged like this so it's not in
menu-item-number order.
As I said, I don't know what causes the menu to be ordered this way, but
it's obviously something in here:
/* Sort by menu number. */
qsort(package_array, num, sizeof (di_system_package *), package_array_compare);
/* Order menu so depended-upon packages come first. */
/* The menu number is really only used to break ties. */
list = di_system_packages_resolve_dependencies_array_permissive (packages, (di_package **) package_array, allocator);
So it looks like di_system_packages_resolve_dependencies_array_permissive
thinks that cdrom-detect is a dependency of load-floppy. Otherwise, why would
that be put before it?
Well, load-floppy depends on anna, which depends on retriever. cdrom-retriever
is one of the three packages that provide retriever, and of course it depends
on cdrom-detect. I can't read the code in libdebian-installer, but I'll bet it
erroniously follows this chain to arrive at the conclusion that load-floppy
needs cdrom-detect, and puts cdrom-detect before it.
This problem can be worked around by removing anna's dependency on retriever.
Since all d-i initrds necessarily include some retriever plus anna, the
dependency doesn't serve much of a useful purpose. I tried doing this, and got
a much nicer menu, with kbd-chooser before cdrom-detect, and selected as the
default.
--
see shy jo
Attachment:
signature.asc
Description: Digital signature