我有一台打开了个人热点的 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 get
说country 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 wlp4s0
或ethtool -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 热点未出现在可用网络列表中:
- 关闭然后打开个人热点
- 关闭和打开数据传输
- 如果您在锁定的屏幕上进行操作,请解锁屏幕
- 首先将另一部手机连接到该热点
- 通过 USB 电缆将其插入计算机以进行以太网连接