当前位置: 首页 > news >正文

Ubuntu Server 20.04.4 在树莓派上的体验之连接网络和WIFI(WLAN0)

下载地址在这里,

Ubuntu 20.04.4 LTS (Focal Fossa)CD images for Ubuntu 20.04.4 LTS (Focal Fossa)https://cdimage.ubuntu.com/releases/20.04.4/release/我的树莓派4b,直接使用的官方的烧录工具,如下,

 这里选server是因为找不到desktop版本的。

烧录成功后启动,官方的工具都比较好用,一般都能一次性成功,默认的用户名和密码都是 ubuntu。

Username and password are both "ubuntu" according to this: How to install Ubuntu Server on your Raspberry Pi | Ubuntu

连接网络和WIFI(WLAN0)

系统装好后的第一件事是连接网络,先用一要网线连接到开发板,然后根据自己的需要安装一些网络管理常用的工具,其中有些工具可能系统已经默认安装过了,

sudo apt install net-tools
sudo apt install wireless-tools
sudo apt install network-manager
sudo apt install rfkill
sudo apt install wpasupplicant

安装好之后就可以用下面的指令来查询机器IP了,

ifconfig
iwconfig

找到IP后,就可以通过WINSCP或者putty登陆到树莓派了。

ubuntu@ubuntu:~$ iwconfig
wlan0     IEEE 802.11  ESSID:off/any
          Mode:Managed  Access Point: Not-Associated
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on

eth0      no wireless extensions.

lo        no wireless extensions.

可以看到,我们的wlan0没有连接网络,这个信息和下面的查询是一致的,

ubuntu@ubuntu:~$ ls /sys/class/net
eth0  lo  wlan0
ubuntu@ubuntu:~$ nmcli d
DEVICE         TYPE      STATE         CONNECTION
wlan0          wifi      disconnected  --
eth0           ethernet  unmanaged     --
lo             loopback  unmanaged     --
p2p-dev-wlan0  wifi-p2p  unmanaged     --

然后,看一下自己能找到的WIFI信号,比如我的就是HUAWEI-HB

 如果想得到更详细的信息,你可以使用下面的指令,

ubuntu@ubuntu:~$ sudo ifconfig wlan0 up
ubuntu@ubuntu:~$ iwlist wlan0 scan
wlan0     Scan completed :
          Cell 01 - Address: 4C:77:66:1A:C6:31
                    Channel:1
                    Frequency:2.412 GHz (Channel 1)
                    Quality=62/70  Signal level=-48 dBm
                    Encryption key:on
                    ESSID:"606"
                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 9 Mb/s
                              18 Mb/s; 36 Mb/s; 54 Mb/s
                    Bit Rates:6 Mb/s; 12 Mb/s; 24 Mb/s; 48 Mb/s
                    Mode:Master
.............................................

上面的内容实在太多了,所以我省略掉了绝大部分;你可以通过下面的方式只简单地获取ESSID,

ubuntu@ubuntu:~$ sudo iwlist wlan0 scan | grep ESSID
                    ESSID:"HUAWEI-HB"
                    ESSID:"606"
                    ESSID:"608"
                    ESSID:""
                    ESSID:""

现在,你也可以使用rfkill来看一下你的WIFI,

ubuntu@ubuntu:~$ rfkill list
0: phy0: Wireless LAN
        Soft blocked: no
        Hard blocked: no

如果是soft blocked的话你可以通过下面的方式开启

ubuntu@ubuntu:~$ sudo rfkill unblock wifi

如果你使用wpa_supplicant的话,那么最好关闭ubuntu-desktop的Network-Manager以避免冲突,

sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager

然后用iwconfig检查一下当前状态,

这里可以看到,wifi还没有连接上,如果前面没有up,那就再次确认一下,

sudo ifconfig wlan0 up

如果你的路由是使用WEP加密的话,那么可以使用下面的命令,
iwconfig wlan0 essid "myhome" key 0123-4567-89

我的wifi使用的是WPA2PSK的加密方式,所以需要用wpa_cli来设置,

~$ wpa_passphrase "HUAWEI-HB" mypassword_is_here | sudo tee /etc/wpa_supplicant.conf
~$ sudo wpa_supplicant -c /etc/wpa_supplicant.conf -i wlan0 -B

如果你前面没有禁用掉NetworkManager的话,你可能会碰到下面的问题,

ubuntu@ubuntu:~$ sudo wpa_supplicant -c /etc/wpa_supplicant.conf -i wlan0
Successfully initialized wpa_supplicant
Failed to create interface p2p-dev-wlan0: -16 (Device or resource busy)
nl80211: Failed to create a P2P Device interface p2p-dev-wlan0
P2P: Failed to enable P2P Device interface
wlan0: Trying to associate with SSID 'HUAWEI-HB'
........

你可以先禁用掉NetworkManager,或者用下面的指令临时停用一下,

service network-manager stop

 注意,参数B表示在后台运行;否则的话你只能在前台运行,关闭命令窗口时你的WIFI也会同时关闭,

sudo wpa_supplicant -B -c /etc/wpa_supplicant.conf -i wlan0

现在,再用iwconfig检查一下,就发现你的WIFI已经连接上了,

ubuntu@ubuntu:~$ iwconfig
wlan0     IEEE 802.11  ESSID:"HUAWEI-HB"
          Mode:Managed  Frequency:2.412 GHz  Access Point: C8:xx:xx:xx:xx:E4
          Bit Rate=65 Mb/s   Tx-Power=31 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          Link Quality=62/70  Signal level=-48 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

eth0      no wireless extensions.

lo        no wireless extensions.

使用NetworkManager

不过,我发现最方便的还是NetworkManager,我自己比较少用wpa_supplicant,一般的办法是, 

$ sudo nmcli d wifi connect HUAWEI-HB password mypassword-here

命令比较简洁也比较好记忆,对于隐藏的网络,类似,

$ nmcli c add type wifi con-name <name> ifname wlan0 ssid <ssid>
$ nmcli c modify <name> wifi-sec.key-mgmt wpa-psk wifi-sec.psk <password>

需要注意的是,使用networkmanager最好把那些不用的功能全关闭掉,比如

sudo systemctl disable dhclient.service
sudo systemctl disable wpa_supplicant.service

附录:iwconfig和iwlist的通用用法

1.打开无线网卡电源
iwconfig wlan0 txpower no #iwconfig在树莓也没有这个

2.列出区域内的无线网络
iwlist wlan0 scan

3.假设要连接到网络myhome(即essid为myhome的网络),那么输入命令
iwconfig wlan0 essid "myhome"
如果网络是加密的,密码是0123456789,那么就输入命令
iwconfig wlan0 essid "myhome" key 0123-4567-89

4 如果正常的话,输入
iwconfig wlan0
就可以看到连接正常的各项参数了。

5.启动无线网卡
ifconfig wlan0 up

6.如果是用DHCP获取IP的,那么用dhclient或dhcpcd获取ip
dhclient wlan0 或dhcpcd wlan0

参考:

Using WPA_Supplicant to Connect to WPA2 Wi-fi from Terminal on Ubuntu 16.04 Server

Configure WiFi Connections | Ubuntu

相关文章:

  • Ubuntu ERROR: sudo: unable to resolve host ubuntu: Name or service not known
  • Ubuntu Server 20.04.4 在树莓派上的体验之ROS-Noetic的安装
  • ROS移植机器人小车:catkin_make过程中碰到的各种小问题
  • ROS移植机器人小车:问题集
  • ROS移植机器人小车:问题集(2)
  • Linux查看IP地址的几种方法
  • linux常用命令:查看硬件配置的方法示例(含Jetson)
  • anaconda安装opencv -> python[version=‘>=2.7,<2.8.0a0|>=3.5,<3.6.0a0|>=3.6,<3.7.0a0|>=3.7,<3.8.0a0‘]
  • VIM的一些常指令和用法
  • 如何自定义FileZilla编辑文件的默认打开方式
  • 如何在 Ubuntu 和其它 Linux 发行版中更改时区
  • OpenVINO: export failure: libpython3.9.so.1.0: cannot open shared object file: No such file or direc
  • udev规则以及编写
  • ROS + UDEV管理开源小车rikirobot的USB设备
  • (ros//EnvironmentVariables)ros环境变量
  • 【刷算法】从上往下打印二叉树
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • 2017年终总结、随想
  • Android交互
  • CentOS6 编译安装 redis-3.2.3
  • Mocha测试初探
  • node-glob通配符
  • Redis学习笔记 - pipline(流水线、管道)
  • Twitter赢在开放,三年创造奇迹
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • 技术:超级实用的电脑小技巧
  • 如何胜任知名企业的商业数据分析师?
  • 微服务核心架构梳理
  • 写代码的正确姿势
  • 用jQuery怎么做到前后端分离
  • 做一名精致的JavaScripter 01:JavaScript简介
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • zabbix3.2监控linux磁盘IO
  • 关于Kubernetes Dashboard漏洞CVE-2018-18264的修复公告
  • ​香农与信息论三大定律
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (附源码)springboot工单管理系统 毕业设计 964158
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (附源码)SSM环卫人员管理平台 计算机毕设36412
  • (转)http-server应用
  • .“空心村”成因分析及解决对策122344
  • .form文件_SSM框架文件上传篇
  • .net core 6 redis操作类
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • .pop ----remove 删除
  • /bin/rm: 参数列表过长"的解决办法
  • /etc/sudoer文件配置简析
  • @Bean, @Component, @Configuration简析
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(白虎组)
  • [ 蓝桥杯Web真题 ]-Markdown 文档解析