标签搜索

树莓派折腾指南

zyb
zyb
2022-07-30 / 1 评论 / 115 阅读 / 正在检测是否收录...

树莓派折腾指南

1.树莓派简介

树莓派(raspberryPi),最早是由英国慈善基金会开发用于学习计算机编程教育而设计的,基于arm架构,系统为linux,外观小却五脏俱全各类接口丰富

  • 树莓派官网 www.raspberrypi.org
  • 可以干什么

    • 作为低功耗Linux服务器搭建各种服务(只有5w功率)
    • 刷入游戏机系统,变为复古游戏盒子(lakka等系统)
    • 搭建gitea私服
    • 搭建OMV家庭nas系统(需要4b或400树莓派,有千兆网口和usb3.0接口)
    • 搭建HA开源智能家居管理系统(可以整合第三方智能家居统一管理)
    • 学习树莓派GPIO进行硬件开发
    • 刷入openWrt做软路由
    • 刷入影音系统做电视机顶盒
    • 使用树莓派进行各种嵌入式开发,学习opencv,diy机器人等等等等
  • 距今为止产品线已经非常丰富

    • 用于计算的cm模块系列 (相当于砍掉了所有接口,做成类似内存条的样子方便集成开发)

  • 用于单片机的pico

  • 更小尺寸的zero系列

  • 键盘外观的树莓派400

  • 树莓派B型(A型为B型的廉价版,阉割了部分接口)

2.树莓派基础使用

2.1 第一次上手&开机

首先,肯定是要有一块树莓派的,树莓派近两年由于疫情导致产量下降,国内价格疯涨.在没有明确学习目标的情况下还是先不要购买,如果想学习的话,也是建议去某鱼淘一块二手,这样性价比最高,至于二手如何测试我后面会讲到

2.1.1 需要准备的物品

  • 树莓派B型任意型号 (A是B的廉价版,同型号B型接口更为丰富)
  • tf卡 读卡器 电源线
  • 显示器&hdmi数据线 可选(无网络有屏幕情况)
  • 有wifi环境或网线直连 可选(有网络无屏幕情况)

2.1.2 烧录具体步骤

  • 烧录SD卡:

    • 先下载镜像烧录软件 win版本 ,macOS版本
    • 下载对应镜像 镜像下载地址 ,推荐下载种子然后用迅雷下载,这样速度比较快.版本分了debian11和10,64位32位 有桌面版,无桌面版,刚上手看着眼花缭乱,这里推荐第一次使用直接下载 debain11 32位桌面版和带推荐软件的镜像以便于学习使用

    • 使用烧录器进行烧录

      • 电脑插上读卡器,打开烧录软件,选择我们需要写入的操作系统

      • 滑到最下面选择使用自定义镜像,然后选择我们刚刚下载好的镜像即可
      • 存储卡选择插入的tf卡,一定要看清楚再选,血的教训
      • 点开齿轮图标设置wifi配置,设备名称,普通用户,ssh权限等

      • 点击烧录,输入电脑用户密码等待烧录完成,至此烧录就完成了,tf卡插入树莓派,然后接通电源

2.1.3 有屏幕连接

树莓派准备好后,直接接入显示器和外设就可以正常使用了

2.1.4 无屏幕连接

  • 查看路由器管理页面新接入设备的ip地址,通过SSH进行远程连接,win系统下载xshell,苹果端可以用termius,这里使用termius演示
  • 选择页面服务器,然后点击新增服务器,输入刚刚查看的ip地址和自己设置的用户名密码保存连接即可

  • 通过SSH打开vnc远程桌面

输入 sudo raspi-config 进入设置,选择Interfacing Options VNC YES 即可

  • 用VNC viewer连接,新建连接再输入ip连接,然后输入用户名密码即可成功登陆桌面

2.2基础设置

通过前面的步骤我们已经可以成功的进入的系统桌面了,但是还需要一些设置才更好的使用,接下来的操作都将在ssh的中进行,也就是桌面版的终端里设置

2.2.1修改本地化语言

用桌面版肯定中文比英文更加直观,所以这里先修改系统语言,(早期的树莓派系统中甚至没有内置中文字体,需要先自己安装一个开源的中文字体后再设置,不然调中文全是框框)

  • 打开树莓派系统配置工具

    sudo raspi-config
  • 选择本地化设置(Localisation Options)
  • 选择区域设置(Locale)

取消en_GB UTF-8,选择zh_CN UTF-8 (空格选择或取消 回车确认)

  • 设置完后重启生效

    sudo reboot

2.2.2 修改软件源

因为树莓派是国外开发的,所以默认的软件源也是国外地址,在国内下载起来非常缓慢,因此我们要换成对应的国内镜像网址,这里以清华源举例,其他镜像网址可自行搜索(软件源就是让树莓派选择从哪下载更新软件的地址)

  • 32位debian11源 (前面烧录的镜像选择这个)

    • 编辑 sources.list 文件 (nano是linux的一个文本编辑器 crtl+o保存 回车确认写入 ctrl+x退出)
    sudo nano /etc/apt/sources.list  
    • 删除源文件所有内容,用以下内容取代
    deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main non-free contrib rpi
    # deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ bullseye main non-free contrib rpi  #默认注释了源码以加快下载速度
    
    # armv7l 用户如果需要开启 multi-arch 使用 arm64 软件源,可以去加上下面的地址
    deb [arch=arm64] http://mirrors.tuna.tsinghua.edu.cn/raspbian/multiarch/ bullseye main
    • 编辑 raspi.list 文件
    sudo nano /etc/apt/sources.list.d/raspi.list
    • 删除源文件所有内容,用以下内容取代
    deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ bullseye main
  • 64位debian11源

    • 编辑 sources.list 文件
    sudo nano /etc/apt/sources.list  
    • 删除源文件所有内容,用以下内容取代
    deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
    deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
    deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
    deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
    • 编辑 raspi.list 文件
    sudo nano /etc/apt/sources.list.d/raspi.list
    • 删除源文件所有内容,用以下内容取代
    deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ bullseye main
  • 32位debian10源

    • 编辑 sources.list 文件
    sudo nano /etc/apt/sources.list  
    • 删除源文件所有内容,用以下内容取代
    deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib rpi
    # deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib rpi
    
    # armv7l 用户如果需要开启 multi-arch 使用 arm64 软件源,可以去加上下面的地址
    deb [arch=arm64] http://mirrors.tuna.tsinghua.edu.cn/raspbian/multiarch/ buster main
    • 编辑 raspi.list 文件
    sudo nano /etc/apt/sources.list.d/raspi.list
    • 删除源文件所有内容,用以下内容取代
    deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main
  • 64位debian10源

    • 编辑 sources.list 文件
    sudo nano /etc/apt/sources.list  
    • 删除源文件所有内容,用以下内容取代
    deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free
    deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free
    deb https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free
    deb https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free
    • 编辑 raspi.list 文件
    sudo nano /etc/apt/sources.list.d/raspi.list
    • 删除源文件所有内容,用以下内容取代
    deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main

2.2.3更新软件

  • 默认root用户是没有密码的,如果你不想每次指令都要输入sudo,可以直接切换为root用户进行操作

    sudo su
  • 上一步已经换好源了,接下来我们更新系统

    apt-get update  
    apt-get upgrade -y
    reboot

2.2.4设置静态IP

如果你使用显示器进行学习树莓派可以不用设置静态IP,但如果是通过ssh或者VNC进行连接树莓派使用,是需要设置静态IP的,不然下次重启以后ip地址就可能变为其他的,原IP就再也连接不上了,需要重新查看设备IP,并修改

  • 修改配置文件

    sudo nano  /etc/dhcpcd.conf
  • 输入以下内容

    interface wlan0 #如果是宽带设置eth0
    static ip_address=192.168.31.248/24 #修改成自己需要的IP
    static routers=192.168.31.1  #网关地址
    static domain_name_servers=114.114.114.114 8.8.8.8 #dns
  • sudo reboot 重启后生效

2.2.5 自定义快捷指令

每个登陆用户都有一份指令配置文件,这里我们用普通用户来示范,修改自定义指令可以让操作更佳快捷

  • 修改bashrc文件 nano ~/.bashrc

    alias ll='ls -l'
    alias la='ls -A'
    alias lla='ls -la'
    alias l='ls -CF'
    #alias  简写指令 ="全指令内容"

2.2.6 设置root用户密码

默认root无密码,可以设置root账户密码以增加安全性

sudo su   
sudo passwd root  //输入两遍密码即可

2.2.7 修改设备名称

修改 sudo nano /etc/hostssudo nano /etc/hostname 中的设备名称重启即可生效

2.2.8 修改wifi配置

使用显示器的情况下直接在桌面切换wifi即可,无桌面环境需要通过命令行才能修改,注意不能在使用静态IP的情况下修改wifi,要先删除静态IP的相关配置,否则wifi不在同一网段会造成无法联网

  • ssh操作

    • 搜索wifi iwlist scan
    • 修改wifi配置 nano /etc/wpa_supplicant/wpa_supplicant.conf
    • 改为需要的wifi名和密码,保存文件后几秒钟应该就会自动连接到该wifi
     network={
      ssid="wifi名称"
      psk="wifi密码"
    }
    • 查看是否连接成功 ifconfig wlan0
  • tf卡重置wifi

    • 取消tf卡插入电脑 新建wpa_supplicant.conf文件编辑保存以下内容,并放入根目录

      country=CN
      ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
      update_config=1
      network={
       ssid="wifi名"
       psk="密码"
       key_mgmt=WPA-PSK
       priority=1
      }

2.3 树莓派(debian Linux)常用指令

2.3.1 系统操作类

  • sudo 管理员权限
  • su 用户 切换到指定用户
  • halt关机 reboot重启 shutdown -r 关机重启 -h 关机不重启 -now立刻关机
  • free -m 查看内存
  • df -h 查看硬盘容量
  • lsblk 列出硬盘
  • ifconfig 查看网络
  • clear 清屏
  • uname -a 查看内核信息
  • getconf LONG_BIT 查看操作系统位数
  • cat /etc/os-release 查看系统版本
  • lscpu 显示cpu架构信息
  • pinout 查看树莓派参数,老版本镜像没有这个指令
  • dmesg 查看所有硬件详细信息
  • lsb_release -a 查看linux系统
  • top 查看进程信息
  • lsof -i:端口号 查看端口占用
  • ps -ef|grep 关键字 查询进程
  • ping 地址 测试网络连接
  • vcgencmd measure_temp 查看树莓派cpu温度
  • mkdir 新建文件夹
  • chmod 777 授予最高权限
  • sudo systemctl

    • start 软件名 启动
    • stop 软件名 关闭
    • status 软件名 查看状态
    • enable 软件名 设置软件开机启动
    • list-unit-files 查看开机启动项
  • service --status-all || grep running 查看正在运行的服务
  • apt-get 可以直接简写 apt

    • update 获取更新列表
    • upgrade -y 更新并确认
    • install 软件名 安装软件
    • remove 软件名 卸载软件但不删除配置
    • purge 软件名 卸载软件并且删除相关配置
  • startx 进入图形界面 ctrl+alt+f1 进入命令行
  • tail -f 看持续输出的日志
  • less 看日志不会宕机
  • ln -s 软连接指定可执行命令.注意使用绝对路径

例如有一个脚本a.sh 他的绝对路径执行方式为 /A/a.sh,但是不想这样执行 想用/B/b.sh 方式执行,可以执行 ln -s /A/a.sh /B/b.sh,ll /B/b.sh命令时会显示出软连接的状态带 → 标识 左侧为软连接名称 右侧为实际执行脚本,删除软连接 rm 软连接 注意他是个软连接后面不要加/

2.3.2 解压缩操作

  • 压缩

    打包压缩tar -cvf etc.tar /app/etc  #打包
    tar -zcvf pack.tar.gz pack/ #打包压缩为一个.gz格式的压缩包
    tar -jcvf pack.tar.bz2 pack/ #打包压缩为一个.bz2格式的压缩包
    tar -Jcvf pack.tar.xz pack/ #打包压缩为一个.xz格式的压缩包
  • 解压

    tar -zxvf pack.tar.gz /pack #解包解压.gz格式的压缩包到pack文件夹
    tar -jxvf pack.tar.bz2 /pack #解包解压.bz2格式的压缩包到pack文件夹
    tar -Jxvf pack.tar.xz /pack #解包解压.xz格式的压缩包到pack文件夹
    unzip    #解压zip

2.3.3 接口请求类指令

2.3.4 jar包运行指令

  • java -jar xxx.jar 最常用的启动jar包命令,特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出
  • java -jar xxx.jar & &代表在后台运行 ,ctrl+c 后程序也会继续运行
  • nohup java -jar xxx.jar & nohup 即 no hang up 不挂断 ,关闭SSH客户端连接,程序不会中止运行

缺省情况下该作业的所有输出被重定向到nohup.out的文件中

  • nohup java -jar xxx.jar >aaa.log & 将commandd 输出重定向到out.flie文件,即输出内容不打印到屏幕上,而是输出到out.file文件中
  • nohup java -jar xxx.jar >> xxx.log 2>&1 &

    nohup java -jar /home/java_jar/PhotoBed-0.0.1-SNAPSHOT.jar >> /home/logs/photo_bed.log 2>&1 &
  • nohup java -jar spring-boot-demo.jar > /dev/null 2>&1 & 不输出日志

2.4 常用软件安装

2.4.1 安装JDK

jdk为java的开发运行环境,装了jdk便可以运行各种jar包

  • 确保是最新系统,如果不是最好先更新一遍系统
  • sudo apt install default-jdk -y 默认版本为JDK11
  • 安装完后 java -version 检查版本信息
  • 安装jdk8版本 (这里使用南天大佬博客上的压缩包)

    sudo su #切换到root用户
    
    #根据自己系统选择arm32或者arm64
    #arm32
    wget https://linuxer.top/usr/uploads/2020/07/jdk-8u261-linux-arm32-vfp-hflt.tar.gz
    tar -zxvf jdk-8u261-linux-arm32-vfp-hflt.tar.gz -C /usr/local/
    
    #arm64
    wget https://linuxer.top/usr/uploads/2020/07/jdk-8u261-linux-arm64-vfp-hflt.tar.gz
    tar -zxvf jdk-8u261-linux-arm64-vfp-hflt.tar.gz -C /usr/local/
    
    #创建软连接,方便升级
    ln -sf /usr/local/jdk1.8.0_261/ /usr/local/jdk1.8

增加环境变量,编辑文件nano /etc/profile,在最后增加以下内容并保存:

export JAVA_HOME=/usr/local/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH

使环境变量生效:

source /etc/profile

​ 安装完后 java -version 检查版本信息

2.4.2 安装VIM

vim是vi的升级版,是linux上效率非常高的文本编辑软件,精简版系统默认只装了vi没有vim

sudo apt-get remove vim-commo   //卸载预装的vi  
sudo apt-get install vim  //安装vim 

2.4.3 安装nginx

nginx为俄罗斯战斗民族程序员开发,是一个高性能web服务器和反向代理服务器,具体的使用会单独发一篇文章介绍

  • 下载软件 sudo apt-get install nginx
  • 启动 sudo systemctl start nginx
  • 查看状态 sudo systemctl status nginx
  • 设置nginx开机启动:sudo systemctl enable nginx
  • 重新加载Nginx,使配置生效 sudo systemctl reload nginx
  • nginx 默认80口 测试是否正常 输入ip地址访问,看到如下界面就证明启动成功了

  • 默认的网站根目录:/var/www/html
  • nginx配置文件目录:/etc/nginx/
  • nginx主配置文件位置:/etc/nginx/nginx.conf
  • 日志地址 vim /var/log/nginx/error.log
  • 新增端口映射文件放/etc/nginx/conf.d 中

    server {
        listen 81; #映射端口
        server_name photo_bed.com;  #服务名称
    
                root /var/www/photo_bed.com; #资源路径
            index index.html index.htm; #请求头
    
        location / {
            try_files $uri $uri/ =404; #404页面
        }
    }

2.4.4 安装Docker

docker是一种虚拟化容器技术,类似于虚拟机,但是传统虚拟机是利用机器硬件进行虚拟化,而docker是在软件层面进行虚拟化,这个后面也会详细单独讲一篇,这里只介绍安装以及换源

  • 安装

    sudo curl -sSL https://get.docker.com | sh   #一键安装脚本
    sudo curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun  #国内镜像安装
    docker run hello-world #测试是否安装成功
  • Docker换源

    • 国内源地址
    https://registry.docker-cn.com   #Docker官方中国区
    http://hub-mirror.c.163.com  #网易
    https://docker.mirrors.ustc.edu.cn #中国科技大学
    https://y0qd3iq.mirror.aliyuncs.com   #阿里云 (实测阿里云的最快)
    • 新增配置文件 nano /etc/docker/daemon.json
    {
      "registry-mirrors": ["https://y0qd3iq.mirror.aliyuncs.com"]
    }
    • 重启Docker服务 sudo service docker restart
    • 然后通过以下命令查看配置是否生效 docker info|grep Mirrors -A 1 ,

    看到如下的输出:
Registry Mirrors:
 https://y0qd3iq.mirror.aliyuncs.com/
    就表示镜像配置成功

5

评论 (1)

取消
  1. 头像
    zyb 作者
    MacOS · Safari

    表情欢迎大佬们指点

    回复