Поставил через ipxe минимальный комплект 19й (без иксов и пр.). Попробовал самое невинное: изменить консольный шрифт. "Держи карман шире", сказала мне федора.
Во-первых, настройки переехали (зачем?) из /etc/sysconfig/i18n в /etc/vconsole.conf, где поменялись имена переменных, которые нужно устанавливать.
Во-вторых, изменение шрифта происходит только посредством systemd (а именно systemd-vconsole-setup.service).
В третьих, указания шрифта в /etc/vconsole.conf никак не помогают шрифт при перезагрузке изменить, из-за чего можно кругом наблюдать радостные, сияющие лица: https://bugzilla.redhat.com/show_bug.cgi?id=970030.
В четвертых, systemd-vconsole-setup оказался бинарным исполняемым файлом (2010x Unix way), из-за чего пришлось скачать исходник systemd чтобы прочесть vconsole-setup.c, иначе было неясно что он собственно натужно пытается делать.
В пятых, после чтения исходника оказалось, что /etc/vconsole.conf можно засунуть в задницу, если в параметре ядра при загрузке был указан свой шрифт vconsole.font=foobar.
В шестых, если если такого параметра ядра нету, а /etc/vconsole.conf есть, то нужно пересобрать initramfs, потому что systemd на раннем этапе будет стартовать оттуда и будет искать /etc/vconsole.conf там (в initramfs).
В седьмых, указание шрифта в параметрах ядра и пустое значение переменной FONT в /etc/vconsole.conf приведет к тому, что по умолчанию dracut пересоберет initramfs вообще без единого файла шрифта и ядро при загрузке грустно заметит, что шрифт не найден, а чуть попозже systemd-vconsole-setup также печально наебнется.
В восьмых, если сделать все "правильно": убрать параметр ядра vconsole.font, записать FONT=foobar в /etc/vconsole.conf, сказать dracut'у собирать initramfs без host-only mode (т.е. засовывать туда все, а не минимум), это поможет как укол в деревянную ногу: шрифт при загрузке не изменится.
В девятых (это кто-то еще читает?), после рассматривания journalctl -b (если не сказать -b, можно долго пялится на лог загрузки ядра 15 перезагрузок назад и зло матерится), окажется что systemd-vconsole-setup.service стартует очень неудачно: как раз перед включением drm, который сбрасывает все настройки консоли, потому что изменяется разрешение экрана.
В десятых, изменить поведение systemd-vconsole-setup.service штатными средствами нельзя: локальные модификации в /usr/lib/systemd будут, естественно, затерты при будущем yum update.
В одиннадцатых, неудачный старт systemd-vconsole-setup.service неудачен не у всех: кому-то везет и drm дает в зубы видиокарте быстрее, systemd-vconsole-setup.service стартует чуть-чуть попозже и шрифт таки изменяется.
В двенадцатых, хочу напомнить, что в темные времена sysvinit скриптов такого идиотизма не было, потому что загрузка сервисов была синхронной.
В тринадцатых, единственным гарантированным способом остается:
# cat /etc/rc.d/rc.local
#!/bin/sh
systemctl restart systemd-vconsole-setup
После "правильной" настройки, как в п.8.
В четырнадцатых, ВЕНДА ГОВНИЩЕ ЛОЛ!! МЕЛКОСОФТ КИДАЕТ ВСЕХ НА БАБЛО, ФЕЙЛ ВООБЩЕ. КАПЕЦ КАК МОЖНО БЫТЬ ТАКИМ БЫДЛОМ И НЕ РИАЛТАЙМ ОСЬ ЮЗАТЬ. БИЛЛИГЕЙТС ВСЕ СПИЗДИЛ, ЭТО КАЖДОМУ ИЗВЕСТНО, А МАЗДАЙ СОСЕТ ПРИЧМОКИВАЯ!! ЛИНУКС ВАЩЕ АХУЕНЕН, КАК БЛЯТЬ НЕЯСНО.
+1'd by:
Comments:
- Andrew Zubinski, 2013-07-07T12:49:17.453Z
и этот человек мне запрещал ковыряться в носу!
ыхххыхыхы - Henry Flower, 2013-07-07T12:56:15.385Z
+Andrew Zubinski ох, я уже после этого ничего не хочу и не могу.
- Andrew Zubinski, 2013-07-07T13:00:29.539Z
+Henry Flower и такая же чума, но мелочнее, в юзерспейсе чуть ли от каждого чиха в апдейтах.
короче, линуксоиды - дятлы. им бы сверхдешёвые компы для старичков делать. с минимальным набором софта - браузер, скайп, самый простой текстовый редакторчик, здоровенные шрифты, неперемещаемые иконки (у старичков моторика плохая, они лишнее любят нажимать-таскать), без никаких клавиатурных шорткатов. без никаких излишеств. вот это - реальное. три иконки здоровенных - Интырнэт, Поболтать и Написать. всё. и цена грошовая. единственное, на что оно годно при некоторых усилиях. - Andrew Zubinski, 2013-07-07T13:07:32.296Z
+Henry Flower кстати, насчёт риалтайма не соврали. "Linux 3.10 - ебля в реальном времени" бггг
- Oleksii Shevchuk, 2013-07-07T20:31:10.440Z
Хорошо у вас там в криокамере :D
- Oleksii Shevchuk, 2013-07-07T20:33:19.697Z
По поводу консоли, правильный сопособ - оформить fb как .device и пихнуть по зависимостям перед console-setup. Например:
> cat /etc/udev/rules.d/00-video.rules
SUBSYSTEM=="graphics", KERNEL=="fb*", ACTION=="add", TAG+="systemd"
> cat /etc/systemd/system/dev-fb0.device
[Unit]
Description=Intel video output
Before=systemd-vconsole-setup.service graphical.target
[Install]
WantedBy=sysinit.target - Henry Flower, 2013-07-09T22:14:33.710Z
+Oleksii Shevchuk так должно работать, но с федорой не работает, ггг.
запихнул в initramfs
# systemctl enable dev-fb0.device
# dracut -f -N -v -I "/etc/udev/rules.d/00-video.rules /etc/systemd/system/dev-fb0.device /etc/systemd/system/sysinit.target.wants/dev-fb0.device"
и тогда journalctl показывает ожидаемое:
Jul 10 00:47:38 localhost kernel: fbcon: svgadrmfb (fb0) is primary device
Jul 10 00:47:38 localhost kernel: Console: switching to colour frame buffer devi
Jul 10 00:47:38 localhost kernel: [drm] Initialized vmwgfx 2.4.0 20120209 for 00
Jul 10 00:47:38 localhost systemd[1]: Found device /dev/fb0.
Jul 10 00:47:38 localhost systemd[1]: Starting Setup Virtual Console...
Jul 10 00:47:38 localhost systemd[1]: Started Setup Virtual Console.
Jul 10 00:47:38 localhost systemd[1]: Starting Show Plymouth Boot Screen...
Jul 10 00:47:38 localhost systemd[1]: Starting System Initialization.
но шрифт не изменяется.
по-моему, там нужно еще отколупать plymouth от vconsole и отфутболить vconsole в basic.target.
короче, не стоит оно усилий. из /etc/rc.d/rc.local вызывается и ладно.
Permalink: https://plus.google.com/115290581164606462017/posts/cEwfVz8XwJB