Kartu nama saya menjalankan Linux

Terjemahan artikel dari blog insinyur George Hilliard

Kartu nama saya menjalankan Linux
Dapat diklik

Saya seorang insinyur sistem tertanam. Di waktu senggang, saya sering mencari sesuatu yang dapat digunakan dalam perancangan sistem masa depan, atau sesuatu yang sesuai dengan minat saya.

Salah satu bidang tersebut adalah komputer murah yang dapat menjalankan Linux, dan semakin murah semakin baik. Jadi saya menggali lubang kelinci yang dalam dari prosesor yang tidak jelas.

Saya berpikir, β€œProsesor ini sangat murah sehingga bisa diberikan secara gratis.” Dan setelah beberapa waktu, muncul ide untuk membuat kartu kosong untuk Linux dalam bentuk kartu nama.

Setelah saya memikirkannya, saya memutuskan bahwa itu akan menjadi hal yang sangat keren untuk dilakukan. Aku sudah gergaji elektronik kartu nama untuk ini, dan mereka memiliki berbagai kemampuan menarik, seperti meniru kartu flash, menyalakan bola lampu, atau bahkan transmisi data nirkabel. Namun, saya belum melihat kartu nama dengan dukungan Linux.

Jadi saya menjadikan diri saya satu.

Ini adalah versi produk yang sudah jadi. Komputer ARM minimal lengkap yang menjalankan Linux versi kustom saya yang dibuat dengan Buildroot.

Kartu nama saya menjalankan Linux

Ini memiliki port USB di sudut. Jika Anda menyambungkannya ke komputer, boot akan dilakukan dalam waktu sekitar 6 detik dan terlihat sebagai kartu flash dan port serial virtual yang dapat digunakan untuk masuk ke cangkang kartu. Di flash drive ada file README, salinan resume saya dan beberapa foto saya. Shell memiliki beberapa permainan, Unix klasik seperti Fortune dan Rogue, versi kecil dari permainan 2048 dan penerjemah MicroPython.

Semua ini dilakukan dengan menggunakan chip flash yang sangat kecil sebesar 8 MB. Bootloader muat dalam 256 KB, kernel memakan 1,6 MB, dan seluruh sistem file root memakan 2,4 MB. Oleh karena itu, masih banyak ruang tersisa untuk flash drive virtual. Ada juga direktori home yang dapat ditulis jika ada orang yang ingin menyimpan sesuatu. Ini semua juga disimpan dalam chip flash.

Seluruh perangkat berharga kurang dari $3. Cukup murah untuk diberikan. Jika Anda menerima perangkat seperti itu dari saya, kemungkinan besar saya mencoba membuat Anda terkesan.

Rancang dan bangun

Saya merancang dan merakit semuanya sendiri. Itu pekerjaan saya dan saya menyukainya, dan tantangan terbesarnya adalah menemukan suku cadang yang cukup murah untuk hobi tersebut.

Pilihan prosesor adalah keputusan paling penting yang mempengaruhi biaya dan kelayakan proyek. Setelah melakukan penelitian ekstensif, saya memilih F1C100s, prosesor Allwinner yang relatif kurang dikenal dan memiliki biaya yang optimal (sangat murah). Baik RAM dan CPU terletak dalam paket yang sama. Saya membeli prosesor di Taobao. Semua komponen lainnya dibeli dari LCSC.

Saya memesan papan dari JLC. Mereka membuat 8 eksemplar untuk saya seharga $10. Kualitasnya mengesankan, terutama dari segi harganya; tidak serapi OSHPark, tapi tetap terlihat bagus.

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

Kartu nama saya menjalankan Linux

Ada beberapa masalah pada gelombang pertama. Pertama, konektor USB tidak cukup panjang untuk dipasang dengan aman ke port USB mana pun. Kedua, trek flash dibuat secara tidak benar, tetapi saya menyiasatinya dengan menekuk kontak.

Kartu nama saya menjalankan Linux

Setelah memeriksa semuanya berfungsi, saya memesan sejumlah papan baru; Anda bisa melihat foto salah satunya di awal artikel.

Karena ukuran kecil dari semua komponen kecil ini, saya memutuskan untuk menggunakan penyolderan reflow kompor murah. Saya memiliki akses ke pemotong laser, jadi saya menggunakannya untuk memotong stensil solder dari film laminator. Stensilnya ternyata cukup bagus. Lubang berdiameter 0,2 mm untuk kontak prosesor memerlukan perawatan khusus untuk memastikan produksi berkualitas tinggi - sangat penting untuk memfokuskan laser dengan benar dan memilih kekuatannya.

Kartu nama saya menjalankan Linux
Papan lain berfungsi dengan baik untuk menahan papan sambil mengoleskan pasta.

Saya mengoleskan pasta solder dan memposisikan komponen dengan tangan. Saya memastikan bahwa timbal tidak digunakan di mana pun dalam proses tersebut - semua papan, komponen, dan pasta memenuhi standar RoHS - agar hati nurani saya tidak menyiksa saya ketika saya membagikannya kepada orang-orang.

Kartu nama saya menjalankan Linux
Saya membuat sedikit kesalahan dengan kumpulan ini, tetapi pasta solder memaafkan kesalahan, dan semuanya berjalan baik-baik saja

Setiap komponen membutuhkan waktu sekitar 10 detik untuk memposisikannya, jadi saya mencoba meminimalkan jumlah komponen. Lebih detail mengenai desain peta dapat dibaca di bagian lain artikel rinci saya.

Daftar bahan dan biaya

Saya berpegang pada anggaran yang ketat. Dan kartu nama itu ternyata sesuai keinginan - saya tidak keberatan memberikannya! Tentu saja, saya tidak akan memberikannya kepada semua orang, karena pembuatan setiap salinan membutuhkan waktu, dan waktu saya tidak diperhitungkan dalam biaya kartu nama (semacam gratis).

Komponen
Π¦Π΅Π½Π°

F1C100
$1.42

PCB
$0.80

flashnya 8MB
$0.17

Semua komponen lainnya
$0.49

Total
$2.88

Tentu saja ada juga biaya yang sulit dihitung, seperti pengiriman (karena didistribusikan ke komponen yang ditujukan untuk beberapa proyek). Namun untuk board yang support Linux pasti cukup murah. Perincian ini juga memberikan gambaran bagus tentang berapa biaya yang dikeluarkan perusahaan untuk membuat perangkat di segmen harga terendah: Anda dapat yakin bahwa biaya yang dikeluarkan perusahaan bahkan lebih murah daripada biaya saya!

Kemampuan

Apa yang harus dikatakan? Kartu ini mem-boot Linux yang sangat terkelupas dalam 6 detik. Karena faktor bentuk dan biaya, kartu ini tidak memiliki I/O, dukungan jaringan, atau penyimpanan dalam jumlah besar untuk menjalankan program berat. Namun demikian, saya berhasil menjejalkan banyak hal menarik ke dalam image firmware.

USB

Ada banyak hal keren yang bisa dilakukan dengan USB, tapi saya memilih opsi yang paling sederhana sehingga orang-orang akan lebih mungkin untuk membuatnya berfungsi jika mereka memutuskan untuk mencoba kartu nama saya. Linux memungkinkan kartu berperilaku seperti "perangkat" dengan dukungan Kerangka Gadget. Saya mengambil beberapa driver dari proyek sebelumnya yang menyertakan prosesor ini, jadi saya memiliki akses ke semua fungsi kerangka gadget USB. Saya memutuskan untuk meniru flash drive yang sudah dibuat sebelumnya dan memberikan akses shell melalui port serial virtual.

Shell

Setelah login sebagai root, Anda dapat menjalankan program berikut di konsol serial:

  • nakal: game petualangan penjelajahan bawah tanah Unix klasik;
  • 2048: permainan sederhana tahun 2048 dalam mode konsol;
  • rejeki: keluaran berbagai ucapan sok. Saya memutuskan untuk tidak menyertakan seluruh basis data kutipan di sini untuk memberikan ruang bagi fitur lainnya;
  • mikropython: Penerjemah Python yang sangat kecil.

Emulasi Flash Drive

Selama kompilasi, alat pembangunan 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 flashdisk, cara termudah untuk melakukannya adalah dengan membaca sumber. Ada juga beberapa foto dan resume saya.

Sumber daya

Sumber

Pohon Buildroot saya diposting di GitHub - tiga puluh tiga empat puluh/kartu nama-linux. Ada kode untuk menghasilkan gambar flash NOR, yang diinstal menggunakan mode boot USB prosesor. Ia juga memiliki semua definisi paket untuk game dan program lain yang saya masukkan ke Buildroot setelah semuanya berfungsi. Jika Anda tertarik untuk menggunakan F1C100 dalam proyek Anda, ini akan menjadi titik awal yang bagus (jangan ragu beri saya pertanyaan).
saya menggunakan proyek yang dieksekusi dengan indah Linux v4.9 untuk F1C100s oleh Icenowy, sedikit didesain ulang. Kartu saya berjalan hampir standar v5.2. Ada di GitHub - tiga puluh tiga empat puluh/linux.
Saya rasa saya memiliki port U-Boot terbaik untuk F1C100 di dunia saat ini, dan sebagian juga didasarkan pada karya Icenowy (yang mengejutkan, membuat U-Boot berfungsi dengan baik adalah tugas yang cukup membuat frustrasi). Anda juga bisa mendapatkannya di GitHub - tiga puluh tiga empat puluh/u-boot.

Dokumentasi untuk F1C100s

Saya menemukan sedikit dokumentasi untuk F1C100, dan saya mempostingnya di sini:

Saya mengunggahnya bagi mereka yang penasaran. diagram proyek saya.

Kartu nama saya menjalankan Linux

Kesimpulan

Saya belajar banyak selama pengembangan proyek ini - ini adalah proyek pertama saya yang menggunakan oven solder reflow. Saya juga belajar cara mencari sumber daya untuk komponen dengan dokumentasi yang buruk.

Saya menggunakan pengalaman saya yang ada dengan Linux tertanam dan pengalaman pengembangan papan. Proyek ini bukannya tanpa kekurangan, tetapi menunjukkan semua keahlian saya dengan baik.

Bagi mereka yang tertarik dengan detail bekerja dengan Linux tertanam, saya sarankan membaca rangkaian 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 panggil saya.

Sumber: www.habr.com

Tambah komentar