偶而來一下年度更新。
這一年來 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