我的名片正在運行 Linux

文章翻譯自 博客文章 工程師喬治·希利亞德

我的名片正在運行 Linux
可點擊

我是嵌入式系統工程師。 在空閒時間,我經常尋找一些可以用於未來系統設計的東西,或者一些來自我興趣的東西。

其中一個領域是可以運行 Linux 的廉價計算機,而且越便宜越好。 所以我挖了一個深藏不露的處理器的兔子洞。

我想,“這些處理器太便宜了,幾乎可以免費贈送。” 一段時間後,我產生了以名片的形式為 Linux 製作裸卡的想法。

一旦我想到這一點,我就決定這將是一件非常酷的事情。 我已經 看過 電子的 商業名片,並且它們具有各種有趣的功能,例如模擬閃存卡、閃爍燈泡,甚至無線資料傳輸。 不過,我還沒見過支援 Linux 的名片。

所以我就給自己做了一個。

這是產品的成品版本。 一台完整的最小 ARM 計算機,運行我使用 Buildroot 建立的自訂版本的 Linux。

我的名片正在運行 Linux

它的角落有一個 USB 連接埠。 如果將其連接到計算機,它會在大約 6 秒內啟動,並顯示為閃存卡和虛擬串行端口,您可以透過該虛擬串行端口登入卡殼。 隨身碟上有一個自述文件、一份我的簡歷和幾張我的照片。 該 shell 包含多種遊戲,例如 Fortune 和 Rogue 等 Unix 經典遊戲、遊戲 2048 的小型版本以及 MicroPython 解釋器。

所有這一切都是使用非常小的 8 MB 快閃記憶體晶片完成的。 引導程式大小為 256 KB,核心佔用 1,6 MB,整個根檔案系統佔用 2,4 MB。 因此,還有大量的空間留給虛擬閃存驅動器。 還有一個可寫入的主目錄,以防任何人執行他們想要保存的任何操作。 這也全部保存在快閃記憶體晶片上。

整個設備的成本不到 3 美元。 它足夠便宜,可以贈送。 如果您從我這裡收到了這樣的設備,則表示我很可能是想給您留下深刻的印象。

設計與建造

我自己設計並組裝了所有東西。 這是我的工作,我喜歡它,大部分挑戰是為這個愛好找到足夠便宜的零件。

處理器的選擇是影響專案成本和可行性的最重要決策。 經過廣泛的研究,我選擇了 F1C100s,這是一款來自 Allwinner 的相對鮮為人知的處理器,它經過了成本優化(即非常便宜)。 RAM 和 CPU 位於同一包裝中。 我在淘寶上買了處理器。 所有其他組件均購自 LCSC。

我從 JLC 訂購了主機板。 他們花了 8 美元為我印了 10 份。 他們的品質令人印象深刻,尤其是價格; 不像 OSHPark 那麼整潔,但看起來還是不錯的。

我做了第一批霧面黑色。 它們看起來很漂亮,但很容易弄髒。

我的名片正在運行 Linux

第一批產品存在一些問題。 首先,USB 連接器不夠長,無法牢固地插入任何 USB 連接埠。 其次,閃存軌道製作不正確,但我透過彎曲觸點解決了這個問題。

我的名片正在運行 Linux

檢查一切正常後,我訂購了一批新的板子; 您可以在文章開頭看到其中一張照片。

由於所有這些小元件的尺寸都很小,我決定採用回流焊接 便宜的爐子。 我可以使用雷射切割機,因此我用它從層壓膜上切下焊接模板。 模板效果非常好。 處理器觸點的 0,2 毫米直徑孔需要特別小心,以確保高品質的製造 - 正確聚焦雷射並選擇其功率至關重要。

我的名片正在運行 Linux
其他板子可以很好地在塗抹漿料時固定板。

我塗上焊膏並用手定位組件。 我確保在此過程中的任何地方都沒有使用鉛 - 所有電路板、組件和焊膏均符合標準 RoHS指令 -這樣當我把它們分發給人們時我的良心就不會折磨我。

我的名片正在運行 Linux
我在這批產品中犯了一個小錯誤,但是焊膏可以原諒錯誤,一切都進展順利

每個組件大約需要 10 秒才能定位,因此我嘗試將組件數量保持在最低限度。 有關地圖設計的更多詳細資訊可以閱讀另一篇文章 我的詳細文章.

材料清單及費用

我堅持嚴格的預算。 名片的效果正如預期的那樣——我不介意把它送人! 當然,我不會把它發給所有人,因為製作每份都需要時間,而我的時間並沒有計入名片的費用中(有點免費)。

部件
Цена

F1C100s
$1.42

PCB
$0.80

8MB快閃記憶體
$0.17

所有其他組件
$0.49

在總
$2.88

當然,還有一些難以計算的成本,例如交付成本(因為它分佈在多個專案的元件中)。 不過,對於支援Linux的主機板來說,它絕對是相當便宜的。 這種細分也很好地了解了公司在最低價格段製造設備的成本:你可以肯定,公司的成本甚至比我的成本還低!

功能

說什麼? 該卡可在 6 秒內啟動嚴重剝離的 Linux。 由於外形尺寸和成本的原因,該卡沒有 I/O、網路支援或任何用於運行繁重程式的大量儲存空間。 儘管如此,我還是成功地將一些有趣的東西塞進了韌體鏡像中。

USB

使用 USB 可以完成很多很酷的事情,但我選擇了最簡單的選項,這樣如果人們決定嘗試我的名片,他們就更有可能讓它工作。 Linux 允許卡像一個「設備」一樣運行,並提供支持 小工具框架。 我從之前包含該處理器的專案中獲取了一些驅動程序,因此我可以存取 USB 小工具框架的所有功能。 我決定模擬預先產生的快閃磁碟機並透過虛擬序列埠提供 shell 存取權限。

以root身分登入後,您可以在序列控制台上執行以下程式:

  • rogue:一款經典的 Unix 地牢爬行冒險遊戲;
  • 2048:控制台模式下的 2048 簡單遊戲;
  • 運勢:各種造作說法的輸出。 我決定不在這裡包含整個引文資料庫,以便為其他功能留出空間;
  • 微蟒:一個非常小的Python解釋器。

快閃記憶體驅動器仿真

在編譯過程中,建置工具會產生一個小的 FAT32 映像並將其新增為 UBI 分割區之一。 Linux Gadget Subsystem 將他的 PC 呈現為儲存裝置。

如果您有興趣查看隨身碟上顯示的內容,最簡單的方法是閱讀 來源。 還有幾張照片和我的履歷。

Ресурсы

來源

我的 Buildroot 樹發佈在 GitHub 上 - 三十三四十/名片-Linux。 有用於產生 NOR 快閃記憶體映像的程式碼,該程式碼是使用處理器的 USB 下載模式安裝的。 它還包含遊戲和其他程式的所有包定義,我在一切正常後將其推送到 Buildroot 中。 如果您有興趣在專案中使用 F1C100,這將是一個很好的起點(隨意 問我問題).
我用了 精美執行的項目 Icenowy 的 F4.9C1s Linux v100,稍作重新設計。 我的卡運行幾乎標準的 v5.2。 它在 GitHub 上 - 三三四十/linux.
我認為我擁有當今世界上用於F1C100 的最好的U-Boot 移植,而且它也部分基於Icenowy 的工作(令人驚訝的是,讓U-Boot 正常工作是一項相當令人沮喪的任務) 。 您也可以在 GitHub 上取得它 - 三三四十/u-boot.

F1C100 的文檔

我發現 F1C100 的文檔相當稀疏,我將其發佈在這裡:

我上傳給那些好奇的人。 我的專案圖.

我的名片正在運行 Linux

結論

在這個專案的開發過程中我學到了很多東西——這是我第一個使用回焊爐的專案。 我還學習如何為文檔品質較差的元件尋找資源。

我利用了我現有的嵌入式 Linux 經驗和主機板開發經驗。 該專案並非沒有缺陷,但它很好地展示了我的所有技能。

對於那些對使用嵌入式 Linux 的詳細資訊感興趣的人,我建議閱讀我的相關文章系列: 掌握嵌入式Linux。 在那裡,我詳細討論瞭如何從頭開始為小型且廉價的 Linux 系統創建軟體和硬件,類似於我的名片。

來源: www.habr.com

添加評論