On Mon, 2008-05-26 at 12:38 +0200, Ferenc Wagner wrote: > Hi, > > So far I've received no comments on this, may I ask for some again?
Will this patch do the right thing if Xen is being installed using the paravirutal framebuffer device present in 2.6.26-rc? It looks to me as if it will not. Ian. > > Thanks, > Feri. > > Ferenc Wagner <[EMAIL PROTECTED]> writes: > > > Frans Pop <[EMAIL PROTECTED]> writes: > > > >> On Thursday 08 May 2008, Ferenc Wagner wrote: > >> > >>> vmlinuz-2.6.18-6-xen-686 suite=etch DEBIAN_FRONTEND=text > >> [...] > >>> kbd-chooser[881]: ERROR **: Couldn't get a file descriptor referring to > >>> the console > >>> main-menu[670]: WARNING **: Configuring 'kbd-chooser' failed with error > >>> code 1 > >> > >> That seems to make fairly clear why kbd-chooser is failing... > > > > Still not fully clear to me, but name it an already fixed Xen bug. > > > >>> vmlinuz-2.6.25-1-xen-686 console=hvc0 suite=etch DEBIAN_FRONTEND=text: > >> > >> And apparently here kbd-chooser _can_ find a file descriptor for the > >> console. > > > > Yes, it looks like hvc0 is a much better console than the earlier > > hacks. Which is not particularly surprising. > > > >>>>> * Should we skip running it from a virtualized D-I? (I guess yes, > >>>>> especially that it's so simple to achieve.) > >> > >> If I understand you correctly: no, we do not want to add a question for > >> this. > > > > Maybe not. What I'm talking about it the following prompt: > > > > Select a keyboard layout > > ------------------------ > > > > Keymap to use: > > 1. American English [*] 22. Italian > > 2. Belarusian 23. Japanese > > [...] > > > > which doesn't appear during serial installation. > > > >>> Yes, testing for functionality would be much better. Like skipping > >>> kbd-chooser if there's no keyboard attached. Is serial installation > >>> handled by checking the kernel command line? > >> > >> I suggest someone starts looking at the kbd-chooser code... > >> For serial console the relevant parts are kbd-chooser.c from line 534 > >> down. > > > > Maybe you want to commit the following fix for a missing hyphen: > > > > Index: packages/kbd-chooser/kbd-chooser.c > > =================================================================== > > --- packages/kbd-chooser/kbd-chooser.c (revision 53339) > > +++ packages/kbd-chooser/kbd-chooser.c (working copy) > > @@ -552,7 +552,7 @@ > > } > > > > /** > > - * @brief set debian-installer/serial console as to whether we are using a > > serial console > > + * @brief set debian-installer/serial-console as to whether we are using a > > serial console > > * @return 1 if present, 0 if absent, 2 if unknown. > > */ > > sercon_state > > > >> Both UML and serial console are already being detected there. Seems to me > >> that it should be possible to handle Xen in the same or a similar way. > > > > Yes. Line 669 of kbd-chooser.c forces console-tools/archs to > > no-keyboard, just like during UML installation. The latter is > > especially similar to the Xen case, and bases the decision on > > /proc/cpuinfo. This suggests that introducing an analogous function > > which checks for Xen (in the line of [ -d /sys/bus/xen ]) and oring > > that to the above condition would be enough. > > > >> When testing based on hvc0 you should be aware that is also used by > >> PowerPC > >> systems. > > > > This way we wouldn't test for hvc0 at all. Unfortunately, Xen's hvc > > isn't a serial device, so that case can't catch it. > > > >> Bottom line: please implement something that fits _within_ the existing > >> structure of kbd-chooser. Don't add hacks. > > > > What about somethink like this? (Apply before the above!) Totally > > untested, POC only. :) > > > > Index: packages/kbd-chooser/kbd-chooser.c > > =================================================================== > > --- packages/kbd-chooser/kbd-chooser.c (revision 53339) > > +++ packages/kbd-chooser/kbd-chooser.c (working copy) > > @@ -552,6 +552,26 @@ > > } > > > > /** > > + * @brief set debian-installer/xen-console as to whether we are using a > > Xen console > > + * @return 1 if present, 0 if absent, 2 if unknown. > > + */ > > +sercon_state > > +check_if_xen_console (void) > > +{ > > + sercon_state present = SERIAL_UNKNOWN; > > + struct debconfclient *client = mydebconf_client (); > > + > > + if (!access("/sys/bus/xen", F_OK)) > > + present = SERIAL_PRESENT; > > + else > > + present = SERIAL_ABSENT; > > + > > + debconf_set (client, "debian-installer/xen-console", present ? "true" : > > "false"); > > + di_info ("Setting debian-installer/xen-console to %s", present ? "true" > > : "false"); > > + return present; > > +} > > + > > +/** > > * @brief set debian-installer/serial console as to whether we are using a > > serial console > > * @return 1 if present, 0 if absent, 2 if unknown. > > */ > > @@ -633,6 +653,7 @@ > > int choices = 0, first_entry_s = 1, first_entry_t = 1; > > sercon_state sercon; > > sercon_state umlcon; > > + sercon_state xencon; > > struct debconfclient *client = mydebconf_client (); > > > > /* k is returned by a method if it is preferred keyboard. > > @@ -666,7 +687,8 @@ > > } > > sercon = check_if_serial_console(); > > umlcon = check_if_uml_console(); > > - if (sercon == SERIAL_PRESENT || umlcon == SERIAL_PRESENT) { > > + xencon = check_if_xen_console(); > > + if (sercon == SERIAL_PRESENT || umlcon == SERIAL_PRESENT || xencon == > > SERIAL_PRESENT) { > > debconf_metaget(client, "kbd-chooser/no-keyboard", > > "Description"); > > arch_descr = strdup(client->value); > > choices++; > > @@ -687,7 +709,7 @@ > > debconf_subst (client, "console-tools/archs", "KBD-ARCHS-L10N", buf_t); > > free(arch_descr); > > // Set medium priority if current selection is no-keyboard or > > skip-config > > - return ((sercon == SERIAL_PRESENT) || (umlcon == SERIAL_PRESENT) || > > + return ((sercon == SERIAL_PRESENT) || (umlcon == SERIAL_PRESENT) || > > (xencon == SERIAL_PRESENT) || > > ((preferred && preferred->present == TRUE) && > > (strcmp (curr_arch, "skip-config") != 0) && > > (strcmp (curr_arch, "no-keyboard") != 0))) ? "low" : "medium"; > > -- Ian Campbell Pray to God, but keep rowing to shore. -- Russian Proverb
signature.asc
Description: This is a digitally signed message part