树莓派4B 64位系统使用笔记

树莓派4b默认安装的是32位系统,用的完全没有问题,因为给装的是初学者镜像。
但是对于配备了8GB内存的版本来说,显然不合适。
于是自己按照官方的说明烧录了64位系统,使用方法什么的都没有差别。
只是很多命令行的命令不能用了,其中就有调用摄像头的命令。

下面是用到的一些问题和解决方法

1.源的问题

国内只有清华的源支持64位的版本,所以改成清华的源吧,百度上到处都是。
配的还不是raspy的源,配的是debian的源

2.摄像头命令不能用

raspistill -o new.jpg报错(参考https://www.cnblogs.com/dongxiaodong/p/9814119.html)

Errors:
mmal: mmal_port_event_send: event lost on port 1,0 (buffer header callback not defined)
mmal: mmal_port_event_send: event lost on port 1,0 (buffer header callback not defined)

错误详情见:https://www.raspberrypi.org/forums/viewtopic.php?p=1729920

这很显然是64位的还没支持raspistill命令,更别说录制视频的了。包括xdg一系列的命令。甚至改完清华源升级之后很多rasp的命令也没了。
从上面的论坛中突然又个灵感摄像头就是输出到/dev/video0而已,那用ffmpeg读取/dev/video0不就行了。
参考:https://blog.csdn.net/win_lin/article/details/50523098
解决方法:
安装ffmpeg:

#安装ffmpeg
sudo apt-get install ffmpeg
#1. 摄像头截图
ffmpeg -i /dev/video0 -r 1 -t 4 -q:v 2 -f image2 image-%d.jpeg
#-r 每隔1s截取一张图
#-t 一共截4s
#2.摄像头推流
ffmpeg -f v4l2 -i /dev/video0 
    -c libx264 -profile:v main -preset:v fast 
    -b:v 300k -s 640x480 -r 25 
    -an 
    -f mpegts -y "udp://192.168.0.3:12344"

#从pc上用vlc打开链接"udp://192.168.0.3:12344"

3.把hdmi拔掉之后用VNC不能远程桌面了

提示:“cannot currently show the desktop”
解决方法:
设置分辨率:

sudo raspi-config 
#依次选择2 Display Option-> 01 Resolution ->DMT Mode 16
#然后保存退出重启就行了

4.cmake报错

安装opencv等报错:"problem with the cmake installation, aborting build. cmake executable is cmake"
版本不匹配,更新pip即可

sudo pip3 install --upgrade pip setuptools wheel
# 然后再安装opencv
# pip3 install scikit-build
# sudo pip3 install opencv-python

5.从其他地方复制过来的程序,一运行,就出现Segmentation fault

很显然运行平台不匹配,在各开源社区下载的时候,注意要眼神好点,分清楚arm64和amd64,分清楚freebsd和linux。

转载请注明来源:https://www.cnblogs.com/bugutian/
原文地址:https://www.cnblogs.com/bugutian/p/15174203.html