| Summary: | Кракозябры в виртуальной консоли | ||
|---|---|---|---|
| Product: | [ROSA-based products] Certified ROSA distros | Reporter: | Vladimir Potapov <v.potapov> |
| Component: | --- | Assignee: | Private ROSA Bugs <private-bugs> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | CC: | a.lahin |
| Priority: | Normal | ||
| Version: | unspecified | ||
| Target Milestone: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Platform: | --- | ROSA Vulnerability identifier: | |
| RPM Package: | Upstream: | ||
|
Description
Vladimir Potapov
2015-05-06 18:13:21 MSK
ROSA.DX64.Nickel.2.0.r10982 Теперь и в лайве, и в установленной системе кракозябры несмотря на правильные настройки vconsole.conf dracut -f проблему НЕ решает В запущенном mc - кракозябры вместо рамок *** Bug 4154 has been marked as a duplicate of this bug. *** Проблема связана с неоднократной инициализацией графической подсистемы. Как выяснилось, драйверы инициализируют frame buffer повторно, после запуска systemd-vconsole-setup. Таким образом, шрифты сбрасываются и больше не загружаются. В качестве решения было опробовано правило: SUBSYSTEM=="graphics", KERNEL=="fb[0-9]*", ACTION=="add", RUN+="/lib/systemd/systemd-vconsole-setup" Повторная инициализация происходит корректно, но в некоторых случаях шрифт не загружается из-за того, что systemd-vconsole-setup перед копированием шрифта из tty0 в ttyX проверяет наличие соответствующих /dev/vcsX, а они ещё не созданы к моменты запуска systemd-vconsole-setup. В более новой версии systemd привязка к vtcon: https://github.com/systemd/systemd/blob/master/src/vconsole/90-vconsole.rules.in ACTION=="add", SUBSYSTEM=="vtconsole", KERNEL=="vtcon*", RUN+="@rootlibexecdir@/systemd-vconsole-setup" Но и это не помогает - лучшее решение - привязаться непосредственно к vcs*. Минус - инициализация консолей будет происходить многократно: для vcs2, vcs3, ... Пока решили оставить так. В образе ROSA.DX64.Nickel.2.0.r11223 кракозябры присутствуют во всей красе. (In reply to comment #7) > В образе ROSA.DX64.Nickel.2.0.r11223 кракозябры присутствуют во всей красе. В какой конфигурации это происходит? Реальная/виртуальная машина, с какими видеодрайверами? Реальная машина на нвидиа, на свободных драйверах (т.к. других в никеле просто нет) Судя по всему, проблема именно в xf86-video-nouveau. Шрифт не загружается до тех пор, пока не произошло переключение в консоль. Можно проверить так - подключиться по ssh и выполнить: /lib/systemd/systemd-vconsole-setup Затем переключиться в консоль tty2 и убедиться в том, что шрифт не загружен. Если сразу после этого, так же, удалённо, выполнить: /lib/systemd/systemd-vconsole-setup То шрифт загружается успешно. (можно использовать команду showconsolefont) Похоже, что с этими драйверами шрифт загружается успешно, только когда включен текстовый режим. Последовательность событий при загрузке:
май 25 07:37:30 rosa-desktop kernel: Console: colour dummy device 80x25
май 25 07:37:30 rosa-desktop kernel: console [tty0] enabled
май 25 07:37:30 rosa-desktop kernel: simple-framebuffer simple-framebuffer.0: format=a8r8g8b8, mode=1024x768x32, linelength=4096
май 25 07:37:30 rosa-desktop kernel: Console: switching to colour frame buffer device 128x48
май 25 07:37:30 rosa-desktop kernel: simple-framebuffer simple-framebuffer.0: fb0: simplefb registered!
май 25 07:37:30 rosa-desktop : svs setup
май 25 07:37:30 rosa-desktop systemd[1]: Started Setup Virtual Console.
май 25 07:37:31 rosa-desktop : svs rules /devices/virtual/vc/vcs1
май 25 07:37:31 rosa-desktop systemd[1]: Starting Show Plymouth Boot Screen...
май 25 07:37:31 rosa-desktop systemd[1]: About to execute: /sbin/plymouthd --mode=boot --pid-file=/run/plymouth/pid --attach-to-session
май 25 07:37:31 rosa-desktop systemd[1]: Forked /sbin/plymouthd as 258
май 25 07:37:31 rosa-desktop systemd[257]: Executing: /bin/dracut-initqueue
май 25 07:37:31 rosa-desktop systemd[1]: plymouth-start.service changed dead -> start
май 25 07:37:31 rosa-desktop systemd[258]: Executing: /sbin/plymouthd --mode=boot --pid-file=/run/plymouth/pid --attach-to-session
май 25 07:37:31 rosa-desktop kernel: fb: conflicting fb hw usage nouveaufb vs simple - removing generic driver
май 25 07:37:31 rosa-desktop kernel: Console: switching to colour dummy device 80x25
май 25 07:37:31 rosa-desktop kernel: nouveau [ DRM] allocated 1920x1200 fb: 0x70000, bo ffff880212778c00
май 25 07:37:31 rosa-desktop kernel: fbcon: nouveaufb (fb0) is primary device
май 25 07:37:31 rosa-desktop kernel: Console: switching to colour frame buffer device 240x75
май 25 07:37:31 rosa-desktop kernel: sdc: sdc1 sdc2 sdc3 sdc4 sdc5
май 25 07:37:31 rosa-desktop kernel: sd 2:0:0:0: [sdc] Attached SCSI disk
май 25 07:37:31 rosa-desktop kernel: nouveau 0000:02:00.0: fb0: nouveaufb frame buffer device
май 25 07:37:56 rosa-desktop : svs rules /devices/virtual/vc/vcs9
май 25 07:37:56 rosa-desktop : svs rules /devices/virtual/vc/vcs1
май 25 07:38:01 rosa-desktop : svs rules /devices/virtual/vc/vcs2
май 25 07:38:01 rosa-desktop : svs rules /devices/virtual/vc/vcs5
май 25 07:38:01 rosa-desktop : svs rules /devices/virtual/vc/vcs6
май 25 07:38:01 rosa-desktop : svs rules /devices/virtual/vc/vcs3
май 25 07:38:01 rosa-desktop : svs rules /devices/virtual/vc/vcs4
В коде kbd/setfont.c есть проверка, отключающую загрузку шрифта в графическом режиме:
if (!ioctl(fd, KDGETMODE, &kd_mode) && (kd_mode == KD_GRAPHICS))
{
/*
* PIO_FONT will fail on a console which is in foreground and in KD_GRAPHICS mode.
* 2005-03-03, jw@suse.de.
*/
if (verbose)
printf("setfont: graphics console %s skipped\n", console?console:"");
close(fd);
return 0;
}
Проблема в том, что устройства vcsX появляются, когда уже включен графический режим и шрифт уже не загружается. Если же шрифт загружать раньше, на этапе появления устройства vtcon*, как сделано здесь: http://lists.freedesktop.org/archives/systemd-devel/2015-February/028740.html Тогда устройства vcsX оказываются не готовы, и font_copy_to_all_vcs не срабатывает. В качестве решения можно выполнять /lib/systemd/systemd-vconsole-setup и при появлении vtcon (тогда шрифты будут загружены в tty0), и при появлении vcsX (шрифт не будут загружатьс в tty0, но будут успешно копироваться в vcsX). В идеале решение должно быть более точным. (In reply to comment #12) загружатьс в tty0, но будут успешно копироваться в vcsX). > > В идеале решение должно быть более точным. Т.к. иногда все же "само" работает, дело скорее всего в порядке сервисов. Должно быть исправлено в образе 11297: http://file-store.rosalinux.ru/api/v1/file_stores/35a4c99586bcca4c98c072255610c0611a5f5ef5 Версия systemd с исправлением: 208-53.20141106.18 ROSA.DX64.Nickel.2.0.r11307 Версия systemd соответствует. Ошибка присутствует :-( При загруз(In reply to comment #17) > ROSA.DX64.Nickel.2.0.r11307 > Версия systemd соответствует. Ошибка присутствует :-( При загрузке непосредственно с образа проблема наблюдается? Да. Приграшение там аглицкое, а если дальше переключиться - кракозябры При загрузке Live-системы с образа 11330 на машине с видеокартой nvidia не наблюдаю проблемы. Загружается рабочий стол, переключаюсь на tty2, написано по-русски "логин". От периферии зависят задержки. У меня две вайфай карты, две сетевухи, винт+SSD, туча рос на этих дисках - в результате иной порядок загрузки сервисов. И поэтому приглашение становится английским? Что-то ещё влияет, надо разобраться, если мы хотим закрыть эту ошибку. (In reply to comment #21) > От периферии зависят задержки. У меня две вайфай карты, две сетевухи, > винт+SSD, туча рос на этих дисках - в результате иной порядок загрузки > сервисов. Гм, проверил этот лайв на ATI карте ноута lenovo g570. Тоже кракозябры. Может, из-за того что я Иркутск выбираю? (In reply to comment #22) > И поэтому приглашение становится английским? > Что-то ещё влияет, надо разобраться, если мы хотим закрыть эту ошибку. Аглицкий из-за того, что я в EFI гружусь. (In reply to comment #24) > (In reply to comment #22) > > И поэтому приглашение становится английским? > > Что-то ещё влияет, надо разобраться, если мы хотим закрыть эту ошибку. > > Аглицкий из-за того, что я в EFI гружусь. Есть возможность проверить то же самое при загрузке не в EFI? (In reply to comment #25) > (In reply to comment #24) > > (In reply to comment #22) > > > И поэтому приглашение становится английским? > > > Что-то ещё влияет, надо разобраться, если мы хотим закрыть эту ошибку. > > > > Аглицкий из-за того, что я в EFI гружусь. > > Есть возможность проверить то же самое при загрузке не в EFI? Да, проверил. Теперь кракозябры сразу - приглашение пытается быть русским. 11390 - кракозябры живы Должно быть исправлено в образе 11456: http://file-store.rosalinux.ru/api/v1/file_stores/1d1baf0375c1586128f8f62cbe4747e897ef693a plymouth 0.8.9-15 В 11456 исправлено! |