Linux berjalan di kartu bisnis saya

Terjemahan sebuah artikel dari blog insinyur George Hilliard


Diklik

Saya seorang insinyur sistem tertanam. Di waktu senggang, saya sering mencari apa yang dapat digunakan dalam desain sistem masa depan, atau sesuatu dari kategori minat saya.

Salah satu bidang tersebut adalah komputer murah yang dapat mendukung Linux, dan semakin murah semakin baik. Oleh karena itu, saya mengubur diri dalam lubang kelinci yang dalam dari prosesor yang tidak banyak diketahui.

Saya berpikir: "Prosesor ini sangat murah sehingga praktis bisa dibagikan secara gratis." Dan setelah beberapa saat, muncul ide untuk membuat kartu kosong untuk Linux dalam faktor bentuk kartu nama.

Segera setelah saya memikirkannya, saya memutuskan bahwa itu akan sangat keren untuk dilakukan. Saya telah melihat kartu nama elektronik sebelumnya, dan mereka memiliki berbagai fitur menarik, seperti meniru kartu flash, lampu berkedip, atau bahkan transfer data nirkabel. Namun, saya belum melihat kartu nama dengan dukungan Linux.

Jadi saya membuat sendiri satu.

Ini adalah versi lengkap dari produk. Komputer minimum penuh pada ARM, yang menjalankan versi khusus Linux saya, dibuat menggunakan Buildroot.



Di sudut ia memiliki port USB. Jika Anda menyambungkannya ke komputer, ia dimuat dalam sekitar 6 detik dan itu dapat dilihat sebagai kartu flash dan port serial virtual, di mana Anda dapat memasukkan kulit kartu. Pada flash drive adalah file README, salinan resume saya dan beberapa foto saya. Ada beberapa game di shell, klasik dari Unix seperti fortune and rogue, versi kecil dari game 2048 dan interpreter MicroPython.

Semua ini dilakukan dengan chip flash yang sangat kecil 8 MB. Bootloader muat dalam 256 KB, kernel membutuhkan 1,6 MB, dan seluruh sistem file root - 2,4 MB. Oleh karena itu, masih ada banyak ruang untuk flash drive virtual. Ia juga memiliki direktori home yang dapat ditulis - jika seseorang melakukan sesuatu yang ingin mereka simpan. Ini juga disimpan pada chip flash.

Seluruh perangkat berharga kurang dari $ 3. Cukup murah untuk didistribusikan. Jika Anda menerima perangkat seperti itu dari saya, itu berarti kemungkinan besar saya mencoba mengesankan Anda.

Desain dan Perakitan


Saya merancang dan mengumpulkan semuanya sendiri. Ini adalah pekerjaan saya, dan saya menyukainya, dan sebagian besar kesulitannya adalah menemukan bagian yang cukup murah untuk hobi semacam itu.

Memilih prosesor adalah keputusan paling penting yang memengaruhi biaya dan kelayakan proyek. Setelah penelitian aktif, saya memilih F1C100s, prosesor Allwinner yang relatif kurang dikenal, dioptimalkan biaya (mis. Murah sekali). Dalam satu kasus keduanya adalah RAM dan CPU. Saya membeli prosesor di Taobao. Semua komponen lain dibeli di LCSC.

Saya memesan papan dari JLC. Untuk $ 8 saya membuat 10 salinan. Kualitas mereka mengesankan, terutama untuk harganya; Tidak serapi OSHPark, tetapi masih terlihat bagus.

Saya membuat batch pertama matte hitam. Mereka tampak cantik, tetapi sangat mudah kotor.



Ada beberapa masalah dengan batch pertama. Pertama, konektor USB tidak cukup panjang untuk masuk dengan aman ke port USB mana pun. Kedua, flash track tidak dibuat dengan benar, tetapi saya mengelak dengan menekuk kontak.



Setelah memeriksa semuanya dalam pekerjaan, saya memesan batch baru papan; Anda dapat melihat foto salah satunya di awal artikel.

Karena ukuran kecil dari semua komponen kecil ini, saya memutuskan untuk menggunakan reflow solder menggunakan kompor murah . Saya memiliki akses ke pemotong laser, jadi saya memotong stensil solder dari film untuk dilapisinya. Stensilnya ternyata cukup bagus. Lubang-lubang untuk kontak prosesor dengan diameter 0,2 mm membutuhkan perawatan khusus untuk pembuatan berkualitas tinggi - sangat penting untuk memfokuskan laser dengan benar dan memilih daya.


Papan lain bagus untuk memegang papan saat mengoleskan pasta.

Saya menerapkan pasta solder dan mengatur komponen secara manual. Saya memastikan bahwa timah tidak digunakan di mana pun dalam proses - semua papan, komponen dan tempel sesuai dengan RoHS - sehingga saya tidak akan tersiksa oleh hati nurani ketika saya membagikannya kepada orang-orang.


Saya sedikit merindukan bets ini, tetapi pasta solder memaafkan kesalahan, dan semuanya berjalan dengan baik

Setiap komponen membutuhkan waktu sekitar 10 detik untuk diposisikan, jadi saya mencoba untuk membuat jumlahnya minimal. Rincian lebih lanjut tentang mendesain peta dapat ditemukan di artikel terperinci saya yang lain.

Daftar bahan dan biaya


Saya menggunakan anggaran yang ketat. Dan kartu nama ternyata seperti yang dimaksudkan - saya tidak keberatan memberikannya! Tentu saja, saya tidak akan memberikannya kepada semua orang dan semua orang, karena waktu dihabiskan untuk produksi setiap salinan, dan waktu saya tidak diperhitungkan dalam biaya kartu nama (ini agak gratis).

KomponenHarga
F1C100$ 1,42
PCB$ 0,80
8MB flash$ 0,17
Semua komponen lainnya$ 0,49
Total$ 2,88


Secara alami, masih ada pengeluaran yang sulit untuk dihitung, seperti pengiriman (karena didistribusikan di antara komponen yang ditujukan untuk beberapa proyek). Namun, untuk papan dengan dukungan Linux, ini pasti cukup murah. Juga, uraian ini memberikan ide yang bagus tentang berapa biaya perusahaan untuk memproduksi perangkat dari segmen harga terendah: Anda dapat yakin bahwa biaya perusahaan bahkan lebih murah daripada saya!

Kemungkinan


Apa yang harus saya katakan? Peta memuat Linux yang sangat terpotong dalam 6 detik. Karena faktor bentuk dan biaya, kartu tidak memiliki I / O, dukungan jaringan, atau sejumlah penyimpanan serius untuk meluncurkan program berat. Meskipun demikian, saya berhasil memasukkan banyak hal menarik ke dalam gambar firmware.

USB


Dengan USB, Anda dapat menemukan banyak hal menarik, tetapi saya memilih opsi paling sederhana, sehingga dengan probabilitas tinggi orang akan bekerja jika mereka memutuskan untuk mencoba kartu bisnis saya. Linux memungkinkan kartu berperilaku sebagai "perangkat" dengan dukungan untuk Kerangka Gadget . Saya mengambil beberapa driver dari proyek sebelumnya yang menyertakan prosesor ini, jadi saya memiliki akses ke semua fungsionalitas kerangka gadget USB. Saya memutuskan untuk meniru flash drive yang dibuat sebelumnya dan memberikan akses ke shell melalui port serial virtual.

Shell


Setelah login sebagai root, Anda dapat menjalankan program berikut di konsol serial:
  • rogue: game petualangan dungeon Unix klasik;
  • 2048: game sederhana pada tahun 2048 dalam mode konsol;
  • rejeki: kesimpulan dari berbagai perkataan menyedihkan. Saya memutuskan untuk tidak memasukkan seluruh basis kutipan di sini untuk meninggalkan ruang untuk fungsi lain;
  • micropython : interpreter Python yang sangat kecil.


Emulasi Drive Flash


Pada waktu kompilasi, alat build menghasilkan gambar FAT32 kecil dan menambahkannya sebagai salah satu partisi UBI. Subsistem gadget Linux menghadirkan PC-nya sebagai perangkat penyimpanan.

Jika Anda tertarik untuk melihat apa yang muncul di flash drive, maka cara termudah untuk melakukan ini adalah membiasakan diri dengan sumbernya . Ada juga beberapa foto dan resume saya.

Sumber daya


Kode sumber


Pohon Buildroot saya diunggah ke GitHub - tigapuluh tiga / businesscard-linux . Ada kode untuk menghasilkan gambar flash NOR, yang diatur menggunakan mode unduhan USB prosesor. Ini juga memiliki semua definisi paket untuk game dan program lain yang saya masukkan ke dalam Buildroot setelah berhasil. Jika Anda ingin menggunakan F1C100 di proyek Anda, ini akan menjadi titik awal yang bagus (jangan ragu untuk bertanya kepada saya ).
Saya menggunakan proyek Linux v4.9 yang dieksekusi dengan indah untuk F1C100s oleh Icenowy, mengulanginya sedikit. Hampir standar v5.2 berfungsi di kartu saya. Dia berbaring di GitHub - tigapuluh tiga / linux .
Saya pikir hari ini saya memiliki port U-Boot terbaik untuk F1C100 di dunia, dan sebagian didasarkan pada pekerjaan Icenowy (secara tak terduga, membuat U-Boot berfungsi sebagaimana mestinya menjadi tugas yang sangat tidak menyenangkan). Anda juga dapat menggunakan GitHub - tigapuluhforty / u-boot .

Dokumentasi untuk F1C100s


Saya menemukan dokumentasi F1C100 yang agak langka, dan saya mempostingnya di sini:


Bagi yang penasaran, saya mengunggah garis besar proyek saya .



Kesimpulan


Saya belajar banyak hal selama pengembangan proyek ini - ini adalah proyek pertama saya, di mana saya menggunakan tungku solder reflow. Saya juga belajar bagaimana menemukan sumber daya untuk komponen dengan dokumentasi yang buruk.

Saya menggunakan pengalaman saya dengan Linux tertanam dan pengalaman dalam mengembangkan papan. Proyek ini bukan tanpa cacat, tetapi menunjukkan semua keterampilan saya dengan baik.

Bagi mereka yang tertarik dengan detail bekerja dengan Linux tertanam, saya sarankan membaca seri artikel saya tentang ini: Menguasai Linux Tertanam . Di sana saya berbicara secara rinci tentang cara membuat perangkat lunak dan perangkat keras dari awal untuk sistem Linux yang kecil dan murah, mirip dengan kartu bisnis saya.

Source: https://habr.com/ru/post/id482110/


All Articles