информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsПортрет посетителяЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
 Умер Никлаус Вирт 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / operating systems
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Про /etc/sysconfig/i18n всё известно и понятно. 04.01.04 13:36  Число просмотров: 2578
Автор: fly4life <Александр Кузнецов> Статус: Elderman
<"чистая" ссылка>
> Там устанавливаются три переменные. Не помню точно какие
> (ищи где нить в манах или в вебе), но вроде SYSFONT (та,
> что тебе надо), SYSFONTACM (перекодировка из ядерной
> кодовой таблицы в экранную) и LANG - локаль.
> Для большего понимания лучше смотреть /sbin/setsysfont или
> /bin/unicode_start (если установлена utf-8 локаль)

С переменными ты не ошибся. Я знаю, что команда setsysfont включает в консоли системный шрифт, который задан в переменной SYSFONT файла /etc/sysconfig/i18n (получается аналог команды setfont /lib/kbd/consolefonts/Cyr_a8x16.psfu.gz, о которой писал ZaDNiCa). Но меня интересует, в каком скрипте загружаются эти фонты.

Правда, подумывал как более изощренным (и в лоб) способом решить проблему свою. Т.е. написать скрипт, который бы присваивал консолям tty$i системные шрифты и запихать этот скрипт отдельным скриптом в автозагрузку, либо вообще приписать в конец rc.local. Но как связать эти самые tty-ки и команду setsysfont я хз =(.
<operating systems>
[Linux] грабли с фрейм буфером 30.12.03 00:57  
Автор: fly4life <Александр Кузнецов> Статус: Elderman
<"чистая" ссылка>
Скомпилил ядро с поддержкой frame buffer'а. Выставил расширение для консоли 1024х768 и всё бы ничего, но есть один неприятный косяк =(.
Русские буквы нормально отображаются только в первой консоли (той, в которую выкидывает после загрузки и которая tty1). Во всех остальных вместо русских букв отображаются квадратики. Можно ли это исправить и если да, то как?
попробуй так 30.12.03 11:19  
Автор: ZaDNiCa <indeed ZaDNiCa> Статус: Elderman
Отредактировано 30.12.03 11:20  Количество правок: 1
<"чистая" ссылка>
читаем:
http://www.mgul.ac.ru/~t-alex/Linux/Cyrillic-HOWTO/Cyrillic-HOWTO-russian-3.html
делаем в консоли где нет русского
setfont /lib/kbd/consolefonts/Cyr_a8x16.psfu.gz
должно помочь
отлично =). И врправду, помогло. Спасибо =) 30.12.03 12:00  
Автор: fly4life <Александр Кузнецов> Статус: Elderman
<"чистая" ссылка>
Ндя... Проблема оказалась гораздо шире, чем я надеялся... 31.12.03 12:29  
Автор: fly4life <Александр Кузнецов> Статус: Elderman
<"чистая" ссылка>
Куда ж теперь прописывать всё это дело (описанное в хаутушке), чтобы шрифты во всех консолях восстанавливались при загрузке системы? Беглый осмотр загрузочных скриптов мне не дал ответа =(.

П.С. ASPLinux 9
/etc/sysconfig/i18n 04.01.04 09:01  
Автор: amirul <Serge> Статус: The Elderman
Отредактировано 04.01.04 09:02  Количество правок: 1
<"чистая" ссылка>
> Куда ж теперь прописывать всё это дело (описанное в
> хаутушке), чтобы шрифты во всех консолях восстанавливались
> при загрузке системы? Беглый осмотр загрузочных скриптов
> мне не дал ответа =(.
Там устанавливаются три переменные. Не помню точно какие (ищи где нить в манах или в вебе), но вроде SYSFONT (та, что тебе надо), SYSFONTACM (перекодировка из ядерной кодовой таблицы в экранную) и LANG - локаль.

Для большего понимания лучше смотреть /sbin/setsysfont или /bin/unicode_start (если установлена utf-8 локаль)
Про /etc/sysconfig/i18n всё известно и понятно. 04.01.04 13:36  
Автор: fly4life <Александр Кузнецов> Статус: Elderman
<"чистая" ссылка>
> Там устанавливаются три переменные. Не помню точно какие
> (ищи где нить в манах или в вебе), но вроде SYSFONT (та,
> что тебе надо), SYSFONTACM (перекодировка из ядерной
> кодовой таблицы в экранную) и LANG - локаль.
> Для большего понимания лучше смотреть /sbin/setsysfont или
> /bin/unicode_start (если установлена utf-8 локаль)

С переменными ты не ошибся. Я знаю, что команда setsysfont включает в консоли системный шрифт, который задан в переменной SYSFONT файла /etc/sysconfig/i18n (получается аналог команды setfont /lib/kbd/consolefonts/Cyr_a8x16.psfu.gz, о которой писал ZaDNiCa). Но меня интересует, в каком скрипте загружаются эти фонты.

Правда, подумывал как более изощренным (и в лоб) способом решить проблему свою. Т.е. написать скрипт, который бы присваивал консолям tty$i системные шрифты и запихать этот скрипт отдельным скриптом в автозагрузку, либо вообще приписать в конец rc.local. Но как связать эти самые tty-ки и команду setsysfont я хз =(.
/etc/rc.d/init.d/keytable вроде 04.01.04 19:02  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> С переменными ты не ошибся. Я знаю, что команда setsysfont
> включает в консоли системный шрифт, который задан в
> переменной SYSFONT файла /etc/sysconfig/i18n (получается
> аналог команды setfont
> /lib/kbd/consolefonts/Cyr_a8x16.psfu.gz, о которой писал
> ZaDNiCa). Но меня интересует, в каком скрипте загружаются
> эти фонты.
Сделай ntsysv из под root-а, чтобы посмотреть какие сервисы стартуют при загрузке. Называются /etc/rc.d/rcN.d/Sddservice_name, где N - в rcN.d - runlevel, в который переходит ядро (3 для текстового и 5 для X), S - означает, что данный сервис нужно стартовать при переходе в данный ранлевел (K - значит, что надо останавливать его при выходе из ранлевела), dd - две цифры, служат для упорядочивания старта/стопа сервисов, ну а с service_name думаю и так все понятно

> Правда, подумывал как более изощренным (и в лоб) способом
> решить проблему свою. Т.е. написать скрипт, который бы
> присваивал консолям tty$i системные шрифты и запихать этот
> скрипт отдельным скриптом в автозагрузку, либо вообще
> приписать в конец rc.local. Но как связать эти самые tty-ки
> и команду setsysfont я хз =(.
Вот тут меня и терзают смутные сомнения. Я то рассказывал совершенно бегиннерские вещи, а ты вроде и так это знаешь. Но все равно попробуй сделать

#service keytable start (или вроде того - читай ман по service :-))

И вообще посмотри, включен ли у тебя сервис keytable при помощи

#ntsysv
уже ближе =) 04.01.04 21:18  
Автор: fly4life <Александр Кузнецов> Статус: Elderman
Отредактировано 04.01.04 21:55  Количество правок: 2
<"чистая" ссылка>
Спасибо, конечно же, за разъяснения про сервисы, но я и это знаю =). Да и проблема в моём случае не в старте сервиса. Сервис keytable запущен (ведь, если бы он не был запущен, то шрифты не загрузилиь бы даже для консоли, в которую система загружается).

А в скрипте /etc/rc.d/init.d/keytable действительно прописана команда /sbin/setsysfont, но т.к. у меня ядро переходит в runlevel 3, то и грузятся системные шрифты туда, куда происходит загрузка (т.е. в tty1).
Как всё-таки в этом скрипте (или каком другом) заставить грузиться эти шрифты не только в tty1, но и вообще в tty$i?
Странно 05.01.04 00:04  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> А в скрипте /etc/rc.d/init.d/keytable действительно
> прописана команда /sbin/setsysfont, но т.к. у меня ядро
> переходит в runlevel 3, то и грузятся системные шрифты
> туда, куда происходит загрузка (т.е. в tty1).
У меня setsysfont переводит всю консоль (а не только виртуальные терминалы) в нужный режим (проставляет ему шрифты/таблицы перекодировки).

> Как всё-таки в этом скрипте (или каком другом) заставить
> грузиться эти шрифты не только в tty1, но и вообще в tty$i?
Если setsysfont переводит только один терминал, то самый тупой вариант добавить ее куда нить в .loginrc или что-то подобное. До логина все равно на экране вряд ли будет много кириллицы
если дургого способа нету, то этот, вроде, рабочий =) 05.01.04 01:09  
Автор: fly4life <Александр Кузнецов> Статус: Elderman
<"чистая" ссылка>
> Если setsysfont переводит только один терминал, то самый
> тупой вариант добавить ее куда нить в .loginrc или что-то
> подобное. До логина все равно на экране вряд ли будет много
> кириллицы

Если добавить в конец /etc/bashrc (просто у меня у всех пользователей в качестве рабочей оболочки стоит bash) строку /sbin/setsysfont, то при логоне обычным пользователем происходит ругань (Permission denied) и пользователь логинится, но шрифты не загружаются. Но а при логоне рутом - всё ок. Правда, при следующем логоне обычного пользователя (уже после логона рута и его выхода) в ту же консоль ругань, естесственно, остаётся, но и загруженные шрифты тоже остаются.

Зато, если дописать в конец всё того же /etc/bashrc вместо /sbin/setsysfont строку /bin/setfont /lib/kbd/consolefonts/Cyr_a8x16.psfu.gz, то даже под обычным пользователем загружается нужный шрифт и никакой ругани нету =). Во как.

Спасибо за идею =)
Можно suid-нуть setsysfont 05.01.04 11:29  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> пользователем происходит ругань (Permission denied) и
Или даже /etc/rc.d/init.d/keytable
Думаю то что непривилегированный пользователь сможет перезагружать системные шрифты (но не редактировать их) сильно большой дырой в безопасности не будет. И в bashrc прописать
. /etc/rc.d/init.d/keytable restart >/dev/null &2>/dev/null

> Зато, если дописать в конец всё того же /etc/bashrc вместо
> /sbin/setsysfont строку /bin/setfont
> /lib/kbd/consolefonts/Cyr_a8x16.psfu.gz
, то даже
> под обычным пользователем загружается нужный шрифт и
> никакой ругани нету =). Во как.

> Спасибо за идею =)
Странный у тебя все таки дистр :-)))
зато теперь в иксовых консолях идёт ругань (putfont: PIO_FONT: Invalid argument) =(( 05.01.04 02:28  
Автор: fly4life <Александр Кузнецов> Статус: Elderman
<"чистая" ссылка>
Напиши скрипт 05.01.04 11:31  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
И если не установлен $DISPLAY, то делай setsysfont, а если установлен, то не делай :-))

Епты. Какой замуженный workaround :-)
echo -ne "\033(K" > /dev/tty$n 04.01.04 14:44  
Автор: :-) <:-)> Статус: Elderman
<"чистая" ссылка>
А разве описанная в хаутушке сия "магическая последовательность" не работает?
for n in 1 2 3 4 5 6; do
	echo -ne "\033(K" > /dev/tty$n
done

---
В Slackware это прописывается обычно в /etc/rc.d/rc.font
echo -ne "\033(K" > /dev/tty$n. 04.01.04 15:56  
Автор: fly4life <Александр Кузнецов> Статус: Elderman
Отредактировано 04.01.04 16:09  Количество правок: 1
<"чистая" ссылка>
> А разве описанная в хаутушке сия "магическая
> последовательность" не работает?
>
> for n in 1 2 3 4 5 6; do
> 	echo -ne "\033(K" > /dev/tty$n
> done
> 

---

Нет, вот именно, что echo -ne "\033(K" не работает (я это способ попробовал самым первым, ещё до указания хаутушки), а setsysfont выручает, но в привидённом тобой примере не сработает.

П.С. ещё не пойму, почему, если не выставлять в консоли никакого режима vga (попросту не использовать FB), а просто оставить консоль поумолчанию 80х25, то с русскими шрифтами всё Ok? Что же меняет этот самый фрейм буфер?
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 1 s   Design: Vadim Derkach