답변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)