I tested this with console-setup-udeb 1.61 and still had exactly
the same problem as the original poster. But I solved it, and in
the process found a good technique to reverse-engineer the myriad of
undocumented preseed variables.
First the solution.
First (and I realise the original poster is aware of this, but saying
so again won't hurt) remember that keyboard-related variables must be
preseeded from the kernel command line, not from a preseed file (this
is because the keyboard must be successfully configured before the
network is configured and the network must be successfully configured
before any preseed file can be retrieved; search the very nice article
describing this at http://www.hps.com/~tpg/notebook/autoinstall.php
for "Preseeding Surprises").
Only a few of months ago, a squeeze Xen PV required only one preseed
variable to be set:
but *now* two are required and they're both different from this
previously used variable:
This fixed it for me.
Can I make a plea that when developers change the names of preseed
variables or introduce new ones, that they also make corresponding
*and immediate* changes to the example preseed files (e.g. the one
at http://www.debian.org/releases/squeeze/example-preseed.txt). It
would save a *lot* of struggle.
(Bugs where the documentation needs to be aligned with program
bahaviour are no less serious than bugs where program behaviour needs
to be aligned with documentation.)
Secondly, I thought it might help other people struggling with
this to know how I worked out the names of the relevant variables.
I'm preseeding a system with default values; e.g. en_US.UTF8 locale,
us territory, us mirrors, etc; there are *many* variables whose
values contain the string 'us'. This made it very hard for me to
isolate the variables that I was interested in.
In the case of this keyboard layout problem, I waited for the "Choose
keymap" interactive selection menu to appear, and then I manually
selected the obscurest keyboard layout I could, which was Ukrainian
(with apologies to Ukrainians). Unfortunately, that triggered a rather
unexpected follow-up question, so I went back (with some difficulty)
and selected Brazilian keyboard layout instead. Once the installation
completed (with this wrong, but deliberately selected keyboad
layout), I ran 'grep -rli br /var/log/installer' ('br' for 'Brazil'
or 'Brazilian' or whatever code keyboard layouts might be coded in)
which lead me to the file /var/log/installer/cdebconf/questions.dat,
which is a text file which contains the names of the preseed variables
and their values. Once there, I just search for 'br' and found the
name of the preseed variables that were set to this value. Yahoo! :)