为什么 Ubuntu Linux 与 iPhone 个人 Wifi 热点的连接如此不稳定

为什么 Ubuntu Linux 与 iPhone 个人 Wifi 热点的连接如此不稳定

我有一台打开了个人热点的 iPhone(11)。有时,当我在没有 wifi 的地方时,我想使用 iPhone 的个人热点作为运行 Ubuntu 22.04 的笔记本电脑的互联网连接。如果我尝试要求我的 Ubuntu 连接到此热点,有时该热点(“Steve 的 iPhone”)会出现在我可以连接的网络列表中,然后就可以连接,有时它不会出现在列表中。对于何时会或不会找到这种联系,我看不出任何押韵或理由。关闭 wifi 并重新打开并不能解决问题。也看不到连接

sudo iwlist wlp4s0 scan | grep ESSID

(wlp4s0是我的wifi现在使用的接口ifconfig,尽管有时它显示为wlan0,这是我有一天想了解的另一个谜团。)

对于这种奇怪且不一致的行为有何解释?有谁知道如何使用该系统强制 wifi 连接行为更加一致?

[更新]下面的评论者认为上述描述过于模糊,但模糊性是问题所固有的。有时它有效,有时无效,我无法确定它为什么有效或失败。评论者建议最好询问有关如何解决此问题的信息。这是个好主意,所以我会问:

我该如何解决这个问题?

[更新2:回应@telcoM的问题]

品牌/型号为 Lenovo Thinkpad T540 (2014)

$ sudo lspci -s 4:0 -nnv
04:00.0 Network controller [0280]: Intel Corporation Wireless 7260 [8086:08b2] (rev 83)
    Subsystem: Intel Corporation Dual Band Wireless-AC 7260 [8086:c270]
    Flags: bus master, fast devsel, latency 0, IRQ 32
    Memory at f1400000 (64-bit, non-prefetchable) [size=8K]
    Capabilities: [c8] Power Management version 3
    Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
    Capabilities: [40] Express Endpoint, MSI 00
    Capabilities: [100] Advanced Error Reporting
    Capabilities: [140] Device Serial Number e8-2a-ea-ff-ff-15-8a-1f
    Capabilities: [14c] Latency Tolerance Reporting
    Capabilities: [154] Vendor Specific Information: ID=cafe Rev=1 Len=014 <?>
    Kernel driver in use: iwlwifi
    Kernel modules: iwlwifi

$ ethtool -i wlp4s0
driver: iwlwifi
version: 5.15.0-37-generic
firmware-version: 17.3216344376.0 7260-17.ucode
expansion-rom-version: 
bus-info: 0000:04:00.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no

$ sudo dmidecode -s system-product-name; sudo dmidecode -s system-sku-number; sudo dmidecode -s system-manufacturer
20BECTO1WW
LENOVO_MT_20BE
LENOVO

$ sudo dmidecode -s bios-version; sudo dmidecode -s bios-release-date
GMET91WW (2.39 )
06/03/2021

答案1

听起来笔记本电脑的可用 WiFi 通道可能比 iPhone 更受限制。通常热点(iPhone)决定使用的频道。 iPhone可能会在热点功能开启时自动做出决定。如果它碰巧选择了笔记本电脑无法使用的频道,笔记本电脑将无法找到热点。

使用iw reg get,您将看到 Linux 当前采用的一组特定于国家/地区的无线电频率限制,并且使用 ,iw list您可以看到笔记本电脑的 WiFi 适配器可以调谐到的频道列表。如果iw reg getcountry 00: DFS-UNSET,Linux 将仅在允许全球使用的信道上进行传输,直到它听到某个基站可以通知 WiFi 适配器它位于哪个国家/地区,以及它应该使用哪个国家/地区特定的限制。

一些 WiFi 适配器完全在内部处理特定国家/地区的频率限制(以避免因干扰军用雷达而引起法律问题的可能性),其他适配器则可以从内核获取输入。使用iw reg set <two-letter country code>,您可以告诉内核您对适用的国家/地区代码应该是什么的想法(如果当前未设置国家/地区代码)。

无论出于何种原因,某些 WiFi 适配器(和/或其驱动程序)可能无法使用您所在国家/地区的所有合法通道。我曾经有一个带有 Broadcom BCM43228 的系统;如果与开源b43驱动程序一起使用,可用的 5 GHz 通道集非常有限。闭源wl驱动程序有一套完整的可用通道。

不幸的是,iPhone 可能不会表明它为其热点功能选择了哪些频道。

事实上,你说的 WiFi 适配器有时显示为wlp4s0,有时显示为,这wlan0也很奇怪。也许会应用不同的设置,具体取决于适配器是否在早期 initramfs 中初始化,还是稍后在系统完全运行时初始化?

某些笔记本电脑具有用于禁用任何无线电发射器(用于“飞行模式”)的物理开关。其他人可以将类似的功能嵌入到 ACPI 固件中并通过特定的击键进行操作。sudo rfkill list应指示此类无线电发射器终止开关当前是否处于活动状态。

添加到您的问题并帮助排除故障的好信息是:

  • WiFi芯片的识别:sudo lspci -s 4:0 -nnv
  • 驾驶员身份:(ethtool -i wlp4s0ethtool -i wlan0
  • 您的笔记本电脑的品牌和型号(以防已知的固件错误导致 WiFi 适配器出现问题);的输出sudo dmidecode -s system-product-name; sudo dmidecode -s system-sku-number; sudo dmidecode -s system-manufacturer可能提供必要的信息
  • BIOS 版本/发布日期:sudo dmidecode -s bios-version; sudo dmidecode -s bios-release-date

答案2

一种可能的解决方法似乎适用于两台不同计算机上的两个不同实例:

获取可用网络的列表。如果没有出现 iPhone 热点,请在 iPhone 的“设置”->“个人热点”页面上将其关闭并重新打开。在这两种情况下,这都会导致 iPhone 热点出现在计算机的网络列表中。

我仍然想知道为什么这是必要的。

答案3

故障排除解决方法

如果 iPhone 热点未出现在可用网络列表中:

  1. 关闭然后打开个人热点
  2. 关闭和打开数据传输
  3. 如果您在锁定的屏幕上进行操作,请解锁屏幕
  4. 首先将另一部手机连接到该热点
  5. 通过 USB 电缆将其插入计算机以进行以太网连接

相关内容