偶而來一下年度更新。
這一年來 AI 祝我良多。發個還蠻方便的東西: WEB UART。
可以在有 chrome 核心瀏覽器 (e.g. Chrome, Edge ) 的情況下做為簡易的 UART terminal 替代品。
當然很難完全取代正規 terminal emulator,但是應急還是可以的。
我放在 github,需要的可以自行取用
The backup space...
偶而來一下年度更新。
這一年來 AI 祝我良多。發個還蠻方便的東西: WEB UART。
可以在有 chrome 核心瀏覽器 (e.g. Chrome, Edge ) 的情況下做為簡易的 UART terminal 替代品。
當然很難完全取代正規 terminal emulator,但是應急還是可以的。
我放在 github,需要的可以自行取用
忽然發現 2023 即將過去,今年都沒來更新 blog,趕緊來更新一下。
過去一年最大的改變莫過於 chatGPT 進入生活吧。短短幾個月,多做了很多以前不知道怎麼做或是沒想到可以做的事情。當然主要還是專業的寫程式碼之類。
然後有個人類訓練 AI,但是人類同時也被 AI 訓練著的感想。
今年最讓我覺得特別的大概是 CRC32 計算 for MCU。在運算量和 code size 達到均衡。
貼出來分享一下。
uint32_t halcrc32_update(uint32_t crc, uint8_t data) {
crc ^= data;
for (int i = 0; i < 8; i++) {
if (crc & 1) {
crc = (crc >> 1) ^ 0xEDB88320;
} else {
crc >>= 1;
}
}
return crc;
}
uint32_t halcrc32_calculate(const uint8_t *data, uint32_t length) {
uint32_t crc = 0xFFFFFFFF;
for (uint32_t i = 0; i < length; i++) {
crc ^= data[i];
for (uint32_t n = 0; n < 8; n++) {
if (crc & 1) {
crc = (crc >> 1) ^ 0xEDB88320;
} else {
crc >>= 1;
}
}
}
return crc ^ 0xFFFFFFFF;
}
寫得不多,塞點圖充版面一下。照片是 Pixel 8 Pro 拍攝的。
![]() |
這篇將提到如何把 FreeBSD 從舊 PC 轉移到新 PC,以及如何從 SATA 硬碟轉移到 NVME SSD。
轉移的目標是 ASUS PN41。
另外也會提一下這幾年的使用心得。不想看的可以先跳過。
其實之前就想寫這篇。偷懶的結果就是昨天多花了不少時間搞。
原本我在各長居地都有架設個小 server,順便當對外防火牆。反正 loading 不會高到哪,找個普普機器就好,其實蠻方便的。
最早是自組的,通常就是淘汰的舊電腦,或是隨便買個便宜板子和便宜 CPU 上。後來經濟狀況好一點覺得這樣子太醜了,用久了便成一團灰,所以就改買便宜 PC。於是幾年前開始噵入ASUS VM60。最近覺得時間到了 (從 2014 用到今年吧?),追求成本更便宜又換成 ASUS PN41。
VM60一路上用來其實算是穩定,唯一也最常遇到的問題就是風扇不轉罷工。但是處理方式也很簡單,就是拆下滴針車油。後幾年大概就是大約一年左右要滴一次。其實本來是想換風扇,但是實在找不到便宜料就打消念頭了。
最近開始換成 ASUS PN41,有一方面也是覺得做這動作很累。但更大部分是 PN41 更適合我目前的使用情境。低工作瓦數 (Pentium N6005 TDP 10W),具備 NVME 和 SATA,可自行擴充的 RAM 插槽。
我用的版本是 Pentium N6005 CPU 的乞丐版。從中國買的,價錢大約都是折合台幣6,000出頭。不包含 RAM、硬碟甚至連無線網卡都沒有。畢竟這些我都有汰換的可以用。
前話聊完,再來講重點。
主機轉移的概念很簡單,就是
1. 把舊主機斷網
2. 舊主機裝上新 NVME SSD
3. 然後把資料都複製上 NVME SSD 後
4. 修改一下新 NVME SSD 上的/etc/fstab 讓他換主機能 mount 正確的 partitions。
5. 拿到新主機裝上,插網路線後開機。收工!
簡單幾個步驟。實際上有些魔鬼 (?) 細節。
步驟 0,For PN41 ONLY! 先 pkg install realtek-re-kmod。為啥要先安裝 realtek-re-kmod 這個 package?這後面會講。另外這個步驟兩台主機都是 amd64 架構。如果是 x86 32 轉上來,我沒把握可以這樣搞。
步驟 1 是為了預防複製到一半又收到 mail 之類導致備份不完整。這個步驟的做法很簡單,就是直接拔掉網路線。
步驟 2 其實也還好。舊主機不支援 NVME,所以就是拿 NVME SSD + 外接盒接上。舊主機是 MBR,新主機我打算用 GPT。還有 PN41 只能用 EFI 方式開機,所以也不得不弄 GPT 搞 EFI
我原本用的分區方式是 / 跟 /usr 兩個分區。所以先在 NVME SSD (這邊變成USB 磁碟) 上建立 GPT。
因為我用的 NVME SSD 也是汰換的 (以前買筆電隨機的 256G NVME SSD),所以
#確定 NVME SSD 的 dev 名稱。在我的例子是 /dev/da0,操作上就用 da0
gpart show
# 先砍掉原本的
gpart destroy -F da0
# 建立新的
gpart create -s GPT da0
# boot partition
gpart add -b 40 -s 128 -t freebsd-boot da0
# EFI partition
gpart add -s 81752 -t efi da0
# UFS root, / 。這裡 -l 代表的是 label。-s 代表大小,沒設定會用光剩下的
gpart add -s 68G -t freebsd-ufs -l root da0
gpart add -t freebsd-ufs -l usr da0
#稍微檢視一下
gpart show -l da0
應該會看到
=> 40 500118112 da0 GPT (238G)
40 128 1 (null) (64K)
168 81752 2 (null) (40M)
81920 142606336 3 root (68G)
142688256 357429896 4 usr (170G)
sudo apt install linux-tools-5.4.0-77-generic hwdata
visudo