Страница 1 из 1

Сокращение времени сборки ядра запретом отдельных модулей

Добавлено: 2009-04-23 14:37:24
xDi
Очень напрягает, что ядро на слабой машинке собирается неприятно долго. При этом мир и ядро компилятся под конкретное железо (установкой архитектурозависимых опций компиляции, отключением некоторых частей мира и т.п.).

Вопрос 1: Как можно запретить сборку подгружаемых модулей ядра, которые точно не потребуются? К примеру, около 70-80 сетевых интерфейсов, хотя реально используется один, максимум два.

Наверное так же потребуется знать зависимости модулей, чтобы для нужного модуля не запретить модули, от которых он зависит.

Вопрос 2: Как/где узнать эти зависимости?

Код: Выделить всё

[15:30]~> uname -a
FreeBSD eeepc.my 7.2-PRERELEASE FreeBSD 7.2-PRERELEASE #7: Wed Apr 15 11:40:56 MSD 2009     root@eeepc.my:/usr/obj/usr/src/sys/EEEPC  i386

Re: Сокращение времени сборки ядра запретом отдельных модулей

Добавлено: 2009-04-23 14:40:19
paradox
в опции ядра nodevice fxp например

Re: Сокращение времени сборки ядра запретом отдельных модулей

Добавлено: 2009-04-23 14:44:15
xDi
paradox писал(а):в опции ядра nodevice fxp например
А где посмотреть все возможные имена модулей? NOTES?

Вопрос про зависимости остается открытым.

Re: Сокращение времени сборки ядра запретом отдельных модулей

Добавлено: 2009-04-23 15:35:48
chd
ls /sys/modules :)
смотришь свои kldstat, прописываешь их в конфиг ядра:

makeoptions MODULES_OVERRIDE="linux linprocfs linsysfs tmpfs aio rc4 nfsserver nfssvc procfs pseudofs krpc zfs opensolaris dtrace cyclic"
makeoptions MODULES_OVERRIDE+="usb/usb usb/uhci usb/ohci usb/ehci usb/uhid usb/ukbd usb/ulpt usb/umass usb/ucom usb/quirk cam malo"

девайсы лишние просто убрать?

Re: Сокращение времени сборки ядра запретом отдельных модулей

Добавлено: 2009-04-23 16:33:19
xDi
chd писал(а):ls /sys/modules :)
смотришь свои kldstat, прописываешь их в конфиг ядра:

makeoptions MODULES_OVERRIDE="linux linprocfs linsysfs tmpfs aio rc4 nfsserver nfssvc procfs pseudofs krpc zfs opensolaris dtrace cyclic"
makeoptions MODULES_OVERRIDE+="usb/usb usb/uhci usb/ohci usb/ehci usb/uhid usb/ukbd usb/ulpt usb/umass usb/ucom usb/quirk cam malo"

девайсы лишние просто убрать?
Ну можно и так сказать. Чтобы они не собирасись и не отнимали время при компиляции ядра.

Re: Сокращение времени сборки ядра запретом отдельных модулей

Добавлено: 2009-04-24 1:25:25
Dorlas
Если просто собираешь новое ядро на конкретном релизе (без обновления мира), то можно сделать так:

Код: Выделить всё

echo 'NO_MODULES="YES"' >> /etc/make.conf
После пересборки ядра и установки скопируй все модули из каталога /boot/kernel.old/ в каталог /boot/kernel/ (ядро не перетри) и выполни kldxref /boot/kernel/

Данный метод экономит время в 5 раз примерно (10 минут против 2 по моим замерам).

Другие методы ускорения -jX - если у Вас многопроцессорный камень.

Еще можно и нужно использовать Memory Disk (man mdconfig) - уменьшает время сборки ядра на 5-7%.

Re: Сокращение времени сборки ядра запретом отдельных модулей

Добавлено: 2009-04-24 12:11:13
zingel
ещё вариант

Код: Выделить всё

echo "MAKE_JOBS_NUMBER=X" >> /etc/make.conf
попробовал процентов на 15-20 быстрее