答え1
LinuxカーネルAPIの最近の変更により、netdevice
このエラーが発生します。具体的には、ndo_select_queue
次のように定義されます。これ5.1から:
u16 (*ndo_select_queue)(struct net_device *dev, struct sk_buff *skb,
struct net_device *sb_dev,
select_queue_fallback_t fallback);
しかしそれはに変更されましたこれ5.2では:
u16 (*ndo_select_queue)(struct net_device *dev, struct sk_buff *skb,
struct net_device *sb_dev);
だからハンドラos_intfs.c
も変わらなければなりません。
クイック修正でパラメータを削除するだけで、fallback
ビルドが正常に動作するようです。
diff --git a/os_dep/linux/os_intfs.c b/os_dep/linux/os_intfs.c
index b183a09..42f32a8 100644
--- a/os_dep/linux/os_intfs.c
+++ b/os_dep/linux/os_intfs.c
@@ -1101,8 +1101,7 @@ unsigned int rtw_classify8021d(struct sk_buff *skb)
#if (LINUX_VERSION_CODE>=KERNEL_VERSION(4,19,0))
static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb,
- struct net_device *sb_dev,
- select_queue_fallback_t fallback)
+ struct net_device *sb_dev)
#else
static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0)
別のパッチは次のとおりです。https://github.com/quickreflex/rtl8188eus/issues/28
デフォルトでは、パッチとソースコードが気に入らない場合は、行os_dep/linux/os_intfs.c
1103に進み、次に置き換えます。
static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb,
struct net_device *sb_dev,
select_queue_fallback_t fallback)
これで:
static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb,
struct net_device *sb_dev)