Коллеги, прошу совета. Выполняю установку модуля ip_geoip без перекомпиляции ядра. В частности на машине с Centos 5.2 (Linux 2.6.18-92.el5 x86_64 GNU/Linux) пытаюсь скомпилировать модуль ip_geoip.
по аналогии с вот таким руководством (http://www1.opennet.ru/base/net/connlimit_fedora.txt.html) установил сорцы ядра, скачал установил сорцы iptables (из src.rpm). из patch-o-matic доложил файлов про geoip. Запинал его чтобы оно скомпилировалось. Модуль в ядро загрузил (insmod)
# lsmod|grep geoip
xt_geoip 36616 0
x_tables 50377 16 ipt_SET,ipt_set,xt_geoip,ipt_connlimit,ipt_REDIRECT,iptable_nat,ipt_recent,ipt_owner,xt_conntrack,ipt_LOG,xt_limit,xt_multiport,ipt_REJECT,xt_state,xt_tcpudp,ip_tables
# iptables -m geoip --help
/lib64/xtables/libxt_geoip.so: /lib64/xtables/libxt_geoip.so: undefined symbol: exit_error
iptables v1.4.3.2: Couldn't load match `geoip':/lib64/xtables/libipt_geoip.so: cannot open shared object file: No such file or directory
Вопросов два 1. Почему оно пытается найти libipt, если уже есть libxt? Правильно я понимаю, что это реакция на невозможность загрузки libxt?
2. Как подсунуть ему exit_error функцию? Судя по сорцам, эта функция определена в ipset (собственно, ради этого ipset и поставил)
[/usr/src/ipset-3.2]# grep -r exit_error *|grep void
ipset.c:void exit_error(int status, const char *msg, ...)
ipset.h:extern void exit_error(int status, const char *msg, ...);