我正在尝试按照本教程在Ubuntu Server 20.04(64位)上运行Raspberry Pi 4。当我到达4. Boot Ubuntu Server时,我的RPi没有IP地址(当无头设置失败时我切换为使用显示器,并且调用hostname -I返回空行),我认为这是没有互联网连接的结果,sudo apt update进一步证明了这一点。每行都显示temporary failure resolving 'ports.ubuntu.com'失败。在Windows命令提示符下调用arp -a | findstr b8-27-eb时,我也会得到空白行。对network-config产生以下影响(应该是WIFI-NAME和WIFI-PASSWORD):

# this file generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init’s
# network configuration capabilities, write a file 
# /etc/cloud/cloud.cfg.d/99-disable-network-config-cfg with the following:
# network:{config: disabled}
network:
    ethernets:
        etho:
            dhcp4: true
            optional: true
    version: 2
    wifis:
        wlan0:
            access-points:
                WIFI-NAME:
                    password: WIFI-PASSWORD
            dhcp4: true
            optional: true


尽管如此,我的RPi 4仍然无法连接到WiFi。如果相关的话,我第一次启动RPi时实际上并没有获得IP地址,因为我不喜欢电线的角度,所以我在一两分钟后拔下了插头,重新插入,第二次启动时我试图获取IP。

我做错了什么?还是Ubuntu 20.04的问题,我应该使用Ubuntu 18.04.4直到20.04稳定下来?

评论

您列出了一个教程,但没有关注它!注意,对于Pi4,arp指令是错误的,但是有更好的确定IP的方法。您怎么知道“我的RPi 4仍然无法连接到WiFi”?

@Milliways我已经更新了自己的帖子,以更好地反映我的步骤。

我有这个完全相同的问题。 sudo iwlist wlan0扫描甚至可以连接到我要连接的网络,但是Wifi的系统对话框显示我没有安装wifi适配器。

#1 楼

在过去的几天里,我经历了类似的冒险:)我的系统现在是:


将ubuntu服务器20.04的映像刻录到SD卡上
引导rpi
network: {config: disabled}/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

将以下内容写入/etc/netplan/01-netcfg.yaml

network:
  version: 2
  renderer: networkd
  wifis:
    wlan0:
      dhcp4: true
      dhcp6: true
      optional: true
      access-points: 
        "******":
          password: "**********"



然后执行:

wifi现在适用于我,然后您可以执行apt update之类的操作并安装桌面和其他内容。

有关netplan的更多信息,请访问https:// netplan。 io / examples

评论


我明天要试试这个,因为我处在完全相同的情况下。您能解释一下网络{config:Disabled}这行做什么吗?另外,当我运行sudo netplan apply时,我得到警告:磁盘上的netplan-wpa-wlan0.service的单位文件,源配置文件或插件已更改。运行“ systemctl daemon-reload”以重新加载单元。

–布莱恩·特雷西(Brian Tracy)
20-4-27在6:19



config:disabled部分将关闭可在cloud.cfg.d中50多个文件中配置的“ cloud config”网络连接。我也遇到过几次在运行时也遇到警告的情况,但是重新启动后,它始终可以工作:)

– Andbdrew
20-4-30在21:59

感谢您的出色回答。我欠你啤酒:)

– ndreisg
20-05-27在17:25

有没有办法在不将键盘和显示器连接到Pi的情况下执行此操作?我正在尝试尽可能少地手动篡改它们,以便它们易于重新想象...谢谢!

–马克·斯蒂克利
20-05-29在20:38

截至2020年6月3日,略有更新。我还得到了Run'systemctl daemon-reload'。试过了。它以非零错误退出,我认为是5。我尝试重新启动。不好。没有wifi。重复此过程。相同。不好。然后,我完全关闭并关闭电源,而不是重新启动。重新启动,并在给出登录提示后,它还提供了几行的状态和版本信息,应该在此处输入登录用户。我继续使用用户名和密码,好像这些消息没有在登录区域上踩过,也没有重新定位光标。成功登录。

–always_learning
20年6月15日在19:18

#2 楼

使用上面的Andbdrew的技巧,我可以始终使这项工作变得无头(并且有头脑),而无需禁用Cloud-Init。感谢@enconn,提供了集思广益,并提供了指向https://cloudinit.readthedocs.io/en/latest/topics/examples.html#reboot-poweroff-when-finished的链接。

对SD进行映像使用Raspberry Pi Imager v 1.3的存储卡,选择'UNBUNTU 20.04 LTS(RASBERRY PI 3/4)(64位)图像。
成像完成后,取出SD卡,然后将其重新插入以便安装。
修改SD卡上的“ network-config”,使其仅包含以下示例中的项目。用#注释掉,或删除所有其他设置,包括LAN设置。输入任何缺少的项目。确保仅保留所示的缩进。每个缩进使用两个空格。删除所有制表符。如果使用Notepad ++,请特别小心,因为它会在用于输入新行的位置输入选项卡。将SSID替换为无线SSID,并将PassPhrase替换为无线密码。完成后,这两个值应该用引号引起来。将修改后的文件保存到SD卡。
编辑“用户数据”,并添加以下所示的其他行。再次使用空格而不是制表符,并注意缩进。
弹出SD卡,将其从用于对其进行映像的计算机中删除,然后插入已关闭电源的Raspberry Pi中。然后,打开RPi的电源。
让Ubuntu启动;不要尝试尽快登录Ubuntu。等待直到Cloud-Init运行(尽管它似乎什么都没做-大约两分钟后,它会显示SSH信息)。如果您不等待,则可能无法使用默认用户和密码登录。在cloud-init结束时,Ubuntu将重新启动。服务器启动需要几分钟。
在控制台或使用ssh ubuntu @ xxxx远程登录(从路由器等获取地址)。

就是这样:无头,Wi-Fi在Raspbery Pi 4b上使用Ubuntu 20.04
网络配置示例:
# This file contains a netplan-compatible configuration which cloud-init
# will apply on first-boot. Please refer to the cloud-init documentation and
# the netplan reference for full details:
#
# https://cloudinit.readthedocs.io/
# https://netplan.io/reference
#

version: 2
renderer: networkd
wifis:
  wlan0:
    dhcp4: true
    dhcp6: true
    optional: true
    access-points:
      "SSID":
         password: "PassPhrase"


将此附加到“用户数据”的末尾:
##Reboot after cloud-init completes
power_state:
  mode: reboot


评论


这非常适合作为一站式解决方案,而无需登录和执行其他操作

– Crollster
20年7月1日,0:39

重新启动是此处的关键部分。但是,为什么它在初始运行时不选择WiFi设置?这会阻止package_update和package_upgrade运行成功完成。

–百日草
20年7月6日在18:28



你是英雄。

– Rijumone
20年8月16日在9:54

#3 楼

我使用了您的方法,但是使用了其他文件。
sudoedit /etc/netplan/50-cloud-init.yaml

您不必执行sudo netplan生成或重新启动。 sudo netplan应用后,它将立即工作

评论


我相信这只是一个临时解决方案,因为50-cloud-init.yaml表示在实例重启后该更改不会持续。

–德雷克P
20年5月11日在14:49

@DrakeP我不知道为什么raspberrypi.stackexchange.com/questions/98598/…建议更新同一文件。这很令人困惑。

– piepi
20年7月28日在11:19

#4 楼

被接受的答案就像一个魅力。如果您的Raspberry Pi电源很弱,Ubuntu将以省电模式启动,这将阻止应用此网络计划解决方案。这是我几个小时的问题。

#5 楼

问题是由于此错误造成的,因为https://bugs.launchpad.net/ubuntu/+source/netplan.io/+bug/1874377
当前,即使应该解决此问题,Ubuntu 20.04.1也需要重新启动。电缆互联网立即连接。
Ubuntu 20.10甚至可以立即连接到wifi。