跳过正文

折腾树莓派

·1074 字·3 分钟
折り紙 紫藤
作者
折り紙 紫藤
Prosper

引言
#

最近因为袋有余钱,购置了一套树莓派CM5来折腾一下,顺便学习下linux系统。

目前对于这个系统的构想是首先做一个简单的服务器,将这个博客、5e-tools、FVTT部署上去,同时部署一个overleaf和代理。最后将这个网络套在一个nginx层中进行反向代理。目前实现了一些功能,正在持续更新中。

这篇文章全程基于了Raspberry Pi OS 64bit with Desktop,树莓派系统是CM5 8GB/64GB,讲述了一些经验,仍在持续更新。

关于Raspian系统
#

UDP无法连接
#

sudo nano /etc/xrdp/startwm.sh

添加

unset DBUS_SESSION_BUS_ADDRESS
unset XDG_RUNTIME_DIR

即可

换apt源
#

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

sudo nano /etc/apt/sources.list

deb https://mirrors.tuna.tsinghua.edu.cn/debian bookworm main contrib non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian bookworm-updates main contrib non-free-firmware

sudo nano /etc/apt/sources.list.d/raspi.list
deb https://mirrors.tuna.tsinghua.edu.cn/raspberrypi bookworm main

切换外部天线
#

sudo nano boot/firmware/config.txt

末尾添加

dtparam=ant2

下载Github release
#

curl -LjO https://github.com/samtools/htslib/releases/download/1.15.1/htslib-1.15.1.tar.bz2

修改自启
#

service --status-all
sudo systemctl enable/disable xxx
sudo systemctl deamon-reload

sudo systemctl start/stop xxx

连不上5G wifi
#

在CN配置中,一些信道没有启用。学校的wifi工作在60信道,但是不知为何在一次启动后变成了disabled。将wifi国家设置为US即可。不过在这些信道上由disabled变为no IR,仍需改进。

查看信道:
#

iw list

VSC copilot提示没有keyring
#

确保电脑上安装了gnome-keyring libsecret seahorse(optional),然后VSC中命令-configure runtime arguments,结尾添加"password-store":“gnome-libsecret”,重启即可。

关于服务部署
#

安装docker和换源
#

参见Pidoc文档

# 卸载旧版本(如果有):
for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done

# 添加 Docker 官方 GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# 添加仓库到 Apt 源 (DEB822 .sources 格式):
sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: http://mirrors.aliyun.com/docker-ce/linux/debian
Suites: trixie
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

测试docker

sudo docker run hello-world

sudo nano /etc/docker/daemon.json

sudo systemctl daemon-reload
sudo systemctl restart docker

卸载docker

sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin

sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd

将普通用户添加到docker组

sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker

安装nodejs
#

# Download and install nvm:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.3/install.sh | bash

# in lieu of restarting the shell

\. "$HOME/.nvm/nvm.sh"

# Download and install Node.js:

nvm install 22

# Verify the Node.js version:

node -v # Should print "v22.17.0".
nvm current # Should print "v22.17.0".

# Verify npm version:

npm -v # Should print "10.9.2".

npm换源

npm config set registry https://registry.npmmirror.com

FVTT部署
#

从官网下载FVTT包,之后根据官方教程

node main.js --dataPath=$HOME/foundryvttData

sudo cp node-server.service /usr/lib/systemd/system

配置守护进程

foundryvtt.service
[Unit]
Description=Foundry VTT

[Service]
Type=simple
ExecStart=/home/admin/.nvm/versions/node/v22.17.0/bin/node /home/admin/foundryvtt/resources/app/main.js --dataPath=/home/admin/foundryvttData
Restart=on-failure
User=admin

[Install]
WantedBy=multi-user.target

$ sudo systemctl daemon-reload
$ sudo systemctl start node-socket-server.socket

proxy部署
#

参见这里

这一步可以下载deb包,会自动配置守护进程等等

启动之后(可选)部署dashboard

docker run -d --name metacubexd -p 8080:80 ghcr.io/metacubex/metacubexd:latest # 8080可以替换成自己喜欢的端口

配置中添加

external-controller: 0.0.0.0:9090
secret: 'replace-with-a-strong-secret'
external-controller-cors:
  allow-private-network: true
  allow-origins:
    - 'http://192.168.1.2:8080' # your dashboard's address
    # or, for trusted local networks only:
    # - '*'

之后外部访问即可。

开关代理:

vim /etc/profile

alias kmihomo="export https_proxy=http://127.0.0.1:7890 http_proxy=http://127.0.0.1:7890 all_proxy=socks5://127.0.0.1:7890"
alias gmihomo="unset  http_proxy  https_proxy  all_proxy"

开关即可。