1 (04.02.2014 09:24:02 отредактировано cdrw)

Требуется подгрузка модуля ядра под именем sg. Естественно, я его подгрузил командой

 Консоль:
modprobe sg

А куда прописать в Slackware, чтобы он подгружался автоматом при запуске системы? Потому как после выключения или перезагрузки системы, нужно опять вбивать команду.
Интересует, именно как это правильно делается в Slackware. Понятно, что можно и в /etc/rc.d/rc.local записать, но есть же наверное для этого какой то классический способ для этого случая...

2

Всё, вопрос снимается. Пропажа нашлась методом "научного тыка". Вызов нужных модулей перечислен в файле /etc/rc.d/rc.modules-3.10.17-smp (в моём случае).
Мне всего лишь понадобилось раскомментировать нужную строку:

 Консоль:
#/sbin/modprobe ide-scsi

### SCSI kernel support:
#/sbin/modprobe scsi_mod
#/sbin/modprobe scsi_syms
#/sbin/modprobe sd_mod
/sbin/modprobe sg
#/sbin/modprobe sr_mod
#/sbin/modprobe st

3

Для подгрузки модулей традиционно используется /etc/rc.d/rc.modules* (в части динамической -- зависящей от наличия/отсутствия устройств -- ныне его заменяет udev).

Какой именно из /etc/rc.d/rc.modules* используется (да, их может быть несколько), определяется следующей логикой в /etc/rc.d/rc.S:

# This loads any kernel modules that are needed.  These might be required to
# use your ethernet card, sound card, or other optional hardware.
# Priority is given first to a script named "rc.modules.local", then
# to "rc.modules-$FULL_KERNEL_VERSION", and finally to the plain "rc.modules".
# Note that if /etc/rc.d/rc.modules.local is found, then that will be the ONLY
# rc.modules script the machine will run, so make sure it has everything in
# it that you need.
if [ -x /etc/rc.d/rc.modules.local -a -r /proc/modules ]; then
  echo "Running /etc/rc.d/rc.modules.local:"
  /bin/sh /etc/rc.d/rc.modules.local
elif [ -x /etc/rc.d/rc.modules-$(uname -r) -a -r /proc/modules ]; then
  echo "Running /etc/rc.d/rc.modules-$(uname -r):"
  . /etc/rc.d/rc.modules-$(uname -r)
elif [ -x /etc/rc.d/rc.modules -a -r /proc/modules -a -L /etc/rc.d/rc.modules ]; then
  echo "Running /etc/rc.d/rc.modules -> $(readlink /etc/rc.d/rc.modules):"
  . /etc/rc.d/rc.modules
elif [ -x /etc/rc.d/rc.modules -a -r /proc/modules ]; then
  echo "Running /etc/rc.d/rc.modules:"
  . /etc/rc.d/rc.modules
fi

То есть, первый из имеющихся исполняемых из:
/etc/rc.d/rc.modules.local
/etc/rc.d/rc.modules-$(uname -r)
/etc/rc.d/rc.modules

Для помещения "modprobe модуль" есть одно препятствие -- если загруженный модуль требуется на более ранних стадиях загрузки, например, инициализация устройств хранения данных или сетевых устройств (для них в Slackware предназначен отдельный файл -- /etc/rc.d/rc.netdev, вызов которого присутствует в rc.modules*).

grep в помощь.

4

Хм, опоздал  ah

5

bormant пишет:

Хм, опоздал  ah

Нет, почему же. Большое спасибо! Вы дали дополнительную инфу, сам бы я это вряд ли разглядел бы!

6

Есть два варианта: создайте файл в /etc/modprobe.d/sg.conf с одной-единственной строкой:

install sg /sbin/modprobe sg

или раскомментируйте указанную вами команду в /etc/rc.d/rc.modules-`uname -r`.

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Slackware64-current/Xfce/Lenovo G580

7

По поводу /etc/modprobe.d есть смысл предварительно прочесть man modprobe.d.
Если правильно путаю, предназначение рецепта install/remove несколько иное, при выполнении modprobe module / modprobe -r module на самом деле выполнять что-то иное.
Наличие такого файла само по себе загрузку/удаление модуля не вызовет, только задаёт, что делать при загрузке/удалении.

8

yars пишет:

Есть два варианта: создайте файл в /etc/modprobe.d/sg.conf с одной-единственной строкой:

install sg /sbin/modprobe sg

Примерно это я и искал, когда задавал вопрос...

yars пишет:

или раскомментируйте указанную вами команду в /etc/rc.d/rc.modules-`uname -r`.

А на это вышел просмотром файлов... Первый вариант наверное лучше. Там сам будешь знать, что насовал.
Спасибо!

9

bormant пишет:

По поводу /etc/modprobe.d есть смысл предварительно прочесть man modprobe.d.

Ой, пробовал... Нифига не понял... Возможно маны и полезная штука, но только в контексте тотального изучения, как шпаргалки...
Изучать по манам, врагу такого не пожелаю.

10

Еще раз: опции install/remove в modprpbe.d не загрузят/выгрузят модуль. Загрузка/выгрузка делается вызовом modprobe. Упомянутые опции задают, что будет делать modprobe для помянутого там модуля.

11

bormant пишет:

Упомянутые опции задают, что будет делать modprobe для помянутого там модуля.

А, дошло. То есть, когда  модуль загружается (через rc.modules, или при подключении устройства, связанного с этим модулем), modprobe смотрит на запись в /{etc,lib}/modprobe.d/*.conf и, если находит там строку install module, то выполняет команду, указанную в этой строке. Я был неправ, неправильно man modprobe.d прочитал ab

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Slackware64-current/Xfce/Lenovo G580