系统安装
基础设备
- 一个树莓派,以及树莓派电源
- 一张 micrp SD 卡
- micro SD 卡 读卡器
镜像下载
在官网下载最新版系统,以前的版本可能不会支持你的设备
直接下载 zip 速度会比较慢,推荐使用 uTorrent 下载 torrent
镜像刻录
将 SD 卡插入读卡器,连接电脑,使用 df 查看设备是否挂载
df -lh
/dev/disk1s1 234Gi 70Gi 159Gi 31% 1486114 9223372036853289693 0% /
/dev/disk1s4 234Gi 4.0Gi 159Gi 3% 4 9223372036854775803 0% /private/var/vm
/dev/disk2s1 43Mi 4.0Ki 43Mi 1% 512 0 100% /Volumes/BOOT
将 SD 卡卸载
diskutil umount /dev/disk2s1
Volume BOOT on disk2s1 unmounted
将当前目录下的镜像文件,写入到 SD 卡
sudo dd bs=4m if=2019-07-10-raspbian-buster-full.img of=/dev/rdisk2
1534+0 records in
1534+0 records out
6434062336 bytes transferred in 495.235091 secs (12991935 bytes/sec)
基础设置
ssh
树莓派默认是不开启 ssh 功能的,我们可以使用电脑在 boot 目录下新建 ssh 文件,开启 ssh 功能
树莓派的默认用户是pi ,密码为raspberry
连接 wifi
新建 wpa_supplicant.conf
文件,将下面内容写入,priority 代表的是优先级,数值越大优先级越高
country=GB
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="wifi-ssid"
psk="wifi-password"
priority=5
}
network={
ssid="wifi-ssid"
psk="wifi-password"
priority=10
}
root
树莓派默认是不开启 root 用户的,所以很多时候都要在命令前面加上 sudo,这就很麻烦,所以先把 root 打开把
sudo passwd root
接着输入下面命令,用来解锁root账户
sudo passwd --unlock root
用下面命令切换到root管理员
su root
但是现在并不能够使用 root 账户登陆,登陆的时候会让你输入密码,但是你输入你设置的密码是登不上的。我们还需要为 root 开启 ssh
设置ssh允许登录
sudo sed -i "s/^#PermitRootLogin.*/PermitRootLogin yes/g" /etc/ssh/sshd_config
重启ssh服务
sudo systemctl restart ssh
开机
LED亮灯状态
LED | 颜色 | 功能 | 正常状态 |
---|---|---|---|
ACT | 绿色 | card status | 闪烁:SD卡正在活动(类似电脑的硬盘灯) |
PWR | 红色 | power | 不闪烁:正常 |
FDX | 橙 | full duplex | 亮:全双工/不亮:半双工 |
LNK | 橙 | link | 亮:网络连接成功 |
100 | 橙 | 100 Mbps | 亮:100 Mbps/不亮:10 Mbps |
常见亮灯状态:
ACT | PWR | FDX | LNK | 100 | 状态解读 | 解读/原因 |
---|---|---|---|---|---|---|
○●○ | ●●● | ○○○ | ○○○ | ○○○ | 正常 | ACT灯:SD卡正在活动 |
○○○ | ●●● | ○○○ | ○○○ | ○○○ | 不正常 | SD卡启动文件损坏或没有SD卡 |
○○○ | ○●○ | ○○○ | ○○○ | ○○○ | 不正常 | 电源电压不正常 |
●○● | ●●● | ○○○ | ○○○ | ○○○ | 不正常 | 看下文解释 |
○●○ | ●●● | ●●● | ●●● | ●●● | 正常 | 全双工/100 Mbps |
○●○ | ●●● | ●●● | ●●● | ○○○ | 正常 | 全双工/10 Mbps |
○●○ | ●●● | ○○○ | ●●● | ●●● | 正常 | 半双工/100 Mbps |
○●○ | ●●● | ○○○ | ●●● | ○○○ | 正常 | 半双工/10 Mbps |
一般 树莓派4B 是只有红灯(PWR)和绿灯(ACT)的,可以通过上面的表判断树莓派是否正常启动。
开启 Wifi
树莓派的 wifi 支持交换机模式与路由器模式,使用路由方式与交换机方式的主要区别是:所连设备的ip分配由树莓派负责还是树莓派的上级设备负责
Install
$ sudo apt-get install dnsmasq hostapd
hostapd
可以将无线网卡变为无线接入点dnsmasq
是作为DHCP服务器和DNS服务器udhcpd
也是一个常用的DHCP服务器软件。
eth0
vim /etc/network/in
auto eth0
allow-hotplug eth0
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.1.1
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
up iptables-restore < /etc/iptables.ipv4.nat
将eth0配置为自动连接,将wlan0(无线网卡)配置为固定ip,调用iptables的配置文件。
hostapd
vim /etc/hostapd/hostapd.conf
# This is the name of the WiFi interface we configured above
interface=wlan0
# Use the nl80211 driver with the brcmfmac driver
driver=nl80211
# This is the name of the network
ssid=RASP
# Use the 2.4GHz band
hw_mode=g
# Use channel 6
channel=6
# Enable 802.11n
ieee80211n=1
# Enable WMM
wmm_enabled=1
# Enable 40MHz channels with 20ns guard interval
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]
# Accept all MAC addresses
macaddr_acl=0
# Use WPA authentication
auth_algs=1
# Require clients to know the network name
ignore_broadcast_ssid=0
# Use WPA2
wpa=2
# Use a pre-shared key
wpa_key_mgmt=WPA-PSK
# The network passphrase
wpa_passphrase=123456
# Use AES, instead of TKIP
rsn_pairwise=CCMP
dnsmasq
vim /etc/dnsmasq.conf
# Use interface wlan0
interface=wlan0
# Explicitly specify the address to listen on
listen-address=192.168.1.1
# Bind to the interface to make sure we aren't sending things elsewhere
bind-interfaces
# Forward DNS requests to Google DNS
server=114.114.114.114
# Don't forward short names
domain-needed
# Never forward addresses in the non-routed address spaces
bogus-priv
# Assign IP addresses between 192.168.1.50 and 192.168.1.150 with a 12 hour lease time
dhcp-range=192.168.1.50,192.168.1.150,12h
最后 dhcp-range 项的地址要与 配置网卡
中无线网卡的地址一致
iptables
iptables 负责 eth0 和 wlan0 间的转发。
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT
将配置保存到文件中,然后每次启动后读取,恢复配置。
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
systemctl
配置 dnsmasq 和 hostapd 开机自启动
sudo systemctl enable dnsmasq
sudo systemctl enable hostapd
Failed to start hostapd.service: Unit hostapd.service is masked
sudo systemctl unmask hostapd