HTPC主機-裝機說明(TinyGo-J4125 Debian 11)

想了解Debian11做為我HTPC主機的原因,請移步到我的NAS血淚史,這一篇則記錄個人HTPC安裝的過程和其說明

安裝環境:

  • 主板TinyGo-J4125 8G
    M.2 A+E KEY Wifi 槽接了PH-59的卡可外接兩塊SATA碟
    M.2 B Key槽沒使用
    ES8336持續沒有驅動
  • 開機碟
    120G SSD 一個,分成四個磁區,分別是EFI(200MB)、root(72G)、swap(16G)、home(剩下)
  • 資料碟
    3T HDD 分成兩個磁區,200MB下載備用磁區(萬一資料、備份碟亙換時磁區不用重新分割)、Source_area(主要存放區)
  • 資料碟
    3T HDD 分成兩個磁區,200MB下載磁區(Download_area)、Backup_area(備份區)

系統佈建:

  • 到官網下載 live ISO檔案,並複制到Ventory的USB碟上,Live ISO 檔下載non-free版本,會順便安裝非官方的驅動,以TinyGo這張主版,顯示卡是i915的驅動,若不是裝non-free在更新(apt update)時會出現i915的錯誤,只能自個再安裝firmware-misc-nonfree_20210315-3_all.deb
  • 安裝面不說明了,請找谷哥畫面和說明更好
  • 之前過渡期問題,所以建議打開Magic SysRq的組合鍵,也就按Alt+SysRq(PrtScr)鍵後放開SysRq(PrtScr)鍵,再依次輸入r+e+i+s+u+b各鍵,系統就會重啟,以免硬斷電傷到硬碟echo "kernel.sysrq=1" >> /etc/sysctl.conf
  • 先移除不用的系統及遊戲
    apt purge -y fcitx* ibus* thunderbird* pidgin* mlterm* xterm* goldendict* gnote evolution* inkscape* imagemagic* shotwell* transmission* hexchat* brasero* cheese* eog* simple-scan xiterm+thai xfonts-thai* gnome-screenshot gnome-calculator gnome-sound-recorder mozc* vinagre  purge -y aisleriot five-or-more four-in-a-row gnome-chess gnome-klotski gnome-mahjongg gnome-mines gnome-nibbles gnome-robots gnome-sudoku gnome-taquin gnome-tetravex hitori hoichess iagno lightsoff quadrapassel swell-foop tali rhythmbox totem kasumi gimp purge -y gnome-2048 geary remmina* libreoffice*
    • 偏好用gcin當中打,要不要移除fcitx或ibus自個決定
  • 替換台灣源sed -i 's/deb.debian.org/opensource.nchc.org.tw/g' /etc/apt/sources.list然後進行系統的更新(apt update)和升級(apt upgrade -y)
  • 安裝主機需使用的軟體
    apt install -y pulsemixer pulseaudio-dlna gcin gcin-data gcin-gtk3-immodule gcin-qt5-immodule gcin-tables vlc wget x11vnc kodi kodi-pvr-iptvsimple unrar-free snapd smartmontools curl gnupg2 gnupg ca-certificates openssh-server
    • x11vnc
      遠端桌面搖控用
    • pulsemixer/pulseaudio-dlna
      Pulseaudio Cli的操作程式(主要HA配合SHELL使用,可替換輸出或調整設備聲音使用)
      PulseAudio-dlna(連接dlna設備,可配合pulsemixer做主機聲音的輸出或調整之用)
    • vlc/kodi/snapd
      vlc:觀看直播使用
      kodi:播放主機所儲存的影片,另搭配套件可看直播源
      snapd:linux的套件庫主要安裝zy使用,zy是網路播放器有源可以播網路電視、電影....
    • openssh
      ssh/sftp使用,先安裝方便遠端電腦進行操控
    • smartmontool
      SMART硬碟資訊讀取工具(smartctl)

  • 安裝網路播放器 snap install zy --dangerous 器,記得機器未重開下在sanpd安裝後安裝zy,必需先重啟 systemctl snapd,restart 否則無法安裝 zy
  • 再刪除gcin內定的543字碼,改由個人用的543字碼(在/home/XXXX/.gcin內)
    rm -r /usr/lib/x86_64-linux-gnu/gcin/table/cj543.gtab
  • 修改pulseaudio的輸出,供docker's volumio使用
    sed -i 's/#load-module module-native-protocol-tcp/load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1/g' /etc/pulse/default.pa
  • 個人會使用DLAN,也就有裝pulseaudio-dlna的程式,安裝後在同區網的DLNA設備會自動連接並納入到PulseAudio的介面內,但是Ubuntu 20.04不再支援 pulseaudio-dlna,需改裝pulseaudoo-module-raop,並下echo 'load-module module-raop-discover' >> /etc/pulse/default.pa讓模組內加上dlna的連接
  • Debian 11.2的版本,建議再加上,以免HDMI有畫面但沒聲音
    echo "options snd-intel-dspcfg dsp_driver=1" > /etc/modprobe.d/alsa.conf
  • 重新開機

環境佈建:

  • ssh/sftp
    ssh 安裝openssh-server即可使用,遠端登入每次皆要密碼,建議在遠端電腦的終端機上執行ssh-keygen指令,然後按Enter直到回到命令行,這時會在.ssh目錄內產生金鑰檔(id_rsa.pub),然後將該檔案複制到主機端內的同目錄(scp .ssh/id_rsa.pub <loginname:/home/<logindir>/.ssh/authorized_keys),但名稱為 authorized_keys,這樣下次同遠端電腦再以ssh登入,就不會要求輸入密碼了
    sftp 一樣安裝後就可使用,若要管制登入帳號、目錄、讀寫權限....改/etc/ssh/sshd_config即可,不過ssh/sftp若有同群或使用者的關係下不可同時使用
  • Samba
    目錄分享,一樣安裝後先重啟或檢查啟動否systemctl smbd restart(status),直接修改/etc/samba/smb.conf
    [nas_dumas] ---> 分享的名稱
        comment = /home/dumas --->註解
        path = /home/dumas --->分享的目錄
        browseable = yes --->可否瀏覽
        guest ok = yes ---> 訪客可否使用
        writable = yes ---> 有無寫入權限
        force user = dumas ---> 內定的使用者
        force group = dumas --->內定的群組
    • 加入後記得重啟 samba
  • nginx
    輕量化架站程式,其後要加上網頁版的系統資訊,除 nginx 安裝外,也加裝了  php php-fpm php-xml,先編輯/etc/nginx/sites-available/default
    • server {
              listen 80 default_server;
              listen [::]:80 default_server;

       網頁的連接埠,有特殊需求(8080)可變更
    • 找到root /var/www; 並改為root /var/www/dumas-nas;
    • index index.html index.htm index.nginx-debian.html; 行上,加入 index.php
    •         location ~ \.php$ {
                      include snippets/fastcgi-php.conf;
              #
              #       # With php-fpm (or other unix sockets):
                      fastcgi_pass unix:/run/php/php7.4-fpm.sock;
              #       # With php-cgi (or other tcp sockets):
              #       fastcgi_pass 127.0.0.1:9000;
              }

      取消上列紅色三行的註解#字號
  • phpsysinfo
    主機訊息網頁版,安裝前建議確認nginx/php7.4-fpm已啟動,可由系統安裝或到這理下載最新版本,下載後解開並複制到 /var/www/dumas-nas的子目錄內,以phpsysinfo子目錄為例
    • 將目錄內的phpsysinfo.ini.new更名為phpsysinfo.ini,在網頁上輸入<主機ip>/phpsysinfo就可以看到該主機的訊息,同樣修改phpsysinfo.ini可以配置個人版的資訊頁面
    • PLUGINS="SMART,PSStatus,Docker,PS"
      SMART:可顯示硬碟資訊,硬碟需支援SMART功能,需搭配修改[samba]內的DEVICES="/dev/sdb,/dev/sdc",同時需變更smartctl的權限(chmod u+s)
      PSStatus:主機服務狀態(sambd/nginx.....),需搭配修改[psstatus]內的PROCESSES="sshd, smbd, nginx"
      Docker:Docker's container 使用情況,主機端要變更docker的權限(chmod u+s)或者要修改root參數,不然會無法執行而取出資訊
      PS:主機程式資源
    • DEFAULT_DISPLAY_MODE="dynamic",建議由auto改為dynamic方便底下templates的下拉選取,若未使用則內定使用phpsysinfo為樣版
    • DEFAULT_LANG="tw",內定的網頁語言,因搭配修改SHOW_PICKLIST_LANG=true在網頁上打開下拉的選取功能,所以可以不用變更
    • DEFAULT_TEMPLATE="phpsysinfo",內定使用的樣版,一樣修改
      SHOW_PICKLIST_TEMPLATE=true,讓它在網頁上做下拉選取,所以可以不用變更
    • SENSOR_PROGRAM="LMSensors",可讀取主機版資訊,使用LMSensors就好,其它裝了也相同,所以設定一個即可
    • 其它UTC/Local時間的顯示,C/F溫度的設定....就自個參考更改
  • Docker和Portainer
    Docker在純Cli的操做非常不方便,建議加裝Portainer來管理Docker's Container
    • apt install -y apt-transport-https software-properties-common
    • curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 
    • add-apt-repository -y "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    • apt update 
    • apt install -y docker-ce docker-ce-cli
    •  記得下 systemctl restar(status)t docker 指令,重啟(檢查) docker,才不會像我在直接安裝portainer卡了一下,最後重開機後才能安裝Portainer
    • 再下docker run -d -p 9000:9000 --restart=always --name portainer -v /var/run/docker.sock:/var/run/docker.sock -e TZ='Asia/Taipei' portainer/portainer-ce 安裝 portainer,成功後就可以在同網城的電腦上輸入「主機IP:9000」來做Container的管理了
  • 定時備份,修改 /etc/crontab並加入備份指令就好了,詳細可開啟檔案,就有詳細解說
    # 每週日0:10、0:20備份系統參數及使用者參數,於0:30做資料區的備份
    10 0 * * 7 root tar -cvPf /media/Source_area/Source_area/user.tar .gcin .mozilla .kodi shell/* .config/autostart .config/baidunetdisk .config/zy
    20 0 * * 7 root tar -cvPf /media/Source_area/Source_area/system.tar /etc/crontab /etc/samba/smb.conf /etc/ssh/sshd_config /etc/nginx/sites-available/default /var/www/dumas-nas /usr/share/applications/zy.desktop
    30 0 * * 7 root rsync -avh --delete /media/Source_area/Source_area/ /media/Backup_area/Backup_area/Source2Backup/ >> /var/log/rsync.log

注意事項:

  • 機器重開後偶爾開機碟會變成/dev/sdb而不是/dev/sda,雖不影響使用但強迫症的我就覺得怪怪的,但還未找到設置地方
  • ES8336還是尚未驅動,還好QNAP時買的USB音效卡(CM106)還能用,讓放大器可再接S/PDIF的輸出音效


這個網誌中的熱門文章

找事做-老屋改善(科帥氣炸鍋維修)

找事做-Android Auto 開啟開發模式(WiFi)

小米手環 GPX 匯出(MIFITTCXEXPORT)