树莓派-Ubuntu22.04

树莓派

  • 1 安装Ubuntu系统
  • 2 ssh登录
  • 3 配置
    • 3.1 安装软件
    • 3.2 换源
    • 3.3 安装桌面
    • 3.4 开机脚本

1 安装Ubuntu系统

通过制作sdk,使系统在sdk中运行:

  1. 下载制作软件:https://www.raspberrypi.com/software/
    在这里插入图片描述
  2. 下载Ubuntu镜像:https://cn.ubuntu.com/download/raspberry-pi(推荐安装服务器版的)
    在这里插入图片描述
  3. 格式化sdk
  4. 开始烧录
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    等待写入完成。

如果你有屏幕需要去修改屏幕分辨率来进行,重新拔插sdk,找到config文件在文件末尾加上:

800*400分辨率

max_usb_current=1
hdmi_group=2
hdmi_mode=1
hdmi_mode=87
hdmi_cvt 800 480 60 6 0 0 0

1024*600

max_usb_current=1
hdmi_group=2
hdmi_mode=1
hdmi_mode=87
hdmi_cvt 1024 600 60 6 0 0 0

2 ssh登录

  1. 扫描IP地址:工具:https://www.advanced-ip-scanner.com/ 找到树莓派的IP地址
  2. 下载ssh建立连接即可

3 配置

3.1 安装软件

  1. 网络工具
sudo apt-get install net-tools

3.2 换源

清华源:https://mirror.tuna.tsinghua.edu.cn/help/ubuntu-ports/

备份:sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
编辑:sudo vi /etc/apt/sources.list
注释或者删掉里面的内容,将下面的内容复制进去

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse

deb http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted universe multiverse
# deb-src http://ports.ubuntu.com/ubuntu-ports/ jammy-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-proposed main restricted universe multiverse
# # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ jammy-proposed main restricted universe multiverse

更新:

sudo apt-get update
sudo apt-get upgrade

3.3 安装桌面

选择轻量级的桌面lxde

  1. 更新软件和系统
sudo apt update
sudo apt upgrade
  1. 安装桌面
sudo apt install lxde
#Xorg 是提供底层图形支持的服务器,而 xinit(通过 startx)是一种启动和使用这个服务器的方法
sudo apt install xorg
sudo apt install xinit
  1. 启动(通过ssh链接的看不到)
startx

3.4 开机脚本

  1. systemd服务
    systemd服务默认是在没有图形界面环境的背景下运行的

创建脚本/usr/local/bin/ss.sh:

#!/bin/bash
# 你的脚本内容
echo "Hello, World!" > /tmp/hello.txt

给予脚本执行权限:

sudo chmod +x /usr/local/bin/ss.sh

创建systemd服务文件
接下来,创建一个systemd服务文件来执行脚本。服务文件通常位于/etc/systemd/system/目录下。以管理员权限创建一个新的服务文件,例如my-startup-service.service:

sudo nano /etc/systemd/system/my-startup-service.service
在打开的编辑器中,添加以下内容:

[Unit]
Description=My custom startup script

[Service]
Type=simple
ExecStart=/usr/local/bin/ss.sh

[Install]
WantedBy=multi-user.target

这定义了一个新的服务,它在系统启动时执行您的脚本。Description字段是对服务的描述,ExecStart指定了脚本的完整路径。

启用并启动服务

保存并关闭服务文件后,重新加载systemd以识别新服务,并启用此服务以在启动时运行

sudo systemctl daemon-reload
sudo systemctl enable my-startup-service.service

如果您想立即测试服务而不重启,可以使用以下命令启动服务:

sudo systemctl start my-startup-service.service

验证服务状态
运行以下命令以检查服务的状态:

sudo systemctl status my-startup-service.service

这将显示服务的当前状态和最近的日志输出。如果一切配置正确,您的脚本应该会在每次系统启动时自动执行。
通过这种方式,您可以编写和配置任何类型的开机脚本,无论是进行系统初始化操作,还是启动特定的应用程序或服务。

  1. 使用 Cron

cron 是一个时间基的作业调度器,在 Linux 系统中用于定时执行任务。对于在启动时运行脚本,可以使用 @reboot 指令。

创建脚本ss.sh

#!/bin/bash
# 你的脚本内容
#QT环境
export PATH=/opt/Qt5.14.2/5.14.2/gcc_64/bin:$PATH
export LD_LIBRARY_PATH=/opt/Qt5.14.2/5.14.2/gcc_64/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=/opt/Qt5.14.2/5.14.2/gcc_64/plugins:$QT_PLUGIN_PATH
export QML2_IMPORT_PATH=/opt/Qt5.14.2/5.14.2/gcc_64/qml:$QML2_IMPORT_PATH
#默认显示器
export DISPLAY=:0
#需要启动的程序
cd /opt/serialTool/
./Serial
echo "end!" > /home/mql/桌面/1.txt

打开当前用户的 crontab 文件进行编辑:

crontab -e

在文件末尾添加以下行以在每次启动时运行脚本:

#@reboot /path/to/your/ss.sh
#延时执行单位s
@reboot sleep 5 && /path/to/your/ss.sh
#打印日志
@reboot /path/to/your/ss.sh >> /home/mql/桌面/2.txt 2>&1

替换 /path/to/your/script.sh 为您的脚本实际路径。

保存并退出编辑器。

重启就可以执行脚本,可以根据延时启动相应带有图形界面的软件

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

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

相关文章

PMP证书的价值对哪些人更有用

在软考和PMP的对比中,许多网友认为软考证书比PMP证书更有含金量,大部分人是从持有证书后获得的实质便利来看的。虽然PMP证书在落户、退税等方面不及软考证书,但也有自身独有的价值。 一,PMP证书作用一览 PMP证书不限制行业、覆盖…

简单的TcpServer(英译中)

目录 一、TCP socket API 详解1.1 socket()1.2 bind()1.3 listen()1.4 accept()1.5 connect 二、TcpServer(英译中)2.1 TcpServer.hpp2.2 TcpClient.cc2.3 Task.hpp2.4 Thread.hpp2.5 ThreadPool.hpp2.6 makefile2.7 Main.cc2.8 log.hpp2.9 Init.hpp2.10…

Vue - 快速入门(一)

阅读文章可以收获: 1. 明白什么是vue 2. 如何创建一个vue实例 3. vue中的插值表达式如何使用 4. 如何安装vue的开发者工具 Vue 概念 什么是vue? Vue 是一个用于 构建用户界面 的 渐进式 框架 框架优点:大大提升开发效率 (70%↑) 缺点…

Spring Boot3,启动时间缩短 10 倍!

前面松哥写了一篇文章和大家聊了 Spring6 中引入的新玩意 AOT(见Spring Boot3 新玩法,AOT 优化!)。 文章发出来之后,有小伙伴问松哥有没有做性能比较,老实说,这个给落下了,所以今天…

2024最新版MySQL安装使用指南

2024最新版MySQL安装使用指南 Installation and Usage Guide to the Latest Oracle MySQL in 2024 By JacksonML 1. MySQL简介 MySQL是世界上最受欢迎的开源数据库之一。MySQL属于Oracle(甲骨文)公司的产品,其具有强大的功能,但…

Vue-53、Vue技术vuex使用

vuex 是什么 1、概念 专门在Vue 中实现集中式状态(数据)管理的一个Vue 插件,对vue 应用中多个组件的共享状态进行集中式的 管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信。2、…

《动手学深度学习(PyTorch版)》笔记7.5

注:书中对代码的讲解并不详细,本文对很多细节做了详细注释。另外,书上的源代码是在Jupyter Notebook上运行的,较为分散,本文将代码集中起来,并加以完善,全部用vscode在python 3.9.18下测试通过&…

rclone基础命令解析及实战

rclone命令解析及实战 1 rclone介绍:远程同步工具 rclone是一个开源的远程数据同步工具,由Golang编写,旨在在不同平台的文件系统和多种类型的对象存储产品之间提供数据同步功能。 它支持超过 40 种不同的云存储服务,包括 Amazon S…

常用Hallmark及KEGG、GO基因查询

文献:The Molecular Signatures Database (MSigDB) hallmark gene set collection - PMC (nih.gov) GSEA | MSigDB | Browse Human Gene Sets (gsea-msigdb.org)通过msigdb数据库可以查看各个Hallmark、KEGG、GO具体包含的基因细节。 Hallmark nameProcess categor…

C# Socket通信从入门到精通(21)——Tcp客户端判断与服务器断开连接的三种方法以及C#代码实现

前言 我们开发的tcp客户端程序在连接服务器以后,经常会遇到服务器已经关闭但是作为客户端的我们不知道,这时候应该应该有一个机制我们可以实时监测客户端和服务器已经断开连接,如果已经断开了连接,我们应该及时报警提示用户客户端和服务器已经断开连接,本文介绍三种可以监…

DAY12之滑动窗口最大值

今天内容有点超乎我的能力 直接放卡哥的讲解了 239. 滑动窗口最大值 - 力扣&#xff08;LeetCode&#xff09; 先看超时的暴力解法 class Solution { public:vector<int> maxSlidingWindow(vector<int>& nums, int k) { vector<int>result; for(int …

新手养猫怎么挑选宠物空气净化器?猫用空气净化器测评推荐!

对于养猫的朋友来说&#xff0c;猫咪掉毛绝对是一个令人头痛的问题。猫毛和皮屑在室内飘散&#xff0c;不仅遍布各个角落&#xff0c;而且清理起来也相当费劲。尤其是那些顽固的猫毛&#xff0c;更是令人烦恼。更糟糕的是&#xff0c;这些毛发可能引起人体过敏反应&#xff0c;…

6.s081 学习实验记录(五)traps

文章目录 一、RISC-V assembly简介问题 二、Backtrace简介注意实验代码实验结果 三、Alarm简介注意实验代码实验结果 一、RISC-V assembly 简介 git checkout traps&#xff0c;切换到traps分支user/call.c 文件在我们输入 make fs.img 之后会被汇编为 call.asm 文件&#xf…

libev-ev_timer定时器的理解

1.相关说明 本文主要自己对于libev的ev_timer定时器的代码流程梳理&#xff0c;主要有ev_timer结构体定义变量的初始化&#xff0c;定时器变量的参数设置&#xff0c;定时器变量的使用 2.相关代码流程 下面是图片 3.相关实现代码 main.c #include <stdio.h> #include…

流浪动物救助|基于Springboot的流浪动物救助平台设计与实现(源码+数据库+文档)

流浪动物救助平台目录 目录 基于Springboot的流浪动物救助平台设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户信息管理 2、动物信息管理 3、商品评论管理 4、公告信息管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设…

使用html2canvas截图踩坑总结

年底的移动端H5需求中&#xff0c;再次用到了html2canvas这个插件&#xff0c;这个插件主要是用来对网页进行截图&#xff0c;在项目需求中&#xff0c;有个交互的点&#xff0c;就是通过用户操作&#xff0c;将页面的内容截图保存下来&#xff0c;方便用户传播扩散。 H5说明&…

【初读论文】

这里写目录标题 万字长文解析深度学习中的术语面向小白的深度学习论文术语&#xff08;持续更新&#xff09;deepsolo不懂的知识pipelinebaselineRoI(Region of Interest)分类问题中的正例负例指示函数&#xff08;indicator function&#xff09;模型性能评估指标&#xff08;…

nginx+flask+Gunicorn反代理服务拿不到真实IP的解决

背景 本人在宝塔linux环境,要部署flask的简单后端并且用Ngnix反代理,用Gunicorn框架部署。(o(╥﹏╥)o中间磕磕绊绊总算部署上去了,需要了解Gunicorn怎么部署的朋友,评论区留言,我加补一篇介绍)。但是但是,我发现 其 accesslog日志里竟然是 127.0.0.1。这怎么能…

模拟钉钉官网动画

实现思路&#xff1a;利用粘性定位sticky&#xff0c;以及滚动事件实现。首先我们应该设置滚动动画开始位置和结束位置 &#xff0c;然后根据位置计算透明度或者transform&#xff0c;scale的值。 首先根据上述图线计算属性值&#xff0c;代码如下&#xff1a; function creat…

Python基础知识:Python模块

所谓模块(Module)&#xff0c;就是一种以“.py”为命名后缀的Python 文件&#xff0c;里面包含着很多集成的函数&#xff0c;可以很方便的被其他程序和脚本导入并使用。 如果模块理解为一辆汽车&#xff0c;我们使用汽车可以完成驾驶等工作&#xff0c;那么代码就是一个个细小…