Summary: | Не отображается кириллица в текстовом режиме | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Антон Мидюков <midyukov-anton> | ||||
Component: | systemd | Assignee: | Alexey Shabalin <shaba> | ||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||
Severity: | critical | ||||||
Priority: | P3 | CC: | aen, antohami, arseny, daianovich, evg, icesik, legion, master, mike, rider, ruslandh, sem, shaba, zerg | ||||
Version: | unstable | ||||||
Hardware: | all | ||||||
OS: | Linux | ||||||
Bug Depends on: | 37053 | ||||||
Bug Blocks: | 32513 | ||||||
Attachments: |
|
Description
Антон Мидюков
2013-04-07 16:32:58 MSK
Я знаю о проблеме. Только пожалуйста не надо собирать такой пакет в сизиф. Постараюсь решить проблему в рамках пакета systemd. (В ответ на комментарий №1) > Я знаю о проблеме. Только пожалуйста не надо собирать такой пакет в сизиф. +1 > Постараюсь решить проблему в рамках пакета systemd. Спасибо, мы подождем. BTW сломалось в 198, используется в регулярных сборках. в сизиф отправлен systemd-200-alt3, просьба проверять с ним. (и с новым plymouth). (В ответ на комментарий №4) > в сизиф отправлен systemd-200-alt3, просьба проверять с ним. (и с новым > plymouth). Обновился до systemd-201, пакет workaround-cyrillic-console-1.0-4 удалил, перезагрузился. Кириллица в текстовых консолях отображается нормально. Спасибо за работу. закрываю, раз проблем нет. После отката plymouth вернулось: http://nightly.altlinux.org/p8/BUGS: images with systemd+plymouth: broken console fonts (In reply to comment #7) > После отката plymouth вернулось: http://nightly.altlinux.org/p8/BUGS: > > images with systemd+plymouth: broken console fonts Обновился. plymouth-0.8.8-alt6.git.37d2e4 и systemd. С кириллицей проблем по-прежнему нет. У меня Gnome 3. GDM на 1 консоли. Завтра посмотрю на стартеркиты. Подробное описание проблем и способов их решения: https://wiki.archlinux.org/index.php/Fonts_%28Русский%29#.D0.A8.D1.80.D0.B8.D1.84.D1.82_.D0.B2_.D0.BA.D0.BE.D0.BD.D1.81.D0.BE.D0.BB.D0.B8 У меня сейчас воспроизводится на ноуте с i915. Похоже, эта та самая проблема с фреймбуфером, описанная на вики арча. Ручной запуск /usr/lib/systemd/systemd-vconsole-setup проблему исправляет. Надо только понять как это сделать из коробки при загрузке, причем так, чтобы ничего не сломало. Понял, почему у меня не воспроизводится. У меня splash в grub убран, в результате frambuffer инициализируется в самом начале и ничего не сбрасывает. Также обнаружил, что если нажать escape в самом начале появления splash, то происходит инициализация framebuffer (видно как разрешение экрана меняется). И шрифты нормально после загрузки отображаются. Вопрос почему плимут не в самом начале framebuffer активирует, а в самом конце? Это сделано, чтоб не было заметно переключение разрешения экрана? Не знал, про этот баг, на всякий cлучай: http://packages.altlinux.org/en/Sisyphus/srpms/systemd-udev-console-fb https://lists.freedesktop.org/archives/systemd-devel/2014-June/020272.html Если все правильно помню, сейчас в нашем systemd нет никаких специальных трюков для обхода этой проблемы. Эта часть как у апстрима. Надо заново изобретать решение. Ещё поясню, почему были убраны эти трюки. Опять же если все правильно помню. В новом make-initrd(который не пускают в Сизиф :) реализована загрузка шрифтов. Поэтому я предположил, что в systemd эти обходные маневры больше не нужны. То, что этот новый make-initrd не попадёт в p8, я не знал. Ps: А жаль, с новым make-initrd есть довольно простой путь systemd втянуть в initrd. Pps: если не ошибаюсь в suse и fedora таким путём и решали - добавили функционал загрузки шрифтов в dracut. На сколько, я помню. Эта проблема связана с обнулением настроек шрифтов при активации видеодрайвера. Поэтому одним из первых решений было помещать видеодрайвер в initrd. Таким образом, устранялась вообще причина проблемы. Вторым вариантом было использование всяких костылей, которые то работали, то не работали. Как я писал выше, если splash убрать, то графика инициализируется сразу, а не в конце и проблема исчезает. А вообще, зачем сбрасывать настройки шрифтов на дефолтные из ядра при инциализации графики. Может правильнее было, вообще от этой фичи отказаться? (In reply to comment #14) > Ещё поясню, почему были убраны эти трюки. Опять же если все правильно помню. > В новом make-initrd(который не пускают в Сизиф :) реализована загрузка шрифтов. > Поэтому я предположил, что в systemd эти обходные маневры больше не нужны. > То, что этот новый make-initrd не попадёт в p8, я не знал. > > Ps: А жаль, с новым make-initrd есть довольно простой путь systemd втянуть в > initrd. > Pps: если не ошибаюсь в suse и fedora таким путём и решали - добавили > функционал загрузки шрифтов в dracut. А никак эту фичу в старый бэкпортировать нельзя? Или тоже не пропустят? "А вообще, зачем сбрасывать настройки шрифтов на дефолтные из ядра при инциализации графики. Может правильнее было, вообще от этой фичи отказаться?" Как я понял, вопрос не в графике, а в инициализации фреймбуфера. Там, где используется nouveau, проблем нет, я думаю, это возможно связано или с использованием KMS, или с предварительной загрузкой его ядерной части. Я вот тут читаю: https://wiki.archlinux.org/index.php/Kernel_mode_setting_%28Русский%29 может реализация раннего запуска KMS (как я понял из initrd), решит эту проблему? (In reply to comment #16) > Как я понял, вопрос не в графике, а в инициализации фреймбуфера. Там, где > используется nouveau, проблем нет, я думаю, это возможно связано или с > использованием KMS, или с предварительной загрузкой его ядерной части. > > Я вот тут читаю: > https://wiki.archlinux.org/index.php/Kernel_mode_setting_%28Русский%29 > > может реализация раннего запуска KMS (как я понял из initrd), решит эту > проблему? Это я и имел в виду, когда говорил выше про добавление модуля ядра видеодрайвера в initrd. На сколько я понимаю и помню, этот трюк как раз таки с проприетарными драйверами не работает. Не знаю, как на проприетарной нвидиа, а на свободных AMD и Intel отключение сплэша проблему решает. Nvidia и fglrx тоже можно на уровне initrd загружать, только мне такое решение для видеокарт с свободными и коммерческими драйверами совсем не нравится - затрудняется переход с свободного драйвера на закрытый и обратный. Например, сли модуль ядра не загружается на уровне initrd, я вполне могу на на одних ядрах использовать nvidia, а на других nouveau. Хотя, если заранее генерить для разных ядер, initrd с разным составом модулей, то наверное меня и такой вариант вполне устроит. (In reply to comment #18) > Nvidia и fglrx тоже можно на уровне initrd загружать, только мне такое решение > для видеокарт с свободными и коммерческими драйверами совсем не нравится - > затрудняется переход с свободного драйвера на закрытый и обратный. Я думаю, что это главная причина, почему это никто не делает, наверное есть и другие подводные камни. Мне вот всё же интересно, почему с отключенным спэш инициализация kms происходит раньше. Может в плимуте это можно настроить? Только наверное при этом картинка сплэша будет не весь экран занимать, так как разрешение станет больше, и мерцание экрана в момент переключения будет происходить. В погоне за красивостью воскресили старую проблему, однако ;) IMHO тут есть только два решения - включить фреймбуфер в initrd и больше его не "дёргать", или загружать шрифты при последнем включении фреймбуфера. Было-бы идеально, что-бы фреймбуфер не выключался в процессе запуска компа, с последующим включением вновь. Мой пакет подгружает в соответствии с локалью, указанной в /etc/sysconfig/i18n при каждом включении фреймбуфера. Если-бы был признак, что загружать фонты ещё рано, было-бы ещё лучше. (В ответ на комментарий №14) > Ещё поясню, почему были убраны эти трюки. Опять же если все правильно помню. > В новом make-initrd(который не пускают в Сизиф :) реализована загрузка шрифтов. Тем временем, в Сизифе появился make-initrd2 . Поможет? (В ответ на комментарий №21) > Тем временем, в Сизифе появился make-initrd2 . Поможет? О! это уже интереснее. Но совсем другая история :) если бы он появился год назад, как и предлагал legion@, то к настоящему времени уже можно было бы отладить. А сейчас надо определиться что будет в p8 по-умолчанию. PS: в сизифе я буду тестировать systemd, plumouth и остальное с make-initrd2. (В ответ на комментарий №22) > (В ответ на комментарий №21) > > Тем временем, в Сизифе появился make-initrd2 . Поможет? > О! это уже интереснее. Но совсем другая история :) если бы он появился год > назад, как и предлагал legion@, то к настоящему времени уже можно было бы > отладить. > А сейчас надо определиться что будет в p8 по-умолчанию. Если для отладки нужен год, то ответ очевиден. Хотя, конечно, очень хотелось бы иметь выбор. У нас есть примерно месяц до выхода десктопных дистрибутивов. > > > PS: в сизифе я буду тестировать systemd, plumouth и остальное с make-initrd2. Спасибо. Тем не менее эту нашу багу хорошо бы решить в p8, пусть даже костылем. Мне эта кириллица в консоли даром не нужна, но вот многие юзеры не поймут. А если фонты не правилами udev загружать, и не в initrd, а тогда, когда они собственно понадобятся - как отдельный сервис, привязанный к getty@ ? Или их загрузка что-то ломает? (In reply to comment #22) > PS: в сизифе я буду тестировать systemd, plumouth и остальное с make-initrd2. Я сделал: http://git.altlinux.org/gears/m/make-initrd2.git?p=make-initrd2.git;a=tree;f=features/kbd Плюс если вдруг выяснится, что такая реализация не подходит, то можно её переделать на более компактную т.к. в kbd есть поддержка busybox и её теперь можно задействовать. (В ответ на комментарий №12) > systemd-udev-console-fb Проверено на сегодняшней регулярке в virtualbox (где тоже воспроизводится), затычка помогает. (В ответ на комментарий №14) > Ещё поясню, почему были убраны эти трюки. Может, пока втрюкнуть обратно? Работы по make-initrd опять ожили: http://webery.altlinux.org/taskpkgs/sisyphus/done/164152 ...но это в любом случае ещё какое-то время. (а "не пускали" из-за какой-то регрессии, вспомнить или найти переписку по которой где-то в конце прошлого года у меня не получилось; только помню, что она была характера "неприятно, но и не смертельно", но всё-таки скорее неприемлемая для человека со скрупулёзностью legion@; думали добить, но как-то так и не добили тогда, всем не до того стало после совершённого набега) Случайно обнаружил такой "обходной" манёвр. В /lib/systemd/system/getty@.service заменил ExecStart=-/sbin/agetty --noclear %I $TERM На вызов скрипта ExecStart=-/sbin/StartAgetty %I $TERM cat /sbin/StartAgetty setsysfont & /sbin/agetty --noclear $1 $2 & Вроде лечит указанную проблему. Я установил Альт Рабочая станция 8.1. В консоли не показывается кириллица. Это ни для кого не новость? (В ответ на комментарий №28) > Я установил Альт Рабочая станция 8.1. В консоли не показывается кириллица. > Это ни для кого не новость? Для меня новость -- умудрился проморгать; спасибо. Пока можно поставить подпорку из comment 12: пакет systemd-udev-console-fb (In reply to comment #29) > Пока можно поставить подпорку из comment 12: пакет systemd-udev-console-fb Увы, "подпорка" уже стоит, но не работает. Я её пробовал снести, установить и перезагрузиться - всё равно не помогло :-( Совсем уже не подпорка, а просто приём - дайте в проблемной консоле команду от root setsysfont (In reply to comment #30) > (In reply to comment #29) > > Пока можно поставить подпорку из comment 12: пакет systemd-udev-console-fb > > Увы, "подпорка" уже стоит, но не работает. Я её пробовал снести, установить и > перезагрузиться - всё равно не помогло :-( Отключите splash, должно помочь. (В ответ на комментарий №32) > Отключите splash, должно помочь. Прямо сейчас проверил и подтверждаю: в /boot/grub/grub.cfg аккуратно один раз поудалять все вхождения слова "splash" и перезагрузиться - помогает. Ну, или каждый раз setsysfont от рута. (В ответ на комментарий №33) > > Отключите splash, должно помочь. > Прямо сейчас проверил и подтверждаю [...] > Ну, или каждый раз setsysfont от рута. Это понятно, в образах-то что будем делать? В понедельник стартеркиты спекутся, хорошо бы там порешать... Хорошо-бы выяснить - зависит-ли это от железа. (In reply to comment #31) > Совсем уже не подпорка, а просто приём - дайте в проблемной консоле команду от > root > > setsysfont Пробовал - сработало (наверное, иначе и быть не могло, но всё же решил отписаться). (In reply to comment #32) > (In reply to comment #30) > > (In reply to comment #29) > > > Пока можно поставить подпорку из comment 12: пакет systemd-udev-console-fb > > > > Увы, "подпорка" уже стоит, но не работает. Я её пробовал снести, установить и > > перезагрузиться - всё равно не помогло :-( > > Отключите splash, должно помочь. В /etc/sysconfig/grub2 из строки GRUB_CMDLINE_LINUX_DEFAULT=' quiet resume=/dev/disk/by-uuid/<uuid> panic=30 splash' убрал слово splash. Запустил update-grub. Перезагрузился. Кириллица отображается корректно. Спасибо за помощь! Помощь помощью, но ошибка при этом не исправлена. Гм, как минимум в alt-p8-lxde-20161212-x86_64.iso из сегодняшних стартеркитов под virtualbox она не воспроизводится -- plymouth там есть. Если идти в консоль рутом, получаем кубики, но это следствие локали POSIX; у пользователя с ru_RU.UTF-8 всё в порядке. Что могло оказаться не так с workstation 8.1?.. (In reply to comment #38) > Гм, как минимум в alt-p8-lxde-20161212-x86_64.iso из сегодняшних стартеркитов > под virtualbox она не воспроизводится -- plymouth там есть. Если идти в > консоль рутом, получаем кубики, но это следствие локали POSIX; у пользователя с > ru_RU.UTF-8 всё в порядке. Что могло оказаться не так с workstation 8.1?.. У меня квадратики при авторизации пользователем altlinux на этом образе никуда не делись. Также под virtualbox. Кстати тут вроде решили "с другого конца" https://forum.altlinux.org/index.php?topic=38217.msg305077#msg305077 "Создал /etc/vconsole.conf, перезагрузил ОС и шрифты объявились. Спасибо." (В ответ на комментарий №40) > Кстати тут вроде решили "с другого конца" > https://forum.altlinux.org/index.php?topic=38217.msg305077#msg305077 > > "Создал /etc/vconsole.conf, перезагрузил ОС и шрифты объявились. Спасибо." Нет, там речь о другом. Проблема не в кодировке была, а в том, что настройки шрифтов не применялись. Тем временем я сделал костыль по имени vconsole-setup-kludge. Должен помогать. С выходом нового make-initrd с Сизифе (make-initrd-2.0.3-alt3) , багу можно закрывать, т.к. решается путём добавления в /etc/initrd.mk опции: FEATURES += kbd Спасибо legion@ (В ответ на комментарий №43)
> С выходом нового make-initrd с Сизифе (make-initrd-2.0.3-alt3) , багу можно
> закрывать, т.к. решается путём добавления в /etc/initrd.mk опции:
>
> FEATURES += kbd
>
> Спасибо legion@
Забыл закрыть, видимо. Проверил и без пакета vconsole-setup-kludge нормально отображаются.
Без пакета vconsole-setup-kludge проблема воспроизводится. Добавления в /etc/initrd.mk опции: FEATURES += kbd недостаточно, нужно ещё добавить UniCyr_8x16 в initrd, как минимум. (In reply to comment #45) > Без пакета vconsole-setup-kludge проблема воспроизводится. > > Добавления в /etc/initrd.mk опции: > > FEATURES += kbd > > недостаточно, нужно ещё добавить UniCyr_8x16 в initrd, как минимум. # grep '^[^#]' /etc/initrd.mk AUTODETECT = all FEATURES += kbd # initrd-ls /tmp/initrd-4.19.0-lks-wks-alt0.5.img |grep UniCyr_8x16 1 -rw-r--r-- 1 0 0 1996 Feb 12 10:52:05 2019 ./lib/kbd/consolefonts/UniCyr_8x16.psf.gz У меня не воспроизводится. У вас kbd-data точно установлен ? Created attachment 8081 [details]
Ошибка загрузки шрифта
Тем не менее шрифт действительно в initrd есть:
initrd-ls /boot/initrd-4.19.32-std-def-alt1.img |grep UniCyr_8x16
1 -rw-r--r-- 1 0 0 1996 Feb 12 16:52:05 2019 ./lib/kbd/consolefonts/UniCyr_8x16.psf.gz
kbd-data установлен.
(In reply to comment #47) > Created an attachment (id=8081) [details] > Ошибка загрузки шрифта > > Тем не менее шрифт действительно в initrd есть: > > initrd-ls /boot/initrd-4.19.32-std-def-alt1.img |grep UniCyr_8x16 > 1 -rw-r--r-- 1 0 0 1996 Feb 12 16:52:05 2019 > ./lib/kbd/consolefonts/UniCyr_8x16.psf.gz Ответ лежит перед глазами. (В ответ на комментарий №48)
> (In reply to comment #47)
> > Created an attachment (id=8081) [details] [details]
> > Ошибка загрузки шрифта
> >
> > Тем не менее шрифт действительно в initrd есть:
> >
> > initrd-ls /boot/initrd-4.19.32-std-def-alt1.img |grep UniCyr_8x16
> > 1 -rw-r--r-- 1 0 0 1996 Feb 12 16:52:05 2019
> > ./lib/kbd/consolefonts/UniCyr_8x16.psf.gz
>
> Ответ лежит перед глазами.
Расшифруйте для несообразительных.
...включая меня, сейчас тоже не разглядел слона. (В ответ на комментарий №49) > (В ответ на комментарий №48) > > (In reply to comment #47) > > > Created an attachment (id=8081) [details] [details] [details] > > > Ошибка загрузки шрифта > > > > > > Тем не менее шрифт действительно в initrd есть: > > > > > > initrd-ls /boot/initrd-4.19.32-std-def-alt1.img |grep UniCyr_8x16 > > > 1 -rw-r--r-- 1 0 0 1996 Feb 12 16:52:05 2019 > > > ./lib/kbd/consolefonts/UniCyr_8x16.psf.gz > > > > Ответ лежит перед глазами. > > Расшифруйте для несообразительных. Я потратил время, и нашел ответ перед глазами. В образе initrd нет gzip, соответственно сжатые шрифты не грузятся. Варианты исправления: 1) просто в фичу kbd добавить копирование gzip. 2) собрать make-initrd-busybox с поддержкой gzip 3) в initrd /lib/kbd/consolefonts копируются все-все-все шрифты. Можно копировать только нужный, и перед копированием его разжимать. А теперь плохие новости :) Все это нам никак не поможет. Шрифты в консоли остаются по прежнему квадратиками. Потому, что эта фича загружает шрифты только на первую консоль, а у нас на ней стартуют X-ы. Другая причина - gettyX(agetty) сервисы запускаются по событию (когда переключаешься на консоль). видимо пока нет консоли, не получается загрузить шрифт в неё. Поэтому оставляем старый вариант решающий эту проблему - пакет vconsole-setup-kludge. В следующей сборке systemd я поставлю на него зависимость. А вот пакет systemd-udev-console-fb наверно стоит удалить из репо. (In reply to comment #50) > ...включая меня, сейчас тоже не разглядел слона. Я уже сделал фикс в make-initrd, который исправляет проблему и даже Зергу цитировал его, правда, это было в баге почему-то на kbd и никто этого не увидел. (In reply to comment #51) > Я потратил время, и нашел ответ перед глазами. > В образе initrd нет gzip, соответственно сжатые шрифты не грузятся. Там может быть не только gzip. > А теперь плохие новости :) > Все это нам никак не поможет. > Шрифты в консоли остаются по прежнему квадратиками. > Потому, что эта фича загружает шрифты только на первую консоль, а у нас на ней > стартуют X-ы. Другая причина - gettyX(agetty) сервисы запускаются по событию > (когда переключаешься на консоль). видимо пока нет консоли, не получается > загрузить шрифт в неё. Интересно, а как тогда работают setsysfont и setsyskeytable для всех терминалов. Ну да ладно... в systemd всё же "иначе". (В ответ на комментарий №52) > Я уже сделал фикс в make-initrd, который исправляет проблему и даже Зергу цитировал его, Могу я процитировать: > Ждите в следующем релизе: > http://git.altlinux.org/people/legion/packages/make-initrd.git?p=make-initrd.git;a=commitdiff;h=032e5dd865aec48fd3110bf303ae5399ea8a0850 > правда, это было в баге почему-то на kbd Просто, чтоб на тебя повесилось. > и никто этого не увидел. По почте должны были увидеть. Я ставил зависимость. (In reply to comment #52) > > А теперь плохие новости :) > > Все это нам никак не поможет. > > Шрифты в консоли остаются по прежнему квадратиками. > > Потому, что эта фича загружает шрифты только на первую консоль, а у нас на ней > > стартуют X-ы. Другая причина - gettyX(agetty) сервисы запускаются по событию > > (когда переключаешься на консоль). видимо пока нет консоли, не получается > > загрузить шрифт в неё. > > Интересно, а как тогда работают setsysfont и setsyskeytable для всех > терминалов. Я допишу недостающий функционал в фичу kbd, чтобы она вела себя не только как setsysfont, но и как fbsetfont. (In reply to comment #55) > Я допишу недостающий функционал в фичу kbd, чтобы она вела себя не только как > setsysfont, но и как fbsetfont. попробуйте make-initrd 2.2.12-alt1 как дойдёт до сизифа. (В ответ на комментарий №56) > (In reply to comment #55) > > Я допишу недостающий функционал в фичу kbd, чтобы она вела себя не только как > > setsysfont, но и как fbsetfont. > > попробуйте make-initrd 2.2.12-alt1 как дойдёт до сизифа. Попробовал из задания. У меня все заработало. Отлично! Спасибо большое. Можно снова переходить с vconsole-setup-kludge на kbd фичу в make-initrd. (In reply to comment #57) > Можно снова переходить с vconsole-setup-kludge на kbd фичу в make-initrd. На будущее призываю перед тем как что-то предпринимать написать письмо и обсудить. Сейчас для этого даже рассылка отдельная появилась. Проверил. И без vconsole-setup-kludge теперь ок. (В ответ на комментарий №59) > Проверил. И без vconsole-setup-kludge теперь ок. Точно ок? А то у меня работало только без quiet в cmdline. (В ответ на комментарий №60)
> (В ответ на комментарий №59)
> > Проверил. И без vconsole-setup-kludge теперь ок.
>
> Точно ок? А то у меня работало только без quiet в cmdline.
Не ок. kbd в initrd успешно грузится, но толку от этого нет.
(In reply to comment #61) > Не ок. kbd в initrd успешно грузится, но толку от этого нет. Если в логе в initrd нет ошибок, то нужно смотреть кто после его работы в живой системе сбрасывает состояние. Должно быть исправлено в make-initrd-2.5.0-alt1 |