Hi all,
after quite some time spent hacking on d-i, I would really find it a
shame if we weren't going to fix that for wheezy.
Anton Zinoviev <anton@lml.bas.bg> (09/12/2010):
> On Thu, Dec 09, 2010 at 08:35:24AM +0800, Samuel Thibault wrote:
> >
> > That's actually "expected": we didn't want to switch back to the text
> > console just to setup the keyboard (setupcon would refuse to run from
> > the X server). But we should keep that on the TODO list, yes.
>
> As far as I can remember on the virtual consoles there is a text saying
> something like "Press ENTER to activate this console". I don't know
> what program is displaying this text but isn't it possible to change the
> same program to run setupcon just before the shell?
That could be an idea. From a quick grep, busybox is displaying it:
,---[ init/init.c ]---
| static pid_t run(const struct init_action *a)
| […]
| /* NB: on NOMMU we can't wait for input in child, so
| * "askfirst" will work the same as "respawn". */
| if (BB_MMU && (a->action_type & ASKFIRST)) {
| static const char press_enter[] ALIGN1 =
| #ifdef CUSTOMIZED_BANNER
| #include CUSTOMIZED_BANNER
| #endif
| "\nPlease press Enter to activate this console. ";
| char c;
| […]
`---
After some quick tests, if setupcon is called too early (before a
keymap is selected), one gets:
| ~ # setupcon
| setupcon: None of /usr/etc/default/keyboard nor //.console-setup exists.
After a keymap is selected, one gets this message instead:
| ~ # setupcon
| gzip is not accessible. Will not save cached keyboard map.
[and the keymap is indeed taken into account.]
The difference (despite the buggy error message) is the presence of
/etc/default/keyboard.
I guess we could indeed make busybox call “setupcon” (maybe with the
-k flag?) before spawning a shell, if that file exists? (possibly with
its stderr redirected to /dev/null to avoid the gzip-related message?)
I haven't checked what would happen in the text mode installation.
Michael, what do you think?
Mraw,
KiBi.
Attachment:
signature.asc
Description: Digital signature