Try   HackMD

Raspberry Pi 4 Note

設定 SSH 不用密碼登入

# local
ssh-copy-id -i ~/.ssh/id_rsa.pub pi@raspberrypi.local

ssh-copy-id 做了以下事情:

  1. 將你的公鑰(在這個例子中是 id_rsa.pub)複製到目標主機(這裡是 raspberrypi.local)的 ~/.ssh/authorized_keys 文件中。
  2. 設置適當的權限和所有權,確保只有用戶 pi 可以讀取和寫入這個文件。

如何撤銷:

  1. SSH 登入到目標主機。
  2. 打開 ~/.ssh/authorized_keys 文件。
  3. 找到和刪除與你的 id_rsa.pub 相對應的那一行。

啟用 VNC

  1. 執行 sudo raspi-config
  2. 依序選擇 3 Interface OptionsI2 VNC<Yes>

為什麼沒辦法透過 RealVNC 連線了

2023/10/09 發布的 Raspberry Pi OS Bookworm 已遷移至 Wayland,預設改用 wayvnc 而非 RealVNC,因此客戶端必須改用 TigerVNC 才可正常連線。

可以透過以下步驟切換回 X11:

  1. 一樣執行 sudo raspi-config
  2. 依序選擇 6 Advanced OptionsA6 WaylandW1 X11
  3. 按照上面步驟再次啟用 VNC

即可繼續使用 RealVNC 連線

安裝常用工具

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Add the repository to Apt sources:
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update


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

curl -s 
https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash
sudo apt-get install speedtest -y

在執行 docker 時不需要 sudo

將 user 加入 docker 群組

sudo gpasswd -a $USER docker

https://docs.docker.com/engine/install/linux-postinstall/#manage-docker-as-a-non-root-user

解決 Chromium 緩慢的問題

/boot/cmdline.txt 同一行尾端新增 video=HDMI-A-1:1600x1200@60D 來強制開啟 hdmi mode。

sudo sed -i '1s/$/ video=HDMI-A-1:1600x1200@60D/' /boot/cmdline.txt

https://forums.raspberrypi.com/viewtopic.php?t=337926#p2023407

從本機向遠端傳送檔案

# local
scp .env pi@raspberrypi.local:~/.watch-jks.env

手動執行 Docker 容器

docker run --pull=always --env-file ~/.watch-jks.env -- ngseke/watch-jks:latest

關於 systemd

新增並編輯 service 檔

sudo vim /etc/systemd/system/custom-app.service

重新載入 systemd 設定並啟用這個服務

sudo systemctl daemon-reload
sudo systemctl enable custom-app

也可以手動執行或停止

sudo systemctl start custom-app
sudo systemctl stop custom-app

查看狀態

sudo systemctl status custom-app

查看溫度

vcgencmd measure_temp

安裝 ZSH

https://hackmd.io/@xq/terminal

設定 DDNS(Dynu)

建立 ~/dynudns/dynu.sh

vim ~/dynudns/dynu.sh

輸入內容

# ~/dynudns/dynu.sh
echo url="https://api.dynu.com/nic/update?hostname=HOST_NAME&username=USER_NAME&password=PASSWORD_HASHED_WITH_MD5" | curl -k -o ~/dynudns/dynu.log -K -

設定 cronjob 定時更新 IP 位置

crontab -e

# add following
*/5 * * * * sh /home/pi/dynudns/dynu.sh >/dev/null 2>&1

https://www.dynu.com/DynamicDNS/IPUpdateClient/RaspberryPi-Dynamic-DNS

Minecraft Server

wget https://piston-data.mojang.com/v1/objects/5b868151bd02b41319f54c8d4061b8cae84e665c/server.jar
java -Xmx1024M -Xms1024M -jar server.jar nogui

https://msmhq.com/docs/installation.html
https://www.minecraft.net/zh-hant/download/server