标签归档:raspberry pi

树莓派 Pi-dashboard

项目主页 https://make.quwj.com/project/10

假定树莓派已经安装好nginx和php,下载文件到指定目录

cd /var/www/html
sudo git clone https://github.com/spoonysonny/pi-dashboard.git

在nginx中添加一个服务端口,并为该端口配置php,同时将该端口用frp转发至公网。

可以在本地 访问 127.0.0.1:[port],或通过[remote_IP]:[remote_port]访问该站点,监控设备状态。

树莓派 部署远程下载 Aria2+AriaNG

1. Nginx 配置

为AriaNG配置一个基于端口的虚拟主机
修改,sudo vim /etc/nginx/sites-available/default

server{
       listen 8088;
       #server_name _;
       location / {
               root /var/www/aria2;
               index index.html index.php index.htm;
       }
}

2. aria2

安装,sudo apt install aria2

aria2的一些配置,参考https://www.wannaexpresso.com/2020/04/21/aria-pi/

如果出现错误(16),注意下载文件夹的权限。

groupadd -r aria # 添加用户组aria
useradd -r -g aria -s /usr/sbin/nologin -c "Aria 2" aria # 添加用户aria

sudo mkdir -p /home/aria/aria2 # 创建工作目录
touch /home/aria/aria2/aria2.session # 创建aria2进度文件
touch /home/aria/aria2/aria2.log # 创建aria2日志文件
touch /home/aria/aria2/aria2.config # 创建aria2配置文件

chown aria:aria /home/aria/* # 将工作目录下的文件移交给aria用户

# 将aria2c的拥有者设置为aria 
cd /usr/bin 
chown aria:aria aria2c 
chmod g+s aria2c

编辑 aria2.config 的全局配置

common download setting
dir=/home/pi/Downloads
disk-cache=32M
file-allocation=none
continue=true
connect setting
max-concurrent-downloads=16
max-connection-per-server=5
min-split-size=10M
split=20
disable-ipv6=true
session setting
input-file=/home/aria/aria2/aria2.session
save-session=/home/aria/aria2/aria2.session
save-session-interval=60
RPC setting
enable-rpc=true
rpc-allow-origin-all=true
rpc-listen-all=true
rpc-listen-port=6800
rpc-secret=rpcpsw

添加启动,sudo vim /lib/systemd/system/aria2.service

[Unit]
Description=Aria2 Service
After=network.target

[Service]
User=aria
ExecStart=/usr/bin/aria2c --conf-path=/home/aria/aria2/aria2.config
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target

3. AriaNG

下载最新 AriaNG 并解压到指定目录,进入之前在nginx中设置的目录 /var/www/aria2

sudo wget https://github.com/mayswind/AriaNg/releases/download/1.1.7/AriaNg-1.1.7.zip
sudo unzip AriaNg-1.1.7.zip

通过localhost:8088 即可访问。

X. 待解决

通过frp,把AriaNG的8088端口用tcp映射到公网ip,通过手机流量的外网查看,显示无连接;通过和raspberry pi 在同一无线局域网的路由器上外网,可以连接。

[AriaNG]
type = tcp
local_ip = 127.0.0.1
local_port = 8088
remote_port = 5552

[aria2rpc]
type = tcp
local_ip = 192.168.xx.xx # raspberry pi statics IP
local_port = 6800
remote_port = 6800

树莓派 安装samba

1. samba server

安装,sudo apt-get install samba

修改配置,sudo vim /etc/samba/smb.conf

[public]
comment = public folder
path = /public
read only = no
public = yes
browseable = yes
[pi]
path = /home/pi
valid users = pi
browseable = yes
writable = yes
write list = pi
create mask = 0777

重启服务,sudo systemctl restart smbd 或 sudo service smbd restart

增加smb新用户pi,sudo smbpasswd -a pi (psw=smb)

2. win10 设置

  • 修改,控制面板\所有控制面板项\程序和功能\启用或关闭windows功能
    勾选 SMB 1.0/CIFS 文件共享支持 和SMB Direct
  • 修改,本地组策略编辑,计算机配置-管理模板-网络-Lanman工作站,
    启用,启用不安全的来宾登录
  • 重启,在网络中即可发现树莓派设备。

树莓派 部署静态博客 Hexo+Nginx

欢迎访问 http://francis67.cc:5551/

1. 安装node.js

使用 NVM 安装

# install nvm
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.36.0/install.sh | bash
# install nodejs and npm via nvm
nvm install node

使用 nvm -v, node -v, npm -v 查看这些软件的版本。

npm更换淘宝源,npm config set registry https://registry.npm.taobao.org
通过npm config get registry 检验

2. 安装 git

sudo apt-get install git
adduser git (psw=git)
git init --bare hexo.git
chown -R git:git hexo.git
ssh-keygen # generate Public key
cat ~/.ssh/id_rsa.pub
vim /home/git/.ssh/authorized_keys
git config --global user.email "you@example.com"
git config --global user.name "Your Name"

这部分操作通过hook完成hexo的自动发布。

复制post-update.sample并去掉.sample,vim /home/git/hexo.git/hook/post-update
在注释后的第一行添加,git –work-tree=/home/git –git-dir=/home/git/hexo.git checkout -f
修改文件属性,chmod +x post-update

3. 安装 Hexo

# https://github.com/hexojs/hexo
npm install -g hexo-cli
#
hexo init myblog //'myblog' can be any name
cd myblog //enter 'myblog' dir 
npm install

hexo server

通过打开 http://localhost:4000,即可以看到配置好的页面。

下面的操作通过git把hexo部署到nginx上。

编辑配置,vim /home/pi/myblog/_config.yml
修改#deploy如下,<your server IP> 我填了127.0.0.1

deploy:
  type: git
  repo: git@<your server IP>:/home/git/hexo.git  
  branch: master

在 /myblog 文件夹中安装hexo-deployer-git

npm install hexo-deployer-git --save
hexo new <blog_title>
hexo g -d

重新部署后,通过 server_IP:8080,即可以访问使用git部署的hexo页面。

4. 部署到nginx

修改 sudo vim /etc/nginx/sites-available/default  相关配置

https {
…
server {
listen 8080;
root /home/git;
server_name localhost;
location / { index index.html index.htm; } } ...
}
service nginx restart

X. Hexo 相关

安装 NexT 主题

参考连接

光速(大雾)博客配置I — Hexo+git+Nginx

树莓派 Web服务器 LNSP

采用LNSP配置(Linux + Nginx + Sqlite + PHP)

1. Nginx

sudo apt-get install nginx,安装

sudo /etc/init.d/nginx start,启动服务

修改 sudo vim /etc/nginx/sites-available/default 其中的部分内容,其他保持不变。

  1. listen 改为8080端口(为了防止和80端口冲突)
  2. index 增加 index.php
  3. 去除php段落的部分注释
  4. html 所在默认路径, root /var/www/html;
server {
    listen 8080 default_server;
    #listen [::]:8080 default_server;    
 
    root /var/www/html; 

    # Add index.php to the list if you are using PHP 
    index index.php index.html index.htm index.nginx-debian.html; 

    server_name _; 

    location / { 
            # First attempt to serve request as file, then 
            # as directory, then fall back to displaying a 404. 
            try_files $uri $uri/ =404; 
    } 

    # pass PHP scripts to FastCGI server 
    # 
    location ~ \.php$ { 
            include snippets/fastcgi-php.conf; 
    # 
    #       # With php-fpm (or other unix sockets): 
            fastcgi_pass unix:/run/php/php7.3-fpm.sock; 
    #       # With php-cgi (or other tcp sockets): 
    #       fastcgi_pass 127.0.0.1:9000; 
    } 

    # deny access to .htaccess files, if Apache's document root 
    # concurs with nginx's one 
    # 
    #location ~ /\.ht { 
    #       deny all; 
    #} 
}

sudo /etc/init.d/nginx reload,重载。

这时通过系统自带的浏览器访问127.0.0.1:8080,可以看见nginx初始页面。

2. php和sqlite

sudo apt-get install php-fpm php-sqlite3,安装php和sqlite3。

注意使用 php-fpm 和 php-sqlite3 作为默认参数,可以安装最新版本。

在html所在默认路径,新建文件index.php

<?php echo phpinfo(); ?>

期间遇到了一些问题,最初以为是ngnix和php配置的问题,最后发现是因为最初index.php文件里的语法问题,返回HTTP 500的错误。
通过修改sudo vim /etc/php/7.3/fpm/php.ini 文件中 display_errors = On,可以显示出错误所在,进行修正。

3. 反向代理

使用frp作为内网穿透,因为没有多余的域名,只能通过IP访问,所以在frpc.ini 中添加

[Web]
type = tcp
local_ip = 127.0.0.1
local_port = 8080
remote_port = [remote_port]

使用frp的 server_IP:[remote_port]即可以从外网访问处于内网上的树莓派。

4. nginx和php相关指令

/etc/init.d/php-fpm7.3 {start|stop|status|restart|reload|force-reload}
nginx {start|stop|restart|reload|force-reload|status|configtest|rotate|upgrade}

树莓派 操作记录

1. 更换源

运行 lsb_release -c,查看对应版本,我的为buster。

运行 sudo nano /etc/apt/sources.list,增加中科大和阿里的镜像。

deb http://mirrors.aliyun.com/raspbian/raspbian/ buster main non-free contrib
deb-src http://mirrors.aliyun.com/raspbian/raspbian/ buster main non-free contrib
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi

运行 sudo apt-get update,更新索引

运行 sudo apt-get upgrade,更新软件

运行 sudo apt-get dist-upgrade,

2. SSH Connection closed by foreign host

  1. 修改该文件 /etc/ssh/sshd_config
  2. ClientAliveInterval 60
    ClientAliveCountMax 3
  3. 重启SSH服务,
    /etc/init.d/ssh restart
    systemctl restart sshd

这个问题最初是在使用 sudo apt-get upgrade 时,ssh断开连接。

解决方法:使用GNU屏幕。屏幕提供了一个虚拟终端,即使您的ssh连接丢失,该终端也可以继续运行。

sudo apt-get install screen,安装屏幕

screen,启动屏幕

ctrl+a+d,暂时离开screen,

screen r,重新连接screen

3. 更改时区

date,查看当前系统时间

sudo dpkg-reconfigure tzdata,选择Asia,Shanghai

4. 安装vim

sudo apt-get install vim

配置参考 https://www.francis67.cc/archives/51

5. 使用windows 远程桌面连接

sudo apt-get install xrdp,安装xdrp服务

使用windows自带的远程桌面连接即可登录。(前提是安装了
Raspberry Pi OS (32-bit) with desktop,其中包括桌面软件)

6. frp

使用命令行下载并解压frp最新版本

wget https://github.com/fatedier/frp/releases/download/v0.34.0/frp_0.34.0_linux_amd.tar.gz
tar -zxvf frp_0.34.0_linux_amd.tar.gz
cd frp_0.34.0_linux_amd
修改客户端配置 frpc.ini,可参考https://blog.francis67.cc/archives/537

[common]为具有公网IP的VPS的配置,同时为树莓派增加了[SSH]连接

通过 frpc -c /etc/frpc.ini 启动,并使用systemctl将frp添加到服务实现开机自启动。

sudo vim /lib/systemd/system/frps.service

[Unit]
Description=frps service

[Service]
Type=simple
Restart=always
RestartSec=20s
# specific file path
ExecStart=/xxx/frpc -c /xxx/frpc.ini
ExecStop=/bin/kill $MAINPID

[Install]
WantedBy=multi-user.target

使用 sudo systemctl start frps 启动服务,并添加下次重启自启动 sudo systemctl enable frps

树莓派 安装和连接

1 安装

从官网下载镜像 https://www.raspberrypi.org/downloads/raspberry-pi-os/,使用Win32 Disk Imager (https://sourceforge.net/projects/win32diskimager/) 向SD卡写入镜像。 插入树莓派中并且上电即启动。

在SD卡根目录新建名为SSH 无后缀文件,启用SSH。

在SD卡根目录找到 config.txt 文件,增加 enable_uart=1,启用串口。

2 连接

提供两种方法,包括在有网络和无网络的环境。默认用户名:pi,密码:raspberry。

  1. 使树莓派和电脑连入同一局域网,查到树莓派IP,通过Xshell连接树莓派。
  2. 使用USB-TTL,USB端连入电脑,TTL通过杜邦线与树莓派相应连引脚连接。
    GPIO14(TXD)-USB RXD, GPIO15(RXD)-USB TXD, Ground-GND, 5V Power-VCC(或USB端自己短接,不连接树莓派)
    通过PuTTY连接树莓派。
gpios