Hi, Unfortunately, the problem still persists with the 2.4.26 kernel despite I apply the patch. Let me summarize the whole picture:
Below is the current setting in /etc/console-tools/config after the
'prebaseconfig' invocation:
SCREEN_FONT_MAP=iso09 # $acm
SCREEN_FONT=ter-916f # $consolefont
Symptom: Garbage glyphes are displayed for Turkish characters.
* First attempt towards a solution: Define APP_CHARSET_MAP.
SCREEN_FONT_MAP=iso09 # $acm
SCREEN_FONT=ter-916f # $consolefont
APP_CHARSET_MAP=iso09 # $acm
This fixes the Turkish console for only the kernel 2.6.x (though some
side-effects still exist i.e. some box drawing characters are not
properly displayed), kernel 2.4.x still remains unresolved.
* Second attempt: Define APP_CHARSET_MAP, _undefine_ SCREEN_FONT_MAP.
#SCREEN_FONT_MAP=iso09 # Just leave it untouched.
SCREEN_FONT=ter-916f # $consolefont
APP_CHARSET_MAP=iso09 # $acm
This fixes the console for both kernels (without any _side-effects_).
For the kernel 2.4.x, there is a strange interaction between
SCREEN_FONT_MAP and APP_CHARSET_MAP. I don't know why, but seeing the
facts that (1) there is no such problem in kernel 2.6.x and (2) 2.6.x
AFAIK has a new console API, it appears to me that kernel 2.4.x has some
bugs at least for the iso09 case. I suggest that the problem should be
tested for other encodings.
As my proposed solution, I've sent a new patch set. I don't want to
define a special 'consoletype' (like 'cyr' for cyrillic) in languagelist
just to handle the Turkish console, so I modified the code for the
consoletype 'kbd'. But of course you may want to insert a separate code
for Turkish under a special consoletype, i.e. something like 'trk'
defined by the following line in languagelist as follows:
Turkish;tr_TR;tr;TR;;trk=ter-916f(iso09)
Hope this bug is resolved before the next release.
Regards,
--
roktas
--- prebaseconfig 2004-04-13 10:57:45.000000000 +0300
+++ prebaseconfig.new 2004-05-23 08:07:19.000000000 +0300
@@ -20,15 +20,16 @@
acm=`echo $consolefont | sed -e 's/.*(//' -e 's/).*//'`
[ "$acm" = utf8 ] && acm=
if [ -n "$acm" ]; then
- sed -e "s/^#SCREEN_FONT_MAP=iso01/SCREEN_FONT_MAP=$acm/" \
- $ctconfig > $ctconfig.tmp && \
- mv $ctconfig.tmp $ctconfig
+ if [ "$acm" = "iso09" ]; then
+ # Special case for Turkish console.
+ echo "APP_CHARSET_MAP=iso09"
+ else
+ echo "SCREEN_FONT_MAP=$acm"
+ fi >> $ctconfig
fi
consolefont=`echo $consolefont | sed -e 's/(.*//'`
if [ -n "$consolefont" ]; then
- sed -e "s/^#SCREEN_FONT=iso01.f16/SCREEN_FONT=$consolefont/" \
- $ctconfig > $ctconfig.tmp && \
- mv $ctconfig.tmp $ctconfig
+ echo "SCREEN_FONT=$consolefont" >> $ctconfig
fi
fi
;;
--- prebaseconfig 2004-04-13 10:57:45.000000000 +0300
+++ prebaseconfig.new 2004-05-23 07:58:29.000000000 +0300
@@ -20,9 +20,12 @@
acm=`echo $consolefont | sed -e 's/.*(//' -e 's/).*//'`
[ "$acm" = utf8 ] && acm=
if [ -n "$acm" ]; then
- sed -e "s/^#SCREEN_FONT_MAP=iso01/SCREEN_FONT_MAP=$acm/" \
- $ctconfig > $ctconfig.tmp && \
- mv $ctconfig.tmp $ctconfig
+ if [ "$acm" = "iso09" ]; then
+ # Special case for Turkish console.
+ sed -e "s/^#APP_CHARSET_MAP=iso05/APP_CHARSET_MAP=$acm/"
+ else
+ sed -e "s/^#SCREEN_FONT_MAP=iso01/SCREEN_FONT_MAP=$acm/"
+ fi < $ctconfig > $ctconfig.tmp && mv $ctconfig.tmp $ctconfig
fi
consolefont=`echo $consolefont | sed -e 's/(.*//'`
if [ -n "$consolefont" ]; then
signature.asc
Description: Digital signature

