Помогите, пожалуйста, русифицировать консоль NetBSD..
Я понимаю, что подобных просьб здесь очень много, но всё-таки. Сабж.
Хочу рассказать свою историю..
Задумал я русифицировать консоль своей NetBSD 3.1. После продолжительных поисков в сети были найдены всего лишь две нормальные статьи, заслуживающие внимания, как это сделать: Русификация консоли NetBSD от А до Я и, собственно,
Русификация консоли NetBSD 3.0. Т.к. вторая статья является улучшенной и переработанной версией первой, то именно её я и взял как инструкцию для своих действий.
Что я сделал:
1) Скопировал русские терминальные шрифты, находящиеся по адресу http://runetbsd.ru/files/fonts.tar.gz к себе в систему в директорию /usr/share/wscons/fonts:
bash-3.2$ ls -l /usr/share/wscons/fonts | grep koi8 -rw-r----- 1 root wheel 2048 Oct 31 12:46 koi8.808 -rw-r----- 1 root wheel 3584 Oct 31 12:46 koi8.814 -rw-r----- 1 root wheel 4096 Oct 31 12:46 koi8.816
2) Добавил новые переменные окружения LC_CTYPE и LANG. Для этого я поправил файл /etc/profile:
bash-3.2$ cat /etc/profile | grep ru_RU.KOI8-R export LC_CTYPE=ru_RU.KOI8-R export LANG=ru_RU.KOI8-R
3) Далее выполнил несколько команд, как и описано в Русификация консоли NetBSD 3.0:
bash-3.2# wsfontload -N russian /usr/share/wscons/fonts/koi8.816 bash-3.2# wsconsctl -f /dev/ttyE1 -dw font=russian font -> "russian"
После этих нескольких шагов я уже смог в консоли пользоваться полноценной кириллицей, доступной при нажатии правого или левого Alt. Причём, если при нажатой левой клавише Alt набрать латинские qwerty, то получится ЯВЕРТЫ, а при нажатой правой - йцукен.
Вот, собственно, вопросы к All:
1) Сразу после этой небольшой победы, возник вопрос сохранения конфигурации, дабы кириллица оставалась доступной и после перезагрузки компьютера.
Очень странно, но решить эту проблему так, как описано в инструкции, у меня почему-то не получилось.
А именно, у меня не сохранялась кириллица после перезагрузки после добавления следующих строк в /etc/wscons.conf:
font koi8 - - - /usr/share/wscons/fonts/koi8.816 mapfile /usr/share/wscons/keymaps/pckbd.ru.koi8-r
Не может ли сказать многоуважаемый All, почему так происходит?
2) Хотелось бы переключать раскладку в консоли с помощью Alt+Shift, ну, или хотя бы, Caps Lock. Настройка переключения раскладки клавиатуры с помощью последнего описана в инструкции
Русификация консоли NetBSD 3.0, но по странному стечению обстоятельств ничего не работает. Никакие изменения исходных текстов системы с последующей перекомпиляцией не помогают. А может я делаю что-то не так?
Если нужна какая-то дополнительная информация - спрашивайте, с удовольствием предоставлю.
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
- 2560 просмотра
Эх, а у меня так
Эх, а у меня так и не получилось её русифицировать, ибо шрифты "бились". :(
Но люди ведь
Но люди ведь как-то это делают? :)
Вы
Вы перекомпилировали ядро с учётом правки некоторых строк как написано в инструкции?
Это во-первых.
<[ибо шрифты "бились". :(]> В консоли? У меня тоже бьются. Под иксами нормально. Это баг. Баг ДНК разрабов NetBSD-team. Стоит отметить, что он сидит в коде которому хуева туча лет и исправлять они его не собираются (в общем-то они вообще на багрепорты не овтечают, так что можно и не писать). Короче, non e` colpa sua.
это отрывок из /etc/wscons.conf
Согласно этому файлу, /etc/wscons.conf сиречь, кодировка ru есть в ядре, а, значит копировтаь mapfile не надо. Реально же в ветках до 3.0 эта кодировка была, но в 3.0 её выкинули из ядра, но в конфигах оставили (!). (Да, это не косяк с точки зрения NetBSD-team, это толкьо в OpenBSD ошибка или неточность даже в доке считается официальным багом). Из-за того что она в конфигах есть, а реально её нет, требовалось выполнить ряд шагов в 3.0, которых не нужно было выполнять ранее.... Это ещё не всё. Насколько я слышал, в 3.1 раскладку ru опять добавили в ядро... Отсюда делается вывод, что вполне вероятно тупое следование шагам в 3.0 может ничего не дать и это будет неудеивительно. Пока никто ещё не написал руководство под 3.1 и не заявил что он это проделал и у него работает.
Ещё раз оговариваюсь, что алгоритм в статье "Русификация консоли NetBSD 3.0" псиал не я, а чел который мог собрать из известных кусочков правильный алгоритм русификации... У меня на это банально недостаточно опыта, я не настолько глубоко знаю UNIX. Я опсиал лишь те шаги которые мне сказали выполнить и всё.
В идеале нужно написать Кристосу Зулосу (все знают его?) и сказать что "Бля, а не желает ли Его Величество написать русификацию ибо оборзели давно уже". Писать доку к своим же програмам - удел разрабов а не пользователей, коих вышеназванное мудачьё отправляет "читать сорс до просвещения". В частности, таковой подход, отношение разрабов к ользователям приводит к тому что многие не хотят даже браться за изучение UNIX.
Я сам сижу на 3.0 пока и помочь ничем не могу при всём желании :(
Неочевидно что буду себе ставить 3.1. Возможно, просто свалю на OpenBSD и всё.
............. >Возможн
.............
>Возможно, просто свалю на OpenBSD и всё.
Там тоже не все так пушисто и тепло(. После руссификации на МС смотреть без слез нельзя! Ломается цветовая схеиа. ... уж лучше без рашин но с нормальным МС. А вот в стрекозе ... такое ощущение, будто писали ее в ... Москве! Рашин лучше, чем инглиш! ). Шрифт в консоли как в Х-ах! )
spinore
Да, конечно.
Да и вообще, похоже я нашёл решение своей проблемы.
После очередной попытки перекомпиляции ядра с изменениями в исходных текстах системы, дабы раскладка в консоли могла переключаться по Caps Lock, я раскомментировал в /etc/wscons.conf строки (которые, к несчатью, раньше были закоментированы - похоже, что это и было моей ошибкой):
И смог получить переключение раскладки клавиатуры в консоли по клавише Caps Lock!
Но! Вышеперечисленные строки в файле /etc/wscons.conf ни коим разом не сохраняют кириллицу в консоли после перезагрузки, как описано в руководстве выше!
Я решил эту проблему добавлением в /etc/rc.local следующего:
И я считаю, что это просто необходимо добавить в руководство. Если кто поддержит - могу добавить.
Вот ещё что.
Попробовал закомментировать следующую строку в /etc/wscons.conf:
Ничего не изменилось.. Имхается, что она лишняя и может быть закомментирована..
Похоже, что я всё-таки могу точно сказать, что описанное в руководстве Русификация консоли NetBSD 3.0 всё-таки работает под NetBSD 3.1. Правда, без танца с бубном вокруг компьютера как всегда не обошлось.
Кроме того,
Кроме того, кто-то с этого сайта вроде как создавал автоматический обруситель консоли. Я очень давно тут не околачивался и совсем забыл. Поюзай поиск
Цитата:Я решил
Кажется, я где-то писал эти строки...
разве их нет в полной доке?
Понимаете в чём дело, это всё логично как раз.
Вышенаписанныя команда wsfontload присваивает шрифту метку-имя,
а wsconsctl ставит шрифт по его метке на указнную в опциях консоль.
Вы можете руками повыполнять эти команды и убедиться...
Добавление этих команд в /etc/rc.local означает что они будут выполняться каждый раз после перезагрузки системы (но их можно было бы выполнять и руками :)). Я не помню как должно быть точно, но у меня rc.local пустой.
Вся эта бодяга происходит следующим образом:
Есть скрипт /etc/rc.d/wscons - он и выполняется при инициализации консоли. теоретически вы могли бы его изучить и добавить ваши строки в него сразу, но через rc.local это более правильно чем лезть в системный страртап.
В частности, читая /etc/rc.d/wscons вы можете увидеть как он парсит конфиг /etc/wscons.conf, читает из него опции, и выполняет те самые команды что вы написали в rc.local !!! Я не могу не отметить крайний идиотизм авторов этого запутанного скрипта, который вместо 10 строчек занимает пару разворотов экрана из-за стремления авторов к слишком абстрактному интерфейсу... который там нихрена не нужен в принципе...
Я разбирался с тем скриптом как раз потому что хотел его доработать с тем условием, чтобы он парсил модфиицированный для установления новых опций конфиг
wscons.conf, где я бы прописывал на какую консоль какой шрифт ставить (а не на все один как по умолчанию). (да, есть такой красивый шрифт flori но там нет русских... = хотел его кое-где поставить на консоли)...
ну что, в итоге из-за косяка с тем что шрифт в консоли бьётся (слава ослам из NetBSD-team!) реализованная возможность оказалась невостребованной :( ибо при такой конфигурации запуска шрифты бились вообще всегда и мусор под ковёр замести не получилось :(
Кстати, это вполне логично: 3.1 есть практически чисто баг-фикс-релиз..., то есть концептуальных отличий нет. Я, вот использую для 3.0 пакеты от 3.1 и пока никаикх косяков с этим связанных, не было.
spinore
Нет. В ней не сказано, что для сохранения шрифтов в консоли необходимо вышеприведённые строки добавить в /etc/rc.local. А строка
В файле /etc/wscons.conf сама по себе только заменяет команду
Которая добавляет определённый шрифт. Но для сохранения шрифта после перезагрузки ещё необходимо добавить этот свежедобавленный шрифт на определённую виртуальную консоль! Т.е. сделать:
Я просто хочу донести до Вас, что описанное в статье:
Не работает.
А для действительного сохранения определённого шрифта в консоли после перезагрузки необходима правка start-up скриптов, то /etc/rc.local или /etc/rc.d/wscons, а файла /etc/wscons.conf здесь явно не достаточно.
Цитата:Не
Возможно, это всё проблемы в 3.1...
Поидее действие wsconsctl должен делать скрипт /etc/rc.d/wscons, правда.. делает ли онего на самом деле сказать не могу :) нужно долго рыться вэтом дерьме. Можете сами поискать все команды содержащие $wsctl и попытаться раскрутить через запутанные переименования какая реально команда wsconsctl выполняется...
Я за приемлемое время сходу сказать не могу, силь уж запутанный скрипт. На вашем месте я бы добавил те строки в rc.local и забыл...
P.S.: попытаюсь отредактировтаь вики.
Scr1pt, я поправил
Scr1pt, я поправил руководство.
Ещё замечания по существу есть к нему?
spinore
Т.е. сам скрипт /etc/rc.d/wscons, увидев в своём конфигурационном файле что-то вроде такого:
Должен не только вызвать wsfontload, добавив определённый шрифт и обозвав его, но ещё и wsconsctl, "поставив" этот шрифт на все виртуальные консоли?
Не знаю, как у Вас в NetBSD 3.0, но у меня в NetBSD 3.1 такого не происходит.
Эээ.. Так не пойдёт! :) Просто хочется докопаться до истины. И создать нормальное руководство, следуя пунктам которого можно будет прийти к желаемому результату, а не думать - какие ещё ненужные строки необходимо добавить в конфигурационные файлы.
Спасибо.
Я Вас уже замучал, но всё же:
В NetBSD 3.1, будем так говорить, если есть пункт E, то пункт A не нужен. И его можно удалить из этого списка.
Да и вообще, лучше сделать так, раз пошли такие проблемы. В пункте A указать, что он необходим для NetBSD 3.0, но, в свою очередь, не нужен для NetBSD 3.1. А в пункте E наоборот.
Цитата:Т.е. сам
Не совсем, за то на какие консоли ставить шрифт отвечают строчки типа
screen 1 - vt100Последние парсятся м подаются как аргументы на wsconctl, а первые - на wsfontload.
Это истина?! Если хотеть истины то удаляйте нахер всё что есть в /etc/rc.d/wscons и пишите туда что-то типа
И рискните перезагрузиться. Поидее должно всё получиться, хотя сам не пробовал (если что я за последствия не отвечаю, просто самому лом перезагружаться...)
ну и... оцените сколько строчек кода в файле /etc/rc.d/wscons было изначально и сколько стало, при той же функциональности :-)
Подсказываю: было 180, стало - 8, отличе почти в 20 раз. А теперь представьте, что ВЕСЬ код пишется в таком стиле... Страшно, да?
В общем, не льстите NetBSD, это на ссамом деле параша с опарышами как и масса другого софта.
Ну да, да, самым назойливым ещё советую доработать чуть этот скриптик чтобы он читал параметры с /etc/wscons.conf :-) Чтобы всё совсем медово было. Пусть в итоге получится 20-30 строк, но внятных, но никак не 180.
Указал.
spinore
Строчки с описанием виртуальных консолей у меня в NetBSD 3.1 не добавляют на эти консоли вышеописанные шрифты.
И ещё: у меня в NetBSD 3.1 в файле /etc/rc.d/wscons 170 строк, а не 180.
Да и вообще:
Дата (13 августа 2004 года), кажется, не совпадает с релизом NetBSD 3.1. Тогда, может, разработчики изменили содержимое файла, забыв изменить дату последнего редактирования?
А у Вас? Хотелось бы узнать, как этот скрипт изменялся от версии NetBSD 3.0 к 3.1.
Очень сомневаюсь, что полноценный парсинг конфигурационного файла /etc/wscons.conf можно уместить всего в 20-30 строк кода.
Цитата:Строчки
По кр. мере так предполагалось, видимо, разработчиками.
Насколько я знаю, в файлах пишется дата последнего исправления самого файла ане релиза ОС. Аналогично и в манах. Релиз 3.1 был багфикс-релизом по отношению к 3.0 версии, поэтому вполне логично что файл целиком и полностью тот же как и в 3.0 (хотя не поручусь).
У меня не осталось оригинальной версии.... по крайней мере я не уверен. Текущий вариант - мной отредактированный с учётом парсинга допвозможностей с /etc/wscons.conf файл, но, впоследствии, с закоменченными новыми строками доповзомжностей из-за того что шрифты при таких вариантах бьются...