跳到主要內容

發表文章

編輯器無法使用 Tab 縮排

在編寫程式時的縮排,我喜歡用 Tab 多於空白。最近在寫 Laravel 時卻發玩編輯器都轉用了空白,無論我怎樣設置也是一樣。後來發現編輯器會跟據當時目錄中的 .editorconfig 內容來影響設定。於是打開 .editorconfig 檔,把裡面的 space 改為 tab 就沒再出現空白的情況。
最近的文章

在 Raspberry Pi 4 上安裝 Pandas DataReader

如果在 Raspberry Pi 4 上的 Ubuntu 18.04 以 pip 指令安裝 Pandas DataReader,會出現報錯內容。主要問題是找不到 libxml2 檔案。網上的解決方案是用 apt-get 去安裝 libxml2,在我的情況下沒有改善。原來不單止要安裝 libxml2,還需要 libxslt。正確方法如下: $ sudo apt-get install libxml2-dev libxslt-dev $ pip3 install lxml $ pip3 install pandas-datareader

Raspberry Pi 4 伺服器軟體設定

按照之前的步驟把 Ubuntu 18.04 安裝好到 Raspberry Pi 4,還用上了 SSD 作為主要儲存媒體。下一步便是安裝所需軟件。在這之前,先做一下更新,確保所有資源都是最新。在 Raspberry Pi 4 上登入 Console 並輸入: $ sudo apt-get update $ sudo apt-get upgrade $ sudo apt dist-upgrade $ sudo reboot $ sudo apt-get install ubuntu-desktop $ sudo apt-get install -y xterm $ sudo apt-get install python3.7 $ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1 $ sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2 $ sudo update-alternatives --config python3 為了安全起見,先建立一個新用戶並把它加到 sudo 群組。往後就是用這個帳號來做設定: $ sudo adduser sitachan $ sudo usermod -aG sudo sitachan 這時回到 macOS 的 Terminal,測試新帳號能否登入: $ ssh sitachan@192.168.1.100 $ exit 除了使用密碼登入 SSH 外,還可以 SSH Key 來登入,能省卻了輸入密碼的步驟。在 macOS 的 Terminal 下輸入: $ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/Users/home/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been sa…

架設 Raspberry Pi 4 以 SSD 起動

Raspberry Pi 必須要以 SD 卡啟動,至少就目前來說是這樣。我希望它能以 SSD 作為主要儲存媒體。要達到這個目的,需要做一點修改。以下是在 macOS Catalina 的步驟。


首先,到 https://ubuntu.com/download/raspberry-pi 下載 Ubuntu 18.04 64-bit 版本。把影像檔以 balenaEtcher 分別燒錄到 SD 卡及 SSD。在 Terminal 輸入 lsusb。把 SSD 以 USB 接上電腦,然後再輸入: $ lsusb 查看多出來的一行的 SSD 的編號。如上圖所示,我的 SSD 編號是 152d:0583,把它記錄下來。插入 SD 卡,打開 /nobtcmd.txt。把「root=LABEL=writable」改為「root=/dev/sda2」。如果使用的是非 ORICO 連接合,則需要在行首輸入「usb-storage.quirks=152d:0583:u 」,那是剛才得到的 SSD 編號。這是告知 Raspberry Pi 啟動的裝置是 SSD。


把 SD 卡和 SSD 都接上 Raspberry Pi 4,然後開機。當成功運行後,輸入:
$ findmnt -n -o SOURCE / 如果顯示 /dev/sda2 代表了正在使用 SSD 作為主要儲架媒體。再以: $ df -h 觀看 SSD 的大小。我的 SSD 是 512GB,看到哪個 470G 就是了。
參考:
https://krdesigns.com/articles/raspberry-official-ubuntu-18.04.04-bootable-from-USB-SSD-drive
https://jamesachambers.com/raspberry-pi-4-usb-boot-config-guide-for-ssd-flash-drives/

安裝新伺服器硬體

公司的 Raspberry Pi 4 是二十四小時全天候運行,它的透明塑膠外殼附帶了一把小風扇能有效散熱,只感到微微的溫暖。我的 Raspberry Pi 是用來作為伺服器,熱力可能會更高,所以選擇了散熱效能更強的外殼。


星期一在淘寶以 ¥60 購買了這款外殼。它是由鋁製成,還附帶了兩把小風扇;金屬外殼與晶片之間貼上了導熱矽膠,能把熱力快速傳播並由冷風帶走。希望不會使伺服器的溫度太熱。


安裝好 SSD 儲存裝置後,便是我新的 Raspberry Pi 4 伺服器了。

安裝 SSD

我喜歡 ORICO NVMe M.2 SSD Enclosure TCM2-C3 的透明設計。它的包裝普通而細心。一條 USB Type-A 到 USB Type-C 線、一條 USB Type-C 到 USB Type-C 線、一支小螺絲批、兩片導熱矽膠。


SSD 方面,了解過不同牌子和型號,選擇了 Seagate 512GB BarraCuda 510 M.2 2280。可是到旺角電腦中心購買時沒有貨,選擇了這款次選的 ADATA 512GB XPG SX8200 Pro M.2 2280。除了一片 SSD 外,還附帶一片散熱片。


ORICO 的盒子只要輕輕一推便能鬆開。要拿出電路板,把 SSD 安裝進去。


在 SSD 末端裝上卡關螺絲後,把電路板放回盒子。然後在 ORICO 的散熱板背部貼上導熱矽膠。位置是隨意地貼。我選了 SSD 晶片較集中的位置。


最後把蓋子合上就完成安裝 SSD 的步驟。這就是新伺服器的儲存裝置。

選擇新伺服器硬件

家中帶有光碟機的 Mac mini Server 是很多年前的產品,已經變得很慢。雖然它還能提供服務,但就不能切合時代變遷的需求,是時候退下來到蘋果產品博物館。從功能、體積、效能、價錢各方面的考慮後,新的伺服器將選用 Raspberry Pi 4 + 512GB SSD。

伺服器是 24 小時運作,如果單純用大容量 SD 卡的話,速度是夠快,但壽命則不會長久。SD 卡及 Flash Drive 的設計是讀寫頻率低的工作。既然是全天候運作,得找讀寫頻率高的設備。SATA 硬碟及 SSD 硬碟就能滿足這個需求。我希望裝置細小、快速、安靜、堅固,預算在 HK$600 左右。SSD 有符合這些條件的選擇。

SSD 有兩種設計。一種是細小的盒子,以 USB Type-A 線連接;另一種是手提電腦用,像記憶體般的 m2 格式電路板。Raspberry Pi 4 沒有相關接合,須另購連接盒;能以 USB Type-C 線連接。有了盒子的話,兩者都方便攜帶。然而,前者的傳輸速度多為每秒 540MB;後者則多為每秒 3400MB。USB Type-C 的傳輸上限為每秒 20G bps,約是 2500MB 左右。而 Raspberry Pi 4 只有 USB Type-A 3.0 接口,速度是 5G bps,約是 640MB 左右。意味著用 m2 也最多只有這種速度,確是有點浪費。不過,小盒子與 m2 在相同容量的價錢只相差 HK$100 左右。在眾多品牌和型號中,我選擇了後者的 ADATA 512GB XPG SX8200 Pro M.2 2280 PCIe Gen3x4 SSD。外置盒則選擇 ORICO NVMe M.2 SSD Enclosure TCM2-C3,喜歡它的外形和透明設計。