Re: ng_ipacct

From
Dmitry Pryanishnikov (2:464/36)
To
Eugene Grosbein
Date
2006-12-21T11:51:36Z
Area
RU.UNIX.BSD
From: Dmitry Pryanishnikov <dmitry@atlantis.dp.ua>


Привет!

On Thu, 21 Dec 2006, Eugene Grosbein wrote:
> SS> При пересборке ядра в 6.x каталог /boot/kernel перемещается в
> SS> /boot/kernel.old. Соотв. требуется пересборка тех портов, которые
> SS> содержат kld-modules. Я так подозреваю это именно тот случай.
>
> Я везде использую MODULES_WITH_WORLD=no, одним из эффектов

   Учитывая, что переменная проверяется не по значению, а на defined(),
можно по ошибке подумать, что Вы приказываете _не_ строить модули с миром.
Но мы-то знаем, что это не так ;) Поэтому, _если уж советовать_, лучше
в каноническом стиле, который нам советует (на примере NO_MODULES) 
src/share/examples/etc/make.conf:

MODULES_WITH_WORLD=		#Build modules with world (not with kernel)

Однако см. ниже...

> является хранение модулей в /boot/modules, отдельно от ядра.
> Все такие странные проблемы уходят, всем рекомендую.

   IMHO зря _всем_ рекомендуете. Для тех, кто часто обновляет исходники _и_
перестраивает ядро это плохой, негодный совет. Я, например, при очередном
обновлении STABLE смотрю лог csup (а часто и diff -u старого и нового src),
и, если изменения принципиальные только в ядре (а остальной мир практически
не изменился) - делаю только make kernel. Но устаревшие модуля мне,
естественно, не нужны. Ведь и ядро, и модуля, которые строит buildkernel -
продукт одних и тех же текстов из src/sys, они тесно интегрированы,
разрывать их перестроение - чревато тонкими глюками и невозможностью толком
проанализировать kernel dump.

> Изменение конфигурации ядра почти всегда - не причина пересобирать
> модули, а оверхед дикий. И проблемы для портов нет.

   Вот как раз порты, кладя в /boot/modules свои модуля, порождают кучу 
вопросов у пользователей-не-девелоперов, когда последние обновляют систему,
а она, погань, слетает при перезагрузке из-за устаревшего драйвера nVidia
или какого-нибудь rtc.ko. Тут MODULES_WITH_WORLD AFAIK ничем помочь не
может (а созданием в /boot/modules мешанины из актуальных базовых и 
устаревших портовых модулей, наоборот, навредит). IMHO /boot/modules примерно 
так же соотносится с /boot/kernel, как /usr/local с /usr: при обновлении 
текстов ядра (мира) мы пересобираем содержимое /boot/kernel (/usr/не-local), а 
своевременное обновление /boot/modules и /usr/local при смене веток, например, 
RELENG_5 -> 6 - за этим уже мы сами (или наши скрипты, но не базовый
{build,install}{kernel,world}) должны следить.


Sincerely, Dmitry
-- 
Atlantis ISP, System Administrator
e-mail:  dmitry@atlantis.dp.ua
nic-hdl: LYNX-RIPE
--- ifmail v.2.14.os-p7
 * Origin: Atlantis ISP (2:464/36@fidonet)
SEEN-BY: 46/999 50/12 400/814 450/1024 463/68 464/0 36 66 100 128 999 465/213
SEEN-BY: 550/5068 5000/0 20 26 27 61 94 104 116 130 170 5000 5002/76 5002
SEEN-BY: 5004/75 1111 5005/14 5009/14 5010/77 275 5011/13 5012/46 5013/21
SEEN-BY: 5015/28 5019/26 5020/400 545 2238 2395 2871 4441 5021/29 5025/3
SEEN-BY: 5027/12 5029/34 5030/1080 1957 5035/38 5045/7 5054/1 4 8 9 11 28 35
SEEN-BY: 5054/36 37 45 66 67 70 75 84 85 5055/177 5057/119 5059/9 5062/10
SEEN-BY: 5063/3 5064/7 5070/66 5076/1 5077/70 5084/9 5085/13 5090/1029 5095/20
SEEN-BY: 5096/18 6001/10 6090/1
PATH: 464/36 5000/5000 5020/545 5054/1 37