# Raspberry Pi 4 Note ## 設定 SSH 不用密碼登入 ```shell # local ssh-copy-id -i ~/.ssh/id_rsa.pub pi@raspberrypi.local ``` :::spoiler `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 Options** → **I2 VNC** → **\<Yes\>** ### 為什麼沒辦法透過 RealVNC 連線了 在 [2023/10/09 發布的 Raspberry Pi OS Bookworm]( https://www.raspberrypi.com/news/bookworm-the-new-version-of-raspberry-pi-os/) 已遷移至 Wayland,預設改用 **wayvnc** 而非 RealVNC,因此客戶端必須改用 [TigerVNC](https://tigervnc.org/) 才可正常連線。 可以透過以下步驟切換回 X11: 1. 一樣執行 `sudo raspi-config` 2. 依序選擇 **6 Advanced Options** → **A6 Wayland** → **W1 X11** 3. 按照上面步驟再次啟用 VNC 即可繼續使用 RealVNC 連線 ## 安裝常用工具 ```shell # 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。 ```shell 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 ``` ## 查看溫度 ```shell vcgencmd measure_temp ``` ## 安裝 ZSH https://hackmd.io/@xq/terminal ## 設定 DDNS(Dynu) 建立 `~/dynudns/dynu.sh` ``` vim ~/dynudns/dynu.sh ``` 輸入內容 ```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 位置 ```shell 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 ```shell 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