树莓派4B 学习笔记3: 系统自动更新时间_测试CSI摄像头_安装OpenCv_4.6(未成功编译源码)_备份树莓派镜像

今日继续学习树莓派4B 4G:(Raspberry Pi,简称RPi或RasPi)

本文我只是安装了OpenCv 4.6,但编译源码失败了!有关 OpenCv 部分仅做笔记暂存!

本人所用树莓派4B 装载的系统与版本如下:

 

版本可用命令 (lsb_release -a) 查询:

系统时间自动更新_安装OpenCv_测试CSI摄像头_预装OpenCv的系统镜像分享(持续更新)

本文测试摄像头方式:是终端命令测试CSI摄像头

注意:       本文我测试的是CSI摄像头,不是USB摄像头!

最后啰嗦一嘴:  Linux /Python有关的编程问题分享中 不事先说明 自己 系统镜像 环境变量 具体环境 就发教程的都是流氓!!!

目录

树莓派自动更新系统时间:

终端命令测试CSI摄像头:

安装libcamera及其相关工具:

使用libcamera-hello命令测试摄像头:

安装OpenCv提示:

安装最新固件支持:

增大可用内存空间: 

安装Opencv、CMake、图像和视频库:

安装GStreamer:

验证GStreamer安装:

验证OpenCv的安装:

下载OpenCv源码: 

编译OpenCv源码:

备份树莓派镜像(这部分很水):

 备份系统镜像目的:

备份系统镜像步骤:

网上学习资料网址:


树莓派自动更新系统时间:

这是一个巨大的坑!

不更新系统时间  会导致很多问题报错,所以一定要设置好自动更新系统时间!

 检查系统时间:

sudo date  

 安装网络时间协议客户端,自动与网络时间服务器同步:

sudo apt install ntp   

终端命令测试CSI摄像头:

有许多网络上的教学他人使用:sudo raspi-config 来打开摄像头(如下图):

但2023年的树莓派新系统是基于debian12开发的,并且去除了picamera这个库.

所以并不能通过interface options这里来打开camera.

安装libcamera及其相关工具:

sudo apt install libcamera-apps libcamera-tools

使用libcamera-hello命令测试摄像头:

libcamera-hello

注意:

如果你使用的是SSH远程连接树莓派,可能会遇到无法运行的问题。

可以尝试直接连接显示屏和键盘,或者使用VNC远程登录来运行该命令。 

安装OpenCv提示:

 本文我只是安装了OpenCv 4.6,但编译源码失败了!有关 OpenCv 部分仅做笔记暂存!

安装最新固件支持:

执行下文的命令行进行下载并安装最新的内核,GPU 固件及应用程序。需要连接到互联网

sudo apt-get update
sudo apt-get upgrade

增大可用内存空间: 

sudo raspi-config


然后重启树莓派:

安装Opencv、CMake、图像和视频库:

如果您手上树莓派下载的操作系统版本与我一致(文首有提示),你可以参考这个提示:

将每个命令都逐个复制去执行就好了,其中有俩行命令也许会报警告,不用管它即可!

最后一行有关python安装Opencv的命令,需要先检查自己的Python环境作相应修改:

python --version
sudo apt-get install build-essential git cmake pkg-config -y
sudo apt-get install libjpeg8-dev -y
sudo apt-get install libtiff5-dev -y
sudo apt-get install libjasper-dev -y
sudo apt-get install libpng12-dev -y
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y
sudo apt-get install libgtk2.0-dev -y
sudo apt-get install libatlas-base-dev gfortran -y

sudo apt-get install libcanberra-gtk*
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libgtk-3-dev
sudo python3.7 -m pip install opencv-python

但我最后一行是这俩句命令:

sudo apt update  
sudo apt install python3-opencv

安装GStreamer:

(这是为了以后使用USB摄像头做的准备,CSI摄像头用不到)

sudo apt-get update  
sudo apt-get install gstreamer1.0-tools  
sudo apt-get install libgstreamer1.0-0 libgstreamer1.0-dev  
sudo apt-get install gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly  
# 如果需要处理音频,还可以安装音频相关的插件  
sudo apt-get install gstreamer1.0-alsa

验证GStreamer安装:

GStreamer是否安装成功,并且不关心具体的插件列表

which gst-inspect-1.0

GStreamer是否安装成功,并且关心具体的插件列表:

gst-inspect-1.0

验证OpenCv的安装:

Python脚本如下:保存为.py文件交给终端运行:

import cv2  

print(cv2.__version__)

结果如下:

这里说明我是将这个脚本命名为Opencv_V.py了:

然后OpenCv的版本是4.6.0

以下步骤需要在OpenCv验证成功有版本号后进行:

下载OpenCv源码: 

你也可以使用电脑加速GitHub 下载后 传给树莓派 对应目录(具体目录看下方命令1~2行)

这个源码版本要与你的OpenCv版本一致,因此上部分会去验证OpenCv安装!

以下命令逐行输入执行就好了!

cd ~/
mkdir opencv
cd opencv
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.6.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.6.0.zip

为了稳定军心,还是将我的实际操作贴出截图吧:

编译OpenCv源码:

我是止步于此了...

备份树莓派镜像(这部分很水):

 本人所用树莓派4B 装载的系统与版本如下:

 版本可用命令 (lsb_release -a) 查询:

这部分写的时候并未自己实践过,慎看!

 备份系统镜像目的:

  1. 数据安全与恢复
    • 避免数据丢失:树莓派可能被用于各种项目,包括重要的数据库、网站服务器或自动化任务。备份镜像意味着在硬件故障、误操作或恶意攻击导致数据丢失时,可以快速恢复。
    • 快速恢复:相比于重新安装操作系统和所有应用程序,从备份的镜像恢复可以节省大量时间。
  2. 迁移与复制
    • 硬件更换:如果计划更换树莓派的硬件(如从较旧的型号升级到新的型号),使用备份的镜像可以确保在新的硬件上快速恢复相同的配置。
    • 多设备部署:如果你有多个树莓派,并且希望它们都有相同的配置,使用备份的镜像可以方便地进行批量部署。
  3. 分享与学习
    • 教程与示例:备份的镜像可以作为一个教程或示例,展示如何配置树莓派以完成特定任务。这对于学习和教学非常有用。
    • 社区贡献:分享你的镜像到树莓派社区可以帮助其他用户更快地设置他们的项目,并可能激发新的想法和协作。
  4. 定制与优化
    • 个性化配置:备份的镜像包含了你对树莓派的所有定制和优化,如特定的系统设置、优化的软件包或自定义的脚本。
    • 节省时间:如果你经常需要为新的项目设置树莓派,并且每次都进行相同的定制和优化,备份的镜像可以节省大量时间。
  5. 故障排查与调试
    • 重现问题:如果你遇到了一个难以解决的问题,并且怀疑是某个特定的配置或软件包引起的,你可以使用备份的镜像在另一个树莓派上重现问题,以便更容易地找到解决方案。

备份系统镜像步骤:

git clone https://github.com/nanhantianyi/rpi-backup.git && cd rpi-backup

然后输入第二条指令就能进行备份了:

其中的 pibackup 可以改为其余名称

sudo ./back.sh pibackup.img

感觉这种方法是要保证SD卡容量足够大的.....

另外还看到过使用Win32DiskImager软件全量备份的,但大小到达了接近30G,也就是她将你的未使用的内存也一起进行备份了.....

还见过安装Ubuntu虚拟机备份的,也是十分麻烦......

网上学习资料网址:

树莓派各个系统简单介绍:

如何选择适合自己的树莓派系统_ubuntu_树莓派大佬-华为云开发者联盟

最简单的树莓派安装opencv教程_哔哩哔哩_bilibili

关于树莓派在interface options中找不到camera的情况_树莓派interface没有相机-CSDN博客

 在树莓派部署Yolov5_yolov5树莓派部署-CSDN博客

树莓派4B 安装opencv 及实时人脸检测-raspberry pi OS version : 2021/10/30 , Based on Debian version 11 (bullseye) 

https://zhuanlan.zhihu.com/p/435583767

树莓派系统压缩备份实操_如何备份树莓派系统-CSDN博客

制作树苺派/香橙派(orangepi) SD卡备份镜像_树苺派系统备份与还原_orange pi 香橙派emmc系统备份方法-CSDN博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/677084.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

平板显示LED背光芯片OC6700,输入3.6V~60V,升压型 LED 恒流驱动器

概述 OC6700是一款内置60V功率NMOS高效率、高精度的升压型大功率LED恒流驱动芯片。OC6700采用固定关断时间的控制方式,关断时间可通过外部电容进行调节,工作频率可根据用户要求而改变。OC6700通过调节外置的电流采样电阻,能控制高亮度LED灯的…

汇编:数据定义数据填充

数组的定义 在32位汇编语言中,定义数组时,通常使用定义数据指令(如 DB, DW, DD,DQ )和标签来指定数组的名称和内容。DB定义字节数组(每个元素占1字节)、DW定义字数组(每个元素占2字节&#xff…

【AI基础】第二步:安装AI运行环境

开局一张图: 接下来按照从下往上的顺序来安装部署。 规则1 注意每个层级的安装版本,上层的版本由下层版本决定 比如CUDA的版本,需要看显卡安装了什么版本的驱动,然后CUDA的版本不能高于这个驱动的版本。 这个比较好理解&#xff…

注意力机制篇 | YOLOv8改进之引入STA(Super Token Attention)超级令牌注意力机制 | CVPR2023

前言:Hello大家好,我是小哥谈。超级令牌注意力机制是一种基于Transformer的模型,用于处理长文本序列的任务。它通过引入超级令牌(Super Token)来减少输入序列中的填充标记,从而提高计算效率和模型性能。🌈 目录 🚀1.基础概念

1.4 Unicode简介

现在的Windows操作系统有许多不同语言版本,可以支持所有国家现有的语言文字。这就涉及到不同字符集的编码规则。 本节必须掌握的知识点: 字符集 C语言款字符 宽字符和Windows 1.4.1 字符集 ■ANSI多字节字符集 ●ASCII码 现代计算机发源于美国&…

一分钟了解香港的场外期权报价

香港的场外期权报价 在香港这个国际金融中心,场外期权交易是金融市场不可或缺的一部分。场外期权,作为一种非标准化的金融衍生品,为投资者提供了在特定时间以约定价格买入或卖出某种资产的机会。对于希望参与这一市场的投资者来说&#xff0…

RabbitMQ学习笔记(一)RabbitMQ部署、5种队列模型

文章目录 1 认识MQ1.1 同步和异步通讯1.1.1 同步通讯1.1.2 异步通讯 1.2 技术对比 2 RabbitMQ入门2.1 RabbitMQ单机部署2.2 RabbitMQ基本结构2.3 RabbitMQ队列模型2.3.1 简单队列模型(Simple Queue Model)2.3.2 工作队列模型(Work Queue Mode…

I.MX RT1170之MIPI DSI初始化和显示流程详解

MIPI DSI(Mobile Industry Processor Interface Display Serial Interface)是一种广泛应用于移动设备显示屏的接口标准。由MIPI联盟制定,DSI接口旨在提供高效、低功耗的显示屏数据传输解决方案。 本节来就通过学习I.MX RT1170单片机中的MIPI…

Vue3——实现word,pdf上传之后,预览功能(实测有效)

vue-office/pdf - npm支持多种文件(**docx、excel、pdf**)预览的vue组件库,支持vue2/3。也支持非Vue框架的预览。. Latest version: 2.0.2, last published: a month ago. Start using vue-office/pdf in your project by running npm i vue-office/pdf. There are …

英伟达开源新利器NV-Embed向量模型,基于双向注意力的LLM嵌入模型,MTEB 56项任务排名第一

前言 文本嵌入模型能够将文本信息转化为稠密的向量表示,并在信息检索、语义相似度计算、文本分类等众多自然语言处理任务中发挥着关键作用。近年来,基于解码器的大型语言模型 (LLM) 开始在通用文本嵌入任务中超越传统的 BERT 或 T5 嵌入模型&#xff0c…

Redis整合SpringBoot微服务基础操作

前言 首先我们先知道类似于JDBC的连接中间件在redis之间使用的是啥 首先是Jedis,这是最初代的连接redis客户端 操作也是非常的简单 Jedis 首先我们先介绍这个 我们只需要引入对应的pom文件依赖 <!--SpringBoot通用依赖模块--><dependency><groupId>org.spri…

uniapp使用uQRCode页面不显示也不报错

我使用的版本是&#xff1a;4.0.6 引入到项目中后根据官方的配置教程进行配置&#xff1a; 但是页面上就是不显示&#xff0c;也不报错&#xff0c;看官网发现步骤也没问题 解决方法&#xff1a; 这句话代表的是uQrcode会被自动引用注册&#xff0c;但是你引过组件库或者别的…

51单片机课设

1.51最小系统板原理图介绍 复位电路&#xff1a;&#xff08;简单的RC电路&#xff09; 在电路图中&#xff0c;电容的的大小是10uF&#xff0c;电阻的大小是10k。 当接通VCC后&#xff1a; 电容还没开始充电&#xff0c;电容电压为0&#xff0c;R7的电压为5V,然后电容开始充电…

盲盒小程序库存管理的关键策略

随着盲盒经济的兴起&#xff0c;越来越多的商家开始投入盲盒小程序的开发与运营。然而&#xff0c;在享受市场红利的同时&#xff0c;库存管理的问题也随之而来。合理的库存管理不仅能够满足用户需求&#xff0c;还能有效优化库存周转率&#xff0c;提升商家的盈利能力。本文将…

操作系统入门系列-MIT6.828(操作系统工程)学习笔记(四)---- C语言与计算机架构(Programming xv6 in C)

系列文章目录 操作系统入门系列-MIT6.S081&#xff08;操作系统&#xff09;学习笔记&#xff08;一&#xff09;---- 操作系统介绍与接口示例 操作系统入门系列-MIT6.828&#xff08;操作系统工程&#xff09;学习笔记&#xff08;二&#xff09;----课程实验环境搭建&#x…

【图像识别系统】表情识别Python+人工智能深度学习+TensorFlow+卷积算法网络模型+图像识别

表情识别系统&#xff0c;本系统使用Python作为主要编程语言&#xff0c;通过TensorFlow搭建ResNet50卷积神经算法网络模型&#xff0c;通过对7种表情图片数据集&#xff08;‘Neutral’, ‘Anger’, ‘Disgust’, ‘Fear’, ‘Happy’, ‘Sad’, ‘Surprise’&#xff09;进行…

安装存储器的段描述符并加载GDTR

代码清单 ;代码清单12-1;文件名&#xff1a;c12_mbr.asm;文件说明&#xff1a;硬盘主引导扇区代码;创建日期&#xff1a;2011-5-16 19:54&#xff1b;修改于2022-02-16 11:15;设置堆栈段和栈指针mov ax, csmov ss, axmov sp, 0x7c00;计算GDT所在的逻辑段地址12 mov ax, [c…

视图的相关操作

4.1.1 创建视图 语法格式&#xff1a;create [ or replace ] view view_name [ ( column_list ) ] as select_statement [ with [ cascade | local ] check option ] 说明&#xff1a; &#xff0…

Redis的SDS数据结构解决C语言字符串缺陷

redis设计了SDS这一数据结构来表示字符串而不是使用c语言的字符串&#xff1a;字符数组 那么redis为什么要大费周章自己设计字符串呢&#xff1f; 答案是C语言字符串有缺陷 1.获取字符串长度&#xff0c;需要遍历字符数组&#xff0c;时间复杂度是O&#xff08;N&#xff09…

167.二叉树:另一棵树的字树(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* Tre…