树莓派安装 ubuntu server 20.4.2
详细介绍如何在树莓派 3b+ 上安装 ubuntu server 20.4.2。
开始
1: 下载Ubuntu Server for Raspberry Pi镜像.
2: 用读卡器将MicroSD卡连接电脑,再用Etcher
或者Win32Disk
刻录镜像(MicroSD卡需先格式化,格式可为FAT32)
3: 覆盖"system-boot"下的network-config以及user-data文件内容。
network-config文件内容:
# 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
#
#Replace the entire user-data on the imaged SD Card with this file.
version: 2
renderer: networkd
ethernets:
etho:
dhcp4: true
dhcp6: true
optional: true
wifis:
wlan0:
dhcp4: true
dhcp6: true
optional: true
access-points:
"wifi名称":
password: "wifi密码"
#"wifi名称1":
#password: "wifi密码1"
#"wifi名称2":
#password: "wifi密码2"
在user-data文件末尾添加:
## Reboot after cloud-init completes because otherwise wlan0 will not come up...
## despite cloud-init having applied settings from network-config
power_state:
mode: reboot
wifi设置
在windows上使用notepad等编辑文件时不要使用TAB制表符,一律使用2个空格替代TAB制表符,一定要注意缩进。 尽量添加多个wifi信息,如果只填了一个wifi树莓派有可能扫描不到某些wifi。
4: 取出SD卡并插在树莓派上,插上电源启动树莓派。
5: 等待3-5分钟,然后用 ARP 命令根据树莓派的网络适配器供应商的申请的 MAC 地址区间 (MAC 地址以 "b8:27:eb" 或 "dc:a6:32" 开头) 来识别哪个 IP 地址是树莓派:
Windows 运行
arp -a | findstr b8-27-eb 或 arp -a | findstr dc-a6-32
MacOS, Linux 运行
arp -na | grep -i "b8:27:eb" 或 arp -na | grep -i "dc:a6:32"
得到的输出应该是这样的:
PS D:\work_Files> arp -a | findstr b8-27-eb
192.168.1.16 b8-27-eb-d9-0e-83 ??
PS D:\work_Files>
注意: 树莓派4b的mac地址区间为 "dc-a6-32",其它的需使用 "b8-27-eb" 作为mac区间号.
6: 获取树莓派ip后可使用ssh登录了,ssh ubuntu@192.168.1.16
密码是ubuntu
时间设置
date -R # 查看时间
sudo tzselect 选择时区为Asia---China---Beijing Time
sudo cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
更改apt源为国内源
先备份原文件: sudo cp /etc/apt/sources.list /etc/apt/sources.list.back
使用 HTTPS 可以有效避免国内运营商的缓存劫持,但需要事先安装 sudo apt-get install apt-transport-https
用vim编辑sources.list
:
先按下:
再输入%s/http:\/\/ports.ubuntu.com/https:\/\/mirrors.aliyun.com/g
最后更新apt缓存: sudo apt-get update && sudo apt-get upgrade
设置hostname
sudo hostnamectl set-hostname pi-server
sudo vim /etc/hosts
添加
127.0.0.1 pi-server
通过hostnamectl
查看是否更改生效
以下可不操作:
sudo vim /etc/cloud/cloud.cfg
添加:
# Set preserve_hostname to true for persistance after reboot
preserve_hostname: true
将终端设置成中文
sudo dpkg-reconfigure --force locales
选择最后的zh_CN.UTF-8
和zh_CN.GBK
将选择停留在zh_CN.UTF-8
上并确认
注销并重新登录后即可发现终端语言已经调整为中文
新增用户并删除ubuntu账号
sudo useradd -G admin,sudo -s /bin/bash -m iecho # 新增用户iecho并添加到sudo
sudo passwd iecho # 设置密码
sudo userdel -r ubuntu # 删除ubuntu账号
有关账号的操作
加入admin组和sudo组都可让普通账号拥有sudo权限,如果已经创建了账号但想使用sudo,可使用命令`sudo usermod -aG sudo 账号名
开机不能连接wifi
当树莓派开机后不能连接wifi时,你可选择:
1: 使用网线连接树莓派和路由器,再连接显示器、键盘、鼠标等设备并用命令: ip a
查看有没有网络连接信息。
2:使用命令: sudo networkctl 或者ls /sys/class/net/ 或者sudo lshw
查看网卡名称.有线网卡一般叫 "etho", 无线网卡都叫 "wlan0"
3: 当连接网线后可先使用sudo apt-get update
更新系统,再安装如下软件:
sudo apt install wireless-tools
和 sudo apt install -y wpasupplicant
4: 使用sudo iwlist wlan0 scan | grep SSID
扫描到你需要连接的wifi并记录wifi名称。
5: 开启wpa_supplicant:
sudo systemctl enable wpa_supplicant
sudo systemctl start wpa_supplicant
6: 编辑: sudo vim /etc/netplan/50-cloud-init.yaml
,覆盖内容:
# This file is 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
dhcp6: true
optional: true
renderer: networkd
version: 2
wifis:
wlan0:
access-points:
"wifi名称":
password: "wifi密码"
dhcp4: true
dhcp6: true
optional: true
注意: 一定要注意缩进,wifi名称和密码都要使用引号括起来
7: 生成配置并加入wifi
sudo netplan --debug try
sudo netplan --debug generate
sudo systemctl daemon-reload 或者 sudo systemctl restart netplan-wpa-wlan0.service
sudo netplan --debug apply
8: 可通过ip a
查看wlan0中是否有ip等信息,如果没有可sudo reboot
重启尝试。
查看网络连接状态命令:
sudo systemctl status systemd-networkd
sudo systemctl status netplan-wpa-wlan0.service
FAQ
- 设置树莓派 ip
- 用显示器连接树莓派,但是始终不能出现登录提示,无法登录
- 网络换了,ip 地址改变,无法使用原来的 ip 来通过 ssh 登录
- 解决办法:
- 用 linux 挂载树莓派的 SD 卡中的 rootfs 分区,然后复制一份 /etc/dhcpcd.conf 文件到本机
- 修改复制后的 /etc/dhcpcd.conf 里的 ip 地址
- static ip_address=192.168.5.20/24
- static routers=192.168.5.1
- static domain_name_servers=223.5.5.5
- 保存后再用 sudo cp dhcpcd.conf /run/media/echoxu/rootfs/etc/
- 重启树莓派