树莓派4B 网络启动教程

前言

近日闲来无事研究树莓派4b,发现树莓派的内置管理工具raspi-config中添加了Boot Order选项栏,打开之后里面赫然写着USB BootNetwork Boot两个选项。
New Boot Menu

USB Boot不必多言,选择之后拿一块U盘写入镜像插入USB接口后即可自动运行,不需要SD卡,但是Network Boot勾起了博主的兴趣,经过三天的研究,终于成功实现网络启动。

材料

树莓派4b一块,网络启动服务器一台(这里博主使用了一块OrangePi Zero作为网络启动服务器),读卡器一个,网线一根。

客户端准备

配置系统

从镜像里安装新系统,并且将系统设置为开机自动进入CLI界面。
sudo raspi-config
找到3.Boot Options -> B1 Desktop / CLI,选择B2 Console Autologin

设置BootLoader网络启动

sudo raspi-config
找到3.Boot Options -> B4 Boot Order,选择B2 Network Boot,应用后重启.这个时候,客户端已经准备完成,可以把TF卡拔出,将树莓派先放到一边。

服务器准备

由于博主用的是一块香橙派Zero作为服务器使用,所以安装命令不能照抄,请按照你自己的系统来进行操作。以下命令均在root用户下执行。

安装dhcp服务器,NFS服务器
apt update
apt install dnsmasq nfs-kernel-server
创建NFS目录
mkdir -p /nfs/raspberrypi
mkdir /raspiboot
chmod 777 /raspiboot
复制树莓派系统

将读卡器插入服务器中

mount /dev/sda1 /mnt
cp /mnt/* /raspiboot
umount /mnt
mount /dev/sda2 /mnt
cp /mnt/* /nfs/raspberrypi
umount /mnt

由于TF卡的I/O性能十分低下,复制需要很长时间。博主这里采用的方法是,将系统烧录进一块U盘,再直接将U盘挂载在系统内:

mount /dev/sda1 /raspiboot
mount /dev/sda2 /nfs/raspberrypi

能够节省很多时间。

关闭DHCP客户端等一系列服务

博主的服务器上采用的系统是Armbian,运行systemd-resolved来进行域名解析服务,由于该服务会占用DNS端口,所以需要关闭该服务:

systemctl stop systemd-resolved
systemctl disable systemd-resolved

关闭NetworkManager以防止出现意外错误:

systemctl stop NetworkManager
systemctl disable NetworkManager
为服务器配置静态IP

vim /etc/systemd/network/10-eth0.netdev
写入以下内容

[Match]
Name=eth0
[Network]
DHCP=no

vim /etc/systemd/network/11-eth0.network
写入以下内容

[Match]
Name=eth0

[Network]
Address=192.168.2.100/24
DNS=192.168.2.1
Gateway=192.168.2.1
配置dnsmasq

vim /etc/dnsmasq.conf

interface=eth0
no-hosts
dhcp-range=192.168.2.101,192.168.2.200,12h
log-dhcp
enable-tftp
tftp-root=/raspiboot
pxe-service=0,"Raspberry Pi Boot"
配置NFS

vim /etc/exports

/nfs/raspberrypi *(rw,sync,no_subtree_check,no_root_squash)
/raspiboot *(rw,sync,no_subtree_check,no_root_squash)
修改树莓派内核启动命令行

vim /raspiboot/cmdline.txt

console=serial0,115200 console=tty1 root=/dev/nfs 
nfsroot=192.168.2.100:/nfs/raspiberrypi,vers=3 rw ip=dhcp rootwait elevator=deadline
修改树莓派文件系统挂载

vim /nfs/raspberrypi/etc/fstab
将内容替换为:

proc       /proc        proc     defaults    0    0
192.168.2.100:/raspiboot /boot nfs defaults,vers=3 0 0
启动服务
systemctl enable dnsmasq.service
systemctl restart dnsmasq.service
systemctl enable systemd-networkd
systemctl restart systemd-networkd
systemctl enable rpcbind
systemctl restart rpcbind
systemctl enable nfs-kernel-server
systemctl restart nfs-kernel-server

验证

将树莓派用网线连接到服务器上,打开电源,观察屏幕上是否启动成功。
成功

全家福

在这里插入图片描述

树莓派4b是一款功能强大且灵活的单板计算机,适合用于智能家居系统的开发和搭建。下面是一个简单的树莓派4b智能家居教程: 第一步,准备材料: - 一台树莓派4b - 一张microSD卡 - 一个电源适配器 - 一台电脑 - 其他所需的传感器和配件 第二步,安装操作系统: 在电脑上下载树莓派官方网站上的Raspberry Pi Imager工具,并使用该工具将Raspberry Pi OS(官方操作系统)写入microSD卡。将卡插入树莓派4b并连接电源,启动树莓派。 第三步,连接到网络: 通过有线或无线方式将树莓派连接到家庭网络,确保与网络路由器的连接正常。 第四步,安装所需的软件: 在树莓派上打开终端,执行以下命令来更新系统软件包和安装所需的软件库: ``` sudo apt-get update sudo apt-get upgrade sudo apt-get install [软件名称] ``` 第五步,连接传感器和执行动作: 根据自己的需要和想要实现的功能,连接所需的传感器和执行器。比如,可以连接温湿度传感器、人体红外传感器、灯光控制器等。 第六步,编写代码和设置规则: 使用Python等编程语言编写代码来控制与树莓派连接的传感器和执行器,实现自动化的家居控制。可以设置温度警报、定时开关灯光、远程监控等规则。 第七步,调试和优化: 将树莓派连接到电视或显示器,通过终端或桌面环境来查看和调试代码。根据实际情况进行优化和改进。 总之,通过以上步骤,您可以使用树莓派4b搭建一个简单的智能家居系统。这只是一个入门级的教程,随着您对树莓派的熟悉和掌握,您可以进一步扩展和完善您的智能家居系统。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值