Доброе время суток. У меня возникла необходимость добавить в ядро поддержку модуля IMQ. Система - ASPLinux 9.2 . Скачал свежие исходники ядра 2.4.31, пропатчил их соответствующим патчем с www.linuximq.net, взял .config от старого ядра (2.4.22), в make menuconfig включил поддержку imq непосредственно в ядро. Скомпилировал, установил, загрузил новое ядро. Модуль вроде заработал, по команде
ip link set imq0 up
в системе поднимался новый интерфейс. Но после этого перестал работать подгружаемый модуль ядра ip_queue (он у меня перехватывал пакеты у ядра и заворачивал их в демон учета трафика). На команду modprobe ip_queue система среагировала так:
/lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_queue.o: init_module: Device or resource busy
Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters.
You may find more information in syslog or the output from dmesg
/lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_queue.o: insmod
/lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_queue.o failed
/lib/modules/2.4.31/kernel/net/ipv4/netfilter/ip_queue.o: insmod ip_queue failed
В /var/log/messages нашел запись:
kernel: failed to register queue handler
Попробовал ядро скомпилить по другому: ip_queue и imq сделать в виде подгружаемых модулей. Та же самая проблема возникла теперь уже при загрузке imq : Device or resource busy и т.д. Когда же я скомпилил оба модуля непосредственно в ядро, при последовательном прохождении трафика через цели iptables QUEUE и IMQ система намертво зависала(проверял, пуская черен них ftp-трафик и заходя с удаленной машины на локальный ftp-cервер). Кто-нибудь может сказать, как эти модули заставить корректно работать друг с другом? Вообще такое возможно? Кто-нибудь такую схему реализовывал ( последовательно заворачивать трафик сперва в QUEUE, а затем в IMQ)?