- +1
真工程師:20塊錢做了張“名片”,可以跑Linux和Python
原創: Synced 機器之心
機器之心報道
參與:思源、杜偉、澤南
對于一個工程師來說,如何在一張名片上宣告自己的實力?在上面制造一臺完整的計算機說不定是個好主意。

這一頗具極客風的創意引來了社交網絡上人們的廣泛推崇,他的文章在 HackerNews 上出現還不到一天,點贊量就超過了 2000。
制作這樣一張名片,除了需要有足夠的理論知識以外,所需的零件可以在淘寶上買到(是的,這位美國小哥就是這么做的),一張名片的成本大約 20 元人民幣。
讓我們看看他是如何做到的。
作為一名嵌入式系統工程師,George Hilliard 一直在追尋完美的設計,其中之一就是最簡潔的 Linux 系統計算機。他一直在海量處理器型號中尋找最優解,最終發現了新的大陸。他對自己說:「這些處理器便宜得就像白送。」很快產生了用它們來制作可以運行 Linux 的名片的想法。
此前,不少極客先驅曾經在名片上發揮了自己的創意,其中包括 U 盤名片、帶閃光燈的名片,甚至帶無線電首發功能的名片。不過還從來沒有可以運行 Linux 系統的名片。
所以 George 自己動手做了一個:


所有這些都是在一個容量僅有 8MB 的閃存卡上實現的。Bootloader 的大小為 256KB,內核為 1.6MB,整個根文件系統用掉了 2.4MB。所以裝一個系統綽綽有余。它還包含了一個可寫入的主目錄,以備有人想在上面存入什么東西。
最后,一張名片的成本被控制在人民幣 20 元左右,對于一臺電腦來說,這顯得足夠便宜。
名片設計是件「技術活」
George Hilliard 自己設計并制作了整張名片,這雖然是作者的本職工作,但要找到足夠便宜的元件還是非常麻煩的。
處理器的選擇是最重要的部分,它會控制成本并確定整個項目是可行的。在一系列調研后,George 選擇了 F1C100s,它是 Allwinner 出品的一塊賊便宜的芯片,它在成本優化上下足了功夫。這塊芯片集成了 RAM 與 CPU,在功能上至少已經滿足要求了。
沒想到的是,George 小哥哥竟然是在淘寶上買的 F1C100s,其它元器件都是在 LCSC 上買的。
George 使用 JLC 制作了 PCB 板子,大概只需要 56 塊錢就能做 10 份。George 表示他對 JCL 制作的板材印象深刻,它們雖然不像 OSHPark 制作的那么好,但是質量也還不錯,重點是價格實惠。第一次做出來的電路板是啞光的黑色,它帶有一點指紋的磁感。
在第一次制作電路板時還遇到了一點麻煩:首先,USB 端口不夠長,因此很難與更多的 USB 接口連接;其次,flash footprint 是錯誤的,George 通過手動把針腳壓到元件后面。



這樣的名片多少錢?
前面 George 已經盡可能降低成本了,他認為現在已經足夠便宜,即使將名片發給別人也不會心疼。當然,也只有重要的結識對象才會收到這樣的名片,畢竟所有元件都要你一個個裝配。下面所有的成本都沒有考慮裝配時間,動手能力強的讀者們可以考慮自己做一個。

名片的性能怎么樣
嗯,它在 6 秒內就啟動了一個超級簡化的 Linux 系統。因為格式和成本等因素,該名片是沒有 I/O、聯網模塊,以及其它占資源比較大的程序。不過不管怎么樣,George 還是將一些有趣的應用拷進了固件鏡像文件。
USB
我們能通過 USB 做很多有意思的事,但作者特意令名片保持非常精簡的狀態,我們可以在電腦上做一些嘗試。Linux 可以讓我們像設備一樣使用一些小工具,作者將該芯片之前的一些開發工作也傳到了名片內,所以能有 USB 小工具框架的完整功能。George 決定模擬一個預生成的閃存驅動器,并通過虛擬串行端口提供 shell 服務。
Shell
在登錄為 root 用戶后,我們可以運行所有模擬串行控制臺:
rogue:經典的 Unix 游戲《地牢爬蟲》;
2048:控制臺版的 2048 游戲;
fortune:各種名人名言,為了給其它應用節約空間,其并不包含完整的數據庫;
micropython:一個非常輕量的 Python 解釋器。
模擬閃存驅動
在編譯的過程中,構建工具可以生成一個很小的 FAT32 鏡像,并將其加到 UBI 分區中。正如之前描述的,Linux 小工具子系統會將其作為一個儲存設備提供給 PC。如果你希望看看閃存驅動到底發生了什么,那么最簡單的就是看看源代碼,它里面有作者的一些簡歷與介紹。
閃驅源碼地址:https://github.com/thirtythreeforty/businesscard-linux/tree/master/package/businesscard-flashdrive/files
制作這種名片需要哪些資源?
在制作電路板名片的過程中,George 使用了 F1C100s 芯片,并在上面運行主流的 Linux 5.2 版本。此外,他還提供了一些有關 F1C100s 芯片的文檔,供讀者借鑒。
源代碼
George 已經在 GitHub 上開源了 Buildroot tree,讀者可以自行查看。Buildroot tree 包含生成 NOR flash 鏡像的代碼,然后通過處理器的 USB 下載模式進行安裝。此外,Buildroot tree 還包含游戲和其他好用的軟件包,比如為 Buildroot 添加 fortune 軟件。
如果你想在項目中使用 F1C100s 芯片,則是一個很好的開始(如有問題,請隨時聯系)。
Buildroot tree 項目地址:https://github.com/thirtythreeforty/businesscard-linux
此外,George 重定了 Icenowy 發布的 F1C100s 開發工作,其可以運行 Linux 4.9 版本。George 的名片在接近主流的 5.2 版本上運行,其中對補丁進行了修補和調試。
Icenowy/linux 項目地址:https://github.com/Icenowy/linux/tree/f1c100s
thirtythreeforty/linux 項目地址:https://github.com/thirtythreeforty/linux/tree/f1c100s-v5.2.4
對于 F1C100s 芯片,George 相信自己擁有目前最好的 U-Boot 配置編譯端口,這些再次基于 Icenowy 的部分工作。
U-Boo 項目地址:https://github.com/thirtythreeforty/u-boot/tree/f1c100s-v2019.04
F1C100s 文檔
George 找到了以下一些關于 F1C100s 的文檔:
Allwinner F1C100s Datasheet (提供插腳引線和一般信息):https://www.thirtythreeforty.net/media/F1C100s_Datasheet_V1.0.pdf;
Allwinner F1C600 Reference Manual(提供 F1C600 的寄存器定義,它是 F1C100s 重貼商標后的改進版,支持 Linux):https://www.thirtythreeforty.net/media/Allwinner_F1C600_User_Manual_V1.0.pdf;
schematic for Sipeed's Lichee Nano(這是 George 使其軟件順利運行所使用的開發板):http://dl.sipeed.com/LICHEE/Nano/。
最后,如下圖所示,George 上傳了制作電路板名片的原理圖。

有網友評論道:「對我來說令人難以置信的是,這樣一塊成本 1.42 美元(約合人民幣 10 元)的芯片幾乎包含了帶動 Linux 的所有必要硬件:500MHz 的 CPU、32MB SDRAM、2D GPU、SD/MMC 支持以及 USB 控制器。他們都封裝在一塊 10mm×10mm 的微小芯片里。這讓我不由得想入坑嵌入式開發。」
項目感悟
George 表示自己從這個名片項目中學到了很多,這是他首次使用回流焊來回流元器件的項目。此外,對于一些缺少文檔的元器件,George 還必須學習找到必需的資源。
在項目開展過程中,George 借鑒了其有關嵌入式 Linux 和設計 PCB 的經驗。項目并非完全沒有瑕疵,但體現了他的能力。此外,George 表示他正致力于如何從零開始為電路板名片等小型、廉價的 Linux 系統構建硬件和軟件。
參考鏈接:https://www.thirtythreeforty.net/posts/2019/12/my-business-card-runs-linux/
原標題:《真工程師:20塊錢做了張「名片」,可以跑Linux和Python》
本文為澎湃號作者或機構在澎湃新聞上傳并發布,僅代表該作者或機構觀點,不代表澎湃新聞的觀點或立場,澎湃新聞僅提供信息發布平臺。申請澎湃號請用電腦訪問http://renzheng.thepaper.cn。





- 報料熱線: 021-962866
- 報料郵箱: news@thepaper.cn
互聯網新聞信息服務許可證:31120170006
增值電信業務經營許可證:滬B2-2017116
? 2014-2025 上海東方報業有限公司