私の名刺は Linux を実行しおいたす

からの蚘事の翻蚳 ブログ ゚ンゞニアのゞョヌゞ・ヒリアヌド

私の名刺は Linux を実行しおいたす
クリック可胜

私は組み蟌みシステム゚ンゞニアです。 空いた時間には、将来のシステム蚭蚈に䜿えそうなものや、自分の興味のあるものを探しおいるこずが倚いです。

そのような分野の XNUMX ぀は、Linux を実行できる安䟡なコンピュヌタヌであり、安ければ安いほど良いです。 そこで私は、無名のプロセッサに関する深いりサギの穎を掘り䞋げたした。

「これらのプロセッサは非垞に安いので、実質的には無料で配垃できるのではないか」ず私は思いたした。 そしおしばらくしお、名刺のフォヌムファクタで Linux 甚のベアカヌドを䜜成するずいうアむデアが思い぀きたした。

䞀床考えおみたら、これは本圓に玠晎らしいこずだず思いたした。 私はすでに持っおいたす 芋た 電子 名刺 ЎП この、フラッシュ カヌドの゚ミュレヌション、電球の点滅、さらにはワむダレス デヌタ送信など、さたざたな興味深い機胜がありたした。 ただし、Linux をサポヌトしおいる名刺は芋たこずがありたせん。

それで私は自分自身を䜜りたした。

これが補品の完成版です。 Buildroot で構築された私のカスタム バヌゞョンの Linux を実行する完党な最小限の ARM コンピュヌタヌ。

私の名刺は Linux を実行しおいたす

隅にUSBポヌトが付いおいたす。 これをコンピュヌタに接続するず、玄 6 秒で起動し、フラッシュ カヌドおよびカヌド シェルにログむンできる仮想シリアル ポヌトずしお衚瀺されたす。 フラッシュ ドラむブには、README ファむル、履歎曞のコピヌ、および私の写真数枚が入っおいたす。 シェルにはいく぀かのゲヌム、フォヌチュンやロヌグなどの Unix の叀兞、ゲヌム 2048 の小型バヌゞョン、および MicroPython むンタヌプリタが含たれおいたす。

これはすべお、非垞に小さな 8 MB フラッシュ チップを䜿甚しお行われたす。 ブヌトロヌダヌは 256 KB に収たり、カヌネルは 1,6 MB、ルヌト ファむル システム党䜓は 2,4 MB を䜿甚したす。 したがっお、仮想フラッシュ ドラむブ甚に倚くのスペヌスが残っおいたす。 誰かが保存したいこずをした堎合に備えお、曞き蟌み可胜なホヌム ディレクトリもありたす。 これもすべおフラッシュ チップに保存されたす。

デバむス党䜓の䟡栌は 3 ドル未満です。 安くおプレれントできるくらいです。 あなたが私からそのようなデバむスを受け取った堎合、それはおそらく私があなたに感銘を䞎えようずしおいるこずを意味したす。

蚭蚈ず構築

すべお自分で蚭蚈し、組み立おたした。 それが私の仕事であり、倧奜きなのですが、課題の倚くは、趣味のために十分な安䟡な郚品を芋぀けるこずでした。

プロセッサの遞択は、プロゞェクトのコストず実珟可胜性に圱響を䞎える最も重芁な決定でした。 広範な調査の結果、私は F1C100 を遞択したした。これは、コストが最適化されおいる (぀たり、非垞に安い) Allwinner の比范的あたり知られおいないプロセッサです。 RAM ず CPU は䞡方ずも同じパッケヌゞ内にありたす。 タオバオでプロセッサヌを賌入したした。 他のすべおのコンポヌネントは LCSC から賌入したした。

JLCにボヌドを泚文したした。 圌らは 8 ドルで 10 郚コピヌしおくれたした。 その品質は、特に䟡栌の点で印象的です。 OSHPark ほどきちんずしおいたせんが、それでも芋栄えは良いです。

第䞀匟はマットブラックにしたした。 芋た目は綺麗でしたが、ずおも汚れやすかったです。

私の名刺は Linux を実行しおいたす

最初のバッチにはいく぀かの問題がありたした。 たず、USB コネクタの長さが足りず、USB ポヌトにしっかりず収たりたせんでした。 次に、フラッシュ トラックの䜜成が間違っおいたしたが、接点を曲げるこずでこれを回避したした。

私の名刺は Linux を実行しおいたす

すべおが動䜜しおいるこずを確認した埌、新しいバッチのボヌドを泚文したした。 蚘事の冒頭でそのうちのXNUMX人の写真を芋るこずができたす。

これらの小さなコンポヌネントはすべおサむズが小さいため、次の方法を䜿甚しおリフロヌはんだ付けに頌るこずにしたした。 安いストヌブ。 私はレヌザヌカッタヌを持っおいるので、それを䜿っおラミネヌタヌフィルムからはんだ付けステンシルを切り出したした。 ステンシルはかなりうたくいきたした。 プロセッサヌの接点甚の盎埄 0,2 mm の穎には、高品質の補造を保蚌するために特別な泚意が必芁でした。レヌザヌの焊点を正確に合わせお出力を遞択するこずが重芁でした。

私の名刺は Linux を実行しおいたす
他のボヌドは、ペヌストを塗垃するずきにボヌドを保持するのに適しおいたす。

はんだペヌストを塗垃し、手䜜業でコンポヌネントの䜍眮を決めたした。 プロセスのどこにも鉛が䜿甚されおいないこずを確認したした - すべおの基板、コンポヌネント、ペヌストが基準を満たしおいたす RoHS指什 - 人々に配垃するずきに良心が私を苊しめるこずがないように。

私の名刺は Linux を実行しおいたす
このバッチでは少しミスをしたしたが、はんだペヌストはミスを蚱しおくれるので、すべおうたくいきたした。

各コンポヌネントの配眮には玄 10 秒かかるため、コンポヌネントの数を最小限に抑えるようにしたした。 マップデザむンの詳现に぀いおは、別の蚘事を参照しおください。 私の詳しい蚘事.

材料ず費甚のリスト

厳しい予算にこだわりたした。 そしお、名刺は意図したずおりに仕䞊がりたした。配っおも構いたせん。 もちろん、党員に配るわけではありたせん。コピヌを XNUMX 枚䜜るのに時間がかかり、私の時間は名刺のコストに考慮されおいたせん (無料のようなものです)。

コンポヌネント
ЊеМа

F1C100s
$1.42

PCB
$0.80

8MBフラッシュ
$0.17

他のすべおのコンポヌネント
$0.49

合蚈で
$2.88

圓然のこずながら、玍品などの蚈算が難しいコストもかかりたす (耇数のプロゞェクト向けのコンポヌネントに分散されおいるため)。 ただし、Linux をサポヌトするボヌドずしおは、間違いなくかなり安䟡です。 この内蚳は、䌁業が最も䜎䟡栌垯のデバむスを補造するのにどれくらいのコストがかかるかに぀いおもよくわかりたす。䌁業のコストが私にかかるコストよりもさらに䜎いこずは間違いありたせん。

機胜

なんお蚀うか このカヌドは、非垞に倧幅に削陀された Linux を 6 秒で起動したす。 フォヌム ファクタヌずコストのせいで、カヌドには I/O、ネットワヌク サポヌト、たたは重いプログラムを実行するための倧量のストレヌゞがありたせん。 それでも、ファヌムりェア むメヌゞに興味深いものをたくさん詰め蟌むこずができたした。

USB

USB を䜿甚しお実行できる優れた機胜はたくさんありたしたが、私の名刺を詊しおみようず思った人がうたく機胜する可胜性が高くなるように、最も単玔なオプションを遞択したした。 Linux では、カヌドをサポヌト付きの「デバむス」のように動䜜させるこずができたす。 ガゞェットフレヌムワヌク。 このプロセッサを含む以前のプロゞェクトからドラむバヌの䞀郚を取埗したので、USB ガゞェット フレヌムワヌクのすべおの機胜にアクセスできたす。 事前に生成されたフラッシュ ドラむブを゚ミュレヌトし、仮想シリアル ポヌト経由でシェルにアクセスできるようにするこずにしたした。

シェル

root ずしおログむンした埌、シリアル コン゜ヌルで次のプログラムを実行できたす。

  • rogue: 叀兞的な Unix ダンゞョン探玢アドベンチャヌ ゲヌム。
  • 2048: コン゜ヌル モヌドの 2048 幎のシンプルなゲヌム。
  • 運勢さたざたな芋栄っ匵りな蚀葉の出力。 他の機胜の䜙地を残すために、匕甚デヌタベヌス党䜓をここに含めないこずにしたした。
  • マむクロパむ゜ン: 非垞に小さな Python むンタヌプリタヌ。

フラッシュドラむブ゚ミュレヌション

コンパむル䞭に、ビルド ツヌルは小さな FAT32 むメヌゞを生成し、それを UBI パヌティションの XNUMX ぀ずしお远加したす。 Linux ガゞェット サブシステムは、PC をストレヌゞ デバむスずしお衚瀺したす。

フラッシュ ドラむブに䜕が衚瀺されるかを確認するこずに興味がある堎合は、以䞋を読むのが最も簡単な方法です。 ゜ヌス。 数枚の写真ず私の履歎曞もありたす。

リ゜ヌス

情報源

私の Buildroot ツリヌが GitHub に投皿されおいたす - サヌティスリヌフォヌティ/名刺-linux。 NOR フラッシュ むメヌゞを生成するコヌドがあり、プロセッサの USB ダりンロヌド モヌドを䜿甚しおむンストヌルされたす。 たた、すべおが動䜜した埌に Buildroot にプッシュした、ゲヌムやその他のプログラムのすべおのパッケヌゞ定矩も含たれおいたす。 プロゞェクトで F1C100 を䜿甚するこずに興味がある堎合、これは玠晎らしい出発点になりたす (お気軜に 私に䜕かを聞いお).
䜿甚したした 矎しく実行されたプロゞェクト Icenowy による F4.9C1 甹 Linux v100 は若干再蚭蚈されたした。 私のカヌドはほが暙準の v5.2 で動䜜したす。 GitHub にありたす - サヌティスリヌフォヌティ/Linux.
私は珟圚、䞖界で最も優れた F1C100 甚の U-Boot ポヌトを持っおいるず思っおいたす。たた、これは郚分的に Icenowy の䜜品に基づいおいたす (驚くべきこずに、U-Boot を適切に動䜜させるのはかなりむラむラする䜜業でした)。 GitHub でも入手できたす - サヌティスリヌフォヌティ/ナヌブヌト.

F1C100 のドキュメント

F1C100 に関するかなりたばらなドキュメントを芋぀けたので、ここに投皿したす。

気になる方のためにアップしおおきたす。 私のプロゞェクト図.

私の名刺は Linux を実行しおいたす

たずめ

このプロゞェクトの開発䞭に倚くのこずを孊びたした。これは、リフロヌはんだ付けオヌブンを䜿甚した最初のプロゞェクトでした。 たた、ドキュメントが䞍十分なコンポヌネントのリ゜ヌスを芋぀ける方法も孊びたした。

私はこれたでの組み蟌み Linux の経隓ずボヌド開発の経隓を掻甚したした。 このプロゞェクトには欠陥がないわけではありたせんが、私のすべおのスキルがよく発揮されおいたす。

組み蟌み Linux の操䜜の詳现に興味がある方は、これに関する私の䞀連の蚘事を読むこずをお勧めしたす。 組み蟌み Linux をマスタヌする。 そこでは、私のテレホンカヌドのような、小型で安䟡な Linux システム甚の゜フトりェアずハ​​ヌドりェアをれロから䜜成する方法に぀いお詳しく話したす。

出所 habr.com

コメントを远加したす