Raspberry Pi 4B 环境搭建

不知不觉 Raspberry Pi 4B 已经出来 3 年多了,现在官方主推一些低价的来进军 MCU 市场,其自身的 SBC 市场开始被一些高性能的虎视眈眈,也不知道官方啥时候推出 5 代,拿出来再开个机,擦下灰,然后再吃灰。。。😓其实,树莓派生态还是比较丰富的,比如丰富的专用领域的操作系统/家庭环境的自建服务/基于其开源而来的 OS 和 ARM 汇编架构学习/以及那似是而非的物联网拓展,,,

上电安装

注意!!!注意!!!4B 1代不支持 PD 供电,表现为所有 LED 不会亮,用 5V-2A 这种就可以了。Rev1.2 修复了这个问题,不幸的我是Rev1.1。。。

如果选择官方的进行安装,选择完后,用 balena 烧录到 TF 卡,插入后接上 HDMI 和鼠标键盘后,接通电源即可看到大大的树莓派开机画面。

远程访问

打开Preferences -> Raspberry Pi Configuration设置界面,切换到 Interfaces标签栏,打开SSHVNC开关就可以在主机上通过 IP 地址访问【ssh 或者 vnc viewer】。

设置完 SSH 和 VNC 后,就可以不用显示器了,哦,对了需要打开上电,当然也可以关闭 GUI。。。

环境配置

常用工具

参考 ubuntu.sh 即可,主要是命令行相关的工具,后续的用于机器学习的 Python 和 C 代码环境再安装即可。

pi@pi:~ sudo apt-get update
pi@pi:~ sudo apt-get install zsh autojump git vim htop tmux python3 -y

有一些常用命令可以获取树莓派状态:

pi@pi:~ $ cat /sys/class/thermal/thermal_zone0/temp   # 除以 1000 后即为 ℃ 单位![](https://mintisan.github.io/post-images/1675778219668.jpg)
36998

分辨率设置

默认连接的显示器为 4k,导致远程后鼠标巨小,进入Preferences -> Screen Configuration,设置为1080P

内网旁路由

这里不得不说,旁路由对于这种把玩多主机的情况是真友好,只需要修改为静态 IP 地址,并设置旁路由为路由即可实现全局翻墙。

这里无线网络为例,在连接到无线 WiFI 后,看下自己的网卡名称如下,一般无线为wlan0,有线为eth0

pi@pi:~ ip r | grep default
default via 192.168.31.3 dev wlan0 src 192.168.31.123 metric 303

然后用 vi 或者 nano 打开 /etc/dhcpcd.conf 文件,将如下添加到文件最后,再重启,对,一定要重启机子,重启网络我这里没有生效。

...
# fallback to static profile on eth0
#interface eth0
#fallback static_eth0

interface wlan0   # 网卡名称
static ip_address=192.168.31.123/24    # WiFi 网段以及静态地址,注意不要和其他冲突
static routers=192.168.31.3     # 旁路由地址
static domain_name_servers=192.168.31.1   # 主路由地址

这时候重启后,注意 IP 地址已经换了,这里用 VNC 重新连接后,打开浏览器进行 SpeedTest 速度如下,下降到原来到 1/10 以下,可能和金属外壳有一定关系。

pi@pi:~ ip addr show wlan0
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether dc:a6:32:0e:95:3f brd ff:ff:ff:ff:ff:ff
    inet 192.168.31.123/24 brd 192.168.31.255 scope global noprefixroute wlan0
       valid_lft forever preferred_lft forever
    inet6 fe80::a8fa:6ab4:1788:b859/64 scope link
       valid_lft forever preferred_lft forever

把玩项目

专用系统

  1. RPi-Distro/pi-gen
  2. hypriot/image-builder-rpi : SD card image for Raspberry Pi with Docker: HypriotOS
  3. DietPi
  4. RetroPie
  5. OpenWrt-Rpi
  6. HiFiBerryOS : HiFiBerryOS is is our version of a minimal Linux distribution optimised for audio playback
  7. Raspberry Pi Cluster : Raspberry Pi Cluster automation
  8. FydeOS/chromium_os-raspberry_pi : Build your Chromium OS for Raspberry Pi 3B/3B+/4B and Pi400

自建服务

  1. PiVPN : The simplest way to setup and manage a VPN, designed for Raspberry Pi™.
  2. haiwen/seafile-rpi : Seafile server package for Raspberry Pi.

学习编程

  1. Learning operating system development using Linux kernel and Raspberry Pi
  2. Tutorial: Writing a "bare metal" operating system for Raspberry Pi 4
  3. raspberrypi/userland : Source code for ARM side libraries for interfacing to Raspberry Pi GPU.
  4. Baking Pi – Operating Systems Development
  5. PeterLemon/RaspberryPi : Raspberry Pi Bare Metal Assembly Programming
  6. Apress/Raspberry-Pi-Assembly-Language-Programming : Source Code for 'Raspberry Pi Assembly Language Programming: ARM Processor Coding' by Stephen Smith

玩具折腾

  1. EdjeElectronics/TensorFlow-Object-Detection-on-the-Raspberry-Pi

参考资料