简介
本文描述:烧录32位的Raspberry Pi OS(Legacy)系统,无屏幕启动,连接WiFi、SSH、VNC,开机,系统换源、pip换源,安装中文输入法。为下一步安装Qt5、Eigen、OpenCV以及ncnn等做准备
注意事项
- 64位的Raspberry Pi OS会导致树莓派系统变成aarch64(arm64)
- 缺点
- 已经尝试在该系统上安装Python环境管理工具conda,发现只能使用conda-forge
- 使用conda-forge创建环境,并用conda install安装Python的包,import时会显示:非法指令(illegal instruction),是由于系统架构与包不匹配所造成的
- 因此只能通过sudo pip3 install package_name,来安装需要的包,虚拟环境管理并不方便
- 基于Debian 11(Bullseye)开发,系统无法使用cv2.VideoCapture()来调用排线连接的摄像头,但可以调用USB摄像头
- 缺点
- 32位的Raspberry Pi OS(Legacy)是长期尝试后,比较适合用的版本,基于Debian 10(Buster),兼容性极佳
系统烧录、开机前配置
-
32位的Raspberry Pi OS(Legacy)下载地址,下载最新版的系统即可
-
一张32G的SD卡,可以安装更多软件,方便配置完系统后,将系统读取出来不至于太大
-
插入读卡器,格式化、烧录
-
烧录完后,进入boot盘
-
设置文件资源管理器显示文件扩展名,创建一个空白的txt文件,重命名为ssh,删除.txt扩展名。这样做能使树莓派开机就允许连接SSH
-
找到boot下的config.txt文件,在对应位置,新增并修改为如下:
# uncomment if hdmi display is not detected and composite is being output # 强制输出HDMI信号,不管有没有检测到屏幕连接 hdmi_force_hotplug=1 # Setting hdmi_ignore_edid to 0xa5000080 enables # the ignoring of EDID/display data if your display does not have an accurate EDID. # It requires this unusual value to ensure that it is not triggered accidentally. # 强制按照hdmi_group和hdmi_mode输出分辨率,不管屏幕的实际分辨率是多少 hdmi_ignore_edid=0xa5000080 # uncomment to force a specific HDMI mode (this will force VGA) # 设置分辨率 hdmi_group=2 hdmi_mode=82
-
关于hdmi_group和hdmi_mode,如果连接了屏幕,hdmi_group=2可以尝试让屏幕自带的扬声器输出声音,hdmi_mode与分辨率的对应如下
-
新建好ssh文件,并修改完config.txt,就可以设置WiFi文件了,在boot下新建wpa_supplicant.conf文件,修改为如下
country=CN ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid="WiFi-A" psk="12345678" key_mgmt=WPA-PSK priority=1 } # ssid:WiFi名称,是字符串,要有双引号 # psk:WiFi密码,是字符串,要有双引号 # key_mgmt:WiFi加密方式,如果没有密码或者是WEP加密方式,值为NONE # 如果是WPA或者WPA2加密方式,值为WPA-PSK # priority:WiFi连接优先级,值越大越优先,不可为负数 # scan_ssid:连接隐藏WiFi时,需要增加该键,值为1
-
WiFi可以设置成手机或者电脑的移动热点,方便接下来获取树莓派的IP地址,例如:win10可以直接查看,连接到本机移动热点的设备
-
也可以设置多个WiFi,记得要修改它们的优先级,以免树莓派开机时连到任意的WiFi上
-
新建ssh文件,修改config.txt,设置wpa_supplicant.conf后,可以将sd卡插入树莓派,并开机
-
树莓派开机之后,需要获取树莓派的IP地址,如果之前WiFi设置成了手机或者电脑的移动热点,就可以很方便地获取
-
其他获取树莓派IP地址的方法
- 登录路由器账户,查找连接设备中名为“pi”的IP地址;
- 进入cmd,先运行
for /L %i IN (1,1,254) DO ping -w 1 -n 1 192.168.1.%i
(从192.168.1.1
遍历到192.168.1.254
),再运行arp -a
查看局域网内在线的IP,然后逐个SSH,看能不能连接,树莓派通常是192.168
开头的
-
连接SSH后,设置raspi-config,在Interface Options,可以enable VNC
sudo raspi-config
-
如果进入Display Options,修改分辨率,会导致之前修改的config.txt失效,建议不要修改
-
开机后,之前新建的ssh和wpa_supplicant.conf文件,会被系统移动到其他地方,因此开机后在
/boot
找不到这两个文件是正常的。其中wpa_supplicant.conf被移动到/etc/wpa_supplicant
下,可以继续修改这个文件,对WiFi进行设置
系统换源、pip换源
-
32位Raspberry Pi OS(Legacy)不可直接使用Debian 10的源,同步时会显示:由于没有公钥,无法验证签名。需要使用北外Raspbian源地址,记得要下拉选buster
-
新建sources.list文件,写入源的内容,然后保存
nano sources.list # armv7l 用户:编辑 `/etc/apt/sources.list` 文件,删除原文件所有内容,用以下内容取代 deb http://mirrors.bfsu.edu.cn/raspbian/raspbian/ bullseye main non-free contrib rpi # deb-src http://mirrors.bfsu.edu.cn/raspbian/raspbian/ bullseye main non-free contrib rpi
-
备份系统原始文件,再覆盖掉
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak sudo cp sources.list /etc/apt/sources.list
-
还需要换raspi.list:新建,写入,保存,备份,覆盖
nano raspi.list # 对于两个架构,删除原文件所有内容,用以下内容取代: deb https://mirrors.bfsu.edu.cn/raspberrypi/ buster main sudo cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.bak sudo cp raspi.list /etc/apt/sources.list.d/raspi.list
-
同步系统源列表
sudo apt update
-
pip换源,北外pypi源,因为系统中python2和python3并存,因此所有命令都要用pip3、python3开头,网站里指引很明确,不再赘述
安装中文输入法
-
如果需要使用中文输入法,可以安装谷歌拼音
sudo apt install fcitx-googlepinyin
-
最后重启一下,把输入法置顶
-
可以进行下一步安装Qt5、Eigen、OpenCV以及ncnn等