如何在Raspberry Pi 3上使用Ubuntu Server 16.04的机载WiFi?

我有一个树莓派3,需要在上面运行Ubuntu。我从https://wiki.ubuntu.com/ARM/RaspberryPi下载了Raspberry Pi 3的16.04服务器镜像并将其放入microSD卡中,它可以正常启动,并在连接到以太网时正常工作。
但是,似乎无法在Ubuntu 16.04上使板载wifi工作。Raspbian的无线网络功能正常,因此我知道硬件没有问题。
有没有人成功将Raspberry Pi 3上的Ubuntu Server 16.04的板载WiFi功能工作?我感觉它离工作很近了,但我只是缺少一些小细节。
在全新安装后,sudo lshw -C network确实显示wlan0,尽管我找不到它在/etc/network中定义的任何地方,而且它最初是禁用状态。
然后,我安装了wpasupplicant并将其添加到/etc/network/interfaces中:
把这段代码放到/etc/wpa_supplicant/wpa_supplicant.conf文件中:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=US
network={
        ssid="homewifi"
        psk="xxx"
        key_mgmt=WPA-PSK
}
network={
        ssid="phonewifi"
        psk="xxx"
        key_mgmt=WPA-PSK
}
为了获取这些设置,我启动了Raspbian,并连接到这两个不同的SSID,然后将设置复制到Ubuntu上。然而,在重新启动后,wlan0无法连接到任何网络,也无法获取IP等。
在使用Ubuntu Server 16.04配置树莓派3的WiFi时,wpa-supplicant是否不适用?或者是我配置有误?
5个回答

对于已安装apt的镜像
OS: Ubuntu 16.04.1 LTS  OS 
image: ubuntu-16.04-preinstalled-server-armhf+raspi3.img
HW: RASPBERRY PI 3 MODEL B

Step1:

sudo apt-get install wireless-tools

Step2:

sudo apt-get install wpasupplicant

Step3: add to /etc/network/interfaces:

auto wlan0 
iface wlan0 inet dhcp
wpa-ssid WIRELESSSSID 
wpa-psk WIRELESSPASSWORD

Step4: comment from /etc/network/interfaces the line:

#source /etc/network/interfaces.d/*.cfg

the commented interfaces.d/*.cfg file contains settings for the eth0.

I do not understand why but leaving this line active and adding the wlan0 config would crash the system at boot.

Step5: reboot

对于没有安装apt的核心镜像:
OS: Ubuntu Core 16 
image: (GNU/Linux 4.4.0-1030-raspi2 armv7l)
HW: RASPBERRY PI 3 MODEL B

Step1:

ifconfig wlan0 down
ifconfig wlan0 up

Step2: create wireless config file:

sudo vi /etc/network/interfaces.d/wlan0

Note: I tried without sudo but it would not let me save the changes

Step3: add the following content

auto wlan0 
iface wlan0 inet dhcp
wpa-ssid WIRELESSSSID 
wpa-psk WIRELESSPASSWORD

Step4: reboot


如果apt还没有安装,你是如何做到的呢?谢谢。 - Riccardo Magrini
1我已经更新了我的答案,也涵盖了Ubuntu Core。 - V Bota
1这是不是一个打字错误?"essid" 应该只是 "ssid" 吗? - kidbrax
使用块引用格式表示文本并非你的原创。是否是这样?如果是,请提供出处。 - brasofilo
为什么这些软件包没有预装在镜像中呢?人们不得不使用以太网才能让WiFi工作,真是个笑话。 - Alston
如果问题是关于连接到WiFi,那么没有WiFi/网络的情况下如何下载软件包呢?即使ifconfig也无法工作,因为它需要先安装。所以我现在陷入了困境。 - Rajendra
@Rajendra 你可以选择使用第一种方法:通过有线连接安装和下载所需的软件包。第二种方法是:创建一个临时的无保护的无线连接,安装wpasupplicant,然后进行必要的设置并切换到受保护的连接。 - V Bota

这是我的配置(与其他人略有不同,因为我使用wpa_supplicant.conf)。
在/etc/network/interfaces中,我有:
auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

文件/etc/wpa_supplicant/wpa_supplicant.conf包含以下内容:

country=GB

network={
    ssid="MyWifiNetwork"
    psk="myP4ssw0rd"
}

非常感谢。这个解决方案看起来最像Raspbian文档。整洁! - E. Sundin

我执行了iwconfig命令,然后收到了一些依赖项需要更新的消息,之后我才能安装无线工具。
sudo apt-get -f install
sudo apt-get -f install wireless-tools

在执行了这些命令之后,我能够使用iwconfig。
希望这对你有所帮助!

到目前为止有任何成功吗?你看了这个吗? ubuntu WPAHowTo 因此,我在运行Ubuntu MATE 16.04的RPI3上安装了它:
sudo apt-get install wpagui

在这里告诉你要这样运行: 你需要通过gksudo wpa_gui来运行它,这样它才能与WPA守护程序进行通信。
gksudo wpa_gui

即使在您的服务器版本上可能无法使用,由于缺少图形用户界面(?),它可能对Raspbian操作系统的测试目的有所帮助。甚至可以帮助推断出正确的设置。这在我的情况下确实起到了作用。

wpa-supplicant和wpa_gui是同时开发的。因此,是的,wpa-supplicant是为Raspberry Pi 3配置WiFi的方式,而wpa_gui只是提供其图形用户界面。 - Rudi

也许我的解决方案已经有其他人重复了。不管怎样,只需按照以下3个步骤尝试一下。
安装WPA Supplicant。
sudo apt-get install wpasupplicant

编辑以下内容的/etc/network/interfaces文件。根据您的喜好,编辑Your Wifi Name(支持空格)和yourPassword
# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
# source-directory /etc/network/interfaces.d

# The loopback network interface
auto lo
iface lo inet loopback

# The wireless network interface
allow-hotplug wlan0
auto wlan0
iface wlan0 inet dhcp
wpa-ssid My Wifi Name
wpa-psk yourPassword

# The primary network interface
# allow-hotplug eth0
# iface eth0 inet dhcp

重新启动您的系统
sudo reboot

这个解决方案适用于树莓派3和2以及Ubuntu Server 14.04和16.04。(当然,对于pi2,你需要一个Wi-Fi dongle)
祝你好运!