LINUX.ORG.RU

Федорино Коре и modprobe.d

 , ,


0

2

Fedora 24, стоит на macbook, при загрузке игнорирует содержимое /etc/modprobe.d/hid_apple.conf:

options hid_apple fnmode=2
options hid_apple iso_layout=0
С Debian 8 такой конфиг работает на ура.

Через костыль /etc/sysconfig/modules/hid_apple.modules:

#!/bin/bash
echo 2 > /sys/module/hid_apple/parameters/fnmode
echo 0 > /sys/module/hid_apple/parameters/iso_layout
оно конечно работает, но это эталонный костыль в вакууме.

Deleted

Если можно выставлять только через sysfs, то rc.local, является вполне не костыльным решением, потому-что sysfsutils, в отличии от systemctl еще больший костыль, чем сам rc.local.
По сабжу, ты update-initramfs сделал?

anonymous_sama ★★★★★
()
Ответ на: комментарий от anonymous_sama

По сабжу, ты update-initramfs сделал?

Эм нет, это особенности efi такие? Сделаю как доберусь до девайса. В debian initramfs не обновлял кстати.

Deleted
()
Последнее исправление: log4tmp (всего исправлений: 1)
Ответ на: комментарий от Deleted

Эм нет, это особенности efi такие?

Это особенности компьютера такие.

Для подключения дисков и рутовой ФС нужно загрузить драйверы.

Они лежать в tmpfs/initramfs.

Драйверам нужны опции (modprobe.d/*).

Значит, в initramfs лежат и modprobe.d/*.

Значит, после правки modprobe.d/* надо изменить initramfs.

Логично?

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

Но в других дистрибутивах(debian, arch, void, calculate, gentoo) на данном ноуте подобных проблем не было, только федора.

Deleted
()
Ответ на: комментарий от Deleted

Но в других дистрибутивах(debian, arch, void, calculate, gentoo) на данном ноуте подобных проблем не было, только федора.

Значит, в этих «других» дистрибутивах hid_apple грузился не из initrd. Или ты чего-то не так написал в конфиге. Или еще что-то.

no-dashi ★★★★★
()
Ответ на: комментарий от Deleted

он на desktop конфигурациях разве включен?

Хз, всё время ставлю минимум через netinstall и потом руками добавляю нужное.
Короче, вот так сработало:

# echo hid_apple >/etc/modules-load.d/hid_apple.conf
# echo options hid_apple fnmode=2 iso_layout=0 >/etc/modprobe.d/hid_apple.conf
# sed -i -r 's/^(SELINUX=).*/\1permissive/' /etc/selinux/config
# systemctl reboot

ArcFi
()
Ответ на: комментарий от anonymous_sama

По сабжу, ты update-initramfs сделал?

По сабжу нет такой команды и вообще где федора хранить initramfs в конфигурации с efi? Даже /boot/grub/grub.cfg нет.

Deleted
()
Ответ на: комментарий от ArcFi

Отключение SELinux не помогло, увы.

Deleted
()
Ответ на: комментарий от Deleted

SELinux в RHEL, CentOS, Fedora всегда включен.

anonymous
()
Ответ на: комментарий от anonymous

Спасибо, так получилось, после перезагрузки все работает как полагается.

Deleted
()

В строку параметров ядра в загрузчике hid_apple.fnmode=2 hid_apple.iso_layout=0

anonymous
()
Ответ на: комментарий от Deleted

О как. а формат файлов там такой-же как в modprobe.d?

Deleted
()
Ответ на: комментарий от Deleted

системд не использует каталог /etc/modprobe.d, только свой /etc/modules-load.d/

На текущий момент для автозагрузки модулей используется /etc/modules-load.d/, а для опций — /etc/modprobe.d/.
https://wiki.archlinux.org/index.php/Kernel_modules

ArcFi
()

Тред не читал.

dracut -f --regenerate-all

/thread

slaykovsky ★★★
()
Ответ на: комментарий от Deleted

log4tmp

Логично, потому что системд не использует каталог /etc/modprobe.d, только свой /etc/modules-load.d/

Нет, это неправда.

У этих каталогов разное предназначение, и используются они одновременно. Файлы в /etc/modprobe.d задают параметры, псевдонимы и чёрный список модулей (эти параметры имеют силу при подгрузке модулей по любой причине), а файлы в /etc/modules-load.d задают список принудительно подгружаемых при старте модулей.

intelfx ★★★★★
()

Действительно, решением этой проблемы будет перегенерация образа initcpio (с помощью dracut или аналога этой утилиты в другом дистрибутиве, например, mkinitcpio в Arch).

Это необходимо по той причине, что на случай перехода в аварийный режим в initcpio обычно добавляется некоторое количество вспомогательных модулей, не имеющих прямого отношения к загрузке системы — в их числе и драйвера устройств ввода, такие, как hid_apple. Соответственно, их подгрузка происходит на этапе исполнения из initramfs до монтирования корневой ФС. Поскольку конфигурационные файлы в modprobe.d учитывается только в момент непосредственной подгрузки соответствующих модулей (другими словами, они не имеют обратной силы), они также должны присутствовать в initcpio. А так как мало кто помнит конкретный набор модулей в своём initcpio, его всегда рекомендуется пересоздавать после изменения конфигурации modprobe.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 3)
Ответ на: комментарий от intelfx

Нет, это неправда.

Ты всё-таки не поленился, ответил.

Я уже не помню как там было с системд, но похоже ты прав. Но /etc/modules-load.d/ используется системд, в openrc за автозагрузку отвечает /etc/conf.d/modules

/etc/modprobe.d не используется одним лишь системд, это общесистемный каталог.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от intelfx

Действительно, решением этой проблемы будет перегенерация образа initcpio

Наверно у нас с вами разные версии Fedora.
У меня на Fedora 24 опции hid_apple применились сразу после ребута без задрючивания dracut.
Как и переименование интерфейсов в systemd-networkd, которое на Fedora 23 требовало вызова dracut, на Fedora 24 происходит без дополнительных телодвижений.

ArcFi
()
Ответ на: комментарий от ArcFi

У меня вообще не Fedora. Это общие рассуждения. Иногда что-то пихается в initcpio, иногда — нет. Но если ты обнаруживаешь, что вновь добавленные тобой правила modprobe/networkd/udev и тому подобные почему-то не работают, то пересоздание initcpio — первое, что стоит предпринять.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от no-dashi

Дракат не знает, конечно. Знать должен был тот, кто писал дефолтную конфигурацию драката.

tailgunner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.