feature: mtk-sdk 24.10 first test

This commit is contained in:
padavanonly 2025-03-15 18:39:31 +08:00
parent 5c35e29c00
commit 58a1b60b48
10598 changed files with 1208314 additions and 995908 deletions

View File

@ -0,0 +1,334 @@
CONFIG_TARGET_mediatek=y
CONFIG_TARGET_mediatek_mt7981=y
CONFIG_TARGET_MULTI_PROFILE=y
CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_abt_asr3000=y
CONFIG_TARGET_DEVICE_PACKAGES_mediatek_mt7981_DEVICE_abt_asr3000=""
CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_cetron_ct3003=y
CONFIG_TARGET_DEVICE_PACKAGES_mediatek_mt7981_DEVICE_cetron_ct3003=""
CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_cmcc_a10=y
CONFIG_TARGET_DEVICE_PACKAGES_mediatek_mt7981_DEVICE_cmcc_a10=""
CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_cmcc_rax3000m-emmc=y
CONFIG_TARGET_DEVICE_PACKAGES_mediatek_mt7981_DEVICE_cmcc_rax3000m-emmc=""
CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_cmcc_rax3000m=y
CONFIG_TARGET_DEVICE_PACKAGES_mediatek_mt7981_DEVICE_cmcc_rax3000m=""
CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_h3c_nx30pro=y
CONFIG_TARGET_DEVICE_PACKAGES_mediatek_mt7981_DEVICE_h3c_nx30pro=""
CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_imou_lc-hx3001=y
CONFIG_TARGET_DEVICE_PACKAGES_mediatek_mt7981_DEVICE_imou_lc-hx3001=""
CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_jcg_q30=y
CONFIG_TARGET_DEVICE_PACKAGES_mediatek_mt7981_DEVICE_jcg_q30=""
CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_konka_komi-a31=y
CONFIG_TARGET_DEVICE_PACKAGES_mediatek_mt7981_DEVICE_konka_komi-a31=""
CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_livinet_zr-3020=y
CONFIG_TARGET_DEVICE_PACKAGES_mediatek_mt7981_DEVICE_livinet_zr-3020=""
CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_mt7981-360-t7-108M=y
CONFIG_TARGET_DEVICE_PACKAGES_mediatek_mt7981_DEVICE_mt7981-360-t7-108M=""
CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_mt7981-clt-r30b1=y
CONFIG_TARGET_DEVICE_PACKAGES_mediatek_mt7981_DEVICE_mt7981-clt-r30b1=""
CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_mt7981-clt-r30b1-112M=y
CONFIG_TARGET_DEVICE_PACKAGES_mediatek_mt7981_DEVICE_mt7981-clt-r30b1-112M=""
CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_xiaomi_mi-router-ax3000t=y
CONFIG_TARGET_DEVICE_PACKAGES_mediatek_mt7981_DEVICE_xiaomi_mi-router-ax3000t=""
CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_xiaomi_mi-router-ax3000t-stock=y
CONFIG_TARGET_DEVICE_PACKAGES_mediatek_mt7981_DEVICE_xiaomi_mi-router-ax3000t-stock=""
CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_xiaomi_mi-router-wr30u-112m=y
CONFIG_TARGET_DEVICE_PACKAGES_mediatek_mt7981_DEVICE_xiaomi_mi-router-wr30u-112m=""
CONFIG_TARGET_DEVICE_mediatek_mt7981_DEVICE_xiaomi_mi-router-wr30u-stock=y
CONFIG_TARGET_DEVICE_PACKAGES_mediatek_mt7981_DEVICE_xiaomi_mi-router-wr30u-stock=""
CONFIG_DEVEL=y
CONFIG_TOOLCHAINOPTS=y
CONFIG_BUSYBOX_CUSTOM=y
CONFIG_TARGET_PER_DEVICE_ROOTFS=y
CONFIG_AFALG_UPDATE_CTR_IV=y
CONFIG_BUSYBOX_CONFIG_BLKID=y
CONFIG_BUSYBOX_CONFIG_FEATURE_BLKID_TYPE=y
CONFIG_BUSYBOX_CONFIG_VOLUMEID=y
CONFIG_CONNINFRA_AUTO_UP=y
CONFIG_CONNINFRA_EMI_SUPPORT=y
# CONFIG_GDB is not set
CONFIG_INCLUDE_CONFIG=y
CONFIG_JSON_OVERVIEW_IMAGE_INFO=y
# CONFIG_KERNEL_BLK_DEV_THROTTLING is not set
# CONFIG_KERNEL_CFS_BANDWIDTH is not set
CONFIG_KERNEL_CGROUP_DEVICE=y
CONFIG_KERNEL_CGROUP_FREEZER=y
CONFIG_KERNEL_DEVMEM=y
# CONFIG_KERNEL_KEYS is not set
# CONFIG_KERNEL_MEMCG_SWAP is not set
CONFIG_KERNEL_NET_CLS_CGROUP=y
CONFIG_MTK_ACK_CTS_TIMEOUT_SUPPORT=y
CONFIG_MTK_AIR_MONITOR=y
CONFIG_MTK_AMPDU_CONF_SUPPORT=y
CONFIG_MTK_ANTENNA_CONTROL_SUPPORT=y
CONFIG_MTK_APCLI_SUPPORT=y
CONFIG_MTK_ATE_SUPPORT=y
CONFIG_MTK_BACKGROUND_SCAN_SUPPORT=y
CONFIG_MTK_CAL_BIN_FILE_SUPPORT=y
CONFIG_MTK_CFG_SUPPORT_FALCON_MURU=y
CONFIG_MTK_CFG_SUPPORT_FALCON_PP=y
CONFIG_MTK_CFG_SUPPORT_FALCON_SR=y
CONFIG_MTK_CFG_SUPPORT_FALCON_TXCMD_DBG=y
CONFIG_MTK_CHIP_MT7981=y
CONFIG_MTK_CONNINFRA_APSOC=y
CONFIG_MTK_CONNINFRA_APSOC_MT7981=y
CONFIG_MTK_CON_WPS_SUPPORT=y
CONFIG_MTK_DBDC_MODE=y
CONFIG_MTK_DOT11K_RRM_SUPPORT=y
CONFIG_MTK_DOT11R_FT_SUPPORT=y
CONFIG_MTK_DOT11W_PMF_SUPPORT=y
CONFIG_MTK_DOT11_HE_AX=y
CONFIG_MTK_DOT11_N_SUPPORT=y
CONFIG_MTK_DOT11_VHT_AC=y
CONFIG_MTK_FAST_NAT_SUPPORT=y
CONFIG_MTK_FIRST_IF_EEPROM_FLASH=y
CONFIG_MTK_FIRST_IF_IPAILNA=y
CONFIG_MTK_FIRST_IF_MT7981=y
CONFIG_MTK_GREENAP_SUPPORT=y
CONFIG_MTK_G_BAND_256QAM_SUPPORT=y
CONFIG_MTK_HDR_TRANS_RX_SUPPORT=y
CONFIG_MTK_HDR_TRANS_TX_SUPPORT=y
CONFIG_MTK_ICAP_SUPPORT=y
CONFIG_MTK_IGMP_SNOOP_SUPPORT=y
CONFIG_MTK_INTERWORKING=y
CONFIG_MTK_BAND_STEERING=y
CONFIG_MTK_MAP_SUPPORT=y
CONFIG_MTK_MAP_R2_VER_SUPPORT=y
CONFIG_MTK_MAP_R3_VER_SUPPORT=y
CONFIG_MTK_MAP_R2_6E_SUPPORT=y
CONFIG_MTK_MAP_R3_6E_SUPPORT=y
CONFIG_MTK_MBO_SUPPORT=y
CONFIG_MTK_MBSS_DTIM_SUPPORT=y
CONFIG_MTK_MBSS_SUPPORT=y
CONFIG_MTK_MCAST_RATE_SPECIFIC=y
CONFIG_MTK_MEMORY_SHRINK=y
CONFIG_MTK_MEMORY_SHRINK_AGGRESS=y
CONFIG_MTK_MGMT_TXPWR_CTRL=y
CONFIG_MTK_MLME_MULTI_QUEUE_SUPPORT=y
CONFIG_MTK_MT_AP_SUPPORT=m
CONFIG_MTK_MT_DFS_SUPPORT=y
CONFIG_MTK_MT_MAC=y
CONFIG_MTK_MT_WIFI=m
CONFIG_MTK_MT_WIFI_PATH="mt_wifi"
CONFIG_MTK_MUMIMO_SUPPORT=y
CONFIG_MTK_MU_RA_SUPPORT=y
CONFIG_MTK_OFFCHANNEL_SCAN_FEATURE=y
CONFIG_MTK_OWE_SUPPORT=y
CONFIG_MTK_QOS_R1_SUPPORT=y
CONFIG_MTK_RA_PHY_RATE_SUPPORT=y
CONFIG_MTK_RED_SUPPORT=y
CONFIG_MTK_RTMP_FLASH_SUPPORT=y
CONFIG_MTK_RT_FIRST_CARD_EEPROM="flash"
CONFIG_MTK_RT_FIRST_IF_RF_OFFSET=0xc0000
CONFIG_MTK_SCS_FW_OFFLOAD=y
CONFIG_MTK_SECOND_IF_NONE=y
CONFIG_MTK_SMART_CARRIER_SENSE_SUPPORT=y
CONFIG_MTK_SPECTRUM_SUPPORT=y
CONFIG_MTK_SUPPORT_OPENWRT=y
CONFIG_MTK_THIRD_IF_NONE=y
CONFIG_MTK_TPC_SUPPORT=y
CONFIG_MTK_TXBF_SUPPORT=y
CONFIG_MTK_UAPSD=y
CONFIG_MTK_VLAN_SUPPORT=y
CONFIG_MTK_VOW_SUPPORT=y
CONFIG_MTK_WARP_V2=y
CONFIG_MTK_WDS_SUPPORT=y
CONFIG_MTK_WHNAT_SUPPORT=m
CONFIG_MTK_WIFI_BASIC_FUNC=y
CONFIG_MTK_WIFI_DRIVER=y
CONFIG_MTK_WIFI_EAP_FEATURE=y
CONFIG_MTK_WIFI_FW_BIN_LOAD=y
CONFIG_MTK_WIFI_MODE_AP=m
CONFIG_MTK_WIFI_MT_MAC=y
CONFIG_MTK_WIFI_TWT_SUPPORT=y
CONFIG_MTK_WLAN_HOOK=y
CONFIG_MTK_WLAN_SERVICE=y
CONFIG_MTK_WNM_SUPPORT=y
CONFIG_MTK_WPA3_SUPPORT=y
CONFIG_MTK_WSC_INCLUDED=y
CONFIG_MTK_WSC_V2_SUPPORT=y
CONFIG_MTK_MT7981_NEW_FW=y
# CONFIG_OPENSSL_ENGINE_BUILTIN is not set
# CONFIG_OPENSSL_PREFER_CHACHA_OVER_GCM is not set
CONFIG_OPENSSL_WITH_NPN=y
# CONFIG_PACKAGE_TURBOACC_INCLUDE_FLOW_OFFLOADING is not set
CONFIG_PACKAGE_TURBOACC_INCLUDE_NO_FASTPATH=y
CONFIG_PACKAGE_blockd=y
CONFIG_PACKAGE_ca-certificates=y
CONFIG_PACKAGE_datconf=y
CONFIG_PACKAGE_datconf-lua=y
CONFIG_PACKAGE_ebtables=y
CONFIG_PACKAGE_ethtool=y
CONFIG_PACKAGE_htop=y
CONFIG_PACKAGE_ip-bridge=y
CONFIG_PACKAGE_ip6tables-extra=y
CONFIG_PACKAGE_ipset=y
CONFIG_PACKAGE_iptables-mod-conntrack-extra=y
CONFIG_PACKAGE_iptables-mod-extra=y
CONFIG_PACKAGE_iptables-mod-filter=y
CONFIG_PACKAGE_iptables-mod-hashlimit=y
CONFIG_PACKAGE_iptables-mod-iface=y
CONFIG_PACKAGE_iptables-mod-ipmark=y
CONFIG_PACKAGE_iptables-mod-ipopt=y
CONFIG_PACKAGE_iptables-mod-iprange=y
CONFIG_PACKAGE_iptables-mod-ipv4options=y
CONFIG_PACKAGE_iptables-mod-nat-extra=y
CONFIG_PACKAGE_iptables-mod-proto=y
CONFIG_PACKAGE_iptables-mod-tee=y
CONFIG_PACKAGE_iptables-mod-tproxy=y
CONFIG_PACKAGE_iptables-mod-u32=y
CONFIG_PACKAGE_iw=y
CONFIG_PACKAGE_iwinfo=y
CONFIG_PACKAGE_kmod-ata-core=y
CONFIG_PACKAGE_kmod-conninfra=y
CONFIG_PACKAGE_kmod-crypto-acompress=y
CONFIG_PACKAGE_kmod-crypto-ccm=y
CONFIG_PACKAGE_kmod-crypto-cmac=y
CONFIG_PACKAGE_kmod-crypto-crc32c=y
CONFIG_PACKAGE_kmod-crypto-ctr=y
CONFIG_PACKAGE_kmod-crypto-des=y
CONFIG_PACKAGE_kmod-crypto-gcm=y
CONFIG_PACKAGE_kmod-crypto-gf128=y
CONFIG_PACKAGE_kmod-crypto-ghash=y
CONFIG_PACKAGE_kmod-crypto-hmac=y
CONFIG_PACKAGE_kmod-crypto-md4=y
CONFIG_PACKAGE_kmod-crypto-md5=y
CONFIG_PACKAGE_kmod-crypto-rng=y
CONFIG_PACKAGE_kmod-crypto-seqiv=y
CONFIG_PACKAGE_kmod-crypto-sha256=y
CONFIG_PACKAGE_kmod-crypto-sha512=y
CONFIG_PACKAGE_kmod-ebtables=y
CONFIG_PACKAGE_kmod-ebtables-ipv4=y
CONFIG_PACKAGE_kmod-ebtables-ipv6=y
CONFIG_PACKAGE_kmod-fs-autofs4=y
CONFIG_PACKAGE_kmod-fs-vfat=y
CONFIG_PACKAGE_kmod-ifb=y
CONFIG_PACKAGE_kmod-inet-diag=y
CONFIG_PACKAGE_kmod-ip6tables-extra=y
CONFIG_PACKAGE_kmod-ipt-compat-xtables=y
CONFIG_PACKAGE_kmod-ipt-conntrack-extra=y
CONFIG_PACKAGE_kmod-ipt-extra=y
CONFIG_PACKAGE_kmod-ipt-filter=y
CONFIG_PACKAGE_kmod-ipt-hashlimit=y
CONFIG_PACKAGE_kmod-ipt-iface=y
CONFIG_PACKAGE_kmod-ipt-ipmark=y
CONFIG_PACKAGE_kmod-ipt-ipopt=y
CONFIG_PACKAGE_kmod-ipt-iprange=y
CONFIG_PACKAGE_kmod-ipt-ipv4options=y
CONFIG_PACKAGE_kmod-ipt-nat-extra=y
CONFIG_PACKAGE_kmod-ipt-offload=y
CONFIG_PACKAGE_kmod-ipt-proto=y
CONFIG_PACKAGE_kmod-ipt-raw6=y
CONFIG_PACKAGE_kmod-ipt-tee=y
CONFIG_PACKAGE_kmod-ipt-tproxy=y
CONFIG_PACKAGE_kmod-ipt-u32=y
CONFIG_PACKAGE_kmod-lib-crc32c=y
CONFIG_PACKAGE_kmod-lib-lzo=y
CONFIG_PACKAGE_kmod-mediatek_hnat=y
CONFIG_PACKAGE_kmod-mt_wifi=y
CONFIG_PACKAGE_kmod-nf-flow=y
CONFIG_PACKAGE_kmod-nls-base=y
CONFIG_PACKAGE_kmod-nls-cp437=y
CONFIG_PACKAGE_kmod-nls-iso8859-1=y
CONFIG_PACKAGE_kmod-nls-utf8=y
CONFIG_PACKAGE_kmod-sched-core=y
CONFIG_PACKAGE_kmod-scsi-core=y
CONFIG_PACKAGE_kmod-tcp-bbr=y
CONFIG_PACKAGE_kmod-tun=y
CONFIG_PACKAGE_kmod-warp=y
CONFIG_PACKAGE_kmod-zram=y
CONFIG_PACKAGE_kvcedit=y
CONFIG_PACKAGE_libatomic=y
CONFIG_PACKAGE_libblkid=y
CONFIG_PACKAGE_libcap-ng=y
CONFIG_PACKAGE_libcbor=y
CONFIG_PACKAGE_libevdev=y
CONFIG_PACKAGE_libfido2=y
CONFIG_PACKAGE_libipset=y
CONFIG_PACKAGE_libkvcutil=y
CONFIG_PACKAGE_libncurses=y
CONFIG_PACKAGE_libnl=y
CONFIG_PACKAGE_libnl-core=y
CONFIG_PACKAGE_libnl-genl=y
CONFIG_PACKAGE_libnl-nf=y
CONFIG_PACKAGE_libnl-route=y
CONFIG_PACKAGE_libopenssl-afalg_sync=y
CONFIG_PACKAGE_libopenssl-devcrypto=y
CONFIG_PACKAGE_libpcap=y
CONFIG_PACKAGE_libstdcpp=y
CONFIG_PACKAGE_libudev-zero=y
CONFIG_PACKAGE_libuuid=y
CONFIG_PACKAGE_lua-cjson=y
CONFIG_PACKAGE_luci-app-eqos-mtk=y
CONFIG_PACKAGE_luci-app-mtwifi-cfg=y
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Haproxy is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_ShadowsocksR_Libev_Client is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks_Libev_Client is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks_Libev_Server is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks_Rust_Client is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Simple_Obfs is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Trojan_Plus is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_V2ray is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_V2ray_Plugin is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Xray is not set
# CONFIG_PACKAGE_luci-app-rclone_INCLUDE_rclone-ng is not set
# CONFIG_PACKAGE_luci-app-rclone_INCLUDE_rclone-webui is not set
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_ChinaDNS_NG is not set
CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_NONE_V2RAY=y
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_ShadowsocksR_Libev_Client is not set
CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Shadowsocks_NONE_Client=y
CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Shadowsocks_NONE_Server=y
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Shadowsocks_Rust_Client is not set
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Shadowsocks_Rust_Server is not set
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Shadowsocks_Simple_Obfs is not set
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Xray is not set
CONFIG_PACKAGE_luci-app-turboacc-mtk=y
CONFIG_PACKAGE_luci-app-upnp-mtk-adjust=y
# CONFIG_PACKAGE_luci-app-vssr_INCLUDE_ShadowsocksR_Libev_Server is not set
# CONFIG_PACKAGE_luci-app-vssr_INCLUDE_Trojan is not set
# CONFIG_PACKAGE_luci-app-vssr_INCLUDE_Xray is not set
# CONFIG_PACKAGE_luci-app-vssr_INCLUDE_Xray_plugin is not set
CONFIG_PACKAGE_luci-i18n-eqos-mtk-zh-cn=y
CONFIG_PACKAGE_luci-i18n-mtwifi-cfg-zh-cn=y
CONFIG_PACKAGE_luci-i18n-turboacc-mtk-zh-cn=y
CONFIG_PACKAGE_luci-theme-argon=y
CONFIG_PACKAGE_luci-theme-bootstrap-mod=y
CONFIG_PACKAGE_mii_mgr=y
CONFIG_PACKAGE_mtkhqos_util=y
CONFIG_PACKAGE_mtk-smp=y
CONFIG_PACKAGE_nano=y
CONFIG_PACKAGE_openssh-keygen=y
CONFIG_PACKAGE_openssh-sftp-server=y
CONFIG_PACKAGE_openssl-util=y
CONFIG_PACKAGE_regs=y
CONFIG_PACKAGE_resolveip=y
CONFIG_PACKAGE_swconfig=y
CONFIG_PACKAGE_switch=y
CONFIG_PACKAGE_tc-mod-iptables=y
CONFIG_PACKAGE_tc-tiny=y
CONFIG_PACKAGE_tcpdump=y
CONFIG_PACKAGE_terminfo=y
CONFIG_PACKAGE_wifi-dats=y
CONFIG_PACKAGE_mtwifi-cfg=y
CONFIG_PACKAGE_wireless-regdb=y
CONFIG_PACKAGE_wireless-tools=y
CONFIG_PACKAGE_zram-swap=y
# CONFIG_PKG_CHECK_FORMAT_SECURITY is not set
# CONFIG_PKG_FORTIFY_SOURCE_1 is not set
CONFIG_PKG_FORTIFY_SOURCE_2=y
CONFIG_WARP_CHIPSET="mt7981"
CONFIG_WARP_DBG_SUPPORT=y
CONFIG_WARP_VERSION=2
CONFIG_WED_HW_RRO_SUPPORT=y
# CONFIG_WOLFSSL_HAS_ECC25519 is not set
CONFIG_first_card=y
CONFIG_first_card_name="MT7981"
# CONFIG_AFALG_FALLBACK is not set
# CONFIG_MTK_BAND_STEERING is not set
# CONFIG_MTK_DEFAULT_5G_PROFILE is not set
# CONFIG_MTK_MAC_REPEATER_SUPPORT is not set
# CONFIG_MTK_MULTI_PROFILE_SUPPORT is not set
# CONFIG_MTK_PCIE_ASPM_DYM_CTRL_SUPPORT is not set
# CONFIG_MTK_PRE_CAL_TRX_SET1_SUPPORT is not set
# CONFIG_MTK_PRE_CAL_TRX_SET2_SUPPORT is not set
# CONFIG_MTK_RLM_CAL_CACHE_SUPPORT is not set
# CONFIG_MTK_SNIFFER_RADIOTAP_SUPPORT is not set

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,313 @@
CONFIG_TARGET_mediatek=y
CONFIG_TARGET_mediatek_mt7986=y
CONFIG_TARGET_MULTI_PROFILE=y
CONFIG_TARGET_DEVICE_mediatek_mt7986_DEVICE_BPI-R3MINI-EMMC=y
CONFIG_TARGET_DEVICE_PACKAGES_mediatek_mt7986_DEVICE_BPI-R3MINI-EMMC=""
CONFIG_TARGET_DEVICE_mediatek_mt7986_DEVICE_BPI-R3MINI-NAND=y
CONFIG_TARGET_DEVICE_PACKAGES_mediatek_mt7986_DEVICE_BPI-R3MINI-NAND=""
CONFIG_DEVEL=y
CONFIG_TARGET_mediatek_mt7986_DEVICE_BPI-R3MINI-NAND=y
CONFIG_TARGET_PROFILE="DEVICE_BPI-R3MINI-NAND"
CONFIG_DEFAULT_bpir3_mini-properties=y
CONFIG_TOOLCHAINOPTS=y
CONFIG_BUSYBOX_CUSTOM=y
CONFIG_TARGET_PER_DEVICE_ROOTFS=y
CONFIG_AFALG_UPDATE_CTR_IV=y
CONFIG_BUSYBOX_CONFIG_BLKID=y
CONFIG_BUSYBOX_CONFIG_FEATURE_BLKID_TYPE=y
CONFIG_BUSYBOX_CONFIG_VOLUMEID=y
CONFIG_CONNINFRA_AUTO_UP=y
CONFIG_CONNINFRA_EMI_SUPPORT=y
# CONFIG_GDB is not set
CONFIG_INCLUDE_CONFIG=y
CONFIG_JSON_OVERVIEW_IMAGE_INFO=y
# CONFIG_KERNEL_BLK_DEV_THROTTLING is not set
# CONFIG_KERNEL_CFS_BANDWIDTH is not set
CONFIG_KERNEL_CGROUP_DEVICE=y
CONFIG_KERNEL_CGROUP_FREEZER=y
CONFIG_KERNEL_DEVMEM=y
# CONFIG_KERNEL_KEYS is not set
# CONFIG_KERNEL_MEMCG_SWAP is not set
CONFIG_KERNEL_NET_CLS_CGROUP=y
CONFIG_MODEMMANAGER_WITH_AT_COMMAND_VIA_DBUS=y
CONFIG_MTK_ACK_CTS_TIMEOUT_SUPPORT=y
CONFIG_MTK_AIR_MONITOR=y
CONFIG_MTK_AMPDU_CONF_SUPPORT=y
CONFIG_MTK_ANTENNA_CONTROL_SUPPORT=y
CONFIG_MTK_APCLI_SUPPORT=y
CONFIG_MTK_ATE_SUPPORT=y
CONFIG_MTK_BACKGROUND_SCAN_SUPPORT=y
CONFIG_MTK_CAL_BIN_FILE_SUPPORT=y
CONFIG_MTK_CFG_SUPPORT_FALCON_MURU=y
CONFIG_MTK_CFG_SUPPORT_FALCON_PP=y
CONFIG_MTK_CFG_SUPPORT_FALCON_SR=y
CONFIG_MTK_CFG_SUPPORT_FALCON_TXCMD_DBG=y
CONFIG_MTK_CHIP_MT7986=y
CONFIG_MTK_CONNINFRA_APSOC=y
CONFIG_MTK_CONNINFRA_APSOC_MT7986=y
CONFIG_MTK_CON_WPS_SUPPORT=y
CONFIG_MTK_DBDC_MODE=y
CONFIG_MTK_DOT11K_RRM_SUPPORT=y
CONFIG_MTK_DOT11R_FT_SUPPORT=y
CONFIG_MTK_DOT11W_PMF_SUPPORT=y
CONFIG_MTK_DOT11_HE_AX=y
CONFIG_MTK_DOT11_N_SUPPORT=y
CONFIG_MTK_DOT11_VHT_AC=y
CONFIG_MTK_FAST_NAT_SUPPORT=y
CONFIG_MTK_FIRST_IF_EEPROM_FLASH=y
CONFIG_MTK_FIRST_IF_IPAILNA=y
CONFIG_MTK_FIRST_IF_MT7986=y
CONFIG_MTK_GREENAP_SUPPORT=y
CONFIG_MTK_G_BAND_256QAM_SUPPORT=y
CONFIG_MTK_HDR_TRANS_RX_SUPPORT=y
CONFIG_MTK_HDR_TRANS_TX_SUPPORT=y
CONFIG_MTK_ICAP_SUPPORT=y
CONFIG_MTK_IGMP_SNOOP_SUPPORT=y
CONFIG_MTK_INTERWORKING=y
CONFIG_MTK_BAND_STEERING=y
CONFIG_MTK_MAP_SUPPORT=y
CONFIG_MTK_MAP_R2_VER_SUPPORT=y
CONFIG_MTK_MAP_R3_VER_SUPPORT=y
CONFIG_MTK_MAP_R2_6E_SUPPORT=y
CONFIG_MTK_MAP_R3_6E_SUPPORT=y
CONFIG_MTK_MBO_SUPPORT=y
CONFIG_MTK_MBSS_DTIM_SUPPORT=y
CONFIG_MTK_MBSS_SUPPORT=y
CONFIG_MTK_MCAST_RATE_SPECIFIC=y
CONFIG_MTK_MGMT_TXPWR_CTRL=y
CONFIG_MTK_MLME_MULTI_QUEUE_SUPPORT=y
CONFIG_MTK_MT7986_NEW_FW=y
CONFIG_MTK_MT_AP_SUPPORT=m
CONFIG_MTK_MT_DFS_SUPPORT=y
CONFIG_MTK_MT_MAC=y
CONFIG_MTK_MT_WIFI=m
CONFIG_MTK_MT_WIFI_PATH="mt_wifi"
CONFIG_MTK_MUMIMO_SUPPORT=y
CONFIG_MTK_MU_RA_SUPPORT=y
CONFIG_MTK_OFFCHANNEL_SCAN_FEATURE=y
CONFIG_MTK_OWE_SUPPORT=y
CONFIG_MTK_PHY_ICS_SUPPORT=y
CONFIG_MTK_QOS_R1_SUPPORT=y
CONFIG_MTK_RA_PHY_RATE_SUPPORT=y
CONFIG_MTK_RED_SUPPORT=y
CONFIG_MTK_RTMP_FLASH_SUPPORT=y
CONFIG_MTK_RT_FIRST_CARD_EEPROM="flash"
CONFIG_MTK_RT_FIRST_IF_RF_OFFSET=0xc0000
CONFIG_MTK_SCS_FW_OFFLOAD=y
CONFIG_MTK_SECOND_IF_NONE=y
CONFIG_MTK_SMART_CARRIER_SENSE_SUPPORT=y
CONFIG_MTK_SPECTRUM_SUPPORT=y
CONFIG_MTK_SUPPORT_OPENWRT=y
CONFIG_MTK_THERMAL_PROTECT_SUPPORT=y
CONFIG_MTK_THIRD_IF_NONE=y
CONFIG_MTK_TPC_SUPPORT=y
CONFIG_MTK_TXBF_SUPPORT=y
CONFIG_MTK_UAPSD=y
CONFIG_MTK_VLAN_SUPPORT=y
CONFIG_MTK_VOW_SUPPORT=y
CONFIG_MTK_WARP_V2=y
CONFIG_MTK_WDS_SUPPORT=y
CONFIG_MTK_WHNAT_SUPPORT=m
CONFIG_MTK_WIFI_ADIE_TYPE="mt7976"
CONFIG_MTK_WIFI_BASIC_FUNC=y
CONFIG_MTK_WIFI_DRIVER=y
CONFIG_MTK_WIFI_EAP_FEATURE=y
CONFIG_MTK_WIFI_FW_BIN_LOAD=y
CONFIG_MTK_WIFI_MODE_AP=m
CONFIG_MTK_WIFI_MT_MAC=y
CONFIG_MTK_WIFI_SKU_TYPE="AX4200"
CONFIG_MTK_WIFI_TWT_SUPPORT=y
CONFIG_MTK_WLAN_HOOK=y
CONFIG_MTK_WLAN_SERVICE=y
CONFIG_MTK_WNM_SUPPORT=y
CONFIG_MTK_WPA3_SUPPORT=y
CONFIG_MTK_WSC_INCLUDED=y
CONFIG_MTK_WSC_V2_SUPPORT=y
# CONFIG_OPENSSL_ENGINE_BUILTIN is not set
# CONFIG_OPENSSL_PREFER_CHACHA_OVER_GCM is not set
CONFIG_OPENSSL_WITH_NPN=y
# CONFIG_PACKAGE_TURBOACC_INCLUDE_FLOW_OFFLOADING is not set
CONFIG_PACKAGE_TURBOACC_INCLUDE_NO_FASTPATH=y
CONFIG_PACKAGE_blockd=y
CONFIG_PACKAGE_ca-certificates=y
CONFIG_PACKAGE_datconf=y
CONFIG_PACKAGE_datconf-lua=y
CONFIG_PACKAGE_ethtool=y
CONFIG_PACKAGE_ebtables=y
CONFIG_PACKAGE_htop=y
CONFIG_PACKAGE_ip-bridge=y
CONFIG_PACKAGE_ip6tables-extra=y
CONFIG_PACKAGE_ipset=y
CONFIG_PACKAGE_iptables-mod-conntrack-extra=y
CONFIG_PACKAGE_iptables-mod-extra=y
CONFIG_PACKAGE_iptables-mod-filter=y
CONFIG_PACKAGE_iptables-mod-hashlimit=y
CONFIG_PACKAGE_iptables-mod-iface=y
CONFIG_PACKAGE_iptables-mod-ipmark=y
CONFIG_PACKAGE_iptables-mod-ipopt=y
CONFIG_PACKAGE_iptables-mod-iprange=y
CONFIG_PACKAGE_iptables-mod-ipv4options=y
CONFIG_PACKAGE_iptables-mod-nat-extra=y
CONFIG_PACKAGE_iptables-mod-proto=y
CONFIG_PACKAGE_iptables-mod-tee=y
CONFIG_PACKAGE_iptables-mod-tproxy=y
CONFIG_PACKAGE_iptables-mod-u32=y
CONFIG_PACKAGE_iw=y
CONFIG_PACKAGE_iwinfo=y
CONFIG_PACKAGE_kmod-ata-core=y
CONFIG_PACKAGE_kmod-conninfra=y
CONFIG_PACKAGE_kmod-crypto-acompress=y
CONFIG_PACKAGE_kmod-crypto-ccm=y
CONFIG_PACKAGE_kmod-crypto-cmac=y
CONFIG_PACKAGE_kmod-crypto-crc32c=y
CONFIG_PACKAGE_kmod-crypto-ctr=y
CONFIG_PACKAGE_kmod-crypto-des=y
CONFIG_PACKAGE_kmod-crypto-gcm=y
CONFIG_PACKAGE_kmod-crypto-gf128=y
CONFIG_PACKAGE_kmod-crypto-ghash=y
CONFIG_PACKAGE_kmod-crypto-hmac=y
CONFIG_PACKAGE_kmod-crypto-md4=y
CONFIG_PACKAGE_kmod-crypto-md5=y
CONFIG_PACKAGE_kmod-crypto-rng=y
CONFIG_PACKAGE_kmod-crypto-seqiv=y
CONFIG_PACKAGE_kmod-crypto-sha256=y
CONFIG_PACKAGE_kmod-crypto-sha512=y
CONFIG_PACKAGE_kmod-ebtables=y
CONFIG_PACKAGE_kmod-ebtables-ipv4=y
CONFIG_PACKAGE_kmod-ebtables-ipv6=y
CONFIG_PACKAGE_kmod-fs-autofs4=y
CONFIG_PACKAGE_kmod-fs-vfat=y
CONFIG_PACKAGE_kmod-inet-diag=y
CONFIG_PACKAGE_kmod-ip6tables-extra=y
CONFIG_PACKAGE_kmod-ipt-compat-xtables=y
CONFIG_PACKAGE_kmod-ipt-conntrack-extra=y
CONFIG_PACKAGE_kmod-ipt-extra=y
CONFIG_PACKAGE_kmod-ipt-filter=y
CONFIG_PACKAGE_kmod-ipt-hashlimit=y
CONFIG_PACKAGE_kmod-ipt-iface=y
CONFIG_PACKAGE_kmod-ipt-ipmark=y
CONFIG_PACKAGE_kmod-ipt-ipopt=y
CONFIG_PACKAGE_kmod-ipt-iprange=y
CONFIG_PACKAGE_kmod-ipt-ipv4options=y
CONFIG_PACKAGE_kmod-ipt-nat-extra=y
CONFIG_PACKAGE_kmod-ipt-offload=y
CONFIG_PACKAGE_kmod-ipt-proto=y
CONFIG_PACKAGE_kmod-ipt-raw6=y
CONFIG_PACKAGE_kmod-ipt-tee=y
CONFIG_PACKAGE_kmod-ipt-tproxy=y
CONFIG_PACKAGE_kmod-ipt-u32=y
CONFIG_PACKAGE_kmod-leds-ws2812b=y
CONFIG_PACKAGE_kmod-lib-crc32c=y
CONFIG_PACKAGE_kmod-lib-lzo=y
CONFIG_PACKAGE_kmod-mediatek_hnat=y
CONFIG_PACKAGE_kmod-mt_wifi=y
CONFIG_PACKAGE_kmod-nf-flow=y
CONFIG_PACKAGE_kmod-nls-base=y
CONFIG_PACKAGE_kmod-nls-cp437=y
CONFIG_PACKAGE_kmod-nls-iso8859-1=y
CONFIG_PACKAGE_kmod-nls-utf8=y
CONFIG_PACKAGE_kmod-scsi-core=y
CONFIG_PACKAGE_kmod-tcp-bbr=y
CONFIG_PACKAGE_kmod-tun=y
CONFIG_PACKAGE_kmod-warp=y
CONFIG_PACKAGE_kmod-zram=y
CONFIG_PACKAGE_kvcedit=y
CONFIG_PACKAGE_libatomic=y
CONFIG_PACKAGE_libblkid=y
CONFIG_PACKAGE_libcap-ng=y
CONFIG_PACKAGE_libcbor=y
CONFIG_PACKAGE_libevdev=y
CONFIG_PACKAGE_libfido2=y
CONFIG_PACKAGE_libipset=y
CONFIG_PACKAGE_libkvcutil=y
CONFIG_PACKAGE_libncurses=y
CONFIG_PACKAGE_libnl=y
CONFIG_PACKAGE_libnl-core=y
CONFIG_PACKAGE_libnl-genl=y
CONFIG_PACKAGE_libnl-nf=y
CONFIG_PACKAGE_libnl-route=y
CONFIG_PACKAGE_libopenssl-afalg_sync=y
CONFIG_PACKAGE_libopenssl-devcrypto=y
CONFIG_PACKAGE_libpcap=y
CONFIG_PACKAGE_libstdcpp=y
CONFIG_PACKAGE_libudev-zero=y
CONFIG_PACKAGE_libuuid=y
CONFIG_PACKAGE_luci-app-eqos-mtk=y
CONFIG_PACKAGE_luci-app-mtk=y
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Haproxy is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_ShadowsocksR_Libev_Client is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks_Libev_Client is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks_Libev_Server is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks_Rust_Client is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Simple_Obfs is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Trojan_Plus is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_V2ray is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_V2ray_Plugin is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Xray is not set
# CONFIG_PACKAGE_luci-app-rclone_INCLUDE_rclone-ng is not set
# CONFIG_PACKAGE_luci-app-rclone_INCLUDE_rclone-webui is not set
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_ChinaDNS_NG is not set
CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_NONE_V2RAY=y
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_ShadowsocksR_Libev_Client is not set
CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Shadowsocks_NONE_Client=y
CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Shadowsocks_NONE_Server=y
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Shadowsocks_Rust_Client is not set
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Shadowsocks_Rust_Server is not set
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Shadowsocks_Simple_Obfs is not set
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Xray is not set
CONFIG_PACKAGE_luci-app-turboacc-mtk=y
CONFIG_PACKAGE_luci-app-upnp-mtk-adjust=y
# CONFIG_PACKAGE_luci-app-vssr_INCLUDE_ShadowsocksR_Libev_Server is not set
# CONFIG_PACKAGE_luci-app-vssr_INCLUDE_Trojan is not set
# CONFIG_PACKAGE_luci-app-vssr_INCLUDE_Xray is not set
# CONFIG_PACKAGE_luci-app-vssr_INCLUDE_Xray_plugin is not set
CONFIG_PACKAGE_luci-i18n-mtk-zh-cn=y
CONFIG_PACKAGE_luci-i18n-turboacc-mtk-zh-cn=y
CONFIG_PACKAGE_luci-theme-argon=y
CONFIG_PACKAGE_luci-theme-bootstrap-mod=y
CONFIG_PACKAGE_mii_mgr=y
CONFIG_PACKAGE_mtkhqos_util=y
CONFIG_PACKAGE_mtk-smp=y
CONFIG_PACKAGE_nano=y
CONFIG_PACKAGE_openssh-keygen=y
CONFIG_PACKAGE_openssh-sftp-server=y
CONFIG_PACKAGE_openssl-util=y
CONFIG_PACKAGE_regs=y
CONFIG_PACKAGE_resolveip=y
CONFIG_PACKAGE_swconfig=y
CONFIG_PACKAGE_switch=y
CONFIG_PACKAGE_tcpdump=y
CONFIG_PACKAGE_terminfo=y
CONFIG_PACKAGE_wifi-dats=y
CONFIG_PACKAGE_wifi-profile=y
CONFIG_PACKAGE_wireless-regdb=y
CONFIG_PACKAGE_wireless-tools=y
CONFIG_PACKAGE_zram-swap=y
# CONFIG_PKG_CHECK_FORMAT_SECURITY is not set
# CONFIG_PKG_FORTIFY_SOURCE_1 is not set
CONFIG_PKG_FORTIFY_SOURCE_2=y
CONFIG_WARP_CHIPSET="mt7986"
CONFIG_WARP_DBG_SUPPORT=y
CONFIG_WARP_MEMORY_LEAK_DBG=y
CONFIG_WARP_NEW_FW=y
CONFIG_WARP_VERSION=2
CONFIG_WED_HW_RRO_SUPPORT=y
CONFIG_WIFI_NORMAL_SETTING=y
# CONFIG_WOLFSSL_HAS_ECC25519 is not set
CONFIG_first_card=y
CONFIG_first_card_name="MT7986"
# CONFIG_AFALG_FALLBACK is not set
# CONFIG_MTK_BAND_STEERING is not set
# CONFIG_MTK_DEFAULT_5G_PROFILE is not set
# CONFIG_MTK_MAC_REPEATER_SUPPORT is not set
# CONFIG_MTK_MULTI_PROFILE_SUPPORT is not set
# CONFIG_MTK_PCIE_ASPM_DYM_CTRL_SUPPORT is not set
# CONFIG_MTK_PRE_CAL_TRX_SET1_SUPPORT is not set
# CONFIG_MTK_PRE_CAL_TRX_SET2_SUPPORT is not set
# CONFIG_MTK_RLM_CAL_CACHE_SUPPORT is not set
# CONFIG_MTK_SNIFFER_RADIOTAP_SUPPORT is not set
#
# BPI-R3-MINI Properties
#
CONFIG_PACKAGE_bpir3_mini-properties=y
# end of BPI-R3-MINI Properties

View File

@ -0,0 +1,301 @@
CONFIG_TARGET_mediatek=y
CONFIG_TARGET_mediatek_mt7986=y
CONFIG_TARGET_MULTI_PROFILE=y
CONFIG_TARGET_DEVICE_mediatek_mt7986_DEVICE_netcore_n60=y
CONFIG_TARGET_DEVICE_PACKAGES_mediatek_mt7986_DEVICE_netcore_n60=""
CONFIG_DEVEL=y
CONFIG_TOOLCHAINOPTS=y
CONFIG_BUSYBOX_CUSTOM=y
CONFIG_TARGET_PER_DEVICE_ROOTFS=y
CONFIG_AFALG_UPDATE_CTR_IV=y
CONFIG_BUSYBOX_CONFIG_BLKID=y
CONFIG_BUSYBOX_CONFIG_FEATURE_BLKID_TYPE=y
CONFIG_BUSYBOX_CONFIG_VOLUMEID=y
CONFIG_CONNINFRA_AUTO_UP=y
CONFIG_CONNINFRA_EMI_SUPPORT=y
# CONFIG_GDB is not set
CONFIG_INCLUDE_CONFIG=y
CONFIG_JSON_OVERVIEW_IMAGE_INFO=y
# CONFIG_KERNEL_BLK_DEV_THROTTLING is not set
# CONFIG_KERNEL_CFS_BANDWIDTH is not set
CONFIG_KERNEL_CGROUP_DEVICE=y
CONFIG_KERNEL_CGROUP_FREEZER=y
CONFIG_KERNEL_DEVMEM=y
# CONFIG_KERNEL_KEYS is not set
# CONFIG_KERNEL_MEMCG_SWAP is not set
CONFIG_KERNEL_NET_CLS_CGROUP=y
CONFIG_MTK_ACK_CTS_TIMEOUT_SUPPORT=y
CONFIG_MTK_AIR_MONITOR=y
CONFIG_MTK_AMPDU_CONF_SUPPORT=y
CONFIG_MTK_ANTENNA_CONTROL_SUPPORT=y
CONFIG_MTK_APCLI_SUPPORT=y
CONFIG_MTK_ATE_SUPPORT=y
CONFIG_MTK_BACKGROUND_SCAN_SUPPORT=y
CONFIG_MTK_CAL_BIN_FILE_SUPPORT=y
CONFIG_MTK_CFG_SUPPORT_FALCON_MURU=y
CONFIG_MTK_CFG_SUPPORT_FALCON_PP=y
CONFIG_MTK_CFG_SUPPORT_FALCON_SR=y
CONFIG_MTK_CFG_SUPPORT_FALCON_TXCMD_DBG=y
CONFIG_MTK_CHIP_MT7986=y
CONFIG_MTK_CONNINFRA_APSOC=y
CONFIG_MTK_CONNINFRA_APSOC_MT7986=y
CONFIG_MTK_CON_WPS_SUPPORT=y
CONFIG_MTK_DBDC_MODE=y
CONFIG_MTK_DOT11K_RRM_SUPPORT=y
CONFIG_MTK_DOT11R_FT_SUPPORT=y
CONFIG_MTK_DOT11W_PMF_SUPPORT=y
CONFIG_MTK_DOT11_HE_AX=y
CONFIG_MTK_DOT11_N_SUPPORT=y
CONFIG_MTK_DOT11_VHT_AC=y
CONFIG_MTK_FAST_NAT_SUPPORT=y
CONFIG_MTK_FIRST_IF_EEPROM_FLASH=y
CONFIG_MTK_FIRST_IF_IPAILNA=y
CONFIG_MTK_FIRST_IF_MT7986=y
CONFIG_MTK_GREENAP_SUPPORT=y
CONFIG_MTK_G_BAND_256QAM_SUPPORT=y
CONFIG_MTK_HDR_TRANS_RX_SUPPORT=y
CONFIG_MTK_HDR_TRANS_TX_SUPPORT=y
CONFIG_MTK_ICAP_SUPPORT=y
CONFIG_MTK_IGMP_SNOOP_SUPPORT=y
CONFIG_MTK_INTERWORKING=y
CONFIG_MTK_BAND_STEERING=y
CONFIG_MTK_MAP_SUPPORT=y
CONFIG_MTK_MAP_R2_VER_SUPPORT=y
CONFIG_MTK_MAP_R3_VER_SUPPORT=y
CONFIG_MTK_MAP_R2_6E_SUPPORT=y
CONFIG_MTK_MAP_R3_6E_SUPPORT=y
CONFIG_MTK_MBO_SUPPORT=y
CONFIG_MTK_MBSS_DTIM_SUPPORT=y
CONFIG_MTK_MBSS_SUPPORT=y
CONFIG_MTK_MCAST_RATE_SPECIFIC=y
CONFIG_MTK_MEMORY_SHRINK=y
CONFIG_MTK_MEMORY_SHRINK_AGGRESS=y
CONFIG_MTK_MGMT_TXPWR_CTRL=y
CONFIG_MTK_MLME_MULTI_QUEUE_SUPPORT=y
CONFIG_MTK_MT_AP_SUPPORT=m
CONFIG_MTK_MT_DFS_SUPPORT=y
CONFIG_MTK_MT_MAC=y
CONFIG_MTK_MT_WIFI=m
CONFIG_MTK_MT_WIFI_PATH="mt_wifi"
CONFIG_MTK_MUMIMO_SUPPORT=y
CONFIG_MTK_MU_RA_SUPPORT=y
CONFIG_MTK_OFFCHANNEL_SCAN_FEATURE=y
CONFIG_MTK_OWE_SUPPORT=y
CONFIG_MTK_PHY_ICS_SUPPORT=y
CONFIG_MTK_QOS_R1_SUPPORT=y
CONFIG_MTK_RA_PHY_RATE_SUPPORT=y
CONFIG_MTK_RED_SUPPORT=y
CONFIG_MTK_RTMP_FLASH_SUPPORT=y
CONFIG_MTK_RT_FIRST_CARD_EEPROM="flash"
CONFIG_MTK_RT_FIRST_IF_RF_OFFSET=0xc0000
CONFIG_MTK_SCS_FW_OFFLOAD=y
CONFIG_MTK_SECOND_IF_NONE=y
CONFIG_MTK_SMART_CARRIER_SENSE_SUPPORT=y
CONFIG_MTK_SPECTRUM_SUPPORT=y
CONFIG_MTK_SUPPORT_OPENWRT=y
CONFIG_MTK_THERMAL_PROTECT_SUPPORT=y
CONFIG_MTK_THIRD_IF_NONE=y
CONFIG_MTK_TPC_SUPPORT=y
CONFIG_MTK_TXBF_SUPPORT=y
CONFIG_MTK_UAPSD=y
CONFIG_MTK_VLAN_SUPPORT=y
CONFIG_MTK_VOW_SUPPORT=y
CONFIG_MTK_WARP_V2=y
CONFIG_MTK_WDS_SUPPORT=y
CONFIG_MTK_WHNAT_SUPPORT=m
CONFIG_MTK_WIFI_ADIE_TYPE="mt7976"
CONFIG_MTK_WIFI_BASIC_FUNC=y
CONFIG_MTK_WIFI_DRIVER=y
CONFIG_MTK_WIFI_EAP_FEATURE=y
CONFIG_MTK_WIFI_FW_BIN_LOAD=y
CONFIG_MTK_WIFI_MODE_AP=m
CONFIG_MTK_WIFI_MT_MAC=y
CONFIG_MTK_WIFI_SKU_TYPE="AX6000"
CONFIG_MTK_WIFI_TWT_SUPPORT=y
CONFIG_MTK_WLAN_HOOK=y
CONFIG_MTK_WLAN_SERVICE=y
CONFIG_MTK_WNM_SUPPORT=y
CONFIG_MTK_WPA3_SUPPORT=y
CONFIG_MTK_WSC_INCLUDED=y
CONFIG_MTK_WSC_V2_SUPPORT=y
# CONFIG_OPENSSL_ENGINE_BUILTIN is not set
# CONFIG_OPENSSL_PREFER_CHACHA_OVER_GCM is not set
CONFIG_OPENSSL_WITH_NPN=y
# CONFIG_PACKAGE_TURBOACC_INCLUDE_FLOW_OFFLOADING is not set
CONFIG_PACKAGE_TURBOACC_INCLUDE_NO_FASTPATH=y
CONFIG_PACKAGE_blockd=y
CONFIG_PACKAGE_ca-certificates=y
CONFIG_PACKAGE_datconf=y
CONFIG_PACKAGE_datconf-lua=y
CONFIG_PACKAGE_ethtool=y
CONFIG_PACKAGE_ebtables=y
CONFIG_PACKAGE_htop=y
CONFIG_PACKAGE_ip-bridge=y
CONFIG_PACKAGE_ip6tables-extra=y
CONFIG_PACKAGE_ipset=y
CONFIG_PACKAGE_iptables-mod-conntrack-extra=y
CONFIG_PACKAGE_iptables-mod-extra=y
CONFIG_PACKAGE_iptables-mod-filter=y
CONFIG_PACKAGE_iptables-mod-hashlimit=y
CONFIG_PACKAGE_iptables-mod-iface=y
CONFIG_PACKAGE_iptables-mod-ipmark=y
CONFIG_PACKAGE_iptables-mod-ipopt=y
CONFIG_PACKAGE_iptables-mod-iprange=y
CONFIG_PACKAGE_iptables-mod-ipv4options=y
CONFIG_PACKAGE_iptables-mod-nat-extra=y
CONFIG_PACKAGE_iptables-mod-proto=y
CONFIG_PACKAGE_iptables-mod-tee=y
CONFIG_PACKAGE_iptables-mod-tproxy=y
CONFIG_PACKAGE_iptables-mod-u32=y
CONFIG_PACKAGE_iw=y
CONFIG_PACKAGE_iwinfo=y
CONFIG_PACKAGE_kmod-ata-core=y
CONFIG_PACKAGE_kmod-conninfra=y
CONFIG_PACKAGE_kmod-crypto-acompress=y
CONFIG_PACKAGE_kmod-crypto-ccm=y
CONFIG_PACKAGE_kmod-crypto-cmac=y
CONFIG_PACKAGE_kmod-crypto-crc32c=y
CONFIG_PACKAGE_kmod-crypto-ctr=y
CONFIG_PACKAGE_kmod-crypto-des=y
CONFIG_PACKAGE_kmod-crypto-gcm=y
CONFIG_PACKAGE_kmod-crypto-gf128=y
CONFIG_PACKAGE_kmod-crypto-ghash=y
CONFIG_PACKAGE_kmod-crypto-hmac=y
CONFIG_PACKAGE_kmod-crypto-md4=y
CONFIG_PACKAGE_kmod-crypto-md5=y
CONFIG_PACKAGE_kmod-crypto-rng=y
CONFIG_PACKAGE_kmod-crypto-seqiv=y
CONFIG_PACKAGE_kmod-crypto-sha256=y
CONFIG_PACKAGE_kmod-crypto-sha512=y
CONFIG_PACKAGE_kmod-ebtables=y
CONFIG_PACKAGE_kmod-ebtables-ipv4=y
CONFIG_PACKAGE_kmod-ebtables-ipv6=y
CONFIG_PACKAGE_kmod-fs-autofs4=y
CONFIG_PACKAGE_kmod-fs-vfat=y
CONFIG_PACKAGE_kmod-inet-diag=y
CONFIG_PACKAGE_kmod-ip6tables-extra=y
CONFIG_PACKAGE_kmod-ipt-compat-xtables=y
CONFIG_PACKAGE_kmod-ipt-conntrack-extra=y
CONFIG_PACKAGE_kmod-ipt-extra=y
CONFIG_PACKAGE_kmod-ipt-filter=y
CONFIG_PACKAGE_kmod-ipt-hashlimit=y
CONFIG_PACKAGE_kmod-ipt-iface=y
CONFIG_PACKAGE_kmod-ipt-ipmark=y
CONFIG_PACKAGE_kmod-ipt-ipopt=y
CONFIG_PACKAGE_kmod-ipt-iprange=y
CONFIG_PACKAGE_kmod-ipt-ipv4options=y
CONFIG_PACKAGE_kmod-ipt-nat-extra=y
CONFIG_PACKAGE_kmod-ipt-offload=y
CONFIG_PACKAGE_kmod-ipt-proto=y
CONFIG_PACKAGE_kmod-ipt-raw6=y
CONFIG_PACKAGE_kmod-ipt-tee=y
CONFIG_PACKAGE_kmod-ipt-tproxy=y
CONFIG_PACKAGE_kmod-ipt-u32=y
CONFIG_PACKAGE_kmod-leds-ws2812b=y
CONFIG_PACKAGE_kmod-lib-crc32c=y
CONFIG_PACKAGE_kmod-lib-lzo=y
CONFIG_PACKAGE_kmod-mediatek_hnat=y
CONFIG_PACKAGE_kmod-mt_wifi=y
CONFIG_PACKAGE_kmod-nf-flow=y
CONFIG_PACKAGE_kmod-nls-base=y
CONFIG_PACKAGE_kmod-nls-cp437=y
CONFIG_PACKAGE_kmod-nls-iso8859-1=y
CONFIG_PACKAGE_kmod-nls-utf8=y
CONFIG_PACKAGE_kmod-scsi-core=y
CONFIG_PACKAGE_kmod-tcp-bbr=y
CONFIG_PACKAGE_kmod-tun=y
CONFIG_PACKAGE_kmod-warp=y
CONFIG_PACKAGE_kmod-zram=y
CONFIG_PACKAGE_kvcedit=y
CONFIG_PACKAGE_libatomic=y
CONFIG_PACKAGE_libblkid=y
CONFIG_PACKAGE_libcap-ng=y
CONFIG_PACKAGE_libcbor=y
CONFIG_PACKAGE_libevdev=y
CONFIG_PACKAGE_libfido2=y
CONFIG_PACKAGE_libipset=y
CONFIG_PACKAGE_libkvcutil=y
CONFIG_PACKAGE_libncurses=y
CONFIG_PACKAGE_libnl=y
CONFIG_PACKAGE_libnl-core=y
CONFIG_PACKAGE_libnl-genl=y
CONFIG_PACKAGE_libnl-nf=y
CONFIG_PACKAGE_libnl-route=y
CONFIG_PACKAGE_libopenssl-afalg_sync=y
CONFIG_PACKAGE_libopenssl-devcrypto=y
CONFIG_PACKAGE_libpcap=y
CONFIG_PACKAGE_libstdcpp=y
CONFIG_PACKAGE_libudev-zero=y
CONFIG_PACKAGE_libuuid=y
CONFIG_PACKAGE_luci-app-eqos-mtk=y
CONFIG_PACKAGE_luci-app-mtk=y
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Haproxy is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_ShadowsocksR_Libev_Client is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks_Libev_Client is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks_Libev_Server is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks_Rust_Client is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Simple_Obfs is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Trojan_Plus is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_V2ray is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_V2ray_Plugin is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Xray is not set
# CONFIG_PACKAGE_luci-app-rclone_INCLUDE_rclone-ng is not set
# CONFIG_PACKAGE_luci-app-rclone_INCLUDE_rclone-webui is not set
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_ChinaDNS_NG is not set
CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_NONE_V2RAY=y
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_ShadowsocksR_Libev_Client is not set
CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Shadowsocks_NONE_Client=y
CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Shadowsocks_NONE_Server=y
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Shadowsocks_Rust_Client is not set
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Shadowsocks_Rust_Server is not set
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Shadowsocks_Simple_Obfs is not set
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Xray is not set
CONFIG_PACKAGE_luci-app-turboacc-mtk=y
CONFIG_PACKAGE_luci-app-upnp-mtk-adjust=y
# CONFIG_PACKAGE_luci-app-vssr_INCLUDE_ShadowsocksR_Libev_Server is not set
# CONFIG_PACKAGE_luci-app-vssr_INCLUDE_Trojan is not set
# CONFIG_PACKAGE_luci-app-vssr_INCLUDE_Xray is not set
# CONFIG_PACKAGE_luci-app-vssr_INCLUDE_Xray_plugin is not set
CONFIG_PACKAGE_luci-i18n-mtk-zh-cn=y
CONFIG_PACKAGE_luci-i18n-turboacc-mtk-zh-cn=y
CONFIG_PACKAGE_luci-theme-argon=y
CONFIG_PACKAGE_luci-theme-bootstrap-mod=y
CONFIG_PACKAGE_mii_mgr=y
CONFIG_PACKAGE_mtkhqos_util=y
CONFIG_PACKAGE_nano=y
CONFIG_PACKAGE_openssh-keygen=y
CONFIG_PACKAGE_openssh-sftp-server=y
CONFIG_PACKAGE_openssl-util=y
CONFIG_PACKAGE_regs=y
CONFIG_PACKAGE_resolveip=y
CONFIG_PACKAGE_swconfig=y
CONFIG_PACKAGE_switch=y
CONFIG_PACKAGE_tcpdump=y
CONFIG_PACKAGE_terminfo=y
CONFIG_PACKAGE_wifi-dats=y
CONFIG_PACKAGE_wifi-profile=y
CONFIG_PACKAGE_wireless-regdb=y
CONFIG_PACKAGE_wireless-tools=y
CONFIG_PACKAGE_zram-swap=y
# CONFIG_PKG_CHECK_FORMAT_SECURITY is not set
# CONFIG_PKG_FORTIFY_SOURCE_1 is not set
CONFIG_PKG_FORTIFY_SOURCE_2=y
CONFIG_WARP_CHIPSET="mt7986"
CONFIG_WARP_DBG_SUPPORT=y
CONFIG_WARP_NEW_FW=y
CONFIG_WARP_VERSION=2
CONFIG_WED_HW_RRO_SUPPORT=y
CONFIG_WIFI_NORMAL_SETTING=y
# CONFIG_WOLFSSL_HAS_ECC25519 is not set
CONFIG_first_card=y
CONFIG_first_card_name="MT7986"
# CONFIG_AFALG_FALLBACK is not set
# CONFIG_MTK_BAND_STEERING is not set
# CONFIG_MTK_DEFAULT_5G_PROFILE is not set
# CONFIG_MTK_MAC_REPEATER_SUPPORT is not set
# CONFIG_MTK_MULTI_PROFILE_SUPPORT is not set
# CONFIG_MTK_PCIE_ASPM_DYM_CTRL_SUPPORT is not set
# CONFIG_MTK_PRE_CAL_TRX_SET1_SUPPORT is not set
# CONFIG_MTK_PRE_CAL_TRX_SET2_SUPPORT is not set
# CONFIG_MTK_RLM_CAL_CACHE_SUPPORT is not set
# CONFIG_MTK_SNIFFER_RADIOTAP_SUPPORT is not set

View File

@ -0,0 +1,310 @@
CONFIG_TARGET_mediatek=y
CONFIG_TARGET_mediatek_mt7986=y
CONFIG_TARGET_MULTI_PROFILE=y
CONFIG_TARGET_DEVICE_mediatek_mt7986_DEVICE_glinet_gl-mt6000=y
CONFIG_TARGET_DEVICE_PACKAGES_mediatek_mt7986_DEVICE_glinet_gl-mt6000=""
CONFIG_TARGET_DEVICE_mediatek_mt7986_DEVICE_tplink_tl-xdr6086=y
CONFIG_TARGET_DEVICE_PACKAGES_mediatek_mt7986_DEVICE_tplink_tl-xdr6086=""
CONFIG_TARGET_DEVICE_mediatek_mt7986_DEVICE_tplink_tl-xdr6088=y
CONFIG_TARGET_DEVICE_PACKAGES_mediatek_mt7986_DEVICE_tplink_tl-xdr6088=""
CONFIG_TARGET_DEVICE_mediatek_mt7986_DEVICE_xiaomi_redmi-router-ax6000=y
CONFIG_TARGET_DEVICE_PACKAGES_mediatek_mt7986_DEVICE_xiaomi_redmi-router-ax6000=""
CONFIG_TARGET_DEVICE_mediatek_mt7986_DEVICE_xiaomi_redmi-router-ax6000-stock=y
CONFIG_TARGET_DEVICE_PACKAGES_mediatek_mt7986_DEVICE_xiaomi_redmi-router-ax6000-stock=""
CONFIG_DEVEL=y
CONFIG_TOOLCHAINOPTS=y
CONFIG_BUSYBOX_CUSTOM=y
CONFIG_TARGET_PER_DEVICE_ROOTFS=y
CONFIG_AFALG_UPDATE_CTR_IV=y
CONFIG_BUSYBOX_CONFIG_BLKID=y
CONFIG_BUSYBOX_CONFIG_FEATURE_BLKID_TYPE=y
CONFIG_BUSYBOX_CONFIG_VOLUMEID=y
CONFIG_CONNINFRA_AUTO_UP=y
CONFIG_CONNINFRA_EMI_SUPPORT=y
# CONFIG_GDB is not set
CONFIG_INCLUDE_CONFIG=y
CONFIG_JSON_OVERVIEW_IMAGE_INFO=y
# CONFIG_KERNEL_BLK_DEV_THROTTLING is not set
# CONFIG_KERNEL_CFS_BANDWIDTH is not set
CONFIG_KERNEL_CGROUP_DEVICE=y
CONFIG_KERNEL_CGROUP_FREEZER=y
CONFIG_KERNEL_DEVMEM=y
# CONFIG_KERNEL_KEYS is not set
# CONFIG_KERNEL_MEMCG_SWAP is not set
CONFIG_KERNEL_NET_CLS_CGROUP=y
CONFIG_MTK_ACK_CTS_TIMEOUT_SUPPORT=y
CONFIG_MTK_AIR_MONITOR=y
CONFIG_MTK_AMPDU_CONF_SUPPORT=y
CONFIG_MTK_ANTENNA_CONTROL_SUPPORT=y
CONFIG_MTK_APCLI_SUPPORT=y
CONFIG_MTK_ATE_SUPPORT=y
CONFIG_MTK_BACKGROUND_SCAN_SUPPORT=y
CONFIG_MTK_CAL_BIN_FILE_SUPPORT=y
CONFIG_MTK_CFG_SUPPORT_FALCON_MURU=y
CONFIG_MTK_CFG_SUPPORT_FALCON_PP=y
CONFIG_MTK_CFG_SUPPORT_FALCON_SR=y
CONFIG_MTK_CFG_SUPPORT_FALCON_TXCMD_DBG=y
CONFIG_MTK_CHIP_MT7986=y
CONFIG_MTK_CONNINFRA_APSOC=y
CONFIG_MTK_CONNINFRA_APSOC_MT7986=y
CONFIG_MTK_CON_WPS_SUPPORT=y
CONFIG_MTK_DBDC_MODE=y
CONFIG_MTK_DOT11K_RRM_SUPPORT=y
CONFIG_MTK_DOT11R_FT_SUPPORT=y
CONFIG_MTK_DOT11W_PMF_SUPPORT=y
CONFIG_MTK_DOT11_HE_AX=y
CONFIG_MTK_DOT11_N_SUPPORT=y
CONFIG_MTK_DOT11_VHT_AC=y
CONFIG_MTK_FAST_NAT_SUPPORT=y
CONFIG_MTK_FIRST_IF_EEPROM_FLASH=y
CONFIG_MTK_FIRST_IF_IPAILNA=y
CONFIG_MTK_FIRST_IF_MT7986=y
CONFIG_MTK_GREENAP_SUPPORT=y
CONFIG_MTK_G_BAND_256QAM_SUPPORT=y
CONFIG_MTK_HDR_TRANS_RX_SUPPORT=y
CONFIG_MTK_HDR_TRANS_TX_SUPPORT=y
CONFIG_MTK_ICAP_SUPPORT=y
CONFIG_MTK_IGMP_SNOOP_SUPPORT=y
CONFIG_MTK_INTERWORKING=y
CONFIG_MTK_BAND_STEERING=y
CONFIG_MTK_MAP_SUPPORT=y
CONFIG_MTK_MAP_R2_VER_SUPPORT=y
CONFIG_MTK_MAP_R3_VER_SUPPORT=y
CONFIG_MTK_MAP_R2_6E_SUPPORT=y
CONFIG_MTK_MAP_R3_6E_SUPPORT=y
CONFIG_MTK_MBO_SUPPORT=y
CONFIG_MTK_MBSS_DTIM_SUPPORT=y
CONFIG_MTK_MBSS_SUPPORT=y
CONFIG_MTK_MCAST_RATE_SPECIFIC=y
CONFIG_MTK_MGMT_TXPWR_CTRL=y
CONFIG_MTK_MLME_MULTI_QUEUE_SUPPORT=y
CONFIG_MTK_MT7986_NEW_FW=y
CONFIG_MTK_MT_AP_SUPPORT=m
CONFIG_MTK_MT_DFS_SUPPORT=y
CONFIG_MTK_MT_MAC=y
CONFIG_MTK_MT_WIFI=m
CONFIG_MTK_MT_WIFI_PATH="mt_wifi"
CONFIG_MTK_MUMIMO_SUPPORT=y
CONFIG_MTK_MU_RA_SUPPORT=y
CONFIG_MTK_OFFCHANNEL_SCAN_FEATURE=y
CONFIG_MTK_OWE_SUPPORT=y
CONFIG_MTK_PHY_ICS_SUPPORT=y
CONFIG_MTK_QOS_R1_SUPPORT=y
CONFIG_MTK_RA_PHY_RATE_SUPPORT=y
CONFIG_MTK_RED_SUPPORT=y
CONFIG_MTK_RTMP_FLASH_SUPPORT=y
CONFIG_MTK_RT_FIRST_CARD_EEPROM="flash"
CONFIG_MTK_RT_FIRST_IF_RF_OFFSET=0xc0000
CONFIG_MTK_SCS_FW_OFFLOAD=y
CONFIG_MTK_SECOND_IF_NONE=y
CONFIG_MTK_SMART_CARRIER_SENSE_SUPPORT=y
CONFIG_MTK_SPECTRUM_SUPPORT=y
CONFIG_MTK_SUPPORT_OPENWRT=y
CONFIG_MTK_THERMAL_PROTECT_SUPPORT=y
CONFIG_MTK_THIRD_IF_NONE=y
CONFIG_MTK_TPC_SUPPORT=y
CONFIG_MTK_TXBF_SUPPORT=y
CONFIG_MTK_UAPSD=y
CONFIG_MTK_VLAN_SUPPORT=y
CONFIG_MTK_VOW_SUPPORT=y
CONFIG_MTK_WARP_V2=y
CONFIG_MTK_WDS_SUPPORT=y
CONFIG_MTK_WHNAT_SUPPORT=m
CONFIG_MTK_WIFI_ADIE_TYPE="mt7976"
CONFIG_MTK_WIFI_BASIC_FUNC=y
CONFIG_MTK_WIFI_DRIVER=y
CONFIG_MTK_WIFI_EAP_FEATURE=y
CONFIG_MTK_WIFI_FW_BIN_LOAD=y
CONFIG_MTK_WIFI_MODE_AP=m
CONFIG_MTK_WIFI_MT_MAC=y
CONFIG_MTK_WIFI_SKU_TYPE="AX6000"
CONFIG_MTK_WIFI_TWT_SUPPORT=y
CONFIG_MTK_WLAN_HOOK=y
CONFIG_MTK_WLAN_SERVICE=y
CONFIG_MTK_WNM_SUPPORT=y
CONFIG_MTK_WPA3_SUPPORT=y
CONFIG_MTK_WSC_INCLUDED=y
CONFIG_MTK_WSC_V2_SUPPORT=y
# CONFIG_OPENSSL_ENGINE_BUILTIN is not set
# CONFIG_OPENSSL_PREFER_CHACHA_OVER_GCM is not set
CONFIG_OPENSSL_WITH_NPN=y
# CONFIG_PACKAGE_TURBOACC_INCLUDE_FLOW_OFFLOADING is not set
CONFIG_PACKAGE_TURBOACC_INCLUDE_NO_FASTPATH=y
CONFIG_PACKAGE_blockd=y
CONFIG_PACKAGE_ca-certificates=y
CONFIG_PACKAGE_datconf=y
CONFIG_PACKAGE_datconf-lua=y
CONFIG_PACKAGE_ethtool=y
CONFIG_PACKAGE_ebtables=y
CONFIG_PACKAGE_htop=y
CONFIG_PACKAGE_ip-bridge=y
CONFIG_PACKAGE_ip6tables-extra=y
CONFIG_PACKAGE_ipset=y
CONFIG_PACKAGE_iptables-mod-conntrack-extra=y
CONFIG_PACKAGE_iptables-mod-extra=y
CONFIG_PACKAGE_iptables-mod-filter=y
CONFIG_PACKAGE_iptables-mod-hashlimit=y
CONFIG_PACKAGE_iptables-mod-iface=y
CONFIG_PACKAGE_iptables-mod-ipmark=y
CONFIG_PACKAGE_iptables-mod-ipopt=y
CONFIG_PACKAGE_iptables-mod-iprange=y
CONFIG_PACKAGE_iptables-mod-ipv4options=y
CONFIG_PACKAGE_iptables-mod-nat-extra=y
CONFIG_PACKAGE_iptables-mod-proto=y
CONFIG_PACKAGE_iptables-mod-tee=y
CONFIG_PACKAGE_iptables-mod-tproxy=y
CONFIG_PACKAGE_iptables-mod-u32=y
CONFIG_PACKAGE_iw=y
CONFIG_PACKAGE_iwinfo=y
CONFIG_PACKAGE_kmod-ata-core=y
CONFIG_PACKAGE_kmod-conninfra=y
CONFIG_PACKAGE_kmod-crypto-acompress=y
CONFIG_PACKAGE_kmod-crypto-ccm=y
CONFIG_PACKAGE_kmod-crypto-cmac=y
CONFIG_PACKAGE_kmod-crypto-crc32c=y
CONFIG_PACKAGE_kmod-crypto-ctr=y
CONFIG_PACKAGE_kmod-crypto-des=y
CONFIG_PACKAGE_kmod-crypto-gcm=y
CONFIG_PACKAGE_kmod-crypto-gf128=y
CONFIG_PACKAGE_kmod-crypto-ghash=y
CONFIG_PACKAGE_kmod-crypto-hmac=y
CONFIG_PACKAGE_kmod-crypto-md4=y
CONFIG_PACKAGE_kmod-crypto-md5=y
CONFIG_PACKAGE_kmod-crypto-rng=y
CONFIG_PACKAGE_kmod-crypto-seqiv=y
CONFIG_PACKAGE_kmod-crypto-sha256=y
CONFIG_PACKAGE_kmod-crypto-sha512=y
CONFIG_PACKAGE_kmod-ebtables=y
CONFIG_PACKAGE_kmod-ebtables-ipv4=y
CONFIG_PACKAGE_kmod-ebtables-ipv6=y
CONFIG_PACKAGE_kmod-fs-autofs4=y
CONFIG_PACKAGE_kmod-fs-vfat=y
CONFIG_PACKAGE_kmod-inet-diag=y
CONFIG_PACKAGE_kmod-ip6tables-extra=y
CONFIG_PACKAGE_kmod-ipt-compat-xtables=y
CONFIG_PACKAGE_kmod-ipt-conntrack-extra=y
CONFIG_PACKAGE_kmod-ipt-extra=y
CONFIG_PACKAGE_kmod-ipt-filter=y
CONFIG_PACKAGE_kmod-ipt-hashlimit=y
CONFIG_PACKAGE_kmod-ipt-iface=y
CONFIG_PACKAGE_kmod-ipt-ipmark=y
CONFIG_PACKAGE_kmod-ipt-ipopt=y
CONFIG_PACKAGE_kmod-ipt-iprange=y
CONFIG_PACKAGE_kmod-ipt-ipv4options=y
CONFIG_PACKAGE_kmod-ipt-nat-extra=y
CONFIG_PACKAGE_kmod-ipt-offload=y
CONFIG_PACKAGE_kmod-ipt-proto=y
CONFIG_PACKAGE_kmod-ipt-raw6=y
CONFIG_PACKAGE_kmod-ipt-tee=y
CONFIG_PACKAGE_kmod-ipt-tproxy=y
CONFIG_PACKAGE_kmod-ipt-u32=y
CONFIG_PACKAGE_kmod-leds-ws2812b=y
CONFIG_PACKAGE_kmod-lib-crc32c=y
CONFIG_PACKAGE_kmod-lib-lzo=y
CONFIG_PACKAGE_kmod-mediatek_hnat=y
CONFIG_PACKAGE_kmod-mt_wifi=y
CONFIG_PACKAGE_kmod-nf-flow=y
CONFIG_PACKAGE_kmod-nls-base=y
CONFIG_PACKAGE_kmod-nls-cp437=y
CONFIG_PACKAGE_kmod-nls-iso8859-1=y
CONFIG_PACKAGE_kmod-nls-utf8=y
CONFIG_PACKAGE_kmod-scsi-core=y
CONFIG_PACKAGE_kmod-tcp-bbr=y
CONFIG_PACKAGE_kmod-tun=y
CONFIG_PACKAGE_kmod-warp=y
CONFIG_PACKAGE_kmod-zram=y
CONFIG_PACKAGE_kvcedit=y
CONFIG_PACKAGE_libatomic=y
CONFIG_PACKAGE_libblkid=y
CONFIG_PACKAGE_libcap-ng=y
CONFIG_PACKAGE_libcbor=y
CONFIG_PACKAGE_libevdev=y
CONFIG_PACKAGE_libfido2=y
CONFIG_PACKAGE_libipset=y
CONFIG_PACKAGE_libkvcutil=y
CONFIG_PACKAGE_libncurses=y
CONFIG_PACKAGE_libnl=y
CONFIG_PACKAGE_libnl-core=y
CONFIG_PACKAGE_libnl-genl=y
CONFIG_PACKAGE_libnl-nf=y
CONFIG_PACKAGE_libnl-route=y
CONFIG_PACKAGE_libopenssl-afalg_sync=y
CONFIG_PACKAGE_libopenssl-devcrypto=y
CONFIG_PACKAGE_libpcap=y
CONFIG_PACKAGE_libstdcpp=y
CONFIG_PACKAGE_libudev-zero=y
CONFIG_PACKAGE_libuuid=y
CONFIG_PACKAGE_luci-app-eqos-mtk=y
CONFIG_PACKAGE_luci-app-mtwifi-cfg=y
CONFIG_PACKAGE_lua-cjson=y
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Haproxy is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_ShadowsocksR_Libev_Client is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks_Libev_Client is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks_Libev_Server is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Shadowsocks_Rust_Client is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Simple_Obfs is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Trojan_Plus is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_V2ray is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_V2ray_Plugin is not set
# CONFIG_PACKAGE_luci-app-passwall_INCLUDE_Xray is not set
# CONFIG_PACKAGE_luci-app-rclone_INCLUDE_rclone-ng is not set
# CONFIG_PACKAGE_luci-app-rclone_INCLUDE_rclone-webui is not set
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_ChinaDNS_NG is not set
CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_NONE_V2RAY=y
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_ShadowsocksR_Libev_Client is not set
CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Shadowsocks_NONE_Client=y
CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Shadowsocks_NONE_Server=y
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Shadowsocks_Rust_Client is not set
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Shadowsocks_Rust_Server is not set
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Shadowsocks_Simple_Obfs is not set
# CONFIG_PACKAGE_luci-app-ssr-plus_INCLUDE_Xray is not set
CONFIG_PACKAGE_luci-app-turboacc-mtk=y
CONFIG_PACKAGE_luci-app-upnp-mtk-adjust=y
# CONFIG_PACKAGE_luci-app-vssr_INCLUDE_ShadowsocksR_Libev_Server is not set
# CONFIG_PACKAGE_luci-app-vssr_INCLUDE_Trojan is not set
# CONFIG_PACKAGE_luci-app-vssr_INCLUDE_Xray is not set
# CONFIG_PACKAGE_luci-app-vssr_INCLUDE_Xray_plugin is not set
CONFIG_PACKAGE_luci-i18n-mtwifi-cfg-zh-cn=y
CONFIG_PACKAGE_luci-i18n-turboacc-mtk-zh-cn=y
CONFIG_PACKAGE_luci-theme-argon=y
CONFIG_PACKAGE_luci-theme-bootstrap-mod=y
CONFIG_PACKAGE_mii_mgr=y
CONFIG_PACKAGE_mtkhqos_util=y
CONFIG_PACKAGE_mtk-smp=y
CONFIG_PACKAGE_nano=y
CONFIG_PACKAGE_openssh-keygen=y
CONFIG_PACKAGE_openssh-sftp-server=y
CONFIG_PACKAGE_openssl-util=y
CONFIG_PACKAGE_regs=y
CONFIG_PACKAGE_resolveip=y
CONFIG_PACKAGE_swconfig=y
CONFIG_PACKAGE_switch=y
CONFIG_PACKAGE_tcpdump=y
CONFIG_PACKAGE_terminfo=y
CONFIG_PACKAGE_wifi-dats=y
CONFIG_PACKAGE_mtwifi-cfg=y
CONFIG_PACKAGE_wireless-regdb=y
CONFIG_PACKAGE_wireless-tools=y
CONFIG_PACKAGE_zram-swap=y
# CONFIG_PKG_CHECK_FORMAT_SECURITY is not set
# CONFIG_PKG_FORTIFY_SOURCE_1 is not set
CONFIG_PKG_FORTIFY_SOURCE_2=y
CONFIG_WARP_CHIPSET="mt7986"
CONFIG_WARP_DBG_SUPPORT=y
CONFIG_WARP_MEMORY_LEAK_DBG=y
CONFIG_WARP_NEW_FW=y
CONFIG_WARP_VERSION=2
CONFIG_WED_HW_RRO_SUPPORT=y
# CONFIG_WOLFSSL_HAS_ECC25519 is not set
CONFIG_first_card=y
CONFIG_first_card_name="MT7986"
# CONFIG_AFALG_FALLBACK is not set
# CONFIG_MTK_BAND_STEERING is not set
# CONFIG_MTK_DEFAULT_5G_PROFILE is not set
# CONFIG_MTK_MAC_REPEATER_SUPPORT is not set
# CONFIG_MTK_MULTI_PROFILE_SUPPORT is not set
# CONFIG_MTK_PCIE_ASPM_DYM_CTRL_SUPPORT is not set
# CONFIG_MTK_PRE_CAL_TRX_SET1_SUPPORT is not set
# CONFIG_MTK_PRE_CAL_TRX_SET2_SUPPORT is not set
# CONFIG_MTK_RLM_CAL_CACHE_SUPPORT is not set
# CONFIG_MTK_SNIFFER_RADIOTAP_SUPPORT is not set

BIN
dl/datconf-6bb733f7.tar.bz2 Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

2
include/kernel-5.4 Normal file
View File

@ -0,0 +1,2 @@
LINUX_VERSION-5.4 = .284
LINUX_KERNEL_HASH-5.4.284 = 77221ab9aebeac746915c755ec3b7d320f85cd219c63d9c501820fbca1e3b32b

View File

@ -162,7 +162,7 @@ generate_network() {
static)
local ipad
case "$1" in
lan) ipad=${ipaddr:-"192.168.1.1"} ;;
lan) ipad=${ipaddr:-"192.168.6.1"} ;;
*) ipad=${ipaddr:-"192.168.$((addr_offset++)).1"} ;;
esac

View File

@ -1,51 +1,75 @@
# SPDX-License-Identifier: GPL-2.0-only
#
# Copyright (C) 2020 Lean <coolsnowwolf@gmail.com>
# Copyright (C) 2021-2023 ImmortalWrt.org
# Copyright (C) 2021 ImmortalWrt.org
include $(TOPDIR)/rules.mk
PKG_NAME:=autocore
PKG_FLAGS:=nonshared
PKG_RELEASE:=42
PKG_RELEASE:=$(COMMITCOUNT)
PKG_CONFIG_DEPENDS:= \
CONFIG_TARGET_bcm27xx \
CONFIG_TARGET_bcm53xx \
CONFIG_TARGET_x86
CONFIG_TARGET_mediatek \
CONFIG_TARGET_mvebu
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/target.mk
define Package/autocore
TITLE:=auto core loadbalance script.
DEPENDS:=@(aarch64||arm||i386||i686||x86_64) \
+TARGET_bcm27xx:bcm27xx-utils \
define Package/autocore-arm
TITLE:=ARM auto core script.
MAINTAINER:=CN_SZTL
DEPENDS:=@(arm||aarch64) \
+TARGET_bcm27xx:bcm27xx-userland \
+TARGET_bcm53xx:nvram \
+TARGET_x86:ethtool \
+TARGET_x86:lm-sensors
+(TARGET_mediatek||TARGET_mvebu):mhz
VARIANT:=arm
endef
define Package/autocore-x86
TITLE:=x86/x64 auto core loadbalance script.
MAINTAINER:=Lean / CN_SZTL
DEPENDS:=@TARGET_x86 +lm-sensors +ethtool
VARIANT:=x86
endef
define Build/Compile
endef
define Package/autocore/install
define Package/autocore/install/Default
$(INSTALL_DIR) $(1)/etc/uci-defaults
$(INSTALL_BIN) ./files/60-autocore-reload-rpcd $(1)/etc/uci-defaults/
ifneq ($(filter i386 i686 x86_64, $(ARCH)),)
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/autocore $(1)/etc/init.d/
endif
$(INSTALL_BIN) ./files/generic/60-autocore-reload-rpcd $(1)/etc/uci-defaults/
$(INSTALL_DIR) $(1)/sbin
$(INSTALL_BIN) ./files/cpuinfo $(1)/sbin/
ifneq ($(filter ipq% mediatek% qualcommax%, $(TARGETID)),)
$(INSTALL_BIN) ./files/tempinfo $(1)/sbin/
endif
$(INSTALL_BIN) ./files/generic/cpuinfo $(1)/sbin/
$(INSTALL_DIR) $(1)/usr/share/rpcd/acl.d
$(CP) ./files/luci-mod-status-autocore.json $(1)/usr/share/rpcd/acl.d/
$(CP) ./files/generic/luci-mod-status-autocore.json $(1)/usr/share/rpcd/acl.d/
ifeq ($(filter ipq% mediatek%, $(TARGETID)),)
$(INSTALL_BIN) ./files/generic/ethinfo $(1)/sbin/
$(INSTALL_DIR) $(1)/www/luci-static/resources/view/status/include
$(INSTALL_DATA) ./files/generic/21_ethinfo.js $(1)/www/luci-static/resources/view/status/include/
endif
endef
$(eval $(call BuildPackage,autocore))
define Package/autocore-arm/install
$(call Package/autocore/install/Default,$(1))
ifneq ($(filter ipq% mediatek%, $(TARGETID)),)
$(INSTALL_BIN) ./files/arm/tempinfo $(1)/sbin/
endif
endef
define Package/autocore-x86/install
$(call Package/autocore/install/Default,$(1))
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/x86/autocore $(1)/etc/init.d/
endef
$(eval $(call BuildPackage,autocore-arm))
$(eval $(call BuildPackage,autocore-x86))

View File

@ -0,0 +1,36 @@
#!/bin/sh
IEEE_PATH="/sys/class/ieee80211"
THERMAL_PATH="/sys/class/thermal"
get_mtwifi_temp() {
local ifname="$1"
local flag
if [ -f "/sys/class/net/${ifname}/flags" ]; then
flag="$(cat /sys/class/net/${ifname}/flags)"
if [ "$((flag & 0x1))" -eq "1" ]; then
iwpriv ${ifname} stat | awk '/CurrentTemperature/ {printf("%d°C", $3)}'
fi
fi
}
if grep -Eq "ipq40xx|ipq806x" "/etc/openwrt_release"; then
wifi_temp="$(awk '{printf("%.1f°C ", $0 / 1000)}' "$IEEE_PATH"/phy*/device/hwmon/hwmon*/temp1_input | awk '$1=$1')"
elif grep -Eq "mediatek" "/etc/openwrt_release"; then
wifi_temp1="$(get_mtwifi_temp ra0)"
wifi_temp2="$(get_mtwifi_temp rax0)"
wifi_temp="$(echo "$wifi_temp1 $wifi_temp2" | xargs)"
else
wifi_temp="$(awk '{printf("%.1f°C ", $0 / 1000)}' "$IEEE_PATH"/phy*/hwmon*/temp1_input | awk '$1=$1')"
fi
if grep -q "ipq40xx" "/etc/openwrt_release"; then
if [ -e "$IEEE_PATH/phy0/hwmon0/temp1_input" ]; then
mt76_temp=" $(awk -F ': ' '{print $2}' "$IEEE_PATH/phy0/hwmon0/temp1_input")°C"
fi
echo -n "WiFi:${mt76_temp} ${wifi_temp}"
else
cpu_temp="$(awk '{printf("%.1f°C", $0 / 1000)}' "$THERMAL_PATH/thermal_zone0/temp")"
echo -n "CPU: ${cpu_temp}, WiFi: ${wifi_temp}"
fi

View File

@ -1,61 +0,0 @@
#!/bin/sh
. /etc/openwrt_release
CPUINFO_PATH="/proc/cpuinfo"
CPUFREQ_PATH="/sys/devices/system/cpu/cpufreq"
THERMAL_PATH="/sys/class/thermal"
cpu_arch="$(awk -F ': ' '/model name/ {print $2}' "$CPUINFO_PATH" | head -n1)"
[ -n "${cpu_arch}" ] || cpu_arch="?"
case "$DISTRIB_TARGET" in
"x86"/*)
cpu_cores="$(grep "core id" "$CPUINFO_PATH" | sort -u | wc -l)C $(grep -c "processor" "$CPUINFO_PATH")T" ;;
*)
cpu_cores="$(grep -c "processor" "$CPUINFO_PATH")" ;;
esac
case "$DISTRIB_TARGET" in
"bcm27xx"/*)
cpu_freq="$(( $(vcgencmd measure_clock arm | awk -F '=' '{print $2}') / 1000000 ))Mhz" ;;
"bcm53xx"/*)
cpu_freq="$(nvram get clkfreq | awk -F ',' '{print $1}')MHz" ;;
"rockchip"/*)
cpu_freq="$(awk '{printf("%.fMHz ", $0 / 1000)}' "$CPUFREQ_PATH"/policy*/cpuinfo_cur_freq | awk '$1=$1')" ;;
"x86"/*)
cpu_freq="$(awk -F ': ' '/MHz/ {print $2}' "$CPUINFO_PATH" | head -n1)MHz" ;;
*)
[ ! -e "$CPUFREQ_PATH/policy0/cpuinfo_cur_freq" ] || \
cpu_freq="$(awk '{printf("%.fMHz", $0 / 1000)}' "$CPUFREQ_PATH/policy0/cpuinfo_cur_freq")"
;;
esac
case "$DISTRIB_TARGET" in
"bcm27xx"/*)
cpu_temp="$(vcgencmd measure_temp | awk -F '=' '{print $2}' | awk -F "'" '{print $1}')°C" ;;
"ipq40xx"/*|"ipq806x"/*|"mediatek"/*|"qualcommax"/*) ;;
"x86"/*)
if [ -n "$(uci -q get "wechatpush.config.server_host")" ]; then
cpu_temp="$(/usr/share/wechatpush/wechatpush soc)°C"
elif grep -q "GenuineIntel" "/proc/cpuinfo"; then
cpu_temp="$(sensors "coretemp-*" 2>"/dev/null" | grep -E "(Package id |Core )" | grep -Eo "\+[0-9.]*°C" | head -n1 | tr -d "+")"
elif grep -q "AuthenticAMD" "/proc/cpuinfo"; then
cpu_temp="$(sensors "k*temp-*" 2>"/dev/null" | awk '/Tdie/ {print $2}' | head -n1 | tr -d "+")"
fi
;;
*)
[ ! -e "$THERMAL_PATH/thermal_zone0/temp" ] || \
cpu_temp="$(awk '{printf("%.1f°C", $0 / 1000)}' "$THERMAL_PATH/thermal_zone0/temp")"
;;
esac
if [ -z "$cpu_freq" ] && [ -n "$cpu_temp" ]; then
echo -n "$cpu_arch x $cpu_cores ($cpu_temp)"
elif [ -z "$cpu_temp" ] && [ -n "$cpu_freq" ]; then
echo -n "$cpu_arch x $cpu_cores ($cpu_freq)"
elif [ -n "$cpu_temp" ] && [ -n "$cpu_freq" ]; then
echo -n "$cpu_arch x $cpu_cores ($cpu_freq, ${cpu_temp})"
else
echo -n "$cpu_arch x $cpu_cores"
fi

View File

@ -0,0 +1,60 @@
'use strict';
'require baseclass';
'require rpc';
var callLuciETHInfo = rpc.declare({
object: 'luci',
method: 'getETHInfo',
expect: { '': {} }
});
return L.Class.extend({
title: _('Ethernet Information'),
load: function() {
return Promise.all([
L.resolveDefault(callLuciETHInfo(), {})
]);
},
render: function(data) {
var ethinfo = Array.isArray(data[0].ethinfo) ? data[0].ethinfo : [];
var table = E('table', { 'class': 'table' }, [
E('tr', { 'class': 'tr table-titles' }, [
E('th', { 'class': 'th' }, _('Ethernet Name')),
E('th', { 'class': 'th' }, _('Link Status')),
E('th', { 'class': 'th' }, _('Speed')),
E('th', { 'class': 'th' }, _('Duplex'))
])
]);
cbi_update_table(table, ethinfo.map(function(info) {
var exp1;
var exp2;
if (info.status == "yes")
exp1 = _('Link Up');
else if (info.status == "no")
exp1 = _('Link Down');
if (info.duplex == "Full")
exp2 = _('Full Duplex');
else if (info.duplex == "Half")
exp2 = _('Half Duplex');
else
exp2 = _('-');
return [
info.name,
exp1,
info.speed,
exp2
];
}));
return E([
table
]);
}
});

View File

@ -0,0 +1,68 @@
#!/bin/sh
. /etc/openwrt_release
CPUINFO_PATH="/proc/cpuinfo"
CPUFREQ_PATH="/sys/devices/system/cpu/cpufreq"
THERMAL_PATH="/sys/class/thermal"
cpu_arch="$(awk -F ': ' '/model name/ {print $2}' "$CPUINFO_PATH" | head -n1)"
[ -n "${cpu_arch}" ] || cpu_arch="?"
case "$DISTRIB_TARGET" in
"x86"/*)
cpu_cores="$(grep "core id" "$CPUINFO_PATH" | sort -u | wc -l)C $(grep -c "processor" "$CPUINFO_PATH")T" ;;
*)
cpu_cores="$(grep -c "processor" "$CPUINFO_PATH")" ;;
esac
case "$DISTRIB_TARGET" in
"bcm27xx"/*)
cpu_freq="$(( $(vcgencmd measure_clock arm | awk -F '=' '{print $2}') / 1000000 ))Mhz" ;;
"bcm53xx"/*)
cpu_freq="$(nvram get clkfreq | awk -F ',' '{print $1}')MHz" ;;
"mediatek"/*|"mvebu"/*)
cpu_freq="" ;;
"mvebu/cortexa72")
cpu_freq="$(awk '{printf("%.fMHz", $0 / 1000)}' "$CPUFREQ_PATH/policy0/cpuinfo_cur_freq")"
big_cpu_freq="$(awk '{printf("%.fMHz ", $0 / 1000)}' "$CPUFREQ_PATH/policy2/cpuinfo_cur_freq")"
;;
"rockchip"/*)
cpu_freq="$(awk '{printf("%.fMHz", $0 / 1000)}' "$CPUFREQ_PATH/policy0/cpuinfo_cur_freq")"
[ ! -e "$CPUFREQ_PATH/policy4/cpuinfo_cur_freq" ] || \
big_cpu_freq="$(awk '{printf("%.fMHz ", $0 / 1000)}' "$CPUFREQ_PATH/policy4/cpuinfo_cur_freq")"
;;
"x86"/*)
cpu_freq="$(awk -F ': ' '/MHz/ {print $2}' "$CPUINFO_PATH" | head -n1)MHz" ;;
*)
[ ! -e "$CPUFREQ_PATH/policy0/cpuinfo_cur_freq" ] || \
cpu_freq="$(awk '{printf("%.fMHz", $0 / 1000)}' "$CPUFREQ_PATH/policy0/cpuinfo_cur_freq")"
;;
esac
case "$DISTRIB_TARGET" in
"bcm27xx"/*)
cpu_temp="$(vcgencmd measure_temp | awk -F '=' '{print $2}' | awk -F "'" '{print $1}')°C" ;;
"x86"/*)
if grep -q "GenuineIntel" "/proc/cpuinfo"; then
cpu_temp="$(sensors "coretemp-*" 2>"/dev/null" | grep -E "(Package id |Core )" | grep -Eo "\+[0-9.]*°C" | head -n1 | tr -d "+")"
elif grep -q "AuthenticAMD" "/proc/cpuinfo"; then
cpu_temp="$(sensors "k*temp-*" 2>"/dev/null" | awk '/Tdie/ {print $2}' | head -n1 | tr -d "+")"
fi
;;
*)
[ ! -e "$THERMAL_PATH/thermal_zone0/temp" ] || \
cpu_temp="$(awk '{printf("%.1f°C", $0 / 1000)}' "$THERMAL_PATH/thermal_zone0/temp")"
;;
esac
if [ -z "$big_cpu_freq$cpu_freq" ] && [ -n "$cpu_temp" ]; then
echo -n "$cpu_arch x $cpu_cores ($cpu_temp)"
elif [ -z "$cpu_temp" ] && [ -n "$big_cpu_freq$cpu_freq" ] || \
grep -Eq "ipq|mediatek" "/etc/openwrt_release"; then
echo -n "$cpu_arch x $cpu_cores ($big_cpu_freq$cpu_freq)"
elif [ -n "$cpu_temp" ] && [ -n "$big_cpu_freq$cpu_freq" ]; then
echo -n "$cpu_arch x $cpu_cores ($big_cpu_freq$cpu_freq, ${cpu_temp})"
else
echo -n "$cpu_arch x $cpu_cores"
fi

View File

@ -0,0 +1,65 @@
#!/usr/bin/lua
-- Copyright (C) 2022 Tianling Shen <cnsztl@immortalwrt.org>
local util = require "luci.util"
local jsonc = require "luci.jsonc"
local eth_info = {}
local ifname, stat
for ifname, stat in pairs(util.ubus("network.device", "status")) do
if ifname:match("^(lan%d+)$") == ifname then
local status, speed, duplex
status = stat.carrier and "yes" or "no"
if not stat.carrier or not stat.speed or stat.speed:sub(1, 1) == "-" then
speed = "-"
else
speed = stat.speed:sub(1, -2) .. "Mb/s"
end
if speed == '-' then
duplex = "-"
elseif stat.speed:sub(-1) == "F" then
duplex = "Full"
else
duplex = "Half"
end
eth_info[#eth_info+1] = { name = ifname, status = status,
speed = speed, duplex = duplex }
end
end
for ifname, stat in pairs(util.ubus("network.device", "status")) do
if ifname:match("^(wan)$") == ifname then
local status, speed, duplex
status = stat.carrier and "yes" or "no"
if not stat.carrier or not stat.speed or stat.speed:sub(1, 1) == "-" then
speed = "-"
else
speed = stat.speed:sub(1, -2) .. "Mb/s"
end
if speed == '-' then
duplex = "-"
elseif stat.speed:sub(-1) == "F" then
duplex = "Full"
else
duplex = "Half"
end
eth_info[#eth_info+1] = { name = ifname, status = status,
speed = speed, duplex = duplex }
end
end
table.sort(eth_info,
function(a, b)
return a.name < b.name
end)
print(jsonc.stringify(eth_info))

View File

@ -0,0 +1,10 @@
{
"luci-mod-status-autocore": {
"description": "Grant access to autocore",
"read": {
"ubus": {
"luci": [ "getCPUInfo", "getETHInfo", "getTempInfo" ]
}
}
}
}

View File

@ -1,10 +0,0 @@
{
"luci-mod-status-autocore": {
"description": "Grant access to autocore",
"read": {
"ubus": {
"luci": [ "getCPUInfo", "getTempInfo" ]
}
}
}
}

View File

@ -1,40 +0,0 @@
#!/bin/sh
. /etc/openwrt_release
IEEE_PATH="/sys/class/ieee80211"
THERMAL_PATH="/sys/class/thermal"
case "$DISTRIB_TARGET" in
ipq40xx/*|ipq806x/*)
wifi_temp="$(awk '{printf("%.1f°C ", $0 / 1000)}' "$IEEE_PATH"/phy*/device/hwmon/hwmon*/temp1_input 2>"/dev/null" | awk '$1=$1')"
;;
mediatek/mt7622)
wifi_temp="$(awk '{printf("%.1f°C ", $0 / 1000)}' "$IEEE_PATH"/wl*/hwmon*/temp1_input 2>"/dev/null" | awk '$1=$1')"
;;
*)
wifi_temp="$(awk '{printf("%.1f°C ", $0 / 1000)}' "$IEEE_PATH"/phy*/hwmon*/temp1_input 2>"/dev/null" | awk '$1=$1')"
;;
esac
case "$DISTRIB_TARGET" in
ipq40xx/*)
if [ -e "$IEEE_PATH/phy0/hwmon0/temp1_input" ]; then
mt76_temp="$(awk -F ': ' '{print $2}' "$IEEE_PATH/phy0/hwmon0/temp1_input" 2>"/dev/null")°C"
fi
[ -z "$mt76_temp" ] || wifi_temp="${wifi_temp:+$wifi_temp }$mt76_temp"
;;
*)
cpu_temp="$(awk '{printf("%.1f°C", $0 / 1000)}' "$THERMAL_PATH/thermal_zone0/temp" 2>"/dev/null")"
;;
esac
if [ -n "$cpu_temp" ] && [ -z "$wifi_temp" ]; then
echo -n "CPU: $cpu_temp"
elif [ -z "$cpu_temp" ] && [ -n "$wifi_temp" ]; then
echo -n "WiFi: $wifi_temp"
elif [ -n "$cpu_temp" ] && [ -n "$wifi_temp" ]; then
echo -n "CPU: $cpu_temp, WiFi: $wifi_temp"
else
echo -n "No temperature info"
fi

View File

@ -0,0 +1,43 @@
#
# Copyright (C) 2016 MediaTek
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=bpir3_mini-properties
PKG_RELEASE:=1
PKG_LICENSE:=GPL-2.0
include $(INCLUDE_DIR)/package.mk
define Package/bpir3_mini-properties
SECTION:=firmware
CATEGORY:=Firmware
TITLE:=PHYs firmware & fan control for BPI-R3-MINI
endef
define Package/bpir3_mini-properties/description
This package install PHYs firmware & fan control for BPI-R3-MINI.
endef
define Package/bpir3_mini-properties/config
endef
define Build/Compile
endef
define Package/bpir3_mini-properties/install
$(INSTALL_DIR) $(1)/sbin/
$(INSTALL_DIR) $(1)/etc/init.d/
$(INSTALL_DIR) $(1)/lib/firmware/
$(INSTALL_BIN) ./files/bpir3_fanspeed $(1)/sbin/
$(INSTALL_BIN) ./files/fanspeed.init $(1)/etc/init.d/fanspeed
$(INSTALL_BIN) ./files/ltecalling.init $(1)/etc/init.d/ltecalling
$(INSTALL_DATA) ./files/EthMD32.dm.bin $(1)/lib/firmware/
$(INSTALL_DATA) ./files/EthMD32.DSP.bin $(1)/lib/firmware/
endef
$(eval $(call BuildPackage,bpir3_mini-properties))

View File

@ -0,0 +1,40 @@
#!/bin/sh
### enable fan ###
echo 0 > /sys/class/pwm/pwmchip0/export
echo 10000 > /sys/class/pwm/pwmchip0/pwm0/period
echo 7000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
echo normal > /sys/class/pwm/pwmchip0/pwm0/polarity
echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable
while :
do
sleep 20
result=`cat /sys/class/thermal/thermal_zone0/temp`
temperature=$((result))
#echo $temperature
if [ ${temperature} -le 58000 ]; then
echo 5000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
fi
if [ ${temperature} -ge 58000 ]; then
echo 5000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
fi
if [ ${temperature} -ge 62000 ]; then
echo 4500 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
fi
if [ ${temperature} -ge 75000 ]; then
echo 3700 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
fi
if [ ${temperature} -ge 80000 ]; then
echo 2500 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
fi
if [ ${temperature} -ge 85000 ]; then
echo 1000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
fi
done

View File

@ -0,0 +1,16 @@
#!/bin/sh /etc/rc.common
START=99
USE_PROCD=1
start_service() {
if [ ! -f /sys/class/pwm/pwmchip0/export ]; then
return
fi
procd_open_instance
procd_set_param stdout 1
procd_set_param stderr 1
procd_set_param command "/sbin/bpir3_fanspeed"
procd_close_instance
}

View File

@ -0,0 +1,14 @@
#!/bin/sh /etc/rc.common
START=80
USE_PROCD=1
start_service() {
if [ -f /sys/class/gpio/export ]; then
### enable M.2 5G RM500U-CN Module Power ###
echo 443 > /sys/class/gpio/export
echo 431 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio431/direction
echo 0 > /sys/class/gpio/gpio431/value
fi
}

View File

@ -0,0 +1,46 @@
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=exfat
PKG_VERSION:=6.0.0
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/namjaejeon/linux-exfat-oot/tar.gz/$(PKG_VERSION)?
PKG_HASH:=08513c4ad7bceda6570435f54e76fc91369cbf404968838bdd3f566495f20f36
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/linux-exfat-oot-$(PKG_VERSION)
PKG_MAINTAINER:=
PKG_LICENSE:=GPL-2.0-only
include $(INCLUDE_DIR)/package.mk
define KernelPackage/fs-exfat
SECTION:=kernel
CATEGORY:=Kernel modules
SUBMENU:=Filesystems
TITLE:=exFAT kernel module
URL:=https://github.com/namjaejeon/linux-exfat-oot
FILES:=$(PKG_BUILD_DIR)/exfat.ko
AUTOLOAD:=$(call AutoProbe,exfat)
DEPENDS:= +kmod-nls-base
endef
define KernelPackage/exfat/description
This package provides the kernel module for exfat.
endef
define Build/Compile
$(KERNEL_MAKE) M="$(PKG_BUILD_DIR)" \
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
$(PKG_EXTRA_KCONFIG) \
CONFIG_EXFAT_FS=m \
modules
endef
$(eval $(call KernelPackage,fs-exfat))

View File

@ -538,9 +538,8 @@ static int gpio_keys_button_probe(struct platform_device *pdev,
struct device_node *child =
of_get_next_child(dev->of_node, prev);
bdata->gpiod = devm_fwnode_gpiod_get(dev,
of_fwnode_handle(child), NULL, GPIOD_IN,
desc);
bdata->gpiod = devm_gpiod_get_from_of_node(dev,
child, "gpios", 0, GPIOD_IN, desc);
prev = child;
}

View File

@ -0,0 +1,74 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=ksmbd
PKG_VERSION:=3.5.0
PKG_RELEASE:=$(AUTORELEASE)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://codeload.github.com/cifsd-team/cifsd/tar.gz/$(PKG_VERSION)?
PKG_HASH:= ceb11850bee8ff3575228e1b691d83d710cd9cb586bdaf8e5769d06b82eaaf05
PKG_MAINTAINER:=Andy Walsh <andy.walsh44+github@gmail.com>
PKG_LICENSE:=GPL-2.0-or-later
PKG_LICENSE_FILES:=COPYING
include $(INCLUDE_DIR)/kernel.mk
include $(INCLUDE_DIR)/package.mk
TAR_OPTIONS+= --strip-components 1
TAR_CMD=$(HOST_TAR) -C $(1) $(TAR_OPTIONS)
define KernelPackage/fs-ksmbd
SUBMENU:=Filesystems
TITLE:=SMB kernel server support
URL:=https://github.com/cifsd-team/cifsd
FILES:=$(PKG_BUILD_DIR)/ksmbd.ko
DEPENDS:= \
+kmod-asn1-decoder \
+kmod-nls-base \
+kmod-nls-utf8 \
+kmod-crypto-md4 \
+kmod-crypto-md5 \
+kmod-crypto-hmac \
+kmod-crypto-ecb \
+kmod-crypto-des \
+kmod-crypto-sha256 \
+kmod-crypto-cmac \
+kmod-crypto-sha512 \
+kmod-crypto-aead \
+kmod-crypto-ccm \
+kmod-crypto-gcm \
+kmod-fs-nfsd
endef
# The last DEPENDS entry is a hack in order to get CONFIG_OID_REGISTRY
# which it seems can't be selected independently. Some bug in either base or upstream.
define KernelPackage/fs-ksmbd/description
Ksmbd is an In-kernel SMBv(1)2/3 fileserver.
It's an implementation of the SMB protocol in kernel space for sharing files and IPC services over network.
endef
define KernelPackage/fs-ksmbd/config
config KSMBD_SMB_INSECURE_SERVER
bool "Support for insecure SMB1/CIFS and SMB2.0 protocols"
depends on PACKAGE_kmod-fs-ksmbd
help
This enables deprecated insecure protocols dialects: SMB1/CIFS and SMB2.0.
default y
endef
ifeq ($(CONFIG_KSMBD_SMB_INSECURE_SERVER),y)
PKG_EXTRA_KCONFIG:=CONFIG_SMB_INSECURE_SERVER=y
EXTRA_CFLAGS += -DCONFIG_SMB_INSECURE_SERVER=1
endif
define Build/Compile
$(KERNEL_MAKE) M="$(PKG_BUILD_DIR)" \
EXTRA_CFLAGS="$(EXTRA_CFLAGS)" \
$(PKG_EXTRA_KCONFIG) \
CONFIG_SMB_SERVER=m \
modules
endef
$(eval $(call KernelPackage,fs-ksmbd))

View File

@ -0,0 +1,11 @@
--- a/glob.h
+++ b/glob.h
@@ -7,6 +7,8 @@
#ifndef __KSMBD_GLOB_H
#define __KSMBD_GLOB_H
+#undef CONFIG_MODULE_STRIPPED
+
#include <linux/ctype.h>
#include "unicode.h"

View File

@ -20,8 +20,7 @@ define KernelPackage/leds-ws2812b
FILES:= \
$(PKG_BUILD_DIR)/leds-ws2812b.ko
AUTOLOAD:=$(call AutoProbe,leds-ws2812b,1)
DEPENDS:=@TARGET_mediatek_filogic
endef
endef
define KernelPackage/leds-ws2812b/description
LED support for driving WS2812B (NeoPixel) using SPI MOSI.

View File

@ -12,12 +12,10 @@ PKG_NAME:=kernel
PKG_FLAGS:=hold
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/packages
SUBTARGETS = $(sort $(filter-out feeds,$(notdir $(wildcard $(TOPDIR)/target/linux/* $(TOPDIR)/target/linux/feeds/*))))
SUBTARGET_MODULES = $(foreach t,$(SUBTARGETS),$(firstword $(wildcard $(TOPDIR)/target/linux/feeds/$(t)/modules.mk $(TOPDIR)/target/linux/$(t)/modules.mk)))
SCAN_DEPS=modules/*.mk $(SUBTARGET_MODULES) $(TOPDIR)/include/netfilter.mk
SCAN_DEPS=modules/*.mk $(TOPDIR)/target/linux/*/modules.mk $(TOPDIR)/include/netfilter.mk
PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=COPYING
PKG_LICENSE:=GPL-2.0
PKG_LICENSE_FILES:=
export SHELL:=/bin/sh
.ONESHELL:
@ -26,7 +24,7 @@ export SHELL:=/bin/sh
include $(INCLUDE_DIR)/package.mk
ifeq ($(DUMP),)
STAMP_BUILT:=$(STAMP_BUILT)_$(shell $(SCRIPT_DIR)/kconfig.pl $(LINUX_DIR)/.config | $(MKHASH) md5)
STAMP_BUILT:=$(STAMP_BUILT)_$(shell $(SCRIPT_DIR)/kconfig.pl $(LINUX_DIR)/.config | mkhash md5)
-include $(LINUX_DIR)/.config
endif
@ -37,9 +35,6 @@ endef
define Build/Configure
endef
define Build/Quilt
endef
define Build/Compile
endef
@ -52,18 +47,13 @@ define Package/kernel
CATEGORY:=Kernel
DEFAULT:=y
TITLE:=Virtual kernel package
VERSION:=$(LINUX_VERSION)~$(LINUX_VERMAGIC)-r$(LINUX_RELEASE)
VERSION:=$(LINUX_VERSION)-$(LINUX_RELEASE)-$(LINUX_VERMAGIC)
URL:=http://www.kernel.org/
PKG_FLAGS:=nonshared
endef
define Package/kernel/install
$(INSTALL_DIR) $(1)/$(MODULES_SUBDIR)
$(INSTALL_DATA) $(LINUX_DIR)/modules.builtin $(1)/$(MODULES_SUBDIR)
$(SED) 's,.*/,,' $(1)/$(MODULES_SUBDIR)/modules.builtin
strings $(LINUX_DIR)/modules.builtin.modinfo | \
grep -E -v "\.(file$(if CONFIG_MODULE_STRIPPED,|parmtype))=" | \
tr '\n' '\0' > $(1)/$(MODULES_SUBDIR)/modules.builtin.modinfo
# nothing to do
endef
define Package/kernel/extra_provides
@ -73,4 +63,4 @@ endef
$(eval $(if $(DUMP),,$(call BuildPackage,kernel)))
include $(sort $(wildcard ./modules/*.mk))
-include $(SUBTARGET_MODULES)
-include $(TOPDIR)/target/linux/*/modules.mk

View File

@ -12,7 +12,7 @@ config_get teql $INTERFACE teql
if [ "$teql" != "" ]; then
logger Adding device $DEVICE to TEQL master $teql
modprobe sch_teql
insmod sch_teql
tc qdisc add dev $DEVICE root $teql
# The kernel doesn't let us bring it up until it has at least one

View File

@ -7,3 +7,6 @@ net.netfilter.nf_conntrack_tcp_timeout_established=7440
net.netfilter.nf_conntrack_udp_timeout=60
net.netfilter.nf_conntrack_udp_timeout_stream=180
net.netfilter.nf_conntrack_helper=1
net.netfilter.nf_conntrack_buckets=65536
net.netfilter.nf_conntrack_expect_max=16384
net.netfilter.nf_conntrack_max=100000

View File

@ -65,7 +65,7 @@ define KernelPackage/ata-ahci-platform
$(LINUX_DIR)/drivers/ata/ahci_platform.ko \
$(LINUX_DIR)/drivers/ata/libahci_platform.ko
AUTOLOAD:=$(call AutoLoad,40,libahci libahci_platform ahci_platform,1)
$(call AddDepends/ata,@TARGET_ipq806x||TARGET_layerscape||TARGET_rockchip||TARGET_sunxi)
$(call AddDepends/ata,@TARGET_ipq806x||TARGET_layerscape||TARGET_sunxi)
endef
define KernelPackage/ata-ahci-platform/description
@ -89,18 +89,21 @@ endef
$(eval $(call KernelPackage,ata-artop))
define KernelPackage/ata-ahci-dwc
TITLE:=Synopsys DWC AHCI SATA
KCONFIG:= \
CONFIG_AHCI_DWC \
CONFIG_SATA_HOST=y
FILES:=$(LINUX_DIR)/drivers/ata/ahci_dwc.ko
DEPENDS:=+kmod-ata-ahci-platform
AUTOLOAD:=$(call AutoLoad,41,ahci_dwc,1)
$(call AddDepends/ata,@TARGET_rockchip)
define KernelPackage/ata-marvell-sata
TITLE:=Marvell Serial ATA support
KCONFIG:=CONFIG_SATA_MV
FILES:=$(LINUX_DIR)/drivers/ata/sata_mv.ko
AUTOLOAD:=$(call AutoLoad,41,sata_mv,1)
$(call AddDepends/ata)
endef
$(eval $(call KernelPackage,ata-ahci-dwc))
define KernelPackage/ata-marvell-sata/description
SATA support for marvell chipsets
endef
$(eval $(call KernelPackage,ata-marvell-sata))
define KernelPackage/ata-nvidia-sata
TITLE:=Nvidia Serial ATA support
@ -215,7 +218,7 @@ $(eval $(call KernelPackage,dax))
define KernelPackage/dm
SUBMENU:=$(BLOCK_MENU)
TITLE:=Device Mapper
DEPENDS:=+kmod-crypto-manager +kmod-dax +KERNEL_KEYS:kmod-keys-encrypted
DEPENDS:=+kmod-crypto-manager +kmod-dax
# All the "=n" are unnecessary, they're only there
# to stop the config from asking the question.
# MIRROR is M because I've needed it for pvmove.
@ -240,7 +243,7 @@ define KernelPackage/dm
$(LINUX_DIR)/drivers/md/dm-log.ko \
$(LINUX_DIR)/drivers/md/dm-mirror.ko \
$(LINUX_DIR)/drivers/md/dm-region-hash.ko
AUTOLOAD:=$(call AutoLoad,30,dm-mod dm-log dm-region-hash dm-mirror dm-crypt,1)
AUTOLOAD:=$(call AutoLoad,30,dm-mod dm-log dm-region-hash dm-mirror dm-crypt)
endef
define KernelPackage/dm/description
@ -275,7 +278,7 @@ define KernelPackage/iscsi-initiator
CONFIG_INET \
CONFIG_SCSI_LOWLEVEL=y \
CONFIG_ISCSI_TCP \
CONFIG_SCSI_ISCSI_ATTRS
CONFIG_SCSI_ISCSI_ATTRS=y
FILES:= \
$(LINUX_DIR)/drivers/scsi/iscsi_tcp.ko \
$(LINUX_DIR)/drivers/scsi/libiscsi.ko \
@ -462,7 +465,7 @@ define KernelPackage/loop
CONFIG_BLK_DEV_LOOP \
CONFIG_BLK_DEV_CRYPTOLOOP=n
FILES:=$(LINUX_DIR)/drivers/block/loop.ko
AUTOLOAD:=$(call AutoLoad,30,loop,1)
AUTOLOAD:=$(call AutoLoad,30,loop)
endef
define KernelPackage/loop/description
@ -508,16 +511,16 @@ $(eval $(call KernelPackage,nbd))
define KernelPackage/nvme
SUBMENU:=$(BLOCK_MENU)
TITLE:=NVM Express block device
DEPENDS:=@PCI_SUPPORT +kmod-hwmon-core
DEPENDS:=@PCI_SUPPORT
KCONFIG:= \
CONFIG_NVME_CORE \
CONFIG_BLK_DEV_NVME \
CONFIG_NVME_MULTIPATH=n \
CONFIG_NVME_HWMON=y
CONFIG_NVME_HWMON=n
FILES:= \
$(LINUX_DIR)/drivers/nvme/host/nvme-core.ko \
$(LINUX_DIR)/drivers/nvme/host/nvme.ko
AUTOLOAD:=$(call AutoLoad,30,nvme-core nvme,1)
AUTOLOAD:=$(call AutoLoad,30,nvme-core nvme)
endef
define KernelPackage/nvme/description
@ -533,13 +536,11 @@ define KernelPackage/scsi-core
TITLE:=SCSI device support
KCONFIG:= \
CONFIG_SCSI \
CONFIG_SCSI_COMMON \
CONFIG_BLK_DEV_SD
FILES:= \
$(LINUX_DIR)/drivers/scsi/scsi_mod.ko \
$(LINUX_DIR)/drivers/scsi/scsi_common.ko \
$(LINUX_DIR)/drivers/scsi/sd_mod.ko
AUTOLOAD:=$(call AutoLoad,40,scsi_mod scsi_common sd_mod,1)
AUTOLOAD:=$(call AutoLoad,40,scsi_mod sd_mod,1)
endef
$(eval $(call KernelPackage,scsi-core))
@ -559,24 +560,16 @@ endef
$(eval $(call KernelPackage,scsi-generic))
define KernelPackage/cdrom
TITLE:=Kernel library module for CD / DVD drives
KCONFIG:=CONFIG_CDROM
HIDDEN:=1
FILES:=$(LINUX_DIR)/drivers/cdrom/cdrom.ko
endef
$(eval $(call KernelPackage,cdrom))
define KernelPackage/scsi-cdrom
SUBMENU:=$(BLOCK_MENU)
TITLE:=Kernel support for CD / DVD drives
DEPENDS:=+kmod-scsi-core +kmod-cdrom
DEPENDS:=+kmod-scsi-core
KCONFIG:= \
CONFIG_BLK_DEV_SR \
CONFIG_BLK_DEV_SR_VENDOR=n
FILES:=$(LINUX_DIR)/drivers/scsi/sr_mod.ko
FILES:= \
$(LINUX_DIR)/drivers/cdrom/cdrom.ko \
$(LINUX_DIR)/drivers/scsi/sr_mod.ko
AUTOLOAD:=$(call AutoLoad,45,sr_mod)
endef

View File

@ -13,7 +13,6 @@ define KernelPackage/can
KCONFIG:=\
CONFIG_CAN=m \
CONFIG_CAN_DEV \
CONFIG_CAN_NETLINK=y \
CONFIG_CAN_CALC_BITTIMING=y \
CONFIG_CAN_LEDS=y \
CONFIG_CAN_AT91=n \
@ -120,9 +119,9 @@ $(eval $(call KernelPackage,can-c-can-platform))
define KernelPackage/can-flexcan
TITLE:=Support for Freescale FLEXCAN based chips
KCONFIG:=CONFIG_CAN_FLEXCAN
FILES:=$(LINUX_DIR)/drivers/net/can/flexcan/flexcan.ko
FILES:=$(LINUX_DIR)/drivers/net/can/flexcan.ko
AUTOLOAD:=$(call AutoProbe,flexcan)
$(call AddDepends/can,@TARGET_imx)
$(call AddDepends/can,@TARGET_imx6)
endef
define KernelPackage/can-flexcan/description
@ -153,7 +152,7 @@ define KernelPackage/can-mcp251x
CONFIG_SPI=y \
CONFIG_CAN_MCP251X
FILES:=$(LINUX_DIR)/drivers/net/can/spi/mcp251x.ko
AUTOLOAD:=$(call AutoProbe,mcp251x)
AUTOLOAD:=$(call AutoProbe,can-mcp251x)
$(call AddDepends/can)
endef
@ -183,7 +182,7 @@ $(eval $(call KernelPackage,can-raw))
define KernelPackage/can-slcan
TITLE:=Serial / USB serial CAN Adaptors (slcan)
KCONFIG:=CONFIG_CAN_SLCAN
FILES:=$(LINUX_DIR)/drivers/net/can/slcan/slcan.ko
FILES:=$(LINUX_DIR)/drivers/net/can/slcan.ko
AUTOLOAD:=$(call AutoProbe,slcan)
$(call AddDepends/can)
endef
@ -231,9 +230,9 @@ $(eval $(call KernelPackage,can-usb-ems))
define KernelPackage/can-usb-esd
TITLE:=ESD USB/2 CAN/USB interface
KCONFIG:=CONFIG_CAN_ESD_USB
FILES:=$(LINUX_DIR)/drivers/net/can/usb/esd_usb.ko
AUTOLOAD:=$(call AutoProbe,esd_usb2 esd_usb)
KCONFIG:=CONFIG_CAN_ESD_USB2
FILES:=$(LINUX_DIR)/drivers/net/can/usb/esd_usb2.ko
AUTOLOAD:=$(call AutoProbe,esd_usb2)
$(call AddDepends/can,+kmod-usb-core)
endef
@ -245,25 +244,6 @@ endef
$(eval $(call KernelPackage,can-usb-esd))
define KernelPackage/can-usb-gs
TITLE:=Geschwister Schneider UG interfaces
KCONFIG:=CONFIG_CAN_GS_USB
FILES:= \
$(LINUX_DIR)/drivers/net/can/usb/gs_usb.ko
AUTOLOAD:=$(call AutoProbe,gs_usb)
$(call AddDepends/can,+kmod-usb-core)
endef
define KernelPackage/can-usb-gsr/description
This driver supports the Geschwister Schneider and
bytewerk.org candleLight compatible
(https://github.com/candle-usb/candleLight_fw) USB/CAN
interfaces.
endef
$(eval $(call KernelPackage,can-usb-gs))
define KernelPackage/can-usb-kvaser
TITLE:=Kvaser CAN/USB interface
KCONFIG:=CONFIG_CAN_KVASER_USB

View File

@ -11,7 +11,7 @@ CRYPTO_MODULES = \
ALGAPI2=crypto_algapi \
BLKCIPHER2=crypto_blkcipher
CRYPTO_TARGET = $(BOARD)/$(SUBTARGET)
CRYPTO_TARGET = $(BOARD)/$(if $(SUBTARGET),$(SUBTARGET),generic)
crypto_confvar=CONFIG_CRYPTO_$(word 1,$(subst =,$(space),$(1)))
crypto_file=$(LINUX_DIR)/crypto/$(word 2,$(subst =,$(space),$(1))).ko
@ -50,13 +50,8 @@ $(eval $(call KernelPackage,crypto-aead))
define KernelPackage/crypto-arc4
TITLE:=ARC4 cipher CryptoAPI module
DEPENDS:=+kmod-crypto-user
KCONFIG:= \
CONFIG_CRYPTO_ARC4 \
CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y
FILES:= \
$(LINUX_DIR)/crypto/arc4.ko \
$(LINUX_DIR)/lib/crypto/libarc4.ko
KCONFIG:=CONFIG_CRYPTO_ARC4
FILES:=$(LINUX_DIR)/crypto/arc4.ko
AUTOLOAD:=$(call AutoLoad,09,arc4)
$(call AddDepends/crypto)
endef
@ -68,28 +63,14 @@ define KernelPackage/crypto-authenc
TITLE:=Combined mode wrapper for IPsec
DEPENDS:=+kmod-crypto-manager +kmod-crypto-null
KCONFIG:=CONFIG_CRYPTO_AUTHENC
FILES:= \
$(LINUX_DIR)/crypto/authenc.ko \
$(LINUX_DIR)/crypto/authencesn.ko
AUTOLOAD:=$(call AutoLoad,09,authenc authencesn)
FILES:=$(LINUX_DIR)/crypto/authenc.ko
AUTOLOAD:=$(call AutoLoad,09,authenc)
$(call AddDepends/crypto)
endef
$(eval $(call KernelPackage,crypto-authenc))
define KernelPackage/crypto-blake2b
TITLE:=Support for BLAKE2b cryptographic hash function (RFC 7693)
DEPENDS:=+kmod-crypto-hash
KCONFIG:=CONFIG_CRYPTO_BLAKE2B
FILES:=$(LINUX_DIR)/crypto/blake2b_generic.ko
AUTOLOAD:=$(call AutoLoad,09,blake2b_generic)
$(call AddDepends/crypto)
endef
$(eval $(call KernelPackage,crypto-blake2b))
define KernelPackage/crypto-cbc
TITLE:=Cipher Block Chaining CryptoAPI module
DEPENDS:=+kmod-crypto-manager
@ -114,18 +95,6 @@ endef
$(eval $(call KernelPackage,crypto-ccm))
define KernelPackage/crypto-chacha20poly1305
TITLE:=ChaCha20-Poly1305 AEAD support, RFC7539 (used by strongSwan IPsec VPN)
DEPENDS:=+kmod-crypto-aead +kmod-crypto-manager
KCONFIG:=CONFIG_CRYPTO_CHACHA20POLY1305
FILES:=$(LINUX_DIR)/crypto/chacha20poly1305.ko
AUTOLOAD:=$(call AutoLoad,09,chacha20poly1305)
$(call AddDepends/crypto)
endef
$(eval $(call KernelPackage,crypto-chacha20poly1305))
define KernelPackage/crypto-cmac
TITLE:=Support for Cipher-based Message Authentication Code (CMAC)
DEPENDS:=+kmod-crypto-hash
@ -226,7 +195,7 @@ $(eval $(call KernelPackage,crypto-ecb))
define KernelPackage/crypto-ecdh
TITLE:=ECDH algorithm
DEPENDS:=+kmod-crypto-kpp +kmod-crypto-rng
DEPENDS:=+kmod-crypto-kpp
KCONFIG:= CONFIG_CRYPTO_ECDH
FILES:= \
$(LINUX_DIR)/crypto/ecdh_generic.ko \
@ -240,7 +209,7 @@ $(eval $(call KernelPackage,crypto-ecdh))
define KernelPackage/crypto-echainiv
TITLE:=Encrypted Chain IV Generator
DEPENDS:=+kmod-crypto-aead +kmod-crypto-geniv
DEPENDS:=+kmod-crypto-aead
KCONFIG:=CONFIG_CRYPTO_ECHAINIV
FILES:=$(LINUX_DIR)/crypto/echainiv.ko
AUTOLOAD:=$(call AutoLoad,09,echainiv)
@ -249,27 +218,6 @@ endef
$(eval $(call KernelPackage,crypto-echainiv))
define KernelPackage/crypto-engine
TITLE:=Crypto engine
KCONFIG:=CONFIG_CRYPTO_ENGINE
FILES:=$(LINUX_DIR)/crypto/crypto_engine.ko
AUTOLOAD:=$(call AutoLoad,09,crypto_engine)
$(call AddDepends/crypto, +kmod-crypto-rsa +kmod-crypto-kpp)
endef
$(eval $(call KernelPackage,crypto-engine))
define KernelPackage/crypto-essiv
TITLE:=ESSIV support for block encryption
DEPENDS:=+kmod-crypto-authenc
KCONFIG:=CONFIG_CRYPTO_ESSIV
FILES:= $(LINUX_DIR)/crypto/essiv.ko
AUTOLOAD:=$(call AutoLoad,10,essiv)
$(call AddDepends/crypto)
endef
$(eval $(call KernelPackage,crypto-essiv))
define KernelPackage/crypto-fcrypt
TITLE:=FCRYPT cipher CryptoAPI module
@ -308,10 +256,8 @@ $(eval $(call KernelPackage,crypto-xcbc))
define KernelPackage/crypto-gf128
TITLE:=GF(2^128) multiplication functions CryptoAPI module
KCONFIG:= \
CONFIG_CRYPTO_GF128MUL \
CONFIG_CRYPTO_LIB_GF128MUL
FILES:=$(LINUX_DIR)/lib/crypto/gf128mul.ko
KCONFIG:=CONFIG_CRYPTO_GF128MUL
FILES:=$(LINUX_DIR)/crypto/gf128mul.ko
AUTOLOAD:=$(call AutoLoad,09,gf128mul)
$(call AddDepends/crypto)
endef
@ -335,8 +281,7 @@ define KernelPackage/crypto-ghash/arm-ce
AUTOLOAD+=$(call AutoLoad,09,ghash-arm-ce)
endef
KernelPackage/crypto-ghash/imx/cortexa7=$(KernelPackage/crypto-ghash/arm-ce)
KernelPackage/crypto-ghash/imx/cortexa9=$(KernelPackage/crypto-ghash/arm-ce)
KernelPackage/crypto-ghash/imx6=$(KernelPackage/crypto-ghash/arm-ce)
KernelPackage/crypto-ghash/ipq40xx=$(KernelPackage/crypto-ghash/arm-ce)
KernelPackage/crypto-ghash/mvebu/cortexa9=$(KernelPackage/crypto-ghash/arm-ce)
@ -366,26 +311,6 @@ endef
$(eval $(call KernelPackage,crypto-hmac))
define KernelPackage/crypto-hw-atmel
TITLE:=Microchip / Atmel ECC/SHA/RNG hw accelerator
DEPENDS:=+kmod-i2c-core +kmod-crypto-ecdh +kmod-crypto-sha1 \
+kmod-crypto-sha256 +kmod-lib-crc16 +kmod-random-core
KCONFIG:= \
CONFIG_CRYPTO_HW=y \
CONFIG_CRYPTO_DEV_ATMEL_I2C \
CONFIG_CRYPTO_DEV_ATMEL_ECC \
CONFIG_CRYPTO_DEV_ATMEL_SHA204A
FILES:= \
$(LINUX_DIR)/drivers/crypto/atmel-i2c.ko \
$(LINUX_DIR)/drivers/crypto/atmel-ecc.ko \
$(LINUX_DIR)/drivers/crypto/atmel-sha204a.ko
AUTOLOAD:=$(call AutoLoad,09,atmel-i2c atmel-ecc atmel-sha204a)
$(call AddDepends/crypto)
endef
$(eval $(call KernelPackage,crypto-hw-atmel))
define KernelPackage/crypto-hw-ccp
TITLE:=AMD Cryptographic Coprocessor
DEPENDS:= \
@ -415,7 +340,7 @@ $(eval $(call KernelPackage,crypto-hw-ccp))
define KernelPackage/crypto-hw-geode
TITLE:=AMD Geode hardware crypto module
DEPENDS:=@TARGET_x86_geode +kmod-crypto-manager
DEPENDS:=+kmod-crypto-manager
KCONFIG:= \
CONFIG_CRYPTO_HW=y \
CONFIG_CRYPTO_DEV_GEODE
@ -429,7 +354,7 @@ $(eval $(call KernelPackage,crypto-hw-geode))
define KernelPackage/crypto-hw-hifn-795x
TITLE:=HIFN 795x crypto accelerator
DEPENDS:=@PCI_SUPPORT +kmod-random-core +kmod-crypto-manager
DEPENDS:=+kmod-random-core +kmod-crypto-manager
KCONFIG:= \
CONFIG_CRYPTO_HW=y \
CONFIG_CRYPTO_DEV_HIFN_795X \
@ -441,19 +366,6 @@ endef
$(eval $(call KernelPackage,crypto-hw-hifn-795x))
define KernelPackage/crypto-hw-ixp4xx
TITLE:=Intel IXP4xx crypto accelerator
DEPENDS:=@TARGET_ixp4xx +kmod-random-core +kmod-crypto-manager +kmod-crypto-authenc +kmod-crypto-des
KCONFIG:= \
CONFIG_CRYPTO_HW=y \
CONFIG_CRYPTO_DEV_IXP4XX
FILES:=$(LINUX_DIR)/drivers/crypto/intel/ixp4xx/ixp4xx_crypto.ko
AUTOLOAD:=$(call AutoProbe,ixp4xx_crypto)
$(call AddDepends/crypto)
endef
$(eval $(call KernelPackage,crypto-hw-ixp4xx))
define KernelPackage/crypto-hw-padlock
TITLE:=VIA PadLock ACE with AES/SHA hw crypto module
@ -475,9 +387,8 @@ $(eval $(call KernelPackage,crypto-hw-padlock))
define KernelPackage/crypto-hw-safexcel
TITLE:= MVEBU SafeXcel Crypto Engine module
DEPENDS:=@(TARGET_mvebu_cortexa53||TARGET_mvebu_cortexa72||TARGET_mediatek_filogic||TARGET_mediatek_mt7623) \
+eip197-mini-firmware +kmod-crypto-authenc +kmod-crypto-des +kmod-crypto-md5 +kmod-crypto-hmac \
+kmod-crypto-sha1 +kmod-crypto-sha256 +kmod-crypto-sha512
DEPENDS:=@(TARGET_mvebu_cortexa53||TARGET_mvebu_cortexa72) +eip197-mini-firmware \
+kmod-crypto-authenc +kmod-crypto-md5 +kmod-crypto-hmac +kmod-crypto-sha256 +kmod-crypto-sha512
KCONFIG:= \
CONFIG_CRYPTO_HW=y \
CONFIG_CRYPTO_DEV_SAFEXCEL
@ -503,8 +414,7 @@ $(eval $(call KernelPackage,crypto-hw-safexcel))
define KernelPackage/crypto-hw-talitos
TITLE:=Freescale integrated security engine (SEC) driver
DEPENDS:=@(TARGET_mpc85xx||TARGET_layerscape) +kmod-crypto-manager \
+kmod-crypto-hash +kmod-random-core +kmod-crypto-authenc +kmod-crypto-des
DEPENDS:=+kmod-crypto-manager +kmod-crypto-hash +kmod-random-core +kmod-crypto-authenc +kmod-crypto-des
KCONFIG:= \
CONFIG_CRYPTO_HW=y \
CONFIG_CRYPTO_DEV_TALITOS \
@ -518,35 +428,6 @@ endef
$(eval $(call KernelPackage,crypto-hw-talitos))
define KernelPackage/crypto-hw-eip93
TITLE:=MTK EIP93 crypto module
DEPENDS:=@TARGET_ramips_mt7621 \
+kmod-crypto-authenc \
+kmod-crypto-des \
+kmod-crypto-md5 \
+kmod-crypto-sha1 \
+kmod-crypto-sha256
KCONFIG:= \
CONFIG_CRYPTO_HW=y \
CONFIG_CRYPTO_DEV_EIP93 \
CONFIG_CRYPTO_DEV_EIP93_AES=y \
CONFIG_CRYPTO_DEV_EIP93_DES=y \
CONFIG_CRYPTO_DEV_EIP93_AEAD=y \
CONFIG_CRYPTO_DEV_EIP93_GENERIC_SW_MAX_LEN=256 \
CONFIG_CRYPTO_DEV_EIP93_AES_128_SW_MAX_LEN=512
FILES:=$(LINUX_DIR)/drivers/crypto/mtk-eip93/crypto-hw-eip93.ko
AUTOLOAD:=$(call AutoLoad,09,crypto-hw-eip93)
$(call AddDepends/crypto)
endef
define KernelPackage/crypto-hw-eip93/description
Kernel module to enable EIP-93 Crypto engine as found
in the Mediatek MT7621 SoC.
It enables DES/3DES/AES ECB/CBC/CTR and
IPSEC offload with authenc(hmac(sha1/sha256), aes/cbc/rfc3686)
endef
$(eval $(call KernelPackage,crypto-hw-eip93))
define KernelPackage/crypto-kpp
TITLE:=Key-agreement Protocol Primitives
@ -558,6 +439,7 @@ endef
$(eval $(call KernelPackage,crypto-kpp))
define KernelPackage/crypto-lib-chacha20
TITLE:=ChaCha library interface
KCONFIG:=CONFIG_CRYPTO_LIB_CHACHA
@ -578,8 +460,6 @@ define KernelPackage/crypto-lib-chacha20/arm
FILES:=$(LINUX_DIR)/arch/arm/crypto/chacha-neon.ko
endef
KernelPackage/crypto-lib-chacha20/armeb=$(KernelPackage/crypto-lib-chacha20/arm)
define KernelPackage/crypto-lib-chacha20/aarch64
KCONFIG+=CONFIG_CRYPTO_CHACHA20_NEON
FILES+=$(LINUX_DIR)/arch/arm64/crypto/chacha-neon.ko
@ -628,7 +508,7 @@ define KernelPackage/crypto-lib-curve25519/config
imply PACKAGE_kmod-crypto-kpp
endef
define KernelPackage/crypto-lib-curve25519/x86_64
define KernelPackage/crypto-lib-curve25519/x86/64
KCONFIG+=CONFIG_CRYPTO_CURVE25519_X86
FILES+=$(LINUX_DIR)/arch/x86/crypto/curve25519-x86_64.ko
endef
@ -643,11 +523,6 @@ ifeq ($(ARCH)-$(CONFIG_KERNEL_MODE_NEON),arm-y)
$(KernelPackage/crypto-lib-curve25519/arm-neon)
endif
ifdef KernelPackage/crypto-lib-curve25519/$(ARCH)
KernelPackage/crypto-lib-curve25519/$(CRYPTO_TARGET)=\
$(KernelPackage/crypto-lib-curve25519/$(ARCH))
endif
$(eval $(call KernelPackage,crypto-lib-curve25519))
@ -673,8 +548,6 @@ define KernelPackage/crypto-lib-poly1305/arm
FILES:=$(LINUX_DIR)/arch/arm/crypto/poly1305-arm.ko
endef
KernelPackage/crypto-lib-poly1305/armeb=$(KernelPackage/crypto-lib-poly1305/arm)
define KernelPackage/crypto-lib-poly1305/aarch64
KCONFIG+=CONFIG_CRYPTO_POLY1305_NEON
FILES:=$(LINUX_DIR)/arch/arm64/crypto/poly1305-neon.ko
@ -699,7 +572,7 @@ $(eval $(call KernelPackage,crypto-lib-poly1305))
define KernelPackage/crypto-manager
TITLE:=CryptoAPI algorithm manager
DEPENDS:=+kmod-crypto-aead +kmod-crypto-hash
DEPENDS:=+kmod-crypto-aead +kmod-crypto-hash +kmod-crypto-pcompress
KCONFIG:= \
CONFIG_CRYPTO_MANAGER \
CONFIG_CRYPTO_MANAGER2
@ -740,16 +613,11 @@ define KernelPackage/crypto-md5/octeon
AUTOLOAD+=$(call AutoLoad,09,octeon-md5)
endef
define KernelPackage/crypto-md5/powerpc
define KernelPackage/crypto-md5/mpc85xx
FILES+=$(LINUX_DIR)/arch/powerpc/crypto/md5-ppc.ko
AUTOLOAD+=$(call AutoLoad,09,md5-ppc)
endef
ifdef KernelPackage/crypto-md5/$(ARCH)
KernelPackage/crypto-md5/$(CRYPTO_TARGET)=\
$(KernelPackage/crypto-md5/$(ARCH))
endif
$(eval $(call KernelPackage,crypto-md5))
@ -767,9 +635,8 @@ $(eval $(call KernelPackage,crypto-michael-mic))
define KernelPackage/crypto-misc
TITLE:=Other CryptoAPI modules
DEPENDS:=+kmod-crypto-xts +kmod-crypto-user
DEPENDS:=+kmod-crypto-xts
KCONFIG:= \
CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE=y \
CONFIG_CRYPTO_CAMELLIA_X86_64 \
CONFIG_CRYPTO_BLOWFISH_X86_64 \
CONFIG_CRYPTO_TWOFISH_X86_64 \
@ -788,9 +655,11 @@ define KernelPackage/crypto-misc
CONFIG_CRYPTO_CAMELLIA \
CONFIG_CRYPTO_CAST5 \
CONFIG_CRYPTO_CAST6 \
CONFIG_CRYPTO_FCRYPT \
CONFIG_CRYPTO_KHAZAD \
CONFIG_CRYPTO_SERPENT \
CONFIG_CRYPTO_TEA \
CONFIG_CRYPTO_TGR192 \
CONFIG_CRYPTO_TWOFISH \
CONFIG_CRYPTO_TWOFISH_COMMON \
CONFIG_CRYPTO_TWOFISH_586 \
@ -803,6 +672,7 @@ define KernelPackage/crypto-misc
$(LINUX_DIR)/crypto/cast6_generic.ko \
$(LINUX_DIR)/crypto/khazad.ko \
$(LINUX_DIR)/crypto/tea.ko \
$(LINUX_DIR)/crypto/tgr192.ko \
$(LINUX_DIR)/crypto/twofish_common.ko \
$(LINUX_DIR)/crypto/wp512.ko \
$(LINUX_DIR)/crypto/twofish_generic.ko \
@ -810,7 +680,7 @@ define KernelPackage/crypto-misc
$(LINUX_DIR)/crypto/blowfish_generic.ko \
$(LINUX_DIR)/crypto/serpent_generic.ko
AUTOLOAD:=$(call AutoLoad,10,anubis camellia_generic cast_common \
cast5_generic cast6_generic khazad tea twofish_common \
cast5_generic cast6_generic khazad tea tgr192 twofish_common \
wp512 blowfish_common serpent_generic)
ifndef CONFIG_TARGET_x86
AUTOLOAD+= $(call AutoLoad,10,twofish_generic blowfish_generic)
@ -823,14 +693,15 @@ ifndef CONFIG_TARGET_x86_64
FILES+= \
$(LINUX_DIR)/arch/x86/crypto/twofish-i586.ko \
$(LINUX_DIR)/arch/x86/crypto/serpent-sse2-i586.ko \
$(LINUX_DIR)/arch/x86/crypto/glue_helper.ko \
$(LINUX_DIR)/crypto/cryptd.ko \
$(LINUX_DIR)/crypto/crypto_simd.ko
AUTOLOAD+= $(call AutoLoad,10,cryptd \
AUTOLOAD+= $(call AutoLoad,10,cryptd glue_helper \
serpent-sse2-i586 twofish-i586 blowfish_generic)
endef
endif
define KernelPackage/crypto-misc/x86_64
define KernelPackage/crypto-misc/x86/64
FILES+= \
$(LINUX_DIR)/arch/x86/crypto/camellia-x86_64.ko \
$(LINUX_DIR)/arch/x86/crypto/blowfish-x86_64.ko \
@ -850,11 +721,6 @@ define KernelPackage/crypto-misc/x86_64
twofish-avx-x86_64 blowfish-x86_64 serpent-avx-x86_64 serpent-avx2)
endef
ifdef KernelPackage/crypto-misc/$(ARCH)
KernelPackage/crypto-misc/$(CRYPTO_TARGET)=\
$(KernelPackage/crypto-misc/$(ARCH))
endif
$(eval $(call KernelPackage,crypto-misc))
@ -881,13 +747,26 @@ endef
$(eval $(call KernelPackage,crypto-pcbc))
define KernelPackage/crypto-pcompress
TITLE:=CryptoAPI Partial (de)compression operations
KCONFIG:= \
CONFIG_CRYPTO_PCOMP=y \
CONFIG_CRYPTO_PCOMP2
FILES:=$(LINUX_DIR)/crypto/pcompress.ko
AUTOLOAD:=$(call AutoLoad,09,pcompress)
$(call AddDepends/crypto)
endef
$(eval $(call KernelPackage,crypto-pcompress))
define KernelPackage/crypto-rsa
TITLE:=RSA algorithm
DEPENDS:=+kmod-crypto-manager +kmod-asn1-decoder
KCONFIG:= CONFIG_CRYPTO_RSA
HIDDEN:=1
FILES:= \
$(LINUX_DIR)/lib/crypto/mpi/mpi.ko \
$(LINUX_DIR)/lib/mpi/mpi.ko \
$(LINUX_DIR)/crypto/akcipher.ko \
$(LINUX_DIR)/crypto/rsa_generic.ko
AUTOLOAD:=$(call AutoLoad,10,rsa_generic)
@ -911,7 +790,7 @@ $(eval $(call KernelPackage,crypto-rmd160))
define KernelPackage/crypto-rng
TITLE:=CryptoAPI random number generation
DEPENDS:=+kmod-crypto-hash +kmod-crypto-hmac +kmod-crypto-sha512 +kmod-crypto-sha3
DEPENDS:=+kmod-crypto-hash +kmod-crypto-hmac +kmod-crypto-sha256
KCONFIG:= \
CONFIG_CRYPTO_DRBG \
CONFIG_CRYPTO_DRBG_HMAC=y \
@ -930,22 +809,9 @@ endef
$(eval $(call KernelPackage,crypto-rng))
define KernelPackage/crypto-geniv
TITLE:=CryptoAPI Shared IV generator
HIDDEN:=1
DEPENDS:=+kmod-crypto-rng +kmod-crypto-aead
KCONFIG:=CONFIG_CRYPTO_GENIV
FILES:=$(LINUX_DIR)/crypto/geniv.ko
AUTOLOAD:=$(call AutoLoad,09,geniv)
$(call AddDepends/crypto)
endef
$(eval $(call KernelPackage,crypto-geniv))
define KernelPackage/crypto-seqiv
TITLE:=CryptoAPI Sequence Number IV Generator
DEPENDS:=+kmod-crypto-aead +kmod-crypto-rng +kmod-crypto-geniv
DEPENDS:=+kmod-crypto-aead +kmod-crypto-rng
KCONFIG:=CONFIG_CRYPTO_SEQIV
FILES:=$(LINUX_DIR)/crypto/seqiv.ko
AUTOLOAD:=$(call AutoLoad,09,seqiv)
@ -962,7 +828,6 @@ define KernelPackage/crypto-sha1
CONFIG_CRYPTO_SHA1 \
CONFIG_CRYPTO_SHA1_ARM \
CONFIG_CRYPTO_SHA1_ARM_NEON \
CONFIG_CRYPTO_SHA1_ARM64_CE \
CONFIG_CRYPTO_SHA1_OCTEON \
CONFIG_CRYPTO_SHA1_PPC_SPE \
CONFIG_CRYPTO_SHA1_SSSE3
@ -982,21 +847,9 @@ define KernelPackage/crypto-sha1/arm-neon
AUTOLOAD+=$(call AutoLoad,09,sha1-arm-neon)
endef
define KernelPackage/crypto-sha1/aarch64-ce
FILES+=$(LINUX_DIR)/arch/arm64/crypto/sha1-ce.ko
AUTOLOAD+=$(call AutoLoad,09,sha1-ce)
endef
KernelPackage/crypto-sha1/imx/cortexa7=$(KernelPackage/crypto-sha1/arm-neon)
KernelPackage/crypto-sha1/imx/cortexa9=$(KernelPackage/crypto-sha1/arm-neon)
KernelPackage/crypto-sha1/imx6=$(KernelPackage/crypto-sha1/arm-neon)
KernelPackage/crypto-sha1/ipq40xx=$(KernelPackage/crypto-sha1/arm-neon)
KernelPackage/crypto-sha1/mediatek/filogic=$(KernelPackage/crypto-sha1/aarch64-ce)
KernelPackage/crypto-sha1/mediatek/mt7622=$(KernelPackage/crypto-sha1/aarch64-ce)
KernelPackage/crypto-sha1/mvebu/cortexa9=$(KernelPackage/crypto-sha1/arm-neon)
KernelPackage/crypto-sha1/mvebu/cortexa53=$(KernelPackage/crypto-sha1/aarch64-ce)
KernelPackage/crypto-sha1/mvebu/cortexa72=$(KernelPackage/crypto-sha1/aarch64-ce)
KernelPackage/crypto-sha1/qualcommax=$(KernelPackage/crypto-sha1/aarch64-ce)
KernelPackage/crypto-sha1/rockchip/armv8=$(KernelPackage/crypto-sha1/aarch64-ce)
define KernelPackage/crypto-sha1/octeon
FILES+=$(LINUX_DIR)/arch/mips/cavium-octeon/crypto/octeon-sha1.ko
@ -1010,33 +863,14 @@ define KernelPackage/crypto-sha1/mpc85xx
AUTOLOAD+=$(call AutoLoad,09,sha1-ppc-spe)
endef
ifndef CONFIG_TARGET_uml
define KernelPackage/crypto-sha1/x86_64
define KernelPackage/crypto-sha1/x86/64
FILES+=$(LINUX_DIR)/arch/x86/crypto/sha1-ssse3.ko
AUTOLOAD+=$(call AutoLoad,09,sha1-ssse3)
endef
endif
ifdef KernelPackage/crypto-sha1/$(ARCH)
KernelPackage/crypto-sha1/$(CRYPTO_TARGET)=\
$(KernelPackage/crypto-sha1/$(ARCH))
endif
$(eval $(call KernelPackage,crypto-sha1))
define KernelPackage/crypto-sha3
TITLE:=SHA3 digest CryptoAPI module
DEPENDS:=+kmod-crypto-hash
KCONFIG:= CONFIG_CRYPTO_SHA3
FILES:=$(LINUX_DIR)/crypto/sha3_generic.ko
AUTOLOAD:=$(call AutoLoad,09,sha3_generic)
$(call AddDepends/crypto)
endef
$(eval $(call KernelPackage,crypto-sha3))
define KernelPackage/crypto-sha256
TITLE:=SHA224 SHA256 digest CryptoAPI module
DEPENDS:=+kmod-crypto-hash
@ -1044,8 +878,6 @@ define KernelPackage/crypto-sha256
CONFIG_CRYPTO_SHA256 \
CONFIG_CRYPTO_SHA256_OCTEON \
CONFIG_CRYPTO_SHA256_PPC_SPE \
CONFIG_CRYPTO_SHA256_ARM64 \
CONFIG_CRYPTO_SHA2_ARM64_CE \
CONFIG_CRYPTO_SHA256_SSSE3
FILES:= \
$(LINUX_DIR)/crypto/sha256_generic.ko \
@ -1054,17 +886,6 @@ define KernelPackage/crypto-sha256
$(call AddDepends/crypto)
endef
define KernelPackage/crypto-sha256/aarch64
FILES+=$(LINUX_DIR)/arch/arm64/crypto/sha256-arm64.ko
AUTOLOAD+=$(call AutoLoad,09,sha256-arm64)
endef
define KernelPackage/crypto-sha256/aarch64-ce
$(call KernelPackage/crypto-sha256/aarch64)
FILES+=$(LINUX_DIR)/arch/arm64/crypto/sha2-ce.ko
AUTOLOAD+=$(call AutoLoad,09,sha2-ce)
endef
define KernelPackage/crypto-sha256/octeon
FILES+=$(LINUX_DIR)/arch/mips/cavium-octeon/crypto/octeon-sha256.ko
AUTOLOAD+=$(call AutoLoad,09,octeon-sha256)
@ -1075,24 +896,10 @@ define KernelPackage/crypto-sha256/mpc85xx
AUTOLOAD+=$(call AutoLoad,09,sha256-ppc-spe)
endef
ifndef CONFIG_TARGET_uml
define KernelPackage/crypto-sha256/x86_64
define KernelPackage/crypto-sha256/x86/64
FILES+=$(LINUX_DIR)/arch/x86/crypto/sha256-ssse3.ko
AUTOLOAD+=$(call AutoLoad,09,sha256-ssse3)
endef
endif
KernelPackage/crypto-sha256/mediatek/filogic=$(KernelPackage/crypto-sha256/aarch64-ce)
KernelPackage/crypto-sha256/mediatek/mt7622=$(KernelPackage/crypto-sha256/aarch64-ce)
KernelPackage/crypto-sha256/mvebu/cortexa53=$(KernelPackage/crypto-sha256/aarch64-ce)
KernelPackage/crypto-sha256/mvebu/cortexa72=$(KernelPackage/crypto-sha256/aarch64-ce)
KernelPackage/crypto-sha256/qualcommax=$(KernelPackage/crypto-sha256/aarch64-ce)
KernelPackage/crypto-sha256/rockchip/armv8=$(KernelPackage/crypto-sha256/aarch64-ce)
ifdef KernelPackage/crypto-sha256/$(ARCH)
KernelPackage/crypto-sha256/$(CRYPTO_TARGET)=\
$(KernelPackage/crypto-sha256/$(ARCH))
endif
$(eval $(call KernelPackage,crypto-sha256))
@ -1103,7 +910,6 @@ define KernelPackage/crypto-sha512
KCONFIG:= \
CONFIG_CRYPTO_SHA512 \
CONFIG_CRYPTO_SHA512_ARM \
CONFIG_CRYPTO_SHA512_ARM64 \
CONFIG_CRYPTO_SHA512_OCTEON \
CONFIG_CRYPTO_SHA512_SSSE3
FILES:=$(LINUX_DIR)/crypto/sha512_generic.ko
@ -1116,13 +922,7 @@ define KernelPackage/crypto-sha512/arm
AUTOLOAD+=$(call AutoLoad,09,sha512-arm)
endef
define KernelPackage/crypto-sha512/aarch64
FILES+=$(LINUX_DIR)/arch/arm64/crypto/sha512-arm64.ko
AUTOLOAD+=$(call AutoLoad,09,sha512-arm64)
endef
KernelPackage/crypto-sha512/imx/cortexa7=$(KernelPackage/crypto-sha512/arm)
KernelPackage/crypto-sha512/imx/cortexa9=$(KernelPackage/crypto-sha512/arm)
KernelPackage/crypto-sha512/imx6=$(KernelPackage/crypto-sha512/arm)
KernelPackage/crypto-sha512/ipq40xx=$(KernelPackage/crypto-sha512/arm)
KernelPackage/crypto-sha512/mvebu/cortexa9=$(KernelPackage/crypto-sha512/arm)
@ -1133,17 +933,10 @@ endef
KernelPackage/crypto-sha512/tegra=$(KernelPackage/crypto-sha512/arm)
ifndef CONFIG_TARGET_uml
define KernelPackage/crypto-sha512/x86_64
define KernelPackage/crypto-sha512/x86/64
FILES+=$(LINUX_DIR)/arch/x86/crypto/sha512-ssse3.ko
AUTOLOAD+=$(call AutoLoad,09,sha512-ssse3)
endef
endif
ifdef KernelPackage/crypto-sha512/$(ARCH)
KernelPackage/crypto-sha512/$(CRYPTO_TARGET)=\
$(KernelPackage/crypto-sha512/$(ARCH))
endif
$(eval $(call KernelPackage,crypto-sha512))
@ -1160,7 +953,7 @@ $(eval $(call KernelPackage,crypto-test))
define KernelPackage/crypto-user
TITLE:=CryptoAPI userspace interface
DEPENDS:=+kmod-crypto-hash +kmod-crypto-manager +kmod-crypto-rng
DEPENDS:=+kmod-crypto-hash +kmod-crypto-manager
KCONFIG:= \
CONFIG_CRYPTO_USER \
CONFIG_CRYPTO_USER_API \
@ -1182,6 +975,16 @@ endef
$(eval $(call KernelPackage,crypto-user))
define KernelPackage/crypto-wq
TITLE:=CryptoAPI work queue handling
KCONFIG:=CONFIG_CRYPTO_WORKQUEUE
FILES:=$(LINUX_DIR)/crypto/crypto_wq.ko
AUTOLOAD:=$(call AutoLoad,09,crypto_wq)
$(call AddDepends/crypto)
endef
$(eval $(call KernelPackage,crypto-wq))
define KernelPackage/crypto-xts
TITLE:=XTS cipher CryptoAPI module
DEPENDS:=+kmod-crypto-gf128 +kmod-crypto-manager
@ -1193,15 +996,3 @@ endef
$(eval $(call KernelPackage,crypto-xts))
define KernelPackage/crypto-xxhash
TITLE:=xxHash non-cryptographic hash algorithm
DEPENDS:=+kmod-crypto-hash +kmod-lib-xxhash
KCONFIG:=CONFIG_CRYPTO_XXHASH
FILES:=$(LINUX_DIR)/crypto/xxhash_generic.ko
AUTOLOAD:=$(call AutoLoad,09,xxhash_generic)
$(call AddDepends/crypto)
endef
$(eval $(call KernelPackage,crypto-xxhash))

View File

@ -10,7 +10,7 @@ FS_MENU:=Filesystems
define KernelPackage/fs-9p
SUBMENU:=$(FS_MENU)
TITLE:=Plan 9 Resource Sharing Support
DEPENDS:=+kmod-9pnet +kmod-fs-netfs
DEPENDS:=+kmod-9pnet
KCONFIG:=\
CONFIG_9P_FS \
CONFIG_9P_FS_POSIX_ACL=n \
@ -67,9 +67,10 @@ $(eval $(call KernelPackage,fs-autofs4))
define KernelPackage/fs-btrfs
SUBMENU:=$(FS_MENU)
TITLE:=BTRFS filesystem support
DEPENDS:=+kmod-lib-crc32c +kmod-lib-lzo +kmod-lib-zlib-inflate +kmod-lib-zlib-deflate +kmod-lib-raid6 +kmod-lib-xor +kmod-lib-zstd +kmod-crypto-blake2b +kmod-crypto-xxhash
DEPENDS:=+kmod-lib-crc32c +kmod-lib-lzo +kmod-lib-zlib-inflate +kmod-lib-zlib-deflate +kmod-lib-raid6 +kmod-lib-xor +kmod-lib-zstd
KCONFIG:=\
CONFIG_BTRFS_FS \
CONFIG_BTRFS_FS_POSIX_ACL=n \
CONFIG_BTRFS_FS_CHECK_INTEGRITY=n
FILES:=\
$(LINUX_DIR)/fs/btrfs/btrfs.ko
@ -83,25 +84,6 @@ endef
$(eval $(call KernelPackage,fs-btrfs))
define KernelPackage/fs-smbfs-common
SUBMENU:=$(FS_MENU)
TITLE:=SMBFS common dependencies support
HIDDEN:=1
DEPENDS:=+kmod-fs-netfs +kmod-nls-ucs2-utils
KCONFIG:=\
CONFIG_SMBFS
FILES:= \
$(LINUX_DIR)/fs/smb/common/cifs_arc4.ko \
$(LINUX_DIR)/fs/smb/common/cifs_md4.ko
endef
define KernelPackage/fs-smbfs-common/description
Kernel module dependency for CIFS or SMB_SERVER support
endef
$(eval $(call KernelPackage,fs-smbfs-common))
define KernelPackage/fs-cifs
SUBMENU:=$(FS_MENU)
TITLE:=CIFS support
@ -109,24 +91,21 @@ define KernelPackage/fs-cifs
CONFIG_CIFS \
CONFIG_CIFS_DFS_UPCALL=n \
CONFIG_CIFS_UPCALL=n
FILES:= \
$(LINUX_DIR)/fs/smb/client/cifs.ko
FILES:=$(LINUX_DIR)/fs/cifs/cifs.ko
AUTOLOAD:=$(call AutoLoad,30,cifs)
$(call AddDepends/nls)
DEPENDS+= \
+kmod-fs-smbfs-common \
+kmod-crypto-md4 \
+kmod-crypto-md5 \
+kmod-crypto-sha256 \
+kmod-crypto-sha512 \
+kmod-crypto-cmac \
+kmod-crypto-hmac \
+kmod-crypto-arc4 \
+kmod-crypto-aead \
+kmod-crypto-ccm \
+kmod-crypto-ecb \
+kmod-crypto-des \
+kmod-asn1-decoder \
+kmod-oid-registry \
+kmod-dnsresolver
+kmod-crypto-des
endef
define KernelPackage/fs-cifs/description
@ -185,24 +164,6 @@ endef
$(eval $(call KernelPackage,fs-efivarfs))
define KernelPackage/fs-exfat
SUBMENU:=$(FS_MENU)
TITLE:=exFAT filesystem support
KCONFIG:= \
CONFIG_EXFAT_FS \
CONFIG_EXFAT_DEFAULT_IOCHARSET="utf8"
FILES:= $(LINUX_DIR)/fs/exfat/exfat.ko
AUTOLOAD:=$(call AutoLoad,30,exfat,1)
DEPENDS:=+kmod-nls-base
endef
define KernelPackage/fs-exfat/description
Kernel module for exFAT filesystem support
endef
$(eval $(call KernelPackage,fs-exfat))
define KernelPackage/fs-exportfs
SUBMENU:=$(FS_MENU)
TITLE:=exportfs kernel server support
@ -262,22 +223,18 @@ $(eval $(call KernelPackage,fs-f2fs))
define KernelPackage/fs-fscache
SUBMENU:=$(FS_MENU)
TITLE:=General filesystem local cache manager
DEPENDS:=+kmod-fs-netfs
DEPENDS:=
KCONFIG:=\
CONFIG_FSCACHE \
CONFIG_FSCACHE=m \
CONFIG_FSCACHE_STATS=y \
CONFIG_FSCACHE_HISTOGRAM=n \
CONFIG_FSCACHE_DEBUG=n \
CONFIG_FSCACHE_OBJECT_LIST=n \
CONFIG_CACHEFILES \
CONFIG_CACHEFILES=y \
CONFIG_CACHEFILES_DEBUG=n \
CONFIG_CACHEFILES_HISTOGRAM=n \
CONFIG_CACHEFILES_ERROR_INJECTION=n \
CONFIG_CACHEFILES_ONDEMAND=n
FILES:= \
$(LINUX_DIR)/fs/fscache/fscache.ko \
$(LINUX_DIR)/fs/cachefiles/cachefiles.ko
AUTOLOAD:=$(call AutoLoad,29,fscache cachefiles)
CONFIG_CACHEFILES_HISTOGRAM=n
FILES:=$(LINUX_DIR)/fs/fscache/fscache.ko
AUTOLOAD:=$(call AutoLoad,29,fscache)
endef
$(eval $(call KernelPackage,fs-fscache))
@ -286,7 +243,6 @@ $(eval $(call KernelPackage,fs-fscache))
define KernelPackage/fs-hfs
SUBMENU:=$(FS_MENU)
TITLE:=HFS filesystem support
DEPENDS:=+kmod-cdrom
KCONFIG:=CONFIG_HFS_FS
FILES:=$(LINUX_DIR)/fs/hfs/hfs.ko
AUTOLOAD:=$(call AutoLoad,30,hfs)
@ -303,7 +259,6 @@ $(eval $(call KernelPackage,fs-hfs))
define KernelPackage/fs-hfsplus
SUBMENU:=$(FS_MENU)
TITLE:=HFS+ filesystem support
DEPENDS:=+kmod-cdrom
KCONFIG:=CONFIG_HFSPLUS_FS
FILES:=$(LINUX_DIR)/fs/hfsplus/hfsplus.ko
AUTOLOAD:=$(call AutoLoad,30,hfsplus)
@ -320,7 +275,7 @@ $(eval $(call KernelPackage,fs-hfsplus))
define KernelPackage/fs-isofs
SUBMENU:=$(FS_MENU)
TITLE:=ISO9660 filesystem support
DEPENDS:=+kmod-lib-zlib-inflate +kmod-cdrom
DEPENDS:=+kmod-lib-zlib-inflate
KCONFIG:=CONFIG_ISO9660_FS CONFIG_JOLIET=y CONFIG_ZISOFS=n
FILES:=$(LINUX_DIR)/fs/isofs/isofs.ko
AUTOLOAD:=$(call AutoLoad,30,isofs)
@ -340,7 +295,6 @@ define KernelPackage/fs-jfs
KCONFIG:=CONFIG_JFS_FS
FILES:=$(LINUX_DIR)/fs/jfs/jfs.ko
AUTOLOAD:=$(call AutoLoad,30,jfs,1)
DEPENDS:=+kmod-nls-ucs2-utils
$(call AddDepends/nls)
endef
@ -350,43 +304,6 @@ endef
$(eval $(call KernelPackage,fs-jfs))
define KernelPackage/fs-ksmbd
SUBMENU:=$(FS_MENU)
TITLE:=SMB kernel server support
DEPENDS:= \
+kmod-nls-base \
+kmod-nls-utf8 \
+kmod-crypto-md5 \
+kmod-crypto-hmac \
+kmod-crypto-ecb \
+kmod-crypto-des \
+kmod-crypto-sha256 \
+kmod-crypto-cmac \
+kmod-crypto-sha512 \
+kmod-crypto-aead \
+kmod-crypto-ccm \
+kmod-crypto-gcm \
+kmod-asn1-decoder \
+kmod-oid-registry \
+kmod-fs-smbfs-common
KCONFIG:= \
CONFIG_SMB_SERVER \
CONFIG_SMB_SERVER_SMBDIRECT=n \
CONFIG_SMB_SERVER_CHECK_CAP_NET_ADMIN=n \
CONFIG_SMB_SERVER_KERBEROS5=n
FILES:= \
$(LINUX_DIR)/fs/smb/server/ksmbd.ko
AUTOLOAD:=$(call AutoLoad,41,ksmbd)
endef
define KernelPackage/fs-ksmbd/description
Kernel module for SMB kernel server support
endef
$(eval $(call KernelPackage,fs-ksmbd))
define KernelPackage/fs-minix
SUBMENU:=$(FS_MENU)
TITLE:=Minix filesystem support
@ -419,17 +336,6 @@ endef
$(eval $(call KernelPackage,fs-msdos))
define KernelPackage/fs-netfs
SUBMENU:=$(FS_MENU)
TITLE:=Network Filesystems support
KCONFIG:= CONFIG_NETFS_SUPPORT
FILES:=$(LINUX_DIR)/fs/netfs/netfs.ko
AUTOLOAD:=$(call AutoLoad,28,netfs)
endef
$(eval $(call KernelPackage,fs-netfs))
define KernelPackage/fs-nfs
SUBMENU:=$(FS_MENU)
TITLE:=NFS filesystem client support
@ -453,17 +359,10 @@ $(eval $(call KernelPackage,fs-nfs))
define KernelPackage/fs-nfs-common
SUBMENU:=$(FS_MENU)
TITLE:=Common NFS filesystem modules
DEPENDS:=+kmod-oid-registry
KCONFIG:= \
CONFIG_LOCKD \
CONFIG_SUNRPC \
CONFIG_GRACE_PERIOD \
CONFIG_NFS_V4=y \
CONFIG_NFS_V4_1=y \
CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" \
CONFIG_NFS_V4_1_MIGRATION=n \
CONFIG_NFS_V4_2=y \
CONFIG_NFS_V4_2_READ_PLUS=n
CONFIG_GRACE_PERIOD
FILES:= \
$(LINUX_DIR)/fs/lockd/lockd.ko \
$(LINUX_DIR)/net/sunrpc/sunrpc.ko \
@ -491,9 +390,10 @@ define KernelPackage/fs-nfs-common-rpcsec
CONFIG_SUNRPC_GSS \
CONFIG_RPCSEC_GSS_KRB5
FILES:= \
$(LINUX_DIR)/lib/oid_registry.ko \
$(LINUX_DIR)/net/sunrpc/auth_gss/auth_rpcgss.ko \
$(LINUX_DIR)/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko
AUTOLOAD:=$(call AutoLoad,31,auth_rpcgss rpcsec_gss_krb5)
AUTOLOAD:=$(call AutoLoad,31,oid_registry auth_rpcgss rpcsec_gss_krb5)
endef
define KernelPackage/fs-nfs-common-rpcsec/description
@ -548,8 +448,7 @@ define KernelPackage/fs-nfsd
CONFIG_NFSD_BLOCKLAYOUT=n \
CONFIG_NFSD_SCSILAYOUT=n \
CONFIG_NFSD_FLEXFILELAYOUT=n \
CONFIG_NFSD_FAULT_INJECTION=n \
CONFIG_NFSD_V4_2_INTER_SSC=n
CONFIG_NFSD_FAULT_INJECTION=n
FILES:=$(LINUX_DIR)/fs/nfsd/nfsd.ko
AUTOLOAD:=$(call AutoLoad,40,nfsd)
endef
@ -580,18 +479,19 @@ $(eval $(call KernelPackage,fs-ntfs))
define KernelPackage/fs-ntfs3
SUBMENU:=$(FS_MENU)
TITLE:=NTFS filesystem read & write (new driver) support
KCONFIG:= CONFIG_NTFS3_FS CONFIG_NTFS3_FS_POSIX_ACL=y
TITLE:=NTFS3 Read-Write file system support
DEPENDS:=+kmod-nls-base
KCONFIG:= \
CONFIG_NTFS3_FS \
CONFIG_NTFS3_64BIT_CLUSTER=y \
CONFIG_NTFS3_LZX_XPRESS=y \
CONFIG_NTFS3_FS_POSIX_ACL=y
FILES:=$(LINUX_DIR)/fs/ntfs3/ntfs3.ko
$(call AddDepends/nls)
AUTOLOAD:=$(call AutoLoad,80,ntfs3)
AUTOLOAD:=$(call AutoLoad,30,ntfs3)
endef
define KernelPackage/fs-ntfs3/description
Kernel module for fully functional NTFS filesystem support. It allows
reading as well as writing.
It supports NTFS versions up to 3.1.
Kernel module for NTFS3 filesystem support
endef
$(eval $(call KernelPackage,fs-ntfs3))
@ -634,7 +534,7 @@ define KernelPackage/fs-udf
KCONFIG:=CONFIG_UDF_FS
FILES:=$(LINUX_DIR)/fs/udf/udf.ko
AUTOLOAD:=$(call AutoLoad,30,udf)
DEPENDS:=+kmod-lib-crc-itu-t +kmod-cdrom
DEPENDS:=+kmod-lib-crc-itu-t
$(call AddDepends/nls)
endef
@ -654,7 +554,7 @@ define KernelPackage/fs-vfat
FILES:= \
$(LINUX_DIR)/fs/fat/fat.ko \
$(LINUX_DIR)/fs/fat/vfat.ko
AUTOLOAD:=$(call AutoLoad,30,fat vfat,1)
AUTOLOAD:=$(call AutoLoad,30,fat vfat)
$(call AddDepends/nls,cp437 iso8859-1 utf8)
endef
@ -694,22 +594,3 @@ define KernelPackage/fuse/description
endef
$(eval $(call KernelPackage,fuse))
define KernelPackage/pstore
SUBMENU:=$(FS_MENU)
TITLE:=Pstore file system
DEFAULT:=m if ALL_KMODS
KCONFIG:= \
CONFIG_PSTORE \
CONFIG_PSTORE_COMPRESS=y
FILES:= $(LINUX_DIR)/fs/pstore/pstore.ko
AUTOLOAD:=$(call AutoLoad,30,pstore,1)
DEPENDS:=+kmod-lib-zlib-deflate +kmod-lib-zlib-inflate
endef
define KernelPackage/pstore/description
Kernel module for pstore filesystem support
endef
$(eval $(call KernelPackage,pstore))

View File

@ -1,139 +0,0 @@
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
GPIO_MENU:=GPIO support
define KernelPackage/gpio-amd-fch
SUBMENU:=$(GPIO_MENU)
DEPENDS:=@GPIO_SUPPORT @TARGET_x86
TITLE:=GPIO support for AMD Fusion Controller Hub (G-series SOCs)
KCONFIG:=CONFIG_GPIO_AMD_FCH
FILES:=$(LINUX_DIR)/drivers/gpio/gpio-amd-fch.ko
AUTOLOAD:=$(call AutoLoad,25,gpio-amd-fch,1)
endef
define KernelPackage/gpio-amd-fch/description
This option enables driver for GPIO on AMDs Fusion Controller Hub,
as found on G-series SOCs (eg. GX-412TC)
endef
$(eval $(call KernelPackage,gpio-amd-fch))
define KernelPackage/gpio-beeper
SUBMENU:=$(GPIO_MENU)
TITLE:=GPIO beeper support
DEPENDS:=+kmod-input-core
KCONFIG:= \
CONFIG_INPUT_MISC=y \
CONFIG_INPUT_GPIO_BEEPER
FILES:= \
$(LINUX_DIR)/drivers/input/misc/gpio-beeper.ko
AUTOLOAD:=$(call AutoLoad,50,gpio-beeper)
endef
define KernelPackage/gpio-beeper/description
This enables playing beeps through an GPIO-connected buzzer
endef
$(eval $(call KernelPackage,gpio-beeper))
define KernelPackage/gpio-cascade
SUBMENU:=$(GPIO_MENU)
TITLE:=Generic GPIO cascade
KCONFIG:=CONFIG_GPIO_CASCADE
DEPENDS:=@GPIO_SUPPORT +kmod-mux-core
FILES:=$(LINUX_DIR)/drivers/gpio/gpio-cascade.ko
AUTOLOAD:=$(call AutoLoad,29,gpio-cascade,1)
endef
define KernelPackage/gpio-cascade/description
Kernel module for Generic GPIO cascade
endef
$(eval $(call KernelPackage,gpio-cascade))
define KernelPackage/gpio-f7188x
SUBMENU:=$(GPIO_MENU)
TITLE:=Fintek F718xx/F818xx GPIO Support
DEPENDS:=@GPIO_SUPPORT @TARGET_x86
KCONFIG:=CONFIG_GPIO_F7188X
FILES:=$(LINUX_DIR)/drivers/gpio/gpio-f7188x.ko
AUTOLOAD:=$(call AutoProbe,gpio-f7188x)
endef
define KernelPackage/gpio-f7188x/description
Kernel module for the GPIOs found on many Fintek Super-IO chips.
endef
$(eval $(call KernelPackage,gpio-f7188x))
define KernelPackage/gpio-it87
SUBMENU:=$(GPIO_MENU)
DEPENDS:=@GPIO_SUPPORT @TARGET_x86
TITLE:=GPIO support for IT87xx Super I/O chips
KCONFIG:=CONFIG_GPIO_IT87
FILES:=$(LINUX_DIR)/drivers/gpio/gpio-it87.ko
AUTOLOAD:=$(call AutoLoad,25,gpio-it87,1)
endef
define KernelPackage/gpio-it87/description
This driver is tested with ITE IT8728 and IT8732 Super I/O chips, and
supports the IT8761E, IT8613, IT8620E, and IT8628E Super I/O chips as
well.
endef
$(eval $(call KernelPackage,gpio-it87))
define KernelPackage/gpio-nxp-74hc164
SUBMENU:=$(GPIO_MENU)
TITLE:=NXP 74HC164 GPIO expander support
KCONFIG:=CONFIG_GPIO_74X164
FILES:=$(LINUX_DIR)/drivers/gpio/gpio-74x164.ko
AUTOLOAD:=$(call AutoProbe,gpio-74x164)
endef
define KernelPackage/gpio-nxp-74hc164/description
Kernel module for NXP 74HC164 GPIO expander
endef
$(eval $(call KernelPackage,gpio-nxp-74hc164))
define KernelPackage/gpio-pca953x
SUBMENU:=$(GPIO_MENU)
DEPENDS:=@GPIO_SUPPORT +kmod-i2c-core +kmod-regmap-i2c
TITLE:=PCA95xx, TCA64xx, and MAX7310 I/O ports
KCONFIG:=CONFIG_GPIO_PCA953X \
CONFIG_GPIO_PCA953X_IRQ=y
FILES:=$(LINUX_DIR)/drivers/gpio/gpio-pca953x.ko
AUTOLOAD:=$(call AutoLoad,55,gpio-pca953x)
endef
define KernelPackage/gpio-pca953x/description
Kernel module for MAX731{0,2,3,5}, PCA6107, PCA953{4-9}, PCA955{4-7},
PCA957{4,5} and TCA64{08,16} I2C GPIO expanders
endef
$(eval $(call KernelPackage,gpio-pca953x))
define KernelPackage/gpio-pcf857x
SUBMENU:=$(GPIO_MENU)
DEPENDS:=@GPIO_SUPPORT +kmod-i2c-core
TITLE:=PCX857x, PCA967x and MAX732X I2C GPIO expanders
KCONFIG:=CONFIG_GPIO_PCF857X
FILES:=$(LINUX_DIR)/drivers/gpio/gpio-pcf857x.ko
AUTOLOAD:=$(call AutoLoad,55,gpio-pcf857x)
endef
define KernelPackage/gpio-pcf857x/description
Kernel module for PCF857x, PCA{85,96}7x, and MAX732[89] I2C GPIO expanders
endef
$(eval $(call KernelPackage,gpio-pcf857x))

View File

@ -34,7 +34,7 @@ define KernelPackage/hwmon-ad7418
KCONFIG:=CONFIG_SENSORS_AD7418
FILES:=$(LINUX_DIR)/drivers/hwmon/ad7418.ko
AUTOLOAD:=$(call AutoLoad,60,ad7418 ad7418)
$(call AddDepends/hwmon,+kmod-i2c-core +kmod-regmap-core)
$(call AddDepends/hwmon,+kmod-i2c-core)
endef
define KernelPackage/hwmon-ad7418/description
@ -43,6 +43,20 @@ endef
$(eval $(call KernelPackage,hwmon-ad7418))
define KernelPackage/hwmon-ads1015
TITLE:=Texas Instruments ADS1015
KCONFIG:= CONFIG_SENSORS_ADS1015
FILES:= $(LINUX_DIR)/drivers/hwmon/ads1015.ko
AUTOLOAD:=$(call AutoLoad,60,ads1015)
$(call AddDepends/hwmon,+kmod-i2c-core)
endef
define KernelPackage/hwmon-ads1015/description
Kernel module for Texas Instruments ADS1015 Analog-to-Digital converter
endef
$(eval $(call KernelPackage,hwmon-ads1015))
define KernelPackage/hwmon-adt7410
TITLE:=ADT7410 monitoring support
KCONFIG:= \
@ -52,7 +66,7 @@ define KernelPackage/hwmon-adt7410
$(LINUX_DIR)/drivers/hwmon/adt7x10.ko \
$(LINUX_DIR)/drivers/hwmon/adt7410.ko
AUTOLOAD:=$(call AutoLoad,60,adt7x10 adt7410)
$(call AddDepends/hwmon,+kmod-i2c-core +kmod-regmap-core)
$(call AddDepends/hwmon,+kmod-i2c-core)
endef
define KernelPackage/hwmon-adt7410/description
@ -77,23 +91,6 @@ endef
$(eval $(call KernelPackage,hwmon-adt7475))
define KernelPackage/hwmon-coretemp
TITLE:=Intel Core/Core2/Atom temperature sensor
KCONFIG:=CONFIG_SENSORS_CORETEMP
FILES:=$(LINUX_DIR)/drivers/hwmon/coretemp.ko
AUTOLOAD:=$(call AutoProbe,coretemp)
$(call AddDepends/hwmon,@TARGET_x86)
endef
define KernelPackage/hwmon-coretemp/description
Kernel module for Intel Core/Core2/Atom temperature monitoring support.
Most of the family 6 CPUs are supported.
Check Documentation/hwmon/coretemp.rst for details.
endef
$(eval $(call KernelPackage,hwmon-coretemp))
define KernelPackage/hwmon-dme1737
TITLE:=SMSC DME1737 and compatible monitoring support
KCONFIG:=CONFIG_SENSORS_DME1737
@ -125,40 +122,6 @@ endef
$(eval $(call KernelPackage,hwmon-drivetemp))
define KernelPackage/hwmon-emc2305
TITLE:=Microchip EMC2301/2/3/5 fan controller
KCONFIG:=CONFIG_SENSORS_EMC2305
FILES:=$(LINUX_DIR)/drivers/hwmon/emc2305.ko
AUTOLOAD:=$(call AutoProbe,emc2305)
$(call AddDepends/hwmon,+kmod-i2c-core +PACKAGE_kmod-thermal:kmod-thermal +kmod-regmap-i2c)
endef
define KernelPackage/hwmon-emc2305/description
Kernel module for Microchip EMC2301/EMC2302/EMC2303/EMC2305 fan controllers
endef
$(eval $(call KernelPackage,hwmon-emc2305))
define KernelPackage/hwmon-gsc
TITLE:=Gateworks System Controller support
KCONFIG:=CONFIG_MFD_GATEWORKS_GSC \
CONFIG_SENSORS_GSC
FILES:= \
$(LINUX_DIR)/drivers/mfd/gateworks-gsc.ko \
$(LINUX_DIR)/drivers/hwmon/gsc-hwmon.ko
AUTOLOAD:=$(call AutoLoad,20,gsc-hwmon,1)
$(call AddDepends/hwmon,+kmod-i2c-core +kmod-mfd)
endef
define KernelPackage/hwmon-gsc/description
Kernel module for Gateworks System Controller with temperature sensor,
ADCs, and FAN controller
endef
$(eval $(call KernelPackage,hwmon-gsc))
define KernelPackage/hwmon-gpiofan
TITLE:=Generic GPIO FAN support
KCONFIG:=CONFIG_SENSORS_GPIO_FAN
@ -189,21 +152,6 @@ endef
$(eval $(call KernelPackage,hwmon-f71882fg))
define KernelPackage/hwmon-g762
TITLE:=G762/G763 fan speed PWM controller support
KCONFIG:=CONFIG_SENSORS_G762
FILES:=$(LINUX_DIR)/drivers/hwmon/g762.ko
AUTOLOAD:=$(call AutoProbe,g762)
$(call AddDepends/hwmon,+kmod-i2c-core)
endef
define KernelPackage/hwmon-g762/description
Kernel module for Global Mixed-mode Technology Inc G761/G762/G763 fan speed PWM controller chips.
endef
$(eval $(call KernelPackage,hwmon-g762))
define KernelPackage/hwmon-ina209
TITLE:=INA209 monitoring support
KCONFIG:=CONFIG_SENSORS_INA209
@ -249,21 +197,6 @@ endef
$(eval $(call KernelPackage,hwmon-it87))
define KernelPackage/hwmon-jc42
TITLE:=Jedec JC42.4 compliant temperature sensors support
KCONFIG:=CONFIG_SENSORS_JC42
FILES:=$(LINUX_DIR)/drivers/hwmon/jc42.ko
AUTOLOAD:=$(call AutoProbe,jc42)
$(call AddDepends/hwmon,+kmod-i2c-core +kmod-regmap-i2c)
endef
define KernelPackage/hwmon-jc42/description
Kernel module for Jedec JC42.4 compliant temperature sensors
endef
$(eval $(call KernelPackage,hwmon-jc42))
define KernelPackage/hwmon-lm63
TITLE:=LM63/64 monitoring support
KCONFIG:=CONFIG_SENSORS_LM63
@ -279,23 +212,6 @@ endef
$(eval $(call KernelPackage,hwmon-lm63))
define KernelPackage/hwmon-lm70
TITLE:=LM70 monitoring support
KCONFIG:=CONFIG_SENSORS_LM70 \
CONFIG_SPI=y \
CONFIG_SPI_MASTER=y
FILES:=$(LINUX_DIR)/drivers/hwmon/lm70.ko
AUTOLOAD:=$(call AutoProbe,lm70)
$(call AddDepends/hwmon)
endef
define KernelPackage/hwmon-lm70/description
Kernel module for lm70 and compatible thermal monitor chip
endef
$(eval $(call KernelPackage,hwmon-lm70))
define KernelPackage/hwmon-lm75
TITLE:=LM75 monitoring support
KCONFIG:=CONFIG_SENSORS_LM75
@ -401,36 +317,6 @@ endef
$(eval $(call KernelPackage,hwmon-ltc4151))
define KernelPackage/hwmon-max6642
TITLE:=MAX6642 monitoring support
KCONFIG:=CONFIG_SENSORS_MAX6642
FILES:=$(LINUX_DIR)/drivers/hwmon/max6642.ko
AUTOLOAD:=$(call AutoLoad,60,max6642 max6642)
$(call AddDepends/hwmon,+kmod-i2c-core)
endef
define KernelPackage/hwmon-max6642/description
Kernel module for Maxim MAX6642 temperature monitor
endef
$(eval $(call KernelPackage,hwmon-max6642))
define KernelPackage/hwmon-max6697
TITLE:=MAX6697 monitoring support
KCONFIG:=CONFIG_SENSORS_MAX6697
FILES:=$(LINUX_DIR)/drivers/hwmon/max6697.ko
AUTOLOAD:=$(call AutoProbe,max6697)
$(call AddDepends/hwmon,+kmod-i2c-core)
endef
define KernelPackage/hwmon-max6697/description
Kernel module for Maxim MAX6697 temperature monitor
endef
$(eval $(call KernelPackage,hwmon-max6697))
define KernelPackage/hwmon-mcp3021
TITLE:=MCP3021/3221 monitoring support
KCONFIG:=CONFIG_SENSORS_MCP3021
@ -449,11 +335,9 @@ $(eval $(call KernelPackage,hwmon-mcp3021))
define KernelPackage/hwmon-nct6775
TITLE:=NCT6106D/6775F/6776F/6779D/6791D/6792D/6793D and compatibles monitoring support
KCONFIG:=CONFIG_SENSORS_NCT6775
FILES:= \
$(LINUX_DIR)/drivers/hwmon/nct6775.ko \
$(LINUX_DIR)/drivers/hwmon/nct6775-core.ko
FILES:=$(LINUX_DIR)/drivers/hwmon/nct6775.ko
AUTOLOAD:=$(call AutoProbe,nct6775)
$(call AddDepends/hwmon,@PCI_SUPPORT @TARGET_x86 +kmod-hwmon-vid +kmod-regmap-core)
$(call AddDepends/hwmon,@PCI_SUPPORT @TARGET_x86 +kmod-hwmon-vid)
endef
define KernelPackage/hwmon-nct6775/description
@ -463,21 +347,6 @@ endef
$(eval $(call KernelPackage,hwmon-nct6775))
define KernelPackage/hwmon-nct7802
TITLE:=NCT7802Y and compatibles monitoring support
KCONFIG:=CONFIG_SENSORS_NCT7802
FILES:=$(LINUX_DIR)/drivers/hwmon/nct7802.ko
AUTOLOAD:=$(call AutoProbe,nct7802)
$(call AddDepends/hwmon,+kmod-regmap-i2c)
endef
define KernelPackage/hwmon-nct7802/description
Kernel module for NCT7802Y thermal monitor chip
endef
$(eval $(call KernelPackage,hwmon-nct7802))
define KernelPackage/hwmon-pc87360
TITLE:=PC87360 monitoring support
KCONFIG:=CONFIG_SENSORS_PC87360
@ -572,36 +441,6 @@ endef
$(eval $(call KernelPackage,hwmon-sht21))
define KernelPackage/hwmon-sht3x
TITLE:=Sensiron SHT3x and compat. monitoring support
KCONFIG:=CONFIG_SENSORS_SHT3x
FILES:=$(LINUX_DIR)/drivers/hwmon/sht3x.ko
AUTOLOAD:=$(call AutoProbe,sht3x)
$(call AddDepends/hwmon,+kmod-i2c-core +kmod-lib-crc8)
endef
define KernelPackage/hwmon-sht3x/description
Kernel module for Sensirion SHT3x temperature and humidity sensors chip
endef
$(eval $(call KernelPackage,hwmon-sht3x))
define KernelPackage/hwmon-tc654
TITLE:=TC654 monitoring support
KCONFIG:=CONFIG_SENSORS_TC654
FILES:=$(LINUX_DIR)/drivers/hwmon/tc654.ko
AUTOLOAD:=$(call AutoLoad,60,tc654)
$(call AddDepends/hwmon,+kmod-i2c-core)
endef
define KernelPackage/hwmon-tc654/description
Kernel module for Microchip TC654/TC655 and compatibles
endef
$(eval $(call KernelPackage,hwmon-tc654))
define KernelPackage/hwmon-tmp102
TITLE:=Texas Instruments TMP102 monitoring support
KCONFIG:=CONFIG_SENSORS_TMP102
@ -647,20 +486,6 @@ endef
$(eval $(call KernelPackage,hwmon-tmp421))
define KernelPackage/hwmon-tps23861
TITLE:=Texas Instruments TPS23861 PoE PSE
KCONFIG:=CONFIG_SENSORS_TPS23861
FILES:=$(LINUX_DIR)/drivers/hwmon/tps23861.ko
AUTOLOAD:=$(call AutoProbe,tps23861)
$(call AddDepends/hwmon,+kmod-i2c-core +kmod-regmap-i2c)
endef
define KernelPackage/hwmon-tps23861/description
Kernel module for the Texas Instruments TPS23861 802.3at PoE PSE chips.
endef
$(eval $(call KernelPackage,hwmon-tps23861))
define KernelPackage/hwmon-vid
TITLE:=VID/VRM/VRD voltage conversion module.
KCONFIG:=CONFIG_HWMON_VID

View File

@ -84,49 +84,6 @@ endef
$(eval $(call KernelPackage,i2c-algo-pcf))
I2C_CCGS_UCSI_MODULES:= \
CONFIG_I2C_CCGX_UCSI:drivers/i2c/busses/i2c-ccgx-ucsi
define KernelPackage/i2c-ccgs-ucsi
$(call i2c_defaults,$(I2C_CCGS_UCSI_MODULES),58)
TITLE:=Cypress CCGx Type-C controller
DEPENDS:=+kmod-i2c-core +kmod-regmap-core
HIDDEN:=y
endef
$(eval $(call KernelPackage,i2c-ccgs-ucsi))
I2C_DWCORE_MODULES:= \
CONFIG_I2C_DESIGNWARE_CORE:drivers/i2c/busses/i2c-designware-core
define KernelPackage/i2c-designware-core
$(call i2c_defaults,$(I2C_DWCORE_MODULES),58)
TITLE:=Synopsys DesignWare I2C core
DEPENDS:=+kmod-i2c-core +kmod-regmap-core
HIDDEN:=y
endef
$(eval $(call KernelPackage,i2c-designware-core))
I2C_DWPCI_MODULES:= \
CONFIG_I2C_DESIGNWARE_PCI:drivers/i2c/busses/i2c-designware-pci
define KernelPackage/i2c-designware-pci
$(call i2c_defaults,$(I2C_DWPCI_MODULES),59)
TITLE:=Synopsys DesignWare PCI
DEPENDS:=@PCI_SUPPORT +kmod-i2c-designware-core +kmod-i2c-ccgs-ucsi
endef
define KernelPackage/i2c-designware-pci/description
Support for Synopsys DesignWare I2C controller. Only master mode is supported.
endef
$(eval $(call KernelPackage,i2c-designware-pci))
I2C_GPIO_MODULES:= \
CONFIG_I2C_GPIO:drivers/i2c/busses/i2c-gpio
@ -169,24 +126,6 @@ endef
$(eval $(call KernelPackage,i2c-i801))
I2C_MLXCPLD_MODULES:= \
CONFIG_I2C_MLXCPLD:drivers/i2c/busses/i2c-mlxcpld
define KernelPackage/i2c-mlxcpld
$(call i2c_defaults,$(I2C_MLXCPLD_MODULES),59)
TITLE:=Mellanox I2C driver
DEPENDS:=@TARGET_x86_64 +kmod-regmap-core
endef
define KernelPackage/i2c-mlxcpld/description
This exposes the Mellanox platform I2C busses
to the linux I2C layer for X86 based systems.
Controller is implemented as CPLD logic.
endef
$(eval $(call KernelPackage,i2c-mlxcpld))
I2C_MUX_MODULES:= \
CONFIG_I2C_MUX:drivers/i2c/i2c-mux
@ -218,40 +157,6 @@ endef
$(eval $(call KernelPackage,i2c-mux-gpio))
I2C_MUX_MLXCPLD_MODULES:= \
CONFIG_I2C_MUX_MLXCPLD:drivers/i2c/muxes/i2c-mux-mlxcpld
define KernelPackage/i2c-mux-mlxcpld
$(call i2c_defaults,$(I2C_MUX_MLXCPLD_MODULES),51)
TITLE:=Mellanox CPLD based I2C multiplexer
DEPENDS:=+kmod-i2c-mlxcpld +kmod-i2c-mux
endef
define KernelPackage/i2c-mux-mlxcpld/description
This driver provides access to
I2C busses connected through a MUX, which is controlled
by a CPLD register.
endef
$(eval $(call KernelPackage,i2c-mux-mlxcpld))
I2C_MUX_REG_MODULES:= \
CONFIG_I2C_MUX_REG:drivers/i2c/muxes/i2c-mux-reg
define KernelPackage/i2c-mux-reg
$(call i2c_defaults,$(I2C_MUX_REG_MODULES),51)
TITLE:=Register-based I2C mux/switches
DEPENDS:=+kmod-i2c-mux
endef
define KernelPackage/i2c-mux-reg/description
Kernel modules for register-based I2C bus mux/switching devices
endef
$(eval $(call KernelPackage,i2c-mux-reg))
I2C_MUX_PCA9541_MODULES:= \
CONFIG_I2C_MUX_PCA9541:drivers/i2c/muxes/i2c-mux-pca9541

View File

@ -25,17 +25,14 @@ endef
$(eval $(call KernelPackage,iio-core))
define AddDepends/iio
SUBMENU:=$(IIO_MENU)
DEPENDS+=+kmod-iio-core $(1)
endef
define KernelPackage/iio-kfifo-buf
SUBMENU:=$(IIO_MENU)
TITLE:=Industrial I/O buffering based on kfifo
DEPENDS:=+kmod-iio-core
KCONFIG:=CONFIG_IIO_KFIFO_BUF
FILES:=$(LINUX_DIR)/drivers/iio/buffer/kfifo_buf.ko
AUTOLOAD:=$(call AutoLoad,55,kfifo_buf)
$(call AddDepends/iio)
endef
define KernelPackage/iio-kfifo-buf/description
@ -46,45 +43,13 @@ endef
$(eval $(call KernelPackage,iio-kfifo-buf))
define KernelPackage/industrialio-hw-consumer
TITLE:=Provides a bonding way to an other device in hardware
KCONFIG:=CONFIG_IIO_BUFFER_HW_CONSUMER
FILES:=$(LINUX_DIR)/drivers/iio/buffer/industrialio-hw-consumer.ko
AUTOLOAD:=$(call AutoLoad,55,industrialio-hw-consumer)
$(call AddDepends/iio,+kmod-iio-kfifo-buf)
endef
define KernelPackage/industrialio-hw-consumer/description
Provides a way to bonding when an IIO device has a direct connection
to another device in hardware. In this case buffers for data transfers
are handled by hardware.
endef
$(eval $(call KernelPackage,industrialio-hw-consumer))
define KernelPackage/industrialio-buffer-cb
TITLE:=Provides callback buffer used for push in-kernel interfaces
KCONFIG:=CONFIG_IIO_BUFFER_CB
FILES:=$(LINUX_DIR)/drivers/iio/buffer/industrialio-buffer-cb.ko
AUTOLOAD:=$(call AutoLoad,55,industrialio-triggered-buffer-cb)
$(call AddDepends/iio)
endef
define KernelPackage/industrialio-buffer-cb/description
Should be selected by any drivers that do in-kernel push usage.
endef
$(eval $(call KernelPackage,industrialio-buffer-cb))
define KernelPackage/industrialio-triggered-buffer
SUBMENU:=$(IIO_MENU)
TITLE:=Provides helper functions for setting up triggered buffers.
DEPENDS:=+kmod-iio-kfifo-buf
DEPENDS:=+kmod-iio-core +kmod-iio-kfifo-buf
KCONFIG:=CONFIG_IIO_TRIGGERED_BUFFER
FILES:=$(LINUX_DIR)/drivers/iio/buffer/industrialio-triggered-buffer.ko
AUTOLOAD:=$(call AutoLoad,55,industrialio-triggered-buffer)
$(call AddDepends/iio)
endef
define KernelPackage/industrialio-triggered-buffer/description
@ -95,14 +60,14 @@ $(eval $(call KernelPackage,industrialio-triggered-buffer))
define KernelPackage/iio-ad799x
DEPENDS:=+kmod-i2c-core +kmod-industrialio-triggered-buffer
SUBMENU:=$(IIO_MENU)
DEPENDS:=+kmod-i2c-core +kmod-iio-core +kmod-industrialio-triggered-buffer
TITLE:=Analog Devices AD799x ADC driver
KCONFIG:= \
CONFIG_AD799X_RING_BUFFER=y \
CONFIG_AD799X
FILES:=$(LINUX_DIR)/drivers/iio/adc/ad799x.ko
AUTOLOAD:=$(call AutoLoad,56,ad799x)
$(call AddDepends/iio)
endef
define KernelPackage/iio-ad799x/description
@ -113,30 +78,15 @@ endef
$(eval $(call KernelPackage,iio-ad799x))
define KernelPackage/iio-ads1015
DEPENDS:=+kmod-i2c-core +kmod-regmap-i2c +kmod-industrialio-triggered-buffer
TITLE:=Texas Instruments ADS1015 ADC driver
KCONFIG:= CONFIG_TI_ADS1015
FILES:=$(LINUX_DIR)/drivers/iio/adc/ti-ads1015.ko
AUTOLOAD:=$(call AutoLoad,56,ti-ads1015)
$(call AddDepends/iio)
endef
define KernelPackage/iio-ads1015/description
This driver adds support for Texas Instruments ADS1015 and ADS1115 ADCs.
endef
$(eval $(call KernelPackage,iio-ads1015))
define KernelPackage/iio-hmc5843
DEPENDS:=+kmod-i2c-core +kmod-regmap-i2c +kmod-industrialio-triggered-buffer
SUBMENU:=$(IIO_MENU)
DEPENDS:=+kmod-i2c-core +kmod-iio-core +kmod-regmap-i2c +kmod-industrialio-triggered-buffer
TITLE:=Honeywell HMC58x3 Magnetometer
KCONFIG:= CONFIG_SENSORS_HMC5843_I2C
FILES:= \
$(LINUX_DIR)/drivers/iio/magnetometer/hmc5843_i2c.ko \
$(LINUX_DIR)/drivers/iio/magnetometer/hmc5843_core.ko
AUTOLOAD:=$(call AutoLoad,56,hmc5843)
$(call AddDepends/iio)
endef
define KernelPackage/iio-hmc5843/description
@ -146,12 +96,12 @@ endef
$(eval $(call KernelPackage,iio-hmc5843))
define KernelPackage/iio-bh1750
DEPENDS:=+kmod-i2c-core
SUBMENU:=$(IIO_MENU)
DEPENDS:=+kmod-i2c-core +kmod-iio-core
TITLE:=ROHM BH1750 ambient light sensor
KCONFIG:= CONFIG_BH1750
FILES:=$(LINUX_DIR)/drivers/iio/light/bh1750.ko
AUTOLOAD:=$(call AutoLoad,56,bh1750)
$(call AddDepends/iio)
endef
define KernelPackage/iio-bh1750/description
ROHM BH1750 ambient light sensor (i2c bus)
@ -159,12 +109,12 @@ endef
$(eval $(call KernelPackage,iio-bh1750))
define KernelPackage/iio-am2315
DEPENDS:=+kmod-i2c-core +kmod-industrialio-triggered-buffer
SUBMENU:=$(IIO_MENU)
DEPENDS:=+kmod-i2c-core +kmod-iio-core +kmod-industrialio-triggered-buffer
TITLE:=Asong AM2315 humidity/temperature sensor
KCONFIG:= CONFIG_AM2315
FILES:=$(LINUX_DIR)/drivers/iio/humidity/am2315.ko
AUTOLOAD:=$(call AutoLoad,56,am2315)
$(call AddDepends/iio)
endef
define KernelPackage/iio-am2315/description
Aosong AM2315 humidity/temperature sensor (I2C bus)
@ -172,13 +122,13 @@ endef
$(eval $(call KernelPackage,iio-am2315))
define KernelPackage/iio-mxs-lradc
DEPENDS:=@TARGET_mxs +kmod-industrialio-triggered-buffer
SUBMENU:=$(IIO_MENU)
DEPENDS:=@TARGET_mxs +kmod-iio-core +kmod-industrialio-triggered-buffer
TITLE:=Freescale i.MX23/i.MX28 LRADC ADC driver
KCONFIG:= \
CONFIG_MXS_LRADC_ADC
FILES:=$(LINUX_DIR)/drivers/iio/adc/mxs-lradc-adc.ko
AUTOLOAD:=$(call AutoLoad,56,mxs-lradc-adc)
$(call AddDepends/iio)
endef
define KernelPackage/iio-mxs-lradc/description
@ -188,13 +138,13 @@ endef
$(eval $(call KernelPackage,iio-mxs-lradc))
define KernelPackage/iio-dht11
DEPENDS:=@GPIO_SUPPORT @USES_DEVICETREE
SUBMENU:=$(IIO_MENU)
DEPENDS:=+kmod-iio-core @GPIO_SUPPORT @USES_DEVICETREE
TITLE:=DHT11 (and compatible) humidity and temperature sensors
KCONFIG:= \
CONFIG_DHT11
FILES:=$(LINUX_DIR)/drivers/iio/humidity/dht11.ko
AUTOLOAD:=$(call AutoLoad,56,dht11)
$(call AddDepends/iio)
endef
define KernelPackage/iio-dht11/description
@ -207,11 +157,11 @@ $(eval $(call KernelPackage,iio-dht11))
define KernelPackage/iio-bme680
SUBMENU:=$(IIO_MENU)
TITLE:=BME680 gas/humidity/pressure/temperature sensor
DEPENDS:=+kmod-regmap-core
DEPENDS:=+kmod-iio-core +kmod-regmap-core
KCONFIG:=CONFIG_BME680
FILES:=$(LINUX_DIR)/drivers/iio/chemical/bme680_core.ko
$(call AddDepends/iio)
endef
define KernelPackage/iio-bme680/description
@ -222,12 +172,12 @@ endef
$(eval $(call KernelPackage,iio-bme680))
define KernelPackage/iio-bme680-i2c
SUBMENU:=$(IIO_MENU)
TITLE:=BME680 gas/humidity/pressure/temperature sensor (I2C)
DEPENDS:=+kmod-iio-bme680 +kmod-regmap-i2c
KCONFIG:=CONFIG_BME680_I2C
FILES:=$(LINUX_DIR)/drivers/iio/chemical/bme680_i2c.ko
AUTOLOAD:=$(call AutoProbe,bme680-i2c)
$(call AddDepends/iio)
endef
define KernelPackage/iio-bme680-i2c/description
This driver adds support for Bosch Sensortec's BME680 connected via I2C.
@ -236,12 +186,12 @@ endef
$(eval $(call KernelPackage,iio-bme680-i2c))
define KernelPackage/iio-bme680-spi
SUBMENU:=$(IIO_MENU)
TITLE:=BME680 gas/humidity/pressure/temperature sensor (SPI)
DEPENDS:=+kmod-iio-bme680 +kmod-regmap-spi
KCONFIG:=CONFIG_BME680_SPI
FILES:=$(LINUX_DIR)/drivers/iio/chemical/bme680_spi.ko
AUTOLOAD:=$(call AutoProbe,bme680-spi)
$(call AddDepends/iio)
endef
define KernelPackage/iio-bme680-spi/description
This driver adds support for Bosch Sensortec's BME680 connected via SPI.
@ -251,11 +201,11 @@ $(eval $(call KernelPackage,iio-bme680-spi))
define KernelPackage/iio-bmp280
SUBMENU:=$(IIO_MENU)
TITLE:=BMP180/BMP280/BME280 pressure/temperatur sensor
DEPENDS:=+kmod-regmap-core
DEPENDS:=+kmod-iio-core +kmod-regmap-core
KCONFIG:=CONFIG_BMP280
FILES:=$(LINUX_DIR)/drivers/iio/pressure/bmp280.ko
$(call AddDepends/iio)
endef
define KernelPackage/iio-bmp280/description
@ -268,12 +218,12 @@ $(eval $(call KernelPackage,iio-bmp280))
define KernelPackage/iio-bmp280-i2c
SUBMENU:=$(IIO_MENU)
TITLE:=BMP180/BMP280/BME280 pressure/temperatur sensor (I2C)
DEPENDS:=+kmod-iio-bmp280 +kmod-i2c-core +kmod-regmap-i2c
KCONFIG:=CONFIG_BMP280_I2C
FILES:=$(LINUX_DIR)/drivers/iio/pressure/bmp280-i2c.ko
AUTOLOAD:=$(call AutoProbe,bmp280-i2c)
$(call AddDepends/iio)
endef
define KernelPackage/iio-bmp280-i2c/description
This driver adds support for Bosch Sensortec's digital pressure and
@ -284,12 +234,12 @@ $(eval $(call KernelPackage,iio-bmp280-i2c))
define KernelPackage/iio-bmp280-spi
SUBMENU:=$(IIO_MENU)
TITLE:=BMP180/BMP280/BME280 pressure/temperatur sensor (SPI)
DEPENDS:=+kmod-iio-bmp280 +kmod-spi-bitbang
KCONFIG:=CONFIG_BMP280_SPI
FILES:=$(LINUX_DIR)/drivers/iio/pressure/bmp280-spi.ko
AUTOLOAD:=$(call AutoProbe,bmp280-spi)
$(call AddDepends/iio)
endef
define KernelPackage/iio-bmp280-spi/description
This driver adds support for Bosch Sensortec's digital pressure and
@ -299,7 +249,8 @@ endef
$(eval $(call KernelPackage,iio-bmp280-spi))
define KernelPackage/iio-htu21
DEPENDS:=+kmod-i2c-core
SUBMENU:=$(IIO_MENU)
DEPENDS:=+kmod-i2c-core +kmod-iio-core
TITLE:=HTU21 humidity & temperature sensor
KCONFIG:= \
CONFIG_HTU21 \
@ -308,7 +259,6 @@ define KernelPackage/iio-htu21
$(LINUX_DIR)/drivers/iio/humidity/htu21.ko \
$(LINUX_DIR)/drivers/iio/common/ms_sensors/ms_sensors_i2c.ko
AUTOLOAD:=$(call AutoLoad,56,htu21)
$(call AddDepends/iio)
endef
define KernelPackage/iio-htu21/description
@ -322,13 +272,13 @@ $(eval $(call KernelPackage,iio-htu21))
define KernelPackage/iio-ccs811
DEPENDS:=+kmod-i2c-core +kmod-industrialio-triggered-buffer
SUBMENU:=$(IIO_MENU)
DEPENDS:=+kmod-i2c-core +kmod-iio-core +kmod-industrialio-triggered-buffer
TITLE:=AMS CCS811 VOC sensor
KCONFIG:= \
CONFIG_CCS811
FILES:= $(LINUX_DIR)/drivers/iio/chemical/ccs811.ko
AUTOLOAD:=$(call AutoLoad,56,ccs811)
$(call AddDepends/iio)
endef
define KernelPackage/iio-ccs811/description
@ -339,12 +289,12 @@ $(eval $(call KernelPackage,iio-ccs811))
define KernelPackage/iio-si7020
DEPENDS:=+kmod-i2c-core
SUBMENU:=$(IIO_MENU)
DEPENDS:=+kmod-i2c-core +kmod-iio-core
TITLE:=Silicon Labs Si7020 sensor
KCONFIG:= CONFIG_SI7020
FILES:=$(LINUX_DIR)/drivers/iio/humidity/si7020.ko
AUTOLOAD:=$(call AutoLoad,56,si7020)
$(call AddDepends/iio)
endef
define KernelPackage/iio-si7020/description
@ -357,15 +307,15 @@ $(eval $(call KernelPackage,iio-si7020))
define KernelPackage/iio-st_accel
SUBMENU:=$(IIO_MENU)
TITLE:=STMicroelectronics accelerometer 3-Axis Driver
DEPENDS:=+kmod-regmap-core +kmod-industrialio-triggered-buffer
DEPENDS:=+kmod-iio-core +kmod-regmap-core +kmod-industrialio-triggered-buffer
KCONFIG:= \
CONFIG_IIO_ST_ACCEL_3AXIS \
CONFIG_IIO_ST_SENSORS_CORE
FILES:= \
$(LINUX_DIR)/drivers/iio/accel/st_accel.ko \
$(LINUX_DIR)/drivers/iio/common/st_sensors/st_sensors.ko
$(call AddDepends/iio)
endef
define KernelPackage/iio-st_accel/description
@ -379,6 +329,7 @@ $(eval $(call KernelPackage,iio-st_accel))
define KernelPackage/iio-st_accel-i2c
SUBMENU:=$(IIO_MENU)
TITLE:=STMicroelectronics accelerometer 3-Axis Driver (I2C)
DEPENDS:=+kmod-iio-st_accel +kmod-i2c-core +kmod-regmap-i2c
KCONFIG:= CONFIG_IIO_ST_ACCEL_I2C_3AXIS
@ -386,7 +337,6 @@ define KernelPackage/iio-st_accel-i2c
$(LINUX_DIR)/drivers/iio/accel/st_accel_i2c.ko \
$(LINUX_DIR)/drivers/iio/common/st_sensors/st_sensors_i2c.ko
AUTOLOAD:=$(call AutoLoad,56,st_accel_i2c)
$(call AddDepends/iio)
endef
define KernelPackage/iio-st_accel-i2c/description
@ -397,6 +347,7 @@ $(eval $(call KernelPackage,iio-st_accel-i2c))
define KernelPackage/iio-st_accel-spi
SUBMENU:=$(IIO_MENU)
TITLE:=STMicroelectronics accelerometer 3-Axis Driver (SPI)
DEPENDS:=+kmod-iio-st_accel +kmod-regmap-spi
KCONFIG:= CONFIG_IIO_ST_ACCEL_SPI_3AXIS
@ -404,7 +355,6 @@ define KernelPackage/iio-st_accel-spi
$(LINUX_DIR)/drivers/iio/accel/st_accel_spi.ko \
$(LINUX_DIR)/drivers/iio/common/st_sensors/st_sensors_spi.ko
AUTOLOAD:=$(call AutoLoad,56,st_accel_spi)
$(call AddDepends/iio)
endef
define KernelPackage/iio-st_accel-spi/description
@ -415,12 +365,12 @@ $(eval $(call KernelPackage,iio-st_accel-spi))
define KernelPackage/iio-lsm6dsx
DEPENDS:=+kmod-iio-kfifo-buf +kmod-regmap-core +kmod-industrialio-triggered-buffer
SUBMENU:=$(IIO_MENU)
DEPENDS:=+kmod-iio-core +kmod-iio-kfifo-buf +kmod-regmap-core
TITLE:=ST LSM6DSx driver for IMU MEMS sensors
KCONFIG:=CONFIG_IIO_ST_LSM6DSX
FILES:=$(LINUX_DIR)/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx.ko
AUTOLOAD:=$(call AutoProbe,st_lsm6dsx)
$(call AddDepends/iio)
endef
define KernelPackage/iio-lsm6dsx/description
@ -431,12 +381,12 @@ $(eval $(call KernelPackage,iio-lsm6dsx))
define KernelPackage/iio-lsm6dsx-i2c
SUBMENU:=$(IIO_MENU)
DEPENDS:=+kmod-iio-lsm6dsx +kmod-i2c-core +kmod-regmap-i2c
TITLE:=ST LSM6DSx driver for IMU MEMS sensors (I2C)
KCONFIG:=CONFIG_IIO_ST_LSM6DSX
FILES:=$(LINUX_DIR)/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.ko
AUTOLOAD:=$(call AutoProbe,st_lsm6dsx-i2c)
$(call AddDepends/iio)
endef
define KernelPackage/iio-lsm6dsx-i2c/description
@ -447,12 +397,12 @@ $(eval $(call KernelPackage,iio-lsm6dsx-i2c))
define KernelPackage/iio-lsm6dsx-spi
SUBMENU:=$(IIO_MENU)
DEPENDS:=+kmod-iio-lsm6dsx +kmod-regmap-spi
TITLE:=ST LSM6DSx driver for IMU MEMS sensors (SPI)
KCONFIG:=CONFIG_IIO_ST_LSM6DSX
FILES:=$(LINUX_DIR)/drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.ko
AUTOLOAD:=$(call AutoProbe,st_lsm6dsx-spi)
$(call AddDepends/iio)
endef
define KernelPackage/iio-lsm6dsx-spi/description
@ -463,16 +413,12 @@ $(eval $(call KernelPackage,iio-lsm6dsx-spi))
define KernelPackage/iio-sps30
DEPENDS:=+kmod-i2c-core +kmod-industrialio-triggered-buffer +kmod-lib-crc8
SUBMENU:=$(IIO_MENU)
DEPENDS:=+kmod-i2c-core +kmod-iio-core +kmod-industrialio-triggered-buffer +kmod-lib-crc8
TITLE:=Sensirion SPS30 particulate matter sensor
KCONFIG:= \
CONFIG_SPS30 \
CONFIG_SPS30_I2C
FILES:= \
$(LINUX_DIR)/drivers/iio/chemical/sps30.ko \
$(LINUX_DIR)/drivers/iio/chemical/sps30_i2c.ko
AUTOLOAD:=$(call AutoProbe,sps30 sps30_i2c)
$(call AddDepends/iio)
KCONFIG:=CONFIG_SPS30
FILES:=$(LINUX_DIR)/drivers/iio/chemical/sps30.ko
AUTOLOAD:=$(call AutoProbe,sps30)
endef
define KernelPackage/iio-sps30/description
@ -483,12 +429,12 @@ $(eval $(call KernelPackage,iio-sps30))
define KernelPackage/iio-tsl4531
DEPENDS:=+kmod-i2c-core
SUBMENU:=$(IIO_MENU)
DEPENDS:=+kmod-i2c-core +kmod-iio-core
TITLE:=TAOS TSL4531 ambient light sensor
KCONFIG:= CONFIG_TSL4531
FILES:=$(LINUX_DIR)/drivers/iio/light/tsl4531.ko
AUTOLOAD:=$(call AutoLoad,56,tsl4531)
$(call AddDepends/iio)
endef
define KernelPackage/iio-tsl4531/description
@ -501,12 +447,12 @@ $(eval $(call KernelPackage,iio-tsl4531))
define KernelPackage/iio-fxas21002c
SUBMENU:=$(IIO_MENU)
TITLE:=Freescale FXAS21002C 3-axis gyro driver
DEPENDS:=+kmod-regmap-core +kmod-industrialio-triggered-buffer
DEPENDS:=+kmod-iio-core +kmod-regmap-core +kmod-industrialio-triggered-buffer
KCONFIG:= CONFIG_FXAS21002C
FILES:=$(LINUX_DIR)/drivers/iio/gyro/fxas21002c_core.ko
AUTOLOAD:=$(call AutoLoad,56,fxas21002c)
$(call AddDepends/iio)
endef
define KernelPackage/iio-fxas21002c/description
@ -517,12 +463,12 @@ $(eval $(call KernelPackage,iio-fxas21002c))
define KernelPackage/iio-fxas21002c-i2c
SUBMENU:=$(IIO_MENU)
TITLE:=Freescale FXAS21002C 3-axis gyro driver (I2C)
DEPENDS:=+kmod-iio-fxas21002c +kmod-i2c-core +kmod-regmap-i2c
KCONFIG:= CONFIG_FXAS21002C_I2C
FILES:=$(LINUX_DIR)/drivers/iio/gyro/fxas21002c_i2c.ko
AUTOLOAD:=$(call AutoLoad,56,fxas21002c_i2c)
$(call AddDepends/iio)
endef
define KernelPackage/iio-fxas21002c-i2c/description
@ -534,12 +480,12 @@ endef
$(eval $(call KernelPackage,iio-fxas21002c-i2c))
define KernelPackage/iio-fxas21002c-spi
SUBMENU:=$(IIO_MENU)
DEPENDS:=+kmod-iio-fxas21002c +kmod-regmap-spi
TITLE:=Freescale FXAS21002C 3-axis gyro driver (SPI)
KCONFIG:= CONFIG_FXAS21002C_SPI
FILES:=$(LINUX_DIR)/drivers/iio/gyro/fxas21002c_spi.ko
AUTOLOAD:=$(call AutoLoad,56,fxas21002c_spi)
$(call AddDepends/iio)
endef
define KernelPackage/iio-fxas21002c-spi/description
@ -551,12 +497,12 @@ $(eval $(call KernelPackage,iio-fxas21002c-spi))
define KernelPackage/iio-fxos8700
SUBMENU:=$(IIO_MENU)
TITLE:=Freescale FXOS8700 3-axis accelerometer driver
DEPENDS:=+kmod-regmap-core
DEPENDS:=+kmod-iio-core +kmod-regmap-core
KCONFIG:= CONFIG_FXOS8700
FILES:=$(LINUX_DIR)/drivers/iio/imu/fxos8700_core.ko
AUTOLOAD:=$(call AutoLoad,56,fxos8700)
$(call AddDepends/iio)
endef
define KernelPackage/iio-fxos8700/description
@ -567,12 +513,12 @@ $(eval $(call KernelPackage,iio-fxos8700))
define KernelPackage/iio-fxos8700-i2c
SUBMENU:=$(IIO_MENU)
TITLE:=Freescale FXOS8700 3-axis acceleromter driver (I2C)
DEPENDS:=+kmod-iio-fxos8700 +kmod-i2c-core +kmod-regmap-i2c
KCONFIG:= CONFIG_FXOS8700_I2C
FILES:=$(LINUX_DIR)/drivers/iio/imu/fxos8700_i2c.ko
AUTOLOAD:=$(call AutoLoad,56,fxos8700_i2c)
$(call AddDepends/iio)
endef
define KernelPackage/iio-fxos8700-i2c/description
@ -584,12 +530,12 @@ endef
$(eval $(call KernelPackage,iio-fxos8700-i2c))
define KernelPackage/iio-fxos8700-spi
SUBMENU:=$(IIO_MENU)
DEPENDS:=+kmod-iio-fxos8700 +kmod-regmap-spi
TITLE:=Freescale FXOS8700 3-axis accelerometer driver (SPI)
KCONFIG:= CONFIG_FXOS8700_SPI
FILES:=$(LINUX_DIR)/drivers/iio/imu/fxos8700_spi.ko
AUTOLOAD:=$(call AutoLoad,56,fxos8700_spi)
$(call AddDepends/iio)
endef
define KernelPackage/iio-fxos8700-spi/description
@ -598,17 +544,3 @@ define KernelPackage/iio-fxos8700-spi/description
endef
$(eval $(call KernelPackage,iio-fxos8700-spi))
define KernelPackage/iio-ti-am335x-adc
TITLE:= TI Sitara AM335x ADC driver
DEPENDS:=@TARGET_omap
KCONFIG:=CONFIG_TI_AM335X_ADC
FILES:=$(LINUX_DIR)/drivers/iio/adc/ti_am335x_adc.ko
AUTOLOAD:=$(call AutoProbe,ti_am335x_adc)
$(call AddDepends/iio,+kmod-iio-kfifo-buf)
endef
define KernelPackage/iio-ti-am335x-adc/description
Driver for the TI AM335x ADC.
endef
$(eval $(call KernelPackage,iio-ti-am335x-adc))

View File

@ -11,7 +11,7 @@ define KernelPackage/hid
SUBMENU:=$(INPUT_MODULES_MENU)
TITLE:=HID Devices
DEPENDS:=+kmod-input-core +kmod-input-evdev
KCONFIG:=CONFIG_HID CONFIG_HID_SUPPORT=y CONFIG_HIDRAW=y CONFIG_HID_BATTERY_STRENGTH=y
KCONFIG:=CONFIG_HID CONFIG_HIDRAW=y CONFIG_HID_BATTERY_STRENGTH=y
FILES:=$(LINUX_DIR)/drivers/hid/hid.ko
AUTOLOAD:=$(call AutoLoad,61,hid)
endef
@ -92,7 +92,7 @@ $(eval $(call KernelPackage,input-gpio-keys))
define KernelPackage/input-gpio-keys-polled
SUBMENU:=$(INPUT_MODULES_MENU)
TITLE:=Polled GPIO key support
DEPENDS:=@GPIO_SUPPORT +kmod-input-core
DEPENDS:=@GPIO_SUPPORT +kmod-input-polldev
KCONFIG:= \
CONFIG_KEYBOARD_GPIO_POLLED \
CONFIG_INPUT_KEYBOARD=y
@ -142,6 +142,21 @@ endef
$(eval $(call KernelPackage,input-joydev))
define KernelPackage/input-polldev
SUBMENU:=$(INPUT_MODULES_MENU)
TITLE:=Polled Input device support
DEPENDS:=+kmod-input-core
KCONFIG:=CONFIG_INPUT_POLLDEV
FILES:=$(LINUX_DIR)/drivers/input/input-polldev.ko
endef
define KernelPackage/input-polldev/description
Kernel module for support of polled input devices
endef
$(eval $(call KernelPackage,input-polldev))
define KernelPackage/input-matrixkmap
SUBMENU:=$(INPUT_MODULES_MENU)
TITLE:=Input matrix devices support
@ -164,8 +179,10 @@ define KernelPackage/input-touchscreen-ads7846
DEPENDS:=+kmod-hwmon-core +kmod-input-core +kmod-spi-bitbang
KCONFIG:= \
CONFIG_INPUT_TOUCHSCREEN=y \
CONFIG_TOUCHSCREEN_PROPERTIES=y \
CONFIG_TOUCHSCREEN_ADS7846
FILES:=$(LINUX_DIR)/drivers/input/touchscreen/ads7846.ko
FILES:=$(LINUX_DIR)/drivers/input/touchscreen/ads7846.ko \
$(LINUX_DIR)/drivers/input/touchscreen/of_touchscreen.ko
AUTOLOAD:=$(call AutoProbe,ads7846)
endef
@ -176,29 +193,10 @@ endef
$(eval $(call KernelPackage,input-touchscreen-ads7846))
define KernelPackage/input-touchscreen-edt-ft5x06
SUBMENU:=$(INPUT_MODULES_MENU)
TITLE:=EDT FT5x06 and Focaltech FT6236 based touchscreens
DEPENDS:=+kmod-i2c-core +kmod-input-core +kmod-regmap-i2c
KCONFIG:= \
CONFIG_INPUT_TOUCHSCREEN=y \
CONFIG_TOUCHSCREEN_EDT_FT5X06
FILES:=$(LINUX_DIR)/drivers/input/touchscreen/edt-ft5x06.ko
AUTOLOAD:=$(call AutoProbe,edt-ft5x06)
endef
define KernelPackage/input-touchscreen-edt-ft5x06/description
Kernel module for EDT FT5206, FT5306, FT5406, FT5506, Evervision FT5726 \
and Focaltech FT6236 based touchscreens
endef
$(eval $(call KernelPackage,input-touchscreen-edt-ft5x06))
define KernelPackage/keyboard-imx
SUBMENU:=$(INPUT_MODULES_MENU)
TITLE:=IMX keypad support
DEPENDS:=@(TARGET_mxs||TARGET_imx) +kmod-input-matrixkmap
DEPENDS:=@(TARGET_mxs||TARGET_imx6) +kmod-input-matrixkmap
KCONFIG:= \
CONFIG_KEYBOARD_IMX \
CONFIG_INPUT_KEYBOARD=y

View File

@ -38,21 +38,6 @@ endef
$(eval $(call KernelPackage,ledtrig-activity))
define KernelPackage/ledtrig-audio
SUBMENU:=$(LEDS_MENU)
TITLE:=LED Audio Mute Trigger
KCONFIG:=CONFIG_LEDS_TRIGGER_AUDIO
FILES:=$(LED_TRIGGER_DIR)/ledtrig-audio.ko
AUTOLOAD:=$(call AutoLoad,50,ledtrig-audio)
endef
define KernelPackage/ledtrig-audio/description
Kernel module that allows LEDs to be controlled by audio drivers
to follow audio mute and mic-mute changes.
endef
$(eval $(call KernelPackage,ledtrig-audio))
define KernelPackage/ledtrig-gpio
SUBMENU:=$(LEDS_MENU)
TITLE:=LED GPIO Trigger
@ -115,92 +100,6 @@ endef
$(eval $(call KernelPackage,ledtrig-pattern))
define KernelPackage/ledtrig-tty
SUBMENU:=$(LEDS_MENU)
TITLE:=LED Trigger for TTY devices
KCONFIG:=CONFIG_LEDS_TRIGGER_TTY
FILES:=$(LED_TRIGGER_DIR)/ledtrig-tty.ko
AUTOLOAD:=$(call AutoLoad,50,ledtrig-tty)
endef
define KernelPackage/ledtrig-tty/description
This allows LEDs to be controlled by activity on ttys which includes
serial devices like '/dev/ttyS0'.
endef
$(eval $(call KernelPackage,ledtrig-tty))
define KernelPackage/leds-apu
SUBMENU:=$(LEDS_MENU)
TITLE:=PC Engines APU1 LED support
DEPENDS:= @GPIO_SUPPORT @TARGET_x86
KCONFIG:=CONFIG_LEDS_APU
FILES:=$(LINUX_DIR)/drivers/leds/leds-apu.ko
AUTOLOAD:=$(call AutoLoad,60,leds-apu,1)
endef
define KernelPackage/leds-apu/description
Driver for the PC Engines APU1 LEDs.
endef
$(eval $(call KernelPackage,leds-apu))
define KernelPackage/leds-ktd202x
SUBMENU:=LED modules
TITLE:=LED support for KTD202x Chips
DEPENDS:=+kmod-i2c-core +kmod-regmap-i2c
KCONFIG:=CONFIG_LEDS_KTD202X
FILES:= $(LINUX_DIR)/drivers/leds/rgb/leds-ktd202x.ko
AUTOLOAD:=$(call AutoProbe,leds-ktd202x,1)
endef
define KernelPackage/leds-ktd202x/description
This option enables support for the Kinetic KTD2026/KTD2027
RGB/White LED driver found in different BQ mobile phones.
It is a 3 or 4 channel LED driver programmed via an I2C interface.
endef
$(eval $(call KernelPackage,leds-ktd202x))
define KernelPackage/leds-mlxcpld
SUBMENU:=$(LEDS_MENU)
TITLE:=LED support for the Mellanox boards
DEPENDS:=@TARGET_x86
KCONFIG:=CONFIG_LEDS_MLXCPLD
FILES:=$(LINUX_DIR)/drivers/leds/leds-mlxcpld.ko
AUTOLOAD:=$(call AutoProbe,leds-mlxcpld)
endef
define KernelPackage/leds-mlxcpld/description
This option enables support for the LEDs on the Mellanox
boards.
endef
$(eval $(call KernelPackage,leds-mlxcpld))
define KernelPackage/leds-pca955x
SUBMENU:=$(LEDS_MENU)
TITLE:=LED driver for PCA955x I2C chips
DEPENDS:=@GPIO_SUPPORT +kmod-i2c-core
KCONFIG:=CONFIG_LEDS_PCA955X \
CONFIG_LEDS_PCA955X_GPIO=y
FILES:=$(LINUX_DIR)/drivers/leds/leds-pca955x.ko
AUTOLOAD:=$(call AutoLoad,60,leds-pca955x,1)
endef
define KernelPackage/leds-pca955x/description
This option enables support for LEDs connected to PCA955x
LED driver chips accessed via the I2C bus. Supported
devices include PCA9550, PCA9551, PCA9552, and PCA9553.
endef
$(eval $(call KernelPackage,leds-pca955x))
define KernelPackage/leds-pca963x
SUBMENU:=$(LEDS_MENU)
TITLE:=PCA963x LED support
@ -232,24 +131,6 @@ endef
$(eval $(call KernelPackage,leds-pwm))
define KernelPackage/leds-tlc591xx
SUBMENU:=$(LEDS_MENU)
TITLE:=LED driver for TLC59108 and TLC59116 controllers
DEPENDS:=+kmod-i2c-core +kmod-regmap-i2c
KCONFIG:=CONFIG_LEDS_TLC591XX
FILES:=$(LINUX_DIR)/drivers/leds/leds-tlc591xx.ko
AUTOLOAD:=$(call AutoLoad,60,leds-tlc591xx,1)
endef
define KernelPackage/leds-tlc591xx/description
This option enables support for Texas Instruments TLC59108
and TLC59116 LED controllers.
endef
$(eval $(call KernelPackage,leds-tlc591xx))
define KernelPackage/leds-uleds
SUBMENU:=$(LEDS_MENU)
TITLE:=Userspace LEDs
@ -263,54 +144,3 @@ define KernelPackage/leds-uleds/description
endef
$(eval $(call KernelPackage,leds-uleds))
define KernelPackage/input-leds
SUBMENU:=$(LEDS_MENU)
TITLE:=Input device LED support
DEPENDS:=+kmod-input-core
KCONFIG:=CONFIG_INPUT_LEDS
FILES:=$(LINUX_DIR)/drivers/input/input-leds.ko
AUTOLOAD:=$(call AutoLoad,50,input-leds,1)
endef
define KernelPackage/input-leds/description
Provides support for LEDs on input devices- for example,
keyboard num/caps/scroll lock.
endef
$(eval $(call KernelPackage,input-leds))
define KernelPackage/leds-lp55xx-common
SUBMENU:=$(LEDS_MENU)
TITLE:=LED common driver for LP5521/LP5523/LP55231/LP5562 controllers
DEPENDS:=+kmod-i2c-core
KCONFIG:=CONFIG_LEDS_LP55XX_COMMON
FILES:=$(LINUX_DIR)/drivers/leds/leds-lp55xx-common.ko
AUTOLOAD:=$(call AutoLoad,60,leds-lp55xx-common,1)
endef
define KernelPackage/leds-lp55xx-common/description
This option enables support for Texas Instruments
LP5521/LP5523/LP55231/LP5562 common driver.
endef
$(eval $(call KernelPackage,leds-lp55xx-common))
define KernelPackage/leds-lp5562
SUBMENU:=$(LEDS_MENU)
TITLE:=LED driver for LP5562 controllers
DEPENDS:=+kmod-i2c-core +kmod-leds-lp55xx-common
KCONFIG:=CONFIG_LEDS_LP5562
FILES:=$(LINUX_DIR)/drivers/leds/leds-lp5562.ko
AUTOLOAD:=$(call AutoLoad,60,leds-lp5562,1)
endef
define KernelPackage/leds-lp5562/description
This option enables support for Texas Instruments LP5562
LED controllers.
endef
$(eval $(call KernelPackage,leds-lp5562))

View File

@ -109,10 +109,9 @@ define KernelPackage/lib-lzo
HIDDEN:=1
FILES:= \
$(LINUX_DIR)/crypto/lzo.ko \
$(LINUX_DIR)/crypto/lzo-rle.ko \
$(LINUX_DIR)/lib/lzo/lzo_compress.ko \
$(LINUX_DIR)/lib/lzo/lzo_decompress.ko
AUTOLOAD:=$(call AutoProbe,lzo lzo-rle lzo_compress lzo_decompress)
AUTOLOAD:=$(call AutoProbe,lzo lzo_compress lzo_decompress)
endef
define KernelPackage/lib-lzo/description
@ -122,31 +121,21 @@ endef
$(eval $(call KernelPackage,lib-lzo))
define KernelPackage/lib-xxhash
SUBMENU:=$(LIB_MENU)
TITLE:=xxhash support
HIDDEN:=1
KCONFIG:=CONFIG_XXHASH
FILES:=$(LINUX_DIR)/lib/xxhash.ko
endef
$(eval $(call KernelPackage,lib-xxhash))
define KernelPackage/lib-zstd
SUBMENU:=$(LIB_MENU)
TITLE:=ZSTD support
DEPENDS:=+kmod-crypto-acompress +kmod-lib-xxhash
DEPENDS:=+kmod-crypto-acompress
KCONFIG:= \
CONFIG_CRYPTO_ZSTD \
CONFIG_ZSTD_COMPRESS \
CONFIG_ZSTD_DECOMPRESS
CONFIG_ZSTD_DECOMPRESS \
CONFIG_XXHASH
FILES:= \
$(LINUX_DIR)/crypto/zstd.ko \
$(LINUX_DIR)/lib/zstd/zstd_common.ko \
$(LINUX_DIR)/lib/xxhash.ko \
$(LINUX_DIR)/lib/zstd/zstd_compress.ko \
$(LINUX_DIR)/lib/zstd/zstd_decompress.ko
AUTOLOAD:=$(call AutoProbe,zstd zstd_compress zstd_decompress)
AUTOLOAD:=$(call AutoProbe,xxhash zstd zstd_compress zstd_decompress)
endef
define KernelPackage/lib-zstd/description
@ -156,28 +145,19 @@ endef
$(eval $(call KernelPackage,lib-zstd))
define KernelPackage/lib-lz4-decompress
SUBMENU:=$(LIB_MENU)
TITLE:=LZ4 decompress
HIDDEN:=1
KCONFIG:=CONFIG_LZ4_DECOMPRESS
FILES:=$(LINUX_DIR)/lib/lz4/lz4_decompress.ko
endef
$(eval $(call KernelPackage,lib-lz4-decompress))
define KernelPackage/lib-lz4
SUBMENU:=$(LIB_MENU)
TITLE:=LZ4 support
DEPENDS:=+kmod-crypto-acompress +kmod-lib-lz4-decompress
DEPENDS:=+kmod-crypto-acompress
KCONFIG:= \
CONFIG_CRYPTO_LZ4 \
CONFIG_LZ4_COMPRESS
CONFIG_LZ4_COMPRESS \
CONFIG_LZ4_DECOMPRESS
FILES:= \
$(LINUX_DIR)/crypto/lz4.ko \
$(LINUX_DIR)/lib/lz4/lz4_compress.ko
AUTOLOAD:=$(call AutoProbe,lz4 lz4_compress)
$(LINUX_DIR)/lib/lz4/lz4_compress.ko \
$(LINUX_DIR)/lib/lz4/lz4_decompress.ko
AUTOLOAD:=$(call AutoProbe,lz4 lz4_compress lz4_decompress)
endef
define KernelPackage/lib-lz4/description
@ -187,48 +167,6 @@ endef
$(eval $(call KernelPackage,lib-lz4))
define KernelPackage/lib-lz4hc
SUBMENU:=$(LIB_MENU)
TITLE:=LZ4HC support
DEPENDS:=+kmod-crypto-acompress +kmod-lib-lz4-decompress
KCONFIG:= \
CONFIG_CRYPTO_LZ4HC \
CONFIG_LZ4HC_COMPRESS
FILES:= \
$(LINUX_DIR)/crypto/lz4hc.ko \
$(LINUX_DIR)/lib/lz4/lz4hc_compress.ko
AUTOLOAD:=$(call AutoProbe,lz4hc lz4hc_compress)
endef
define KernelPackage/lib-lz4hc/description
Kernel module for LZ4HC compression/decompression support
endef
$(eval $(call KernelPackage,lib-lz4hc))
define KernelPackage/lib-842
SUBMENU:=$(LIB_MENU)
TITLE:=842 support
DEPENDS:=+kmod-crypto-acompress +kmod-crypto-crc32
KCONFIG:= \
CONFIG_CRYPTO_842 \
CONFIG_842_COMPRESS \
CONFIG_842_DECOMPRESS
FILES:= \
$(LINUX_DIR)/crypto/842.ko \
$(LINUX_DIR)/lib/842/842_compress.ko \
$(LINUX_DIR)/lib/842/842_decompress.ko
AUTOLOAD:=$(call AutoProbe,842 842_compress 842_decompress)
endef
define KernelPackage/lib-842/description
Kernel module for 842 compression/decompression support
endef
$(eval $(call KernelPackage,lib-842))
define KernelPackage/lib-raid6
SUBMENU:=$(LIB_MENU)
TITLE:=RAID6 algorithm support
@ -334,49 +272,3 @@ define KernelPackage/asn1-decoder
endef
$(eval $(call KernelPackage,asn1-decoder))
define KernelPackage/asn1-encoder
SUBMENU:=$(LIB_MENU)
TITLE:=Simple ASN1 encoder
KCONFIG:= CONFIG_ASN1_ENCODER
HIDDEN:=1
FILES:=$(LINUX_DIR)/lib/asn1_encoder.ko
endef
$(eval $(call KernelPackage,asn1-encoder))
define KernelPackage/oid-registry
SUBMENU:=$(LIB_MENU)
TITLE:=Object identifier registry
KCONFIG:= CONFIG_OID_REGISTRY
FILES:=$(LINUX_DIR)/lib/oid_registry.ko
AUTOLOAD:=$(call AutoLoad,31,oid_registry)
endef
$(eval $(call KernelPackage,oid-registry))
define KernelPackage/lib-objagg
SUBMENU:=$(LIB_MENU)
TITLE:=objagg support
FILES:=$(LINUX_DIR)/lib/objagg.ko
KCONFIG:= \
CONFIG_OBJAGG \
CONFIG_TEST_OBJAGG=n
AUTOLOAD:=$(call AutoProbe,objagg)
endef
$(eval $(call KernelPackage,lib-objagg))
define KernelPackage/lib-parman
SUBMENU:=$(LIB_MENU)
TITLE:=parman support
FILES:=$(LINUX_DIR)/lib/parman.ko
KCONFIG:= \
CONFIG_PARMAN \
CONFIG_TEST_PARMAN=n
AUTOLOAD:=$(call AutoProbe,parman)
endef
$(eval $(call KernelPackage,lib-parman))

View File

@ -1,34 +0,0 @@
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
MENU_TITLE:=Multiplexer Support
define KernelPackage/mux-core
SUBMENU:=$(MENU_TITLE)
TITLE:=Multiplexer Support
KCONFIG:=CONFIG_MULTIPLEXER
FILES:=$(LINUX_DIR)/drivers/mux/mux-core.ko
AUTOLOAD:=$(call AutoLoad,25,mux-core,1)
endef
define KernelPackage/mux-core/description
Kernel module for multiplexer support
endef
$(eval $(call KernelPackage,mux-core))
define KernelPackage/mux-gpio
SUBMENU:=$(MENU_TITLE)
TITLE:=GPIO-controlled Multiplexer controller
KCONFIG:=CONFIG_MUX_GPIO
DEPENDS:=@GPIO_SUPPORT kmod-mux-core
FILES:=$(LINUX_DIR)/drivers/mux/mux-gpio.ko
AUTOLOAD:=$(call AutoLoad,25,mux-gpio,1)
endef
define KernelPackage/mux-gpio/description
Kernel modules for GPIO-controlled Multiplexer controller
endef
$(eval $(call KernelPackage,mux-gpio))

File diff suppressed because it is too large Load Diff

View File

@ -818,6 +818,27 @@ endef
$(eval $(call KernelPackage,ipt-cluster))
define KernelPackage/ipt-clusterip
TITLE:=Module for CLUSTERIP
KCONFIG:=$(KCONFIG_IPT_CLUSTERIP)
FILES:=$(foreach mod,$(IPT_CLUSTERIP-m),$(LINUX_DIR)/net/$(mod).ko)
AUTOLOAD:=$(call AutoProbe,$(notdir $(IPT_CLUSTERIP-m)))
$(call AddDepends/ipt,+kmod-nf-conntrack)
endef
define KernelPackage/ipt-clusterip/description
Netfilter (IPv4-only) module for CLUSTERIP
The CLUSTERIP target allows you to build load-balancing clusters of
network servers without having a dedicated load-balancing
router/server/switch.
To use it also enable iptables-mod-clusterip
see `iptables -j CLUSTERIP --help` for more information.
endef
$(eval $(call KernelPackage,ipt-clusterip))
define KernelPackage/ipt-extra
TITLE:=Extra modules
@ -1048,40 +1069,6 @@ endef
$(eval $(call KernelPackage,nfnetlink-queue))
define KernelPackage/nfnetlink-cthelper
TITLE:=Netfilter User space conntrack helpers
FILES:=$(LINUX_DIR)/net/netfilter/nfnetlink_cthelper.ko
KCONFIG:=CONFIG_NF_CT_NETLINK_HELPER
AUTOLOAD:=$(call AutoProbe,nfnetlink_cthelper)
$(call AddDepends/nfnetlink,+kmod-nfnetlink-queue +kmod-nf-conntrack-netlink)
endef
define KernelPackage/nfnetlink-cthelper/description
Kernel modules support for a netlink-based connection tracking
userspace helpers interface
endef
$(eval $(call KernelPackage,nfnetlink-cthelper))
define KernelPackage/nfnetlink-cttimeout
TITLE:=Netfilter conntrack expectation timeout
FILES:=$(LINUX_DIR)/net/netfilter/nfnetlink_cttimeout.ko
KCONFIG:=CONFIG_NF_CT_NETLINK_TIMEOUT
AUTOLOAD:=$(call AutoProbe,nfnetlink_cttimeout)
$(call AddDepends/nfnetlink,+kmod-nf-conntrack @KERNEL_NF_CONNTRACK_TIMEOUT)
endef
define KernelPackage/nfnetlink-cttimeout/description
Kernel modules support for a netlink-based connection tracking
userspace timeout interface
Requires CONFIG_NF_CONNTRACK_TIMEOUT (only enabled for non-small flash devices)
endef
$(eval $(call KernelPackage,nfnetlink-cttimeout))
define KernelPackage/nf-conntrack-netlink
TITLE:=Connection tracking netlink interface
FILES:=$(LINUX_DIR)/net/netfilter/nf_conntrack_netlink.ko
@ -1210,11 +1197,15 @@ define KernelPackage/nft-offload
DEPENDS:=@IPV6 +kmod-nf-flow +kmod-nft-nat
KCONFIG:= \
CONFIG_NF_FLOW_TABLE_INET \
CONFIG_NF_FLOW_TABLE_IPV4 \
CONFIG_NF_FLOW_TABLE_IPV6 \
CONFIG_NFT_FLOW_OFFLOAD
FILES:= \
$(LINUX_DIR)/net/netfilter/nf_flow_table_inet.ko \
$(LINUX_DIR)/net/ipv4/netfilter/nf_flow_table_ipv4.ko \
$(LINUX_DIR)/net/ipv6/netfilter/nf_flow_table_ipv6.ko \
$(LINUX_DIR)/net/netfilter/nft_flow_offload.ko
AUTOLOAD:=$(call AutoProbe,nf_flow_table_inet nft_flow_offload)
AUTOLOAD:=$(call AutoProbe,nf_flow_table_inet nf_flow_table_ipv4 nf_flow_table_ipv6 nft_flow_offload)
endef
$(eval $(call KernelPackage,nft-offload))
@ -1226,7 +1217,6 @@ define KernelPackage/nft-netdev
DEPENDS:=+kmod-nft-core
KCONFIG:= \
CONFIG_NETFILTER_INGRESS=y \
CONFIG_NETFILTER_EGRESS=y \
CONFIG_NF_TABLES_NETDEV \
CONFIG_NF_DUP_NETDEV \
CONFIG_NFT_DUP_NETDEV \

View File

@ -42,32 +42,12 @@ endef
$(eval $(call KernelPackage,atmtcp))
define KernelPackage/appletalk
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=Appletalk protocol support
KCONFIG:= \
CONFIG_ATALK \
CONFIG_DEV_APPLETALK \
CONFIG_IPDDP=n
FILES:=$(LINUX_DIR)/net/appletalk/appletalk.ko
AUTOLOAD:=$(call AutoLoad,40,appletalk)
endef
define KernelPackage/appletalk/description
Kernel module for AppleTalk protocol.
endef
$(eval $(call KernelPackage,appletalk))
define KernelPackage/bonding
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=Ethernet bonding driver
KCONFIG:=CONFIG_BONDING
DEPENDS:=PACKAGE_kmod-tls:kmod-tls
FILES:=$(LINUX_DIR)/drivers/net/bonding/bonding.ko
AUTOLOAD:=$(call AutoLoad,40,bonding)
MODPARAMS.bonding:=max_bonds=0
endef
define KernelPackage/bonding/description
@ -110,8 +90,7 @@ define KernelPackage/vxlan
+kmod-udptunnel4 \
+IPV6:kmod-udptunnel6
KCONFIG:=CONFIG_VXLAN
FILES:= \
$(LINUX_DIR)/drivers/net/vxlan/vxlan.ko
FILES:=$(LINUX_DIR)/drivers/net/vxlan.ko
AUTOLOAD:=$(call AutoLoad,13,vxlan)
endef
@ -235,8 +214,10 @@ $(eval $(call KernelPackage,ipsec))
IPSEC4-m = \
ipv4/ah4 \
ipv4/esp4 \
ipv4/xfrm4_tunnel \
ipv4/ipcomp \
ipv4/xfrm4_tunnel
IPSEC4-m += $(ifeq ($$(strip $$(call CompareKernelPatchVer,$$(KERNEL_PATCHVER),le,5.2))),ipv4/xfrm4_mode_beet ipv4/xfrm4_mode_transport ipv4/xfrm4_mode_tunnel)
define KernelPackage/ipsec4
SUBMENU:=$(NETWORK_SUPPORT_MENU)
@ -246,6 +227,9 @@ define KernelPackage/ipsec4
CONFIG_INET_AH \
CONFIG_INET_ESP \
CONFIG_INET_IPCOMP \
CONFIG_INET_XFRM_MODE_BEET \
CONFIG_INET_XFRM_MODE_TRANSPORT \
CONFIG_INET_XFRM_MODE_TUNNEL \
CONFIG_INET_XFRM_TUNNEL \
CONFIG_INET_ESP_OFFLOAD=n
FILES:=$(foreach mod,$(IPSEC4-m),$(LINUX_DIR)/net/$(mod).ko)
@ -258,6 +242,9 @@ define KernelPackage/ipsec4/description
- ah4
- esp4
- ipcomp4
- xfrm4_mode_beet
- xfrm4_mode_transport
- xfrm4_mode_tunnel
- xfrm4_tunnel
endef
@ -267,8 +254,10 @@ $(eval $(call KernelPackage,ipsec4))
IPSEC6-m = \
ipv6/ah6 \
ipv6/esp6 \
ipv6/xfrm6_tunnel \
ipv6/ipcomp6 \
ipv6/xfrm6_tunnel
IPSEC6-m += $(ifeq ($$(strip $$(call CompareKernelPatchVer,$$(KERNEL_PATCHVER),le,5.2))),ipv6/xfrm6_mode_beet ipv6/xfrm6_mode_transport ipv6/xfrm6_mode_tunnel)
define KernelPackage/ipsec6
SUBMENU:=$(NETWORK_SUPPORT_MENU)
@ -278,6 +267,9 @@ define KernelPackage/ipsec6
CONFIG_INET6_AH \
CONFIG_INET6_ESP \
CONFIG_INET6_IPCOMP \
CONFIG_INET6_XFRM_MODE_BEET \
CONFIG_INET6_XFRM_MODE_TRANSPORT \
CONFIG_INET6_XFRM_MODE_TUNNEL \
CONFIG_INET6_XFRM_TUNNEL \
CONFIG_INET6_ESP_OFFLOAD=n
FILES:=$(foreach mod,$(IPSEC6-m),$(LINUX_DIR)/net/$(mod).ko)
@ -290,6 +282,9 @@ define KernelPackage/ipsec6/description
- ah6
- esp6
- ipcomp6
- xfrm6_mode_beet
- xfrm6_mode_transport
- xfrm6_mode_tunnel
- xfrm6_tunnel
endef
@ -348,7 +343,7 @@ $(eval $(call KernelPackage,ip6-vti))
define KernelPackage/xfrm-interface
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=IPsec XFRM Interface
DEPENDS:=@IPV6 +kmod-ipsec4 +kmod-ipsec6
DEPENDS:=+kmod-ipsec4 +IPV6:kmod-ipsec6
KCONFIG:=CONFIG_XFRM_INTERFACE
FILES:=$(LINUX_DIR)/net/xfrm/xfrm_interface.ko
AUTOLOAD:=$(call AutoProbe,xfrm_interface)
@ -536,23 +531,6 @@ endef
$(eval $(call KernelPackage,veth))
define KernelPackage/vrf
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=Virtual Routing and Forwarding (Lite)
DEPENDS:=@KERNEL_NET_L3_MASTER_DEV
KCONFIG:=CONFIG_NET_VRF
FILES:=$(LINUX_DIR)/drivers/net/vrf.ko
AUTOLOAD:=$(call AutoLoad,30,vrf)
endef
define KernelPackage/vrf/description
This option enables the support for mapping interfaces into VRF's. The
support enables VRF devices.
endef
$(eval $(call KernelPackage,vrf))
define KernelPackage/slhc
SUBMENU:=$(NETWORK_SUPPORT_MENU)
HIDDEN:=1
@ -710,8 +688,12 @@ endef
$(eval $(call KernelPackage,mppe))
SCHED_MODULES_CORE = sch_ingress sch_hfsc sch_htb sch_tbf cls_basic cls_fw cls_route cls_flow cls_u32 em_u32 act_gact act_mirred act_skbedit cls_matchall
SCHED_FILES_CORE = $(foreach mod,$(SCHED_MODULES_CORE),$(LINUX_DIR)/net/sched/$(mod).ko)
SCHED_MODULES = $(patsubst $(LINUX_DIR)/net/sched/%.ko,%,$(wildcard $(LINUX_DIR)/net/sched/*.ko))
SCHED_MODULES_CORE = sch_ingress sch_fq_codel sch_hfsc sch_htb sch_tbf cls_basic cls_fw cls_route cls_flow cls_u32 em_u32 act_gact act_mirred act_skbedit cls_matchall
SCHED_MODULES_FILTER = $(SCHED_MODULES_CORE) act_connmark act_ctinfo sch_cake sch_netem sch_mqprio em_ipset cls_bpf cls_flower act_bpf act_vlan
SCHED_MODULES_EXTRA = $(filter-out $(SCHED_MODULES_FILTER),$(SCHED_MODULES))
SCHED_FILES = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(filter $(SCHED_MODULES_CORE),$(SCHED_MODULES)))
SCHED_FILES_EXTRA = $(patsubst %,$(LINUX_DIR)/net/sched/%.ko,$(SCHED_MODULES_EXTRA))
define KernelPackage/sched-core
SUBMENU:=$(NETWORK_SUPPORT_MENU)
@ -722,6 +704,7 @@ define KernelPackage/sched-core
CONFIG_NET_SCH_HTB \
CONFIG_NET_SCH_TBF \
CONFIG_NET_SCH_INGRESS \
CONFIG_NET_SCH_FQ_CODEL \
CONFIG_NET_CLS=y \
CONFIG_NET_CLS_ACT=y \
CONFIG_NET_CLS_BASIC \
@ -735,7 +718,7 @@ define KernelPackage/sched-core
CONFIG_NET_CLS_MATCHALL \
CONFIG_NET_EMATCH=y \
CONFIG_NET_EMATCH_U32
FILES:=$(SCHED_FILES_CORE)
FILES:=$(SCHED_FILES)
AUTOLOAD:=$(call AutoLoad,70, $(SCHED_MODULES_CORE))
endef
@ -746,52 +729,35 @@ endef
$(eval $(call KernelPackage,sched-core))
define KernelPackage/sched-act-police
define KernelPackage/sched-cake
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=Traffic Policing
TITLE:=Cake fq_codel/blue derived shaper
DEPENDS:=+kmod-sched-core
KCONFIG:=CONFIG_NET_ACT_POLICE
FILES:=$(LINUX_DIR)/net/sched/act_police.ko
AUTOLOAD:=$(call AutoProbe,act_police)
KCONFIG:=CONFIG_NET_SCH_CAKE
FILES:=$(LINUX_DIR)/net/sched/sch_cake.ko
AUTOLOAD:=$(call AutoProbe,sch_cake)
endef
$(eval $(call KernelPackage,sched-act-police))
define KernelPackage/sched-cake/description
Common Applications Kept Enhanced fq_codel/blue derived shaper
endef
$(eval $(call KernelPackage,sched-cake))
define KernelPackage/sched-act-sample
define KernelPackage/sched-flower
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=Traffic Sampling
TITLE:=Flower traffic classifier
DEPENDS:=+kmod-sched-core
KCONFIG:= \
CONFIG_NET_ACT_SAMPLE \
CONFIG_PSAMPLE
FILES:= \
$(LINUX_DIR)/net/psample/psample.ko \
$(LINUX_DIR)/net/sched/act_sample.ko
AUTOLOAD:=$(call AutoProbe,act_sample psample)
KCONFIG:=CONFIG_NET_CLS_FLOWER
FILES:=$(LINUX_DIR)/net/sched/cls_flower.ko
AUTOLOAD:=$(call AutoProbe, cls_flower)
endef
define KernelPackage/sched-act-sample/description
Packet sampling tc action.
define KernelPackage/sched-flower/description
Allows to classify packets based on a configurable combination of packet keys and masks.
endef
$(eval $(call KernelPackage,sched-act-sample))
define KernelPackage/sched-act-ipt
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=IPtables targets
DEPENDS:=+kmod-ipt-core +kmod-sched-core
KCONFIG:=CONFIG_NET_ACT_IPT
FILES:=$(LINUX_DIR)/net/sched/act_ipt.ko
AUTOLOAD:=$(call AutoProbe, act_ipt)
endef
define KernelPackage/sched-act-ipt/description
Allows to invoke iptables targets after successful classification.
endef
$(eval $(call KernelPackage,sched-act-ipt))
$(eval $(call KernelPackage,sched-flower))
define KernelPackage/sched-act-vlan
@ -810,36 +776,20 @@ endef
$(eval $(call KernelPackage,sched-act-vlan))
define KernelPackage/sched-bpf
define KernelPackage/sched-mqprio
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=Traffic shaper support for Berkeley Packet Filter
KCONFIG:= \
CONFIG_NET_CLS_BPF \
CONFIG_NET_ACT_BPF
FILES:= \
$(LINUX_DIR)/net/sched/cls_bpf.ko \
$(LINUX_DIR)/net/sched/act_bpf.ko
AUTOLOAD:=$(call AutoLoad,72,cls_bpf act_bpf)
endef
$(eval $(call KernelPackage,sched-bpf))
define KernelPackage/sched-cake
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=Cake fq_codel/blue derived shaper
TITLE:=Multi-queue priority scheduler (MQPRIO)
DEPENDS:=+kmod-sched-core
KCONFIG:=CONFIG_NET_SCH_CAKE
FILES:=$(LINUX_DIR)/net/sched/sch_cake.ko
AUTOLOAD:=$(call AutoProbe,sch_cake)
KCONFIG:=CONFIG_NET_SCH_MQPRIO
FILES:=$(LINUX_DIR)/net/sched/sch_mqprio.ko
AUTOLOAD:=$(call AutoProbe, sch_mqprio)
endef
define KernelPackage/sched-cake/description
Common Applications Kept Enhanced fq_codel/blue derived shaper
define KernelPackage/sched-mqprio/description
This scheduler allows QOS to be offloaded on NICs that have support for offloading QOS schedulers.
endef
$(eval $(call KernelPackage,sched-cake))
$(eval $(call KernelPackage,sched-mqprio))
define KernelPackage/sched-connmark
SUBMENU:=$(NETWORK_SUPPORT_MENU)
@ -851,7 +801,6 @@ define KernelPackage/sched-connmark
endef
$(eval $(call KernelPackage,sched-connmark))
define KernelPackage/sched-ctinfo
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=Traffic shaper ctinfo support
@ -862,55 +811,6 @@ define KernelPackage/sched-ctinfo
endef
$(eval $(call KernelPackage,sched-ctinfo))
define KernelPackage/sched-drr
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=Deficit Round Robin scheduler (DRR)
DEPENDS:=+kmod-sched-core
KCONFIG:=CONFIG_NET_SCH_DRR
FILES:=$(LINUX_DIR)/net/sched/sch_drr.ko
AUTOLOAD:=$(call AutoProbe,sch_drr)
endef
define KernelPackage/sched-drr/description
DRR algorithm Configuration
endef
$(eval $(call KernelPackage,sched-drr))
define KernelPackage/sched-flower
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=Flower traffic classifier
DEPENDS:=+kmod-sched-core
KCONFIG:=CONFIG_NET_CLS_FLOWER
FILES:=$(LINUX_DIR)/net/sched/cls_flower.ko
AUTOLOAD:=$(call AutoProbe, cls_flower)
endef
define KernelPackage/sched-flower/description
Allows to classify packets based on a configurable combination of packet keys and masks.
endef
$(eval $(call KernelPackage,sched-flower))
define KernelPackage/sched-fq-pie
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=Flow Queue Proportional Integral Enhanced (FQ-PIE)
DEPENDS:=+kmod-sched-core +kmod-sched-pie
KCONFIG:=CONFIG_NET_SCH_FQ_PIE
FILES:=$(LINUX_DIR)/net/sched/sch_fq_pie.ko
AUTOLOAD:=$(call AutoProbe, sch_fq_pie)
endef
define KernelPackage/sched-fq-pie/description
A queuing discipline that combines Flow Queuing with the PIE AQM.
endef
$(eval $(call KernelPackage,sched-fq-pie))
define KernelPackage/sched-ipset
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=Traffic shaper ipset support
@ -925,95 +825,19 @@ endef
$(eval $(call KernelPackage,sched-ipset))
define KernelPackage/sched-mqprio-common
define KernelPackage/sched-bpf
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=mqprio queue common dependencies support
HIDDEN:=1
KCONFIG:=CONFIG_NET_SCH_MQPRIO_LIB
FILES:=$(LINUX_DIR)/net/sched/sch_mqprio_lib.ko
TITLE:=Traffic shaper support for Berkeley Packet Filter
KCONFIG:= \
CONFIG_NET_CLS_BPF \
CONFIG_NET_ACT_BPF
FILES:= \
$(LINUX_DIR)/net/sched/cls_bpf.ko \
$(LINUX_DIR)/net/sched/act_bpf.ko
AUTOLOAD:=$(call AutoLoad,72,cls_bpf act_bpf)
endef
define KernelPackage/sched-mqprio-common/description
Common library for manipulating mqprio queue configurations
endef
$(eval $(call KernelPackage,sched-mqprio-common))
define KernelPackage/sched-mqprio
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=Multi-queue priority scheduler (MQPRIO)
DEPENDS:=+kmod-sched-core +kmod-sched-mqprio-common
KCONFIG:=CONFIG_NET_SCH_MQPRIO
FILES:=$(LINUX_DIR)/net/sched/sch_mqprio.ko
AUTOLOAD:=$(call AutoProbe, sch_mqprio)
endef
define KernelPackage/sched-mqprio/description
This scheduler allows QOS to be offloaded on NICs that have support for offloading QOS schedulers.
endef
$(eval $(call KernelPackage,sched-mqprio))
define KernelPackage/sched-pie
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=Proportional Integral controller-Enhanced AQM (PIE)
DEPENDS:=+kmod-sched-core
KCONFIG:=CONFIG_NET_SCH_PIE
FILES:=$(LINUX_DIR)/net/sched/sch_pie.ko
AUTOLOAD:=$(call AutoProbe, sch_pie)
endef
define KernelPackage/sched-pie/description
A control theoretic active queue management scheme.
endef
$(eval $(call KernelPackage,sched-pie))
define KernelPackage/sched-prio
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=Multi Band Priority Queueing (PRIO)
DEPENDS:=+kmod-sched-core
KCONFIG:=CONFIG_NET_SCH_PRIO
FILES:=$(LINUX_DIR)/net/sched/sch_prio.ko
AUTOLOAD:=$(call AutoProbe,sch_prio)
endef
define KernelPackage/sched-prio/description
PRIO algorithm Configuration
endef
$(eval $(call KernelPackage,sched-prio))
define KernelPackage/sched-red
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=Random Early Detection (RED)
DEPENDS:=+kmod-sched-core
KCONFIG:=CONFIG_NET_SCH_RED
FILES:=$(LINUX_DIR)/net/sched/sch_red.ko
AUTOLOAD:=$(call AutoProbe,sch_red)
endef
define KernelPackage/sched-red/description
Random Early Detection (RED) algorithm Configuration
endef
$(eval $(call KernelPackage,sched-red))
define KernelPackage/sched-skbprio
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=SKB priority queue scheduler (SKBPRIO)
DEPENDS:=+kmod-sched-core
KCONFIG:= CONFIG_NET_SCH_SKBPRIO
FILES:= $(LINUX_DIR)/net/sched/sch_skbprio.ko
AUTOLOAD:=$(call AutoProbe,sch_skbprio)
endef
$(eval $(call KernelPackage,sched-skbprio))
$(eval $(call KernelPackage,sched-bpf))
define KernelPackage/bpf-test
@ -1026,24 +850,26 @@ endef
$(eval $(call KernelPackage,bpf-test))
SCHED_MODULES_EXTRA = sch_codel sch_gred sch_multiq sch_sfq sch_teql sch_fq sch_ets act_pedit act_simple act_skbmod act_csum em_cmp em_nbyte em_meta em_text
SCHED_FILES_EXTRA = $(foreach mod,$(SCHED_MODULES_EXTRA),$(LINUX_DIR)/net/sched/$(mod).ko)
define KernelPackage/sched
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=Extra traffic schedulers
DEPENDS:=+kmod-sched-core +kmod-lib-crc32c +kmod-lib-textsearch
DEPENDS:=+kmod-sched-core +kmod-ipt-core +kmod-lib-crc32c
KCONFIG:= \
CONFIG_NET_SCH_CODEL \
CONFIG_NET_SCH_DSMARK \
CONFIG_NET_SCH_FIFO \
CONFIG_NET_SCH_GRED \
CONFIG_NET_SCH_MULTIQ \
CONFIG_NET_SCH_PRIO \
CONFIG_NET_SCH_RED \
CONFIG_NET_SCH_SFQ \
CONFIG_NET_SCH_TEQL \
CONFIG_NET_SCH_FQ \
CONFIG_NET_SCH_ETS \
CONFIG_NET_SCH_PIE \
CONFIG_NET_ACT_POLICE \
CONFIG_NET_ACT_IPT \
CONFIG_NET_ACT_PEDIT \
CONFIG_NET_ACT_SIMP \
CONFIG_NET_ACT_SKBMOD \
CONFIG_NET_ACT_CSUM \
CONFIG_NET_EMATCH_CMP \
CONFIG_NET_EMATCH_NBYTE \
@ -1090,24 +916,6 @@ endef
$(eval $(call KernelPackage,tcp-bbr))
define KernelPackage/tls
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=In-kernel TLS Support with HW Offload
KCONFIG:=CONFIG_TLS \
CONFIG_TLS_DEVICE=y
FILES:=$(LINUX_DIR)/net/tls/tls.ko
AUTOLOAD:=$(call AutoProbe,tls)
endef
define KernelPackage/tls/description
Kernel module for in-kernel TLS protocol support and hw offload
(to supported interfaces).
This allows symmetric encryption handling of the TLS protocol to
be done in-kernel and it's HW offload when available.
endef
$(eval $(call KernelPackage,tls))
define KernelPackage/tcp-hybla
SUBMENU:=$(NETWORK_SUPPORT_MENU)
@ -1127,24 +935,6 @@ endef
$(eval $(call KernelPackage,tcp-hybla))
define KernelPackage/tcp-scalable
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=TCP-Scalable congestion control algorithm
KCONFIG:=CONFIG_TCP_CONG_SCALABLE
FILES:=$(LINUX_DIR)/net/ipv4/tcp_scalable.ko
AUTOLOAD:=$(call AutoProbe,tcp-scalable)
endef
define KernelPackage/tcp-scalable/description
Scalable TCP is a sender-side only change to TCP which uses a
MIMD congestion control algorithm which has some nice scaling
properties, though is known to have fairness issues.
See http://www.deneholme.net/tom/scalable/
endef
$(eval $(call KernelPackage,tcp-scalable))
define KernelPackage/ax25
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=AX25 support
@ -1252,8 +1042,7 @@ define KernelPackage/sctp
CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y
FILES:= $(LINUX_DIR)/net/sctp/sctp.ko
AUTOLOAD:= $(call AutoLoad,32,sctp)
DEPENDS:=+kmod-lib-crc32c +kmod-crypto-md5 +kmod-crypto-hmac \
+kmod-udptunnel4 +kmod-udptunnel6
DEPENDS:=+kmod-lib-crc32c +kmod-crypto-md5 +kmod-crypto-hmac
endef
define KernelPackage/sctp/description
@ -1263,18 +1052,6 @@ endef
$(eval $(call KernelPackage,sctp))
define KernelPackage/sctp-diag
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=SCTP diag support
DEPENDS:=+kmod-sctp +kmod-inet-diag
KCONFIG:=CONFIG_INET_SCTP_DIAG
FILES:= $(LINUX_DIR)/net/sctp/sctp_diag.ko
AUTOLOAD:= $(call AutoLoad,33,sctp_diag)
endef
$(eval $(call KernelPackage,sctp-diag))
define KernelPackage/netem
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=Network emulation functionality
@ -1327,20 +1104,12 @@ define KernelPackage/rxrpc
HIDDEN:=1
KCONFIG:= \
CONFIG_AF_RXRPC \
CONFIG_AF_RXRPC_IPV6=y \
CONFIG_RXKAD \
CONFIG_RXKAD=m \
CONFIG_AF_RXRPC_DEBUG=n
FILES:= \
$(LINUX_DIR)/net/rxrpc/rxrpc.ko
AUTOLOAD:=$(call AutoLoad,30,rxrpc)
DEPENDS:= \
+kmod-crypto-fcrypt \
+kmod-crypto-hmac \
+kmod-crypto-manager \
+kmod-crypto-md5 \
+kmod-crypto-pcbc \
+kmod-udptunnel4 \
+IPV6:kmod-udptunnel6
AUTOLOAD:=$(call AutoLoad,30,rxrpc.ko)
DEPENDS:= +kmod-crypto-manager +kmod-crypto-pcbc +kmod-crypto-fcrypt
endef
define KernelPackage/rxrpc/description
@ -1376,13 +1145,16 @@ $(eval $(call KernelPackage,mpls))
define KernelPackage/9pnet
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=Plan 9 Resource Sharing Support (9P2000)
DEPENDS:=@VIRTIO_SUPPORT
KCONFIG:= \
CONFIG_NET_9P \
CONFIG_NET_9P_DEBUG=n \
CONFIG_NET_9P_FD=n
CONFIG_NET_9P_XEN=n \
CONFIG_NET_9P_VIRTIO
FILES:= \
$(LINUX_DIR)/net/9p/9pnet.ko
AUTOLOAD:=$(call AutoLoad,29,9pnet)
$(LINUX_DIR)/net/9p/9pnet.ko \
$(LINUX_DIR)/net/9p/9pnet_virtio.ko
AUTOLOAD:=$(call AutoLoad,29,9pnet 9pnet_virtio)
endef
define KernelPackage/9pnet/description
@ -1392,25 +1164,6 @@ endef
$(eval $(call KernelPackage,9pnet))
define KernelPackage/9pvirtio
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=Plan 9 Virtio Support
DEPENDS:=+kmod-9pnet @VIRTIO_SUPPORT
KCONFIG:= \
CONFIG_NET_9P_XEN=n \
CONFIG_NET_9P_VIRTIO
FILES:= \
$(LINUX_DIR)/net/9p/9pnet_virtio.ko
AUTOLOAD:=$(call AutoLoad,29,9pnet_virtio)
endef
define KernelPackage/9pvirtio/description
Kernel support support for
Plan 9 resource sharing for virtio.
endef
$(eval $(call KernelPackage,9pvirtio))
define KernelPackage/nlmon
SUBMENU:=$(NETWORK_SUPPORT_MENU)
@ -1442,21 +1195,6 @@ endef
$(eval $(call KernelPackage,mdio))
define KernelPackage/mdio-bus-mux
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=MDIO bus multiplexers
KCONFIG:=CONFIG_MDIO_BUS_MUX
HIDDEN:=1
FILES:=$(LINUX_DIR)/drivers/net/mdio/mdio-mux.ko
AUTOLOAD:=$(call AutoLoad,32,mdio-mux)
endef
define KernelPackage/mdio-bus-mux/description
Kernel framework for MDIO bus multiplexers.
endef
$(eval $(call KernelPackage,mdio-bus-mux))
define KernelPackage/macsec
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=IEEE 802.1AE MAC-level encryption (MAC)
@ -1506,44 +1244,11 @@ define KernelPackage/inet-diag
endef
define KernelPackage/inet-diag/description
Support for INET (TCP, DCCP, etc) socket monitoring interface used by
native Linux tools such as ss.
endef
$(eval $(call KernelPackage,inet-diag))
define KernelPackage/inet-mptcp-diag
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=INET diag support for MultiPath TCP
DEPENDS:=@KERNEL_MPTCP +kmod-inet-diag
KCONFIG:=CONFIG_INET_MPTCP_DIAG
FILES:=$(LINUX_DIR)/net/mptcp/mptcp_diag.ko
AUTOLOAD:=$(call AutoProbe,mptcp_diag)
endef
define KernelPackage/inet-mptcp-diag/description
Support for INET (MultiPath TCP) socket monitoring interface used by
Support for INET (TCP, DCCP, etc) socket monitoring interface used by
native Linux tools such as ss.
endef
$(eval $(call KernelPackage,inet-mptcp-diag))
define KernelPackage/xdp-sockets-diag
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=PF_XDP sockets monitoring interface support for ss utility
DEPENDS:=@KERNEL_XDP_SOCKETS
KCONFIG:=CONFIG_XDP_SOCKETS_DIAG
FILES:=$(LINUX_DIR)/net/xdp/xsk_diag.ko
AUTOLOAD:=$(call AutoLoad,31,xsk_diag)
endef
define KernelPackage/xdp-sockets-diag/description
Support for PF_XDP sockets monitoring interface used by the ss tool
endef
$(eval $(call KernelPackage,xdp-sockets-diag))
$(eval $(call KernelPackage,inet-diag))
define KernelPackage/wireguard
@ -1571,81 +1276,3 @@ define KernelPackage/wireguard/description
endef
$(eval $(call KernelPackage,wireguard))
define KernelPackage/netconsole
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=Network console logging support
KCONFIG:=CONFIG_NETCONSOLE \
CONFIG_NETCONSOLE_DYNAMIC=n
FILES:=$(LINUX_DIR)/drivers/net/netconsole.ko
AUTOLOAD:=$(call AutoProbe,netconsole)
endef
define KernelPackage/netconsole/description
Network console logging support.
endef
$(eval $(call KernelPackage,netconsole))
define KernelPackage/qrtr
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=Qualcomm IPC Router support
HIDDEN:=1
KCONFIG:=CONFIG_QRTR
FILES:= \
$(LINUX_DIR)/net/qrtr/qrtr.ko
AUTOLOAD:=$(call AutoProbe,qrtr)
endef
define KernelPackage/qrtr/description
Qualcomm IPC Router support
endef
$(eval $(call KernelPackage,qrtr))
define KernelPackage/qrtr-tun
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=TUN device for Qualcomm IPC Router
DEPENDS:=+kmod-qrtr
KCONFIG:=CONFIG_QRTR_TUN
FILES:= $(LINUX_DIR)/net/qrtr/qrtr-tun.ko
AUTOLOAD:=$(call AutoProbe,qrtr-tun)
endef
define KernelPackage/qrtr-tun/description
TUN device for Qualcomm IPC Router
endef
$(eval $(call KernelPackage,qrtr-tun))
define KernelPackage/qrtr-smd
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=SMD IPC Router channels
DEPENDS:=+kmod-qrtr @TARGET_qualcommax
KCONFIG:=CONFIG_QRTR_SMD
FILES:= $(LINUX_DIR)/net/qrtr/qrtr-smd.ko
AUTOLOAD:=$(call AutoProbe,qrtr-smd)
endef
define KernelPackage/qrtr-smd/description
SMD IPC Router channels
endef
$(eval $(call KernelPackage,qrtr-smd))
define KernelPackage/qrtr-mhi
SUBMENU:=$(NETWORK_SUPPORT_MENU)
TITLE:=MHI IPC Router channels
DEPENDS:=+kmod-mhi-bus +kmod-qrtr
KCONFIG:=CONFIG_QRTR_MHI
FILES:= $(LINUX_DIR)/net/qrtr/qrtr-mhi.ko
AUTOLOAD:=$(call AutoProbe,qrtr-mhi)
endef
define KernelPackage/qrtr-mhi/description
MHI IPC Router channels
endef
$(eval $(call KernelPackage,qrtr-mhi))

View File

@ -135,10 +135,8 @@ define KernelPackage/nls-cp932
SUBMENU:=Native Language Support
TITLE:=Codepage 932 (Japanese)
KCONFIG:=CONFIG_NLS_CODEPAGE_932
FILES:= \
$(LINUX_DIR)/fs/nls/nls_cp932.ko \
$(LINUX_DIR)/fs/nls/nls_euc-jp.ko
AUTOLOAD:=$(call AutoLoad,25,nls_cp932 nls_euc-jp)
FILES:=$(LINUX_DIR)/fs/nls/nls_cp932.ko
AUTOLOAD:=$(call AutoLoad,25,nls_cp932)
$(call AddDepends/nls)
endef
@ -339,19 +337,3 @@ define KernelPackage/nls-utf8/description
endef
$(eval $(call KernelPackage,nls-utf8))
define KernelPackage/nls-ucs2-utils
SUBMENU:=Native Language Support
TITLE:=UCS-2 common library
HIDDEN:=1
KCONFIG:=CONFIG_NLS_UCS2_UTILS
FILES:=$(LINUX_DIR)/fs/nls/nls_ucs2_utils.ko
$(call AddDepends/nls)
endef
define KernelPackage/nls-ucs2-utils/description
UCS-2 common library
endef
$(eval $(call KernelPackage,nls-ucs2-utils))

View File

@ -39,11 +39,9 @@ define KernelPackage/bluetooth
CONFIG_BT_RFCOMM \
CONFIG_BT_BNEP \
CONFIG_BT_HCIBTUSB \
CONFIG_BT_HCIBTUSB_BCM=y \
CONFIG_BT_HCIBTUSB_MTK=y \
CONFIG_BT_HCIBTUSB_RTL=y \
CONFIG_BT_HCIBTUSB_BCM=n \
CONFIG_BT_HCIUART \
CONFIG_BT_HCIUART_BCM=y \
CONFIG_BT_HCIUART_BCM=n \
CONFIG_BT_HCIUART_INTEL=n \
CONFIG_BT_HCIUART_H4 \
CONFIG_BT_HCIUART_NOKIA=n \
@ -56,10 +54,7 @@ define KernelPackage/bluetooth
$(LINUX_DIR)/net/bluetooth/hidp/hidp.ko \
$(LINUX_DIR)/drivers/bluetooth/hci_uart.ko \
$(LINUX_DIR)/drivers/bluetooth/btusb.ko \
$(LINUX_DIR)/drivers/bluetooth/btbcm.ko \
$(LINUX_DIR)/drivers/bluetooth/btintel.ko \
$(LINUX_DIR)/drivers/bluetooth/btrtl.ko \
$(LINUX_DIR)/drivers/bluetooth/btmtk.ko
$(LINUX_DIR)/drivers/bluetooth/btintel.ko
AUTOLOAD:=$(call AutoProbe,bluetooth rfcomm bnep hidp hci_uart btusb)
endef
@ -76,6 +71,7 @@ define KernelPackage/ath3k
KCONFIG:= \
CONFIG_BT_ATH3K \
CONFIG_BT_HCIUART_ATH3K=y
$(call AddDepends/bluetooth)
FILES:= \
$(LINUX_DIR)/drivers/bluetooth/ath3k.ko
AUTOLOAD:=$(call AutoProbe,ath3k)
@ -111,6 +107,7 @@ define KernelPackage/btmrvl
KCONFIG:= \
CONFIG_BT_MRVL \
CONFIG_BT_MRVL_SDIO
$(call AddDepends/bluetooth)
FILES:= \
$(LINUX_DIR)/drivers/bluetooth/btmrvl.ko \
$(LINUX_DIR)/drivers/bluetooth/btmrvl_sdio.ko
@ -124,24 +121,6 @@ endef
$(eval $(call KernelPackage,btmrvl))
define KernelPackage/btsdio
SUBMENU:=$(OTHER_MENU)
TITLE:=Bluetooth HCI SDIO driver
DEPENDS:=+kmod-bluetooth +kmod-mmc
KCONFIG:= \
CONFIG_BT_HCIBTSDIO
FILES:= \
$(LINUX_DIR)/drivers/bluetooth/btsdio.ko
AUTOLOAD:=$(call AutoProbe,btsdio)
endef
define KernelPackage/btsdio/description
Kernel support for Bluetooth device with SDIO interface
endef
$(eval $(call KernelPackage,btsdio))
define KernelPackage/dma-buf
SUBMENU:=$(OTHER_MENU)
TITLE:=DMA shared buffer support
@ -203,184 +182,136 @@ endef
$(eval $(call KernelPackage,eeprom-at25))
define KernelPackage/google-firmware
define KernelPackage/gpio-dev
SUBMENU:=$(OTHER_MENU)
TITLE:=Google firmware drivers (Coreboot, VPD, Memconsole)
KCONFIG:= \
CONFIG_GOOGLE_FIRMWARE=y \
CONFIG_GOOGLE_COREBOOT_TABLE \
CONFIG_GOOGLE_MEMCONSOLE \
CONFIG_GOOGLE_MEMCONSOLE_COREBOOT \
CONFIG_GOOGLE_VPD
FILES:= \
$(LINUX_DIR)/drivers/firmware/google/coreboot_table.ko \
$(LINUX_DIR)/drivers/firmware/google/memconsole.ko \
$(LINUX_DIR)/drivers/firmware/google/memconsole-coreboot.ko \
$(LINUX_DIR)/drivers/firmware/google/vpd-sysfs.ko
AUTOLOAD:=$(call AutoProbe,coreboot_table memconsole-coreboot vpd-sysfs)
TITLE:=Generic GPIO char device support
DEPENDS:=@GPIO_SUPPORT
KCONFIG:=CONFIG_GPIO_DEVICE
FILES:=$(LINUX_DIR)/drivers/char/gpio_dev.ko
AUTOLOAD:=$(call AutoLoad,40,gpio_dev)
endef
define KernelPackage/google-firmware/description
Kernel modules for Google firmware drivers. Useful for examining firmware and
boot details on devices using a Google bootloader based on Coreboot. Provides
files like /sys/firmware/log and /sys/firmware/vpd.
define KernelPackage/gpio-dev/description
Kernel module to allows control of GPIO pins using a character device.
endef
$(eval $(call KernelPackage,google-firmware))
$(eval $(call KernelPackage,gpio-dev))
define KernelPackage/lkdtm
define KernelPackage/gpio-f7188x
SUBMENU:=$(OTHER_MENU)
TITLE:=Linux Kernel Dump Test Tool Module
KCONFIG:=CONFIG_LKDTM
FILES:=$(LINUX_DIR)/drivers/misc/lkdtm/lkdtm.ko
AUTOLOAD:=$(call AutoProbe,lkdtm)
TITLE:=Fintek F718xx/F818xx GPIO Support
DEPENDS:=@GPIO_SUPPORT @TARGET_x86
KCONFIG:=CONFIG_GPIO_F7188X
FILES:=$(LINUX_DIR)/drivers/gpio/gpio-f7188x.ko
AUTOLOAD:=$(call AutoProbe,gpio-f7188x)
endef
define KernelPackage/lkdtm/description
This module enables testing of the different dumping mechanisms by inducing
system failures at predefined crash points.
define KernelPackage/gpio-f7188x/description
Kernel module for the GPIOs found on many Fintek Super-IO chips.
endef
$(eval $(call KernelPackage,lkdtm))
$(eval $(call KernelPackage,gpio-f7188x))
define KernelPackage/mlx_wdt
SUBMENU:=$(OTHER_MENU)
TITLE:=Mellanox Watchdog
DEPENDS:=@TARGET_x86 +kmod-regmap-core
KCONFIG:= \
CONFIG_MELLANOX_PLATFORM=y \
CONFIG_MLX_WDT
FILES:=$(LINUX_DIR)/drivers/watchdog/mlx_wdt.ko
AUTOLOAD:=$(call AutoProbe,mlx_wdt)
endef
define KernelPackage/mlx_wdt/description
This is the driver for the hardware watchdog on Mellanox systems.
This driver can be used together with the watchdog daemon.
It can also watch your kernel to make sure it doesn't freeze,
and if it does, it reboots your system after a certain amount of
time.
endef
$(eval $(call KernelPackage,mlx_wdt))
define KernelPackage/mlxreg
SUBMENU:=$(OTHER_MENU)
TITLE:=Mellanox platform register access
DEPENDS:=@TARGET_x86 +kmod-i2c-mux-mlxcpld
KCONFIG:= \
CONFIG_MELLANOX_PLATFORM=y \
CONFIG_MLX_PLATFORM \
CONFIG_MLXREG_HOTPLUG \
CONFIG_MLXREG_IO \
CONFIG_SENSORS_MLXREG_FAN \
CONFIG_LEDS_MLXREG
FILES:= \
$(LINUX_DIR)/drivers/platform/x86/mlx-platform.ko \
$(LINUX_DIR)/drivers/platform/mellanox/mlxreg-hotplug.ko \
$(LINUX_DIR)/drivers/platform/mellanox/mlxreg-io.ko \
$(LINUX_DIR)/drivers/hwmon/mlxreg-fan.ko \
$(LINUX_DIR)/drivers/leds/leds-mlxreg.ko
AUTOLOAD:=$(call AutoProbe,mlx-platform mlxreg-hotplug mlxreg-io mlxreg-fan leds-mlxreg)
endef
define KernelPackage/mlxreg/description
Allows access to Mellanox programmable device register
space through sysfs interface. The sets of registers for sysfs access
are defined per system type bases and include the registers related
to system resets operation, system reset causes monitoring and some
kinds of mux selection.
endef
$(eval $(call KernelPackage,mlxreg))
define KernelPackage/mlxreg-lc
SUBMENU:=$(OTHER_MENU)
TITLE:=Mellanox line card platform support
DEPENDS:=kmod-mlxreg +kmod-regmap-i2c
KCONFIG:=CONFIG_MLXREG_LC
FILES:=$(LINUX_DIR)/drivers/platform/mellanox/mlxreg-lc.ko
AUTOLOAD:=$(call AutoProbe,mlxreg-lc)
endef
define KernelPackage/mlxreg-lc/description
Provides support for the Mellanox MSN4800-XX line cards,
which are the part of MSN4800 Ethernet modular switch systems.
endef
$(eval $(call KernelPackage,mlxreg-lc))
define KernelPackage/mlxreg-sn2201
SUBMENU:=$(OTHER_MENU)
TITLE:=Nvidia SN2201 platform support
DEPENDS:=kmod-mlxreg +kmod-regmap-i2c
KCONFIG:=CONFIG_NVSW_SN2201
FILES:=$(LINUX_DIR)/drivers/platform/mellanox/nvsw-sn2201.ko
AUTOLOAD:=$(call AutoProbe,nvsw-sn2201)
endef
define KernelPackage/mlxreg-sn2201/description
Provides support for the Nvidia SN2201 platform.
endef
$(eval $(call KernelPackage,mlxreg-sn2201))
define KernelPackage/pinctrl-mcp23s08
define KernelPackage/gpio-mcp23s08
SUBMENU:=$(OTHER_MENU)
TITLE:=Microchip MCP23xxx I/O expander
HIDDEN:=1
DEPENDS:=@GPIO_SUPPORT +kmod-regmap-core
KCONFIG:=CONFIG_PINCTRL_MCP23S08
FILES:=$(LINUX_DIR)/drivers/pinctrl/pinctrl-mcp23s08.ko
DEPENDS:=@GPIO_SUPPORT +kmod-i2c-core +kmod-regmap-i2c
KCONFIG:= \
CONFIG_GPIO_MCP23S08 \
CONFIG_PINCTRL_MCP23S08
FILES:= \
$(LINUX_DIR)/drivers/pinctrl/pinctrl-mcp23s08.ko
AUTOLOAD:=$(call AutoLoad,40,pinctrl-mcp23s08)
endef
define KernelPackage/pinctrl-mcp23s08/description
Kernel module for Microchip MCP23xxx I/O expander
define KernelPackage/gpio-mcp23s08/description
Kernel module for Microchip MCP23xxx SPI/I2C I/O expander
endef
$(eval $(call KernelPackage,pinctrl-mcp23s08))
$(eval $(call KernelPackage,gpio-mcp23s08))
define KernelPackage/pinctrl-mcp23s08-i2c
define KernelPackage/gpio-nxp-74hc164
SUBMENU:=$(OTHER_MENU)
TITLE:=Microchip MCP23xxx I/O expander (I2C)
DEPENDS:=@GPIO_SUPPORT \
+kmod-pinctrl-mcp23s08 \
+kmod-i2c-core \
+kmod-regmap-i2c
KCONFIG:=CONFIG_PINCTRL_MCP23S08_I2C
FILES:=$(LINUX_DIR)/drivers/pinctrl/pinctrl-mcp23s08_i2c.ko
AUTOLOAD:=$(call AutoLoad,40,pinctrl-mcp23s08-i2c)
TITLE:=NXP 74HC164 GPIO expander support
KCONFIG:=CONFIG_GPIO_74X164
FILES:=$(LINUX_DIR)/drivers/gpio/gpio-74x164.ko
AUTOLOAD:=$(call AutoProbe,gpio-74x164)
endef
define KernelPackage/pinctrl-mcp23s08-i2c/description
Kernel module for Microchip MCP23xxx I/O expander via I2C
define KernelPackage/gpio-nxp-74hc164/description
Kernel module for NXP 74HC164 GPIO expander
endef
$(eval $(call KernelPackage,pinctrl-mcp23s08-i2c))
$(eval $(call KernelPackage,gpio-nxp-74hc164))
define KernelPackage/pinctrl-mcp23s08-spi
define KernelPackage/gpio-pca953x
SUBMENU:=$(OTHER_MENU)
TITLE:=Microchip MCP23xxx I/O expander (SPI)
DEPENDS:=@GPIO_SUPPORT +kmod-pinctrl-mcp23s08
KCONFIG:=CONFIG_PINCTRL_MCP23S08_SPI
FILES:=$(LINUX_DIR)/drivers/pinctrl/pinctrl-mcp23s08_spi.ko
AUTOLOAD:=$(call AutoLoad,40,pinctrl-mcp23s08-spi)
DEPENDS:=@GPIO_SUPPORT +kmod-i2c-core +kmod-regmap-i2c
TITLE:=PCA95xx, TCA64xx, and MAX7310 I/O ports
KCONFIG:=CONFIG_GPIO_PCA953X
FILES:=$(LINUX_DIR)/drivers/gpio/gpio-pca953x.ko
AUTOLOAD:=$(call AutoLoad,55,gpio-pca953x)
endef
define KernelPackage/pinctrl-mcp23s08-spi/description
Kernel module for Microchip MCP23xxx I/O expander via SPI
define KernelPackage/gpio-pca953x/description
Kernel module for MAX731{0,2,3,5}, PCA6107, PCA953{4-9}, PCA955{4-7},
PCA957{4,5} and TCA64{08,16} I2C GPIO expanders
endef
$(eval $(call KernelPackage,pinctrl-mcp23s08-spi))
$(eval $(call KernelPackage,gpio-pca953x))
define KernelPackage/gpio-pcf857x
SUBMENU:=$(OTHER_MENU)
DEPENDS:=@GPIO_SUPPORT +kmod-i2c-core
TITLE:=PCX857x, PCA967x and MAX732X I2C GPIO expanders
KCONFIG:=CONFIG_GPIO_PCF857X
FILES:=$(LINUX_DIR)/drivers/gpio/gpio-pcf857x.ko
AUTOLOAD:=$(call AutoLoad,55,gpio-pcf857x)
endef
define KernelPackage/gpio-pcf857x/description
Kernel module for PCF857x, PCA{85,96}7x, and MAX732[89] I2C GPIO expanders
endef
$(eval $(call KernelPackage,gpio-pcf857x))
define KernelPackage/gpio-it87
SUBMENU:=$(OTHER_MENU)
DEPENDS:=@GPIO_SUPPORT @TARGET_x86
TITLE:=GPIO support for IT87xx Super I/O chips
KCONFIG:=CONFIG_GPIO_IT87
FILES:=$(LINUX_DIR)/drivers/gpio/gpio-it87.ko
AUTOLOAD:=$(call AutoLoad,25,gpio-it87,1)
endef
define KernelPackage/gpio-it87/description
This driver is tested with ITE IT8728 and IT8732 Super I/O chips, and
supports the IT8761E, IT8613, IT8620E, and IT8628E Super I/O chips as
well.
endef
$(eval $(call KernelPackage,gpio-it87))
define KernelPackage/gpio-amd-fch
SUBMENU:=$(OTHER_MENU)
DEPENDS:=@GPIO_SUPPORT @TARGET_x86
TITLE:=GPIO support for AMD Fusion Controller Hub (G-series SOCs)
KCONFIG:=CONFIG_GPIO_AMD_FCH
FILES:=$(LINUX_DIR)/drivers/gpio/gpio-amd-fch.ko
AUTOLOAD:=$(call AutoLoad,25,gpio-amd-fch,1)
endef
define KernelPackage/gpio-amd-fch/description
This option enables driver for GPIO on AMDs Fusion Controller Hub,
as found on G-series SOCs (eg. GX-412TC)
endef
$(eval $(call KernelPackage,gpio-amd-fch))
define KernelPackage/ppdev
@ -444,6 +375,7 @@ define KernelPackage/mmc
CONFIG_MMC_BLOCK \
CONFIG_MMC_DEBUG=n \
CONFIG_MMC_UNSAFE_RESUME=n \
CONFIG_MMC_BLOCK_BOUNCE=y \
CONFIG_MMC_TIFM_SD=n \
CONFIG_MMC_WBSD=n \
CONFIG_SDIO_UART=n
@ -460,6 +392,23 @@ endef
$(eval $(call KernelPackage,mmc))
define KernelPackage/mvsdio
SUBMENU:=$(OTHER_MENU)
TITLE:=Marvell MMC/SD/SDIO host driver
DEPENDS:=+kmod-mmc @TARGET_kirkwood
KCONFIG:= CONFIG_MMC_MVSDIO
FILES:= \
$(LINUX_DIR)/drivers/mmc/host/mvsdio.ko
AUTOLOAD:=$(call AutoProbe,mvsdio,1)
endef
define KernelPackage/mvsdio/description
Kernel support for the Marvell SDIO host driver.
endef
$(eval $(call KernelPackage,mvsdio))
define KernelPackage/sdhci
SUBMENU:=$(OTHER_MENU)
TITLE:=Secure Digital Host Controller Interface support
@ -529,7 +478,6 @@ define KernelPackage/ssb
CONFIG_SSB_DRIVER_MIPS=n \
CONFIG_SSB_DRIVER_PCICORE=y \
CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y \
CONFIG_SSB_FALLBACK_SPROM=y \
CONFIG_SSB_PCIHOST=y \
CONFIG_SSB_PCIHOST_POSSIBLE=y \
CONFIG_SSB_POSSIBLE=y \
@ -554,7 +502,6 @@ define KernelPackage/bcma
CONFIG_BCMA \
CONFIG_BCMA_POSSIBLE=y \
CONFIG_BCMA_BLOCKIO=y \
CONFIG_BCMA_FALLBACK_SPROM=y \
CONFIG_BCMA_HOST_PCI_POSSIBLE=y \
CONFIG_BCMA_HOST_PCI=y \
CONFIG_BCMA_HOST_SOC=n \
@ -573,16 +520,202 @@ endef
$(eval $(call KernelPackage,bcma))
define KernelPackage/mfd
define KernelPackage/rtc-ds1307
SUBMENU:=$(OTHER_MENU)
TITLE:=Multifunction device drivers
HIDDEN:=1
KCONFIG:=CONFIG_MFD_CORE
FILES:=$(LINUX_DIR)/drivers/mfd/mfd-core.ko
AUTOLOAD:=$(call AutoLoad,10,mfd-core)
TITLE:=Dallas/Maxim DS1307 (and compatible) RTC support
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
DEPENDS:=+kmod-i2c-core +kmod-regmap-i2c +kmod-hwmon-core
KCONFIG:=CONFIG_RTC_DRV_DS1307 \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1307.ko
AUTOLOAD:=$(call AutoProbe,rtc-ds1307)
endef
$(eval $(call KernelPackage,mfd))
define KernelPackage/rtc-ds1307/description
Kernel module for Dallas/Maxim DS1307/DS1337/DS1338/DS1340/DS1388/DS3231,
Epson RX-8025 and various other compatible RTC chips connected via I2C.
endef
$(eval $(call KernelPackage,rtc-ds1307))
define KernelPackage/rtc-ds1374
SUBMENU:=$(OTHER_MENU)
TITLE:=Dallas/Maxim DS1374 RTC support
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
DEPENDS:=+kmod-i2c-core
KCONFIG:=CONFIG_RTC_DRV_DS1374 \
CONFIG_RTC_DRV_DS1374_WDT=n \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1374.ko
AUTOLOAD:=$(call AutoProbe,rtc-ds1374)
endef
define KernelPackage/rtc-ds1374/description
Kernel module for Dallas/Maxim DS1374.
endef
$(eval $(call KernelPackage,rtc-ds1374))
define KernelPackage/rtc-ds1672
SUBMENU:=$(OTHER_MENU)
TITLE:=Dallas/Maxim DS1672 RTC support
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
DEPENDS:=+kmod-i2c-core
KCONFIG:=CONFIG_RTC_DRV_DS1672 \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1672.ko
AUTOLOAD:=$(call AutoProbe,rtc-ds1672)
endef
define KernelPackage/rtc-ds1672/description
Kernel module for Dallas/Maxim DS1672 RTC.
endef
$(eval $(call KernelPackage,rtc-ds1672))
define KernelPackage/rtc-em3027
SUBMENU:=$(OTHER_MENU)
TITLE:=Microelectronic EM3027 RTC support
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
DEPENDS:=+kmod-i2c-core
KCONFIG:=CONFIG_RTC_DRV_EM3027 \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-em3027.ko
AUTOLOAD:=$(call AutoProbe,rtc-em3027)
endef
define KernelPackage/rtc-em3027/description
Kernel module for Microelectronic EM3027 RTC.
endef
$(eval $(call KernelPackage,rtc-em3027))
define KernelPackage/rtc-isl1208
SUBMENU:=$(OTHER_MENU)
TITLE:=Intersil ISL1208 RTC support
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
DEPENDS:=+kmod-i2c-core
KCONFIG:=CONFIG_RTC_DRV_ISL1208 \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-isl1208.ko
AUTOLOAD:=$(call AutoProbe,rtc-isl1208)
endef
define KernelPackage/rtc-isl1208/description
Kernel module for Intersil ISL1208 RTC.
endef
$(eval $(call KernelPackage,rtc-isl1208))
define KernelPackage/rtc-pcf8563
SUBMENU:=$(OTHER_MENU)
TITLE:=Philips PCF8563/Epson RTC8564 RTC support
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
DEPENDS:=+kmod-i2c-core
KCONFIG:=CONFIG_RTC_DRV_PCF8563 \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf8563.ko
AUTOLOAD:=$(call AutoProbe,rtc-pcf8563)
endef
define KernelPackage/rtc-pcf8563/description
Kernel module for Philips PCF8563 RTC chip.
The Epson RTC8564 should work as well.
endef
$(eval $(call KernelPackage,rtc-pcf8563))
define KernelPackage/rtc-pcf2123
SUBMENU:=$(OTHER_MENU)
TITLE:=Philips PCF2123 RTC support
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
DEPENDS:=+kmod-regmap-spi
KCONFIG:=CONFIG_RTC_DRV_PCF2123 \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf2123.ko
AUTOLOAD:=$(call AutoProbe,rtc-pcf2123)
endef
define KernelPackage/rtc-pcf2123/description
Kernel module for Philips PCF2123 RTC chip
endef
$(eval $(call KernelPackage,rtc-pcf2123))
define KernelPackage/rtc-pcf2127
SUBMENU:=$(OTHER_MENU)
TITLE:=NXP PCF2127 and PCF2129 RTC support
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
DEPENDS:=+kmod-i2c-core +kmod-regmap-spi
KCONFIG:=CONFIG_RTC_DRV_PCF2127 \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf2127.ko
AUTOLOAD:=$(call AutoProbe,rtc-pcf2127)
endef
define KernelPackage/rtc-pcf2127/description
Kernel module for NXP PCF2127 and PCF2129 RTC chip
endef
$(eval $(call KernelPackage,rtc-pcf2127))
define KernelPackage/rtc-rs5c372a
SUBMENU:=$(OTHER_MENU)
TITLE:=Ricoh R2025S/D, RS5C372A/B, RV5C386, RV5C387A
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
DEPENDS:=+kmod-i2c-core
KCONFIG:=CONFIG_RTC_DRV_RS5C372 \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-rs5c372.ko
AUTOLOAD:=$(call AutoLoad,50,rtc-rs5c372,1)
endef
define KernelPackage/rtc-rs5c372a/description
Kernel module for Ricoh R2025S/D, RS5C372A/B, RV5C386, RV5C387A RTC on chip module
endef
$(eval $(call KernelPackage,rtc-rs5c372a))
define KernelPackage/rtc-rx8025
SUBMENU:=$(OTHER_MENU)
TITLE:=Epson RX-8025 / RX-8035
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
DEPENDS:=+kmod-i2c-core
KCONFIG:=CONFIG_RTC_DRV_RX8025 \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-rx8025.ko
AUTOLOAD:=$(call AutoLoad,50,rtc-rx8025,1)
endef
define KernelPackage/rtc-rx8025/description
Kernel module for Epson RX-8025 and RX-8035 I2C RTC chip
endef
$(eval $(call KernelPackage,rtc-rx8025))
define KernelPackage/rtc-s35390a
SUBMENU:=$(OTHER_MENU)
TITLE:=Seico S-35390A
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
DEPENDS:=+kmod-i2c-core
KCONFIG:=CONFIG_RTC_DRV_S35390A \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-s35390a.ko
AUTOLOAD:=$(call AutoLoad,50,rtc-s35390a,1)
endef
define KernelPackage/rtc-s35390a/description
Kernel module for Seiko Instruments S-35390A I2C RTC chip
endef
$(eval $(call KernelPackage,rtc-s35390a))
define KernelPackage/mtdtests
@ -590,7 +723,6 @@ define KernelPackage/mtdtests
TITLE:=MTD subsystem tests
KCONFIG:=CONFIG_MTD_TESTS
FILES:=\
$(LINUX_DIR)/drivers/mtd/tests/mtd_nandbiterrs.ko \
$(LINUX_DIR)/drivers/mtd/tests/mtd_nandecctest.ko \
$(LINUX_DIR)/drivers/mtd/tests/mtd_oobtest.ko \
$(LINUX_DIR)/drivers/mtd/tests/mtd_pagetest.ko \
@ -598,7 +730,6 @@ define KernelPackage/mtdtests
$(LINUX_DIR)/drivers/mtd/tests/mtd_speedtest.ko \
$(LINUX_DIR)/drivers/mtd/tests/mtd_stresstest.ko \
$(LINUX_DIR)/drivers/mtd/tests/mtd_subpagetest.ko \
$(LINUX_DIR)/drivers/mtd/tests/mtd_test.ko \
$(LINUX_DIR)/drivers/mtd/tests/mtd_torturetest.ko
endef
@ -639,42 +770,6 @@ endef
$(eval $(call KernelPackage,mtdram))
define KernelPackage/ramoops
SUBMENU:=$(OTHER_MENU)
TITLE:=Ramoops (pstore-ram)
DEFAULT:=m if ALL_KMODS
KCONFIG:=CONFIG_PSTORE_RAM \
CONFIG_PSTORE_CONSOLE=y
DEPENDS:=+kmod-pstore +kmod-reed-solomon
FILES:= $(LINUX_DIR)/fs/pstore/ramoops.ko
AUTOLOAD:=$(call AutoLoad,30,ramoops,1)
endef
define KernelPackage/ramoops/description
Kernel module for pstore-ram (ramoops) crash log storage
endef
$(eval $(call KernelPackage,ramoops))
define KernelPackage/reed-solomon
SUBMENU:=$(OTHER_MENU)
TITLE:=Reed-Solomon error correction
DEFAULT:=m if ALL_KMODS
KCONFIG:=CONFIG_REED_SOLOMON \
CONFIG_REED_SOLOMON_DEC8=y \
CONFIG_REED_SOLOMON_ENC8=y
FILES:= $(LINUX_DIR)/lib/reed_solomon/reed_solomon.ko
AUTOLOAD:=$(call AutoLoad,30,reed_solomon,1)
endef
define KernelPackage/reed-solomon/description
Kernel module for Reed-Solomon error correction
endef
$(eval $(call KernelPackage,reed-solomon))
define KernelPackage/serial-8250
SUBMENU:=$(OTHER_MENU)
TITLE:=8250 UARTs
@ -708,7 +803,7 @@ define KernelPackage/serial-8250-exar
KCONFIG:= CONFIG_SERIAL_8250_EXAR
FILES:=$(LINUX_DIR)/drivers/tty/serial/8250/8250_exar.ko
AUTOLOAD:=$(call AutoProbe,8250 8250_base 8250_exar)
DEPENDS:=@PCI_SUPPORT +kmod-serial-8250
DEPENDS:=+kmod-serial-8250
endef
define KernelPackage/serial-8250-exar/description
@ -803,10 +898,12 @@ $(eval $(call KernelPackage,ikconfig))
define KernelPackage/zram
SUBMENU:=$(OTHER_MENU)
TITLE:=ZRAM
DEPENDS:=+kmod-lib-lzo
KCONFIG:= \
CONFIG_ZSMALLOC \
CONFIG_ZRAM \
CONFIG_ZRAM_DEBUG=n \
CONFIG_PGTABLE_MAPPING=n \
CONFIG_ZRAM_WRITEBACK=n \
CONFIG_ZSMALLOC_STAT=n
FILES:= \
@ -819,38 +916,9 @@ define KernelPackage/zram/description
Compressed RAM block device support
endef
define KernelPackage/zram/config
if PACKAGE_kmod-zram
choice
prompt "ZRAM Default compressor"
default ZRAM_DEF_COMP_LZORLE
config ZRAM_DEF_COMP_LZORLE
bool "lzo-rle"
select PACKAGE_kmod-lib-lzo
config ZRAM_DEF_COMP_LZO
bool "lzo"
select PACKAGE_kmod-lib-lzo
config ZRAM_DEF_COMP_LZ4
bool "lz4"
select PACKAGE_kmod-lib-lz4
config ZRAM_DEF_COMP_LZ4HC
bool "lz4-hc"
select PACKAGE_kmod-lib-lz4hc
config ZRAM_DEF_COMP_ZSTD
bool "zstd"
select PACKAGE_kmod-lib-zstd
endchoice
endif
endef
$(eval $(call KernelPackage,zram))
define KernelPackage/pps
SUBMENU:=$(OTHER_MENU)
TITLE:=PPS support
@ -925,7 +993,7 @@ $(eval $(call KernelPackage,ptp))
define KernelPackage/ptp-qoriq
SUBMENU:=$(OTHER_MENU)
TITLE:=Freescale QorIQ PTP support
DEPENDS:=@(TARGET_mpc85xx||TARGET_qoriq) +kmod-ptp
DEPENDS:=@TARGET_mpc85xx +kmod-ptp
KCONFIG:=CONFIG_PTP_1588_CLOCK_QORIQ
FILES:=$(LINUX_DIR)/drivers/ptp/ptp-qoriq.ko
AUTOLOAD:=$(call AutoProbe,ptp-qoriq)
@ -962,7 +1030,6 @@ define KernelPackage/thermal
CONFIG_THERMAL=y \
CONFIG_THERMAL_OF=y \
CONFIG_CPU_THERMAL=y \
CONFIG_DEVFREQ_THERMAL=n \
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y \
CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE=n \
CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE=n \
@ -982,6 +1049,25 @@ endef
$(eval $(call KernelPackage,thermal))
define KernelPackage/gpio-beeper
SUBMENU:=$(OTHER_MENU)
TITLE:=GPIO beeper support
DEPENDS:=+kmod-input-core
KCONFIG:= \
CONFIG_INPUT_MISC=y \
CONFIG_INPUT_GPIO_BEEPER
FILES:= \
$(LINUX_DIR)/drivers/input/misc/gpio-beeper.ko
AUTOLOAD:=$(call AutoLoad,50,gpio-beeper)
endef
define KernelPackage/gpio-beeper/description
This enables playing beeps through an GPIO-connected buzzer
endef
$(eval $(call KernelPackage,gpio-beeper))
define KernelPackage/echo
SUBMENU:=$(OTHER_MENU)
TITLE:=Line Echo Canceller
@ -1024,7 +1110,7 @@ define KernelPackage/keys-trusted
TITLE:=TPM trusted keys on kernel keyring
DEPENDS:=@KERNEL_KEYS +kmod-crypto-hash +kmod-crypto-hmac +kmod-crypto-sha1 +kmod-tpm
KCONFIG:=CONFIG_TRUSTED_KEYS
FILES:= $(LINUX_DIR)/security/keys/trusted-keys/trusted.ko
FILES:=$(LINUX_DIR)/security/keys/trusted.ko
AUTOLOAD:=$(call AutoLoad,01,trusted-keys,1)
endef
@ -1042,8 +1128,7 @@ $(eval $(call KernelPackage,keys-trusted))
define KernelPackage/tpm
SUBMENU:=$(OTHER_MENU)
TITLE:=TPM Hardware Support
DEPENDS:= +kmod-random-core +kmod-asn1-decoder \
+kmod-asn1-encoder +kmod-oid-registry
DEPENDS:= +kmod-random-core
KCONFIG:= CONFIG_TCG_TPM
FILES:= $(LINUX_DIR)/drivers/char/tpm/tpm.ko
AUTOLOAD:=$(call AutoLoad,10,tpm,1)
@ -1106,50 +1191,84 @@ endef
$(eval $(call KernelPackage,tpm-i2c-infineon))
define KernelPackage/i6300esb-wdt
define KernelPackage/w83627hf-wdt
SUBMENU:=$(OTHER_MENU)
TITLE:=Intel 6300ESB Timer/Watchdog
DEPENDS:=@PCI_SUPPORT @!SMALL_FLASH
KCONFIG:=CONFIG_I6300ESB_WDT \
CONFIG_WATCHDOG_CORE=y
FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/i6300esb.ko
AUTOLOAD:=$(call AutoLoad,50,i6300esb,1)
TITLE:=Winbond 83627HF Watchdog Timer
KCONFIG:=CONFIG_W83627HF_WDT
FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/w83627hf_wdt.ko
AUTOLOAD:=$(call AutoLoad,50,w83627hf-wdt,1)
endef
define KernelPackage/i6300esb-wdt/description
Kernel module for the watchdog timer built into the Intel
6300ESB controller hub. Also used by QEMU/libvirt.
define KernelPackage/w83627hf-wdt/description
Kernel module for Winbond 83627HF Watchdog Timer
endef
$(eval $(call KernelPackage,i6300esb-wdt))
$(eval $(call KernelPackage,w83627hf-wdt))
define KernelPackage/itco-wdt
SUBMENU:=$(OTHER_MENU)
TITLE:=Intel iTCO Watchdog Timer
KCONFIG:=CONFIG_ITCO_WDT \
CONFIG_ITCO_VENDOR_SUPPORT=y
FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/iTCO_wdt.ko \
$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/iTCO_vendor_support.ko
AUTOLOAD:=$(call AutoLoad,50,iTCO_vendor_support iTCO_wdt,1)
endef
define KernelPackage/itco-wdt/description
Kernel module for Intel iTCO Watchdog Timer
endef
$(eval $(call KernelPackage,itco-wdt))
define KernelPackage/it87-wdt
SUBMENU:=$(OTHER_MENU)
TITLE:=ITE IT87 Watchdog Timer
KCONFIG:=CONFIG_IT87_WDT
FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/it87_wdt.ko
AUTOLOAD:=$(call AutoLoad,50,it87-wdt,1)
MODPARAMS.it87-wdt:= \
nogameport=1 \
nocir=1
endef
define KernelPackage/it87-wdt/description
Kernel module for ITE IT87 Watchdog Timer
endef
$(eval $(call KernelPackage,it87-wdt))
define KernelPackage/f71808e-wdt
SUBMENU:=$(OTHER_MENU)
TITLE:=Fintek F718xx/F818xx Watchdog Timer
DEPENDS:=@TARGET_x86
KCONFIG:=CONFIG_F71808E_WDT
FILES:=$(LINUX_DIR)/drivers/$(WATCHDOG_DIR)/f71808e_wdt.ko
AUTOLOAD:=$(call AutoProbe,f71808e-wdt,1)
endef
define KernelPackage/f71808e-wdt/description
Kernel module for the watchdog timer found on many Fintek Super-IO chips.
endef
$(eval $(call KernelPackage,f71808e-wdt))
define KernelPackage/mhi-bus
SUBMENU:=$(OTHER_MENU)
TITLE:=MHI bus
TITLE:=Modem Host Interface (MHI) bus and PCI driver
KCONFIG:=CONFIG_MHI_BUS \
CONFIG_MHI_BUS_PCI_GENERIC \
CONFIG_MHI_BUS_DEBUG=y
FILES:=$(LINUX_DIR)/drivers/bus/mhi/host/mhi.ko
AUTOLOAD:=$(call AutoProbe,mhi)
FILES:=$(LINUX_DIR)/drivers/bus/mhi/mhi_pci_generic.ko \
$(LINUX_DIR)/drivers/bus/mhi/core/mhi.ko
AUTOLOAD:=$(call AutoProbe,mhi mhi_pci_generic)
endef
define KernelPackage/mhi-bus/description
Kernel module for the Qualcomm MHI bus.
Kernel modules for the Qualcoom MHI bus.
endef
$(eval $(call KernelPackage,mhi-bus))
define KernelPackage/mhi-pci-generic
SUBMENU:=$(OTHER_MENU)
TITLE:=MHI PCI controller driver
DEPENDS:=@PCI_SUPPORT +kmod-mhi-bus
KCONFIG:=CONFIG_MHI_BUS_PCI_GENERIC
FILES:=$(LINUX_DIR)/drivers/bus/mhi/host/mhi_pci_generic.ko
AUTOLOAD:=$(call AutoProbe,mhi_pci_generic)
endef
define KernelPackage/mhi-pci-generic/description
Kernel module for the MHI PCI controller driver.
endef
$(eval $(call KernelPackage,mhi-pci-generic))

View File

@ -1,255 +0,0 @@
#
# Copyright (C) 2006-2024 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
RTC_MENU:=RTC Real-Time Clock Support
define KernelPackage/rtc-ds1307
SUBMENU:=$(RTC_MENU)
TITLE:=Dallas/Maxim DS1307 (and compatible) RTC support
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
DEPENDS:=+kmod-i2c-core +kmod-regmap-i2c +kmod-hwmon-core
KCONFIG:=CONFIG_RTC_DRV_DS1307 \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1307.ko
AUTOLOAD:=$(call AutoProbe,rtc-ds1307)
endef
define KernelPackage/rtc-ds1307/description
Kernel module for Dallas/Maxim DS1307/DS1337/DS1338/DS1340/DS1388/DS3231,
Epson RX-8025 and various other compatible RTC chips connected via I2C.
endef
$(eval $(call KernelPackage,rtc-ds1307))
define KernelPackage/rtc-ds1374
SUBMENU:=$(RTC_MENU)
TITLE:=Dallas/Maxim DS1374 RTC support
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
DEPENDS:=+kmod-i2c-core
KCONFIG:=CONFIG_RTC_DRV_DS1374 \
CONFIG_RTC_DRV_DS1374_WDT=n \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1374.ko
AUTOLOAD:=$(call AutoProbe,rtc-ds1374)
endef
define KernelPackage/rtc-ds1374/description
Kernel module for Dallas/Maxim DS1374.
endef
$(eval $(call KernelPackage,rtc-ds1374))
define KernelPackage/rtc-ds1672
SUBMENU:=$(RTC_MENU)
TITLE:=Dallas/Maxim DS1672 RTC support
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
DEPENDS:=+kmod-i2c-core
KCONFIG:=CONFIG_RTC_DRV_DS1672 \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-ds1672.ko
AUTOLOAD:=$(call AutoProbe,rtc-ds1672)
endef
define KernelPackage/rtc-ds1672/description
Kernel module for Dallas/Maxim DS1672 RTC.
endef
$(eval $(call KernelPackage,rtc-ds1672))
define KernelPackage/rtc-em3027
SUBMENU:=$(RTC_MENU)
TITLE:=Microelectronic EM3027 RTC support
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
DEPENDS:=+kmod-i2c-core
KCONFIG:=CONFIG_RTC_DRV_EM3027 \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-em3027.ko
AUTOLOAD:=$(call AutoProbe,rtc-em3027)
endef
define KernelPackage/rtc-em3027/description
Kernel module for Microelectronic EM3027 RTC.
endef
$(eval $(call KernelPackage,rtc-em3027))
define KernelPackage/rtc-isl1208
SUBMENU:=$(RTC_MENU)
TITLE:=Intersil ISL1208 RTC support
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
DEPENDS:=+kmod-i2c-core
KCONFIG:=CONFIG_RTC_DRV_ISL1208 \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-isl1208.ko
AUTOLOAD:=$(call AutoProbe,rtc-isl1208)
endef
define KernelPackage/rtc-isl1208/description
Kernel module for Intersil ISL1208 RTC.
endef
$(eval $(call KernelPackage,rtc-isl1208))
define KernelPackage/rtc-mv
SUBMENU:=$(RTC_MENU)
TITLE:=Marvell SoC RTC support
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
KCONFIG:=CONFIG_RTC_DRV_MV \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-mv.ko
AUTOLOAD:=$(call AutoProbe,rtc-mv)
endef
define KernelPackage/rtc-mv/description
Kernel module for Marvell SoC RTC.
endef
$(eval $(call KernelPackage,rtc-mv))
define KernelPackage/rtc-pcf8563
SUBMENU:=$(RTC_MENU)
TITLE:=Philips PCF8563/Epson RTC8564 RTC support
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
DEPENDS:=+kmod-i2c-core
KCONFIG:=CONFIG_RTC_DRV_PCF8563 \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf8563.ko
AUTOLOAD:=$(call AutoProbe,rtc-pcf8563)
endef
define KernelPackage/rtc-pcf8563/description
Kernel module for Philips PCF8563 RTC chip.
The Epson RTC8564 should work as well.
endef
$(eval $(call KernelPackage,rtc-pcf8563))
define KernelPackage/rtc-pcf2123
SUBMENU:=$(RTC_MENU)
TITLE:=Philips PCF2123 RTC support
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
DEPENDS:=+kmod-regmap-spi
KCONFIG:=CONFIG_RTC_DRV_PCF2123 \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf2123.ko
AUTOLOAD:=$(call AutoProbe,rtc-pcf2123)
endef
define KernelPackage/rtc-pcf2123/description
Kernel module for Philips PCF2123 RTC chip
endef
$(eval $(call KernelPackage,rtc-pcf2123))
define KernelPackage/rtc-pcf2127
SUBMENU:=$(RTC_MENU)
TITLE:=NXP PCF2127 and PCF2129 RTC support
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
DEPENDS:=+kmod-i2c-core +kmod-regmap-spi
KCONFIG:=CONFIG_RTC_DRV_PCF2127 \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-pcf2127.ko
AUTOLOAD:=$(call AutoProbe,rtc-pcf2127)
endef
define KernelPackage/rtc-pcf2127/description
Kernel module for NXP PCF2127 and PCF2129 RTC chip
endef
$(eval $(call KernelPackage,rtc-pcf2127))
define KernelPackage/rtc-r7301
SUBMENU:=$(RTC_MENU)
TITLE:=Epson RTC7301 support
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
DEPENDS:=+kmod-regmap-mmio
KCONFIG:=CONFIG_RTC_DRV_R7301 \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-r7301.ko
AUTOLOAD:=$(call AutoProbe,rtc-r7301)
endef
define KernelPackage/rtc-r7301/description
Kernel module for Epson RTC7301 RTC chip
endef
$(eval $(call KernelPackage,rtc-r7301))
define KernelPackage/rtc-rs5c372a
SUBMENU:=$(RTC_MENU)
TITLE:=Ricoh R2025S/D, RS5C372A/B, RV5C386, RV5C387A
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
DEPENDS:=+kmod-i2c-core
KCONFIG:=CONFIG_RTC_DRV_RS5C372 \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-rs5c372.ko
AUTOLOAD:=$(call AutoLoad,50,rtc-rs5c372,1)
endef
define KernelPackage/rtc-rs5c372a/description
Kernel module for Ricoh R2025S/D, RS5C372A/B, RV5C386, RV5C387A RTC on chip module
endef
$(eval $(call KernelPackage,rtc-rs5c372a))
define KernelPackage/rtc-rx8025
SUBMENU:=$(RTC_MENU)
TITLE:=Epson RX-8025 / RX-8035
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
DEPENDS:=+kmod-i2c-core
KCONFIG:=CONFIG_RTC_DRV_RX8025 \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-rx8025.ko
AUTOLOAD:=$(call AutoLoad,50,rtc-rx8025,1)
endef
define KernelPackage/rtc-rx8025/description
Kernel module for Epson RX-8025 and RX-8035 I2C RTC chip
endef
$(eval $(call KernelPackage,rtc-rx8025))
define KernelPackage/rtc-s35390a
SUBMENU:=$(RTC_MENU)
TITLE:=Seico S-35390A
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
DEPENDS:=+kmod-i2c-core
KCONFIG:=CONFIG_RTC_DRV_S35390A \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-s35390a.ko
AUTOLOAD:=$(call AutoLoad,50,rtc-s35390a,1)
endef
define KernelPackage/rtc-s35390a/description
Kernel module for Seiko Instruments S-35390A I2C RTC chip
endef
$(eval $(call KernelPackage,rtc-s35390a))
define KernelPackage/rtc-x1205
SUBMENU:=$(RTC_MENU)
TITLE:=Xicor Intersil X1205
DEFAULT:=m if ALL_KMODS && RTC_SUPPORT
DEPENDS:=+kmod-i2c-core
KCONFIG:=CONFIG_RTC_DRV_X1205 \
CONFIG_RTC_CLASS=y
FILES:=$(LINUX_DIR)/drivers/rtc/rtc-x1205.ko
AUTOLOAD:=$(call AutoProbe,rtc-x1205)
endef
define KernelPackage/rtc-x1205/description
Kernel module for Xicor Intersil X1205 I2C RTC chip
endef
$(eval $(call KernelPackage,rtc-x1205))

View File

@ -225,51 +225,17 @@ define KernelPackage/sound-soc-imx
$(LINUX_DIR)/sound/soc/fsl/snd-soc-fsl-ssi.ko \
$(LINUX_DIR)/sound/soc/fsl/imx-pcm-dma.ko
AUTOLOAD:=$(call AutoLoad,56,snd-soc-imx-audmux snd-soc-fsl-ssi snd-soc-imx-pcm)
DEPENDS:=@TARGET_imx +kmod-sound-soc-core
DEPENDS:=@TARGET_imx6 +kmod-sound-soc-core
$(call AddDepends/sound)
endef
define KernelPackage/sound-soc-imx/description
Support for i.MX Platform sound (ssi/audmux/pcm)
Support for i.MX6 Platform sound (ssi/audmux/pcm)
endef
$(eval $(call KernelPackage,sound-soc-imx))
define KernelPackage/sound-soc-mt7986
TITLE:=MediaTek MT7986 Audio support
KCONFIG:=CONFIG_SND_SOC_MT7986 CONFIG_SND_SOC_MT7986_WM8960
FILES:= \
$(LINUX_DIR)/sound/soc/mediatek/common/snd-soc-mtk-common.ko \
$(LINUX_DIR)/sound/soc/mediatek/mt7986/snd-soc-mt7986-afe.ko
AUTOLOAD:=$(call AutoLoad,56,snd-soc-mtk-common snd-soc-mt7986-afe)
DEPENDS:=@TARGET_mediatek_filogic +kmod-sound-soc-core
$(call AddDepends/sound)
endef
define KernelPackage/sound-soc-mt7986/description
Support for audio on systems using the MediaTek MT7986 SoC.
endef
$(eval $(call KernelPackage,sound-soc-mt7986))
define KernelPackage/sound-soc-mt7986-wm8960
TITLE:=MediaTek MT7986 Audio support
KCONFIG:=CONFIG_SND_SOC_MT7986_WM8960
FILES:=$(LINUX_DIR)/sound/soc/mediatek/mt7986/mt7986-wm8960.ko
AUTOLOAD:=$(call AutoLoad,57,mt7986-wm8960)
DEPENDS:=@TARGET_mediatek_filogic +kmod-sound-soc-wm8960 +kmod-sound-soc-mt7986
$(call AddDepends/sound)
endef
define KernelPackage/sound-soc-mt7986-wm8960/description
Support for use of the Wolfson Audio WM8960 codec with the MediaTek MT7986 SoC.
endef
$(eval $(call KernelPackage,sound-soc-mt7986-wm8960))
define KernelPackage/sound-soc-imx-sgtl5000
TITLE:=IMX SoC support for SGTL5000
KCONFIG:=CONFIG_SND_SOC_IMX_SGTL5000
@ -277,29 +243,17 @@ define KernelPackage/sound-soc-imx-sgtl5000
$(LINUX_DIR)/sound/soc/codecs/snd-soc-sgtl5000.ko \
$(LINUX_DIR)/sound/soc/fsl/snd-soc-imx-sgtl5000.ko
AUTOLOAD:=$(call AutoLoad,57,snd-soc-sgtl5000 snd-soc-imx-sgtl5000)
DEPENDS:=@TARGET_imx +kmod-sound-soc-imx +kmod-regmap-i2c
DEPENDS:=@TARGET_imx6 +kmod-sound-soc-imx
$(call AddDepends/sound)
endef
define KernelPackage/sound-soc-imx-sgtl5000/description
Support for i.MX Platform sound SGTL5000 codec
Support for i.MX6 Platform sound SGTL5000 codec
endef
$(eval $(call KernelPackage,sound-soc-imx-sgtl5000))
define KernelPackage/sound-soc-wm8960
TITLE:=SoC WM8960 codec support
KCONFIG:=CONFIG_SND_SOC_WM8960
FILES:=$(LINUX_DIR)/sound/soc/codecs/snd-soc-wm8960.ko
DEPENDS:=+kmod-sound-soc-core +kmod-i2c-core +kmod-regmap-i2c
AUTOLOAD:=$(call AutoProbe,snd-soc-wm8960)
$(call AddDepends/sound)
endef
$(eval $(call KernelPackage,sound-soc-wm8960))
define KernelPackage/sound-soc-spdif
TITLE:=SoC S/PDIF codec support
KCONFIG:=CONFIG_SND_SOC_SPDIF
@ -314,17 +268,6 @@ endef
$(eval $(call KernelPackage,sound-soc-spdif))
define KernelPackage/sound-soc-dmic
TITLE:=Generic Digital Microphone CODEC
KCONFIG:=CONFIG_SND_SOC_DMIC
FILES:=$(LINUX_DIR)/sound/soc/codecs/snd-soc-dmic.ko
AUTOLOAD:=$(call AutoProbe,snd-soc-dmic)
$(call AddDepends/sound,+kmod-sound-soc-core)
endef
$(eval $(call KernelPackage,sound-soc-dmic))
define KernelPackage/pcspkr
DEPENDS:=@TARGET_x86 +kmod-input-core
TITLE:=PC speaker support
@ -361,7 +304,6 @@ $(eval $(call KernelPackage,sound-dummy))
define KernelPackage/sound-hda-core
SUBMENU:=$(SOUND_MENU)
TITLE:=HD Audio Sound Core Support
DEPENDS:=+kmod-ledtrig-audio
KCONFIG:= \
CONFIG_SND_HDA_CORE \
CONFIG_SND_HDA_HWDEP=y \
@ -580,7 +522,7 @@ define KernelPackage/sound-hda-intel
CONFIG_SND_HDA_INTEL
FILES:= \
$(LINUX_DIR)/sound/pci/hda/snd-hda-intel.ko \
$(LINUX_DIR)/sound/hda/snd-intel-dspcfg.ko
$(LINUX_DIR)/sound/hda/snd-intel-nhlt.ko
AUTOLOAD:=$(call AutoProbe,snd-hda-intel)
$(call AddDepends/sound,kmod-sound-hda-core)
endef

View File

@ -15,9 +15,9 @@ define KernelPackage/mmc-spi
CONFIG_SPI=y \
CONFIG_SPI_MASTER=y
FILES:=\
$(LINUX_DIR)/drivers/mmc/host/of_mmc_spi.ko \
$(if $(CONFIG_OF),$(LINUX_DIR)/drivers/mmc/host/of_mmc_spi.ko) \
$(LINUX_DIR)/drivers/mmc/host/mmc_spi.ko
AUTOLOAD:=$(call AutoProbe,of_mmc_spi mmc_spi)
AUTOLOAD:=$(call AutoProbe,$(if $(CONFIG_OF),of_mmc_spi) mmc_spi)
endef
define KernelPackage/mmc-spi/description

View File

@ -179,23 +179,6 @@ endef
$(eval $(call KernelPackage,usb-gadget-eth))
define KernelPackage/usb-gadget-ncm
TITLE:=USB Network Control Model (NCM) Gadget support
KCONFIG:=CONFIG_USB_G_NCM
DEPENDS:=+kmod-usb-gadget +kmod-usb-lib-composite \
+kmod-usb-gadget-eth
FILES:= \
$(LINUX_DIR)/drivers/usb/gadget/function/usb_f_ncm.ko \
$(LINUX_DIR)/drivers/usb/gadget/legacy/g_ncm.ko
AUTOLOAD:=$(call AutoLoad,52,usb_f_ncm)
$(call AddDepends/usb)
endef
define KernelPackage/usb-gadget-ncm/description
Kernel support for USB Network Control Model (NCM) Gadget
endef
$(eval $(call KernelPackage,usb-gadget-ncm))
define KernelPackage/usb-gadget-serial
TITLE:=USB Serial Gadget support
@ -272,13 +255,13 @@ $(eval $(call KernelPackage,usb-uhci,1))
define KernelPackage/usb-ohci
TITLE:=Support for OHCI controllers
DEPENDS:= \
+TARGET_ath79:kmod-phy-ath79-usb \
+TARGET_bcm53xx:kmod-usb-bcma \
+TARGET_bcm47xx:kmod-usb-bcma \
+TARGET_bcm47xx:kmod-usb-ssb
KCONFIG:= \
CONFIG_USB_OHCI \
CONFIG_USB_OHCI_HCD \
CONFIG_USB_OHCI_ATH79=y \
CONFIG_USB_OHCI_HCD_AT91=y \
CONFIG_USB_OHCI_BCM63XX=y \
CONFIG_USB_OCTEON_OHCI=y \
@ -331,6 +314,17 @@ define KernelPackage/usb-bcma
endef
$(eval $(call KernelPackage,usb-bcma))
define KernelPackage/usb-fotg210
TITLE:=Support for FOTG210 USB host controllers
DEPENDS:=@USB_SUPPORT @TARGET_gemini
KCONFIG:=CONFIG_USB_FOTG210_HCD
FILES:= \
$(if $(CONFIG_USB_FOTG210_HCD),$(LINUX_DIR)/drivers/usb/host/fotg210-hcd.ko)
AUTOLOAD:=$(call AutoLoad,50,fotg210-hcd,1)
$(call AddDepends/usb)
endef
$(eval $(call KernelPackage,usb-fotg210))
define KernelPackage/usb-ssb
TITLE:=Support for SSB USB controllers
DEPENDS:=@USB_SUPPORT @TARGET_bcm47xx
@ -418,9 +412,12 @@ $(eval $(call KernelPackage,usb2-pci))
define KernelPackage/usb-dwc2
TITLE:=DWC2 USB controller driver
DEPENDS:=+USB_GADGET_SUPPORT:kmod-usb-gadget +kmod-usb-roles
DEPENDS:=+USB_GADGET_SUPPORT:kmod-usb-gadget
KCONFIG:= \
CONFIG_USB_PCI=y \
CONFIG_USB_DWC2 \
CONFIG_USB_DWC2_PCI \
CONFIG_USB_DWC2_PLATFORM \
CONFIG_USB_DWC2_DEBUG=n \
CONFIG_USB_DWC2_VERBOSE=n \
CONFIG_USB_DWC2_TRACK_MISSED_SOFS=n \
@ -439,64 +436,6 @@ endef
$(eval $(call KernelPackage,usb-dwc2))
define KernelPackage/usb-dwc2-pci
TITLE:=DWC2 USB controller driver (PCI)
DEPENDS:=@PCI_SUPPORT +kmod-usb-dwc2 +kmod-usb-phy-nop
KCONFIG:= \
CONFIG_USB_PCI=y \
CONFIG_USB_DWC2_PCI
FILES:= \
$(LINUX_DIR)/drivers/usb/dwc2/dwc2_pci.ko
AUTOLOAD:=$(call AutoLoad,54,dwc2_pci,1)
$(call AddDepends/usb)
endef
define KernelPackage/usb-dwc2-pci/description
The Designware USB2.0 PCI interface module for controllers
connected to a PCI bus.
endef
$(eval $(call KernelPackage,usb-dwc2-pci))
define KernelPackage/usb-cdns
TITLE:=Cadence USB USB controller driver
DEPENDS:=+USB_GADGET_SUPPORT:kmod-usb-gadget +kmod-usb-roles
KCONFIG:= \
CONFIG_USB_CDNS_SUPPORT
FILES:= $(LINUX_DIR)/drivers/usb/cdns3/cdns-usb-common.ko
AUTOLOAD:=$(call AutoLoad,50,cdns-usb-common,1)
$(call AddDepends/usb)
endef
define KernelPackage/usb-cdns/description
This driver provides USB Device Controller support for the
Cadence USB Core
endef
$(eval $(call KernelPackage,usb-cdns))
define KernelPackage/usb-cdns3
TITLE:=Cadence USB3 USB controller driver
DEPENDS:=+kmod-usb-cdns
KCONFIG:= \
CONFIG_USB_CDNS3 \
CONFIG_USB_CDNS3_GADGET=y \
CONFIG_USB_CDNS3_HOST=y
FILES:= $(LINUX_DIR)/drivers/usb/cdns3/cdns3.ko
AUTOLOAD:=$(call AutoLoad,54,cdns3,1)
$(call AddDepends/usb)
endef
define KernelPackage/usb-cdns3/description
This driver provides support for the Dual Role SuperSpeed
USB Controller based on the Cadence USB3 IP Core
endef
$(eval $(call KernelPackage,usb-cdns3))
define KernelPackage/usb-dwc3
TITLE:=DWC3 USB controller driver
KCONFIG:= \
@ -519,26 +458,9 @@ endef
$(eval $(call KernelPackage,usb-dwc3))
define KernelPackage/usb-dwc3-octeon
TITLE:=DWC3 Cavium Octeon USB driver
DEPENDS:=@TARGET_octeon +kmod-usb-dwc3
KCONFIG:= CONFIG_USB_DWC3_OCTEON
FILES:= $(LINUX_DIR)/drivers/usb/dwc3/dwc3-octeon.ko
AUTOLOAD:=$(call AutoProbe,dwc3-octeon,1)
$(call AddDepends/usb)
endef
define KernelPackage/usb-dwc3-octeon/description
This driver adds support for Cavium Octeon platforms with DesignWare
Core USB3 IP.
endef
$(eval $(call KernelPackage,usb-dwc3-octeon))
define KernelPackage/usb-dwc3-qcom
TITLE:=DWC3 Qualcomm USB driver
DEPENDS:=@(TARGET_ipq40xx||TARGET_ipq806x||TARGET_qualcommax) +kmod-usb-dwc3
DEPENDS:=@(TARGET_ipq40xx||TARGET_ipq806x) +kmod-usb-dwc3
KCONFIG:= CONFIG_USB_DWC3_QCOM
FILES:= $(LINUX_DIR)/drivers/usb/dwc3/dwc3-qcom.ko
AUTOLOAD:=$(call AutoLoad,53,dwc3-qcom,1)
@ -589,11 +511,11 @@ $(eval $(call KernelPackage,usb-wdm))
define KernelPackage/usb-audio
TITLE:=Support for USB audio devices
KCONFIG:= \
CONFIG_USB_AUDIO \
CONFIG_SND_USB=y \
CONFIG_SND_USB_AUDIO
$(call AddDepends/usb)
$(call AddDepends/sound)
DEPENDS+=+kmod-media-controller
FILES:= \
$(LINUX_DIR)/sound/usb/snd-usbmidi-lib.ko \
$(LINUX_DIR)/sound/usb/snd-usb-audio.ko
@ -673,21 +595,6 @@ endef
$(eval $(call KernelPackage,usb-serial-ch341))
define KernelPackage/usb-serial-ch348
TITLE:=Support for CH348 devices
KCONFIG:=CONFIG_USB_SERIAL_CH348
FILES:=$(LINUX_DIR)/drivers/usb/serial/ch348.ko
AUTOLOAD:=$(call AutoProbe,ch348)
$(call AddDepends/usb-serial)
endef
define KernelPackage/usb-serial-ch348/description
Kernel support for Winchiphead CH348 USB-to-8x-Serial converters
endef
$(eval $(call KernelPackage,usb-serial-ch348))
define KernelPackage/usb-serial-edgeport
TITLE:=Support for Digi Edgeport devices
KCONFIG:=CONFIG_USB_SERIAL_EDGEPORT
@ -821,9 +728,8 @@ $(eval $(call KernelPackage,usb-serial-mct))
define KernelPackage/usb-serial-mos7720
TITLE:=Support for Moschip MOS7720 devices
KCONFIG:=CONFIG_USB_SERIAL_MOS7720 CONFIG_USB_SERIAL_MOS7715_PARPORT=y
KCONFIG:=CONFIG_USB_SERIAL_MOS7720
FILES:=$(LINUX_DIR)/drivers/usb/serial/mos7720.ko
DEPENDS:=+kmod-ppdev
AUTOLOAD:=$(call AutoProbe,mos7720)
$(call AddDepends/usb-serial)
endef
@ -1216,9 +1122,7 @@ $(eval $(call KernelPackage,usb-net-aqc111))
define KernelPackage/usb-net-asix
TITLE:=Kernel module for USB-to-Ethernet Asix convertors
DEPENDS:= \
+kmod-libphy +kmod-net-selftests +kmod-mdio-devres +kmod-phy-ax88796b \
+kmod-phylink
DEPENDS:=+kmod-libphy
KCONFIG:=CONFIG_USB_NET_AX8817X
FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/asix.ko
AUTOLOAD:=$(call AutoProbe,asix)
@ -1281,23 +1185,6 @@ endef
$(eval $(call KernelPackage,usb-net-kaweth))
define KernelPackage/usb-net-lan78xx
TITLE:=USB-To-Ethernet Microchip LAN78XX convertors
DEPENDS:=+kmod-fixed-phy +kmod-phy-microchip +PACKAGE_kmod-of-mdio:kmod-of-mdio
KCONFIG:=CONFIG_USB_LAN78XX
FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/lan78xx.ko
AUTOLOAD:=$(call AutoProbe,lan78xx)
$(call AddDepends/usb-net)
endef
define KernelPackage/usb-net-lan78xx/description
Kernel module for Microchip LAN78XX based USB 2 & USB 3
10/100/1000 Ethernet adapters.
endef
$(eval $(call KernelPackage,usb-net-lan78xx))
define KernelPackage/usb-net-pegasus
TITLE:=Kernel module for USB-to-Ethernet Pegasus convertors
KCONFIG:=CONFIG_USB_PEGASUS
@ -1328,25 +1215,8 @@ endef
$(eval $(call KernelPackage,usb-net-mcs7830))
define KernelPackage/usb-net-smsc75xx
TITLE:=SMSC LAN75XX based USB 2.0 Gigabit ethernet devices
DEPENDS:=+kmod-libphy
KCONFIG:=CONFIG_USB_NET_SMSC75XX
FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/smsc75xx.ko
AUTOLOAD:=$(call AutoProbe,smsc75xx)
$(call AddDepends/usb-net, +kmod-lib-crc16)
endef
define KernelPackage/usb-net-smsc75xx/description
Kernel module for SMSC LAN75XX based devices
endef
$(eval $(call KernelPackage,usb-net-smsc75xx))
define KernelPackage/usb-net-smsc95xx
TITLE:=SMSC LAN95XX based USB 2.0 10/100 ethernet devices
DEPENDS:=+kmod-libphy +kmod-phy-smsc +kmod-net-selftests
KCONFIG:=CONFIG_USB_NET_SMSC95XX
FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/smsc95xx.ko
AUTOLOAD:=$(call AutoProbe,smsc95xx)
@ -1453,7 +1323,6 @@ $(eval $(call KernelPackage,usb-net-rtl8150))
define KernelPackage/usb-net-rtl8152
TITLE:=Kernel module for USB-to-Ethernet Realtek convertors
DEPENDS:=+r8152-firmware +kmod-crypto-sha256 +kmod-usb-net-cdc-ncm
KCONFIG:=CONFIG_USB_RTL8152
FILES:=$(LINUX_DIR)/drivers/$(USBNET_DIR)/r8152.ko
AUTOLOAD:=$(call AutoProbe,r8152)
@ -1519,7 +1388,7 @@ define KernelPackage/usb-net-cdc-ncm
KCONFIG:=CONFIG_USB_NET_CDC_NCM
FILES:= $(LINUX_DIR)/drivers/$(USBNET_DIR)/cdc_ncm.ko
AUTOLOAD:=$(call AutoProbe,cdc_ncm)
$(call AddDepends/usb-net,+kmod-usb-net-cdc-ether)
$(call AddDepends/usb-net)
endef
define KernelPackage/usb-net-cdc-ncm/description
@ -1621,8 +1490,8 @@ $(eval $(call KernelPackage,usb-hid))
define KernelPackage/usb-hid-cp2112
SUBMENU:=$(USB_MENU)
TITLE:=Silicon Labs CP2112 HID USB to SMBus Master Bridge
KCONFIG:=CONFIG_HID_CP2112
DEPENDS:=@GPIO_SUPPORT +kmod-usb-hid +kmod-i2c-core
KCONFIG:=CONFIG_GPIOLIB=y CONFIG_HID_CP2112
DEPENDS:=+kmod-usb-hid +kmod-i2c-core
FILES:=$(LINUX_DIR)/drivers/hid/hid-cp2112.ko
AUTOLOAD:=$(call AutoProbe,hid-cp2112)
endef
@ -1635,23 +1504,6 @@ endef
$(eval $(call KernelPackage,usb-hid-cp2112))
define KernelPackage/usb-hid-mcp2221
SUBMENU:=$(USB_MENU)
TITLE:=Microchip USB 2.0 to I2C/UART Protocol Converter with GPIO
KCONFIG:=CONFIG_HID_MCP2221
DEPENDS:=@GPIO_SUPPORT +kmod-usb-hid +kmod-i2c-core +kmod-iio-core
FILES:=$(LINUX_DIR)/drivers/hid/hid-mcp2221.ko
AUTOLOAD:=$(call AutoProbe,hid-mcp2221)
endef
define KernelPackage/usb-hid-mcp2221/description
HID device driver which registers as an i2c adapter and gpiochip to expose
these functions of the MCP2221.
endef
$(eval $(call KernelPackage,usb-hid-mcp2221))
define KernelPackage/usb-yealink
TITLE:=USB Yealink VOIP phone
DEPENDS:=+kmod-input-evdev
@ -1736,20 +1588,21 @@ endef
$(eval $(call KernelPackage,usbip-server))
define KernelPackage/usb-chipidea
TITLE:=Host and device support for Chipidea controllers
DEPENDS:=+USB_GADGET_SUPPORT:kmod-usb-gadget @TARGET_ath79 +kmod-usb-ehci +kmod-usb-phy-nop +kmod-usb-roles +kmod-phy-ath79-usb
DEPENDS:=+USB_GADGET_SUPPORT:kmod-usb-gadget @TARGET_ath79 +kmod-usb-ehci +kmod-usb-phy-nop
KCONFIG:= \
CONFIG_EXTCON \
CONFIG_USB_CHIPIDEA \
CONFIG_USB_CHIPIDEA_GENERIC \
CONFIG_USB_CHIPIDEA_HOST=y \
CONFIG_USB_CHIPIDEA_UDC=y \
CONFIG_USB_CHIPIDEA_DEBUG=y
FILES:= \
$(LINUX_DIR)/drivers/extcon/extcon-core.ko \
$(LINUX_DIR)/drivers/usb/chipidea/ci_hdrc.ko \
$(LINUX_DIR)/drivers/usb/common/ulpi.ko
$(LINUX_DIR)/drivers/usb/common/ulpi.ko \
$(LINUX_DIR)/drivers/usb/roles/roles.ko
AUTOLOAD:=$(call AutoLoad,39,ci_hdrc,1)
$(call AddDepends/usb)
endef
@ -1798,25 +1651,25 @@ endef
$(eval $(call KernelPackage,usbmon))
XHCI_MODULES := xhci-pci xhci-plat-hcd
XHCI_MODULES := xhci-hcd xhci-pci xhci-plat-hcd
ifdef CONFIG_TARGET_ramips_mt7621
XHCI_MODULES += xhci-mtk
endif
XHCI_FILES := $(wildcard $(patsubst %,$(LINUX_DIR)/drivers/usb/host/%.ko,$(XHCI_MODULES)))
XHCI_AUTOLOAD := $(patsubst $(LINUX_DIR)/drivers/usb/host/%.ko,%,$(XHCI_FILES))
define KernelPackage/usb3
TITLE:=Support for USB3 controllers
DEPENDS:= \
+kmod-usb-xhci-hcd \
+TARGET_bcm53xx:kmod-usb-bcma \
+TARGET_bcm53xx:kmod-phy-bcm-ns-usb3 \
+TARGET_ramips_mt7621:kmod-usb-xhci-mtk \
+TARGET_mediatek:kmod-usb-xhci-mtk \
+TARGET_apm821xx_nand:kmod-usb-xhci-pci-renesas \
+TARGET_lantiq_xrx200:kmod-usb-xhci-pci-renesas \
+TARGET_mvebu_cortexa9:kmod-usb-xhci-pci-renesas
+TARGET_bcm53xx:kmod-phy-bcm-ns-usb3
KCONFIG:= \
CONFIG_USB_PCI=y \
CONFIG_USB_XHCI_HCD \
CONFIG_USB_XHCI_PCI \
CONFIG_USB_XHCI_PLATFORM
CONFIG_USB_XHCI_PLATFORM \
CONFIG_USB_XHCI_MTK \
CONFIG_USB_XHCI_HCD_DEBUGGING=n
FILES:= \
$(XHCI_FILES)
AUTOLOAD:=$(call AutoLoad,54,$(XHCI_AUTOLOAD),1)
@ -1847,73 +1700,6 @@ endef
$(eval $(call KernelPackage,usb-net2280))
define KernelPackage/usb-roles
TITLE:=USB Role Switch Library Module
KCONFIG:=CONFIG_USB_ROLE_SWITCH
HIDDEN:=1
FILES:=$(LINUX_DIR)/drivers/usb/roles/roles.ko
$(call AddDepends/usb)
endef
define KernelPackage/usb-roles/description
Support for USB Role Switch
endef
$(eval $(call KernelPackage,usb-roles))
define KernelPackage/usb-xhci-hcd
TITLE:=xHCI HCD (USB 3.0) support
KCONFIG:= CONFIG_USB_XHCI_HCD
HIDDEN:=1
FILES:=$(LINUX_DIR)/drivers/usb/host/xhci-hcd.ko
AUTOLOAD:=$(call AutoLoad,54,xhci-hcd,1)
$(call AddDepends/usb)
endef
define KernelPackage/usb-xhci-hcd/description
The eXtensible Host Controller Interface (xHCI) is standard for USB 3.0
"SuperSpeed" host controller hardware.
endef
$(eval $(call KernelPackage,usb-xhci-hcd))
define KernelPackage/usb-xhci-mtk
TITLE:=xHCI support for MediaTek SoCs
DEPENDS:=+kmod-usb-xhci-hcd
KCONFIG:=CONFIG_USB_XHCI_MTK
HIDDEN:=1
FILES:= \
$(LINUX_DIR)/drivers/usb/host/xhci-mtk-hcd.ko
AUTOLOAD:=$(call AutoLoad,54,xhci-mtk-hcd,1)
$(call AddDepends/usb)
endef
define KernelPackage/usb-xhci-mtk/description
Kernel support for the xHCI host controller found in MediaTek SoCs.
endef
$(eval $(call KernelPackage,usb-xhci-mtk))
define KernelPackage/usb-xhci-pci-renesas
TITLE:=Support for additional Renesas xHCI controller with firmware
KCONFIG:=CONFIG_USB_XHCI_PCI_RENESAS
HIDDEN:=1
FILES:=$(LINUX_DIR)/drivers/usb/host/xhci-pci-renesas.ko
AUTOLOAD:=$(call AutoLoad,54,xhci-pci-renesas,1)
$(call AddDepends/usb)
endef
define KernelPackage/usb-xhci-pci-renesas/description
Kernel support for the Renesas xHCI controller with firmware. Make sure you have
the firwmare for the device and installed on your system for this device to work.
endef
$(eval $(call KernelPackage,usb-xhci-pci-renesas))
define KernelPackage/chaoskey
SUBMENU:=$(USB_MENU)
TITLE:=Chaoskey hardware RNG support

View File

@ -10,56 +10,11 @@ VIDEO_MENU:=Video Support
V4L2_DIR=v4l2-core
V4L2_USB_DIR=usb
V4L2_MEM2MEM_DIR=platform
#
# Media
#
define KernelPackage/media-controller
SUBMENU:=$(VIDEO_MENU)
TITLE:=Media Controller API
KCONFIG:= \
CONFIG_MEDIA_SUPPORT \
CONFIG_MEDIA_CONTROLLER=y
FILES:= \
$(LINUX_DIR)/drivers/media/mc/mc.ko
AUTOLOAD:=$(call AutoProbe,mc)
endef
define KernelPackage/media-controller/description
Kernel modules for media controller API used to query media devices
internal topology and configure it dynamically.
endef
$(eval $(call KernelPackage,media-controller))
#
# Video Display
#
define KernelPackage/acpi-video
SUBMENU:=$(VIDEO_MENU)
TITLE:=ACPI Extensions For Display Adapters
DEPENDS:=@TARGET_x86||TARGET_loongarch64 +kmod-backlight
HIDDEN:=1
KCONFIG:=CONFIG_ACPI_VIDEO
FILES:=$(LINUX_DIR)/drivers/acpi/video.ko
AUTOLOAD:=$(call AutoProbe,video)
endef
define KernelPackage/acpi-video/description
Kernel support for integrated graphics devices.
endef
define KernelPackage/acpi-video/x86
KCONFIG+=CONFIG_ACPI_WMI
FILES+=$(LINUX_DIR)/drivers/platform/x86/wmi.ko
AUTOLOAD:=$(call AutoProbe,wmi video)
endef
$(eval $(call KernelPackage,acpi-video))
define KernelPackage/backlight
SUBMENU:=$(VIDEO_MENU)
TITLE:=Backlight support
@ -105,7 +60,6 @@ define KernelPackage/fb
DEPENDS:=@DISPLAY_SUPPORT
KCONFIG:= \
CONFIG_FB \
CONFIG_FB_DEVICE=y \
CONFIG_FB_MXS=n \
CONFIG_FB_SM750=n \
CONFIG_FRAMEBUFFER_CONSOLE=y \
@ -128,8 +82,7 @@ define KernelPackage/fb
CONFIG_VT_CONSOLE=y \
CONFIG_VT_HW_CONSOLE_BINDING=y
FILES:=$(LINUX_DIR)/drivers/video/fbdev/core/fb.ko \
$(LINUX_DIR)/lib/fonts/font.ko \
$(LINUX_DIR)/drivers/video/fbdev/core/fb_io_fops.ko
$(LINUX_DIR)/lib/fonts/font.ko
AUTOLOAD:=$(call AutoLoad,06,fb font)
endef
@ -291,8 +244,7 @@ define KernelPackage/drm
SUBMENU:=$(VIDEO_MENU)
TITLE:=Direct Rendering Manager (DRM) support
HIDDEN:=1
DEPENDS:=+kmod-dma-buf +kmod-i2c-core +PACKAGE_kmod-backlight:kmod-backlight \
+kmod-fb
DEPENDS:=+kmod-dma-buf +kmod-i2c-core
KCONFIG:=CONFIG_DRM
FILES:= \
$(LINUX_DIR)/drivers/gpu/drm/drm.ko \
@ -306,99 +258,6 @@ endef
$(eval $(call KernelPackage,drm))
define KernelPackage/drm-buddy
SUBMENU:=$(VIDEO_MENU)
TITLE:=A page based buddy allocator
DEPENDS:=@DISPLAY_SUPPORT +kmod-drm
KCONFIG:=CONFIG_DRM_BUDDY
FILES:= $(LINUX_DIR)/drivers/gpu/drm/drm_buddy.ko
AUTOLOAD:=$(call AutoProbe,drm_buddy)
endef
define KernelPackage/drm-buddy/description
A page based buddy allocator
endef
$(eval $(call KernelPackage,drm-buddy))
define KernelPackage/drm-display-helper
SUBMENU:=$(VIDEO_MENU)
TITLE:=DRM helpers for display adapters drivers
DEPENDS:=@DISPLAY_SUPPORT +kmod-drm-kms-helper
KCONFIG:=CONFIG_DRM_DISPLAY_HELPER
FILES:=$(LINUX_DIR)/drivers/gpu/drm/display/drm_display_helper.ko
AUTOLOAD:=$(call AutoProbe,drm_display_helper)
endef
define KernelPackage/drm-display-helper/description
DRM helpers for display adapters drivers.
endef
$(eval $(call KernelPackage,drm-display-helper))
define KernelPackage/drm-exec
SUBMENU:=$(VIDEO_MENU)
HIDDEN:=1
TITLE:=Execution context for command submissions
DEPENDS:=@DISPLAY_SUPPORT +kmod-drm
KCONFIG:=CONFIG_DRM_EXEC
FILES:=$(LINUX_DIR)/drivers/gpu/drm/drm_exec.ko
AUTOLOAD:=$(call AutoProbe,drm_exec)
endef
define KernelPackage/drm-exec/description
Execution context for command submissions.
endef
$(eval $(call KernelPackage,drm-exec))
define KernelPackage/drm-gem-shmem-helper
SUBMENU:=$(VIDEO_MENU)
TITLE:=GEM shmem helper functions
DEPENDS:=@DISPLAY_SUPPORT +kmod-drm
KCONFIG:=CONFIG_DRM_GEM_SHMEM_HELPER
FILES:=$(LINUX_DIR)/drivers/gpu/drm/drm_shmem_helper.ko
AUTOLOAD:=$(call AutoProbe,drm_shmem_helper)
endef
$(eval $(call KernelPackage,drm-gem-shmem-helper))
define KernelPackage/drm-dma-helper
SUBMENU:=$(VIDEO_MENU)
HIDDEN:=1
TITLE:=GEM DMA helper functions
DEPENDS:=@DISPLAY_SUPPORT +kmod-drm-kms-helper
KCONFIG:=CONFIG_DRM_GEM_DMA_HELPER
FILES:=$(LINUX_DIR)/drivers/gpu/drm/drm_dma_helper.ko
AUTOLOAD:=$(call AutoProbe,drm_dma_helper)
endef
define KernelPackage/drm-dma-helper/description
GEM DMA helper functions.
endef
$(eval $(call KernelPackage,drm-dma-helper))
define KernelPackage/drm-mipi-dbi
SUBMENU:=$(VIDEO_MENU)
HIDDEN:=1
TITLE:=MIPI DBI helpers
DEPENDS:=@DISPLAY_SUPPORT +kmod-backlight +kmod-drm-kms-helper
KCONFIG:=CONFIG_DRM_MIPI_DBI
FILES:=$(LINUX_DIR)/drivers/gpu/drm/drm_mipi_dbi.ko
AUTOLOAD:=$(call AutoProbe,drm_mipi_dbi)
endef
define KernelPackage/drm-mipi-dbi/description
MIPI Display Bus Interface (DBI) LCD controller support.
endef
$(eval $(call KernelPackage,drm-mipi-dbi))
define KernelPackage/drm-ttm
SUBMENU:=$(VIDEO_MENU)
TITLE:=GPU memory management subsystem
@ -415,20 +274,6 @@ endef
$(eval $(call KernelPackage,drm-ttm))
define KernelPackage/drm-ttm-helper
SUBMENU:=$(VIDEO_MENU)
TITLE:=Helpers for ttm-based gem objects
HIDDEN:=1
DEPENDS:=@DISPLAY_SUPPORT +kmod-drm-ttm
KCONFIG:=CONFIG_DRM_TTM_HELPER
FILES:=$(LINUX_DIR)/drivers/gpu/drm/drm_ttm_helper.ko
AUTOLOAD:=$(call AutoProbe,drm_ttm_helper)
endef
$(eval $(call KernelPackage,drm-ttm-helper))
define KernelPackage/drm-kms-helper
SUBMENU:=$(VIDEO_MENU)
TITLE:=CRTC helpers for KMS drivers
@ -447,37 +292,18 @@ endef
$(eval $(call KernelPackage,drm-kms-helper))
define KernelPackage/drm-suballoc-helper
SUBMENU:=$(VIDEO_MENU)
HIDDEN:=1
TITLE:=DRM suballocation helper
DEPENDS:=@DISPLAY_SUPPORT +kmod-drm
KCONFIG:=CONFIG_DRM_SUBALLOC_HELPER
FILES:=$(LINUX_DIR)/drivers/gpu/drm/drm_suballoc_helper.ko
AUTOLOAD:=$(call AutoProbe,drm_suballoc_helper)
endef
define KernelPackage/drm-suballoc-helper/description
DRM suballocation helper.
endef
$(eval $(call KernelPackage,drm-suballoc-helper))
define KernelPackage/drm-amdgpu
SUBMENU:=$(VIDEO_MENU)
TITLE:=AMDGPU DRM support
DEPENDS:=@TARGET_x86||TARGET_loongarch64 @DISPLAY_SUPPORT +kmod-backlight +kmod-drm-ttm \
+kmod-drm-ttm-helper +kmod-drm-kms-helper +kmod-i2c-algo-bit +amdgpu-firmware \
+kmod-drm-display-helper +kmod-drm-buddy +kmod-acpi-video \
+kmod-drm-exec +kmod-drm-suballoc-helper
DEPENDS:=@TARGET_x86 @DISPLAY_SUPPORT +kmod-backlight +kmod-drm-ttm \
+kmod-drm-kms-helper +kmod-i2c-algo-bit +amdgpu-firmware
KCONFIG:=CONFIG_DRM_AMDGPU \
CONFIG_DRM_AMDGPU_SI=y \
CONFIG_DRM_AMDGPU_CIK=y \
CONFIG_DRM_AMD_DC=y \
CONFIG_DEBUG_KERNEL_DC=n
FILES:=$(LINUX_DIR)/drivers/gpu/drm/amd/amdgpu/amdgpu.ko \
$(LINUX_DIR)/drivers/gpu/drm/scheduler/gpu-sched.ko \
$(LINUX_DIR)/drivers/gpu/drm/amd/amdxcp/amdxcp.ko
$(LINUX_DIR)/drivers/gpu/drm/scheduler/gpu-sched.ko
AUTOLOAD:=$(call AutoProbe,amdgpu)
endef
@ -485,63 +311,13 @@ define KernelPackage/drm-amdgpu/description
Direct Rendering Manager (DRM) support for AMDGPU Cards
endef
define KernelPackage/drm-amdgpu/loongarch64
KCONFIG+=CONFIG_DRM_AMDGPU_USERPTR=y \
CONFIG_DRM_AMD_DC=y \
CONFIG_DRM_AMD_DC_FP=y \
CONFIG_DRM_AMD_DC_SI=y
endef
$(eval $(call KernelPackage,drm-amdgpu))
define KernelPackage/drm-i915
SUBMENU:=$(VIDEO_MENU)
TITLE:=Intel i915 DRM support
DEPENDS:=@(TARGET_x86_64||TARGET_x86_generic||TARGET_x86_legacy) \
@DISPLAY_SUPPORT +kmod-backlight +kmod-drm-ttm \
+kmod-drm-ttm-helper +kmod-drm-kms-helper +kmod-i2c-algo-bit +i915-firmware-dmc \
+kmod-drm-display-helper +kmod-drm-buddy +kmod-acpi-video \
+kmod-drm-exec +kmod-drm-suballoc-helper
KCONFIG:=CONFIG_DRM_I915 \
CONFIG_DRM_I915_CAPTURE_ERROR=y \
CONFIG_DRM_I915_COMPRESS_ERROR=y \
CONFIG_DRM_I915_DEBUG=n \
CONFIG_DRM_I915_DEBUG_GUC=n \
CONFIG_DRM_I915_DEBUG_MMIO=n \
CONFIG_DRM_I915_DEBUG_RUNTIME_PM=n \
CONFIG_DRM_I915_DEBUG_VBLANK_EVADE=n \
CONFIG_DRM_I915_FENCE_TIMEOUT=10000 \
CONFIG_DRM_I915_FORCE_PROBE="" \
CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500 \
CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS=n \
CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000 \
CONFIG_DRM_I915_PREEMPT_TIMEOUT=640 \
CONFIG_DRM_I915_PREEMPT_TIMEOUT_COMPUTE=7500 \
CONFIG_DRM_I915_REQUEST_TIMEOUT=20000 \
CONFIG_DRM_I915_SELFTEST=n \
CONFIG_DRM_I915_STOP_TIMEOUT=100 \
CONFIG_DRM_I915_SW_FENCE_CHECK_DAG=n \
CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS=n \
CONFIG_DRM_I915_TIMESLICE_DURATION=1 \
CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250 \
CONFIG_DRM_I915_USERPTR=y \
CONFIG_DRM_I915_WERROR=n \
CONFIG_FB_INTEL=n
FILES:=$(LINUX_DIR)/drivers/gpu/drm/i915/i915.ko
AUTOLOAD:=$(call AutoProbe,i915)
endef
define KernelPackage/drm-i915/description
Direct Rendering Manager (DRM) support for Intel GPU
endef
$(eval $(call KernelPackage,drm-i915))
define KernelPackage/drm-imx
SUBMENU:=$(VIDEO_MENU)
TITLE:=Freescale i.MX DRM support
DEPENDS:=@TARGET_imx +kmod-drm-kms-helper
DEPENDS:=@TARGET_imx6 +kmod-drm-kms-helper
KCONFIG:=CONFIG_DRM_IMX \
CONFIG_DRM_FBDEV_EMULATION=y \
CONFIG_DRM_FBDEV_OVERALLOC=100 \
@ -557,8 +333,7 @@ define KernelPackage/drm-imx
CONFIG_DRM_IMX_LDB=n \
CONFIG_DRM_IMX_HDMI=n
FILES:= \
$(LINUX_DIR)/drivers/gpu/drm/imx/ipuv3/imxdrm.ko \
$(LINUX_DIR)/drivers/gpu/drm/drm_dma_helper.ko \
$(LINUX_DIR)/drivers/gpu/drm/imx/imxdrm.ko \
$(LINUX_DIR)/drivers/gpu/ipu-v3/imx-ipu-v3.ko
AUTOLOAD:=$(call AutoLoad,08,imxdrm imx-ipu-v3 imx-ipuv3-crtc)
endef
@ -572,14 +347,14 @@ $(eval $(call KernelPackage,drm-imx))
define KernelPackage/drm-imx-hdmi
SUBMENU:=$(VIDEO_MENU)
TITLE:=Freescale i.MX HDMI DRM support
DEPENDS:=+kmod-sound-core kmod-drm-imx kmod-drm-display-helper
DEPENDS:=+kmod-sound-core kmod-drm-imx
KCONFIG:=CONFIG_DRM_IMX_HDMI \
CONFIG_DRM_DW_HDMI_AHB_AUDIO \
CONFIG_DRM_DW_HDMI_I2S_AUDIO
FILES:= \
$(LINUX_DIR)/drivers/gpu/drm/bridge/synopsys/dw-hdmi.ko \
$(LINUX_DIR)/drivers/gpu/drm/bridge/synopsys/dw-hdmi-ahb-audio.ko \
$(LINUX_DIR)/drivers/gpu/drm/imx/ipuv3/dw_hdmi-imx.ko
$(LINUX_DIR)/drivers/gpu/drm/imx/dw_hdmi-imx.ko
AUTOLOAD:=$(call AutoLoad,08,dw-hdmi dw-hdmi-ahb-audio.ko dw_hdmi-imx)
endef
@ -592,7 +367,7 @@ $(eval $(call KernelPackage,drm-imx-hdmi))
define KernelPackage/drm-imx-ldb
SUBMENU:=$(VIDEO_MENU)
TITLE:=Freescale i.MX LVDS DRM support
DEPENDS:=@(TARGET_imx&&TARGET_imx_cortexa9) +kmod-backlight kmod-drm-imx
DEPENDS:=+kmod-backlight kmod-drm-imx
KCONFIG:=CONFIG_DRM_IMX_LDB \
CONFIG_DRM_PANEL_SIMPLE \
CONFIG_DRM_PANEL=y \
@ -603,8 +378,7 @@ define KernelPackage/drm-imx-ldb
CONFIG_DRM_PANEL_LVDS=n \
CONFIG_DRM_PANEL_S6E8AA0=n \
CONFIG_DRM_PANEL_SITRONIX_ST7789V=n
FILES:= \
$(LINUX_DIR)/drivers/gpu/drm/imx/ipuv3/imx-ldb.ko \
FILES:=$(LINUX_DIR)/drivers/gpu/drm/imx/imx-ldb.ko \
$(LINUX_DIR)/drivers/gpu/drm/panel/panel-simple.ko
AUTOLOAD:=$(call AutoLoad,08,imx-ldb)
endef
@ -618,7 +392,7 @@ $(eval $(call KernelPackage,drm-imx-ldb))
define KernelPackage/drm-lima
SUBMENU:=$(VIDEO_MENU)
TITLE:=Mali-4xx GPU support
DEPENDS:=@(TARGET_rockchip||TARGET_sunxi) +kmod-drm +kmod-drm-gem-shmem-helper
DEPENDS:=@(TARGET_rockchip||TARGET_sunxi) +kmod-drm
KCONFIG:= \
CONFIG_DRM_VGEM \
CONFIG_DRM_GEM_CMA_HELPER=y \
@ -639,7 +413,7 @@ $(eval $(call KernelPackage,drm-lima))
define KernelPackage/drm-panfrost
SUBMENU:=$(VIDEO_MENU)
TITLE:=DRM support for ARM Mali Midgard/Bifrost GPUs
DEPENDS:=@(TARGET_rockchip||TARGET_sunxi) +kmod-drm +kmod-drm-gem-shmem-helper
DEPENDS:=@(TARGET_rockchip||TARGET_sunxi) +kmod-drm
KCONFIG:=CONFIG_DRM_PANFROST
FILES:= \
$(LINUX_DIR)/drivers/gpu/drm/panfrost/panfrost.ko \
@ -654,30 +428,11 @@ endef
$(eval $(call KernelPackage,drm-panfrost))
define KernelPackage/drm-panel-mipi-dbi
SUBMENU:=$(VIDEO_MENU)
TITLE:=Generic MIPI DBI LCD panel
DEPENDS:=+kmod-drm-mipi-dbi +kmod-drm-dma-helper
KCONFIG:=CONFIG_DRM_PANEL_MIPI_DBI \
CONFIG_DRM_FBDEV_EMULATION=y \
CONFIG_DRM_FBDEV_OVERALLOC=100
FILES:= \
$(LINUX_DIR)/drivers/gpu/drm/tiny/panel-mipi-dbi.ko
AUTOLOAD:=$(call AutoProbe,panel-mipi-dbi)
endef
define KernelPackage/drm-panel-mipi-dbi/description
Generic driver for MIPI Alliance Display Bus Interface
endef
$(eval $(call KernelPackage,drm-panel-mipi-dbi))
define KernelPackage/drm-radeon
SUBMENU:=$(VIDEO_MENU)
TITLE:=Radeon DRM support
DEPENDS:=@TARGET_x86 @DISPLAY_SUPPORT +kmod-backlight +kmod-drm-kms-helper \
+kmod-drm-ttm +kmod-drm-ttm-helper +kmod-i2c-algo-bit +radeon-firmware \
+kmod-drm-display-helper +kmod-acpi-video +kmod-drm-suballoc-helper
+kmod-drm-ttm +kmod-i2c-algo-bit +radeon-firmware
KCONFIG:=CONFIG_DRM_RADEON
FILES:=$(LINUX_DIR)/drivers/gpu/drm/radeon/radeon.ko
AUTOLOAD:=$(call AutoProbe,radeon)
@ -696,15 +451,21 @@ $(eval $(call KernelPackage,drm-radeon))
define KernelPackage/video-core
SUBMENU:=$(VIDEO_MENU)
TITLE=Video4Linux support
DEPENDS:=+PACKAGE_kmod-i2c-core:kmod-i2c-core +kmod-media-controller
DEPENDS:=@PCI_SUPPORT||USB_SUPPORT +PACKAGE_kmod-i2c-core:kmod-i2c-core
KCONFIG:= \
CONFIG_MEDIA_SUPPORT \
CONFIG_MEDIA_CAMERA_SUPPORT=y \
CONFIG_VIDEO_DEV \
CONFIG_VIDEO_V4L1=y \
CONFIG_VIDEO_ALLOW_V4L1=y \
CONFIG_VIDEO_CAPTURE_DRIVERS=y \
CONFIG_V4L_USB_DRIVERS=y \
CONFIG_V4L_PCI_DRIVERS=y \
CONFIG_V4L_PLATFORM_DRIVERS=y \
CONFIG_MEDIA_PLATFORM_DRIVERS=y
CONFIG_V4L_ISA_PARPORT_DRIVERS=y
FILES:= \
$(LINUX_DIR)/drivers/media/$(V4L2_DIR)/videodev.ko
AUTOLOAD:=$(call AutoLoad,60,videodev)
AUTOLOAD:=$(call AutoLoad,60, videodev v4l2-common)
endef
define KernelPackage/video-core/description
@ -725,10 +486,6 @@ $(AddDepends/video)
CONFIG_MEDIA_CAMERA_SUPPORT=y
endef
define AddDepends/framegrabber
$(AddDepends/video)
KCONFIG+=CONFIG_MEDIA_PCI_SUPPORT=y
endef
define KernelPackage/video-videobuf2
TITLE:=videobuf2 lib
@ -736,7 +493,6 @@ define KernelPackage/video-videobuf2
KCONFIG:= \
CONFIG_VIDEOBUF2_CORE \
CONFIG_VIDEOBUF2_MEMOPS \
CONFIG_VIDEOBUF2_V4L2 \
CONFIG_VIDEOBUF2_VMALLOC
FILES:= \
$(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-common.ko \
@ -753,29 +509,10 @@ endef
$(eval $(call KernelPackage,video-videobuf2))
define KernelPackage/video-async
TITLE:=V4L2 ASYNC support
KCONFIG:=CONFIG_V4L2_ASYNC
FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_DIR)/v4l2-async.ko
$(call AddDepends/video)
AUTOLOAD:=$(call AutoProbe,v4l2-async)
endef
$(eval $(call KernelPackage,video-async))
define KernelPackage/video-fwnode
TITLE:=V4L2 FWNODE support
KCONFIG:=CONFIG_V4L2_FWNODE
FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_DIR)/v4l2-fwnode.ko
$(call AddDepends/video,+kmod-video-async)
AUTOLOAD:=$(call AutoProbe,v4l2-fwnode)
endef
$(eval $(call KernelPackage,video-fwnode))
define KernelPackage/video-cpia2
TITLE:=CPIA2 video driver
DEPENDS:=@USB_SUPPORT
DEPENDS:=@USB_SUPPORT +kmod-usb-core
KCONFIG:=CONFIG_VIDEO_CPIA2
FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/cpia2/cpia2.ko
AUTOLOAD:=$(call AutoProbe,cpia2)
@ -810,10 +547,9 @@ $(eval $(call KernelPackage,video-pwc))
define KernelPackage/video-uvc
TITLE:=USB Video Class (UVC) support
DEPENDS:=@USB_SUPPORT +kmod-usb-core +kmod-video-videobuf2 +kmod-input-core
KCONFIG:= CONFIG_USB_VIDEO_CLASS CONFIG_UVC_COMMON
FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/uvc/uvcvideo.ko \
$(LINUX_DIR)/drivers/media/common/uvc.ko
AUTOLOAD:=$(call AutoProbe,uvc uvcvideo)
KCONFIG:= CONFIG_USB_VIDEO_CLASS
FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/uvc/uvcvideo.ko
AUTOLOAD:=$(call AutoProbe,uvcvideo)
$(call AddDepends/camera)
endef
@ -983,21 +719,6 @@ endef
$(eval $(call KernelPackage,video-gspca-pac207))
define KernelPackage/video-gspca-pac7302
TITLE:=pac7302 webcam support
KCONFIG:=CONFIG_USB_GSPCA_PAC7302
FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_pac7302.ko
AUTOLOAD:=$(call AutoProbe,gspca_pac7302)
$(call AddDepends/camera-gspca)
endef
define KernelPackage/video-gspca-pac7302/description
The Pixart PAC7302 USB Camera Driver (pac7302) kernel module
endef
$(eval $(call KernelPackage,video-gspca-pac7302))
define KernelPackage/video-gspca-pac7311
TITLE:=pac7311 webcam support
KCONFIG:=CONFIG_USB_GSPCA_PAC7311
@ -1193,21 +914,6 @@ endef
$(eval $(call KernelPackage,video-gspca-sq905c))
define KernelPackage/video-gspca-sq930x
TITLE:=sq930x webcam support
KCONFIG:=CONFIG_USB_GSPCA_SQ930X
FILES:=$(LINUX_DIR)/drivers/media/$(V4L2_USB_DIR)/gspca/gspca_sq930x.ko
AUTOLOAD:=$(call AutoProbe,gspca_sq930x)
$(call AddDepends/camera-gspca)
endef
define KernelPackage/video-gspca-sq930x/description
The SQ Technologies SQ930X based USB Camera Driver (sq930x) kernel module
endef
$(eval $(call KernelPackage,video-gspca-sq930x))
define KernelPackage/video-gspca-stk014
TITLE:=stk014 webcam support
KCONFIG:=CONFIG_USB_GSPCA_STK014
@ -1371,114 +1077,3 @@ define KernelPackage/video-gspca-konica/description
endef
$(eval $(call KernelPackage,video-gspca-konica))
#
# Video Processing
#
define KernelPackage/video-mem2mem
SUBMENU:=$(VIDEO_MENU)
TITLE:=Memory 2 Memory device support
HIDDEN:=1
DEPENDS:=+kmod-video-videobuf2
KCONFIG:= \
CONFIG_V4L_MEM2MEM_DRIVERS=y \
CONFIG_V4L2_MEM2MEM_DEV
FILES:= $(LINUX_DIR)/drivers/media/$(V4L2_DIR)/v4l2-mem2mem.ko
AUTOLOAD:=$(call AutoLoad,66,v4l2-mem2mem)
$(call AddDepends/video)
endef
define KernelPackage/video-mem2mem/description
Memory 2 memory device support
endef
$(eval $(call KernelPackage,video-mem2mem))
define KernelPackage/video-dma-contig
SUBMENU:=$(VIDEO_MENU)
TITLE:=Video DMA support
HIDDEN:=1
DEPENDS:=+kmod-video-videobuf2
KCONFIG:=CONFIG_VIDEOBUF2_DMA_CONTIG
FILES:=$(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-dma-contig.ko
AUTOLOAD:=$(call AutoLoad,66,videobuf2-dma-contig)
$(call AddDepends/video)
endef
define KernelPackage/video-dma-contig/description
Video DMA support Contig
endef
$(eval $(call KernelPackage,video-dma-contig))
define KernelPackage/video-dma-sg
SUBMENU:=$(VIDEO_MENU)
TITLE:=Video DMA support
HIDDEN:=1
DEPENDS:=+kmod-video-videobuf2
KCONFIG:=CONFIG_VIDEOBUF2_DMA_SG
FILES:=$(LINUX_DIR)/drivers/media/common/videobuf2/videobuf2-dma-sg.ko
AUTOLOAD:=$(call AutoLoad,66,videobuf2-dma-sg)
$(call AddDepends/video)
endef
define KernelPackage/video-dma-sg/description
Video DMA support SG
endef
$(eval $(call KernelPackage,video-dma-sg))
define KernelPackage/video-coda
TITLE:=i.MX VPU support
DEPENDS:=@(TARGET_imx&&TARGET_imx_cortexa9) +kmod-video-mem2mem +kmod-video-dma-contig
KCONFIG:= \
CONFIG_VIDEO_CODA \
CONFIG_VIDEO_IMX_VDOA
FILES:= \
$(LINUX_DIR)/drivers/media/$(V4L2_MEM2MEM_DIR)/chips-media/coda-vpu.ko \
$(LINUX_DIR)/drivers/media/$(V4L2_MEM2MEM_DIR)/chips-media/imx-vdoa.ko \
$(LINUX_DIR)/drivers/media/$(V4L2_DIR)/v4l2-jpeg.ko
AUTOLOAD:=$(call AutoProbe,coda-vpu imx-vdoa v4l2-jpeg)
$(call AddDepends/video)
endef
define KernelPackage/video-coda/description
The i.MX Video Processing Unit (VPU) kernel module
endef
$(eval $(call KernelPackage,video-coda))
define KernelPackage/video-pxp
TITLE:=i.MX PXP support
DEPENDS:=@TARGET_imx +kmod-video-mem2mem +kmod-video-dma-contig
KCONFIG:= CONFIG_VIDEO_IMX_PXP
FILES:= $(LINUX_DIR)/drivers/media/platform/nxp/imx-pxp.ko
AUTOLOAD:=$(call AutoProbe,imx-pxp)
$(call AddDepends/video)
endef
define KernelPackage/video-pxp/description
The i.MX Pixel Pipeline (PXP) kernel module
This enables hardware accelerated support for image
Colour Conversion, Scaling and Rotation
endef
$(eval $(call KernelPackage,video-pxp))
define KernelPackage/video-tw686x
TITLE:=TW686x support
DEPENDS:=@PCIE_SUPPORT +kmod-video-dma-contig +kmod-video-dma-sg +kmod-sound-core
KCONFIG:= CONFIG_VIDEO_TW686X
FILES:= $(LINUX_DIR)/drivers/media/pci/tw686x/tw686x.ko
AUTOLOAD:=$(call AutoProbe,tw686x)
MODPARAMS.tw686x:=dma_mode=contig
$(call AddDepends/framegrabber)
endef
define KernelPackage/video-tw686x/description
The Intersil/Techwell TW686x kernel module
endef
$(eval $(call KernelPackage,video-tw686x))

View File

@ -20,10 +20,8 @@ define KernelPackage/kvm-x86
TITLE:=Kernel-based Virtual Machine (KVM) support
DEPENDS:=@TARGET_x86_generic||TARGET_x86_64 +kmod-irqbypass
KCONFIG:=\
CONFIG_KVM \
CONFIG_KVM_MMU_AUDIT=n \
CONFIG_KVM_SMM=y \
CONFIG_VIRTUALIZATION=y
CONFIG_VIRTUALIZATION=y \
CONFIG_KVM
FILES:= $(LINUX_DIR)/arch/$(LINUX_KARCH)/kvm/kvm.ko
AUTOLOAD:=$(call AutoProbe,kvm.ko)
endef
@ -73,69 +71,3 @@ define KernelPackage/kvm-amd/description
endef
$(eval $(call KernelPackage,kvm-amd))
define KernelPackage/vfio
SUBMENU:=Virtualization
TITLE:=VFIO Non-Privileged userspace driver framework
DEPENDS:=@TARGET_x86_64||TARGET_armsr_armv8
KCONFIG:= \
CONFIG_VFIO \
CONFIG_VFIO_NOIOMMU=n \
CONFIG_VFIO_MDEV=n
FILES:= \
$(LINUX_DIR)/drivers/vfio/vfio.ko \
$(LINUX_DIR)/drivers/vfio/vfio_iommu_type1.ko
AUTOLOAD:=$(call AutoProbe,vfio vfio_iommu_type1)
endef
define KernelPackage/vfio/description
VFIO provides a framework for secure userspace device drivers.
endef
$(eval $(call KernelPackage,vfio))
define KernelPackage/vfio-pci
SUBMENU:=Virtualization
TITLE:=Generic VFIO support for any PCI device
DEPENDS:=@TARGET_x86_64||TARGET_armsr_armv8 @PCI_SUPPORT +kmod-vfio +kmod-irqbypass
KCONFIG:= \
CONFIG_VFIO_PCI \
CONFIG_VFIO_PCI_IGD=n
FILES:= \
$(LINUX_DIR)/drivers/vfio/pci/vfio-pci-core.ko \
$(LINUX_DIR)/drivers/vfio/pci/vfio-pci.ko
AUTOLOAD:=$(call AutoProbe,vfio-pci)
endef
define KernelPackage/vfio-pci/description
Support for the generic PCI VFIO bus driver which can connect any PCI
device to the VFIO framework.
endef
$(eval $(call KernelPackage,vfio-pci))
define KernelPackage/vhost
SUBMENU:=Virtualization
TITLE:=Host kernel accelerator for virtio (base)
KCONFIG:=CONFIG_VHOST
FILES:=$(LINUX_DIR)/drivers/vhost/vhost.ko \
$(LINUX_DIR)/drivers/vhost/vhost_iotlb.ko
AUTOLOAD:=$(call AutoProbe,vhost vhost_iotlb)
endef
$(eval $(call KernelPackage,vhost))
define KernelPackage/vhost-net
SUBMENU:=Virtualization
TITLE:=Host kernel accelerator for virtio-net
DEPENDS:=+kmod-tun +kmod-vhost
KCONFIG:=CONFIG_VHOST_NET
FILES:=$(LINUX_DIR)/drivers/vhost/vhost_net.ko
AUTOLOAD:=$(call AutoProbe,vhost_net)
endef
$(eval $(call KernelPackage,vhost-net))

View File

@ -83,7 +83,7 @@ $(eval $(call KernelPackage,w1-master-ds2490))
define KernelPackage/w1-master-mxc
TITLE:=Freescale MXC 1-wire busmaster
DEPENDS:=@TARGET_imx
DEPENDS:=@TARGET_imx6
KCONFIG:=CONFIG_W1_MASTER_MXC
FILES:=$(W1_MASTERS_DIR)/mxc_w1.ko
AUTOLOAD:=$(call AutoProbe,mxc_w1)

View File

@ -0,0 +1,42 @@
#
# Copyright (C) 2006-2008 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
WIRELESS_MENU:=Wireless Drivers
define KernelPackage/net-prism54
SUBMENU:=$(WIRELESS_MENU)
TITLE:=Intersil Prism54 support
DEPENDS:=@PCI_SUPPORT +@DRIVER_WEXT_SUPPORT +prism54-firmware
KCONFIG:=CONFIG_PRISM54
FILES:= \
$(LINUX_DIR)/drivers/net/wireless/intersil/prism54/prism54.ko
AUTOLOAD:=$(call AutoProbe,prism54)
endef
define KernelPackage/net-prism54/description
Kernel modules for Intersil Prism54 support
endef
$(eval $(call KernelPackage,net-prism54))
define KernelPackage/net-rtl8192su
SUBMENU:=$(WIRELESS_MENU)
TITLE:=RTL8192SU support (staging)
DEPENDS:=@USB_SUPPORT +@DRIVER_WEXT_SUPPORT +kmod-usb-core +rtl8192su-firmware
KCONFIG:=\
CONFIG_STAGING=y \
CONFIG_R8712U
FILES:=$(LINUX_DIR)/drivers/staging/rtl8712/r8712u.ko
AUTOLOAD:=$(call AutoProbe,r8712u)
endef
define KernelPackage/net-rtl8192su/description
Kernel modules for RealTek RTL8712 and RTL81XXSU fullmac support.
endef
$(eval $(call KernelPackage,net-rtl8192su))

View File

@ -0,0 +1,92 @@
#
# Copyright (C) 2019
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=datconf
PKG_REVISION:=6bb733f7
PKG_SOURCE:=$(PKG_NAME)-$(PKG_REVISION).tar.bz2
PKG_RELEASE:=1
PKG_USE_NINJA:=0
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
PKG_MAINTAINER:=Weijie Gao <weijie.gao@mediatek.com>
include $(INCLUDE_DIR)/package.mk
include $(INCLUDE_DIR)/cmake.mk
include $(INCLUDE_DIR)/kernel.mk
define Package/libkvcutil
SECTION:=libs
CATEGORY:=Libraries
TITLE:=C library for Key-value based config files
endef
define Package/kvcedit
SECTION:=util
CATEGORY:=Utilities
DEPENDS:=+libkvcutil
TITLE:=Utility for editing key-value based config files
endef
define Package/datconf
SECTION:=MTK Properties
CATEGORY:=MTK Properties
SUBMENU:=Applications
DEPENDS:=+kvcedit
TITLE:=Utility for editing dat files used by MediaTek Wi-Fi drivers
endef
define Package/datconf-lua
SECTION:=MTK Properties
CATEGORY:=MTK Properties
SUBMENU:=Applications
DEPENDS:=+datconf +liblua
TITLE:=Lua plugin for datconf
endef
TARGET_CFLAGS += -I$(STAGING_DIR)/usr/include
TARGET_LDFLAGS += -L$(STAGING_DIR)/usr/lib
CMAKE_OPTIONS = \
-DLUAPATH=/usr/lib/lua
define Package/libkvcutil/install
$(INSTALL_DIR) $(1)/lib
$(CP) $(PKG_BUILD_DIR)/kvcutil/libkvcutil.so* $(1)/lib/
endef
define Package/kvcedit/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/kvcutil/kvcedit $(1)/usr/bin/
endef
define Package/datconf/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/datconf/datconf $(1)/usr/bin/
endef
define Package/datconf-lua/install
$(INSTALL_DIR) $(1)/usr/lib/lua
$(CP) $(PKG_BUILD_DIR)/datconf/lua/datconf.so $(1)/usr/lib/lua/
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_BUILD_DIR)/kvcutil/libkvcutil.h $(1)/usr/include
$(CP) $(PKG_BUILD_DIR)/datconf/libdatconf.h $(1)/usr/include
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_BUILD_DIR)/kvcutil/libkvcutil.so* $(1)/usr/lib
-$(CP) $(PKG_BUILD_DIR)/datconf/libdatconf.a $(1)/usr/lib
endef
$(eval $(call BuildPackage,libkvcutil))
$(eval $(call BuildPackage,kvcedit))
$(eval $(call BuildPackage,datconf))
$(eval $(call BuildPackage,datconf-lua))

View File

@ -0,0 +1,11 @@
include $(TOPDIR)/rules.mk
LUCI_TITLE:=LuCI support for Easy QoS
LUCI_DEPENDS:=+tc +kmod-sched-core +kmod-ifb @!PACKAGE_luci-app-eqos
PKG_MAINTAINER:=Jianhui Zhao <jianhuizhao329@gmail.com>
PKG_NAME:=luci-app-eqos-mtk
include $(TOPDIR)/feeds/luci/luci.mk
# call BuildPackage - OpenWrt buildroot signature

View File

@ -0,0 +1,96 @@
'use strict';
'require form';
'require network';
'require uci';
'require view';
return view.extend({
load: function() {
return Promise.all([
uci.load('eqos'),
network.getHostHints()
]);
},
render: function(data) {
var m, s, o;
m = new form.Map('eqos', _('EQoS'),
_('Network speed control service.(Compatiable with Mediatek HNAT)'));
s = m.section(form.NamedSection, 'config', 'eqos');
o = s.option(form.Flag, 'enabled', _('Enable'));
o.default = o.disabled;
o.rmempty = false;
o = s.option(form.Value, 'interface', _('Load balance'),
_('Please set a different gateway hop for each network interface before filling in the network interface name. Fill in PPPOE-WAN for dialing and eth1 for DHCP. Leaving it blank to disable it.Please use commas as interface name separators. Example: pppoe-wan,eth1'));
o.rmempty = true;
o = s.option(form.Flag, 'ipv6enabled', _('IPV6Enable'));
o.default = o.disabled;
o.rmempty = false;
o = s.option(form.Flag, 'smarthqos', _('SMART_HWQOS'),
_('Enabling fair queue will automatically perform hardware offloading for every local host'));
o.default = o.disabled;
o.rmempty = false;
o = s.option(form.Value, 'download', _('Download speed (Mbit/s)'),
_('Total download bandwidth.'));
o.datatype = 'and(uinteger,min(1))';
o.rmempty = false;
o = s.option(form.Value, 'upload', _('Upload speed (Mbit/s)'),
_('Total upload bandwidth.'));
o.datatype = 'and(uinteger,min(1))';
o.rmempty = false;
s = m.section(form.TableSection, 'device', _('Speed limit and route choose based on IP address(Auto use hardware QOS)'));
s.addremove = true;
s.anonymous = true;
s.sortable = true;
o = s.option(form.Flag, 'enabled', _('Enable'));
o.default = o.enabled;
o = s.option(form.Value, 'ip', _('IPV4 address'));
o.datatype = 'ip4addr';
for (var i of Object.entries(data[1]?.hosts))
for (var v in i[1].ipaddrs)
if (i[1].ipaddrs[v]) {
var ip_addr = i[1].ipaddrs[v], ip_host = i[1].name;
o.value(ip_addr, ip_host ? String.format('%s (%s)', ip_host, ip_addr) : ip_addr)
}
o.rmempty = true;
var hosts = data[1]?.hosts;
o = s.option(form.Value, 'mac', _('IPV6 host'));
o.datatype = 'macaddr';
Object.keys(hosts).forEach(function(mac) {
var hint = hosts[mac].name || L.toArray(hosts[mac].ipaddrs || hosts[mac].ipv4)[0];
o.value(mac, hint ? '%s (%s)'.format(mac, hint) : mac);
});
o.rmempty = true;
o = s.option(form.Value, 'download', _('Download speed (kbit/s)'));
o.datatype = 'and(uinteger,min(0))';
o.rmempty = false;
o = s.option(form.Value, 'upload', _('Upload speed (kbit/s)'));
o.datatype = 'and(uinteger,min(0))';
o.rmempty = false;
o = s.option(form.Value, 'comment', _('Comment'));
o.rmempty = true;
o = s.option(form.Value, 'interfacename', _('InterfaceName(start from 0)'));
o.datatype = 'and(uinteger,min(0))';
o.rmempty = true;
return m.render();
}
});

View File

@ -0,0 +1,92 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
#: package/mtk/applications/luci-app-eqos-mtk/htdocs/luci-static/resources/view/eqos.js:87
msgid "Comment"
msgstr ""
#: package/mtk/applications/luci-app-eqos-mtk/htdocs/luci-static/resources/view/eqos.js:40
msgid "Download speed (Mbit/s)"
msgstr ""
#: package/mtk/applications/luci-app-eqos-mtk/htdocs/luci-static/resources/view/eqos.js:79
msgid "Download speed (kbit/s)"
msgstr ""
#: package/mtk/applications/luci-app-eqos-mtk/htdocs/luci-static/resources/view/eqos.js:18
#: package/mtk/applications/luci-app-eqos-mtk/root/usr/share/luci/menu.d/luci-app-eqos.json:3
msgid "EQoS"
msgstr ""
#: package/mtk/applications/luci-app-eqos-mtk/htdocs/luci-static/resources/view/eqos.js:23
#: package/mtk/applications/luci-app-eqos-mtk/htdocs/luci-static/resources/view/eqos.js:57
msgid "Enable"
msgstr ""
#: package/mtk/applications/luci-app-eqos-mtk/htdocs/luci-static/resources/view/eqos.js:36
msgid ""
"Enabling fair queue will automatically perform hardware offloading "
"forwarding for every local host "
msgstr ""
#: package/mtk/applications/luci-app-eqos-mtk/root/usr/share/rpcd/acl.d/luci-app-eqos.json:3
msgid "Grant UCI access for luci-app-eqos"
msgstr ""
#: package/mtk/applications/luci-app-eqos-mtk/htdocs/luci-static/resources/view/eqos.js:60
msgid "IPV4 address"
msgstr ""
#: package/mtk/applications/luci-app-eqos-mtk/htdocs/luci-static/resources/view/eqos.js:71
msgid "IPV6 host"
msgstr ""
#: package/mtk/applications/luci-app-eqos-mtk/htdocs/luci-static/resources/view/eqos.js:31
msgid "IPV6Enable"
msgstr ""
#: package/mtk/applications/luci-app-eqos-mtk/htdocs/luci-static/resources/view/eqos.js:91
msgid "InterfaceName(start from 0)"
msgstr ""
#: package/mtk/applications/luci-app-eqos-mtk/htdocs/luci-static/resources/view/eqos.js:27
msgid "Load balance"
msgstr ""
#: package/mtk/applications/luci-app-eqos-mtk/htdocs/luci-static/resources/view/eqos.js:19
msgid "Network speed control service.(Compatiable with Mediatek HNAT)"
msgstr ""
#: package/mtk/applications/luci-app-eqos-mtk/htdocs/luci-static/resources/view/eqos.js:28
msgid ""
"Please set a different gateway hop for each network interface before filling "
"in the network interface name. Fill in PPPOE-WAN for dialing and eth1 for "
"DHCP. Leaving it blank to disable it.Please use commas as interface name "
"separators. Example: pppoe-wan,eth1"
msgstr ""
#: package/mtk/applications/luci-app-eqos-mtk/htdocs/luci-static/resources/view/eqos.js:35
msgid "SMART_HWQOS"
msgstr ""
#: package/mtk/applications/luci-app-eqos-mtk/htdocs/luci-static/resources/view/eqos.js:52
msgid ""
"Speed limit and route choose based on IP address(using unique comment less "
"than 32 will enable hardware QOS)"
msgstr ""
#: package/mtk/applications/luci-app-eqos-mtk/htdocs/luci-static/resources/view/eqos.js:41
msgid "Total download bandwidth."
msgstr ""
#: package/mtk/applications/luci-app-eqos-mtk/htdocs/luci-static/resources/view/eqos.js:46
msgid "Total upload bandwidth."
msgstr ""
#: package/mtk/applications/luci-app-eqos-mtk/htdocs/luci-static/resources/view/eqos.js:45
msgid "Upload speed (Mbit/s)"
msgstr ""
#: package/mtk/applications/luci-app-eqos-mtk/htdocs/luci-static/resources/view/eqos.js:83
msgid "Upload speed (kbit/s)"
msgstr ""

View File

@ -0,0 +1,91 @@
msgid ""
msgstr ""
"Project-Id-Version: LuCi Chinese Translation\n"
"Report-Msgid-Bugs-To: \n"
"Language: zh_Hans\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Pootle 2.0.6\n"
#: applications/luci-app-eqos/htdocs/luci-static/resources/view/eqos.js:64
msgid "Comment"
msgstr "编号"
#: applications/luci-app-eqos/htdocs/luci-static/resources/view/eqos.js:28
msgid "Download speed (Mbit/s)"
msgstr "下载速度 (Mbit/s)"
#: applications/luci-app-eqos/htdocs/luci-static/resources/view/eqos.js:18
#: applications/luci-app-eqos/root/usr/share/luci/menu.d/luci-app-eqos.json:3
msgid "EQoS"
msgstr "网速控制"
#: applications/luci-app-eqos/htdocs/luci-static/resources/view/eqos.js:24
#: applications/luci-app-eqos/htdocs/luci-static/resources/view/eqos.js:43
msgid "Enable"
msgstr "启用"
msgid "SMART_HWQOS"
msgstr "智能硬件QOS"
msgid "Enabling fair queue will automatically perform hardware offloading for every local host"
msgstr "启用硬件公平队列,局域网的每台设备将拥有相同的转发优先级,保证设备最低网速(仅对dhcp获得ip地址的设备生效,不兼容固定限速)"
msgid "IPV6Enable"
msgstr "同时作用IPV6"
msgid "Load balance"
msgstr "负载均衡"
msgid "Please set a different gateway hop for each network interface before filling in the network interface name. Fill in PPPOE-WAN for dialing and eth1 for DHCP. Leaving it blank to disable it.Please use commas as interface name separators. Example: pppoe-wan,eth1"
msgstr "请先为每个网络接口设置不同的网关跃点后再填写网络接口名。拨号填写pppoe-wanDHCP则填写eth1。留空则不启用.请使用逗号作为接口名分隔符.例子pppoe-wan, eth1"
#: applications/luci-app-eqos/root/usr/share/rpcd/acl.d/luci-app-eqos.json:3
msgid "Grant UCI access for luci-app-eqos"
msgstr "授予 luci-app-eqos 访问 UCI 配置的权限"
#: applications/luci-app-eqos/htdocs/luci-static/resources/view/eqos.js:46
msgid "IPV4 address"
msgstr "IPV4 地址"
msgid "IPV6 host"
msgstr "IPV6 主机"
msgid "Total download bandwidth."
msgstr "总下载带宽。"
msgid "InterfaceName(start from 0)"
msgstr "分流接口序号(从0开始,留空则负载均衡)"
#: applications/luci-app-eqos/htdocs/luci-static/resources/view/eqos.js:19
msgid "Network speed control service.(Compatiable with Mediatek HNAT)"
msgstr "网速控制服务(未设置限速主机可正常使用硬件加速)。"
#: applications/luci-app-eqos/htdocs/luci-static/resources/view/eqos.js:38
msgid "Speed limit and route choose based on IP address(Auto use hardware QOS)"
msgstr "基于 IP 分流限速(自动启用硬件QOS.速度设置为0则取消限速)"
#: applications/luci-app-eqos/htdocs/luci-static/resources/view/eqos.js:29
msgid "Total download bandwidth."
msgstr "总下载带宽。"
#: applications/luci-app-eqos/htdocs/luci-static/resources/view/eqos.js:34
msgid "Total upload bandwidth."
msgstr "总上传带宽。"
#: applications/luci-app-eqos/htdocs/luci-static/resources/view/eqos.js:33
msgid "Upload speed (Mbit/s)"
msgstr "上传速度 (Mbit/s)"
#: applications/luci-app-eqos/htdocs/luci-static/resources/view/eqos.js:56
msgid "Download speed (kbit/s)"
msgstr "下载速度 (kbit/s)"
#: applications/luci-app-eqos/htdocs/luci-static/resources/view/eqos.js:60
msgid "Upload speed (kbit/s)"
msgstr "上传速度 (kbit/s)"

View File

@ -0,0 +1,12 @@
# The bandwidth unit is Mbit/s
config eqos 'config'
option enabled 0
option download 100
option upload 20
# Limiting the bandwidth of a single Device
#config device
# option ip "192.168.1.100"
# option download 10
# option upload 5
# option comment 1

View File

@ -0,0 +1,3 @@
#!/bin/sh
/etc/init.d/eqos start

View File

@ -0,0 +1,103 @@
#!/bin/sh
ACTION=$2
MARK_FILE="/tmp/dhcp_mac_mark_mapping" # 存储MAC和MARK映射关系的文件
LEASE_FILE="/tmp/dhcp.leases" # DHCP leases 文件
MAX_MARK=31 # 限制mark值在1到31之间
# 定义哈希函数将MAC地址转化为一个数值限制在1到31之间
hash_mac() {
MAC=$1
# 将MAC地址中的冒号去掉转化为十六进制数值取模限制在1到31之间
MAC_HEX=$(echo "$MAC" | sed 's/://g')
echo $(( 0x$MAC_HEX % MAX_MARK + 1 ))
}
# 从文件中加载当前的MAC-MARK映射
load_mapping() {
if [ ! -f "$MARK_FILE" ]; then
touch "$MARK_FILE"
fi
cat "$MARK_FILE"
}
# 检查mark是否被占用
is_mark_in_use() {
MARK=$1
grep -q " $MARK$" "$MARK_FILE"
return $?
}
# 分配一个可用的mark
allocate_mark() {
MAC=$1
MARK=$(hash_mac $MAC)
retries=0 # 记录重试次数
max_retries=$((MAX_MARK - 1)) # 允许的最大重试次数
# 循环检查mark是否被占用直到找到可用的mark
while is_mark_in_use $MARK; do
MARK=$((MARK + 1))
retries=$((retries + 1))
if [ "$MARK" -gt $MAX_MARK ]; then
MARK=1
fi
# 如果重试次数达到最大值退出循环表示无法找到可用的MARK
if [ "$retries" -ge "$max_retries" ]; then
MARK=1
break
fi
done
# 返回可用的MARK
echo $MARK
}
# 保存MAC和MARK的映射
save_mapping() {
MAC=$1
MARK=$2
echo "$MAC $MARK" >> "$MARK_FILE"
}
# 删除MAC对应的MARK映射
delete_mapping() {
MAC=$1
sed -i "/^$MAC /d" "$MARK_FILE"
}
# 处理现有的DHCP记录确保已有设备保留其MARK
process_existing_leases() {
while read -r line; do
IP=$(echo "$line" | awk '{print $3}')
MAC=$(echo "$line" | awk '{print $2}')
EXISTING_MARK=$(grep "^$MAC " "$MARK_FILE" | awk '{print $2}')
if [ -z "$EXISTING_MARK" ]; then
# 如果没有记录分配新的MARK
MARK_VALUE=$(allocate_mark $MAC)
save_mapping $MAC $MARK_VALUE
else
# 使用现有的MARK
MARK_VALUE=$EXISTING_MARK
fi
idpair=$((MARK_VALUE+32))
# 添加iptables规则基于MAC和IP地址给这个设备打上MARK
iptables -t mangle -D eqos -s $IP -j DSCP --set-dscp ${MARK_VALUE}
iptables -t mangle -D eqos -d $IP -j DSCP --set-dscp ${idpair}
ip6tables -t mangle -D eqos -m mac --mac-source $MAC -j MARK --set-mark ${MARK_VALUE}
ebtables -t nat -D eqos -p ipv6 -d $MAC -j mark --mark-set ${idpair}
iptables -t mangle -A eqos -s $IP -j DSCP --set-dscp ${MARK_VALUE}
iptables -t mangle -A eqos -d $IP -j DSCP --set-dscp ${idpair}
ip6tables -t mangle -A eqos -m mac --mac-source $MAC -j MARK --set-mark ${MARK_VALUE}
ebtables -t nat -A eqos -A ipv6 -d $MAC -j mark --mark-set ${idpair}
done < "$LEASE_FILE"
}
if [ "$ACTION" = "init" ]; then
rm /tmp/dhcp_mac_mark_mapping
load_mapping
iptables -t mangle -F eqos
ip6tables -t mangle -F eqos
ebtables -t nat -F eqos
process_existing_leases
fi

View File

@ -0,0 +1,102 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2006 OpenWrt.org
START=50
USE_PROCD=1
parse_device() {
local cfg="$1"
local enabled
config_get_bool enabled "$cfg" "enabled" "1"
[ "$enabled" -eq "1" ] || return 1
local ip download upload comment mac interfacename
config_get ip "$cfg" ip
config_get download "$cfg" "download"
config_get upload "$cfg" "upload"
config_get comment "$cfg" "comment"
config_get mac "$cfg" "mac"
config_get interfacename "$cfg" "interfacename"
eqos add "$ip" "$download" "$upload" "$comment" "$mac" "$interfacename"
}
start_service() {
config_load "eqos"
local enabled
config_get_bool enabled "config" "enabled" "0"
[ "$enabled" -eq "1" ] || return 1
local download upload comment
config_get download "config" "download"
config_get upload "config" "upload"
config_get comment "config" "comment"
config_get smarthqos "config" "smarthqos"
config_get interface "config" "interface"
eqos start "$download" "$upload" "$comment"
local ipv6enabled
config_get_bool ipv6enabled "config" "ipv6enabled" "0"
ip6tables -t mangle -N eqos
ip6tables -t mangle -F eqos
ebtables -t nat -N eqos
ebtables -t nat -F eqos
if [ "$ipv6enabled" -eq "1" ]; then
ebtables -t nat -D POSTROUTING -j eqos -p ipv6
ebtables -t nat -A POSTROUTING -j eqos -p ipv6
ip6tables -t mangle -D FORWARD -j eqos
ip6tables -t mangle -A FORWARD -j eqos
fi
if [ "$smarthqos" -eq "1" ]; then
for i in $(seq 1 31); do
if [ "$upload" -ne "0" ]; then
echo 2 1 $(($upload*225)) 1 $(($upload*1000)) 4 1 > /sys/kernel/debug/hnat/qdma_txq$i
fi
done
for i in $(seq 33 63); do
if [ "$download" -ne "0" ]; then
echo 3 1 $(($download*200)) 1 $(($download*1000)) 4 1 > /sys/kernel/debug/hnat/qdma_txq$i
fi
done
fi
iptables -t mangle -F PREROUTING
if [ $interface ]; then
bash /usr/sbin/loadbalance "$interface"
fi
config_foreach parse_device "device"
if [ "$smarthqos" -eq "1" ]; then
rm /etc/hotplug.d/dhcp/99-eqos
cat << 'EOF' > /etc/hotplug.d/dhcp/99-eqos
#!/bin/sh
# 只有在新增 DHCP 租约时才执行操作
if [ "$ACTION" = "add" ]; then
# 执行指定的命令
/etc/init.d/dhcp_mark.sh eqos init
fi
EOF
chmod +x /etc/hotplug.d/dhcp/99-eqos
/etc/init.d/dnsmasq restart
/etc/init.d/dhcp_mark.sh eqos init
fi
}
stop_service() {
eqos stop
iptables -t mangle -F PREROUTING
rm /etc/hotplug.d/dhcp/99-eqos
}
reload_service() {
stop
start
}
service_triggers() {
procd_add_reload_trigger "eqos"
}

View File

@ -0,0 +1,9 @@
#!/bin/sh
uci -q batch <<-EOF >/dev/null
delete ucitrack.@eqos[-1]
add ucitrack eqos
EOF
rm -f /tmp/luci-indexcache
exit 0

View File

@ -0,0 +1,187 @@
#!/bin/sh
dev=br-lan
hash_file="/tmp/hash_records.txt"
generate_index() {
local input="$1"
local hash_value=$(echo -n "$input" | md5sum | cut -d' ' -f1)
local decimal_value=$((0x${hash_value:0:8}))
local index=$((decimal_value % 31 + 1))
echo $index
}
find_available_index() {
local base_index=$(generate_index "$1")
local index=$base_index
while true; do
if grep -q "^$index$" "$hash_file"; then
index=$((index % 31 + 1))
if [[ $index -eq $base_index ]]; then
echo "All slots are full. Returning 0."
return 0
fi
else
echo $index >> "$hash_file"
echo $index
return 0
fi
done
}
stop_qos() {
tc qdisc del dev $dev root 2>/dev/null
tc qdisc del dev $dev ingress 2>/dev/null
tc qdisc del dev ${dev}-ifb root 2>/dev/null
ip link del dev ${dev}-ifb 2>/dev/null
}
start_qos() {
local dl=$1
local up=$2
rm /tmp/hash_records.txt
touch "$hash_file"
tc qdisc add dev $dev root handle 1: htb
tc class add dev $dev parent 1: classid 1:1 htb rate ${dl}mbit
ip link add dev ${dev}-ifb name ${dev}-ifb type ifb
ip link set dev ${dev}-ifb up
tc qdisc add dev ${dev}-ifb root handle 1: htb
tc class add dev ${dev}-ifb parent 1: classid 1:1 htb rate ${up}mbit
tc qdisc add dev $dev ingress
tc filter add dev $dev parent ffff: protocol ip u32 match u32 0 0 flowid 1:1 action mirred egress redirect dev ${dev}-ifb
}
iptables_stop() {
iptables -t mangle -D FORWARD -j eqos
ip6tables -t mangle -D FORWARD -j eqos
ebtables -t nat -D POSTROUTING -j eqos -p ipv6
echo 0 > /sys/kernel/debug/hnat/qos_toggle
sed -i '/\/etc\/init.d\/eqos start/d' /etc/firewall.user
iptables -t mangle -D FORWARD -i br-lan -j DSCP --set-dscp 0
iptables -t mangle -D FORWARD -o br-lan -j DSCP --set-dscp 0
ip6tables -t mangle -D FORWARD -i br-lan -j DSCP --set-dscp 0
ip6tables -t mangle -D FORWARD -o br-lan -j DSCP --set-dscp 0
echo "10 0" > /sys/kernel/debug/hnat/hnat_setting
echo "11 30" >/sys/kernel/debug/hnat/hnat_setting
for i in $(seq 0 31); do
echo 0 0 0 0 0 4 4 > /sys/kernel/debug/hnat/qdma_txq$i
done
for i in $(seq 32 63); do
echo 1 0 0 0 0 4 4 > /sys/kernel/debug/hnat/qdma_txq$i
done
echo 0 wrr 10000000 > /sys/kernel/debug/hnat/qdma_sch0
echo 0 wrr 10000000 > /sys/kernel/debug/hnat/qdma_sch1
echo 0 wrr 10000000 > /sys/kernel/debug/hnat/qdma_sch2
echo 0 wrr 10000000 > /sys/kernel/debug/hnat/qdma_sch3
}
iptables_start_prepare() {
iptables -t mangle -D FORWARD -i br-lan -j DSCP --set-dscp 0
iptables -t mangle -D FORWARD -o br-lan -j DSCP --set-dscp 0
iptables -t mangle -A FORWARD -i br-lan -j DSCP --set-dscp 0
iptables -t mangle -A FORWARD -o br-lan -j DSCP --set-dscp 0
ip6tables -t mangle -D FORWARD -i br-lan -j DSCP --set-dscp 0
ip6tables -t mangle -D FORWARD -o br-lan -j DSCP --set-dscp 0
ip6tables -t mangle -A FORWARD -i br-lan -j DSCP --set-dscp 0
ip6tables -t mangle -A FORWARD -o br-lan -j DSCP --set-dscp 0
}
iptables_start_inital() {
iptables -t mangle -N eqos
iptables -t mangle -F eqos
iptables -t mangle -D FORWARD -j eqos
iptables -t mangle -A FORWARD -j eqos
echo 1 > /sys/kernel/debug/hnat/qos_toggle
echo 0 wrr 10000000 > /sys/kernel/debug/hnat/qdma_sch0
echo 0 wrr 10000000 > /sys/kernel/debug/hnat/qdma_sch1
echo 0 0 0 0 0 0 0 > /sys/kernel/debug/hnat/qdma_txq0
echo 1 0 0 0 0 0 0 > /sys/kernel/debug/hnat/qdma_txq32
echo "11 5" >/sys/kernel/debug/hnat/hnat_setting
uci -q set "turboacc.config.fastpath_mh_eth_hnat_bind_rate"="5"
uci -q commit "turboacc"
sed -i '/\/etc\/init.d\/eqos start/d' /etc/firewall.user
echo "/etc/init.d/eqos start" >> /etc/firewall.user
echo "10 1" > /sys/kernel/debug/hnat/hnat_setting
}
case "$1" in
"stop")
stop_qos
iptables_stop
;;
"start")
stop_qos
iptables_start_prepare
start_qos $2 $3
iptables_start_inital
echo 1 wrr $(($3*1000)) > /sys/kernel/debug/hnat/qdma_sch2
echo 1 wrr $(($2*1000)) > /sys/kernel/debug/hnat/qdma_sch3
;;
"add")
ip="$2"
dl="$3"
up="$4"
macaddr="$6"
cnt=$(tc class show dev $dev | wc -l)
interface="$7"
if [ -n "$ip" ]; then
id="$(find_available_index "$ip")"
elif [ -n "$macaddr" ]; then
id="$(find_available_index "$macaddr")"
fi
idpair=$((id+32))
if [ $id -lt 32 ]; then
iptables -t mangle -D eqos -s $ip -j DSCP --set-dscp ${id}
iptables -t mangle -D eqos -d $ip -j DSCP --set-dscp ${idpair}
ip6tables -t mangle -D eqos -m mac --mac-source $macaddr -j MARK --set-mark ${id}
ebtables -t nat -D eqos -p ipv6 -d $macaddr -j mark --mark-set ${idpair}
if [ $up -ne 0 ]; then
echo 2 0 0 1 ${up} 4 1 > /sys/kernel/debug/hnat/qdma_txq${id}
iptables -t mangle -A eqos -s $ip -j DSCP --set-dscp ${id}
ip6tables -t mangle -A eqos -m mac --mac-source $macaddr -j MARK --set-mark ${id}
fi
if [ $dl -ne 0 ]; then
echo 3 0 0 1 ${dl} 4 1 > /sys/kernel/debug/hnat/qdma_txq${idpair}
iptables -t mangle -A eqos -d $ip -j DSCP --set-dscp ${idpair}
ebtables -t nat -A eqos -p ipv6 -d $macaddr -j mark --mark-set ${idpair}
fi
else
iptables -t mangle -D eqos -s $ip -j MARK --set-mark 0x99
iptables -t mangle -D eqos -d $ip -j MARK --set-mark 0x99
if [ $up -ne 0 ]; then
iptables -t mangle -A eqos -s $ip -j MARK --set-mark 0x99
fi
if [ $dl -ne 0 ]; then
iptables -t mangle -A eqos -d $ip -j MARK --set-mark 0x99
fi
fi
if [ $id -gt 31 ]; then
tc class add dev $dev parent 1:1 classid 1:1$cnt htb rate ${dl}kbit ceil ${dl}kbit
tc filter add dev $dev parent 1:0 protocol ip u32 match ip dst $ip flowid 1:1$cnt
tc class add dev ${dev}-ifb parent 1:1 classid 1:1$cnt htb rate ${up}kbit ceil ${up}kbit
tc filter add dev ${dev}-ifb parent 1:0 protocol ip u32 match ip src $ip flowid 1:1$cnt
fi
if [ $interface ]; then
iptables -t mangle -D PREROUTING -s $ip -m conntrack --ctstate NEW -j MARK --set-mark 2"$interface"
iptables -t mangle -A PREROUTING -s $ip -m conntrack --ctstate NEW -j MARK --set-mark 2"$interface"
iptables -t mangle -D PREROUTING -i br-lan -m conntrack --ctstate ESTABLISHED,RELATED -j CONNMARK --restore-mark
iptables -t mangle -A PREROUTING -i br-lan -m conntrack --ctstate ESTABLISHED,RELATED -j CONNMARK --restore-mark
fi
;;
*)
echo "Usage: $0 <command> [options]"
echo "Commands:"
echo " start dl_rate up_rate #Total bandwidth (Mbit/s)"
echo " stop"
echo " add ip dl_rate up_rate #Limiting the bandwidth of a single IP (kbit/s)"
echo "Example:"
echo " $0 start 30 20 # Total bandwidth: down 30Mbit/s up 20Mbit/s"
echo " $0 add 192.168.22.12 10 2 # down 10kbit/s up 2kbit/s"
;;
esac

View File

@ -0,0 +1,45 @@
interface=$1
array=(${interface//,/ })
PPP_NUM=0
for var in ${array[@]}
do
let PPP_NUM=PPP_NUM+1
done
i=0
for var in ${array[@]}
do
ipaddr=$(ip route show |grep default | grep $var | awk '{print $3 }')
iptables -t mangle -D PREROUTING -i br-lan -m conntrack --ctstate NEW -m statistic --mode nth --every $PPP_NUM --packet $i -j CONNMARK --set-mark 2"$i"
iptables -t mangle -D PREROUTING -i br-lan -m connmark --mark 2"$i" -j MARK --set-mark 2"$i"
iptables -t mangle -A PREROUTING -i br-lan -m conntrack --ctstate NEW -m statistic --mode nth --every $PPP_NUM --packet $i -j CONNMARK --set-mark 2"$i"
iptables -t mangle -A PREROUTING -i br-lan -m connmark --mark 2"$i" -j MARK --set-mark 2"$i"
ip rule del table 2"$i"0
ip rule add fwmark 2"$i" table 2"$i"0
ip route del default table 2"$i"0
ip route add default via $ipaddr dev $var table 2"$i"0
let i=i+1
done
i=0
for var in ${array[@]}
do
ipaddr=$(ip route show |grep default | grep $var | awk '{print $3 }')
iptables -t mangle -D PREROUTING -m conntrack --ctstate NEW -d $ipaddr/24 -j MARK --set-mark 2"$i"
iptables -t mangle -A PREROUTING -m conntrack --ctstate NEW -d $ipaddr/24 -j MARK --set-mark 2"$i"
let i=i+1
done
iptables -t mangle -D PREROUTING -p tcp --dport 443 -m conntrack --ctstate NEW -j MARK --set-mark 20
iptables -t mangle -A PREROUTING -p tcp --dport 443 -m conntrack --ctstate NEW -j MARK --set-mark 20
iptables -t mangle -D PREROUTING -p udp --dport 443 -m conntrack --ctstate NEW -j MARK --set-mark 20
iptables -t mangle -A PREROUTING -p udp --dport 443 -m conntrack --ctstate NEW -j MARK --set-mark 20
iptables -t mangle -D POSTROUTING -m conntrack --ctstate NEW -j CONNMARK --save-mark
iptables -t mangle -A POSTROUTING -m conntrack --ctstate NEW -j CONNMARK --save-mark
iptables -t mangle -D PREROUTING -i br-lan -m conntrack --ctstate ESTABLISHED,RELATED -j CONNMARK --restore-mark
iptables -t mangle -A PREROUTING -i br-lan -m conntrack --ctstate ESTABLISHED,RELATED -j CONNMARK --restore-mark
ip route flush cache

View File

@ -0,0 +1,13 @@
{
"admin/network/eqos": {
"title": "EQoS",
"action": {
"type": "view",
"path": "eqos"
},
"depends": {
"acl": [ "luci-app-eqos" ],
"uci": { "eqos": true }
}
}
}

View File

@ -0,0 +1,11 @@
{
"luci-app-eqos": {
"description": "Grant UCI access for luci-app-eqos",
"read": {
"uci": [ "eqos" ]
},
"write": {
"uci": [ "eqos" ]
}
}
}

View File

@ -0,0 +1,15 @@
#
# Copyright (C) Hua Shao <nossiac@163.com>
#
# This is free software, licensed under the Apache License, Version 2.0 .
#
include $(TOPDIR)/rules.mk
LUCI_TITLE:=MediaTek Proprietary Configuration.
LUCI_DEPENDS:=+datconf-lua
LUCI_PKGARCH:=all
include $(TOPDIR)/feeds/luci/luci.mk
# call BuildPackage - OpenWrt buildroot signature

View File

@ -0,0 +1,198 @@
Copyright (C) 2016 Gion Kunz
The MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit
persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Copyright 2008 Steven Barth <steven@midlink.org>
Copyright 2008 Jo-Philipp Wich <jow@openwrt.org>
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,67 @@
<%#
File name : mtk_wifi_apply_reboot.htm
This file is used in WebUI based on LuCI to handle the reboot event.
%>
<%+header%>
<h2><a>Reboot Device</a><h2>
<div id="div_reboot_warn">
<p class="alert-message">
As the driver does not support addition or deletion of interfaces on the fly,
the settings which were changed during addition or deletion of interfaces have not been applied yet!
<br /><br />
<strong>
The changed settings will be applied only after reboot of the device.
Please click on the Reboot button.
</strong>
<br /><br />
<strong>Tip:</strong><br />
Add or delete as many interfaces as required before reboot so that you do not have to reboot the device again.<br />
Please follow below instructions to add or delete an interface;</em><br />
1. Go to <a href='<%=luci.dispatcher.build_url("admin", "network", "wifi")%>'>Wireless Overview</a> web-page.<br />
2. Click on Add button to add a new interface or click on Remove button to delete an existing interface.<br />
3. If you are are adding a new interface, then, click on <em>Save</em> button after filling out all the required fields such as SSID etc.<br />
4. Once you are done with addition/deletion of interfaces, then please click on <em>Reload</em> button or
<em>Save and Apply</em> button on any web-page which will redirect to this web-page to perform the reboot of the device.</br>
</p>
<input class="cbi-button cbi-button-apply" type="button" value="Reboot" onclick="init_reboot()" />
</div>
<h4 id="msg_on_reboot" class="alert-message warning" style="display:none">
<img src="<%=resource%>/icons/loading.gif" alt="" style="vertical-align:middle" />
Please wait while the reboot of the device is on progress.
</h4>
<h4 id="unreach_msg" class="alert-message error" style="display:none">Device has not come on-line yet!</h4>
<script type="text/javascript">
function online()
{
location = '<%=controller%>';
}
function ping(numPings)
{
var loadingImg = document.createElement('IMG');
loadingImg.onload = online;
loadingImg.src = '<%=resource%>/icons/loading.gif?' + Math.random();
numPings -= 1;
if(numPings <= 0){
document.getElementById("msg_on_reboot").style.display = 'none';
document.getElementById("unreach_msg").style.display = '';
}
else{
window.setTimeout(ping, 10000, numPings);
}
}
function init_reboot_cb()
{
window.setTimeout(ping, 10000, 18);
}
function init_reboot()
{
document.getElementById('div_reboot_warn').style.display = 'none';
document.getElementById('msg_on_reboot').style.display = '';
(new XHR()).post('<%=controller%>/admin/mtk/wifi/reboot', { token: '<%=token%>' }, init_reboot_cb);
}
</script>
<%+footer%>

View File

@ -0,0 +1,233 @@
<%+header%>
<!--
This module is a demo to configure MTK' proprietary WiFi driver.
Basic idea is to bypass uci and edit wireless profile (mt76xx.dat) directly.
LuCI's WiFi configuration is more logical and elegent, but it's quite tricky to
translate uci into MTK's WiFi profile (like we did in "uci2dat").
Hua Shao <nossiac@163.com>
-->
<%
local disp = require "luci.dispatcher"
-- local request = disp.context.path
local request = disp.context.request
local mtkwifi = require("mtkwifi")
local devname = request[5]
local devs = mtkwifi.get_all_devs()
local dev = {}
for _,v in ipairs(devs) do
if v.devname == devname then
dev = v
end
end
local cfgs = mtkwifi.load_profile(dev.profile)
%>
<script type="text/javascript" src="<%=resource%>/cbi.js?v=git-17.250.41546-90ac861"></script>
<script type="text/javascript">
</script>
<form method="post" name="cbi" action="<%=luci.dispatcher.build_url("admin", "network", "wifi", "chip_cfg", devname)%>" enctype="multipart/form-data" onreset="return cbi_validate_reset(this)" onsubmit="return cbi_validate_form(this, '<%:Some fields are invalid, cannot save values!%>') && ValidateAllSettings()" autocomplete="off">
<fieldset class="cbi-section">
<h2><%:Chip Configurations%> - <%=string.split(devname,".")[1]%>
<%local diff = mtkwifi.diff_profile(dev.profile)%>
<%if next(diff) ~= nil then%>
<span style="color:red;">( <a href="javascript:location.href='<%=luci.dispatcher.build_url("admin", "network", "wifi", "reload", dev.devname)%>'"><%:Click here%></a> <%:to apply changes%>)</span>
<%end%>
</h2>
<table id="dev-cfg-basic" class="cbi-section-table">
<tr>
<td><%:Decline BA Request%></td>
<td>
<select style="width:auto" name="HT_BADecline">
<option value="1" <% if cfgs.HT_BADecline == "1" then %> selected="selected"<% end%>><%:Enable%></option>
<option value="0" <% if cfgs.HT_BADecline == "0" then %> selected="selected"<% end%>><%:Disable%></option>
</select>
</td>
</tr>
<tr>
<td><%:Reverse Direction Grant (RDG)%></td>
<td>
<select style="width:auto" name="HT_RDG">
<option value="1" <% if cfgs.HT_RDG == "1" then %> selected="selected"<% end%>><%:Enable%></option>
<option value="0" <% if cfgs.HT_RDG == "0" then %> selected="selected"<% end%>><%:Disable%></option>
</select>
</td>
</tr>
<tr>
<td><%:BA Win size%> <% if string.split(cfgs.WirelessMode,";")[1] == "16" or string.split(cfgs.WirelessMode,";")[1] == "17" or string.split(cfgs.WirelessMode,";")[1] == "18" then %>(1-256)<% else %>(1-64)<% end %></td>
<td>
<input name="HT_BAWinSize" id="HT_BAWinSize" value="<%=cfgs.HT_BAWinSize%>"/>
</td>
</tr>
<tr>
<td><%:HT Disallow TKIP%></td>
<td>
<select style="width:auto" name="HT_DisallowTKIP">
<option value="1" <% if cfgs.HT_DisallowTKIP == "1" then %> selected="selected"<% end%>><%:Enable%></option>
<option value="0" <% if cfgs.HT_DisallowTKIP == "0" then %> selected="selected"<% end%>><%:Disable%></option>
</select>
</td>
</tr>
<tr>
<td><%:Wi-Fi HWNAT%></td>
<td>
<select style="width:auto" name="WHNAT">
<option value="1" <% if cfgs.WHNAT == "1" then %> selected="selected"<% end%>><%:Enable%></option>
<option value="0" <% if cfgs.WHNAT ~= "1" then %> selected="selected"<% end%>><%:Disable%></option>
</select>
</td>
</tr>
<tr>
<td><%:E2pAccessMode%></td>
<td>
<select style="width:auto" name="E2pAccessMode">
<option value="1" <% if cfgs.E2pAccessMode == "1" then %> selected="selected"<% end%>>EFUSE</option>
<option value="2" <% if cfgs.E2pAccessMode == "2" then %> selected="selected"<% end%>>FLASH</option>
</select>
</td>
</tr>
<tr>
<td><%:Beacon Interval%> (20-999)</td>
<td>
<input name="BeaconPeriod" id="BeaconPeriod" value="<%=cfgs.BeaconPeriod%>" />
</td>
</tr>
<tr>
<td><%:Data Beacon Rate (DTIM)%> (1-255)</td>
<td>
<input name="DtimPeriod" id="DtimPeriod" value="<%=cfgs.DtimPeriod%>" />
</td>
</tr>
<tr>
<td><%:BG Protection Mode%></td>
<td>
<select name="BGProtection" style="width:auto">
<option value="0" <% if cfgs.BGProtection == "0" then %>selected="selected"<% end %>><%:Auto%></option>
<option value="1" <% if cfgs.BGProtection == "1" then %>selected="selected"<% end %>><%:Always On%></option>
<option value="2" <% if cfgs.BGProtection == "2" then %>selected="selected"<% end %>><%:Always Off%></option>
</select>
</td>
</tr>
<tr>
<td><%:Short Preamble%></td>
<td>
<select style="width:auto" name="TxPreamble">
<option value="1" <% if cfgs.TxPreamble == "1" then %> selected="selected"<% end%>><%:Enable%></option>
<option value="0" <% if cfgs.TxPreamble == "0" then %> selected="selected"<% end%>><%:Disable%></option>
</select>
</td>
</tr>
<tr>
<td><%:TX Burst%></td>
<td>
<select style="width:auto" name="TxBurst">
<option value="1" <% if cfgs.TxBurst == "1" then %> selected="selected"<% end%>><%:Enable%></option>
<option value="0" <% if cfgs.TxBurst == "0" then %> selected="selected"<% end%>><%:Disable%></option>
</select>
</td>
</tr>
<tr>
<td><%:Short Slot%></td>
<td>
<select style="width:auto" name="ShortSlot">
<option value="1" <% if cfgs.ShortSlot == "1" then %> selected="selected"<% end%>><%:Enable%></option>
<option value="0" <% if cfgs.ShortSlot == "0" then %> selected="selected"<% end%>><%:Disable%></option>
</select>
</td>
</tr>
</table>
<div class="cbi-page-actions">
<input class="cbi-button cbi-button-apply" name="__apply" value="<%:Save & Apply%>" type="submit">
<input class="cbi-button cbi-button-apply" value="<%:Save%>" type="submit">
<input class="cbi-button cbi-button-reset" value="<%:Reset%>" type="reset">
</div>
</form>
<script type="text/javascript">
function ValidateAdvancedSettings()
{
var tmpVal = document.getElementById("HT_BAWinSize").value;
<% if string.split(cfgs.WirelessMode,";")[1] == "16" or string.split(cfgs.WirelessMode,";")[1] == "17" or string.split(cfgs.WirelessMode,";")[1] == "18" then %>
if(isNaN(tmpVal) || !/^\d{1,3}$/.test(tmpVal) || parseInt(tmpVal) < 1 || parseInt(tmpVal) > 256){
alert("BA Win SIze is incorrect!\nPlease enter an integer number between 1 to 256 inclusive.");
document.getElementById("HT_BAWinSize").focus();
document.getElementById("HT_BAWinSize").select();
return false;
}
<% else %>
if(isNaN(tmpVal) || !/^\d{1,2}$/.test(tmpVal) || parseInt(tmpVal) < 1 || parseInt(tmpVal) > 64){
alert("BA Win Size is incorrect!\nPlease enter an integer number between 1 to 64 inclusive.");
document.getElementById("HT_BAWinSize").focus();
document.getElementById("HT_BAWinSize").select();
return false;
}
<% end %>
tmpVal = document.getElementById("BeaconPeriod").value;
if(isNaN(tmpVal) || !/^\d{2,3}$/.test(tmpVal) || parseInt(tmpVal) < 20 || parseInt(tmpVal) > 999){
alert("Beacon Interval is incorrect!\nPlease enter an integer number between 20 to 999 inclusive.");
document.getElementById("BeaconPeriod").focus();
document.getElementById("BeaconPeriod").select();
return false;
}
tmpVal = document.getElementById("DtimPeriod").value;
if(isNaN(tmpVal) || !/^\d{1,3}$/.test(tmpVal) || parseInt(tmpVal) < 1 || parseInt(tmpVal) > 255){
alert("Data Beacon Rate (DTIM) is incorrect!\nPlease enter an integer number between 1 to 255 inclusive.");
document.getElementById("DtimPeriod").focus();
document.getElementById("DtimPeriod").select();
return false;
}
return true;
}
function ValidateAllSettings(){
if( !ValidateAdvancedSettings() ){
return false;
}
return true;
}
function get_apply_status_cb(rsp)
{
try{
var r = JSON.parse(rsp);
}
catch(e){
return;
}
if(r.status == "ON_PROGRESS"){
var u = confirm("Device is applying the saved settings now!\n" +
"It is recommended to wait until all the saved settings are applied.\n" +
"Please click on 'OK' button to wait for the device.\n" +
"or click on 'Cancel' button to configure the settings available in current web-page.");
if (u == true) {
location = '<%=luci.dispatcher.build_url("admin", "network", "wifi", "loading")%>' + window.location.pathname;
}
}
}
function get_apply_status()
{
XHR.get('<%=luci.dispatcher.build_url("admin", "network", "wifi", "get_apply_status")%>', null,
function(x)
{
console.log(x);
get_apply_status_cb(x.response);
}
);
}
window.onload = function() {
get_apply_status();
}
</script>
<%+footer%>

View File

@ -0,0 +1,769 @@
<%+header%>
<!--
This module is a demo to configure MTK' proprietary WiFi driver.
Basic idea is to bypass uci and edit wireless profile (mt76xx.dat) directly.
LuCI's WiFi configuration is more logical and elegent, but it's quite tricky to
translate uci into MTK's WiFi profile (like we did in "uci2dat").
Hua Shao <nossiac@163.com>
-->
<%
local disp = require "luci.dispatcher"
-- local request = disp.context.path
local request = disp.context.request
local mtkwifi = require("mtkwifi")
local devname = request[5]
local devs = mtkwifi.get_all_devs()
local dev = {}
for _,v in ipairs(devs) do
if v.devname == devname then
dev = v
end
end
local cfgs = mtkwifi.load_profile(dev.profile)
local bands = mtkwifi.detect_triband()
%>
<script type="text/javascript" src="<%=resource%>/cbi.js?v=git-17.250.41546-90ac861"></script>
<script type="text/javascript">
</script>
<form method="post" name="cbi" action="<%=luci.dispatcher.build_url("admin", "network", "wifi", "dev_cfg", devname)%>" enctype="multipart/form-data" onreset="return cbi_validate_reset(this)" onsubmit="return cbi_validate_form(this, '<%:Some fields are invalid, cannot save values!%>') && ValidateAllSettings()" autocomplete="off">
<fieldset class="cbi-section">
<h2><%:Device Configuration%> - <%=devname%>
<%local diff = mtkwifi.diff_profile(dev.profile)%>
<%if next(diff) ~= nil then%>
<span style="color:red;"> (<a href="javascript:location.href='<%=luci.dispatcher.build_url("admin", "network", "wifi", "reload", dev.devname)%>'"><%:Click here%></a> <%:to apply changes%>)</span>
<%end%>
</h2>
<table id="dev-cfg-basic" class="cbi-section-table">
<tr>
<td><%:Enable wireless device%></td>
<td>
<input type="radio" name="DevEnable" value="1" <% if cfgs.DevEnable == "1" then %> checked="checked"<% end %>/><%:Enable%>
<input type="radio" name="DevEnable" value="0" <% if cfgs.DevEnable == "0" then %> checked="checked"<% end %>/><%:Disable%>
</td>
</tr>
<tr>
<td><%:Channel%></td>
<td>
<select style="width:auto; min-width:180px;" name="Channel" id="Channel" onchange="Channel_onchange(this.value)" <% if cfgs.ApCliEnable == "1" then %> disabled="disabled" <% end %>>
</select>
</td>
<td><% if cfgs.ApCliEnable == "1" then %><%:APClient/Repeater Mode.%><% end %></td>
</tr>
<tr id="HT_EXTCHA_TR" style="display:none">
<td><%:40MHz HT Ext Channel%></td>
<td>
<select style="width:auto; min-width:180px;" name="HT_EXTCHA" id="HT_EXTCHA" <% if cfgs.ApCliEnable == "1" or dev.__bw ~= "40" or dev.__bw ~= "60" then %> disabled="disabled" <% end %>>
</select>
</td>
<td><% if cfgs.ApCliEnable == "1" then %><%:APClient/Repeater Mode.%><% end %></td>
</tr>
<tr id="VHT_Sec80_Channel_TR" style="display:none">
<td><%:80MHz Second VHT Channel%></td>
<td>
<select style="width:auto; min-width:180px; " name="VHT_Sec80_Channel" id="VHT_Sec80_Channel" <% if cfgs.ApCliEnable == "1" or dev.__bw ~= "161" then %> disabled="disabled" <% end %>>
</select>
</td>
<td><% if cfgs.ApCliEnable == "1" then %><%:APClient/Repeater Mode.%><% end %></td>
</tr>
<% if string.split(cfgs.WirelessMode,";")[1] == "16" or string.split(cfgs.WirelessMode,";")[1] == "17" or string.split(cfgs.WirelessMode,";")[1] == "18" then %>
<tr>
<td><%:BSS color%></td>
<td>
<input name="BssColor" id="BssColor" value="<%=cfgs.BSSColorValue%>"/>
</td>
</tr>
<tr>
<td><%:TWT Support%></td>
<td>
<select name="TWTSupport" style="width:auto">
<option value="0" <% if cfgs.TWTSupport == "0" then %> selected="selected" <% end %>><%:Disable%></option>
<option value="1" <% if cfgs.TWTSupport == "1" then %> selected="selected" <% end %>><%:Enable%></option>
<option value="2" <% if cfgs.TWTSupport == "2" then %> selected="selected" <% end %>><%:Mandatory%></option>
</select>
</td>
</tr>
<% end %>
<input type="hidden" id="WirelessMode" value="<%=string.split(cfgs.WirelessMode,";")[1]%>">
<tr>
<td><%:Country Code%></td>
<td>
<select name="CountryCode" style="width:auto" id="CountryCode" onchange="CountryCode_onchange()">
<option value="US" id="advCountryCodeUS" <% if cfgs.CountryCode == "US" then %> selected="selected"<% end %>><%:US%></option>
<option value="JP" id="advCountryCodeJP" <% if cfgs.CountryCode == "JP" then %> selected="selected"<% end %>><%:JP%></option>
<option value="FR" id="advCountryCodeFR" <% if cfgs.CountryCode == "FR" then %> selected="selected"<% end %>><%:FR%></option>
<option value="IE" id="advCountryCodeIE" <% if cfgs.CountryCode == "IE" then %> selected="selected"<% end %>><%:IE%></option>
<option value="CN" id="advCountryCodeCN" <% if cfgs.CountryCode == "CN" then %> selected="selected"<% end %>><%:CN%></option>
<option value="NONE" id="advCountryCodeNONE"<% if cfgs.CountryCode == "NONE" then %> selected="selected"<% end %>><%:NONE%></option>
</select>
</td>
</tr>
<tr>
<td><%:Country Region%></td>
<td>
<select style="width:auto; min-width:180px;" name="__cr" id="__cr" onchange="CountryRegion_onchange(this.value)">
</select>
</td>
</tr>
<tr>
<td><%:Channel BandWidth%></td>
<td>
<select style="width:auto" name="__bw" id="__bw" onchange="Bw_onchange(this.options[this.options.selectedIndex].value)">
<option value="20" <% if dev.__bw == "20" then %> selected="selected"<% end%>>20 MHz</option>
<option value="40" <% if dev.__bw == "40" then %> selected="selected"<% end%>>40 MHz</option>
<option value="60" <% if dev.__bw == "60" then %> selected="selected"<% end%>>20/40 MHz</option>
<option value="80" <% if dev.__bw == "80" then %> selected="selected"<% end%>>80 MHz</option>
<option value="160" <% if dev.__bw == "160" then %> selected="selected"<% end%>>160 MHz</option>
<option value="161" <% if dev.__bw == "161" then %> selected="selected"<% end%>>80+80 MHz</option>
</select>
</td>
</tr>
<tr>
<td><%:TX Stream%></td>
<td>
<select name="HT_TxStream" style="width:auto">
<% if dev.maxTxStream then %>
<% for txStreamVal=1,dev.maxTxStream do%>
<option value="<%=txStreamVal%>" <% if tonumber(cfgs.HT_TxStream) == txStreamVal then %>selected="selected"<% end %>><%=txStreamVal%></option>
<% end %>
<% else %>
<option value="1" <% if cfgs.HT_TxStream == "1" then %>selected="selected"<% end %>>1</option>
<option value="2" <% if cfgs.HT_TxStream == "2" then %>selected="selected"<% end %>>2</option>
<option value="3" <% if cfgs.HT_TxStream == "3" then %>selected="selected"<% end %>>3</option>
<option value="4" <% if cfgs.HT_TxStream == "4" then %>selected="selected"<% end %>>4</option>
<% end %>
</select>
</td>
</tr>
<tr>
<td><%:RX Stream%></td>
<td>
<select name="HT_RxStream" style="width:auto">
<% if dev.maxRxStream then %>
<% for rxStreamVal=1,dev.maxRxStream do%>
<option value="<%=rxStreamVal%>" <% if tonumber(cfgs.HT_RxStream) == rxStreamVal then %>selected="selected"<% end %>><%=rxStreamVal%></option>
<% end %>
<% else %>
<option value="1" <% if cfgs.HT_RxStream == "1" then %>selected="selected"<% end %>>1</option>
<option value="2" <% if cfgs.HT_RxStream == "2" then %>selected="selected"<% end %>>2</option>
<option value="3" <% if cfgs.HT_RxStream == "3" then %>selected="selected"<% end %>>3</option>
<option value="4" <% if cfgs.HT_RxStream == "4" then %>selected="selected"<% end %>>4</option>
<% end %>
</select>
</td>
</tr>
<tr>
<td><%:TX Power%> (1-100)</td>
<td>
<input name="TxPower" id="TxPower" value="<%=cfgs.TxPower%>" />
</td>
</tr>
<% if mtkwifi.band(string.split(cfgs.WirelessMode,";")[1]) == "5G" then %>
<tr>
<td>802.11H</td>
<td>
<input type="radio" name="IEEE80211H" value="1" <% if cfgs.IEEE80211H == "1" then %> checked="checked"<% end %>/><%:Enable%>
<input type="radio" name="IEEE80211H" value="0" <% if cfgs.IEEE80211H == "0" then %> checked="checked"<% end %>/><%:Disable%>
</td>
</tr>
<tr>
<td><%:DFS%></td>
<td>
<input type="radio" name="DfsEnable" value="1" <% if cfgs.DfsEnable == "1" then %> checked="checked"<% end %>/><%:Enable%>
<input type="radio" name="DfsEnable" value="0" <% if cfgs.DfsEnable == "0" then %> checked="checked"<% end %>/><%:Disable%>
</td>
</tr>
<% end %>
<% if cfgs.MUTxRxEnable then %>
<tr>
<td><%:Beam Forming and MIMO Setting%></td>
<td>
<select name="__mimo" autocomplete="off" >
<option value="0"<% if tonumber(dev.__mimo) == 0 then %> selected="selected"<% end %>> ETxBF + SU-MIMO </option>
<option value="1"<% if tonumber(dev.__mimo) == 1 then %> selected="selected"<% end %>> ITxBF + SU-MIMO </option>
<option value="2"<% if tonumber(dev.__mimo) == 2 then %> selected="selected"<% end %>> ITxBF + ETxBF + SU-MIMO </option>
<% if not dev.mimoBand or dev.mimoBand == dev.dbdcBandName then %>
<option value="3"<% if tonumber(dev.__mimo) == 3 then %> selected="selected"<% end %>> ETxBF + MU-MIMO </option>
<option value="4"<% if tonumber(dev.__mimo) == 4 then %> selected="selected"<% end %>> ITxBF + ETxBF + MU-MIMO </option>
<% end %>
<option value="5"<% if tonumber(dev.__mimo) == 5 then %> selected="selected"<% end %>> <%:Disable%> TxBF </option>
</select>
</td>
</tr>
<% end %>
<% if string.split(cfgs.WirelessMode,";")[1] == "16" or string.split(cfgs.WirelessMode,";")[1] == "17" or string.split(cfgs.WirelessMode,";")[1] == "18" then %>
<tr>
<td><%:Spatial Reuse%></td>
<td>
<input type="radio" name="SREnable" value="1" <% if cfgs.SREnable == "1" then %> checked="checked"<% end %>/><%:Enable%>
<input type="radio" name="SREnable" value="0" <% if cfgs.SREnable == "0" then %> checked="checked"<% end %>/><%:Disable%>
</td>
</tr>
<% end %>
</table>
</fieldset>
<div class="cbi-page-actions">
<input class="cbi-button cbi-button-apply" name="__apply" value="<%:Save & Apply%>" type="submit">
<input class="cbi-button cbi-button-apply" value="<%:Save%>" type="submit">
<input class="cbi-button cbi-button-reset" value="<%:Reset%>" type="reset">
</div>
</form>
<script type="text/javascript">
function CountryCode_onchange(){
var wMode = document.getElementById('WirelessMode').value;
getCountryRegionList(wMode);
}
function CountryRegion_onchange(country_region) {
var wmode_o = document.getElementById('WirelessMode');
var wmode;
if (wmode_o)
wmode = wmode_o.value;
if (wmode == "")
wmode = "<%=cfgs.WirelessMode%>";
getChannelList(wmode, country_region);
}
function Channel_onchange (ch) {
getBw(null, ch);
}
function Bw_onchange(bw, ch) {
var ch_val;
if (!ch){
var ch_o = document.getElementById('Channel');
if (ch_o)
ch_val = ch_o.value;
if (ch_val == "")
ch_val = "<%=cfgs.Channel%>";
} else {
ch_val = ch
}
get5G2nd80MhzChannelList(bw, ch_val);
getHTExtChannel(bw, ch_val);
}
function disableCountryRegionAsPerCountryCode(){
var wModeSelect = document.getElementById('WirelessMode');
var wMode = wModeSelect.value;
var cCode = document.getElementById('CountryCode').value;
var cRegionSelect = document.getElementById('__cr');
var invalidCR_2G = {
US:[1,3,4,5,7,31,32,33],
JP:[],
FR:[4,5,31,33],
IE:[4,5,31,33],
CN:[4,5,31,33],
NONE:[]
};
var invalidCR_5G = {
US:[1,7,11,15,19,20,21,22,30,31,32,33,36,37],
JP:[0,3,4,5,7,9,10,11,13,14,15,16,17,19,20,21,30,31,32,34,36,37],
FR:[0,3,4,5,7,9,10,11,12,13,14,15,16,17,19,20,21,30,31,32,34,36,37],
IE:[0,3,4,5,7,9,10,11,12,13,14,15,16,17,19,20,21,30,31,32,34,36,37],
CN:[1,7,9,11,12,13,14,15,18,19,20,21,22,30,31,32,33,36,37],
NONE:[]
};
if (is_mode_gband(wMode)){
// Channel 14 should be disabled for all the Countries except JAPAN(JP) and NONE Country Code.
// If WireleeMode is not in 'B only' mode, then Channel 14 should be disabled for Japan and NONE Country Code too.
if(wMode != "1"){
if(cCode == "JP"){
invalidCR_2G["JP"]=[4,5,31,33];
}
else if(cCode == "NONE"){
invalidCR_2G["NONE"]=[4,5,31,33];
}
}
if((cCode == "JP" && invalidCR_2G["JP"].length > 0) ||
(cCode == "NONE" && invalidCR_2G["NONE"].length > 0) ||
((cCode != "JP") && (cCode != "NONE"))){
for(var idx=0; idx < cRegionSelect.length; idx++){
if(invalidCR_2G[cCode] && invalidCR_2G[cCode].indexOf(cRegionSelect.options[idx].value * 1) != -1){
cRegionSelect.options[idx].disabled = true;
cRegionSelect.options[idx].selected = false;
}
}
}
}
else if (is_mode_aband(wMode) && cCode != "NONE"){
for(var idx=0; idx < cRegionSelect.length; idx++){
if(invalidCR_5G[cCode] && invalidCR_5G[cCode].indexOf(cRegionSelect.options[idx].value * 1) != -1){
cRegionSelect.options[idx].disabled = true;
cRegionSelect.options[idx].selected = false;
}
}
}
return cRegionSelect.value;
}
function initCountryRegionList(list, mode){
var select = document.getElementById('__cr');
var cr = {};
if (is_mode_gband(mode))
cr = "<%=cfgs.CountryRegion%>";
else if (is_mode_aband(mode))
cr = "<%=cfgs.CountryRegionABand%>";
var new_cr = initList(select, list, cr, "region");
new_cr = disableCountryRegionAsPerCountryCode();
CountryRegion_onchange(new_cr);
}
function getCountryRegionList(mode) {
XHR.get('<%=luci.dispatcher.build_url("admin", "network", "wifi", "get_country_region_list")%>', {mode:mode},
function(x)
{
//console.log(x);
//console.log(x.response);
var json = eval(x.response);
initCountryRegionList(json, mode);
}
);
}
function initChannelList(list) {
/* choose auto select when no matching item in the lis */
var select = document.getElementById('Channel');
var ch = {};
var new_ch = null;
ch.cval = select.value;
ch.oval = "<%=cfgs.Channel%>";
var new_ch = initList(select, list, ch, "channel");
Channel_onchange(new_ch);
}
function getChannelList(mode, country_region) {
XHR.get('<%=luci.dispatcher.build_url("admin", "network", "wifi", "get_channel_list")%>', {mode:mode, country_region:country_region},
function(x)
{
//console.log(x);
//console.log(x.response);
var json = eval(x.response);
initChannelList(json);
}
);
}
function GetCountryRegion(mode) {
var cr_o = document.getElementById('__cr');
var cr = "";
if (cr_o) {
cr = cr_o.value;
}
if (cr == "") {
if (is_mode_gband(mode)) {
cr = "<%=cfgs.CountryRegion%>";
} else if (is_mode_aband(mode)) {
cr = "<%=cfgs.CountryRegionABand%>";
} else {
alert("Cannot get valid CountryRegion from invalid WireleeMode");
}
}
return cr;
}
function getBw(mode, ch) {
/* choose bw as wide as possible if modification is needed */
var bw_sel = document.getElementById('__bw');
var wModeSelect,wmode;
wModeSelect = document.getElementById('WirelessMode');
if (!mode) {
wmode = wModeSelect.value*1;
} else {
wmode = mode*1;
}
if( <%=string.split(cfgs.WirelessMode,";")[1]%> != 18 ){
if (is_mode_legacy_only(wmode) || parseInt(ch) >= 165) {
for (var idx=0; idx < bw_sel.length; idx++) {
bw_sel.options[idx].disabled = false;
if (bw_sel.options[idx].value == 20)
bw_sel.options[idx].selected = true;
if (bw_sel.options[idx].value > 20)
bw_sel.options[idx].disabled = true;
}
} else if (is_ch_gband(ch)) {
for (var idx=0; idx < bw_sel.length; idx++) {
bw_sel.options[idx].disabled = false;
if ((bw_sel.options[idx].value == 60) && (bw_sel.selectedIndex > idx))
bw_sel.options[idx].selected = true;
if (bw_sel.options[idx].value > 60)
bw_sel.options[idx].disabled = true;
}
} else if (is_ch_aband(ch)) {
var chosen60 = false;
var bw160 = "<%=cfgs.VHT_BW%>"*1;
if (bw_sel.value == 60)
chosen60 = 1;
for (var idx=0; idx < bw_sel.length; idx++) {
bw_sel.options[idx].disabled = false;
if (bw_sel.options[idx].value == 40 && chosen60 && bw160 == 0) {
bw_sel.options[idx].selected = true;
} else if (bw_sel.options[idx].value == 60) {
bw_sel.options[idx].disabled = true;
bw_sel.options[idx].selected = false;
} else if (wmode == 8 && bw_sel.options[idx].value == 80) {
bw_sel.options[idx].disabled = true;
bw_sel.options[idx].selected = false;
} else if (bw_sel.options[idx].value == 160 && chosen60 && bw160 == 1) {
bw_sel.options[idx].selected = true;
}
}
}
}
var invalidChBwList = '<%=(dev.invalidChBwList and table.concat(dev.invalidChBwList,";"))%>'.split(";");
if(invalidChBwList.length > 0){
for (var idx=0; idx < bw_sel.length; idx++) {
if(invalidChBwList.indexOf(bw_sel.options[idx].value) != -1){
bw_sel.options[idx].disabled = true;
bw_sel.options[idx].selected = false;
}
}
}
if(wmode == 18 ) {
for (var idx=0; idx < bw_sel.length; idx++) {
bw_sel.options[idx].disabled = false;
if(bw_sel.options[idx].value == 40 && ch>229){
bw_sel.options[idx].disabled = true;
bw_sel.options[idx].selected = false;
}
if(bw_sel.options[idx].value == 80 && ch>221){
bw_sel.options[idx].disabled = true;
bw_sel.options[idx].selected = false;
}
if(bw_sel.options[idx].value == 160 && ch>221){
bw_sel.options[idx].disabled = true;
bw_sel.options[idx].selected = false;
}
if(bw_sel.options[idx].value == 161 || bw_sel.options[idx].value == 60){
bw_sel.options[idx].disabled = true;
bw_sel.options[idx].selected = false;
}
}
}
Bw_onchange(bw_sel.value, ch);
}
function init5G2nd80MhzChannelList(list,ch,cr) {
var select = document.getElementById('VHT_Sec80_Channel');
var ch2 = {};
var new_ch2 = null;
ch2.cval = select.value;
ch2.oval = "<%=cfgs.VHT_Sec80_Channel%>";
initList(select, list, ch2, "channel");
if (select.length > 0) {
document.getElementById("VHT_Sec80_Channel_TR").style.display = "";
select.disabled = false;
}
}
function get5G2nd80MhzChannelList(bw, ch) {
document.getElementById("VHT_Sec80_Channel_TR").style.display = "none";
var ch_5g_2nd = document.getElementById('VHT_Sec80_Channel');
ch_5g_2nd.disabled = true;
if (ch == "0")
return;
if (bw != "161" || ch == "0")
return;
var mode = document.getElementById('WirelessMode');
mode = mode.value*1;
var cr = GetCountryRegion(mode);
XHR.get('<%=luci.dispatcher.build_url("admin", "network", "wifi", "get_5G_2nd_80Mhz_channel_list")%>', {ch_cur:ch, country_region:cr},
function(x)
{
//console.log(x);
//console.log(x.response);
var json = eval(x.response);
init5G2nd80MhzChannelList(json,ch,cr);
}
);
}
function initHTExtChannelList(list,ch,cr) {
var select = document.getElementById('HT_EXTCHA');
var ch2 = {};
var new_ch2 = null;
ch2.cval = select.value;
ch2.oval = "<%=cfgs.HT_EXTCHA%>";
initList(select, list, ch2, "val");
if (select.length > 0) {
document.getElementById("HT_EXTCHA_TR").style.display = "";
select.disabled = false;
}
}
function getHTExtChannel(bw, ch) {
document.getElementById("HT_EXTCHA_TR").style.display = "none";
var ch_2g_ext = document.getElementById('HT_EXTCHA');
ch_2g_ext.disabled = true;
if (bw != "40" && bw != "60")
return;
var mode = document.getElementById('WirelessMode');
mode = mode.value*1;
// skip auto channel
if(mode==18){
if (ch == "0" || parseInt(ch) > 229)
return;
}
else{
if (ch == "0" || parseInt(ch) >= 165)
return;
}
var cr = GetCountryRegion(mode);
XHR.get('<%=luci.dispatcher.build_url("admin", "network", "wifi", "get_HT_ext_channel_list")%>', {mode:mode, ch_cur:ch, country_region:cr},
function(x)
{
//console.log(x);
//console.log(x.response);
var json = eval(x.response);
initHTExtChannelList(json,ch,cr);
}
);
}
function is_mode_legacy_only(mode) {
var imode = mode*1;
return ((imode >= 0) && (imode <= 4));
}
function is_mode_gband(mode) {
var imode = mode*1;
var gband_mode_list = [0,1,4,6,7,9,16];
var i;
for (i = 0; i < gband_mode_list.length; i++){
if( gband_mode_list[i] == imode )
return true;
}
return false;
}
function is_mode_aband(mode) {
var imode = mode*1;
var aband_mode_list = [2,8,11,14,15,17,18];
var i;
for (i = 0; i < aband_mode_list.length; i++){
if( aband_mode_list[i] == imode )
return true;
}
return false;
}
function is_ch_gband(ch) {
ch = ch*1;
if (ch == 0) {
var wmode = document.getElementById('WirelessMode');
return is_mode_gband(wmode.value);
}
return ((ch > 0) && (ch <= 14));
}
function is_ch_aband(ch) {
ch = ch*1;
if (ch == 0) {
var wmode = document.getElementById('WirelessMode');
return is_mode_aband(wmode.value);
}
return ((ch >= 36 ) && (ch <= 165));
}
function initList(selobj, list, selvals, value, text){
var sel = {};
var id = selobj.id;
var noChannelGrp = false;
var only2G = false;
if (typeof(selvals) != "object")
sel[0] = selvals;
else
sel = selvals;
selobj.innerHTML = "";
for (var i in list) {
if (value != "region") {
<% if bands == 3 and mtkwifi.band(string.split(cfgs.WirelessMode,";")[1]) == "5G" then %>
<% if cfgs.ChannelGrp == "0:0:1:1" then %>
if (list[i].channel == 0 || list[i].channel >= 100){
<% elseif cfgs.ChannelGrp == "1:1:0:0" then %>
if (list[i].channel <= 64){
<% else %>
noChannelGrp = true;
if (noChannelGrp){
<% end %>
var opt = document.createElement('option');
if(value)
opt.value = list[i][value];
else
opt.value = list[i].value;
if(text)
opt.text = list[i][text];
else
opt.text = list[i].text;
selobj.appendChild(opt);
}
<% else %>
only2G = true;
<% end %>
}
if (only2G || value == "region"){
var opt = document.createElement('option');
if(value)
opt.value = list[i][value];
else
opt.value = list[i].value;
if(text)
opt.text = list[i][text];
else
opt.text = list[i].text;
selobj.appendChild(opt);
}
}
var selv = null;
for (var k in sel) {
//console.log("[initList][" + id + "] sel[" + k + "]=" + sel[k]);
for (var i=0; i < selobj.length; i++){
if (selobj.options[i].value == sel[k]){
selobj.options[i].selected = true;
selv = sel[k];
//console.log("[initList][" + id + "] found selv=" + selv);
break;
}
}
if (selv) break;
}
if (!selv) {
selv = selobj.value;
//console.log("[initList][" + id + "] !selv, selv=" + selv);
}
return selv;
}
function ValidateAdvancedSettings()
{
var tmpVal = document.getElementById("TxPower").value;
if(isNaN(tmpVal) || !/^\d{1,3}$/.test(tmpVal) || parseInt(tmpVal) < 1 || parseInt(tmpVal) > 100){
alert("TX Power is incorrect!\nPlease enter an integer number between 1 to 100 inclusive.");
document.getElementById("TxPower").focus();
document.getElementById("TxPower").select();
return false;
}
return true;
}
function ValidateAllSettings(){
if( !ValidateAdvancedSettings() ){
return false;
}
return true;
}
function get_apply_status_cb(rsp)
{
try{
var r = JSON.parse(rsp);
}
catch(e){
return;
}
if(r.status == "ON_PROGRESS"){
var u = confirm("Device is applying the saved settings now!\n" +
"It is recommended to wait until all the saved settings are applied.\n" +
"Please click on 'OK' button to wait for the device.\n" +
"or click on 'Cancel' button to configure the settings available in current web-page.");
if (u == true) {
location = '<%=luci.dispatcher.build_url("admin", "network", "wifi", "loading")%>' + window.location.pathname;
}
}
}
function get_apply_status()
{
XHR.get('<%=luci.dispatcher.build_url("admin", "network", "wifi", "get_apply_status")%>', null,
function(x)
{
console.log(x);
get_apply_status_cb(x.response);
}
);
}
window.onload = function() {
var mode = '<%=string.split(cfgs.WirelessMode,";")[1]%>'
var cr = GetCountryRegion(mode);
getCountryRegionList(mode, cr);
get_apply_status();
}
</script>
<%+footer%>

View File

@ -0,0 +1,90 @@
<%#
File name : mtk_wifi_loading.htm
This file is used in WebUI based on LuCI to handle the loading event.
%>
<%+header%>
<%
local disp = require "luci.dispatcher"
local request = disp.context.request
local url = "/"..table.concat(request,'/',5)
%>
<h2><%:Wireless%></h2>
<div class="alert-message" id="BusyMsg">
<img src="<%=resource%>/icons/loading.gif" alt="" style="vertical-align:middle" />
<big><strong><%:Please wait while the settings are being applied.%></strong></big>
</div>
<div class="alert-message error" id="TimeoutMsgDiv" style="display:none">
<big><strong id="TimeoutMsg">Device is taking too much time to apply the settings!</strong></big>
</div>
<script type="text/javascript">
function visit_url(url)
{
window.onbeforeunload = function() {};
if(url && url.indexOf('<%=controller%>') != -1){
location = url;
}
else{
location = '<%=luci.dispatcher.build_url("admin", "network", "wifi")%>';
}
}
function get_apply_status_cb(rsp, remNumTries)
{
try{
var r = JSON.parse(rsp);
if(r.status == "DONE"){
visit_url('<%=url%>');
return;
}
else if(r.status == "REBOOT"){
visit_url('<%=luci.dispatcher.build_url("admin", "network", "wifi", "apply_reboot")%>');
return;
}
}
catch(e){}
finally{
remNumTries -= 1;
if(remNumTries > 0){
window.setTimeout(get_apply_status, 5000, remNumTries);
}
else{
show_header();
document.getElementById("TimeoutMsgDiv").style.display = '';
document.getElementById("BusyMsg").style.display = 'none';
}
}
}
function get_apply_status(remNumTries)
{
XHR.get('<%=luci.dispatcher.build_url("admin", "network", "wifi", "get_apply_status")%>', null,
function(x)
{
console.log(x);
get_apply_status_cb(x.response, remNumTries);
}
);
}
function show_header()
{
document.getElementsByTagName("HEADER")[0].style.display = "block";
}
function hide_header()
{
document.getElementsByTagName("HEADER")[0].style.display = "none";
}
window.onload = function(){
hide_header();
window.setTimeout(get_apply_status, 5000, 180);
}
window.onbeforeunload = function(evt) {
evt.returnValue = "Saved data have not been applied yet! Are you sure?";
return evt.returnValue;
}
</script>
<%+footer%>

View File

@ -0,0 +1,557 @@
<%+header%>
<!--
This module is a demo to configure MTK' proprietary WiFi driver.
Basic idea is to bypass uci and edit wireless profile (mt76xx.dat) directly.
LuCI's WiFi configuration is more logical and elegent, but it's quite tricky to
translate uci into MTK's WiFi profile (like we did in "uci2dat").
Hua Shao <nossiac@163.com>
-->
<%
local mtkwifi = require("mtkwifi")
local devs = mtkwifi.get_all_devs()
local l1dat, l1 = mtkwifi.__get_l1dat()
local dridx = l1.DEV_RINDEX
local main_ifname
local chipname
%>
<style>
table,td,th
{
border-top:1px solid ;
border-spacing: 0;
border-color:#E0E0E0;
}
</style>
<h2><%:Wireless%></h2>
<% if #devs == 0 then %>
<div class="alert-message">
<big><strong><%:No wireless device found!%></strong></big>
</div>
<% else %>
<fieldset class="cbi-section">
<table class="cbi-section-table" style="empty-cells:hide">
<% for _,dev in ipairs(devs) do %>
<% main_ifname = l1dat and l1dat[dridx][dev.devname].main_ifname or dbdc_prefix[mainidx][subidx].."0" %>
<% if mtkwifi.exists("/sys/class/net/"..main_ifname) then %>
<!-- physical device -->
<tbody>
<% if chipname ~= string.split(dev.devname,".")[1].."."..(dev.mainidx) then %>
<% chipname = string.split(dev.devname,".")[1].."."..(dev.mainidx) %>
<tr style="height:45px">
<td style="padding:15px;">
<img src="/luci-static/resources/icons/wifi_big.png">
</td>
<td colspan="2" style="text-align:left">
<big><strong title="<%=dev.profile%>"> <%=string.split(dev.devname,".")[1]%></strong></big>
<%if not dev.vifs then%>
<span style="color:red;">* <%:FATAL ERROR: Incorrect Profile Settings%></span>
<%end%>
<br>
<%if dev.version then%>
<span> <%:Driver version%>: <%=dev.version%> <br/></span>
<%end%>
</td>
<td style="width:310px;text-align:right">
<div id="ActionBtns_<%=string.split(dev.devname,".")[1]%>">
<button class="cbi-button cbi-button-edit" onclick="visit_url('<%=string.split(dev.devname,".")[1]%>',
'<%=luci.dispatcher.build_url("admin", "network", "wifi", "chip_cfg_view", dev.devname)%>')"><%:CONFIG%></button>
</div>
<div id="BusyText_<%=string.split(dev.devname,".")[1]%>" style="display:none">
<big><strong><%:Processing request.%></strong></big>
</div>
</td>
</tr>
<% end %>
<tr>
<td style="width:56px"></td>
<td colspan="2" style="text-align:left;padding-left:25px;">
<big><strong title="<%=dev.profile%>"><%=dev.devname%></strong></big>
<%local diff = mtkwifi.diff_profile(dev.profile)%>
<%if next(diff) ~= nil then%>
<span style="color:red;">* <%:need reload to apply changes%></span>
<%end%>
<br>
<%local cfgs = mtkwifi.load_profile(dev.profile)%>
<span> <%:Current Band%>: <%=mtkwifi.band(string.split(cfgs.WirelessMode,";")[1])%> <br/> </span>
<% if dev.Enable == "0" then%>
<span style="color:red;"> <%:Wireless device is disabled%> </span>
<%else%>
<span> <%:Work mode%>: <% if dev.ApCliEnable == "1" then %> APCli <% else %> AP <% end %> <br/> </span>
<%local temp = mtkwifi.get_temp(dev.devname)%>
<%if temp then%>
<span> <%:Tempature%>: <%=temp%>&#176;C <br/> </span>
<%end%>
<%local txpwr = mtkwifi.get_txpwr(dev.devname)%>
<%if txpwr then%>
<span> <%:Tx Power%>: <%=txpwr%> dbm <br/> </span>
<%end%>
<%end%>
</td>
<td style="width:310px;text-align:right">
<div id="ActionBtns_<%=dev.devname%>">
<%if not dev.vifs then%>
<button class="cbi-button cbi-button-apply" id="reset" onclick="visit_url('<%=dev.devname%>',
'<%=luci.dispatcher.build_url("admin", "network", "wifi", "reset_to_defaults", dev.devname)%>')"><%:Restore Profile to Factory Settings%></button>
<%else%>
<button class="cbi-button cbi-button-reset" onclick="visit_url_confirm('<%:Are you sure to RELOAD%> <%=dev.devname%>?',
'<%=dev.devname%>','<%=luci.dispatcher.build_url("admin", "network", "wifi", "reload", dev.devname)%>')"><%:RELOAD%></button>
<button class="cbi-button cbi-button-edit" onclick="visit_url('<%=dev.devname%>',
'<%=luci.dispatcher.build_url("admin", "network", "wifi", "dev_cfg_view", dev.devname)%>')"><%:CONFIG%></button>
<button class="cbi-button cbi-button-add" onclick='add_vif("<%=dev.devname%>","<%=dev.vifs.__prefix%>","<%=dev.maxVif%>")'><%:ADD%></button>
<%end%>
</div>
<div id="BusyText_<%=dev.devname%>" style="display:none">
<big><strong><%:Processing request.%></strong></big>
</div>
</td>
</tr>
<!-- /physical device -->
<% if dev.vifs and dev.Enable == "1" then%>
<!-- network list -->
<% for _,vif in ipairs(dev.vifs) do %>
<tr class="cbi-section-table-row cbi-rowstyle-1">
<td></td>
<td class="cbi-value-field" style="width:16px; padding:3px;padding-left:40px;">
<% if vif.state == "up" then %>
<img src="/luci-static/resources/icons/signal-75-100.png">
<% else %>
<img src="/luci-static/resources/icons/signal-none.png">
<% end %>
</td>
<td class="cbi-value-field" style="vertical-align:middle; text-align:left; padding:3px">
<strong><%:Interface%>:</strong> <%=vif.vifname%> |
<strong><%:Type%>:</strong> AP |
<strong>SSID:</strong>
<span id="SSID_<%=vif.vifname%>">
<% if vif.__ssid == "" then %>
<span style="color:red;"><%:Error: value not present in dat file%></span>
<% else %>
<span> <%=vif.__ssid and vif.__ssid:gsub(" ","&nbsp;") or nil%> <% end %> </span>
</span> |
<strong><%:Channel%>:</strong>
<span id="CHANNEL_<%=vif.vifname%>"><%=vif.__channel or dev.Channel%></span>
<br>
<% if vif.state == "up" then %>
<strong>BSSID:</strong> <span id="BSSID_<%=vif.vifname%>"><%=vif.__bssid%></span> | <strong><%:Wireless Mode%>:</strong> <span><%=dev.WirelessModeList[tonumber(vif.__wirelessmode)]%></span>
<% else %>
<%:Wireless is disabled or not associated%>
<% end %>
</td>
<td class="cbi-value-field" style="text-align:right">
<div id="ActionBtns_<%=vif.vifname%>">
<% if not vif.state then %>
<button class="cbi-button cbi-button-apply" onclick="alert('Please click on Reload button of ' + '<%=dev.devname%>' + ' device to enable this interface.')"><%:ENABLE%></button>
<% elseif vif.state == "up" then %>
<button class="cbi-button cbi-button-reset" onclick="visit_url_confirm('<%:Are you sure to DISABLE%> <%=vif.vifname%>?',
'<%=vif.vifname%>','<%=luci.dispatcher.build_url("admin", "network", "wifi", "vif_disable", vif.vifname)%>')"><%:DISABLE%></button>
<% else %>
<button class="cbi-button cbi-button-apply" onclick="visit_url('<%=vif.vifname%>',
'<%=luci.dispatcher.build_url("admin", "network", "wifi", "vif_enable", vif.vifname)%>')"><%:ENABLE%></button>
<% end %>
<button class="cbi-button cbi-button-edit" onclick="visit_url('<%=vif.vifname%>',
'<%=luci.dispatcher.build_url("admin", "network", "wifi", "vif_cfg_view", dev.devname, vif.vifname)%>')"><%:CONFIG%></button>
<button class="cbi-button cbi-button-remove" onclick="visit_url_confirm('<%:Are you sure to REMOVE%> <%=vif.vifname%>?',
'<%=vif.vifname%>','<%=luci.dispatcher.build_url("admin", "network", "wifi", "vif_del", dev.devname, vif.vifname)%>')"><%:REMOVE%></button>
</div>
<div id="BusyText_<%=vif.vifname%>" style="display:none">
<big><strong><%:Processing request.%></strong></big>
</div>
</td>
</tr>
<% end %>
<!-- /network list -->
<!-- apcli list -->
<% if dev.apcli then %>
<tr>
<td></td>
<td class="cbi-value-field" style="width:16px; padding:3px;padding-left:40px;">
<% if dev.apcli.state == "up" then %>
<img src="/luci-static/resources/icons/signal-75-100.png">
<% else %>
<img src="/luci-static/resources/icons/signal-none.png">
<% end %>
</td>
<td class="cbi-value-field" style="vertical-align:middle; text-align:left; padding:3px"><strong><%:Interface%>:</strong> <%=dev.apcli.devname%> | <strong><%:Type%>:</strong> STA | <strong><%:Status%>:</strong> <span id="ConnStatus_<%=dev.apcli.devname%>"><% if dev.ApCliEnable ~= "1" then %> <%:Disconnected%> <% end %></span>
<br>
<div id="LoadingBar_<%=dev.apcli.devname%>" <% if dev.ApCliEnable ~= "1" then %> style="display:none" <% end %>>
<img src="<%=resource%>/icons/loading.gif" alt="<%:Loading%>" style="width:20px;height:20px;vertical-align:middle;"/> <cite>&nbsp;<%:Loading connection information of%> <%=dev.apcli.devname%></cite>
</div>
<div id="ConnInfo_<%=dev.apcli.devname%>" style="display:none">
<strong>BSSID:</strong> <span id="ApCliBssid_<%=dev.apcli.devname%>"></span> |
<strong>SSID:</strong> <span id="ApCliSsid_<%=dev.apcli.devname%>"></span>
</div>
<span id="DisConnMsg_<%=dev.apcli.devname%>" <% if dev.ApCliEnable == "1" then %> style="display:none" <% end %>><%:Wireless is disabled or not associated%></span>
</td>
<td style="text-align:right">
<div id="ActionBtns_<%=dev.apcli.devname%>">
<% if dev.ApCliEnable ~= "1" then %>
<% if dev.apcli.state == "up" then %>
<button class="cbi-button cbi-button-reset" onclick="visit_url_confirm('<%:Are you sure to DISABLE%> <%=dev.apcli.devname%>?',
'<%=dev.apcli.devname%>','<%=luci.dispatcher.build_url("admin", "network", "wifi", "vif_disable", dev.apcli.vifname)%>')"><%:DISABLE%></button>
<button class="cbi-button cbi-button-reload" onclick="visit_url_confirm('<%:Are you sure to RECONNECT%> <%=dev.apcli.devname%>?',
'<%=dev.apcli.devname%>','<%=luci.dispatcher.build_url("admin", "network", "wifi", "apcli_connect", dev.devname, dev.apcli.vifname)%>')"><%:RECONNECT%></button>
<% end %>
<button class="cbi-button cbi-button-edit" onclick="visit_url('<%=dev.apcli.devname%>',
'<%=luci.dispatcher.build_url("admin", "network", "wifi", "apcli_cfg_view", dev.devname, dev.apcli.vifname)%>')"><%:CONFIG%></button>
<% else %>
<button class="cbi-button cbi-button-reset" style="display:none" id="ApCliDownBtn_<%=dev.apcli.devname%>" onclick="visit_url_confirm('<%:Are you sure to DISABLE%> <%=dev.apcli.devname%>?',
'<%=dev.apcli.devname%>','<%=luci.dispatcher.build_url("admin", "network", "wifi", "vif_disable", dev.apcli.vifname)%>')"><%:DISABLE%></button>
<button class="cbi-button cbi-button-apply" style="display:none" id="ApCliUpBtn_<%=dev.apcli.devname%>" onclick="visit_url('<%=dev.apcli.devname%>',
'<%=luci.dispatcher.build_url("admin", "network", "wifi", "vif_enable", dev.apcli.vifname)%>')"><%:ENABLE%></button>
<button class="cbi-button cbi-button-remove" style="display:none" id="ApCliDisConnBtn_<%=dev.apcli.devname%>" onclick="visit_url_confirm('<%:Are you sure to DISCONNECT%> <%=dev.apcli.devname%>?',
'<%=dev.apcli.devname%>','<%=luci.dispatcher.build_url("admin", "network", "wifi", "apcli_disconnect", dev.devname, dev.apcli.vifname)%>')"><%:DISCONNECT%></button>
<button class="cbi-button cbi-button-reload" style="display:none" id="ApCliConnBtn_<%=dev.apcli.devname%>" onclick="visit_url_confirm('<%:Are you sure to RECONNECT%> <%=dev.apcli.devname%>?',
'<%=dev.apcli.devname%>','<%=luci.dispatcher.build_url("admin", "network", "wifi", "apcli_connect", dev.devname, dev.apcli.vifname)%>')"><%:RECONNECT%></button>
<button class="cbi-button cbi-button-edit" style="display:none" id="ApCliCfgBtn_<%=dev.apcli.devname%>" onclick="visit_url('<%=dev.apcli.devname%>',
'<%=luci.dispatcher.build_url("admin", "network", "wifi", "apcli_cfg_view", dev.devname, dev.apcli.vifname)%>')"><%:CONFIG%></button>
<% end %>
</div>
<div id="BusyText_<%=dev.apcli.devname%>" style="display:none">
<big><strong><%:Processing request.%></strong></big>
</div>
</td>
</tr>
<% end %>
<!-- /apcli list -->
<% end %>
</tbody>
<% end %>
<% end %>
</table>
</fieldset>
<fieldset class="cbi-section">
<h2><%:Station List%></h2>
<table class="cbi-section-table" style="margin: auto" id="iw-assoclist">
<tr class="cbi-section-table-titles">
<th class="cbi-section-table-cell"><%:Interface%></th>
<th class="cbi-section-table-cell">SSID</th>
<th class="cbi-section-table-cell"><%:MAC-Address%></th>
<th class="cbi-section-table-cell"><%:Hostname%></th>
<th class="cbi-section-table-cell"><%:Security%></th>
<th class="cbi-section-table-cell"><%:Signal%> (dBm)</th>
<th class="cbi-section-table-cell"><%:TX Rate%></th>
<th class="cbi-section-table-cell"><%:RX Rate%></th>
<th class="cbi-section-table-cell"><%:Connected Time%></th>
</tr>
<tr class="cbi-section-table-row cbi-rowstyle-2">
<td class="cbi-value-field" colspan="9">
<em><%:Collecting data...%></em>
</td>
</tr>
</table>
</fieldset>
<% end %>
<script>
function clean_stalist_table()
{
var table = document.getElementById('iw-assoclist');
//console.log("clean_aplist_table.aplist len=" + table.rows.length);
while(table.rows.length > 1)
table.deleteRow(-1);
}
function is_rssi_valid(rssi)
{
if (rssi == "-109" || rssi == "-127")
return false;
return true;
}
function insert_stalist_table(ifname, ssid, sta_list)
{
var i, tr_row, td_cell;
var rssi_str, host_str;
var tableid = document.getElementById('iw-assoclist');
for (i = 0; sta_list[i] ; i++){
//console.log(sta_list[i]);
tr_row = tableid.insertRow(-1);
tr_row.align = "center";
td_cell = tr_row.insertCell(-1);
td_cell.innerHTML = ifname;
td_cell = tr_row.insertCell(-1);
td_cell.innerHTML = ssid;
td_cell = tr_row.insertCell(-1);
td_cell.innerHTML = sta_list[i].MacAddr;
host_str = sta_list[i].hostname
if (sta_list[i].ipv4 != "")
host_str = host_str + ", " + sta_list[i].ipv4
if (sta_list[i].ipv6 != "")
host_str = host_str + "<br>" + sta_list[i].ipv6
td_cell = tr_row.insertCell(-1);
td_cell.innerHTML = host_str;
td_cell = tr_row.insertCell(-1);
td_cell.innerHTML = sta_list[i].security;
rssi_str = sta_list[i].AvgRssi0;
if (is_rssi_valid(sta_list[i].AvgRssi1))
rssi_str = rssi_str + ", " + sta_list[i].AvgRssi1;
if (is_rssi_valid(sta_list[i].AvgRssi2))
rssi_str = rssi_str + ", " + sta_list[i].AvgRssi2;
if (is_rssi_valid(sta_list[i].AvgRssi3))
rssi_str = rssi_str + ", " + sta_list[i].AvgRssi3;
td_cell = tr_row.insertCell(-1);
td_cell.innerHTML = rssi_str;
//TxRate
td_cell = tr_row.insertCell(-1);
td_cell.innerHTML = sta_list[i].TxRate + "Mbps," + sta_list[i].Bw+ "MHz" + "<br>" + sta_list[i].PhyMode + ", " + sta_list[i].Mcs + ", " + sta_list[i].Gi;
//RxRate
td_cell = tr_row.insertCell(-1);
td_cell.innerHTML = sta_list[i].RxRate + "Mbps," + sta_list[i].LastBw + "MHz" + "<br>" + sta_list[i].LastPhyMode + ", " + sta_list[i].LastMcs + ", " + sta_list[i].LastGi;
td_cell = tr_row.insertCell(-1);
td_cell.innerHTML = sta_list[i].Hr + ":" + sta_list[i].Min + ":" + sta_list[i].Sec;
}
}
function disable_all_buttons()
{
var inp = document.getElementsByTagName("BUTTON");
for(var idx=0; idx < inp.length; idx++){
inp[idx].disabled = true;
}
}
function enable_all_buttons()
{
var inp = document.getElementsByTagName("BUTTON");
for(var idx=0; idx < inp.length; idx++){
inp[idx].disabled = false;
}
}
function visit_url(idSuffix,to)
{
//disable_all_buttons();
//document.getElementById("ActionBtns_"+idSuffix).style.display = "none";
//document.getElementById("BusyText_"+idSuffix).style.display = "";
location.href = to;
}
function visit_url_confirm(msg, idSuffix, to) {
var i = confirm(msg);
if (i)
visit_url(idSuffix,to);
}
function add_vif(devName, vifPrefix, maxVif)
{
if (!confirm('<%:Are you sure to ADD wireless interface?%>'))
return;
disable_all_buttons();
document.getElementById("ActionBtns_"+devName).style.display = "none";
document.getElementById("BusyText_"+devName).style.display = "";
if(isNaN(maxVif) || !/^\d{1,}$/.test(maxVif)){
alert("Failed to add a new interface!\nERROR: Incorrect maximum supported VIF setting!\nmaxVif = " + maxVif);
location.reload(true);
return;
}
XHR.get('<%=luci.dispatcher.build_url("admin", "network", "wifi", "get_bssid_num")%>/' + devName, null,
function(x)
{
try{
var resp = JSON.parse(x.response);
if(resp["status"] == "SUCCESS"){
if(isNaN(resp["bssidNum"]) || !/^\d{1,}$/.test(resp["bssidNum"]) || parseInt(resp["bssidNum"]) > parseInt(maxVif)){
alert("Failed to add a new interface!\nERROR: Device settings have been corrupted!\nBssidNum in Response is: " + resp["bssidNum"]);
location.reload(true);
}
else if(parseInt(resp["bssidNum"]) == parseInt(maxVif)){
alert("As the Device " + devName + " supports maximum " + maxVif + " virtual interfaces, no more virtual interfaces can be added!");
}
else{
location.href = '<%=luci.dispatcher.build_url("admin", "network", "wifi", "vif_add_view")%>/' + devName + '/' + vifPrefix;
}
}
else{
alert("Failed to add a new interface!\nERROR: " + resp["status"]);
}
}
catch(e){
alert("Failed to add a new interface!\nERROR: Incorrect response received!");
console.log("Failed to add a new interface!\nERROR: [" + e.name + "] " + e.message);
}
finally{
enable_all_buttons();
document.getElementById("ActionBtns_"+devName).style.display = "";
document.getElementById("BusyText_"+devName).style.display = "none";
}
}
);
}
var stainfo = [];
var stainfo_inited = 0;
function staInfoHandler()
{
for (var i=0; stainfo[i]; i++) {
//console.log(stainfo[i].ifname);
XHR.poll(3, "<%=luci.dispatcher.build_url("admin", "network", "wifi", "sta_info")%>/" + stainfo[i].ifname, null,
function(x)
{
try{
stainfo_inited = 1;
//console.log(x.responseText);
var response = JSON.parse(x.responseText);
for (var j=0; stainfo[j]; j++) {
if (response[0].ifname == stainfo[j].ifname) {
response.shift(); //delete first item
stainfo[j].sta = response;
}
}
}
catch(e){}
}
);
}
}
function printstainfo()
{
if (stainfo.length == 0) {
clean_stalist_table();
return;
}
if (stainfo_inited) {
//console.log(stainfo);
clean_stalist_table();
var stabuf = stainfo;
for (var i=0; stabuf[i]; i++) {
insert_stalist_table(stabuf[i].ifname, stabuf[i].ssid, stabuf[i].sta);
}
}
setTimeout(printstainfo, 2000);
}
function apcliInfoTimerHandler(vifNameList,idx,remSec)
{
XHR.get('<%=luci.dispatcher.build_url("admin", "network", "wifi", "get_apcli_conn_info")%>/' + vifNameList[idx], null,
function(x)
{
try{
updateApCliInfoCb(vifNameList,idx,remSec,JSON.parse(x.response));
}
catch(e){
var y={conn_state:"Disconnected"};
updateApCliInfoCb(vifNameList,idx,0,y);
}
}
);
}
function updateApCliInfoCb(vifNameList,idx,remSec,connInfo)
{
var vifName = vifNameList[idx];
if(connInfo.hasOwnProperty("conn_state") && connInfo["conn_state"] == "Connected"){
document.getElementById("ConnStatus_"+vifName).innerHTML = "<%:Connected%>";
document.getElementById("ApCliBssid_"+vifName).innerHTML = (connInfo.hasOwnProperty("bssid")) ? connInfo["bssid"] : "?";
document.getElementById("ApCliSsid_"+vifName).innerHTML = (connInfo.hasOwnProperty("ssid")) ? connInfo["ssid"].replace(/ /g,"&nbsp;") : "";
document.getElementById("LoadingBar_"+vifName).style.display = "none";
document.getElementById("ApCliDownBtn_"+vifName).style.display = "";
document.getElementById("ApCliDisConnBtn_"+vifName).style.display = "";
document.getElementById("ApCliCfgBtn_"+vifName).style.display = "";
document.getElementById("ConnInfo_"+vifName).style.display = "";
if(idx < vifNameList.length - 1){
setTimeout(apcliInfoTimerHandler,1000,vifNameList,idx+1,5);
}
}
else{
if(remSec > 1){
setTimeout(apcliInfoTimerHandler,1000,vifNameList,idx,remSec - 1);
}
else{
if (connInfo.hasOwnProperty("conn_state") && (connInfo["conn_state"] == "Connected")) {
document.getElementById("ConnStatus_"+vifName).innerHTML = "<%:Connected%>";
} else {
document.getElementById("ConnStatus_"+vifName).innerHTML = "<%:Disconnected%>";
}
document.getElementById("LoadingBar_"+vifName).style.display = "none";
document.getElementById("DisConnMsg_"+vifName).style.display = "";
if (connInfo.hasOwnProperty("infc_state") && connInfo["infc_state"] == "up"){
document.getElementById("ApCliDownBtn_"+vifName).style.display = "";
}
else{
document.getElementById("ApCliUpBtn_"+vifName).style.display = "";
}
document.getElementById("ApCliConnBtn_"+vifName).style.display = "";
document.getElementById("ApCliCfgBtn_"+vifName).style.display = "";
if(idx < vifNameList.length - 1){
setTimeout(apcliInfoTimerHandler,1000,vifNameList,idx+1,5);
}
}
}
}
function updateApCliInfo()
{
var apCliInfcList=[];
<% for _,dev in ipairs(devs) do %>
<% if dev.apcli and dev.ApCliEnable == "1" then %>
apCliInfcList.push("<%=dev.apcli.devname%>");
<% end %>
<% end %>
if (apCliInfcList.length >= 1 ){
setTimeout(apcliInfoTimerHandler,1000,apCliInfcList,0,3);
}
}
function get_apply_status_cb(rsp)
{
try{
var r = JSON.parse(rsp);
}
catch(e){
return;
}
if(r.status == "ON_PROGRESS"){
var u = confirm("Device is applying the saved settings now!\n" +
"It is recommended to wait until all the saved settings are applied.\n" +
"Please click on 'OK' button to wait for the device.\n" +
"or click on 'Cancel' button to configure the settings available in current web-page.");
if (u == true) {
location = '<%=luci.dispatcher.build_url("admin", "network", "wifi", "loading")%>' + window.location.pathname;
}
}
}
function get_apply_status()
{
XHR.get('<%=luci.dispatcher.build_url("admin", "network", "wifi", "get_apply_status")%>', null,
function(x)
{
console.log(x);
get_apply_status_cb(x.response);
}
);
}
window.onload = function(){
get_apply_status();
updateApCliInfo();
<% for _,dev in ipairs(devs) do %>
<% if dev.vifs then%>
<% for _,vif in ipairs(dev.vifs) do %>
<% if vif.state == "up" then %>
stainfo.push({"ifname": "<%=vif.vifname%>", "ssid": "<%=vif.__ssid%>", "sta": ""});
<% end %>
<% end %>
<% end %>
<% end %>
staInfoHandler(stainfo);
printstainfo();
}
</script>
<%+footer%>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,515 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8\n"
msgid "Auto"
msgstr "自动"
msgid "Disable"
msgstr "禁用"
msgid "US"
msgstr "US (美国)"
msgid "JP"
msgstr "JP (日本)"
msgid "FR"
msgstr "FR (法国)"
msgid "IE"
msgstr "IE (爱尔兰)"
msgid "CN"
msgstr "CN (中国)"
msgid "NONE"
msgstr "无"
msgid "Short"
msgstr "Short (短)"
msgid "long"
msgstr "Long (长)"
msgid "Enable"
msgstr "启用"
msgid "Mandatory"
msgstr "强制"
msgid "Always On"
msgstr "始终开启"
msgid "Always Off"
msgstr "始终关闭"
msgid "Tempature"
msgstr "温度"
msgid "Tx Power"
msgstr "发射功率"
msgid "Driver version"
msgstr "驱动版本"
msgid "Current Band"
msgstr "当前频段"
msgid "Work mode"
msgstr "工作模式"
msgid "CONFIG"
msgstr "配置"
msgid "RELOAD"
msgstr "重载"
msgid "ADD"
msgstr "添加"
msgid "RECONNECT"
msgstr "重连"
msgid "DISABLE"
msgstr "禁用"
msgid "ENABLE"
msgstr "启用"
msgid "REMOVE"
msgstr "移除"
msgid "Station List"
msgstr "已连接站点"
msgid "Interface"
msgstr "接口"
msgid "MAC-Address"
msgstr "MAC地址"
msgid "Signal"
msgstr "信号强度"
msgid "TX Rate"
msgstr "发射速率"
msgid "Rx Rate"
msgstr "接收速率"
msgid "Connected Time"
msgstr "已连接时间"
msgid "Channel"
msgstr "信道"
msgid "Security Mode"
msgstr "加密方式"
msgid "Action"
msgstr "动作"
msgid "Choose This"
msgstr "选择"
msgid "40MHz HT Ext Channel"
msgstr "HT 40MHz 扩展信道"
msgid "80MHz Second VHT Channel"
msgstr "VHT 80MHz 第二信道"
msgid "Type"
msgstr "接口类型"
msgid "Status"
msgstr "状态"
msgid "DISCONNECT"
msgstr "断开"
msgid "Connected"
msgstr "已连接"
msgid "Disconnected"
msgstr "未连接"
msgid "FATAL ERROR: Incorrect Profile Settings"
msgstr "严重错误: 配置文件设置不正确"
msgid "Error: value not present in dat file"
msgstr "错误dat文件中未指定SSID值"
msgid "Wireless is disabled or not associated"
msgstr "无线已禁用或未关联"
msgid "Processing request."
msgstr "正在处理请求..."
msgid "need reload to apply changes"
msgstr "请重启无线以应用设置"
msgid "Click here"
msgstr "点击此处"
msgid "to apply changes"
msgstr "以应用设置"
msgid "Wireless Mode"
msgstr "无线模式"
msgid "Chip Configurations"
msgstr "无线芯片设置"
msgid "Device Configuration"
msgstr "无线设备设置"
msgid "Interface Configurations"
msgstr "无线接口设置"
msgid "ApCli Configurations"
msgstr "ApCli设置"
msgid "Loading connection information of"
msgstr "正在加载连接信息"
msgid "ApCli Available Wireless Networks"
msgstr "ApCli可用无线网络列表"
msgid "ApCli Connection Configurations"
msgstr "ApCli连接设置"
msgid "Decline BA Request"
msgstr "拒绝BlockAck请求"
msgid "Reverse Direction Grant (RDG)"
msgstr "HT反向授权(RDG)"
msgid "BA Win size"
msgstr "Block Ack窗口大小"
msgid "HT Disallow TKIP"
msgstr "不允许HT TKIP"
msgid "Wi-Fi HWNAT"
msgstr "启用Wi-Fi硬件加速"
msgid "E2pAccessMode"
msgstr "EEPROM访问方式"
msgid "Beacon Interval"
msgstr "Beacon间隔"
msgid "Data Beacon Rate (DTIM)"
msgstr "DTIM周期"
msgid "BG Protection Mode"
msgstr "BG保护模式"
msgid "Short Preamble"
msgstr "启用短前导码"
msgid "TX Burst"
msgstr "启用突发传输"
msgid "Short Slot"
msgstr "启用短时槽"
msgid "Channel Auto"
msgstr "自动信道"
msgid "BSS color"
msgstr "BSS颜色代码"
msgid "TWT Support"
msgstr "TWT节能机制"
msgid "Country Code"
msgstr "国家代码"
msgid "Country Region"
msgstr "国家区域"
msgid "Channel BandWidth"
msgstr "信道宽度"
msgid "TX Stream"
msgstr "发射空间流"
msgid "RX Stream"
msgstr "接收空间流"
msgid "TX Power"
msgstr "发射功率"
msgid "DFS"
msgstr "动态频率选择(DFS)"
msgid "Beam Forming and MIMO Setting"
msgstr "波束成形与MU-MIMO设置"
msgid "Spatial Reuse"
msgstr "空间复用"
msgid "Auth Mode"
msgstr "认证模式"
msgid "Encryption"
msgstr "加密方式"
msgid "Key Renewal Interval"
msgstr "组密钥更新周期"
msgid "Key"
msgstr "密码"
msgid "MFPC"
msgstr "兼容保护管理帧(MFPC)"
msgid "MFPR"
msgstr "强制保护管理帧(MFPR)"
msgid "Hidden SSID"
msgstr "隐藏SSID"
msgid "AP Isolation"
msgstr "启用AP隔离"
msgid "WMM Capable"
msgstr "启用WMM"
msgid "Fixed TX Rate"
msgstr "固定发射速率"
msgid "HT STBC"
msgstr "启用HT STBC"
msgid "HT LDPC"
msgstr "启用HT LDPC"
msgid "VHT STBC"
msgstr "启用VHT STBC"
msgid "VHT LDPC"
msgstr "启用VHT LDPC"
msgid "DLS Capable"
msgstr "启用终端直通(DLS)"
msgid "802.11k RRM"
msgstr "启用 802.11k"
msgid "802.11r FT"
msgstr "启用 802.11r"
msgid "APSD Capable"
msgstr "启用节能模式(APSD)"
msgid "Fragment Threshold"
msgstr "分片阈值"
msgid "RTS Threshold"
msgstr "RTS阈值"
msgid "VHT Short GI"
msgstr "VHT保护间隔(GI)"
msgid "VHT BW Signaling"
msgstr "VHT动态频宽信令"
msgid "Dynamic"
msgstr "动态"
msgid "HT Protection"
msgstr "HT保护模式"
msgid "HT Guard Interval"
msgstr "HT保护间隔(GI)"
msgid "HT Operating Mode"
msgstr "HT操作模式"
msgid "HT Mixed Mode"
msgstr "HT混合模式(Mixed)"
msgid "HT Green Field"
msgstr "HT绿野模式(Green Field)"
msgid "Auto Block ACK"
msgstr "自动块确认(BlockAck)"
msgid "Access Control"
msgstr "访问控制"
msgid "Access Policy"
msgstr "访问控制策略"
msgid "Access control MAC address list"
msgstr "访问控制MAC地址列表"
msgid "White List"
msgstr "白名单模式"
msgid "Black List"
msgstr "黑名单模式"
msgid "Basic Settings"
msgstr "基本设置"
msgid "HE Settings"
msgstr "HE设置"
msgid "DL OFDMA"
msgstr "下行OFDMA"
msgid "UL OFDMA"
msgstr "上行OFDMA"
msgid "DL MU-MIMO"
msgstr "下行MU-MIMO"
msgid "UL MU-MIMO"
msgstr "上行MU-MIMO"
msgid "Scan Wireless Network"
msgstr "扫描无线网络"
msgid "ApClient Mode"
msgstr "AP客户端模式"
msgid "APClient/Repeater Mode."
msgstr "AP客户端中继模式。"
msgid "MAC Repeater Mode"
msgstr "启用MAC中继模式"
msgid "Root AP SSID"
msgstr "上级AP SSID"
msgid "Root AP Channel"
msgstr "上级AP信道"
msgid "Root AP Authentication Mode"
msgstr "上级AP认证方式"
msgid "Root AP Encryption"
msgstr "上级AP加密方式"
msgid "Root AP WPA Key"
msgstr "上级AP WPA密钥"
msgid "ApCli MFPC"
msgstr "ApCli兼容保护管理帧(MFPC)"
msgid "ApCli MFPR"
msgstr "ApCli强制保护管理帧(MFPR)"
msgid "ApCli MFPSHA256"
msgstr "ApCli启用SHA256保护管理帧"
msgid "WEP Default Key"
msgstr "WEP默认密钥ID"
msgid "Root AP WEP Key"
msgstr "上级AP WEP密钥"
msgid "Length"
msgstr "长度"
msgid "WEP Key"
msgstr "WEP密钥"
msgid "WEP Key Type"
msgstr "WEP密钥类型"
msgid "PMK Cache Period"
msgstr "PMK缓存周期"
msgid "WEP for 8021X"
msgstr "启用8021X WEP"
msgid "Pre-Authentication"
msgstr "启用预认证"
msgid "Radius Server IP"
msgstr "Radius认证服务器IP"
msgid "Radius Server Port"
msgstr "Radius认证服务器端口"
msgid "Radius Key"
msgstr "Radius密钥"
msgid "Radius Session Timeout"
msgstr "Radius会话超时时间"
msgid "Radius Idle Timeout"
msgstr "Radius空闲超时时间"
msgid "MFPSHA256"
msgstr "启用SHA256保护管理帧"
msgid "Please wait while the settings are being applied."
msgstr "正在应用设置,请稍候。"
msgid "Please wait while the request is being processed."
msgstr "正在处理请求,请稍候。"
msgid "No wireless device found!"
msgstr "未找到无线设备!"
msgid "Please input a valid radius server port number."
msgstr "请输入有效的Radius服务器端口号。"
msgid "The radius shared secret contains invalid characters."
msgstr "Radius密钥包含无效字符。"
msgid "Please input a valid session timeout number or u may have left it empty."
msgstr "请输入有效的Radius会话超时时间。"
msgid "Radius session time out is empty."
msgstr "Radius会话超时时间为空。"
msgid "Please input a valid idle timeout number or u may have left it empty."
msgstr "请输入有效的Radius空闲超时时间。"
msgid "Radius idle time out is empty."
msgstr "Radius空闲超时时间为空。"
msgid "IGMP Snooping"
msgstr "IGMP 侦听"
msgid "Security"
msgstr "安全性"
msgid "Restore Profile to Factory Settings"
msgstr "恢复无线配置文件为出厂设置"
msgid "Are you sure to RELOAD"
msgstr "你确认要重载"
msgid "Are you sure to DISABLE"
msgstr "你确认要禁用"
msgid "Are you sure to REMOVE"
msgstr "你确认要移除"
msgid "Are you sure to RECONNECT"
msgstr "你确认要重新连接"
msgid "Are you sure to DISCONNECT"
msgstr "你确认要断开"
msgid "Are you sure to ADD wireless interface?"
msgstr "你确认要新增无线接口?"
msgid "Enable wireless device"
msgstr "启用此无线设备"
msgid "Wireless device is disabled"
msgstr "无线设备已禁用"
msgid "Kick STA Threshold"
msgstr "弱信号剔除阈值"
msgid "STA Assoc Threshold"
msgstr "弱信号接入阈值"

View File

@ -0,0 +1,177 @@
#!/usr/bin/lua
-- Constant Definition
local FW_PATH = "/lib/firmware/"
local MTD_PATH = "/dev/"
local MTD_TABLE = "/proc/mtd"
local E2P_PART_NAME = "Factory"
local E2P_FILE_NAME = "e2p"
function show_usage()
print("Usage: l1dat genconfig | dbg | idx2if idx | if2zone ifname | if2dat ifname | zone2if zone | if2dbdcidx ifname")
end
function print_err(msg)
io.stderr:write("[ERR][l1dat] "..msg)
end
if not pcall(require, "l1dat_parser") then
if arg[1] == "dbg" then
print_err("Load l1dat_parser module failed\n")
end
return
end
local l1parser = require("l1dat_parser")
local l1dat = l1parser.load_l1_profile(l1parser.L1_DAT_PATH)
if not l1dat then
if arg[1] == "dbg" then
print_err("l1profile.dat is ivalid\n")
end
return
end
function read_pipe(pipe)
local fp = io.popen(pipe)
local txt = fp:read("*a")
fp:close()
return txt
end
function eeprom_extract(part, offset, size, bin_name)
local part_name = part or E2P_PART_NAME
local dump_name = bin_name or E2P_FILE_NAME
if not offset or not size or tonumber(offset) < 0 or tonumber(size) < 0 then
print_err("Invalid offset or size value")
return
end
local offset_decimal = string.format("%d", offset)
local size_decimal = string.format("%d", size)
local cmd = "cat "..MTD_TABLE.." | grep "..part_name
local mtd = read_pipe(cmd)
if not mtd or mtd == "" then
print_err("mtd partition "..part_name.." not found")
return
end
cmd = "[ -e "..FW_PATH.." ] || mkdir "..FW_PATH
os.execute(cmd)
local mtd_node = "/dev/"..string.match(mtd, "(mtd[%d]+)")
cmd = "dd if="..mtd_node.." of="..FW_PATH..dump_name.." bs=1 skip="..offset_decimal.." count="..size_decimal.." seek="..offset_decimal.." conv=notrunc 2>/dev/null"
os.execute(cmd)
end
local action0 = {
["dbg"] = function()
show_usage()
end,
["genconfig"] = function()
local seen = {}
local dridx = l1parser.DEV_RINDEX
local cmd = ""
local dir = ""
for name, dev in pairs(l1dat[dridx]) do
if not seen[dev] then
seen[dev] = true
dir = string.match(dev["profile_path"], "^(.+)/")
--print("mkdir -p "..dir)
os.execute("mkdir -p "..dir)
cmd = "ralink_init gen "..dev["nvram_zone"].." "..dev["profile_path"]
--print(cmd)
os.execute(cmd)
eeprom_extract(E2P_PART_NAME, dev.EEPROM_offset, dev.EEPROM_size, dev.EEPROM_name)
end
end
end,
["if2zone"] = function(ifname)
if not ifname then return end
local zone = l1parser.l1_ifname_to_zone(ifname) or ""
print(zone);
end,
["if2dat"] = function(ifname)
if not ifname then return end
local dat_path = l1parser.l1_ifname_to_datpath(ifname) or ""
print(dat_path)
end,
["zone2if"] = function(zone)
if not zone then return end
local main_if, ext_if, apcli, wds, mesh = l1parser.l1_zone_to_ifname(zone)
if main_if then
print(main_if.." "..ext_if.." "..apcli.." "..wds.." "..mesh)
end
end,
["idx2if"] = function(idx)
if not idx then return end
idx = tonumber(idx)
local band_num = l1parser.MAX_NUM_DBDC_BAND
local dbdc_if
local count = 0
for k, v in pairs(l1dat) do
-- check if last dbdc exists
dbdc_if = l1parser.token_get(v.main_ifname, band_num, nil)
if dbdc_if then
count = count + band_num;
else
count = count + 1
end
if not dbdc_if and count == idx then
print(v.main_ifname)
break
end
if count >= idx then -- dbdc case
local token_num = band_num - ( count - idx )
print(l1parser.token_get(v.main_ifname, token_num, nil))
break
end
end
end,
["if2dbdcidx"] = function(ifname)
if not ifname then return end
local ridx = l1parser.IF_RINDEX
if not l1dat[ridx][ifname] then return end
print(l1dat[ridx][ifname]["subidx"] or "0")
end
}
if #arg == 0 then
show_usage()
return
end
if action0[arg[1]] then
if #arg == 1 then
--print("#arg == 1", arg[1])
action0[arg[1]]()
elseif #arg == 2 then
--print("#arg == 1", arg[1], arg[2])
action0[arg[1]](arg[2])
end
else
print_err("invalid arg \""..arg[1].."\"\n");
end

View File

@ -0,0 +1,337 @@
local _tl_compat; if (tonumber((_VERSION or ''):match('[%d.]*$')) or 0) < 5.3 then local p, m = pcall(require, 'compat53.module'); if p then _tl_compat = m end end; local math = _tl_compat and _tl_compat.math or math; local string = _tl_compat and _tl_compat.string or string; local table = _tl_compat and _tl_compat.table or table
local inspect = {Options = {}, }
inspect._VERSION = 'inspect.lua 3.1.0'
inspect._URL = 'http://github.com/kikito/inspect.lua'
inspect._DESCRIPTION = 'human-readable representations of tables'
inspect._LICENSE = [[
MIT LICENSE
Copyright (c) 2022 Enrique García Cota
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be included
in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
]]
inspect.KEY = setmetatable({}, { __tostring = function() return 'inspect.KEY' end })
inspect.METATABLE = setmetatable({}, { __tostring = function() return 'inspect.METATABLE' end })
local tostring = tostring
local rep = string.rep
local match = string.match
local char = string.char
local gsub = string.gsub
local fmt = string.format
local function rawpairs(t)
return next, t, nil
end
local function smartQuote(str)
if match(str, '"') and not match(str, "'") then
return "'" .. str .. "'"
end
return '"' .. gsub(str, '"', '\\"') .. '"'
end
local shortControlCharEscapes = {
["\a"] = "\\a", ["\b"] = "\\b", ["\f"] = "\\f", ["\n"] = "\\n",
["\r"] = "\\r", ["\t"] = "\\t", ["\v"] = "\\v", ["\127"] = "\\127",
}
local longControlCharEscapes = { ["\127"] = "\127" }
for i = 0, 31 do
local ch = char(i)
if not shortControlCharEscapes[ch] then
shortControlCharEscapes[ch] = "\\" .. i
longControlCharEscapes[ch] = fmt("\\%03d", i)
end
end
local function escape(str)
return (gsub(gsub(gsub(str, "\\", "\\\\"),
"(%c)%f[0-9]", longControlCharEscapes),
"%c", shortControlCharEscapes))
end
local function isIdentifier(str)
return type(str) == "string" and not not str:match("^[_%a][_%a%d]*$")
end
local flr = math.floor
local function isSequenceKey(k, sequenceLength)
return type(k) == "number" and
flr(k) == k and
1 <= (k) and
k <= sequenceLength
end
local defaultTypeOrders = {
['number'] = 1, ['boolean'] = 2, ['string'] = 3, ['table'] = 4,
['function'] = 5, ['userdata'] = 6, ['thread'] = 7,
}
local function sortKeys(a, b)
local ta, tb = type(a), type(b)
if ta == tb and (ta == 'string' or ta == 'number') then
return (a) < (b)
end
local dta = defaultTypeOrders[ta] or 100
local dtb = defaultTypeOrders[tb] or 100
return dta == dtb and ta < tb or dta < dtb
end
local function getKeys(t)
local seqLen = 1
while rawget(t, seqLen) ~= nil do
seqLen = seqLen + 1
end
seqLen = seqLen - 1
local keys, keysLen = {}, 0
for k in rawpairs(t) do
if not isSequenceKey(k, seqLen) then
keysLen = keysLen + 1
keys[keysLen] = k
end
end
table.sort(keys, sortKeys)
return keys, keysLen, seqLen
end
local function countCycles(x, cycles)
if type(x) == "table" then
if cycles[x] then
cycles[x] = cycles[x] + 1
else
cycles[x] = 1
for k, v in rawpairs(x) do
countCycles(k, cycles)
countCycles(v, cycles)
end
countCycles(getmetatable(x), cycles)
end
end
end
local function makePath(path, a, b)
local newPath = {}
local len = #path
for i = 1, len do newPath[i] = path[i] end
newPath[len + 1] = a
newPath[len + 2] = b
return newPath
end
local function processRecursive(process,
item,
path,
visited)
if item == nil then return nil end
if visited[item] then return visited[item] end
local processed = process(item, path)
if type(processed) == "table" then
local processedCopy = {}
visited[item] = processedCopy
local processedKey
for k, v in rawpairs(processed) do
processedKey = processRecursive(process, k, makePath(path, k, inspect.KEY), visited)
if processedKey ~= nil then
processedCopy[processedKey] = processRecursive(process, v, makePath(path, processedKey), visited)
end
end
local mt = processRecursive(process, getmetatable(processed), makePath(path, inspect.METATABLE), visited)
if type(mt) ~= 'table' then mt = nil end
setmetatable(processedCopy, mt)
processed = processedCopy
end
return processed
end
local function puts(buf, str)
buf.n = buf.n + 1
buf[buf.n] = str
end
local Inspector = {}
local Inspector_mt = { __index = Inspector }
local function tabify(inspector)
puts(inspector.buf, inspector.newline .. rep(inspector.indent, inspector.level))
end
function Inspector:getId(v)
local id = self.ids[v]
local ids = self.ids
if not id then
local tv = type(v)
id = (ids[tv] or 0) + 1
ids[v], ids[tv] = id, id
end
return tostring(id)
end
function Inspector:putValue(v)
local buf = self.buf
local tv = type(v)
if tv == 'string' then
puts(buf, smartQuote(escape(v)))
elseif tv == 'number' or tv == 'boolean' or tv == 'nil' or
tv == 'cdata' or tv == 'ctype' then
puts(buf, tostring(v))
elseif tv == 'table' and not self.ids[v] then
local t = v
if t == inspect.KEY or t == inspect.METATABLE then
puts(buf, tostring(t))
elseif self.level >= self.depth then
puts(buf, '{...}')
else
if self.cycles[t] > 1 then puts(buf, fmt('<%d>', self:getId(t))) end
local keys, keysLen, seqLen = getKeys(t)
puts(buf, '{')
self.level = self.level + 1
for i = 1, seqLen + keysLen do
if i > 1 then puts(buf, ',') end
if i <= seqLen then
puts(buf, ' ')
self:putValue(t[i])
else
local k = keys[i - seqLen]
tabify(self)
if isIdentifier(k) then
puts(buf, k)
else
puts(buf, "[")
self:putValue(k)
puts(buf, "]")
end
puts(buf, ' = ')
self:putValue(t[k])
end
end
local mt = getmetatable(t)
if type(mt) == 'table' then
if seqLen + keysLen > 0 then puts(buf, ',') end
tabify(self)
puts(buf, '<metatable> = ')
self:putValue(mt)
end
self.level = self.level - 1
if keysLen > 0 or type(mt) == 'table' then
tabify(self)
elseif seqLen > 0 then
puts(buf, ' ')
end
puts(buf, '}')
end
else
puts(buf, fmt('<%s %d>', tv, self:getId(v)))
end
end
function inspect.inspect(root, options)
options = options or {}
local depth = options.depth or (math.huge)
local newline = options.newline or '\n'
local indent = options.indent or ' '
local process = options.process
if process then
root = processRecursive(process, root, {}, {})
end
local cycles = {}
countCycles(root, cycles)
local inspector = setmetatable({
buf = { n = 0 },
ids = {},
cycles = cycles,
depth = depth,
level = 0,
newline = newline,
indent = indent,
}, Inspector_mt)
inspector:putValue(root)
return table.concat(inspector.buf)
end
setmetatable(inspect, {
__call = function(_, root, options)
return inspect.inspect(root, options)
end,
})
return inspect

View File

@ -0,0 +1,349 @@
#!/usr/bin/env lua
--[[
* A lua library to manipulate mtk's wifi driver. used in luci-app-mtk.
*
* Copyright (C) 2016 MTK <support@mediatek.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 2.1
* as published by the Free Software Foundation
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
]]
local l1dat_parser = {
L1_DAT_PATH = "/etc/wireless/l1profile.dat",
IF_RINDEX = "ifname_ridx",
DEV_RINDEX = "devname_ridx",
MAX_NUM_APCLI = 1,
MAX_NUM_WDS = 4,
MAX_NUM_MESH = 1,
MAX_NUM_EXTIF = 16,
MAX_NUM_DBDC_BAND = 2,
}
local l1cfg_options = {
ext_ifname="",
apcli_ifname="apcli",
wds_ifname="wds",
mesh_ifname="mesh"
}
function l1dat_parser.__trim(s)
if s then return (s:gsub("^%s*(.-)%s*$", "%1")) end
end
function l1dat_parser.__cfg2list(str)
-- delimeter == ";"
local i = 1
local list = {}
for k in string.gmatch(str, "([^;]+)") do
list[i] = k
i = i + 1
end
return list
end
function l1dat_parser.token_get(str, n, v)
-- n starts from 1
-- v is the backup in case token n is nil
if not str then return v end
local tmp = l1dat_parser.__cfg2list(str)
return tmp[tonumber(n)] or v
end
function l1dat_parser.add_default_value(l1cfg)
for k, v in ipairs(l1cfg) do
for opt, default in pairs(l1cfg_options) do
if ( opt == "ext_ifname" ) then
v[opt] = v[opt] or v["main_ifname"].."_"
else
v[opt] = v[opt] or default..k.."_"
end
end
end
return l1cfg
end
function l1dat_parser.get_value_by_idx(devidx, mainidx, subidx, key)
--print("Enter l1dat_parser.get_value_by_idx("..devidx..","..mainidx..", "..subidx..", "..key..")<br>")
if not devidx or not mainidx or not key then return end
local devs = l1dat_parser.load_l1_profile(l1dat_parser.L1_DAT_PATH)
if not devs then return end
local dev_ridx = l1dat_parser.DEV_RINDEX
local sidx = subidx or 1
local devname1 = devidx.."."..mainidx
local devname2 = devidx.."."..mainidx.."."..sidx
--print("devnam1=", devname1, "devname2=", devname2, "<br>")
return devs[dev_ridx][devname2] and devs[dev_ridx][devname2][key]
or devs[dev_ridx][devname1] and devs[dev_ridx][devname1][key]
end
-- path to zone is 1 to 1 mapping
function l1dat_parser.l1_path_to_zone(path)
--print("Enter l1dat_parser.l1_path_to_zone("..path..")<br>")
if not path then return end
local devs = l1dat_parser.load_l1_profile(l1dat_parser.L1_DAT_PATH)
if not devs then return end
for _, dev in pairs(devs[l1dat_parser.IF_RINDEX]) do
if dev.profile_path == path then
return dev.nvram_zone
end
end
return
end
-- zone to path is 1 to n mapping
function l1dat_parser.l1_zone_to_path(zone)
if not zone then return end
local devs = l1dat_parser.load_l1_profile(l1dat_parser.L1_DAT_PATH)
if not devs then return end
local plist = {}
for _, dev in pairs(devs[l1dat_parser.IF_RINDEX]) do
if dev.nvram_zone == zone then
if not next(plist) then
table.insert(plist,dev.profile_path)
else
local plist_str = table.concat(plist)
if not plist_str:match(dev.profile_path) then
table.insert(plist,dev.profile_path)
end
end
end
end
return next(plist) and plist or nil
end
function l1dat_parser.l1_ifname_to_datpath(ifname)
if not ifname then return end
local devs = l1dat_parser.load_l1_profile(l1dat_parser.L1_DAT_PATH)
if not devs then return end
local ridx = l1dat_parser.IF_RINDEX
return devs[ridx][ifname] and devs[ridx][ifname].profile_path
end
function l1dat_parser.l1_ifname_to_zone(ifname)
if not ifname then return end
local devs = l1dat_parser.load_l1_profile(l1dat_parser.L1_DAT_PATH)
if not devs then return end
local ridx = l1dat_parser.IF_RINDEX
return devs[ridx][ifname] and devs[ridx][ifname].nvram_zone
end
function l1dat_parser.l1_zone_to_ifname(zone)
if not zone then return end
local devs = l1dat_parser.load_l1_profile(l1dat_parser.L1_DAT_PATH)
if not devs then return end
local zone_dev
for _, dev in pairs(devs[l1dat_parser.DEV_RINDEX]) do
if dev.nvram_zone == zone then
zone_dev = dev
end
end
if not zone_dev then
return nil
else
return zone_dev.main_ifname, zone_dev.ext_ifname, zone_dev.apcli_ifname, zone_dev.wds_ifname, zone_dev.mesh_ifname
end
end
-- input: L1 profile path.
-- output A table, devs, contains
-- 1. devs[%d] = table of each INDEX# in the L1 profile
-- 2. devs.ifname_ridx[ifname]
-- = table of each ifname and point to relevant contain in dev[$d]
-- 3. devs.devname_ridx[devname] similar to devs.ifnameridx, but use devname.
-- devname = INDEX#_value.mainidx(.subidx)
-- Using *_ridx do not need to handle name=k1;k2 case of DBDC card.
function l1dat_parser.load_l1_profile(path)
local devs = setmetatable({}, {__index=
function(tbl, key)
local util = require("luci.util")
--print("metatable function:", util.serialize_data(tbl), key)
--print("-----------------------------------------------")
if ( string.match(key, "^%d+")) then
tbl[key] = {}
return tbl[key]
end
end
})
local nixio = require("nixio")
local chipset_num = {}
local dir = io.popen("ls /etc/wireless/")
if not dir then return end
local fd = io.open(path, "r")
if not fd then return end
-- convert l1 profile into lua table
for line in fd:lines() do
line = l1dat_parser.__trim(line)
if string.byte(line) ~= string.byte("#") then
local i = string.find(line, "=")
if i then
local k, v, k1, k2
k = l1dat_parser.__trim( string.sub(line, 1, i-1) )
v = l1dat_parser.__trim( string.sub(line, i+1) )
k1, k2 = string.match(k, "INDEX(%d+)_(.+)")
if k1 then
k1 = tonumber(k1) + 1
if devs[k1][k2] then
nixio.syslog("warning", "skip repeated key"..line)
end
devs[k1][k2] = v or ""
else
k1 = string.match(k, "INDEX(%d+)")
k1 = tonumber(k1) + 1
devs[k1]["INDEX"] = v
chipset_num[v] = (not chipset_num[v] and 1) or chipset_num[v] + 1
devs[k1]["mainidx"] = chipset_num[v]
end
--else
-- nixio.syslog("warning", "skip line without '=' "..line)
end
--else
-- nixio.syslog("warning", "skip comment line "..line)
end
end
l1dat_parser.add_default_value(devs)
--local util = require("luci.util")
--local seen2 = {}
-- print("Before setup ridx", util.serialize_data(devs, seen2))
-- Force to setup reverse indice for quick search.
-- Benifit:
-- 1. O(1) search with ifname, devname
-- 2. Seperate DBDC name=k1;k2 format in the L1 profile into each
-- ifname, devname.
local dbdc_if = {}
local ridx = l1dat_parser.IF_RINDEX
local dridx = l1dat_parser.DEV_RINDEX
local band_num = l1dat_parser.MAX_NUM_DBDC_BAND
local k, v, dev, i , j, last
local devname
devs[ridx] = {}
devs[dridx] = {}
for _, dev in ipairs(devs) do
dbdc_if[band_num] = l1dat_parser.token_get(dev.main_ifname, band_num, nil)
if dbdc_if[band_num] then
for i = 1, band_num - 1 do
dbdc_if[i] = l1dat_parser.token_get(dev.main_ifname, i, nil)
end
for i = 1, band_num do
devs[ridx][dbdc_if[i]] = {}
devs[ridx][dbdc_if[i]]["subidx"] = i
for k, v in pairs(dev) do
if k == "INDEX" or k == "EEPROM_offset" or k == "EEPROM_size"
or k == "mainidx" then
devs[ridx][dbdc_if[i]][k] = v
else
devs[ridx][dbdc_if[i]][k] = l1dat_parser.token_get(v, i, "")
end
end
devname = dev.INDEX.."."..dev.mainidx.."."..devs[ridx][dbdc_if[i]]["subidx"]
devs[dridx][devname] = devs[ridx][dbdc_if[i]]
end
local apcli_if, wds_if, ext_if, mesh_if = {}, {}, {}, {}
for i = 1, band_num do
ext_if[i] = l1dat_parser.token_get(dev.ext_ifname, i, nil)
apcli_if[i] = l1dat_parser.token_get(dev.apcli_ifname, i, nil)
wds_if[i] = l1dat_parser.token_get(dev.wds_ifname, i, nil)
mesh_if[i] = l1dat_parser.token_get(dev.mesh_ifname, i, nil)
end
for i = 1, l1dat_parser.MAX_NUM_EXTIF - 1 do -- ifname idx is from 0
for j = 1, band_num do
devs[ridx][ext_if[j]..i] = devs[ridx][dbdc_if[j]]
end
end
for i = 0, l1dat_parser.MAX_NUM_APCLI - 1 do
for j = 1, band_num do
devs[ridx][apcli_if[j]..i] = devs[ridx][dbdc_if[j]]
end
end
for i = 0, l1dat_parser.MAX_NUM_WDS - 1 do
for j = 1, band_num do
devs[ridx][wds_if[j]..i] = devs[ridx][dbdc_if[j]]
end
end
for i = 0, l1dat_parser.MAX_NUM_MESH - 1 do
for j = 1, band_num do
if mesh_if[j] then
devs[ridx][mesh_if[j]..i] = devs[ridx][dbdc_if[j]]
end
end
end
else
devs[ridx][dev.main_ifname] = dev
devname = dev.INDEX.."."..dev.mainidx
devs[dridx][devname] = dev
for i = 1, l1dat_parser.MAX_NUM_EXTIF - 1 do -- ifname idx is from 0
devs[ridx][dev.ext_ifname..i] = dev
end
for i = 0, l1dat_parser.MAX_NUM_APCLI - 1 do -- ifname idx is from 0
devs[ridx][dev.apcli_ifname..i] = dev
end
for i = 0, l1dat_parser.MAX_NUM_WDS - 1 do -- ifname idx is from 0
devs[ridx][dev.wds_ifname..i] = dev
end
for i = 0, l1dat_parser.MAX_NUM_MESH - 1 do -- ifname idx is from 0
devs[ridx][dev.mesh_ifname..i] = dev
end
end
end
fd:close()
return devs
end
function l1dat_parser.creat_link_for_nvram( )
local devs = l1dat_parser.load_l1_profile(l1dat_parser.L1_DAT_PATH)
for devname, dev in pairs(devs.devname_ridx) do
local dev = devs.devname_ridx[devname]
profile = dev.profile_path
os.execute("mkdir -p /tmp/mtk/wifi/")
if dev.nvram_zone == "dev1" then
os.execute("ln -sf " ..profile.." /tmp/mtk/wifi/2860")
elseif dev.nvram_zone == "dev2" then
os.execute("ln -sf " ..profile.." /tmp/mtk/wifi/rtdev")
elseif dev.nvram_zone == "dev3" then
os.execute("ln -sf " ..profile.." /tmp/mtk/wifi/wifi3")
end
end
end
return l1dat_parser

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,130 @@
#!/usr/bin/env lua
--[[
* A pure lua library to translate between:
* lua table <--> uci config
*
* For UCI: http://wiki.openwrt.org/doc/techref/uci
* http://wiki.openwrt.org/doc/uci
*
* Copyright (C) 2015 Hua Shao <nossiac@163.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 2.1
* as published by the Free Software Foundation
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
]]
local shuci = {}
function shuci.decode(path)
function file_exists(name)
local f=io.open(name,"r")
if f~=nil then io.close(f) return true else return false end
end
local function linebreaker(str)
local i,_ = string.find(str, "([^%s])")
if not i then return nil end
if string.find(str, "config%s+%w+") then
local i,j,k,v = string.find(str, "config%s+([%w-_]+)%s*['\"]*([^%s\'\"]*)")
return "section", k, v
elseif string.find(str, "option%s+%w+") then
local i,j,k,v = string.find(str, "option%s+([%w-_]+)%s*['\"]([^'\"]+)['\"]")
if not k or not v then
i,j,k,v = string.find(str, "option%s+([%w-_]+)%s*['\"]*([^%s\'\"]*)")
end
return "option", k, v
elseif string.find(str, "list%s+%w+") then
local i,j,k,v = string.find(str, "list%s+([%w-_]+)%s*['\"]([^'\"]+)['\"]")
if not k or not v then
i,j,k,v = string.find(str, "list%s+([%w-_]+)%s*['\"]*([^%s\'\"]*)")
end
return "list", k, v
end
end
if not file_exists(path) then
return
end
local _sect_ = nil
local t = {}
for line in io.lines(path) do
local _type, _name, _value = linebreaker(line)
if _type == "section" then
if not t[_name] then
t[_name] = {}
end
t[_name][#t[_name]+1] = {}
_sect_ = t[_name][#t[_name]]
if _value then
_sect_[".name"] = _value
end
end
if _type == "option" then
if _name and _value then
_sect_[_name] = _value
end
end
if _type == "list" and _name and _value then
local idx
if not _sect_[_name] then
_sect_[_name] = {}
_sect_[_name][1] = _value
else
idx = #_sect_[_name]
_sect_[_name][idx+1] = _value
end
end
end
return t
end
function shuci.encode(t, path)
local dump = io.write
if path then
local fp = io.open(path, "w")
dump = function(str) fp:write(str) end
end
for stype,ss in pairs(t) do
if #ss > 0 then
for _,s in ipairs(ss) do
dump(string.format("config\t%s\t'%s'\n", stype, s[".name"] or ""))
for k,v in pairs(s) do
if type(v) == "table" then
for _,vv in ipairs(v) do
dump(string.format("\tlist\t%s\t'%s'\n",k,vv))
end
elseif type(v) == "string" and k ~= ".name" then
dump(string.format("\toption\t%s\t'%s'\n",k,v))
elseif type(v) == "number" and k ~= ".name" then
dump(string.format("\toption\t%s\t'%s'\n",k,tonumber(v)))
end
end
dump("\n")
end
else
dump(string.format("config\t%s\t'%s'\n", stype, ss[".name"] or ""))
for k,v in pairs(ss) do
if type(v) == "table" then
for _,vv in ipairs(v) do
dump(string.format("\tlist\t%s\t'%s'\n",k,vv))
end
elseif type(v) == "string" and k ~= ".name" then
dump(string.format("\toption\t%s\t'%s'\n",k,v))
elseif type(v) == "number" and k ~= ".name" then
dump(string.format("\toption\t%s\t'%s'\n",k,tonumber(v)))
end
end
end
end
end
return shuci

View File

@ -0,0 +1,24 @@
OBJ_IOCTL = ioctl_helper.o rate_calc.o security.o
CFLAGS += -I.
CFLAGS += -I$(ROOTDIR)/user/luci/lua-5.1.5/src
CFLAGS += -Wall -shared -fPIC
LUCI_APP_MTK_TARGET = ioctl_helper
%.o: %.c $(DEPS)
$(CC) -c -o $@ $< $(CFLAGS)
all: $(LUCI_APP_MTK_TARGET)
ioctl_helper: $(OBJ_IOCTL)
$(CC) -o $@.so $^ $(CFLAGS)
compile: $(LUCI_APP_MTK_TARGET)
install: compile
mkdir -p $(DESTDIR)/usr/lib/lua
cp -pR ioctl_helper.so $(DESTDIR)/usr/lib/lua/
clean:
rm -f *.o *.so
romfs:

View File

@ -0,0 +1,629 @@
#include <arpa/inet.h>
#include <ctype.h>
#include <errno.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <unistd.h>
#include <linux/wireless.h>
#include "mtwifi.h"
int luaopen_ioctl_helper(lua_State *L)
{
lua_register(L,"c_get_macaddr",get_macaddr);
lua_register(L,"c_convert_string_display",convert_string_display);
lua_register(L,"c_StaInfo",StaInfo);
lua_register(L,"c_getWMode",getWMOde);
lua_register(L,"c_getTempature",getTempature);
lua_register(L,"c_scanResult",scanResult);
lua_register(L,"c_getTxPower",getTxPower);
lua_register(L,"c_getChannel",getChannel);
return 0;
}
int scanResult(lua_State *L)
{
int socket_id;
const char *interface = luaL_checkstring(L, 1);
const char *tmp_idx = luaL_checkstring(L, 2);
struct iwreq wrq;
char *data = NULL;
unsigned int data_len = 5000;
if((data = (char *)malloc(data_len)) == NULL){
fprintf(stderr, "%s: malloc failed\n", __func__);
return -1;
}
memset(data, 0, data_len);
socket_id = socket(AF_INET, SOCK_DGRAM, 0);
if (socket_id < 0) {
perror("socket() failed");
free(data);
return socket_id;
}
snprintf(wrq.ifr_name, sizeof(wrq.ifr_name), "%s", interface);
snprintf(data, data_len, "%s", tmp_idx);
wrq.u.data.length = data_len;
wrq.u.data.pointer = data;
wrq.u.data.flags = 0;
if (ioctl(socket_id, RTPRIV_IOCTL_GSITESURVEY, &wrq) < 0) {
fprintf(stderr, "ioctl -> RTPRIV_IOCTL_GSITESURVEY Fail !");
close(socket_id);
free(data);
return -1;
}
lua_newtable(L);
lua_pushstring(L, "scanresult"); /* push key */
lua_pushstring(L, data); /* push value */
lua_settable(L, -3);
close(socket_id);
free(data);
return 1;
}
static unsigned int get_temp(const char *interface)
{
int socket_id;
struct iwreq wrq;
unsigned int tempature = 0;
socket_id = socket(AF_INET, SOCK_DGRAM, 0);
if (socket_id < 0) {
perror("socket() failed");
return socket_id;
}
snprintf(wrq.ifr_name, sizeof(wrq.ifr_name), "%s", interface);
wrq.u.data.length = sizeof(tempature);
wrq.u.data.pointer = &tempature;
wrq.u.data.flags = OID_GET_CPU_TEMPERATURE;
if( ioctl(socket_id, RT_PRIV_IOCTL, &wrq) == -1)
fprintf(stderr, "%s: ioctl fail\n", __func__);
close(socket_id);
return tempature;
}
int getTempature(lua_State *L)
{
char tempstr[5] = {0};
const char *interface = luaL_checkstring(L, 1);
snprintf(tempstr, sizeof(tempstr), "%d", get_temp(interface));
lua_newtable(L);
lua_pushstring(L, "tempature"); /* push key */
lua_pushstring(L, tempstr); /* push value */
lua_settable(L, -3);
/* Returning one table which is already on top of Lua stack. */
return 1;
}
static unsigned int get_txpower(const char *interface)
{
int socket_id;
struct iwreq wrq;
int txpower = 0;
socket_id = socket(AF_INET, SOCK_DGRAM, 0);
if (socket_id < 0) {
perror("socket() failed");
return socket_id;
}
snprintf(wrq.ifr_name, sizeof(wrq.ifr_name), "%s", interface);
wrq.u.txpower.flags = 0;
if(ioctl(socket_id, SIOCGIWTXPOW, &wrq) >= 0) {
txpower = wrq.u.txpower.value;
} else {
fprintf(stderr, "%s: ioctl fail\n", __func__);
}
close(socket_id);
return txpower;
}
int getTxPower(lua_State *L)
{
char tempstr[5] = {0};
const char *interface = luaL_checkstring(L, 1);
snprintf(tempstr, sizeof(tempstr), "%d", get_txpower(interface));
lua_newtable(L);
lua_pushstring(L, "txpower"); /* push key */
lua_pushstring(L, tempstr); /* push value */
lua_settable(L, -3);
/* Returning one table which is already on top of Lua stack. */
return 1;
}
static unsigned int get_w_mode(const char *interface)
{
int socket_id;
struct iwreq wrq;
unsigned char data = 0;
socket_id = socket(AF_INET, SOCK_DGRAM, 0);
if (socket_id < 0) {
perror("socket() failed");
return socket_id;
}
snprintf(wrq.ifr_name, sizeof(wrq.ifr_name), "%s", interface);
wrq.u.data.length = sizeof(data);
wrq.u.data.pointer = &data;
wrq.u.data.flags = OID_GET_WMODE;
if( ioctl(socket_id, RT_PRIV_IOCTL, &wrq) == -1)
fprintf(stderr, "%s: ioctl fail\n", __func__);
close(socket_id);
return data;
}
int get_macaddr(lua_State *L)
{
const char *ifname = luaL_checkstring(L, 1);
struct ifreq ifr;
char *ptr;
int skfd;
static char if_hw[18] = {0};
if((skfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
//printf(stderr, "%s: open socket error\n", __func__);
return skfd;
}
snprintf(ifr.ifr_name, IF_NAMESIZE, "%s", ifname);
if(ioctl(skfd, SIOCGIFHWADDR, &ifr) < 0) {
close(skfd);
fprintf(stderr, "%s: ioctl fail\n", __func__);
return -1;
}
ptr = (char *)&ifr.ifr_addr.sa_data;
sprintf(if_hw, "%02X:%02X:%02X:%02X:%02X:%02X",
(ptr[0] & 0377), (ptr[1] & 0377), (ptr[2] & 0377),
(ptr[3] & 0377), (ptr[4] & 0377), (ptr[5] & 0377));
close(skfd);
lua_newtable(L);
lua_pushstring(L, "macaddr"); /* push key */
lua_pushstring(L, if_hw); /* push value */
lua_settable(L, -3);
/* Returning one table which is already on top of Lua stack. */
return 1;
}
static int get_channel(const char *interface)
{
int socket_id;
struct iwreq wrq;
int channel = -1;
socket_id = socket(AF_INET, SOCK_DGRAM, 0);
if (socket_id < 0) {
perror("socket() failed");
return socket_id;
}
snprintf(wrq.ifr_name, sizeof(wrq.ifr_name), "%s", interface);
if(ioctl(socket_id, SIOCGIWFREQ, &wrq) >= 0) {
channel = wrq.u.freq.m;
} else {
fprintf(stderr, "%s: ioctl fail\n", __func__);
}
close(socket_id);
return channel;
}
int getChannel(lua_State *L)
{
char tempstr[5] = {0};
const char *interface = luaL_checkstring(L, 1);
snprintf(tempstr, sizeof(tempstr), "%d", get_channel(interface));
lua_newtable(L);
lua_pushstring(L, "channel"); /* push key */
lua_pushstring(L, tempstr); /* push value */
lua_settable(L, -3);
/* Returning one table which is already on top of Lua stack. */
return 1;
}
int getWMOde(lua_State *L)
{
char w_mode[5];
const char *interface = luaL_checkstring(L, 1);
snprintf(w_mode, sizeof(w_mode), "%d", get_w_mode(interface));
lua_newtable(L);
lua_pushstring(L, "getwmode"); /* push key */
lua_pushstring(L, w_mode); /* push value */
lua_settable(L, -3);
/* Returning one table which is already on top of Lua stack. */
return 1;
}
int convert_string_display(lua_State *L)
{
#define BUF_SIZE 256
int len, i;
char buffer[BUF_SIZE]; // 33(characters in SSID) * 6(maximum length of a HTML entity) = 198 + 1(null character) = 199
char *pOut,*pBufLimit;
const char *str = luaL_checkstring(L, 1);
memset(buffer,0,BUF_SIZE);
len = strlen(str);
pOut = &buffer[0];
pBufLimit = &buffer[BUF_SIZE - 1];
for (i = 0; i < len && (pBufLimit - pOut) >=7; i++) { // 6(maximum length of a HTML entity) + 1(null character) = 7
switch (str[i]) {
case 38:
sprintf(pOut, "&amp;"); // '&'
pOut += 5;
break;
case 60:
sprintf(pOut, "&lt;"); // '<'
pOut += 4;
break;
case 62:
sprintf(pOut, "&gt;"); // '>'
pOut += 4;
break;
case 34:
sprintf(pOut, "&#34;"); // '"'
pOut += 5;
break;
case 39:
sprintf(pOut, "&#39;"); // '''
pOut += 5;
break;
case 32:
sprintf(pOut, "&nbsp;"); // ' '
pOut += 6;
break;
default:
if ((str[i]>=0) && (str[i]<=31)) {
//Device Control Characters
sprintf(pOut, "&#%02d;", str[i]);
pOut += 5;
} else if ((str[i]==39) || (str[i]==47) || (str[i]==59) || (str[i]==92)) {
// ' / ; (backslash)
sprintf(pOut, "&#%02d;", str[i]);
pOut += 5;
} else if (str[i]>=127) {
//Device Control Characters
sprintf(pOut, "&#%03d;", str[i]);
pOut += 6;
} else {
*pOut = str[i];
pOut++;
}
break;
}
}
*pOut = '\0';
lua_newtable(L);
lua_pushstring(L, "output"); /* push key */
lua_pushstring(L, buffer); /* push value */
lua_settable(L, -3);
return 1;
}
int StaInfo(lua_State *L)
{
int i, s;
struct iwreq iwr;
RT_802_11_MAC_TABLE_FIX *table;
char tmpBuff[128] = {0};
char *phyMode[12] = {"CCK", "OFDM", "MM", "GF", "VHT", "HE",
"HE5G", "HE2G", "HE_SU", "HE_EXT_SU", "HE_TRIG", "HE_MU"};
const char *interface = luaL_checkstring(L, 1);
table = (RT_802_11_MAC_TABLE_FIX *)malloc(sizeof(RT_802_11_MAC_TABLE_FIX));
if (!table)
return -ENOMEM;
memset(table, 0, sizeof(RT_802_11_MAC_TABLE_FIX));
s = socket(AF_INET, SOCK_DGRAM, 0);
snprintf(iwr.ifr_name, IFNAMSIZ, "%s", interface);
iwr.u.data.pointer = table;
if (s < 0) {
free(table);
return 0;
}
if (ioctl(s, RTPRIV_IOCTL_GET_MAC_TABLE_STRUCT, &iwr) < 0) {
free(table);
close(s);
return 0;
}
close(s);
/* Creates parent table of size table.Num array elements: */
lua_createtable(L, table->Num, 0);
for (i = 0; i < table->Num; i++) {
lua_pushnumber(L, i);
RT_802_11_MAC_ENTRY_FIX *pe = &(table->Entry[i]);
HTTRANSMIT_SETTING_FIX RxRate;
HTTRANSMIT_SETTING_FIX TxRate;
RxRate.word = pe->LastRxRate.word;
TxRate.word = pe->TxRate.word;
unsigned int mcs = TxRate.field.MCS;
unsigned int nss = 0;
unsigned long DataRate = 0;
unsigned int mcs_r = RxRate.field.MCS;
unsigned int nss_r = 0;
unsigned long DataRate_r = 0;
int hr, min, sec;
hr = pe->ConnectedTime/3600;
min = (pe->ConnectedTime % 3600)/60;
sec = pe->ConnectedTime - hr*3600 - min*60;
/* Creates first child table of size 34 non-array elements: */
lua_createtable(L, 0, 34);
// MAC Address
snprintf(tmpBuff, sizeof(tmpBuff), "%02X:%02X:%02X:%02X:%02X:%02X", pe->Addr[0], pe->Addr[1], pe->Addr[2], pe->Addr[3],
pe->Addr[4], pe->Addr[5]);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "MacAddr");
// AID, Power Save mode, MIMO Power Save
snprintf(tmpBuff, sizeof(tmpBuff), "%d", pe->Aid);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "Aid");
snprintf(tmpBuff, sizeof(tmpBuff), "%d", pe->Psm);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "Psm");
snprintf(tmpBuff, sizeof(tmpBuff), "%d", pe->MimoPs);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "MimoPs");
// TX Rate NSS-MCS
if (TxRate.field.MODE >= MODE_VHT) {
nss = ((mcs & (0x3 << 4)) >> 4) + 1;
mcs = mcs & 0xF;
snprintf(tmpBuff, sizeof(tmpBuff), "%dSS-MCS%d", nss, mcs);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "Mcs");
} else {
mcs = mcs & 0x3f;
snprintf(tmpBuff, sizeof(tmpBuff), "MCS%d", mcs);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "Mcs");
}
// TX BW
if (TxRate.field.BW == BW_20) {
snprintf(tmpBuff, sizeof(tmpBuff), "%d", 20);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "Bw");
} else if (TxRate.field.BW == BW_40) {
snprintf(tmpBuff, sizeof(tmpBuff), "%d", 40);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "Bw");
} else if (TxRate.field.BW == BW_80) {
snprintf(tmpBuff, sizeof(tmpBuff), "%d", 80);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "Bw");
} else if (TxRate.field.BW == BW_160) {
snprintf(tmpBuff, sizeof(tmpBuff), "%d", 160);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "Bw");
}
//TX SGI
if (TxRate.field.MODE < MODE_HTMIX) {
snprintf(tmpBuff, sizeof(tmpBuff), "%s", "LGI");
} else if (TxRate.field.MODE >= MODE_HE) {
if (TxRate.field.ShortGI == 0)
snprintf(tmpBuff, sizeof(tmpBuff), "%s", "SGI");
else if (TxRate.field.ShortGI == 1)
snprintf(tmpBuff, sizeof(tmpBuff), "%s", "MGI");
else if (TxRate.field.ShortGI == 2)
snprintf(tmpBuff, sizeof(tmpBuff), "%s", "LGI");
} else {
snprintf(tmpBuff, sizeof(tmpBuff), "%s", TxRate.field.ShortGI ? "SGI" : "LGI");
}
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "Gi");
//TX phy mode
snprintf(tmpBuff, sizeof(tmpBuff), "%s", phyMode[TxRate.field.MODE]);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "PhyMode");
//TX STBC
snprintf(tmpBuff, sizeof(tmpBuff), "%s", TxRate.field.STBC? "STBC": " ");
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "Stbc");
// TxBF configuration
snprintf(tmpBuff, sizeof(tmpBuff), "%c", TxRate.field.iTxBF ? 'I': '-');
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "iTxBF");
snprintf(tmpBuff, sizeof(tmpBuff), "%c", TxRate.field.eTxBF ? 'E': '-');
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "eTxBF");
// RSSI
snprintf(tmpBuff, sizeof(tmpBuff), "%d", (int)(pe->AvgRssi0));
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "AvgRssi0");
snprintf(tmpBuff, sizeof(tmpBuff), "%d", (int)(pe->AvgRssi1));
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "AvgRssi1");
snprintf(tmpBuff, sizeof(tmpBuff), "%d", (int)(pe->AvgRssi2));
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "AvgRssi2");
snprintf(tmpBuff, sizeof(tmpBuff), "%d", (int)(pe->AvgRssi3));
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "AvgRssi3");
// Per Stream SNR
snprintf(tmpBuff, sizeof(tmpBuff), "%0.1f", pe->StreamSnr[0]*0.25);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "StreamSnr0");
snprintf(tmpBuff, sizeof(tmpBuff), "%0.1f", pe->StreamSnr[1]*0.25); //mcs>7? pe->StreamSnr[1]*0.25: 0.0);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "StreamSnr1");
snprintf(tmpBuff, sizeof(tmpBuff), "%0.1f", pe->StreamSnr[2]*0.25); //mcs>15? pe->StreamSnr[2]*0.25: 0.0);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "StreamSnr2");
// Sounding Response SNR
if (TxRate.field.eTxBF) {
snprintf(tmpBuff, sizeof(tmpBuff), "%0.1f", pe->SoundingRespSnr[0]*0.25);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "SoundingRespSnr0");
snprintf(tmpBuff, sizeof(tmpBuff), "%0.1f", pe->SoundingRespSnr[1]*0.25);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "SoundingRespSnr1");
snprintf(tmpBuff, sizeof(tmpBuff), "%0.1f", pe->SoundingRespSnr[2]*0.25);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "SoundingRespSnr2");
}
// Last RX NSS-MCS
if (RxRate.field.MODE >= MODE_VHT) {
nss_r = (((mcs_r & (0x3 << 4)) >> 4) + 1) / (RxRate.field.STBC + 1);
mcs_r = mcs_r & 0xF;
snprintf(tmpBuff, sizeof(tmpBuff), "%dSS-MCS%d", nss_r, mcs_r);
} else if (RxRate.field.MODE >= MODE_HTMIX) {
mcs_r = mcs_r & 0x3f;
snprintf(tmpBuff, sizeof(tmpBuff), "MCS%d", mcs_r);
} else if (RxRate.field.MODE == MODE_OFDM) {
mcs_r = mcs_r & 0xf;
snprintf(tmpBuff, sizeof(tmpBuff), "MCS%d", mcs_r);
RxRate.field.MCS = mcs_r;
} else if (RxRate.field.MODE == MODE_CCK) {
mcs_r = cck_to_mcs(mcs_r & 0x7);
snprintf(tmpBuff, sizeof(tmpBuff), "MCS%d", mcs_r);
RxRate.field.MCS = mcs_r;
}
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "LastMcs");
if (RxRate.field.BW == BW_20) {
snprintf(tmpBuff, sizeof(tmpBuff), "%d", 20);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "LastBw");
} else if (RxRate.field.BW == BW_40) {
snprintf(tmpBuff, sizeof(tmpBuff), "%d", 40);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "LastBw");
} else if (RxRate.field.BW == BW_80) {
snprintf(tmpBuff, sizeof(tmpBuff), "%d", 80);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "LastBw");
} else if (RxRate.field.BW == BW_160) {
snprintf(tmpBuff, sizeof(tmpBuff), "%d", 160);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "LastBw");
}
if (RxRate.field.MODE < MODE_HTMIX) {
snprintf(tmpBuff, sizeof(tmpBuff), "%s", "LGI");
} else if (RxRate.field.MODE >= MODE_HE) {
if (RxRate.field.ShortGI == 0)
snprintf(tmpBuff, sizeof(tmpBuff), "%s", "SGI");
else if (RxRate.field.ShortGI == 1)
snprintf(tmpBuff, sizeof(tmpBuff), "%s", "MGI");
else if (RxRate.field.ShortGI == 2)
snprintf(tmpBuff, sizeof(tmpBuff), "%s", "LGI");
} else {
snprintf(tmpBuff, sizeof(tmpBuff), "%s", RxRate.field.ShortGI ? "SGI" : "LGI");
}
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "LastGi");
snprintf(tmpBuff, sizeof(tmpBuff), "%s", phyMode[RxRate.field.MODE]);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "LastPhyMode");
snprintf(tmpBuff, sizeof(tmpBuff), "%s", RxRate.field.STBC ? "STBC": " ");
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "LastStbc");
// Connect time
snprintf(tmpBuff, sizeof(tmpBuff), "%02d", hr);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "Hr");
snprintf(tmpBuff, sizeof(tmpBuff), "%02d", min);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "Min");
snprintf(tmpBuff, sizeof(tmpBuff), "%02d", sec);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "Sec");
if (TxRate.field.MODE >= MODE_HE) {
get_rate_he((mcs & 0xf), TxRate.field.BW, nss, 0, &DataRate);
if (TxRate.field.ShortGI == 1)
DataRate = (DataRate * 967) >> 10;
else if (TxRate.field.ShortGI == 2)
DataRate = (DataRate * 870) >> 10;
} else {
getRate(TxRate, &DataRate);
}
snprintf(tmpBuff, sizeof(tmpBuff), "%ld", DataRate);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "TxRate");
if (RxRate.field.MODE >= MODE_HE) {
get_rate_he((mcs_r & 0xf), RxRate.field.BW, nss_r, 0, &DataRate_r);
if (RxRate.field.ShortGI == 1)
DataRate_r = (DataRate_r * 967) >> 10;
else if (RxRate.field.ShortGI == 2)
DataRate_r = (DataRate_r * 870) >> 10;
} else {
getRate(RxRate, &DataRate_r);
}
snprintf(tmpBuff, sizeof(tmpBuff), "%ld", DataRate_r);
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "RxRate");
snprintf(tmpBuff, sizeof(tmpBuff), "%s", GetEncryModeStr(pe->EncryMode));
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "EncryptMode");
snprintf(tmpBuff, sizeof(tmpBuff), "%s", GetAuthModeStr(pe->AuthMode));
lua_pushstring(L, tmpBuff);
lua_setfield(L, -2, "AuthMode");
lua_settable(L, -3);
}
free(table);
return 1;
}

View File

@ -0,0 +1,221 @@
#ifndef __MTWIFI_H
#define __MTWIFI_H
#define USHORT unsigned short
#define UCHAR unsigned char
#define ULONG unsigned long
#define UINT8 unsigned char
#define UINT16 unsigned short
#define UINT32 unsigned int
#define INT32 int
#define INT int
#include <lua.h> /* Always include this */
#include <lauxlib.h> /* Always include this */
#include <lualib.h> /* Always include this */
typedef union _HTTRANSMIT_SETTING_FIX {
struct {
USHORT MCS:6;
USHORT ldpc:1;
USHORT BW:2;
USHORT ShortGI:2;
USHORT STBC:1;
USHORT eTxBF:1;
USHORT iTxBF:1;
USHORT MODE:4;
} field;
UINT32 word;
} HTTRANSMIT_SETTING_FIX, *PHTTRANSMIT_SETTING_FIX;
typedef struct _RT_802_11_MAC_ENTRY_FIX {
unsigned char ApIdx;
unsigned char Addr[6];
unsigned short Aid;
unsigned char Psm; // 0:PWR_ACTIVE, 1:PWR_SAVE
unsigned char MimoPs; // 0:MMPS_STATIC, 1:MMPS_DYNAMIC, 3:MMPS_Enabled
signed char AvgRssi0;
signed char AvgRssi1;
signed char AvgRssi2;
signed char AvgRssi3;
unsigned int ConnectedTime;
HTTRANSMIT_SETTING_FIX TxRate;
HTTRANSMIT_SETTING_FIX LastRxRate;
short StreamSnr[3];
short SoundingRespSnr[3];
UINT32 EncryMode;
UINT32 AuthMode;
} RT_802_11_MAC_ENTRY_FIX;
#define MAX_NUMBER_OF_MAC 544
typedef struct _RT_802_11_MAC_TABLE {
unsigned long Num;
RT_802_11_MAC_ENTRY_FIX Entry[MAX_NUMBER_OF_MAC];
} RT_802_11_MAC_TABLE_FIX;
#define IF_NAMESIZE 16
#define SIOCIWFIRSTPRIV 0x8BE0
#define RT_PRIV_IOCTL (SIOCIWFIRSTPRIV + 0x0E)
#define RTPRIV_IOCTL_GET_MAC_TABLE_STRUCT (SIOCIWFIRSTPRIV + 0x1F)
#define RTPRIV_IOCTL_GSITESURVEY (SIOCIWFIRSTPRIV + 0x0D)
#define OID_GET_WMODE 0x099E
#define OID_GET_CPU_TEMPERATURE 0x09A1
#define MODE_CCK 0
#define MODE_OFDM 1
#define MODE_HTMIX 2
#define MODE_HTGREENFIELD 3
#define MODE_VHT 4
#define MODE_HE 5
#define MODE_HE_5G 6
#define MODE_HE_24G 7
#define MODE_HE_SU 8
#define MODE_HE_EXT_SU 9
#define MODE_HE_TRIG 10
#define MODE_HE_MU 11
#define TMI_TX_RATE_OFDM_6M 11
#define TMI_TX_RATE_OFDM_9M 15
#define TMI_TX_RATE_OFDM_12M 10
#define TMI_TX_RATE_OFDM_18M 14
#define TMI_TX_RATE_OFDM_24M 9
#define TMI_TX_RATE_OFDM_36M 13
#define TMI_TX_RATE_OFDM_48M 8
#define TMI_TX_RATE_OFDM_54M 12
#define TMI_TX_RATE_CCK_1M_LP 0
#define TMI_TX_RATE_CCK_2M_LP 1
#define TMI_TX_RATE_CCK_5M_LP 2
#define TMI_TX_RATE_CCK_11M_LP 3
#define TMI_TX_RATE_CCK_2M_SP 5
#define TMI_TX_RATE_CCK_5M_SP 6
#define TMI_TX_RATE_CCK_11M_SP 7
enum oid_bw {
BAND_WIDTH_20,
BAND_WIDTH_40,
BAND_WIDTH_80,
BAND_WIDTH_160,
BAND_WIDTH_10,
BAND_WIDTH_5,
BAND_WIDTH_8080,
BAND_WIDTH_BOTH,
BAND_WIDTH_25,
BAND_WIDTH_20_242TONE,
BAND_WIDTH_NUM
};
#define BW_20 BAND_WIDTH_20
#define BW_40 BAND_WIDTH_40
#define BW_80 BAND_WIDTH_80
#define BW_160 BAND_WIDTH_160
#define BW_10 BAND_WIDTH_10
#define BW_5 BAND_WIDTH_5
#define BW_8080 BAND_WIDTH_8080
#define BW_25 BAND_WIDTH_25
#define BW_20_242TONE BAND_WIDTH_20_242TONE
#define BW_NUM BAND_WIDTH_NUM
typedef enum _SEC_CIPHER_MODE {
SEC_CIPHER_NONE,
SEC_CIPHER_WEP40,
SEC_CIPHER_WEP104,
SEC_CIPHER_WEP128,
SEC_CIPHER_TKIP,
SEC_CIPHER_CCMP128,
SEC_CIPHER_CCMP256,
SEC_CIPHER_GCMP128,
SEC_CIPHER_GCMP256,
SEC_CIPHER_BIP_CMAC128,
SEC_CIPHER_BIP_CMAC256,
SEC_CIPHER_BIP_GMAC128,
SEC_CIPHER_BIP_GMAC256,
SEC_CIPHER_WPI_SMS4, /* WPI SMS4 support */
SEC_CIPHER_MAX /* Not a real mode, defined as upper bound */
} SEC_CIPHER_MODE;
#define IS_CIPHER_NONE(_Cipher) (((_Cipher) & (1 << SEC_CIPHER_NONE)) > 0)
#define IS_CIPHER_WEP40(_Cipher) (((_Cipher) & (1 << SEC_CIPHER_WEP40)) > 0)
#define IS_CIPHER_WEP104(_Cipher) (((_Cipher) & (1 << SEC_CIPHER_WEP104)) > 0)
#define IS_CIPHER_WEP128(_Cipher) (((_Cipher) & (1 << SEC_CIPHER_WEP128)) > 0)
#define IS_CIPHER_WEP(_Cipher) (((_Cipher) & ((1 << SEC_CIPHER_WEP40) | (1 << SEC_CIPHER_WEP104) | (1 << SEC_CIPHER_WEP128))) > 0)
#define IS_CIPHER_TKIP(_Cipher) (((_Cipher) & (1 << SEC_CIPHER_TKIP)) > 0)
#define IS_CIPHER_WEP_TKIP_ONLY(_Cipher) ((IS_CIPHER_WEP(_Cipher) || IS_CIPHER_TKIP(_Cipher)) && (_Cipher < (1 << SEC_CIPHER_CCMP128)))
#define IS_CIPHER_CCMP128(_Cipher) (((_Cipher) & (1 << SEC_CIPHER_CCMP128)) > 0)
#define IS_CIPHER_CCMP256(_Cipher) (((_Cipher) & (1 << SEC_CIPHER_CCMP256)) > 0)
#define IS_CIPHER_GCMP128(_Cipher) (((_Cipher) & (1 << SEC_CIPHER_GCMP128)) > 0)
#define IS_CIPHER_GCMP256(_Cipher) (((_Cipher) & (1 << SEC_CIPHER_GCMP256)) > 0)
#define IS_CIPHER_BIP_CMAC128(_Cipher) (((_Cipher) & (1 << SEC_CIPHER_BIP_CMAC128)) > 0)
#define IS_CIPHER_BIP_CMAC256(_Cipher) (((_Cipher) & (1 << SEC_CIPHER_BIP_CMAC256)) > 0)
#define IS_CIPHER_BIP_GMAC128(_Cipher) (((_Cipher) & (1 << SEC_CIPHER_BIP_GMAC128)) > 0)
#define IS_CIPHER_BIP_GMAC256(_Cipher) (((_Cipher) & (1 << SEC_CIPHER_BIP_GMAC256)) > 0)
/* 802.11 authentication and key management */
typedef enum _SEC_AKM_MODE {
SEC_AKM_OPEN,
SEC_AKM_SHARED,
SEC_AKM_AUTOSWITCH,
SEC_AKM_WPA1, /* Enterprise security over 802.1x */
SEC_AKM_WPA1PSK,
SEC_AKM_WPANone, /* For Win IBSS, directly PTK, no handshark */
SEC_AKM_WPA2, /* Enterprise security over 802.1x */
SEC_AKM_WPA2PSK,
SEC_AKM_FT_WPA2,
SEC_AKM_FT_WPA2PSK,
SEC_AKM_WPA2_SHA256,
SEC_AKM_WPA2PSK_SHA256,
SEC_AKM_TDLS,
SEC_AKM_SAE_SHA256,
SEC_AKM_FT_SAE_SHA256,
SEC_AKM_SUITEB_SHA256,
SEC_AKM_SUITEB_SHA384,
SEC_AKM_FT_WPA2_SHA384,
SEC_AKM_WAICERT, /* WAI certificate authentication */
SEC_AKM_WAIPSK, /* WAI pre-shared key */
SEC_AKM_OWE,
SEC_AKM_FILS_SHA256,
SEC_AKM_FILS_SHA384,
SEC_AKM_WPA3, /* WPA3(ent) = WPA2(ent) + PMF MFPR=1 => WPA3 code flow is same as WPA2, the usage of SEC_AKM_WPA3 is to force pmf on */
SEC_AKM_MAX /* Not a real mode, defined as upper bound */
} SEC_AKM_MODE;
#define IS_AKM_OPEN(_AKMMap) ((_AKMMap & (1 << SEC_AKM_OPEN)) > 0)
#define IS_AKM_SHARED(_AKMMap) ((_AKMMap & (1 << SEC_AKM_SHARED)) > 0)
#define IS_AKM_AUTOSWITCH(_AKMMap) ((_AKMMap & (1 << SEC_AKM_AUTOSWITCH)) > 0)
#define IS_AKM_WPA1(_AKMMap) ((_AKMMap & (1 << SEC_AKM_WPA1)) > 0)
#define IS_AKM_WPA1PSK(_AKMMap) ((_AKMMap & (1 << SEC_AKM_WPA1PSK)) > 0)
#define IS_AKM_WPANONE(_AKMMap) ((_AKMMap & (1 << SEC_AKM_WPANone)) > 0)
#define IS_AKM_WPA2(_AKMMap) ((_AKMMap & (1 << SEC_AKM_WPA2)) > 0)
#define IS_AKM_WPA2PSK(_AKMMap) ((_AKMMap & (1 << SEC_AKM_WPA2PSK)) > 0)
#define IS_AKM_FT_WPA2(_AKMMap) ((_AKMMap & (1 << SEC_AKM_FT_WPA2)) > 0)
#define IS_AKM_FT_WPA2PSK(_AKMMap) ((_AKMMap & (1 << SEC_AKM_FT_WPA2PSK)) > 0)
#define IS_AKM_WPA2_SHA256(_AKMMap) ((_AKMMap & (1 << SEC_AKM_WPA2_SHA256)) > 0)
#define IS_AKM_WPA2PSK_SHA256(_AKMMap) ((_AKMMap & (1 << SEC_AKM_WPA2PSK_SHA256)) > 0)
#define IS_AKM_TDLS(_AKMMap) ((_AKMMap & (1 << SEC_AKM_TDLS)) > 0)
#define IS_AKM_SAE_SHA256(_AKMMap) ((_AKMMap & (1 << SEC_AKM_SAE_SHA256)) > 0)
#define IS_AKM_FT_SAE_SHA256(_AKMMap) ((_AKMMap & (1 << SEC_AKM_FT_SAE_SHA256)) > 0)
#define IS_AKM_SUITEB_SHA256(_AKMMap) ((_AKMMap & (1 << SEC_AKM_SUITEB_SHA256)) > 0)
#define IS_AKM_SUITEB_SHA384(_AKMMap) ((_AKMMap & (1 << SEC_AKM_SUITEB_SHA384)) > 0)
#define IS_AKM_FT_WPA2_SHA384(_AKMMap) ((_AKMMap & (1 << SEC_AKM_FT_WPA2_SHA384)) > 0)
#define IS_AKM_WPA3(_AKMMap) ((_AKMMap & (1 << SEC_AKM_WPA3)) > 0)
#define IS_AKM_WPA3PSK(_AKMMap) (IS_AKM_SAE_SHA256(_AKMMap))
#define IS_AKM_WPA3_192BIT(_AKMMap) (IS_AKM_SUITEB_SHA384(_AKMMap))
#define IS_AKM_OWE(_AKMMap) ((_AKMMap & (1 << SEC_AKM_OWE)) > 0)
int get_macaddr(lua_State *L);
int convert_string_display(lua_State *L);
int StaInfo(lua_State *L);
int getWMOde(lua_State *L);
int getTxPower(lua_State *L);
int getTempature(lua_State *L);
int getChannel(lua_State *L);
int scanResult(lua_State *L);
void getRate(HTTRANSMIT_SETTING_FIX HTSetting, ULONG *fLastTxRxRate);
void get_rate_he(UINT8 mcs, UINT8 bw, UINT8 nss, UINT8 dcm, ULONG *last_tx_rate);
UINT32 cck_to_mcs(UINT32 mcs);
const char *GetEncryModeStr(UINT32 encryMode);
const char *GetAuthModeStr(UINT32 authMode);
#endif

View File

@ -0,0 +1,479 @@
#include "mtwifi.h"
#define MAX_NUM_HE_BANDWIDTHS 4
#define MAX_NUM_HE_SPATIAL_STREAMS 4
#define MAX_NUM_HE_MCS_ENTRIES 12
UINT32 cck_to_mcs(UINT32 mcs) {
UINT32 ret = 0;
if (mcs == TMI_TX_RATE_CCK_1M_LP)
ret = 0;
else if (mcs == TMI_TX_RATE_CCK_2M_LP)
ret = 1;
else if (mcs == TMI_TX_RATE_CCK_5M_LP)
ret = 2;
else if (mcs == TMI_TX_RATE_CCK_11M_LP)
ret = 3;
else if (mcs == TMI_TX_RATE_CCK_2M_SP)
ret = 1;
else if (mcs == TMI_TX_RATE_CCK_5M_SP)
ret = 2;
else if (mcs == TMI_TX_RATE_CCK_11M_SP)
ret = 3;
return ret;
}
static UINT16 he_mcs_phyrate_mapping_table[MAX_NUM_HE_BANDWIDTHS][MAX_NUM_HE_SPATIAL_STREAMS][MAX_NUM_HE_MCS_ENTRIES] = {
{ /*20 Mhz*/
/* 1 SS */
{
/* DCM 0*/
8,
17,
25,
34,
51,
68,
77,
86,
103,
114,
129,
143
},
/* 2 SS */
{
/* DCM 0 */
17,
34,
51,
68,
103,
137,
154,
172,
206,
229,
258,
286
},
/* 3 SS */
{
/* DCM 0 */
25,
51,
77,
103,
154,
206,
232,
258,
309,
344,
387,
430
},
/* 4 SS */
{
/* DCM 0 */
34,
68,
103,
137,
206,
275,
309,
344,
412,
458,
516,
573
}
},
{ /*40 Mhz*/
/* 1 SS */
{
/* DCM 0*/
17,
34,
51,
68,
103,
137,
154,
172,
206,
229,
258,
286
},
/* 2 SS */
{
/* DCM 0 */
34,
68,
103,
137,
206,
275,
309,
344,
412,
458,
516,
573
},
/* 3 SS */
{
/* DCM 0 */
51,
103,
154,
206,
309,
412,
464,
516,
619,
688,
774,
860
},
/* 4 SS */
{
/* DCM 0 */
68,
137,
206,
275,
412,
550,
619,
688,
825,
917,
1032,
1147
}
},
{ /*80 Mhz*/
/* 1 SS */
{
/* DCM 0*/
36,
72,
108,
144,
216,
288,
324,
360,
432,
480,
540,
600
},
/* 2 SS */
{
/* DCM 0 */
72,
144,
216,
288,
432,
576,
648,
720,
864,
960,
1080,
1201
},
/* 3 SS */
{
/* DCM 0 */
108,
216,
324,
432,
648,
864,
972,
1080,
1297,
1441,
1621,
1801
},
/* 4 SS */
{
/* DCM 0 */
144,
288,
432,
576,
864,
1152,
1297,
1141,
1729,
1921,
2161,
2401
}
},
{ /*160 Mhz*/
/* 1 SS */
{
/* DCM 0*/
72,
144,
216,
288,
432,
576,
648,
720,
864,
960,
1080,
1201
},
/* 2 SS */
{
/* DCM 0 */
144,
288,
432,
576,
864,
1152,
1297,
1441,
1729,
1921,
2161,
2401
},
/* 3 SS */
{
/* DCM 0 */
216,
432,
648,
864,
1297,
1729,
1945,
2161,
2594,
2882,
3242,
3602
},
/* 4 SS */
{
/* DCM 0 */
288,
576,
864,
1152,
1729,
2305,
2594,
2882,
3458,
3843,
4323,
4803
},
}
};
void get_rate_he(UINT8 mcs, UINT8 bw, UINT8 nss, UINT8 dcm, ULONG *last_tx_rate)
{
ULONG value = 0;
if (nss == 0)
nss = 1;
if (mcs >= MAX_NUM_HE_MCS_ENTRIES)
mcs = MAX_NUM_HE_MCS_ENTRIES - 1;
if (nss > MAX_NUM_HE_SPATIAL_STREAMS)
nss = MAX_NUM_HE_SPATIAL_STREAMS;
if (bw >= MAX_NUM_HE_BANDWIDTHS)
bw = MAX_NUM_HE_BANDWIDTHS - 1;
nss--;
value = he_mcs_phyrate_mapping_table[bw][nss][mcs];
/*In spec data rate when DCM =1 is half of the data rate when DCM = 0*/
if (dcm && value)
value = value / 2 ;
*last_tx_rate = (ULONG)value;
return;
}
static INT32 getLegacyOFDMMCSIndex(UINT8 MCS)
{
INT32 mcs_index = MCS;
if (MCS == 0xb)
mcs_index = 0;
else if (MCS == 0xf)
mcs_index = 1;
else if (MCS == 0xa)
mcs_index = 2;
else if (MCS == 0xe)
mcs_index = 3;
else if (MCS == 0x9)
mcs_index = 4;
else if (MCS == 0xd)
mcs_index = 5;
else if (MCS == 0x8)
mcs_index = 6;
else if (MCS == 0xc)
mcs_index = 7;
return mcs_index;
}
static INT MCSMappingRateTable[] = {
2, 4, 11, 22, 12, 18, 24, 36, 48, 72, 96, 108, 109, 110, 111, 112,/* CCK and OFDM */
13, 26, 39, 52, 78, 104, 117, 130, 26, 52, 78, 104, 156, 208, 234, 260,
39, 78, 117, 156, 234, 312, 351, 390, /* BW 20, 800ns GI, MCS 0~23 */
27, 54, 81, 108, 162, 216, 243, 270, 54, 108, 162, 216, 324, 432, 486, 540,
81, 162, 243, 324, 486, 648, 729, 810, /* BW 40, 800ns GI, MCS 0~23 */
14, 29, 43, 57, 87, 115, 130, 144, 29, 59, 87, 115, 173, 230, 260, 288,
43, 87, 130, 173, 260, 317, 390, 433, /* BW 20, 400ns GI, MCS 0~23 */
30, 60, 90, 120, 180, 240, 270, 300, 60, 120, 180, 240, 360, 480, 540, 600,
90, 180, 270, 360, 540, 720, 810, 900, /* BW 40, 400ns GI, MCS 0~23 */
/*for 11ac:20 Mhz 800ns GI*/
6, 13, 19, 26, 39, 52, 58, 65, 78, 90, /*1ss mcs 0~8*/
13, 26, 39, 52, 78, 104, 117, 130, 156, 180, /*2ss mcs 0~8*/
19, 39, 58, 78, 117, 156, 175, 195, 234, 260, /*3ss mcs 0~9*/
26, 52, 78, 104, 156, 208, 234, 260, 312, 360, /*4ss mcs 0~8*/
/*for 11ac:40 Mhz 800ns GI*/
13, 27, 40, 54, 81, 108, 121, 135, 162, 180, /*1ss mcs 0~9*/
27, 54, 81, 108, 162, 216, 243, 270, 324, 360, /*2ss mcs 0~9*/
40, 81, 121, 162, 243, 324, 364, 405, 486, 540, /*3ss mcs 0~9*/
54, 108, 162, 216, 324, 432, 486, 540, 648, 720, /*4ss mcs 0~9*/
/*for 11ac:80 Mhz 800ns GI*/
29, 58, 87, 117, 175, 234, 263, 292, 351, 390, /*1ss mcs 0~9*/
58, 117, 175, 243, 351, 468, 526, 585, 702, 780, /*2ss mcs 0~9*/
87, 175, 263, 351, 526, 702, 0, 877, 1053, 1170, /*3ss mcs 0~9*/
117, 234, 351, 468, 702, 936, 1053, 1170, 1404, 1560, /*4ss mcs 0~9*/
/*for 11ac:160 Mhz 800ns GI*/
58, 117, 175, 234, 351, 468, 526, 585, 702, 780, /*1ss mcs 0~9*/
117, 234, 351, 468, 702, 936, 1053, 1170, 1404, 1560, /*2ss mcs 0~9*/
175, 351, 526, 702, 1053, 1404, 1579, 1755, 2160, 0, /*3ss mcs 0~8*/
234, 468, 702, 936, 1404, 1872, 2106, 2340, 2808, 3120, /*4ss mcs 0~9*/
/*for 11ac:20 Mhz 400ns GI*/
7, 14, 21, 28, 43, 57, 65, 72, 86, 100, /*1ss mcs 0~8*/
14, 28, 43, 57, 86, 115, 130, 144, 173, 200, /*2ss mcs 0~8*/
21, 43, 65, 86, 130, 173, 195, 216, 260, 288, /*3ss mcs 0~9*/
28, 57, 86, 115, 173, 231, 260, 288, 346, 400, /*4ss mcs 0~8*/
/*for 11ac:40 Mhz 400ns GI*/
15, 30, 45, 60, 90, 120, 135, 150, 180, 200, /*1ss mcs 0~9*/
30, 60, 90, 120, 180, 240, 270, 300, 360, 400, /*2ss mcs 0~9*/
45, 90, 135, 180, 270, 360, 405, 450, 540, 600, /*3ss mcs 0~9*/
60, 120, 180, 240, 360, 480, 540, 600, 720, 800, /*4ss mcs 0~9*/
/*for 11ac:80 Mhz 400ns GI*/
32, 65, 97, 130, 195, 260, 292, 325, 390, 433, /*1ss mcs 0~9*/
65, 130, 195, 260, 390, 520, 585, 650, 780, 866, /*2ss mcs 0~9*/
97, 195, 292, 390, 585, 780, 0, 975, 1170, 1300, /*3ss mcs 0~9*/
130, 260, 390, 520, 780, 1040, 1170, 1300, 1560, 1733, /*4ss mcs 0~9*/
/*for 11ac:160 Mhz 400ns GI*/
65, 130, 195, 260, 390, 520, 585, 650, 780, 866, /*1ss mcs 0~9*/
130, 260, 390, 520, 780, 1040, 1170, 1300, 1560, 1733, /*2ss mcs 0~9*/
195, 390, 585, 780, 1170, 1560, 1755, 1950, 2340, 0, /*3ss mcs 0~8*/
260, 520, 780, 1040, 1560, 2080, 2340, 2600, 3120, 3466, /*4ss mcs 0~9*/
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37
}; /* 3*3 */
void getRate(HTTRANSMIT_SETTING_FIX HTSetting, ULONG *fLastTxRxRate)
{
UINT8 Antenna = 0;
UINT8 MCS = HTSetting.field.MCS;
int rate_count = sizeof(MCSMappingRateTable) / sizeof(int);
int rate_index = 0;
int value = 0;
if (HTSetting.field.MODE >= MODE_VHT) {
MCS = HTSetting.field.MCS & 0xf;
Antenna = (HTSetting.field.MCS >> 4) + 1;
if (HTSetting.field.BW == BW_20) {
rate_index = 112 + ((Antenna - 1) * 10) +
((UCHAR)HTSetting.field.ShortGI * 160) +
((UCHAR)MCS);
} else if (HTSetting.field.BW == BW_40) {
rate_index = 152 + ((Antenna - 1) * 10) +
((UCHAR)HTSetting.field.ShortGI * 160) +
((UCHAR)MCS);
} else if (HTSetting.field.BW == BW_80) {
rate_index = 192 + ((Antenna - 1) * 10) +
((UCHAR)HTSetting.field.ShortGI * 160) +
((UCHAR)MCS);
} else if (HTSetting.field.BW == BW_160) {
rate_index = 232 + ((Antenna - 1) * 10) +
((UCHAR)HTSetting.field.ShortGI * 160) +
((UCHAR)MCS);
}
} else {
if (HTSetting.field.MODE >= MODE_HTMIX) {
MCS = HTSetting.field.MCS;
if ((HTSetting.field.MODE == MODE_HTMIX)
|| (HTSetting.field.MODE == MODE_HTGREENFIELD))
Antenna = (MCS >> 3) + 1;
/* map back to 1SS MCS , multiply by antenna numbers later */
if (MCS > 7)
MCS %= 8;
rate_index = 16 + ((UCHAR)HTSetting.field.BW * 24) + ((UCHAR)HTSetting.field.ShortGI * 48) + ((UCHAR)MCS);
} else {
if (HTSetting.field.MODE == MODE_OFDM)
rate_index = getLegacyOFDMMCSIndex(HTSetting.field.MCS) + 4;
else if (HTSetting.field.MODE == MODE_CCK)
rate_index = (UCHAR)(HTSetting.field.MCS);
}
}
if (rate_index < 0)
rate_index = 0;
if (rate_index >= rate_count)
rate_index = rate_count - 1;
if (HTSetting.field.MODE < MODE_VHT)
value = (MCSMappingRateTable[rate_index] * 5) / 10;
else
value = MCSMappingRateTable[rate_index];
if (HTSetting.field.MODE >= MODE_HTMIX && HTSetting.field.MODE < MODE_VHT)
value *= Antenna;
*fLastTxRxRate = (ULONG)value;
return;
}

View File

@ -0,0 +1,79 @@
#include "mtwifi.h"
const char *GetEncryModeStr(UINT32 encryMode)
{
if (IS_CIPHER_NONE(encryMode))
return "NONE";
else if (IS_CIPHER_WEP(encryMode))
return "WEP";
else if (IS_CIPHER_TKIP(encryMode) && IS_CIPHER_CCMP128(encryMode))
return "TKIPAES";
else if (IS_CIPHER_TKIP(encryMode))
return "TKIP";
else if (IS_CIPHER_CCMP128(encryMode))
return "AES";
else if (IS_CIPHER_CCMP256(encryMode))
return "CCMP256";
else if (IS_CIPHER_GCMP128(encryMode))
return "GCMP128";
else if (IS_CIPHER_GCMP256(encryMode))
return "GCMP256";
else if (IS_CIPHER_BIP_CMAC128(encryMode))
return "BIP-CMAC128";
else if (IS_CIPHER_BIP_CMAC256(encryMode))
return "BIP-CMAC256";
else if (IS_CIPHER_BIP_GMAC128(encryMode))
return "BIP-GMAC128";
else if (IS_CIPHER_BIP_GMAC256(encryMode))
return "BIP-GMAC256";
else
return "Unknown";
}
const char *GetAuthModeStr(UINT32 authMode)
{
if (IS_AKM_OPEN(authMode))
return "OPEN";
else if (IS_AKM_SHARED(authMode))
return "SHARED";
else if (IS_AKM_AUTOSWITCH(authMode))
return "WEPAUTO";
else if (IS_AKM_WPANONE(authMode))
return "WPANONE";
else if (IS_AKM_FT_WPA2PSK(authMode) && IS_AKM_FT_SAE_SHA256(authMode))
return "FT-WPA2PSKWPA3PSK";
else if (IS_AKM_WPA1(authMode) && IS_AKM_WPA2(authMode))
return "WPA1WPA2";
else if (IS_AKM_WPA1PSK(authMode) && IS_AKM_WPA2PSK(authMode))
return "WPAPSKWPA2PSK";
else if (IS_AKM_WPA2PSK(authMode) && IS_AKM_WPA3PSK(authMode))
return "WPA2PSKWPA3PSK";
else if (IS_AKM_WPA2PSK(authMode) && IS_AKM_WPA2PSK_SHA256(authMode) && IS_AKM_WPA3PSK(authMode))
return "WPA2PSKMIXWPA3PSK";
else if (IS_AKM_FT_SAE_SHA256(authMode))
return "FT-SAE";
else if (IS_AKM_WPA3PSK(authMode))
return "WPA3PSK";
else if (IS_AKM_WPA1(authMode))
return "WPA";
else if (IS_AKM_WPA1PSK(authMode))
return "WPAPSK";
else if (IS_AKM_FT_WPA2(authMode))
return "FT-WPA2";
else if (IS_AKM_FT_WPA2PSK(authMode))
return "FT-WPA2PSK";
else if (IS_AKM_WPA3(authMode)) /* WPA3 will be always accompanied by WPA2, so it should put before the WPA2 */
return "WPA3";
else if (IS_AKM_WPA2(authMode))
return "WPA2";
else if (IS_AKM_WPA2(authMode) && IS_AKM_WPA2_SHA256(authMode))
return "WPA2MIX";
else if (IS_AKM_WPA2PSK(authMode))
return "WPA2PSK";
else if (IS_AKM_WPA3_192BIT(authMode))
return "WPA3-192";
else if (IS_AKM_OWE(authMode))
return "OWE";
else
return "Unknown";
}

View File

@ -0,0 +1,17 @@
#
# Copyright (C) hanwckf <hanwckf@vip.qq.com>
#
# This is free software, licensed under the GNU General Public License v2.
#
include $(TOPDIR)/rules.mk
LUCI_TITLE:=LuCI support for mtwifi-cfg
LUCI_DEPENDS:=+mtwifi-cfg
LUCI_PKGARCH:=all
PKG_VERSION:=1
include $(TOPDIR)/feeds/luci/luci.mk
# call BuildPackage - OpenWrt buildroot signature

Some files were not shown because too many files have changed in this diff Show More