treewide: add support for building kernel modules used by Gluon into the kernel
This commit is contained in:
parent
d139a13563
commit
74f4119c1b
@ -9,7 +9,7 @@ define Package/gluon-client-bridge
|
||||
SECTION:=gluon
|
||||
CATEGORY:=Gluon
|
||||
TITLE:=Provides a bridge and a wireless interface for clients to connect to
|
||||
DEPENDS:=+gluon-core +kmod-veth
|
||||
DEPENDS:=+gluon-core +kmod-veth +@GLUON_SPECIALIZE_KERNEL:KERNEL_VETH
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackageGluon,gluon-client-bridge))
|
||||
|
338
package/gluon-core/Config.in
Normal file
338
package/gluon-core/Config.in
Normal file
@ -0,0 +1,338 @@
|
||||
config KERNEL_NET_IP_TUNNEL
|
||||
bool
|
||||
|
||||
config KERNEL_NET_UDP_TUNNEL
|
||||
bool
|
||||
|
||||
config KERNEL_VXLAN
|
||||
bool
|
||||
select KERNEL_NET_IP_TUNNEL
|
||||
select KERNEL_NET_UDP_TUNNEL
|
||||
|
||||
config KERNEL_VETH
|
||||
bool
|
||||
|
||||
|
||||
# for fastd
|
||||
|
||||
config KERNEL_TUN
|
||||
bool
|
||||
|
||||
|
||||
# for tunneldigger
|
||||
|
||||
config KERNEL_L2TP_V3
|
||||
bool
|
||||
|
||||
config KERNEL_L2TP_IP
|
||||
bool
|
||||
|
||||
config KERNEL_L2TP_ETH
|
||||
bool
|
||||
|
||||
config KERNEL_L2TP
|
||||
bool
|
||||
select KERNEL_L2TP_V3
|
||||
select KERNEL_L2TP_IP
|
||||
select KERNEL_L2TP_ETH
|
||||
|
||||
|
||||
# for simple-tc
|
||||
|
||||
config KERNEL_NET_SCHED
|
||||
bool
|
||||
|
||||
config KERNEL_NET_CLS
|
||||
bool
|
||||
select KERNEL_NET_SCHED
|
||||
|
||||
config KERNEL_NET_CLS_ACT
|
||||
bool
|
||||
select KERNEL_NET_CLS
|
||||
|
||||
config KERNEL_NET_CLS_BASIC
|
||||
bool
|
||||
select KERNEL_NET_CLS
|
||||
|
||||
config KERNEL_NET_SCH_TBF
|
||||
bool
|
||||
select KERNEL_NET_SCHED
|
||||
|
||||
config KERNEL_NET_SCH_INGRESS
|
||||
bool
|
||||
select KERNEL_NET_CLS_ACT
|
||||
|
||||
|
||||
# for batman-adv
|
||||
|
||||
config KERNEL_DUMMY
|
||||
bool
|
||||
|
||||
config KERNEL_CRC16
|
||||
bool
|
||||
|
||||
config KERNEL_LIBCRC32C
|
||||
bool
|
||||
|
||||
|
||||
# Netfilter modules used by ebtables and fw3
|
||||
|
||||
config KERNEL_NETFILTER
|
||||
bool
|
||||
|
||||
config KERNEL_NETFILTER_ADVANCED
|
||||
bool
|
||||
select KERNEL_NETFILTER
|
||||
|
||||
config KERNEL_NETFILTER_XTABLES
|
||||
bool
|
||||
select KERNEL_NETFILTER_ADVANCED
|
||||
|
||||
config KERNEL_BRIDGE_NF_EBTABLES
|
||||
bool
|
||||
select KERNEL_NETFILTER_XTABLES
|
||||
|
||||
config KERNEL_BRIDGE_EBT_T_FILTER
|
||||
bool
|
||||
select KERNEL_BRIDGE_NF_EBTABLES
|
||||
|
||||
config KERNEL_BRIDGE_EBT_T_NAT
|
||||
bool
|
||||
select KERNEL_BRIDGE_NF_EBTABLES
|
||||
|
||||
config KERNEL_BRIDGE_EBT_ARP
|
||||
bool
|
||||
select KERNEL_BRIDGE_NF_EBTABLES
|
||||
|
||||
config KERNEL_BRIDGE_EBT_IP
|
||||
bool
|
||||
select KERNEL_BRIDGE_NF_EBTABLES
|
||||
|
||||
config KERNEL_BRIDGE_EBT_IP6
|
||||
bool
|
||||
select KERNEL_BRIDGE_NF_EBTABLES
|
||||
|
||||
config KERNEL_BRIDGE_EBT_LIMIT
|
||||
bool
|
||||
select KERNEL_BRIDGE_NF_EBTABLES
|
||||
|
||||
config KERNEL_BRIDGE_EBT_MARK
|
||||
bool
|
||||
select KERNEL_BRIDGE_NF_EBTABLES
|
||||
|
||||
config KERNEL_BRIDGE_EBT_MARK_T
|
||||
bool
|
||||
select KERNEL_BRIDGE_NF_EBTABLES
|
||||
|
||||
|
||||
# Not all of the following modules are really required for Gluon, but fw3 pulls
|
||||
# them in, so we add them to the kernel config to reduce the number of loaded
|
||||
# modules
|
||||
|
||||
# kmod-nf-conntrack
|
||||
|
||||
config KERNEL_NF_CONNTRACK
|
||||
bool
|
||||
select KERNEL_NETFILTER_ADVANCED
|
||||
|
||||
config KERNEL_NF_CONNTRACK_RTCACHE
|
||||
bool
|
||||
select KERNEL_NF_CONNTRACK
|
||||
|
||||
config KERNEL_NF_CONNTRACK_IPV4
|
||||
bool
|
||||
select KERNEL_NF_CONNTRACK
|
||||
|
||||
|
||||
# kmod-nf-conntrack6
|
||||
|
||||
config KERNEL_NF_CONNTRACK_IPV6
|
||||
bool
|
||||
select KERNEL_NF_CONNTRACK
|
||||
|
||||
|
||||
# kmod-nf-ipt
|
||||
|
||||
config KERNEL_NF_REJECT_IPV4
|
||||
bool
|
||||
select KERNEL_NETFILTER_ADVANCED
|
||||
|
||||
config KERNEL_IP_NF_IPTABLES
|
||||
bool
|
||||
select KERNEL_NETFILTER_XTABLES
|
||||
select KERNEL_NF_REJECT_IPV4
|
||||
|
||||
|
||||
# kmod-nf-ipt6
|
||||
|
||||
config KERNEL_NF_REJECT_IPV6
|
||||
bool
|
||||
select KERNEL_NETFILTER_ADVANCED
|
||||
|
||||
config KERNEL_IP6_NF_IPTABLES
|
||||
bool
|
||||
select KERNEL_NETFILTER_XTABLES
|
||||
select KERNEL_NF_REJECT_IPV6
|
||||
|
||||
|
||||
# kmod-nf-nat
|
||||
|
||||
config KERNEL_NF_NAT
|
||||
bool
|
||||
select KERNEL_NF_CONNTRACK
|
||||
|
||||
config KERNEL_NF_NAT_REDIRECT
|
||||
bool
|
||||
select KERNEL_NF_NAT
|
||||
|
||||
config KERNEL_NF_NAT_IPV4
|
||||
bool
|
||||
select KERNEL_NETFILTER_ADVANCED
|
||||
select KERNEL_NF_NAT
|
||||
|
||||
config KERNEL_NF_NAT_MASQUERADE_IPV4
|
||||
bool
|
||||
select KERNEL_NF_NAT_IPV4
|
||||
|
||||
|
||||
# kmod-ipt-core
|
||||
|
||||
config KERNEL_IP_NF_FILTER
|
||||
bool
|
||||
select KERNEL_IP_NF_IPTABLES
|
||||
|
||||
config KERNEL_IP_NF_MANGLE
|
||||
bool
|
||||
select KERNEL_IP_NF_IPTABLES
|
||||
|
||||
config KERNEL_IP_NF_TARGET_REJECT
|
||||
bool
|
||||
select KERNEL_IP_NF_FILTER
|
||||
|
||||
config KERNEL_NETFILTER_XT_MATCH_LIMIT
|
||||
bool
|
||||
select KERNEL_NETFILTER_XTABLES
|
||||
|
||||
config KERNEL_NETFILTER_XT_MATCH_MAC
|
||||
bool
|
||||
select KERNEL_NETFILTER_XTABLES
|
||||
|
||||
config KERNEL_NETFILTER_XT_MATCH_MULTIPORT
|
||||
bool
|
||||
select KERNEL_NETFILTER_XTABLES
|
||||
|
||||
config KERNEL_NETFILTER_XT_MATCH_COMMENT
|
||||
bool
|
||||
select KERNEL_NETFILTER_XTABLES
|
||||
|
||||
config KERNEL_NETFILTER_XT_MATCH_TIME
|
||||
bool
|
||||
select KERNEL_NETFILTER_XTABLES
|
||||
|
||||
config KERNEL_NETFILTER_XT_MARK
|
||||
bool
|
||||
select KERNEL_NETFILTER_XTABLES
|
||||
|
||||
config KERNEL_NETFILTER_XT_TARGET_LOG
|
||||
bool
|
||||
select KERNEL_NETFILTER_XTABLES
|
||||
|
||||
config KERNEL_NETFILTER_XT_TARGET_TCPMSS
|
||||
bool
|
||||
select KERNEL_NETFILTER_XTABLES
|
||||
|
||||
# kmod-ip6tables
|
||||
|
||||
config KERNEL_IP6_NF_FILTER
|
||||
bool
|
||||
select KERNEL_IP6_NF_IPTABLES
|
||||
|
||||
config KERNEL_IP6_NF_MANGLE
|
||||
bool
|
||||
select KERNEL_IP6_NF_IPTABLES
|
||||
|
||||
config KERNEL_IP6_NF_TARGET_REJECT
|
||||
bool
|
||||
select KERNEL_IP6_NF_IPTABLES
|
||||
|
||||
|
||||
# kmod-ipt-conntrack
|
||||
|
||||
config KERNEL_NETFILTER_XT_MATCH_STATE
|
||||
bool
|
||||
select KERNEL_NETFILTER_XTABLES
|
||||
select KERNEL_NF_CONNTRACK
|
||||
|
||||
config KERNEL_NETFILTER_XT_MATCH_CONNTRACK
|
||||
bool
|
||||
select KERNEL_NETFILTER_XTABLES
|
||||
select KERNEL_NF_CONNTRACK
|
||||
|
||||
|
||||
# kmod-ipt-nat
|
||||
|
||||
config KERNEL_IP_NF_NAT
|
||||
bool
|
||||
select KERNEL_NF_NAT
|
||||
select KERNEL_IP_NF_IPTABLES
|
||||
|
||||
config KERNEL_IP_NF_TARGET_MASQUERADE
|
||||
bool
|
||||
select KERNEL_NF_NAT_MASQUERADE_IPV4
|
||||
select KERNEL_IP_NF_NAT
|
||||
|
||||
config KERNEL_IP_NF_TARGET_REDIRECT
|
||||
bool
|
||||
select KERNEL_NF_NAT
|
||||
select KERNEL_IP_NF_NAT
|
||||
|
||||
|
||||
# kmod-ipt-extra
|
||||
|
||||
config KERNEL_NETFILTER_XT_MATCH_ADDRTYPE
|
||||
bool
|
||||
select KERNEL_NETFILTER_XTABLES
|
||||
|
||||
config KERNEL_NETFILTER_XT_MATCH_OWNER
|
||||
bool
|
||||
select KERNEL_NETFILTER_XTABLES
|
||||
|
||||
config KERNEL_NETFILTER_XT_MATCH_PKTTYPE
|
||||
bool
|
||||
select KERNEL_NETFILTER_XTABLES
|
||||
|
||||
config KERNEL_NETFILTER_XT_MATCH_QUOTA
|
||||
bool
|
||||
select KERNEL_NETFILTER_XTABLES
|
||||
|
||||
|
||||
config GLUON_SPECIALIZE_KERNEL
|
||||
bool "Specialize kernel for Gluon"
|
||||
select KERNEL_VXLAN
|
||||
select KERNEL_NF_CONNTRACK_RTCACHE
|
||||
select KERNEL_NF_CONNTRACK_IPV4
|
||||
select KERNEL_NF_CONNTRACK_IPV6
|
||||
select KERNEL_IP_NF_IPTABLES
|
||||
select KERNEL_IP6_NF_IPTABLES
|
||||
select KERNEL_NF_NAT_REDIRECT
|
||||
select KERNEL_NF_NAT_IPV4
|
||||
select KERNEL_NF_NAT_MASQUERADE_IPV4
|
||||
select KERNEL_IP_NF_FILTER
|
||||
select KERNEL_IP_NF_MANGLE
|
||||
select KERNEL_IP_NF_TARGET_REJECT
|
||||
select KERNEL_IP6_NF_FILTER
|
||||
select KERNEL_IP6_NF_MANGLE
|
||||
select KERNEL_IP6_NF_TARGET_REJECT
|
||||
select KERNEL_NETFILTER_XT_MATCH_LIMIT
|
||||
select KERNEL_NETFILTER_XT_MATCH_MAC
|
||||
select KERNEL_NETFILTER_XT_MATCH_MULTIPORT
|
||||
select KERNEL_NETFILTER_XT_MATCH_COMMENT
|
||||
select KERNEL_NETFILTER_XT_MATCH_TIME
|
||||
select KERNEL_NETFILTER_XT_MARK
|
||||
select KERNEL_NETFILTER_XT_TARGET_LOG
|
||||
select KERNEL_NETFILTER_XT_TARGET_TCPMSS
|
||||
select KERNEL_NETFILTER_XT_MATCH_STATE
|
||||
select KERNEL_NETFILTER_XT_MATCH_CONNTRACK
|
||||
select KERNEL_IP_NF_NAT
|
||||
select KERNEL_IP_NF_TARGET_MASQUERADE
|
||||
select KERNEL_IP_NF_TARGET_REDIRECT
|
@ -23,6 +23,10 @@ define Package/gluon-core/description
|
||||
Gluon community wifi mesh firmware framework: core
|
||||
endef
|
||||
|
||||
define Package/gluon-core/config
|
||||
source "$(SOURCE)/Config.in"
|
||||
endef
|
||||
|
||||
define Package/gluon-core/install
|
||||
$(Gluon/Build/Install)
|
||||
|
||||
|
@ -10,7 +10,10 @@ define Package/gluon-ebtables-limit-arp
|
||||
SECTION:=gluon
|
||||
CATEGORY:=Gluon
|
||||
TITLE:=Ebtables limiter for ARP packets
|
||||
DEPENDS:=+gluon-core +gluon-ebtables gluon-mesh-batman-adv
|
||||
DEPENDS:=+gluon-core +gluon-ebtables gluon-mesh-batman-adv \
|
||||
+@GLUON_SPECIALIZE_KERNEL:KERNEL_BRIDGE_EBT_LIMIT \
|
||||
+@GLUON_SPECIALIZE_KERNEL:KERNEL_BRIDGE_EBT_MARK \
|
||||
+@GLUON_SPECIALIZE_KERNEL:KERNEL_BRIDGE_EBT_MARK_T
|
||||
endef
|
||||
|
||||
define Package/gluon-ebtables-limit-arp/description
|
||||
|
@ -4,13 +4,23 @@ PKG_NAME:=gluon-ebtables
|
||||
PKG_VERSION:=1
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_CONFIG_DEPENDS := CONFIG_GLUON_SPECIALIZE_KERNEL
|
||||
|
||||
include ../gluon.mk
|
||||
|
||||
define Package/gluon-ebtables
|
||||
SECTION:=gluon
|
||||
CATEGORY:=Gluon
|
||||
TITLE:=Ebtables support
|
||||
DEPENDS:=+gluon-core +ebtables-tiny +kmod-ebtables +kmod-ebtables-ipv4 +kmod-ebtables-ipv6
|
||||
DEPENDS:=+gluon-core +ebtables-tiny \
|
||||
+@GLUON_SPECIALIZE_KERNEL:KERNEL_BRIDGE_EBT_T_FILTER \
|
||||
+@GLUON_SPECIALIZE_KERNEL:KERNEL_BRIDGE_EBT_T_NAT \
|
||||
+@GLUON_SPECIALIZE_KERNEL:KERNEL_BRIDGE_EBT_ARP \
|
||||
+@GLUON_SPECIALIZE_KERNEL:KERNEL_BRIDGE_EBT_IP \
|
||||
+@GLUON_SPECIALIZE_KERNEL:KERNEL_BRIDGE_EBT_IP6 \
|
||||
+!GLUON_SPECIALIZE_KERNEL:kmod-ebtables \
|
||||
+!GLUON_SPECIALIZE_KERNEL:kmod-ebtables-ipv4 \
|
||||
+!GLUON_SPECIALIZE_KERNEL:kmod-ebtables-ipv6
|
||||
endef
|
||||
|
||||
define Package/gluon-ebtables/description
|
||||
|
@ -9,7 +9,7 @@ define Package/gluon-mesh-batman-adv/common
|
||||
SECTION:=gluon
|
||||
CATEGORY:=Gluon
|
||||
PROVIDES:=gluon-mesh-batman-adv
|
||||
DEPENDS:=+gluon-core +libgluonutil +gluon-client-bridge +gluon-ebtables +firewall +libiwinfo +kmod-dummy +libnl-tiny +libbatadv
|
||||
DEPENDS:=+gluon-core +libgluonutil +gluon-client-bridge +gluon-ebtables +firewall +libiwinfo +kmod-dummy +libnl-tiny +libbatadv +@GLUON_SPECIALIZE_KERNEL:KERNEL_DUMMY +@GLUON_SPECIALIZE_KERNEL:KERNEL_CRC16 +@GLUON_SPECIALIZE_KERNEL:KERNEL_LIBCRC32C
|
||||
endef
|
||||
|
||||
define Package/gluon-mesh-batman-adv-14
|
||||
|
@ -9,7 +9,14 @@ define Package/gluon-mesh-vpn-core
|
||||
SECTION:=gluon
|
||||
CATEGORY:=Gluon
|
||||
TITLE:=Basic support for connecting meshes via VPN tunnels
|
||||
DEPENDS:=+gluon-core +gluon-wan-dnsmasq +iptables +iptables-mod-extra +simple-tc
|
||||
DEPENDS:=+gluon-core +gluon-wan-dnsmasq +iptables +iptables-mod-extra +simple-tc \
|
||||
+@GLUON_SPECIALIZE_KERNEL:KERNEL_NETFILTER_XT_MATCH_ADDRTYPE \
|
||||
+@GLUON_SPECIALIZE_KERNEL:KERNEL_NETFILTER_XT_MATCH_OWNER \
|
||||
+@GLUON_SPECIALIZE_KERNEL:KERNEL_NETFILTER_XT_MATCH_PKTTYPE \
|
||||
+@GLUON_SPECIALIZE_KERNEL:KERNEL_NETFILTER_XT_MATCH_QUOTA \
|
||||
+@GLUON_SPECIALIZE_KERNEL:KERNEL_NET_CLS_BASIC \
|
||||
+@GLUON_SPECIALIZE_KERNEL:KERNEL_NET_SCH_TBF \
|
||||
+@GLUON_SPECIALIZE_KERNEL:KERNEL_NET_SCH_INGRESS
|
||||
USERID:=:gluon-mesh-vpn=800
|
||||
endef
|
||||
|
||||
|
@ -9,7 +9,7 @@ define Package/gluon-mesh-vpn-fastd
|
||||
SECTION:=gluon
|
||||
CATEGORY:=Gluon
|
||||
TITLE:=Support for connecting meshes via fastd
|
||||
DEPENDS:=+gluon-core +libgluonutil +gluon-mesh-vpn-core +fastd
|
||||
DEPENDS:=+gluon-core +libgluonutil +gluon-mesh-vpn-core +fastd +@GLUON_SPECIALIZE_KERNEL:KERNEL_TUN
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackageGluon,gluon-mesh-vpn-fastd))
|
||||
|
@ -9,7 +9,7 @@ define Package/gluon-mesh-vpn-tunneldigger
|
||||
SECTION:=gluon
|
||||
CATEGORY:=Gluon
|
||||
TITLE:=Support for connecting meshes via tunneltigger/L2TPv3 pseudowire
|
||||
DEPENDS:=+gluon-core +gluon-mesh-vpn-core +tunneldigger
|
||||
DEPENDS:=+gluon-core +gluon-mesh-vpn-core +tunneldigger +@GLUON_SPECIALIZE_KERNEL:KERNEL_L2TP
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackageGluon,gluon-mesh-vpn-tunneldigger))
|
||||
|
@ -0,0 +1,37 @@
|
||||
From: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
Date: Tue, 10 Apr 2018 09:03:52 +0200
|
||||
Subject: include/kernel.mk: build kmod packages with empty FILES
|
||||
|
||||
kmod packages without FILES did not have an install step defined, leading
|
||||
to no package being built. This affected netfilter/iptables packages, which
|
||||
filter out builtin modules from FILES.
|
||||
|
||||
Not building a package that it is selected in .config is problematic, as
|
||||
the generated empty package may be necessary to satisfy dependencies.
|
||||
|
||||
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
|
||||
|
||||
diff --git a/include/kernel.mk b/include/kernel.mk
|
||||
index b1d0e8d927cb462b486cfd645d68963f1b6ab8ff..d8d457fe7a5d3584d8aa4e27430da84533c85ed0 100644
|
||||
--- a/include/kernel.mk
|
||||
+++ b/include/kernel.mk
|
||||
@@ -194,8 +194,7 @@ $(call KernelPackage/$(1)/config)
|
||||
$(call KernelPackage/depends)
|
||||
|
||||
ifneq ($(if $(filter-out %=y %=n %=m,$(KCONFIG)),$(filter m y,$(foreach c,$(filter-out %=y %=n %=m,$(KCONFIG)),$($(c)))),.),)
|
||||
- ifneq ($(strip $(FILES)),)
|
||||
- define Package/kmod-$(1)/install
|
||||
+ define Package/kmod-$(1)/install
|
||||
@for mod in $$(call version_filter,$$(FILES)); do \
|
||||
if grep -q "$$$$$$$${mod##$(LINUX_DIR)/}" "$(LINUX_DIR)/modules.builtin"; then \
|
||||
echo "NOTICE: module '$$$$$$$$mod' is built-in."; \
|
||||
@@ -209,8 +208,7 @@ $(call KernelPackage/$(1)/config)
|
||||
done;
|
||||
$(call ModuleAutoLoad,$(1),$$(1),$(AUTOLOAD))
|
||||
$(call KernelPackage/$(1)/install,$$(1))
|
||||
- endef
|
||||
- endif
|
||||
+ endef
|
||||
$(if $(CONFIG_PACKAGE_kmod-$(1)),
|
||||
else
|
||||
compile: $(1)-disabled
|
Loading…
Reference in New Issue
Block a user