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





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Напиши скрипт 05.01.04 11:31  Число просмотров: 2400
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
И если не установлен $DISPLAY, то делай setsysfont, а если установлен, то не делай :-))

Епты. Какой замуженный workaround :-)
<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: 0 s   Design: Vadim Derkach