Интересно, что все файлы в каталоге /etc/sysconfig/ образуются на лету при загрузке системы, поэтому ничего вручную создавать не надо (автор поначалу порывался, пока не разобрался). Непосредственно к локализации имеет отношение файл /etc/sysconfig/i18n. Создается и наполняется он строками:
Если локаль не будет устанавливаться, то можно просто закомментировать все эти строки и вручную создать файл с необходимыми переменными, чтобы не морочить себе голову в дальнейшем. После строкой export LANG COUNTRY CHARSET экспортируются необходимые переменные. Далее чуть ниже нашлась строка, загружающая консольный шрифт и раскладку по умолчанию, данные о последней берутся в только что созданном файле /etc/sysconfig/keyboard (скопом посмотреть все значения, автоматически сгенерированные скриптом, можно в /etc/sysconfig/knoppix):
Могу сказать, ничего там по-настоящему не загружается, и все потому, что программа просто не знает, где все это искать. Поэтому вместо последней строчки пришлось вписать такую:
Именно так, указывая полный путь к файлам, иначе утилита ничегошеньки не найдет. Конечно, смотрится не очень элегантно, но зато работает. Как говорится, дешево и сердито. После всех этих манипуляций можно спокойно работать в консоли с кириллицей. Кстати, в этом же файле есть строчка, устанавливающая оконный менеджер по умолчанию это почему-то KDE, которого нет и в помине (о бардаке в дистрибутивах я уже толковал).
Но прежде чем заняться доводкой X-Window, заглянем в еще один файл, не последний по значимости на этом празднике жизни /etc/profile. Здесь, конечно, есть чем поживиться. Кроме экспорта переменной PATH (как и положено), второй раз экспортируется LANG, взятая на этот раз из /etc/sysconfig/i18n (наверное, чтобы уж наверняка). Причем строкой [ -n "$LANG" ] || LANG="de_DE@euro" по умолчанию устанавливается на сей раз немецкая локаль (исправляем на нужную). Строкой ниже, если переменная $SYSFONTACM имеет нулевое значение, для всех терминалов экспортируется карта соответствия. Я просто убрал проверку и оставил только:
Можно было, конечно, напечатать более понятный код (как в статье о Source Mage), но лень, понимаете, убрать лишнее намного проще.
И традиционно в данный файл добавляю средство от дампов:
В этом же файле при желании можно изменить вид приглашения в bash (переменная PS1) и alias'ов для задания сокращенного ввода команд.
Все. С консолью покончили, переходим к X-Window. Для начала заглянем в начало начал скрипт /usr/X11R6/bin/startx. Где находим следующее:
Работой X-Window в Linux руководит один файл (в нашем случае) /etc/X11/XF86Config. О его опциях я уже писал на страницах журнала, остановлюсь только на возможности работы с русским текстом.
Следующая секция отвечает за настройку клавиатуры:
Последняя строка требует некоторых пояснений, так по данному вопросу приходит много писем. Все правила, необходимые для описания загружаемой клавиатурной раскладки, находятся в каталоге /usr/X11R6/lib/X11/xkb/symbols/ или в другом месте, но тогда в здесь обязательно будет ссылка. Так вот, XkbLayout указывает на название файла в этом каталоге. Для украинской раскладки выбираем значение ua, для тройной английско-украинско-русской ru_UA. Последнего, кстати, в Damn Small Linux нет, пришлось взять из дистрибутива ASPLinux, где, по-моему, впервые появилась безошибочная реализация этой раскладки. Но есть и другие файлы ge_ru, ru_yawerty, предназначенные, скорее, для гурманов. А XkbVariant (можно записать просто XkbLayout "ru(winkeys)"), указывает на подраздел (блок) этого файла. По умолчанию используется злополучный блок basic, это он виноват в том, что новички ругают Linux чуть ли не в каждой конференции за неправильную раскладку. Подключив winkeys, можно избежать подобных неудобств; опять же, если заглянуть внутрь, можно встретить еще typewriter и phonetic. И конечно же, никто не мешает создать свой файл, где воплотить свое видение данного вопроса. Следующая секция XF86Config описывает мышь:
Из остальных опций обязательно в строках HorizSync и VertRefresh укажите реальные частоты вашего монитора, тогда есть вероятность, что частота развертки будет выставлена оптимально, наконец, если есть уже установленный Linux, можно просто передрать оттуда строки Modeline, в которых указывается нужная частота. При отсутствии же Linux'a можно зайти по адресу http://www.dkfz-heidelberg.de/spec/linux/modeline/, где, заполнив web-форму, можно получить указанную строку. Немного небезопасен вариант установки минимальной частоты кадровой развертки в качестве значения нижней границы VertRefresh, равной требуемой частоте (например, 85120) тогда X-Window просто физически не сможет выставить ее меньше (так она воспитана).
И последний этап установка шрифтов. Если посмотреть в файлы XftConfig и XF86Config (в большинстве дистрибутивов их прописывают в одном файле /etc/X11/fs/config), то в них можно найти пути к каталогам со шрифтами, но вот шрифтов там с гулькин нос. Поэтому забираем шрифты с указанных выше сайтов, кладем в выбранные каталоги, заходим и даем команду # mkfontdir (для TrueType-шрифтов предварительно нужно дать команду #ttmkfdir > font.scale). Только желательно чтобы каталоги с кириллическими шрифтами были записаны первыми. После перезагрузки иксов можно будет работать с кириллицей в X-Window.
На этом основные настройки можно считать законченными. Остальные действия зависят только от вашей фантазии, наличия свободного времени и желания покопаться в настройках. Так, можно настроить fluxbox по своему вкусу (тема, каковых в комплекте предостаточно, фоновый рисунок, пункты меню), или вообще сменить его на другой оконный менеджер, добавить скины и плагины к XMMS, прописать необходимые параметры для настройки сети, в том числе и модемного соединения. При необходимости можно создать нового пользователя и задать пароли. Я уже не говорю об установке любимых приложений. Простор для творчества большой. Мы же данный этап заканчиваем переходим к следующему.
Все предыдущие действия, как вы помните, мы выполняли в окружении chroot с файлами, расположенными на жестком диске. Теперь наша задача загнать это все обратно, откуда взяли, т.е. на CD-ROM. Создаем где-нибудь на разделе с файловой системой Linux (чтобы права и имена сохранить) каталог. И переносим туда все файлы с CD-ROM, за исключением файла со сжатым образом KNOPPIX/KNOPPIX. При желании можно изменить заставку, появляющуюся при загрузке системы, я думаю, это будет вполне справедливо, т.к. после всех выполненных действий это уже далеко не Dawn Small. Для загрузки используется syslinux (http://syslinux.zutor.com), хотя в последнее время мне чаще попадались дистрибутивы, основанные на isolinux. Все настройки при этом хранятся в файле boot.img; чтобы их изменить, необходимо смонтировать его в какой-то временный каталог. Например:
Теперь заходим в каталог, куда смонтирован образ. Внутри обнаруживаем несколько файлов (см. Рис. 1). В файле boot.msg содержится приветственное сообщение на русское менять не советую, шрифты ведь все рано не будут к тому времени загружены, но себя похвалить можно (нужно) :-). Чтобы изменить параметры, передаваемые ядру при загрузке, необходимо покопаться в файле syslinux.cfg здесь, чтобы немного увеличить размер надписей при загрузке, я установил значение параметра VGA=788 (или normal), что соответствует разрешению 800600, а по умолчанию VGA=791. В файле f2 содержится help, выводимый по F1. Здесь же лежит ядро vmlinuz, с которого и загружается вся система, при желании его можно поменять на свое может, получится запустить. И наконец, картинка, отображаемая при загрузке, спрятана в файле logo.16. Чтобы ее заменить, необходимо взять 16-цветный рисунок размером 640х400 в формате .png. Далее выполняем следующие команды:
Теперь, когда все готово, осталось сжать каталог, в который мы вносили все изменения, и положить его на свое законное место, которое пока пустует.
И наконец, создаем iso-образ:
В итоге мы получили работоспособную и, главное, локализованную систему, автоматически подстраивающуюся под имеющееся оборудование (ну, почти), полностью настроенную по нашему вкусу, которую можно использовать как рабочую или демонстрационную. И после этого можно всегда с собой носить в кармане свой маленький Linux. К сожалению, в комплекте с Damn Small нет скрипта knx-hdinstall, с помощью которого можно буквально за пару шагов впоследствии установить эту ОС на жесткий диск, но ведь главное сделать первый шаг. Правда?