Dream of Yore - Alternative
The backup space...
December 31, 2025
August 23, 2024
年度更新(?) Web UART
偶而來一下年度更新。
這一年來 AI 祝我良多。發個還蠻方便的東西: WEB UART。
可以在有 chrome 核心瀏覽器 (e.g. Chrome, Edge ) 的情況下做為簡易的 UART terminal 替代品。
當然很難完全取代正規 terminal emulator,但是應急還是可以的。
我放在 github,需要的可以自行取用
December 26, 2023
年度更新。End of 2023
忽然發現 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 拍攝的。
![]() |
August 21, 2022
FreeBSD Transfer to new PC with NVME
這篇將提到如何把 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)
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 da0
newfs_msdos -F 32 -c 1 /dev/da0p2
mount -t msdosfs /dev/da0p2 /mnt
# -i 3 代表 index 3。對應到前面 gpart show 顯示的。我們想弄的是 root
=> 40 500118112 da0 GPT (238G)
40 128 1 (null) (64K)
168 81752 2 (null) (40M)
81920 142606336 3 root [bootme] (68G)
142688256 357429896 4 usr (170G)
# da0pX X會對應到前面建立的 index。我們要弄全部的 UFS
#再來 mount
#建立 usr 掛載點
mkdir /mnt/usr
#建立下面三個目錄,因為之後不複製這三個
mkdir /mnt/proc
mkdir /mnt/dev
mkdir /mnt/mnt
#現學現賣 XD 用 /dev/da0p3 也可以
mount /dev/gpt/root /mnt
mount /dev/gpt/usr /mnt/usr
因為用的是 PN41,要順便編輯一下 /mnt/boot/loader.conf,加上
umount /mnt/usr
umount /mnt
November 12, 2021
USB serial on WSL2
sudo apt install linux-tools-5.4.0-77-generic hwdata
然後編輯 sudoer
visudo
找到 Defaults secure_path 這行,修改如下 (紅色代表我新增的內容)
Defaults secure_path="/usr/lib/linux-tools/5.4.0-77-generic:...
做完這些,還需要打開 Windows 的防火牆設定。(重點,卡了我一點時間)
查詢可用的 USB 裝置
從這邊可以看到裝置的 BUS ID。然後就可以掛載。
所以還是要參考最早重新 compile kernel 的文章來產生 kernel module。
cp vmlinux /mnt/c/User/YourName/vmlinux
編輯 /mnt/c/User/YourName/.wslconfig
內容
[WSL2]
kernel=C:\\Users\\YourName\\vmlinux
然後重新啟動 WSL2
Windows terminal 下關閉 wsl2
wsl --shutdown
然後重新啟動 WSL2,跑上面的 usbipd 指令。
sudo modprobe cp210x
再觀察一下 dmesg,應該就能看到他被掛載到 /dev/ttyUSB0
達成我最早的目的。
November 03, 2020
December 20, 2019
源自對修車的熱愛 - 異種移植 VW 音響至 Suzuki SX4 Part 2
把老車整理了一下,這次把主機整合上倒車顯影。
找幫忙整理的車廠把鏡頭和線路弄好,自己再接上主機。
還搞了無線 carplay (某寶買轉換 dongle,¥690 RMB)
還蠻方便的。只是不知道為何沒辦法聲控...難道麥克風不在主機上嗎?(待確認)








