萌新:如何配置“无头”树莓派呀?
休闲玩家:照官方文档配呗……
烧录镜像
在Raspbian操作系统的下载页面下载Raspbian Stretch Lite镜像,使用Etcher烧录镜像。
镜像烧录好后,SD卡被挂载在主机目录树中/media/pi的位置,并被分成了两个分区:引导文件系统boot、根文件系统rootfs。
配置文件
用sudo su命令,将主机用户切换成root用户;
SSH
在boot分区的根目录下,创建一个名为ssh的空白文件1;
用ssh-keygen命令创建一个SSH KEY2;
在rootfs分区的home/pi目录下,新建一个名为.ssh的目录3;
将SSH KEY的公钥id_rsa.pub写入.ssh目录下的authorized_keys文件中;
用sed命令,修改rootfs分区中etc/ssh目录下的sshd_config文件中的认证信息。
touch /media/pi/boot/ssh
home=$(cat /etc/passwd | grep 1000:1000 | grep /home/[^:]* -o)
ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f $home/.ssh/id_rsa
cd /media/pi/rootfs/home/pi/
mkdir .ssh
cat $home/.ssh/id_rsa.pub >> .ssh/authorized_keys
chmod 644 .ssh/authorized_keys
cd /media/pi/rootfs/etc/ssh/
sed -i '/ChallengeResponseAuthentication no/c ChallengeResponseAuthentication no' sshd_config
sed -i '/PasswordAuthentication yes/c PasswordAuthentication no' sshd_config
sed -i '/UsePAM yes/c UsePAM no' sshd_config
Wi-Fi
wpa_passphrase命令,接受两个参数:ssid、passphrase,用于生成Wi-Fi连接信息4;
用sed命令在连接信息中添加两个字段:国名、搜寻隐藏网络;
将连接信息追加到rootfs分区中etc/wpa_supplicant目录下的wpa_supplicant.conf文件中。
cd /media/pi/rootfs/etc/wpa_supplicant/
wpa_passphrase 'ssid' 'passphrase' | sed -e '1i country=CN' -e '3i \\tscan_ssid=1' >> wpa_supplicant.conf
静态IP
登录路由器的管理界面,查看LAN口IP参数:IP地址与子网掩码;
ip_address的值为:树莓派的静态IP地址/子网掩码位数,routers与domain_name_servers的值为LAN口IP地址;
修改rootfs分区中etc目录下的dhcpcd.conf文件5。
cd /media/pi/rootfs/etc/
cat >> dhcpcd.conf << EOF
interface wlan0
static ip_address=192.168.0.200/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
EOF
hostname与locale
在rootfs分区中etc目录下的hostname、hosts文件中,写入树莓派的新主机名;
将环境变量$LC_ALL添加到rootfs分区中home/pi目录下的.bashrc文件中。
cd /media/pi/rootfs/etc/
echo 'raspberrypi0' > hostname
sed -i '/raspberrypi/c 127.0.1.1\traspberrypi0' hosts
cd /media/pi/rootfs/home/pi/
echo 'export LC_ALL="C.UTF-8"' >> .bashrc
搭建集群
Docker Machine无法识别树莓派的操作系统,需挨个安装Docker;