以下是在 macOS下完成的,其他系统可以找到相关替代品
准备镜像
我用的是 Raspbian,可以到官网下载最新镜像,选最后一个无桌面版,如果你有支持HDMI的屏幕,也可以选择桌面版,不过镜像会大一些,下载和刻录慢一点。
下载完毕之后解压,得到img文件。
格式化 SD 卡
首先 下载SD卡格式化工具
有 Windows 版本和 macOS 版本,Linux 下可以用 parted
命令.
然后打开它,选择SD卡,快速格式化。
刻录镜像到 SD 卡
macOS 和 Linux 下使用 dd 工具,Windows的话没有试过,可以尝试一下 ultraISO。
首先查看一下 SD 卡的设备标识符
diskutil list
在macOS下,如果没有外接其他设备,应该就是 /dev/disk2
以下直接使用 /dev/disk2 ,如果你的设备标识符不是这个,务必换成自己的
卸载 SD 卡
diskutil unmountDisk /dev/disk2 |
刻录镜像(把镜像路径换成你自己的)
sudo dd if=~/Downloads/raspbian-stretch-lite.img of=/dev/rdisk2 bs=1m |
请注意上面用的是 /dev/rdisk2
而不是 /dev/disk2
,因为后者速度实在是太慢了,等了半小时没写完。
开启ssh服务
在某个版本开始,raspbian 就默认不开启ssh服务,如果没有准备屏幕和键盘的话,就连不上了。
开启ssh服务的方法很简单,就是等 SD 卡镜像刻录完毕之后,在根目录创建一个名为 ssh
的文件夹即可。
然后弹出SD卡,插到树莓派上,插上网线,接上电源。
diskutil eject /dev/disk2 |
Engine, start!
安装必要软件
关于树莓派ip的获取可以通过在路由器设备列表里找,也可以接上屏幕看最后一行输出。当然了,如果以上你都没有的话,用 nmap 去扫你所在的网段吧,good luck。
raspbian 的初始ssh账号和密码分别是 pi 和 raspberry,记得及时修改。
修改apt源
默认的apt源是官方的,可问题在于它是http协议的,由于国内的网络环境实在是太糟糕了,出现了 Hash Sum mismatch
的错误,尝试改成 https,发现不支持。
于是找了国内的https源。
有两个文件需要修改,把原来的源分别换成一下两个就行。
# /etc/apt/sources.list |
现在就可以愉快的使用 apt 了
安装常用软件
sudo apt update |
创建热点
把以下代码保存为pi-setup-wifi.sh :
#! /bin/bash
sudo apt update
sudo apt install -y hostapd dnsmasq
sudo bash -c "cat >>/etc/dnsmasq.conf <<EOF
#this line existes to make sure below starts in a new line
interface=wlan0
dhcp-range=192.168.68.24,192.168.68.200,255.255.255.0,12h
EOF"
sudo bash -c "cat >/etc/hostapd/hostapd.conf <<EOF
interface=wlan0
hw_mode=g
channel=10
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
rsn_pairwise=CCMP
wpa_passphrase=PASSWORD
ssid=SSID
EOF"
# enable ip_forward
sudo sed -i "s/#net.ipv4.ip_forward=[01]/net.ipv4.ip_forward=1/g" /etc/sysctl.conf
# open wifi on startup
sudo sed -i "s/exit 0//g" /etc/rc.local
sudo bash -c "cat >>/etc/rc.local <<EOF
ifconfig wlan0 down
ifconfig wlan0 192.168.68.1 netmask 255.255.255.0 up
iwconfig wlan0 power off
service dnsmasq restart
hostapd -B /etc/hostapd/hostapd.conf & > /dev/null 2>&1
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
exit 0
EOF"
# sudo reboot
echo -e "now reboot to take effect"
该脚本会创建一个名为SSID,密码为PASSWORD的无线网络,使用的网段为 192.168.68/24。
必备服务
把frp脚本放进来。
然后把启动命令写到 /etc/rc.local
中,都是简单的脚本,就没有写成服务了。
配置透明网关代理
前面折腾了这么多,这个才是重点啊,毕竟现在树莓派对我来说最大的用途就是给 Google Home 提供科学上网服务了。
这块略微复杂,所幸之前折腾之后整理了一篇文章,不过由于是后来补的,这次改了很多bug,下次估计能很快搞定了。
参考
MacOS下树莓派烧录img/iso文件到SD卡:
https://www.jianshu.com/p/e95c406badaa
解决macOS使用dd指令写入/读取速度过慢的问题:
https://zhuanlan.zhihu.com/p/34603784
No comments:
Post a Comment