2GB 版本的 Raspberry Pi 5

本來是沒什麼注意的,直到 Jeff Geerling 丟出測試提到同樣是 Raspberry Pi 5,2GB 版本的比起其他版本在 idle 狀態省了不少電才注意到:「New 2GB Pi 5 has 33% smaller die, 30% idle power savings」。

他拿了 4GB 與 8GB 的 RPi5 對比,可以看到 4GB 與 8GB 版本的耗電量沒有太大差異,反而是 2GB 版本有明顯的下降:

官方網站上面「Processors」這邊提到 BCM2712 這顆 D0 與 C1 的差異在於 D0 拿掉了沒有用到的功能 (當初自己研發這顆晶片的時候可能趕時間,從其他地方弄過來沒有整理?):

The D0 stepping of BCM2712 removes unused functionality from BCM2712C1. There is no functional difference between the C1 and D0 steppings. Physically, the packages use the same amount of space.

官方雖然提到 package 的大小一樣,但拆開封裝的外殼後發現 die 小了不少:

這對於被動散熱的系統算是個蠻大的改善,看起來就是少了 0.9W 左右,可以在全速運轉的狀態下持續更久才遇到過熱降速。

話說本來的 4GB 與 8GB 版本,如果庫存用完後應該也有可能換成這顆?

這個種類的機器拿來跑一些小東西還不錯... 像是 1GB RAM 的 Raspberry Pi 3 Model B 到現在都還是拿來跑 SmokePing 記錄家裡網路的狀況。

不過如果是想要在客廳有個小台的桌機的話,我還是推 Intel N100,一方面是記憶體多 (至少可以拉到 16GB RAM),另外一方面是 CPU 也快不少,然後 M.2 的 disk 通常是出廠的時橫就會提供,相容性不用管太多。

另外軟體上面除了 Linux 類的以外也可以選 Windows,對於家人要使用的門檻可能會低一些。

當然如果你真的對 Raspberry Pi 的 ecosystem 以及 GPIO 有很強烈的偏好的話又是另外一回事了,這個情況比較偏宗教信仰的邏輯:未必認同但是給予尊重。

Intel N100 小主機

Hacker News 上看到在討論 Intel N100 小主機:「Intel N100 Radxa X4 First Thoughts (bret.dk)」,原文在「Intel N100 Radxa X4 First Thoughts」,剛好我自己的 N100 主機也滿一年了 (2023/07/15 拿到的),來整理一下這一年用下來的感想?

我當時買的主機價錢是 $5,147 含稅,記憶體與硬碟的規格是 16GB RAM + 512GB SSD,掛著 HiNet 的非固固 IP 在用 (非固定制網路的固定 IP,就是固一動七的設定)。

當初買他的原因是這算是 Intel 小主機 CPU 的大進步,在 2022 年如果想要找個二十四小時都開機,但大多時間都在 idle 的小主機,會選到 2013Q4 出的 J1900,主要是看到這顆 CPU 的 TDP 掛 10W。

但 2023 年就突然有了變化,在 2023Q1 出的 N100 差不多是五倍的效能 (拿 CPU Benchmark 上面的資料),然後 TDP 標示是 6W...

拿到以後裝了 Ubuntu 22.04,新版的 kernel 跑起來沒什麼問題,在服務都丟上去跑,實際接 power meter 看整機功耗,上面的程式 idle 時差不多在 10W 多一些,算是還蠻好用的機器。

Hacker News 上有人討論與 Raspberry Pi 5 的比較,不過兩邊的定位不太一樣,Raspberry Pi 到目前還是偏學習面向,可以看到不少人會用上面的 GPIO 接 sensor 或是其他裝置做很多事情。

而 N100 畢竟是 x86-64 架構,可以跑 Windows 加上效能頗不錯,對於辦公室文書機來說頗好用的,同樣道理,拿來跑會議室的公用電腦應該也不錯。

兩邊各自有已經發展起來的生態系...

算 π 的 Chudnovsky algorithm

Mastodon 上面看到 Rob Pike 提到計算圓周率 π 的 Chudnovsky algorithm:(原始連結在 https://hachyderm.io/@robpike/112794329524261491)

照維基百科的說明,應該是目前收斂速度最快的演算法群之一,從近期的世界紀錄可以常常看到這個演算法:

It was used in the world record calculations of 2.7 trillion digits of π in December 2009, 10 trillion digits in October 2011, 22.4 trillion digits in November 2016, 31.4 trillion digits in September 2018–January 2019, 50 trillion digits on January 29, 2020, 62.8 trillion digits on August 14, 2021, 100 trillion digits on March 21, 2022, and 105 trillion digits on March 14, 2024.

維基百科條目的後面也有提到在算這些世界紀錄時用到的最佳化手段,甚至連 Python 實作都直接列出來了,可以看到遞迴的部分全部是整數運算,而最後轉換的時候也才用到一個整數的根號計算。

最近 Linux Kernel 對 Raspberry Pi 效率的提升

在「NUMA Emulation speeds up Pi 5 (and other improvements)」這邊看到的,最近 Linux kernel 有些新的 patch 對 Raspberry Pi 的效率有不少提升。

其中 NUMA Emulation 這包對於 Raspberry Pi 5 的效能提升頗多:

[I]t can bring a significant performance uplift on Raspberry Pi 5.

照他的說法,Geekbench 6 的提升部分,單核 6% 多核 18%:

In more conrete numbers, testing with Geekbench 6 shows that splitting into four emulated NUMA nodes can uplift the single core score of the benchmark by around 6%, and the multi-core by around 18%.

Jeff Geerling 測試的結果則是 6% & 12%,沒有宣稱那麼多,但仍然是不小的提升。

話說我還在想要不要弄一台 Raspberry Pi 5,目前手上有幾台 1B、一台 3B+ 以及一台 4,除了跑 SmokePing 以外還有什麼值得跑的...

Raspberry Pi 上面直接對 Framebuffer 與觸控介面操作

清 tab,看到這個 2019 年的文章:「Writing GUI applications on the Raspberry Pi without a desktop environment (2019) (avikdas.com)」,原文在 Raspberry Pi 上面希望操作觸控螢幕,但不想要把整包 X.Org 都裝起來,所以直接操作了 Framebuffer,並且自己處理了觸控介面的事件:「Writing GUI applications on the Raspberry Pi without a desktop environment」。

這看起來是作者的成品:

當年作者用 Raylib 實作,不過 2024 年的 Hacker News 倒是提到了不少 library 可以用,之後如果有遇到需求可以當作切入點去研究...

Raspberry Pi Ltd 上市

Raspberry Pi LtdLSE 上市了,代碼 RPI:「Raspberry Pi IPO」。

LSE 上的資料在「RASPBERRY PI HOLDINGS PLC」這邊,但這網頁開的速度... 有點... 感人?

上市後公司的走向通常都會有不少變化,接著看看 Raspberry Pi 6 的計畫吧?雖然 N100 的實用度會更好...

在機房裡面看到奇怪的 Raspberry Pi?

看到「The curious case of the Raspberry Pi in the network closet (2019) (blog.haschek.at)」這篇消息,這篇是 2019 當時的新聞,我當時就有看到,不過好像沒寫下來... 原文在「The curious case of the Raspberry Pi in the network closet」,基本上是個在機房裡面發現奇怪的設備,然後追查兇手的故事。

先整理一下事情,作者的父親 (看起來與作者都是這個行業的人) 在機房裡面發現一個奇怪的 Raspberry Pi 設備:

跟能夠進入機房的人確認後發現這不是他們帶進來的設備。另外他就請他爸把 SD card 裡面的東西倒出來再傳給他分析 (因為作者當時在遠端):

I asked him to unplug it, store it in a safe location, take photos of all parts and to make an image from the SD card (since I mostly work remote).

後面就是抓出這個設備是誰擁有的過程了,最後找到人交給 legal 處理。(這樣講好像太簡單了,但有興趣的人可以回去看作者的說明)

另外當年作者就有提到這個單位的 IT team 不大 (只有四個人),加上 BYOD 的政策,導入 802.1X 反而會帶來太多人力成本:

Good points. The problem is, there are over 1000 people coming and going every day, the site has a BYOD strategy and the IT team is 4 people. We tried implementing 802.1X for LAN devices but it was soo much overhead that we dropped that.

The thing of this case is that the person was only able to place the Pi there because he had a key to the network closet. That's game over no matter how many security protocols you implement

We did change the server passwords though

結果六年以後在 Hacker News 上被提起來,作者又來補充了一些事情,在 id=38923967 這邊提到這個點是一間學校,而他們是 contractor 的角色,所以有很多事情沒辦法直接推動:

OP here. What I didn't mention in the article is that this actually happened in a public School (small-ish for US standards as there are just ~1000 students and 100 teachers)

Hard to get the budget for serious switching hardware, even harder to get people who know how to manage them as I'm just an external contractor but can't exceed the alotted budget for my work there

另外在 id=38923991 這邊則是提到是歐洲,另外似乎是私下解決了,沒有上到法院:

OP here. Court records are thankfully not public in europe and it's even illegal to name names in public (unless it's about a public figure)

As far as I know there also were no court proceedings as this was handled internally

算是稍微補充了當年的一些難處...

Raspberry Pi 5 在 shutdown 狀態時的電力消耗過高問題

在「Reducing Raspberry Pi 5's power consumption by 140x」這邊看到的,講 Raspberry Pi 5 在 shutdown 狀態下電力消耗過高的問題。

依據 Jeff Geerling 提到,在 shutdown 狀態下仍然會消耗 1.2W~1.6W:

Because of this, a Pi 5 will still sit there consuming 1.2-1.6W when completely shut down, even without anything plugged in except power.

也有提到解決方法是把 POWER_OFF_ON_HALT 改成 1,他給的範例另外有多一些設定,但跟這次的功耗問題無關:

[all]
BOOT_UART=1
WAKE_ON_GPIO=0
POWER_OFF_ON_HALT=1

依照文章裡面的說明設定好,重開再 shutdown 測試就可以看到整個降下來了:

Save that configuration and reboot, then next time you shut down, you should see power consumption go down from 1-2W to 0.01W or even less:

應該算是某種 bug 或是 regression,後續預設值應該會修正?

Raspberry Pi 5 拿掉硬體的 H.264 encoding

HN 上看到「Raspberry Pi 5 has no hardware video encoding and only HEVC decoding (raspberrypi.com)」,原文指到 Gordon Hollingworth 的回覆這邊,可以看到這是上個月的消息了。

Raspberry Pi 一直都有硬體 H.264 encoding 的能力,不過這個在 Raspberry Pi 5 上被拿掉了,所以得用軟體壓。

官方有提到 Raspberry Pi 5 的 CPU 因為比之前快很多,單顆就有辦法做到 1080p60 (而 RPi5 有 4 CPU),所以除了 power consumption 以外應該不是大問題:

Obviously, the bad thing is the power consumption, but actually it only takes around 1 processor to encode 1080p60 with our default settings (which is still better quality than the PI 4 hardware encoder).

不過 HN 上猜是授權費用之類的問題,我在想是不是新的晶片組的 encoding license 都綁在一起,H.264 + H.265 得一包一起買,而 H.265 的授權費是眾所皆知的貴...

當 desktop 應該是還好,但就心裡有個底...

在 Raspberry Pi (32-bit) 上安裝 Tor

Raspbian (bullseye) 裡面的 Tor 版本太舊 (0.4.5.16-1):

0.4.5.16-1 (/var/lib/apt/lists/raspbian.raspberrypi.org_raspbian_dists_bullseye_main_binary-armhf_Packages)
 Description Language: 
                 File: /var/lib/apt/lists/raspbian.raspberrypi.org_raspbian_dists_bullseye_main_binary-armhf_Packages
                  MD5: 9106e8e4b3843ebd532ba2b89615a92e
 Description Language: 
                 File: /var/lib/dpkg/status
                  MD5: 9106e8e4b3843ebd532ba2b89615a92e

這個版本試著連上線的時候會發生像是這樣的錯誤訊息:

Oct  4 10:55:58 myserver Tor[991]: http status 400 ("Tor version is insecure or unsupported. Please upgrade!") response from dirserver 1.2.3.4:80. Please correct.

本來想說可以裝 Tor 官方的版本 (官方有提供 apt repository),結果發現官方不支援 Raspberry Pi 一代用的 armhf 了,只好另外找...

然後翻到「http://raspbian.raspberrypi.org/raspbian/pool/main/t/tor/」這邊有看到新版的 deb 檔案,但拉下來後發現 dependency 需要 libssl3,在 bullseye 上面沒辦法跑。

後來在 Reddit 上翻到有人貼出來的 workaround:「How do I update my TOR relay on a 32-bit armhf bullseye system (Raspberry Pi 3) to the latest version?」,方法是去 Debian 那邊挖 bullseye-backport:「Debian -- Package Download Selection -- tor_0.4.7.13-1~bpo11+1_armhf.deb」。

拉下來以後直接 dpkg -i 幹進去,然後重跑 Tor 看 /var/log/syslog 內容,發現就連上了。

不是最新版 0.4.8.x,但至少能用...?