Skip to the content.

impala : wifi 图形管理工具

https://github.com/pythops/impala

impala

需要提前准备依赖:

sudo dnf install iwd
sudo systemctl enable --now iwd

不然启动会有这个错误:

Can not access the iwd service org.freedesktop.DBus.Error.ServiceUnknown: The name is not activatable

为什么 wifi 的网卡无法创建网桥

🤒  sudo brctl addif br0 wlo1
can't add wlo1 to bridge br0: Operation not supported

难道说,wifi 走的是难道不是以太网吗?

而发现 lcpi -s grep Eth 直接不会显示 wifi 的
04:00.0 Network controller: MEDIATEK Corp. MT7922 802.11ax PCI Express Wireless Network Adapter
        Subsystem: Lenovo Device e0c6
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 117
        IOMMU group: 1
        Region 0: Memory at 3ffc02000000 (64-bit, prefetchable) [size=1M]
        Region 2: Memory at c1700000 (64-bit, non-prefetchable) [size=32K]
        Capabilities: <access denied>
        Kernel driver in use: mt7921e
        Kernel modules: mt7921e
00:14.3 Network controller: Intel Corporation Alder Lake-S PCH CNVi WiFi (rev 11)
        DeviceName: Onboard - Ethernet
        Subsystem: Intel Corporation Device 0074
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin C routed to IRQ 18
        IOMMU group: 5
        Region 0: Memory at 401211c000 (64-bit, non-prefetchable) [size=16K]
        Capabilities: <access denied>
        Kernel driver in use: iwlwifi
        Kernel modules: iwlwifi

简单看看传输的过程:

Ethernet driver 是注册了 net_device_ops::igc_xmit_frame 的:

@[
    igc_xmit_frame+5
    dev_hard_start_xmit+100
    sch_direct_xmit+164
    __dev_queue_xmit+2381
    ip_finish_output2+673
    __ip_queue_xmit+373
    __tcp_transmit_skb+2722
    tcp_write_xmit+1358
    __tcp_push_pending_frames+54
    tcp_rcv_established+1174
    tcp_v4_do_rcv+337
    tcp_v4_rcv+3342
    ip_protocol_deliver_rcu+50
    ip_local_deliver_finish+118
    ip_sublist_rcv_finish+126
    ip_sublist_rcv+405
    ip_list_rcv+317
    __netif_receive_skb_list_core+670
    netif_receive_skb_list_internal+443
    napi_complete_done+114
    igc_poll+1574
    __napi_poll+40
    net_rx_action+676
    __do_softirq+199
    __irq_exit_rcu+147
    common_interrupt+134
    asm_common_interrupt+38
    cpuidle_enter_state+204
    cpuidle_enter+45
    do_idle+472
    cpu_startup_entry+42
    start_secondary+286
    secondary_startup_64_no_verify+382
]: 55
@[
    igc_xmit_frame+5
    dev_hard_start_xmit+100
    sch_direct_xmit+164
    __qdisc_run+329
    net_tx_action+479
    __do_softirq+199
    __irq_exit_rcu+147
    common_interrupt+134
    asm_common_interrupt+38
    cpuidle_enter_state+204
    cpuidle_enter+45
    do_idle+472
    cpu_startup_entry+42
    start_secondary+286
    secondary_startup_64_no_verify+382
]: 5781
@[
    iwl_txq_gen2_tx+1740
    iwl_txq_gen2_tx+1740
    iwl_mvm_tx_mpdu+497
    iwl_mvm_tx_skb_sta+584
    iwl_mvm_tx_skb+23
    iwl_mvm_mac_itxq_xmit+139
    ieee80211_queue_skb+1395
    __ieee80211_xmit_fast+1974
    __ieee80211_subif_start_xmit+587
    ieee80211_subif_start_xmit+86
    dev_hard_start_xmit+100
    __dev_queue_xmit+599
    ip_finish_output2+673
    __ip_queue_xmit+373
    __tcp_transmit_skb+2722
    tcp_v4_do_rcv+337
    tcp_v4_rcv+3342
    ip_protocol_deliver_rcu+50
    ip_local_deliver_finish+118
    __netif_receive_skb_core.constprop.0+949
    __netif_receive_skb_list_core+314
    netif_receive_skb_list_internal+443
    napi_complete_done+114
    iwl_pcie_napi_poll_msix+166
    __napi_poll+40
    net_rx_action+676
    __do_softirq+199
    do_softirq.part.0+61
    __local_bh_enable_ip+104
    iwl_pcie_irq_rx_msix_handler+201
    irq_thread_fn+32
    irq_thread+251
    kthread+229
    ret_from_fork+49
    ret_from_fork_asm+27
]: 160
@[
    iwl_txq_gen2_tx+1740
    iwl_txq_gen2_tx+1740
    iwl_mvm_tx_mpdu+497
    iwl_mvm_tx_skb_sta+584
    iwl_mvm_tx_skb+23
    iwl_mvm_mac_itxq_xmit+139
    ieee80211_queue_skb+1395
    __ieee80211_xmit_fast+1974
    __ieee80211_subif_start_xmit+587
    ieee80211_subif_start_xmit+86
    dev_hard_start_xmit+100
    __dev_queue_xmit+599
    ip_finish_output2+673
    __ip_queue_xmit+373
    __tcp_transmit_skb+2722
    tcp_recvmsg_locked+597
    tcp_recvmsg+135
    inet_recvmsg+86
    sock_recvmsg+152
    sock_read_iter+150
    vfs_read+768
    ksys_read+187
    do_syscall_64+59
    entry_SYSCALL_64_after_hwframe+110
]: 2489

看上去,wifi 在使用 net_device_ops 之后,是重启封装了一次的。

兄弟,他们的 frame 都不一样:

好滴,的确不同,但是为什么 tap 以及 br0 都不同啊

阅读一下

有趣的问题

https://www.linux.org/threads/wireless-network-protocols.11548/

本站所有文章转发 CSDN 将按侵权追究法律责任,其它情况随意。