iptables für Snom 870

Wie in meinem früheren Post über das Snom 870 erwähnt, fehlen auf dem Snom 870 mit aktueller Firmware (V8.7.3.25) die Kernelmodule für iptables.

Auf dem Snom läuft ein Linux 2.6.19. Der geneigte Linux-Nutzer weiß, dass man diese Module cross-compilen kann.

Wie geht das?
Zunächst lädt man sich von Snom „Necessary tools to compile snom710,720,760,821,870,Vision und MeetingPoint sources“ herunter und entpackt diese.
Danach benötigt man den Linux-Kernel mit der Version 2.6.19 (aus dem Kernel-Git oder direkt von http://kernel.org).
Anschließend kopiert man die Sourcen der iptables-Module des Vanilla-Kernels in den entsprechenden Ordner des Snom-Kernels, und bearbeitet mit seinem Lielingstool die Config des Snom-Kernels um die Module zu kompilieren.
Anschließnd fügt man Toolchain und Compiler seinem Path hinzu

export PATH=/pfad/zu/necessary/tools/firmware/toolchain/CodeSourcery/Sourcery_G++_Lite/libexec/gcc/arm-none-linux-gnueabi/4.2.0:/pfad/zu/necessary/toolsfirmware/toolchain/CodeSourcery/Sourcery_G++_Lite/bin/:$PATH

Anschließend kann man die Module mit

make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm modules

kompilieren und mit

make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm modules_install INSTALL_MOD_PATH=/pfad/zu/modules
an seine Lieblingsstelle kopieren.

Die Module kann man nun auf das snom nach /lib/modules/KERNELVERSION/kernel laden.
Zuletzt muss man die /lib/modules/KERNELVERSION/modules.dep anpassen, damit mit module korrekt geladen werden können.


kernel/net/ipv4/netfilter/ipt_ecn.ko:
kernel/net/ipv4/netfilter/ip_tables.ko:
kernel/net/ipv4/netfilter/ip_conntrack_proto_sctp.ko:
kernel/net/ipv4/netfilter/ip_nat.ko:kernel/net/ipv4/netfilter/ip_conntrack.ko
kernel/net/ipv4/netfilter/ipt_TCPMSS.ko:
kernel/net/ipv4/netfilter/arpt_mangle.ko:
kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko:
kernel/net/ipv4/netfilter/ipt_tos.ko:
kernel/net/ipv4/netfilter/ipt_ttl.ko:
kernel/net/ipv4/netfilter/ipt_hashlimit.ko:
kernel/net/ipv4/netfilter/ip_nat_h323.ko:
kernel/net/ipv4/netfilter/ip_nat_pptp.ko:
kernel/net/ipv4/netfilter/ip_nat_snmp_basic.ko:
kernel/net/ipv4/netfilter/ipt_SAME.ko:
kernel/net/ipv4/netfilter/ipt_owner.ko:
kernel/net/ipv4/netfilter/iptable_nat.ko:
kernel/net/ipv4/netfilter/ip_nat_tftp.ko:
kernel/net/ipv4/netfilter/ip_conntrack.ko:
kernel/net/ipv4/netfilter/ip_conntrack_h323.ko:
kernel/net/ipv4/netfilter/iptable_raw.ko:
kernel/net/ipv4/netfilter/ipt_addrtype.ko:
kernel/net/ipv4/netfilter/ip_conntrack_pptp.ko:
kernel/net/ipv4/netfilter/ip_conntrack_ftp.ko:
kernel/net/ipv4/netfilter/ip_conntrack_netbios_ns.ko:
kernel/net/ipv4/netfilter/ip_conntrack_irc.ko:
kernel/net/ipv4/netfilter/ipt_ah.ko:
kernel/net/ipv4/netfilter/arp_tables.ko:
kernel/net/ipv4/netfilter/ip_conntrack_sip.ko:
kernel/net/ipv4/netfilter/ipt_recent.ko:
kernel/net/ipv4/netfilter/ip_nat_amanda.ko:
kernel/net/ipv4/netfilter/ipt_ULOG.ko:
kernel/net/ipv4/netfilter/ipt_REDIRECT.ko:
kernel/net/ipv4/netfilter/ipt_REJECT.ko:
kernel/net/ipv4/netfilter/ip_conntrack_tftp.ko:
kernel/net/ipv4/netfilter/ip_nat_ftp.ko:
kernel/net/ipv4/netfilter/iptable_filter.ko:
kernel/net/ipv4/netfilter/ip_nat_irc.ko:
kernel/net/ipv4/netfilter/ipt_NETMAP.ko:
kernel/net/ipv4/netfilter/ip_conntrack_amanda.ko:
kernel/net/ipv4/netfilter/ip_nat_sip.ko:
kernel/net/ipv4/netfilter/ipt_ECN.ko:
kernel/net/ipv4/netfilter/ipt_LOG.ko:
kernel/net/ipv4/netfilter/arptable_filter.ko:
kernel/net/ipv4/netfilter/ipt_iprange.ko:
kernel/net/ipv4/netfilter/iptable_mangle.ko:
kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko:
kernel/net/ipv4/netfilter/ipt_TOS.ko:
kernel/net/ipv4/netfilter/ipt_TTL.ko:

Es sind wahrscheinlich nicht alle Abhängigkeiten damit abgedeckt, aber für viele Zwecke reichen diese.