На systemd каталог /var/run либо симлинк на /run, либо в /var/run смонтирован /run. Так что в любом случае каталога /var/run/kernel нет. Необходимо создавать /run/kernel при помощи systemd-tmpfiles из конфига /lib/tmpfiles.d/kernel.conf Т.е. нужно опакетить такой конфиг. Но в конфиге надо прописывать именно /run/kernel, а не /var/run/kernel, так как иначе будет ругань при загрузке. Каталог тем не менее надо в пакете оставить для hasher и систем на sysvinit, где /run и /var/run не одно и тоже.
[root@fedora-rawhide ~]# ls -l /var/run/kernel ls: cannot access '/var/run/kernel': No such file or directory opensuse-tumbleweed:~ # ls -l /var/run/kernel ls: cannot access '/var/run/kernel': No such file or directory root@ubuntu-jammy:~# ls -l /var/run/kernel ls: cannot access '/var/run/kernel': No such file or directory
(Ответ для Vitaly Chikunov на комментарий #1) > [root@fedora-rawhide ~]# ls -l /var/run/kernel > ls: cannot access '/var/run/kernel': No such file or directory > > opensuse-tumbleweed:~ # ls -l /var/run/kernel > ls: cannot access '/var/run/kernel': No such file or directory > > root@ubuntu-jammy:~# ls -l /var/run/kernel > ls: cannot access '/var/run/kernel': No such file or directory А он вообще нужен этот каталог?
Выглядит как то что придумано в первом коммите в adjust_kernel_headers b683c97 Dmitry V. Levin 2003-07-30 13:17 +0000 ^^^^ чтоб зачем-то создать в этой дире perl headers (ph) для {autoconf,modversions,version}.h. Скорее всего это legacy мусор.
Все даже чуть смешнее так как эти файлы пропадают на systemd так как /var/run -> /run tmpfs. ``` $ rpm -ql kernel-headers-common | grep /var/run/kernel/ /var/run/kernel/_h2ph_pre.ph /var/run/kernel/autoconf.h /var/run/kernel/autoconf.ph /var/run/kernel/modversions.h /var/run/kernel/modversions.ph /var/run/kernel/version.h /var/run/kernel/version.ph ``` Предлагаю уничтожить это legacy.
(In reply to Vitaly Chikunov from comment #4) > Все даже чуть смешнее так как эти файлы пропадают на systemd так как > /var/run -> /run tmpfs. > ``` > $ rpm -ql kernel-headers-common | grep /var/run/kernel/ > /var/run/kernel/_h2ph_pre.ph > /var/run/kernel/autoconf.h > /var/run/kernel/autoconf.ph > /var/run/kernel/modversions.h > /var/run/kernel/modversions.ph > /var/run/kernel/version.h > /var/run/kernel/version.ph > ``` > Предлагаю уничтожить это legacy. Может быть, специалисты по perl в курсе, насколько это ещё актуально?
(Ответ для Dmitry V. Levin на комментарий #5) > > Предлагаю уничтожить это legacy. > > Может быть, специалисты по perl в курсе, насколько это ещё актуально? Не сталкивался, поддерживаю идею закопать.
OK, тогда давайте будем считать, что /var/run/kernel больше не актуально, и закопаем.
Смотрю этот пакет. Там есть поддержка systemd: ``` commit cac8b119541f644caea893fb280bfc8139bb139d Refs: <1.2.3-alt1> Author: Dmitry V. Levin <ldv@altlinux.org> AuthorDate: Sat May 12 14:14:20 2012 +0000 1.2.3-alt1 - Added kheaders.service. ``` Мне кажется, что это (никогда) не работало и можно удалить. Так как Unit не enabled.
Конечно, удалять так удалять.
Я вот думал наоборот сделать, чтоб он срабатывал.
(In reply to Vitaly Chikunov from comment #10) > Я вот думал наоборот сделать, чтоб он срабатывал. А этот сервис ещё актуален?
Откуда мне знать.
Да и что значит актуален в данном контексте?
Пользовательский интерфейс adjust_kernel_headers довольно обскурный. Но сама идея (если я её понял - установить симлинки на правильные хедеры, чтоб юзер мог собирать загруженное под ядро) мне кажется правильной.
[#303392] TESTED kernel-headers-common.git=1.2.8-alt1 Я сделал systemd preset, который включает kheaders.service. Но, (preset работает так, что) если этот пакет уже был установлен, то он останется disabled. Так что это повлияет только на "новые" системы, где kernel-headers-common не было. Это немного странно.
(In reply to Dmitry V. Levin from comment #11) > (In reply to Vitaly Chikunov from comment #10) > > Я вот думал наоборот сделать, чтоб он срабатывал. > > А этот сервис ещё актуален? После обсуждения с Глебом я наверное понял, что имелось ввиду - есть ли пользователи. Да есть пара пакетов, которым нужны не generic хедеры.
kernel-headers-common-1.2.8-alt1 -> sisyphus: Sat Jul 09 2022 Vitaly Chikunov <vt@altlinux> 1.2.8-alt1 - Remove support for perl headers (ALT#43185). - Enable kheaders.service by default.