当前位置 博文首页 > 想要去旅行:Failed to set attribute: Invalid input data or p

    想要去旅行:Failed to set attribute: Invalid input data or p

    作者:[db:作者] 时间:2021-08-31 15:53

    arm64 swconfig 配置vlan 失败问题

    Failed to set attribute: Invalid input data or parameter 解决

    内核版本:linux-5.20.26
    现象:

    root@OpenWrt:/usr/lib# swconfig dev switch0 vlan 2 set ports "1 2 3"
    Failed to set attribute: Invalid input data or parameter
    

    参考资料:
    https://forum.openwrt.org/t/ath79-kernel-5-4-swconfig-libnl-tiny-issue/50689

    https://github.com/MartB/openwrt/commit/df051318503ff41c6214fa845e447dcfc5d1a1d8

    原因:libnl-tiny 的问题,改用 libnl-3可以解决

    --- a/package/network/config/swconfig/Makefile
    +++ b/package/network/config/swconfig/Makefile
    @@ -14,27 +14,26 @@ PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
     PKG_LICENSE:=GPL-2.0
     
     include $(INCLUDE_DIR)/package.mk
    -include $(INCLUDE_DIR)/kernel.mk
     
     define Package/swconfig
       SECTION:=base
       CATEGORY:=Base system
    -  DEPENDS:=+libuci +libnl-tiny
    +  DEPENDS:=+libuci +libnl
       TITLE:=Switch configuration utility
     endef
     
     TARGET_CPPFLAGS := \
            -D_GNU_SOURCE \
    -       -I$(STAGING_DIR)/usr/include/libnl-tiny \
    +       -I$(STAGING_DIR)/usr/include/libnl3\
    +       -I$(LINUX_DIR)/include \
            -I$(PKG_BUILD_DIR) \
    -       $(TARGET_CPPFLAGS) \
    -       -I$(LINUX_DIR)/user_headers/include
    +       $(TARGET_CPPFLAGS)
     
     define Build/Compile
            CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
            $(MAKE) -C $(PKG_BUILD_DIR) \
                    $(TARGET_CONFIGURE_OPTS) \
    -               LIBS="$(TARGET_LDFLAGS) -lnl-tiny -lm -luci -lubox"
    +               LIBS="-L$(STAGING_DIR)/usr/lib -lnl-genl-3 -lnl-3 -lm -luci -lubox"
     endef
    
    cs