Моё решение проблемы шрифта в консоли

nafanja
это серьезная недоработка, по идее такого ни в коем случае не должно получаться!
А так как systemd используют десятки тысяч людей, и даже больше, в тех дистрах которые давно на него перешли, то это уже должно было засветиться, и мог быть придуман какой нибудь универсальный метод.
Универсальный метод – это как раз мой (я так думаю ;) с udev, ибо что как не udev должно отслеживать его же собственные деяния :)
Что касается дистров и тысяч людей – напоминаю, что переносные системы на флешке есть далеко не у всех.

Если не затруднит, можешь попробовать сделать так
Суть твоего метода понятна – зацепиться за юнит, который вызывается по окончании обработки udev всех девайсов.
Попробовал – он действительно работает, но нестабильно. То есть я несколько раз перезагружался, и каждый раз загрузка шрифта происходила в разные моменты относительно начала фреймбуфера – иногда сразу же (как по моему методу, где это жестко связано с данным событием), иногда много после, а один раз (второй по счёту) – оно ухитрилось так и НЕ загрузить шрифт, либо загрузить его раньше фреймбуфера – увы, я не посмотрел в тот раз статусы, а в логах systemd моменты запуска своих юнитов, насколько я понял, не сохраняет.
sleepycat
Сейчас проверю вариант nafanja. Если сработает предлагаю написать меинтейнеру юнита.
Проверил, работает!)
Хотя по моему удев правило, более безотказно будет работать, так сказать на все случаи жизни. Блин скока тут умного народа, даже самому подумать не даёте!)) с такими темпами я вообще обленюсь и буду только читать топики и заниматься копипастом!)
vit.ok
sleepycat
Сейчас проверю вариант nafanja. Если сработает предлагаю написать меинтейнеру юнита.
Проверил, работает!)
Присоединяюсь, еслиб по уму бы сразу прочитал бы про systemd.special сам так поступил, сделав рокировку. Работает стабильно. Все же предлагаю накатать месагу “буграм”, чтобы они сделали именно такой vconsole юнит. Ну или с wants , навсякий пожарный.
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
sleepycat
во те раз, я то точно не создавал этот юнит.
Это когда то тоже я надоумил тебя такой юнит создать )))

Natrio
Попробовал – он действительно работает, но нестабильно.
Интересно почему?
Вроде systemd-udev-settle.service специально сделан что бы отрабатывать после работы удева…
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874
nafanja
sleepycat
во те раз, я то точно не создавал этот юнит.
Это когда то тоже я надоумил тебя такой юнит создать )))

Natrio
Попробовал – он действительно работает, но нестабильно.
Интересно почему?
Вроде systemd-udev-settle.service специально сделан что бы отрабатывать после работы удева…
хыы я уж подумал чтото осталось с “миксовых” времен sysv+systemd)))
Мне кажется что если приявязка require , а строже ее вместе с after наверно не сыскать, не работает,то наверно мы гдето переврали, как насчет идеи, что Ваш фреймбуфер октивируется когда ему вздумается , а не require не работает?
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
nafanja
Natrio
Попробовал – он действительно работает, но нестабильно.
Интересно почему?
Вроде systemd-udev-settle.service специально сделан что бы отрабатывать после работы удева…
Например, потому что udev мог “застрять” на чём-то или потерять какое-то событие ядра, что за ним иногда водится, так что скорей всего в тот раз он так и не “закончил”, соответственно “после” никогда не наступило.

Вообще, настройка УСТРОЙСТВА виртаульной консоли по факту загрузки УСТРОЙСТВА фреймбуфера, это явно сфера деятельности udev. Дело systemd – запускать демоны и присматривать за ними, а не настраивать устройства :)
все заточить под системд, даешь ацкое войско юнитов)))
Однако рассуждение натолкнуло на др. мысль. А собственно зачем в юните (именно этом) Requires=systemd-udev-settle.service ?
Т.е. что бы не делал тот юнит, в случае его внимание (НЕ падения в любое время или ручного перезапуска) неудачного старта, что может быть, мы останемся без русского языка. Ну т.е. я описываю поведение директивы Requires= . Поскольку вроде удев у нас что то из рода “эни маст хев” и не имеет вроде пока внятных альтернатив, можно судить что удев запуститься на системе потенциального пользователя, причем судя по сводной схеме в мане до sysinit (т.е. довольно таки рано чтобы как то задумываться над этим). Так почему бы просто не отавить After. Ну покрайней мере для тех кто не юзает активно фреймбуфер, тут как понимаю из настойчивости Natrio, вопрос деликатный) . Пошел проверять с закоменчиным Requires=systemd-udev-settle.service .
Не не пашет, вот с wants вместо последнего и пашет и удовлетворяет тексту. МОжет кто еще раз объяснить почему так невнятно работает просто After или просто сдешний пример с systemd-udev-settle.service просто не удачен? или тут дело в том самом (если юниты запускаются вместе) т.е. в нашем случае просто чтото попросило systemd-udev-vconsole ранее чем подошел черед systemd-udev-settle.service и оно отработало. Тогда с опцией вонтс оно запускаеся вместе с ним и ждет пока systemd-udev-settle.service отработает, а оно тем самым что… (тут надо продолжить фраазу). Т.е. как достигается эффект? этот юнит что, не может закончится успешно пока не закончится удев? Просто это наверно эдинственное, что я не много не вкурил с маном….
упд
тьфу ёпрст, говорили мне , что “истина гдето рядом” и “ман, сынок, ман” )))
udevadm settle
Watches the udev event queue, and exits if all current events are handled.
ну тайм аут там подвешен, на всякий случай, чтобы оно не вызвало пробку в случае тупиков удева.
ЗЫ:
какая умная оказывается штука эта системд, так с первого взгляда и не видно всю глубину наших глубин, столько вариантов что даже не знаю, какую поставить задачу, чтобы с ней системд не справился, точнее сказать не давал бы инструментарий для “творчества”.
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
(вместо Requires думаю можно использовать Wants)
не, не работает, поведение подобно описанному Natrio, т.е. каждый раз по разному. В мане написано, что это ослабленный вариант Requires, но такое чувство, что оно запускает сначала искомый юнит и сразу же после этого себя. А Requires работает(и как в мане и на практике) сто процентов (вместе с After) только после того как требуемый юнит отсчитается о результате. Получается для такого эффекта только один вариант, requires…либо я чегото не доразобрал.
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
все отвалился юнит…видно придется свой врубать или выносить этот кудато дальше sysinit… что сдается мне трудновато будет.
Лозунг у них был такой: "Познание бесконечности требует бесконечного времени". С этим я не спорил, но они делали из этого неожиданный вывод: "А потому работай не работай — все едино". И в интересах неувеличения энтропии Вселенной они не работали. (с)
 
Зарегистрироваться или войдите чтобы оставить сообщение.