系统安装

基础设备

  • 一个树莓派,以及树莓派电源
  • 一张 micrp SD 卡
  • micro SD 卡 读卡器

镜像下载

官网下载最新版系统,以前的版本可能不会支持你的设备
直接下载 zip 速度会比较慢,推荐使用 uTorrent 下载 torrent

镜像刻录

将 SD 卡插入读卡器,连接电脑,使用 df 查看设备是否挂载

  1. df -lh
  2. /dev/disk1s1 234Gi 70Gi 159Gi 31% 1486114 9223372036853289693 0% /
  3. /dev/disk1s4 234Gi 4.0Gi 159Gi 3% 4 9223372036854775803 0% /private/var/vm
  4. /dev/disk2s1 43Mi 4.0Ki 43Mi 1% 512 0 100% /Volumes/BOOT

将 SD 卡卸载

  1. diskutil umount /dev/disk2s1
  2. Volume BOOT on disk2s1 unmounted

将当前目录下的镜像文件,写入到 SD 卡

  1. sudo dd bs=4m if=2019-07-10-raspbian-buster-full.img of=/dev/rdisk2
  2. 1534+0 records in
  3. 1534+0 records out
  4. 6434062336 bytes transferred in 495.235091 secs (12991935 bytes/sec)

基础设置

ssh

树莓派默认是不开启 ssh 功能的,我们可以使用电脑在 boot 目录下新建 ssh 文件,开启 ssh 功能
树莓派的默认用户是pi ,密码为raspberry

连接 wifi

新建 wpa_supplicant.conf 文件,将下面内容写入,priority 代表的是优先级,数值越大优先级越高

  1. country=GB
  2. ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
  3. update_config=1
  4. network={
  5. ssid="wifi-ssid"
  6. psk="wifi-password"
  7. priority=5
  8. }
  9. network={
  10. ssid="wifi-ssid"
  11. psk="wifi-password"
  12. priority=10
  13. }

root

树莓派默认是不开启 root 用户的,所以很多时候都要在命令前面加上 sudo,这就很麻烦,所以先把 root 打开把

  1. sudo passwd root

接着输入下面命令,用来解锁root账户

  1. sudo passwd --unlock root

用下面命令切换到root管理员

  1. su root

但是现在并不能够使用 root 账户登陆,登陆的时候会让你输入密码,但是你输入你设置的密码是登不上的。我们还需要为 root 开启 ssh

设置ssh允许登录

  1. sudo sed -i "s/^#PermitRootLogin.*/PermitRootLogin yes/g" /etc/ssh/sshd_config

重启ssh服务

  1. 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

  1. $ sudo apt-get install dnsmasq hostapd
  • hostapd可以将无线网卡变为无线接入点
  • dnsmasq是作为DHCP服务器和DNS服务器
  • udhcpd 也是一个常用的DHCP服务器软件。

eth0

  1. vim /etc/network/in
  1. auto eth0
  2. allow-hotplug eth0
  3. iface eth0 inet dhcp
  4. allow-hotplug wlan0
  5. iface wlan0 inet static
  6. address 192.168.1.1
  7. netmask 255.255.255.0
  8. network 192.168.1.0
  9. broadcast 192.168.1.255
  10. up iptables-restore < /etc/iptables.ipv4.nat

将eth0配置为自动连接,将wlan0(无线网卡)配置为固定ip,调用iptables的配置文件。

hostapd

  1. vim /etc/hostapd/hostapd.conf
  1. # This is the name of the WiFi interface we configured above
  2. interface=wlan0
  3. # Use the nl80211 driver with the brcmfmac driver
  4. driver=nl80211
  5. # This is the name of the network
  6. ssid=RASP
  7. # Use the 2.4GHz band
  8. hw_mode=g
  9. # Use channel 6
  10. channel=6
  11. # Enable 802.11n
  12. ieee80211n=1
  13. # Enable WMM
  14. wmm_enabled=1
  15. # Enable 40MHz channels with 20ns guard interval
  16. ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]
  17. # Accept all MAC addresses
  18. macaddr_acl=0
  19. # Use WPA authentication
  20. auth_algs=1
  21. # Require clients to know the network name
  22. ignore_broadcast_ssid=0
  23. # Use WPA2
  24. wpa=2
  25. # Use a pre-shared key
  26. wpa_key_mgmt=WPA-PSK
  27. # The network passphrase
  28. wpa_passphrase=123456
  29. # Use AES, instead of TKIP
  30. rsn_pairwise=CCMP

dnsmasq

  1. vim /etc/dnsmasq.conf
  1. # Use interface wlan0
  2. interface=wlan0
  3. # Explicitly specify the address to listen on
  4. listen-address=192.168.1.1
  5. # Bind to the interface to make sure we aren't sending things elsewhere
  6. bind-interfaces
  7. # Forward DNS requests to Google DNS
  8. server=114.114.114.114
  9. # Don't forward short names
  10. domain-needed
  11. # Never forward addresses in the non-routed address spaces
  12. bogus-priv
  13. # Assign IP addresses between 192.168.1.50 and 192.168.1.150 with a 12 hour lease time
  14. dhcp-range=192.168.1.50,192.168.1.150,12h

最后 dhcp-range 项的地址要与 配置网卡 中无线网卡的地址一致

iptables

iptables 负责 eth0 和 wlan0 间的转发。

  1. sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  2. sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT
  3. sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

将配置保存到文件中,然后每次启动后读取,恢复配置。

  1. sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

systemctl

配置 dnsmasq 和 hostapd 开机自启动

  1. sudo systemctl enable dnsmasq
  2. sudo systemctl enable hostapd

Failed to start hostapd.service: Unit hostapd.service is masked

  1. sudo systemctl unmask hostapd