#514253 utf8 default locale with serial console causes noninteractive boot

#514253#5
Date:
2009-02-05 17:35:15 UTC
From:
To:
With a default UTF-8 locale and the standard kernel command line for
remote serial consoles:

  root=/dev/md2 ro console=tty0 console=ttyS0,9600n8r

the boot will hang when /etc/init.d/console-screen.sh runs
unicode_start, which it tries to apply to the second console, the
serial port.

Even though manual invocation via the getty on ttyS0 causes an error
(separate bug about the syntax stuff forthcoming):

  bell:~# sh -x =unicode_start
  + '[' '!' -e /proc/self/fd/0 ']'
  + readlink /proc/self/fd/0
  + grep -q -e /dev/vc -e '/dev/tty[^p]' -e /dev/console
  + '[' 0 -eq 1 ']'
  + /usr/bin/vt-is-UTF8 --quiet
  vt-is-UTF8: vt-is-UTF8 only runs on linux virtual terminals
  Usage: vt-is-UTF8 [option]
  valid options are:
          -q  --quiet    don't print result
          -h --help      display this help text and exit
          -V --version   display version information and exit
  + kbd_mode -u
  + dumpkeys
  + loadkeys --unicode
  + case $# in
  + '[' -d /dev/vc ']'
  + DEVICE_PREFIX=/dev/tty
  ++ fgconsole --next-available
  Couldn't read VTNO: : Invalid argument
  + NUM=
  ++ expr - 1
  expr: syntax error
  + NUM=
  + '[' -eq 1 ']'
  /usr/bin/unicode_start: line 54: [: -eq: unary operator expected
  ++ seq 1
  + for vc in '`seq 1 ${NUM}`'
  + /bin/echo -n -e '\033%G'

the boot sequence hangs on invocation of unicode_start and can only
be resumed by

  - pressing ctrl-c in the serial terminal
  or
  - hitting enter or the physical keyboard attached.

I don't know of a proper fix to this but could test if you wanted me
to. If the serial console cannot be clearly identified, I should be
given a way to disable UTF-8 on consoles altogether, without having
to change my system locale.

#514253#10
Date:
2009-02-05 17:53:32 UTC
From:
To:
clone 514253 -1
retitle -1 unicode_start code duplicated between console-screen and keymap initscripts
reassign -1 console-common console-tools
severity -1 normal
reassign 514253 console-common
thanks

The problem is actually in S05keymap.sh, part of console-common, but
probably also in console-screen.sh. The problem is identical, it
seems.

#514253#19
Date:
2010-03-01 18:55:31 UTC
From:
To:
Hi,

as a "workaround" you could install the console-setup package (I tried
1.53, but older versions might work, too) which replaces the
functionality of /etc/init.d/keymap.sh from console-common and does no
longer cause the boot process to be interactive for serial console UTF-8
setups (previously requiring Ctrl-C to abort a blocking unicode_start).

Andreas

#514253#24
Date:
2013-08-26 03:39:40 UTC
From:
To:
Just to confirm this still happens with Debian 7.0:

root@proxmox6:~# apt-cache policy console-tools
console-tools:
  Installed: 1:0.2.3dbs-70
  Candidate: 1:0.2.3dbs-70
  Version table:
 *** 1:0.2.3dbs-70 0
        500 http://mirror.aarnet.edu.au/pub/debian/ wheezy/main amd64 Packages
        100 /var/lib/dpkg/status
     1:0.2.3dbs-69.1 0
        500 http://mirror.aarnet.edu.au/pub/debian/ squeeze/main amd64 Packages


As mentioned by Andreas installing console-setup works around
this issue:

console-setup:
  Installed: 1.88
  Candidate: 1.88
  Version table:
 *** 1.88 0
        500 http://mirror.aarnet.edu.au/pub/debian/ wheezy/main amd64 Packages
        100 /var/lib/dpkg/status
     1.68+squeeze2 0
        500 http://mirror.aarnet.edu.au/pub/debian/ squeeze/main amd64 Packages