Bootstrap

树莓派系统中一些常见的问题与解决方法

1、vim打开写入命令时提示E212

运行环境:在wm虚拟机的Linux中运行sudo命令时,在编写需要root权限的配置文件过程

出错原因:没有切换到root用户权限,文件编辑完毕后入输入:wq 时,出现 E212:无法打开并写入文件的错误提示信息,因为在该目录下当前用户没有写的权限。
在这里插入图片描述

解决办法如下:

第一步:保存文件时用 :w ! sudo tee % (tee 用于读取输入文件,同时保存 ,%表示当前编辑文件)
在这里插入图片描述

第二步:输入自己的虚拟机Linux的密码

2、vim报错 E37: No write since last change (add ! to override)

用 vi 命令编辑文本文件,没有文件写入权限的时候会报这个错。:q :wq 怎么都不能退出。
这时只需 ctrl+z 即可,或者在退出命令后加 ! 忽略提示 :q!

3 、树莓派启动一段时间后报错

/usr/bin/xauth:  error in locking authority file /home/pi/.Xauthority
sudo: unable to execute /usr/sbin/service: Input/output error
Failed to open initctl fifo: No such device or address
Failed to talk to init daemon.
ls: reading directory '.': Input/output error
sh: 1: /usr/bin/xauth: Input/output error

SSH可以正常连接
vim
sudo
都用不了
命令重启也不行
只能手动重启。。。造孽啊!!!

暂未找到解决办法,怀疑是SD卡问题
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、树莓派新建桌面快捷程序

新建xxx.desktop文件

vim /usr/share/applications/XueXi.desktop

键入以下内容

[Desktop Entry]
Encoding=UTF-8
Name=XueXi
Exec=/home/pi/Downloads/TechXueXi-20220126/run.sh
Icon=/home/pi/Downloads/TechXueXi-20220126/log.jpg
Terminal=true
Type=Application
StartupNotify=true

在这里插入图片描述
其中Exec为执行shell脚本文件
Icon为自定义图标图片
:wq 保存退出后在树莓派的图形化界面中的开始菜单就能看到,点击图标右键可以添加到桌面
在这里插入图片描述
注意: shell 文件需要先给可执行权限,否则会报错

chmod +x /home/pi/Downloads/TechXueXi-20220126/run.sh

run.sh文件则为shell脚本,里面可以写一些terminal命令或者c/c++语言
在这里插入图片描述
这样就能实现傻瓜式双击桌面图标运行python程序/shell命令。

5、shell脚本监测程序是否挂掉然后重新运行

#!/bin/sh
while true
do
ps -ef | grep "mainpy" | grep -v "grep"
if [ "$?" -eq 1 ]     #上一条命令返回值0成功,1失败
then
    python  /home/pi/Desktop/motion_video/mainpy.py   #要运行的应用程序、脚本等
    echo "process has been restarted!"
else
    echo "process already started!"
fi
sleep 10
done

最后不要忘记了修改新增脚本的权限,执行chmod 777 checkpython.sh
后台运行:nohup sh checkpython.sh &

6、树莓派安装docker

  1. 一键脚本:
sudo curl -sSL https://get.docker.com | sh
  1. 测试是否安装成功:
 sudo docker run hello-world

如果 Docker 安装成功,你会看到一条消息:“Hello from Docker!”

  1. 修改国为内镜像源–清华源
echo "deb [arch=armhf] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list

设置开机自启

sudo systemctl daemon-reload  #重启 systemctl 守护进程
sudo systemctl enable docker  #设置 Docker 开机启动
sudo systemctl start docker  #开启 Docker 服务

7、树莓派docker安装motioneye

sudo docker run --name="motioneye"  \
  -p 80:8081 \
  -p 8765:8765 \
  --hostname="motioneye" \
  -v /etc/localtime:/etc/localtime:ro \
  -v /etc/motioneye:/etc/motioneye \
  -v /var/lib/motioneye:/var/lib/motioneye \
  --restart="always" \
  --detach=true \
  ccrisan/motioneye:master-armhf

访问方式: http://ip地址:8765
添加网络摄像头rstp

8、树莓派学习强国

更改系统镜像源,推荐清华镜像,速度快
编辑/etc/apt/sources.list文件:

	deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
	deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi

编辑/etc/apt/sources.list.d/raspi.list文件:

	deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
	deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui

更新源

sudo update
sudo upgrade

安装包

sudo apt-get install libzbar0 chromium-driver
pip install -r requirements.txt

直接运行源码

python pandalearning.py #注意修改路径

9、永久解决树莓派Vim无法复制(右键显示可视)的问题

这个问题网上找了好多都是临时解决的版本,是在命令模式输入:set mouse=v,然而每次打开vim都要输入这个命令,甚是麻烦。

因此使用如下方法一劳永逸的解决vim右键显示可视的问题
安装Vim

sudo apt-get install vim

打开Vim默认配置文件

sudo vim /usr/share/vim/vim82/defaults.vim

找到以下代码的位置 (大概在82行)

if has('mouse')
  if &term =~ 'xterm'
    set mouse=a
  else
    set mouse=nvi
  endif
endif

set mouse=a 改为 set mouse-=a ,保存后立即生效。
在这里插入图片描述

;