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