Kad perniagaan saya menjalankan Linux

Terjemahan artikel daripada post blog jurutera George Hilliard

Kad perniagaan saya menjalankan Linux
Boleh diklik

Saya seorang jurutera sistem terbenam. Pada masa lapang saya, saya sering mencari sesuatu yang boleh digunakan dalam reka bentuk sistem masa hadapan, atau sesuatu daripada minat saya.

Satu kawasan sedemikian ialah komputer murah yang boleh menjalankan Linux, dan lebih murah lebih baik. Jadi saya menggali lubang arnab dalam pemproses yang tidak jelas.

Saya fikir, "Pemproses ini sangat murah sehingga boleh diberikan secara percuma." Dan selepas beberapa lama, idea datang kepada saya untuk membuat kad kosong untuk Linux dalam faktor bentuk kad perniagaan.

Sebaik sahaja saya memikirkannya, saya memutuskan ia akan menjadi perkara yang sangat menarik untuk dilakukan. saya sudah telah melihat elektronik kad perniagaan kepada ia, dan mereka mempunyai pelbagai keupayaan menarik, seperti meniru kad denyar, mentol lampu berkelip atau penghantaran data tanpa wayar. Walau bagaimanapun, saya tidak melihat kad perniagaan dengan sokongan Linux.

Jadi saya buat sendiri.

Ini adalah versi siap produk. Komputer ARM minimum lengkap yang menjalankan versi tersuai saya Linux yang dibina dengan Buildroot.

Kad perniagaan saya menjalankan Linux

Ia mempunyai port USB di sudut. Jika anda menyambungkannya ke komputer, ia but dalam kira-kira 6 saat dan kelihatan sebagai kad kilat dan port bersiri maya yang melaluinya anda boleh log masuk ke cangkerang kad. Pada pemacu kilat terdapat fail README, salinan resume saya dan beberapa gambar saya. Shell mempunyai beberapa permainan, klasik Unix seperti nasib dan penyangak, versi kecil permainan 2048 dan penterjemah MicroPython.

Semua ini dilakukan menggunakan cip kilat 8 MB yang sangat kecil. Pemuat but muat dalam 256 KB, kernel mengambil 1,6 MB, dan keseluruhan sistem fail akar mengambil 2,4 MB. Oleh itu, terdapat banyak ruang yang tinggal untuk pemacu kilat maya. Terdapat juga direktori rumah yang boleh ditulis sekiranya sesiapa melakukan apa sahaja yang mereka mahu simpan. Ini semua juga disimpan pada cip kilat.

Keseluruhan peranti berharga kurang daripada $3. Ia cukup murah untuk dihadiahkan. Jika anda menerima peranti sedemikian daripada saya, ini bermakna kemungkinan besar saya cuba menarik perhatian anda.

Reka bentuk dan bina

Saya mereka dan memasang semuanya sendiri. Ini tugas saya dan saya menyukainya, dan kebanyakan cabarannya ialah mencari alat ganti yang cukup murah untuk hobi itu.

Pilihan pemproses adalah keputusan paling penting yang mempengaruhi kos dan kebolehlaksanaan projek. Selepas penyelidikan yang meluas, saya memilih F1C100s, pemproses yang agak kurang dikenali daripada Allwinner yang dioptimumkan kos (iaitu, murah). Kedua-dua RAM dan CPU terletak dalam pakej yang sama. Saya membeli pemproses di Taobao. Semua komponen lain telah dibeli daripada LCSC.

Saya memesan papan dari JLC. Mereka membuat 8 salinan untuk saya dengan harga $10. Kualiti mereka mengagumkan, terutamanya untuk harga; tidak sekemas OSHPark, tetapi masih kelihatan baik.

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

Kad perniagaan saya menjalankan Linux

Terdapat beberapa masalah dengan kumpulan pertama. Pertama, penyambung USB tidak cukup panjang untuk dimuatkan dengan selamat ke dalam mana-mana port USB. Kedua, trek kilat dibuat dengan salah, tetapi saya mengatasinya dengan membengkokkan kenalan.

Kad perniagaan saya menjalankan Linux

Selepas menyemak semuanya berfungsi, saya memesan kumpulan papan baru; Anda boleh melihat foto salah seorang daripada mereka pada permulaan artikel.

Oleh kerana saiz kecil semua komponen kecil ini, saya memutuskan untuk menggunakan pematerian aliran semula dapur murah. Saya mempunyai akses kepada pemotong laser, jadi saya menggunakannya untuk memotong stensil pematerian daripada filem laminator. Stensil ternyata agak baik. Lubang diameter 0,2 mm untuk hubungan pemproses memerlukan penjagaan khas untuk memastikan pembuatan berkualiti tinggi - adalah penting untuk memfokuskan laser dengan betul dan memilih kuasanya.

Kad perniagaan saya menjalankan Linux
Papan lain berfungsi dengan baik untuk memegang papan semasa menampal.

Saya menggunakan pes pateri dan meletakkan komponen dengan tangan. Saya memastikan bahawa plumbum tidak digunakan di mana-mana dalam proses - semua papan, komponen dan tampal memenuhi standard RoHS - supaya hati nurani saya tidak menyiksa saya apabila saya mengedarkannya kepada orang ramai.

Kad perniagaan saya menjalankan Linux
Saya membuat sedikit kesilapan dengan kumpulan ini, tetapi pes pateri memaafkan kesilapan, dan semuanya berjalan lancar

Setiap komponen mengambil masa kira-kira 10 saat untuk meletakkan, jadi saya cuba mengekalkan bilangan komponen pada tahap minimum. Butiran lanjut tentang reka bentuk peta boleh dibaca di tempat lain artikel terperinci saya.

Senarai bahan dan kos

Saya berpegang kepada bajet yang ketat. Dan kad perniagaan itu ternyata seperti yang dimaksudkan - Saya tidak keberatan memberikannya! Sudah tentu, saya tidak akan memberikannya kepada semua orang, kerana ia mengambil masa untuk membuat setiap salinan, dan masa saya tidak diambil kira dalam kos kad perniagaan (ia semacam percuma).

Komponen
Π¦Π΅Π½Π°

F1C100s
$1.42

BPA
$0.80

8MB denyar
$0.17

Semua komponen lain
$0.49

Dalam jumlah
$2.88

Sememangnya, terdapat juga kos yang sukar dikira, seperti penghantaran (kerana ia diagihkan antara komponen yang dimaksudkan untuk beberapa projek). Walau bagaimanapun, untuk papan yang menyokong Linux, ia pastinya agak murah. Pecahan ini juga memberikan gambaran yang baik tentang kos syarikat untuk membuat peranti dalam segmen harga terendah: anda boleh yakin bahawa kos syarikat lebih rendah daripada kos saya!

peluang

Apa yang hendak dikatakan? Kad itu but Linux yang sangat banyak dilucutkan dalam masa 6 saat. Disebabkan oleh faktor bentuk dan kos, kad tidak mempunyai I/O, sokongan rangkaian atau sebarang jumlah storan yang besar untuk menjalankan program berat. Namun begitu, saya berjaya menjejalkan banyak perkara menarik ke dalam imej perisian tegar.

USB

Terdapat banyak perkara menarik yang boleh dilakukan dengan USB, tetapi saya memilih pilihan yang paling mudah supaya orang ramai lebih berkemungkinan untuk melakukannya jika mereka memutuskan untuk mencuba kad perniagaan saya. Linux membenarkan kad untuk berkelakuan seperti "peranti" dengan sokongan Rangka Kerja Alat. Saya mengambil beberapa pemacu daripada projek terdahulu yang termasuk pemproses ini, jadi saya mempunyai akses kepada semua fungsi rangka kerja alat USB. Saya memutuskan untuk meniru pemacu kilat yang telah dijana dan memberikan akses shell melalui port bersiri maya.

Shell

Selepas log masuk sebagai akar, anda boleh menjalankan program berikut pada konsol bersiri:

  • penyangak: permainan pengembaraan merangkak penjara bawah tanah Unix klasik;
  • 2048: permainan ringkas 2048 dalam mod konsol;
  • rezeki: keluaran pelbagai kata-kata berlagak. Saya memutuskan untuk tidak memasukkan keseluruhan pangkalan data petikan di sini untuk meninggalkan ruang untuk ciri lain;
  • mikropython: Jurubahasa Python yang sangat kecil.

Emulasi Pemacu Denyar

Semasa penyusunan, alat binaan menjana imej FAT32 kecil dan menambahnya sebagai salah satu partition UBI. Subsistem Alat Linux mempersembahkan PCnya sebagai peranti storan.

Jika anda berminat untuk melihat apa yang muncul pada pemacu kilat, cara paling mudah untuk melakukannya ialah dengan membaca sumber. Terdapat juga beberapa gambar dan resume saya.

РСсурсы

Sumber

Pokok Buildroot saya disiarkan di GitHub - tiga puluh tiga puluh/businesscard-linux. Terdapat kod untuk menjana imej kilat NOR, yang dipasang menggunakan mod muat turun USB pemproses. Ia juga mempunyai semua definisi pakej untuk permainan dan program lain yang saya tolak ke Buildroot selepas semuanya berfungsi. Jika anda berminat untuk menggunakan F1C100s dalam projek anda, ini akan menjadi titik permulaan yang bagus (rasa bebas tanya saya soalan).
sudah biasa projek yang dilaksanakan dengan indah Linux v4.9 untuk F1C100s oleh Icenowy, direka semula sedikit. Kad saya menjalankan hampir standard v5.2. Ia ada di GitHub - tiga puluh tiga puluh/linux.
Saya rasa saya mempunyai pelabuhan U-Boot terbaik untuk F1C100s di dunia hari ini, dan ia juga sebahagiannya berdasarkan kerja Icenowy (yang menghairankan, mendapatkan U-Boot berfungsi dengan betul adalah tugas yang agak mengecewakan). Anda juga boleh mendapatkannya di GitHub - tiga puluh tiga puluh/u-boot.

Dokumentasi untuk F1C100s

Saya menemui dokumentasi yang agak jarang untuk F1C100s, dan saya menyiarkannya di sini:

  • Lembaran Data Allwinner F1C100s – maklumat am dan pinout.
  • Manual Rujukan Allwinner F1C600 – daftar definisi untuk F1C600, yang sebenarnya adalah F1C100 yang sama, tetapi dinamakan semula dengan sokongan Linux yang diisytiharkan (ha!).
  • Saya telah secara aktif meminjam maklumat daripada rajah daripada Nano Lichee Sipeed – papan pembangunan yang saya gunakan untuk mengkonfigurasi perisian.

Saya memuat naik untuk mereka yang ingin tahu. gambarajah projek saya.

Kad perniagaan saya menjalankan Linux

Kesimpulan

Saya belajar banyak semasa pembangunan projek ini - ia adalah projek pertama saya menggunakan ketuhar pematerian aliran semula. Saya juga belajar cara mencari sumber untuk komponen dengan dokumentasi yang lemah.

Saya menggunakan pengalaman sedia ada saya dengan Linux terbenam dan pengalaman pembangunan papan. Projek ini bukan tanpa kelemahan, tetapi ia menunjukkan semua kemahiran saya dengan baik.

Bagi mereka yang berminat dengan butiran bekerja dengan Linux terbenam, saya cadangkan membaca siri artikel saya tentang perkara ini: Menguasai Linux Terbenam. Di sana saya bercakap secara terperinci tentang cara mencipta perisian dan perkakasan dari awal untuk sistem Linux yang kecil dan murah, serupa dengan kad panggilan saya.

Sumber: www.habr.com

Tambah komen