Kartvizitim Linux çalıştırıyor

Bir makalenin çevirisi Blog mühendis George Hilliard

Kartvizitim Linux çalıştırıyor
tıklanabilir

Gömülü sistem mühendisiyim. Boş zamanlarımda sıklıkla gelecekteki sistemlerin tasarımında kullanılabilecek veya ilgi alanlarıma uygun bir şeyler ararım.

Böyle bir alan, Linux'u çalıştırabilen ucuz bilgisayarlardır ve ne kadar ucuzsa o kadar iyidir. Bu yüzden belirsiz işlemcilerden oluşan derin bir tavşan deliği kazdım.

"Bu işlemciler o kadar ucuz ki neredeyse bedavaya dağıtılabilirler" diye düşündüm. Ve bir süre sonra aklıma Linux için kartvizit şeklinde çıplak bir kart yapma fikri geldi.

Bunu düşündüğümde, bunun gerçekten harika bir şey olacağına karar verdim. zaten var görüldü elektronik kartvizitler karşı ove flaş kartları taklit etme, yanıp sönen ampuller ve hatta kablosuz veri iletimi gibi çeşitli ilginç yetenekleri vardı. Ancak Linux destekli kartvizit görmedim.

Ben de kendime bir tane yaptım.

Bu ürünün bitmiş versiyonudur. Buildroot ile oluşturulmuş özel Linux sürümümü çalıştıran eksiksiz bir minimal ARM bilgisayarı.

Kartvizitim Linux çalıştırıyor

Köşede bir USB bağlantı noktası vardır. Bir bilgisayara bağlarsanız, yaklaşık 6 saniyede açılır ve bir flash kart ve kart kabuğuna giriş yapabileceğiniz sanal bir seri bağlantı noktası olarak görünür. Flash sürücüde bir README dosyası, özgeçmişimin bir kopyası ve birkaç fotoğrafım var. Kabuğun çeşitli oyunları, servet ve rogue gibi Unix klasikleri, 2048 oyununun küçük bir versiyonu ve bir MicroPython yorumlayıcısı vardır.

Bütün bunlar çok küçük bir 8 MB flash çip kullanılarak yapılır. Önyükleyici 256 KB'a sığar, çekirdek 1,6 MB yer kaplar ve kök dosya sisteminin tamamı 2,4 MB yer kaplar. Bu nedenle sanal flash sürücü için çok fazla alan kaldı. Ayrıca herhangi birinin kaydetmek istediği herhangi bir şeyi yapması durumunda yazılabilen bir giriş dizini de bulunmaktadır. Bunların hepsi aynı zamanda bir flash çipe de kaydedilir.

Cihazın tamamının maliyeti 3 dolardan azdır. Verilecek kadar ucuz. Benden böyle bir cihaz aldıysanız, bu büyük olasılıkla sizi etkilemeye çalıştığım anlamına gelir.

Tasarla ve inşa et

Her şeyi kendim tasarladım ve monte ettim. Bu benim işim ve onu seviyorum ve en büyük zorluk hobi için yeterince ucuz parçalar bulmaktı.

İşlemci seçimi projenin maliyetini ve fizibilitesini etkileyen en önemli karardı. Kapsamlı bir araştırmadan sonra, Allwinner'ın nispeten az bilinen ve maliyeti optimize edilmiş (yani çok ucuz) işlemcisi olan F1C100'leri seçtim. Aynı paket hem RAM hem de CPU içerir. Taobao'dan işlemci satın aldım. Diğer tüm bileşenler LCSC'den satın alındı.

Anakartları JLC'den sipariş ettim. Benim için 8 dolara 10 kopya yaptılar. Kalitesi, özellikle fiyatına göre etkileyici; OSHPark'ınki kadar düzgün olmasa da yine de iyi görünüyor.

İlk partiyi mat siyah yaptım. Güzel görünüyorlardı ama çok kolay kirleniyorlardı.

Kartvizitim Linux çalıştırıyor

İlk partide birkaç sorun vardı. Birincisi, USB konektörü herhangi bir USB bağlantı noktasına güvenli bir şekilde oturacak kadar uzun değildi. İkincisi, flaş izleri yanlış yapılmıştı ama ben bunu kontakları bükerek çözdüm.

Kartvizitim Linux çalıştırıyor

Her şeyin çalıştığını kontrol ettikten sonra yeni bir parti tahta sipariş ettim; Bunlardan birinin fotoğrafını makalenin başında görebilirsiniz.

Tüm bu küçük bileşenlerin küçük boyutları nedeniyle, lehimlemeyi yeniden akıtma yöntemine başvurmaya karar verdim. ucuz soba. Lazer kesiciye erişimim var, bu yüzden onu laminatör filminden bir lehimleme şablonunu kesmek için kullandım. Şablon oldukça iyi çıktı. İşlemci kontakları için 0,2 mm çapındaki delikler, yüksek kaliteli üretim sağlamak için özel dikkat gerektiriyordu; lazeri doğru şekilde odaklamak ve gücünü seçmek kritik önem taşıyordu.

Kartvizitim Linux çalıştırıyor
Diğer tahtalar macun sürerken tahtayı tutmak için iyi çalışır.

Lehim pastası uyguladım ve bileşenleri elle konumlandırdım. Sürecin hiçbir yerinde kurşun kullanılmadığından emin oldum; tüm levhalar, bileşenler ve macunlar standartlara uygundur RoHS - ki bunları insanlara dağıtırken vicdanım bana eziyet etmesin.

Kartvizitim Linux çalıştırıyor
Bu partide ufak bir hata yaptım ama lehim pastası hataları affeder ve her şey yolunda gitti

Her bileşenin konumlandırılması yaklaşık 10 saniye sürdü, bu nedenle bileşen sayısını minimumda tutmaya çalıştım. Harita tasarımı hakkında daha fazla ayrıntı başka bir kitapta okunabilir. detaylı makalem.

Malzeme ve maliyet listesi

Sıkı bir bütçeye sadık kaldım. Ve kartvizit amaçlandığı gibi çıktı; onu vermekten çekinmem! Elbette herkese vermeyeceğim, çünkü her kopyanın yapılması zaman alıyor ve benim zamanım kartvizitin maliyetine dahil edilmiyor (bir nevi bedava).

bileşen
Fiyat

F1C100'ler
$1.42

PCB
$0.80

8MB flaş
$0.17

Diğer tüm bileşenler
$0.49

Toplam
$2.88

Doğal olarak, teslimat gibi hesaplanması zor maliyetler de vardır (birkaç projeye yönelik bileşenler arasında dağıtıldığı için). Ancak Linux'u destekleyen bir anakart için kesinlikle oldukça ucuz. Bu döküm aynı zamanda şirketlere en düşük fiyat segmentindeki cihazları üretmenin ne kadara mal olduğu konusunda da iyi bir fikir veriyor: Bunun şirketlere maliyetinin bana maliyetinden bile daha az olduğundan emin olabilirsiniz!

fırsatlar

Ne demeli? Kart, çok yoğun bir şekilde soyulmuş bir Linux'u 6 saniyede başlatıyor. Form faktörü ve maliyet nedeniyle kartta G/Ç, ağ desteği veya ağır programları çalıştıracak önemli miktarda depolama alanı bulunmuyor. Yine de donanım yazılımı görüntüsüne bir sürü ilginç şey sığdırmayı başardım.

USB

USB ile yapılabilecek pek çok harika şey vardı ama ben en basit seçeneği seçtim, böylece insanlar benim kartvizitimi denemeye karar verirlerse USB'yi çalıştırma olasılıkları daha yüksek olur. Linux, kartın desteğiyle bir "cihaz" gibi davranmasını sağlar Gadget Çerçevesi. Bu işlemciyi içeren önceki projelerden bazı sürücüleri aldım, böylece USB aygıt çerçevesinin tüm işlevlerine erişebiliyorum. Önceden oluşturulmuş bir flash sürücüyü taklit etmeye ve sanal bir seri bağlantı noktası aracılığıyla kabuk erişimi sağlamaya karar verdim.

kabuk

Root olarak giriş yaptıktan sonra seri konsolda aşağıdaki programları çalıştırabilirsiniz:

  • rogue: klasik bir Unix zindan tarama macera oyunu;
  • 2048: konsol modunda 2048'in basit bir oyunu;
  • fal: çeşitli iddialı sözlerin çıktısı. Diğer özelliklere yer bırakmak için alıntı veri tabanının tamamını buraya dahil etmemeye karar verdim;
  • mikro piton: Çok küçük bir Python yorumlayıcısı.

Flash Sürücü Emülasyonu

Derleme sırasında derleme araçları küçük bir FAT32 görüntüsü oluşturur ve bunu UBI bölümlerinden biri olarak ekler. Linux Gadget Alt Sistemi, PC'sini bir depolama aygıtı olarak sunar.

Flash sürücüde ne göründüğünü görmekle ilgileniyorsanız, bunu yapmanın en kolay yolu okumaktır. kaynaklar. Ayrıca birkaç fotoğraf ve özgeçmişim de var.

Ресурсы

Kaynaklar

Buildroot ağacım GitHub'da yayınlandı - otuzüçkırk/kartvizit-linux. İşlemcinin USB indirme modu kullanılarak yüklenen bir NOR flash görüntüsü oluşturmak için kod vardır. Ayrıca her şeyi çalıştırdıktan sonra Buildroot'a aktardığım oyunlar ve diğer programlara ilişkin tüm paket tanımlarını da içeriyor. Projenizde F1C100'leri kullanmakla ilgileniyorsanız, bu harika bir başlangıç ​​noktası olabilir (çekinmeyin) bana sorular sor).
kullandım güzel yürütülen proje Icenowy tarafından F4.9C1'ler için Linux v100, biraz yeniden tasarlandı. Kartım neredeyse standart v5.2'yi çalıştırıyor. GitHub'da - otuzüçkırk/linux.
Sanırım bugün dünyadaki F1C100'ler için en iyi U-Boot bağlantı noktasına sahibim ve bu da kısmen Icenowy'nin çalışmasına dayanıyor (şaşırtıcı bir şekilde, U-Boot'un düzgün çalışmasını sağlamak oldukça sinir bozucu bir işti). Ayrıca GitHub'dan da edinebilirsiniz - otuzüçkırk/u-önyükleme.

F1C100'ler için belgeler

F1C100'ler için oldukça seyrek belgeler buldum ve bunları buraya gönderiyorum:

Merak edenler için yüklüyorum. proje diyagramım.

Kartvizitim Linux çalıştırıyor

Sonuç

Bu projenin geliştirilmesi sırasında çok şey öğrendim; bu benim yeniden akışlı lehimleme fırını kullanan ilk projemdi. Ayrıca zayıf dokümantasyona sahip bileşenler için kaynakları nasıl bulacağımı da öğrendim.

Mevcut deneyimimi gömülü Linux ve anakart geliştirme deneyimiyle kullandım. Proje kusursuz değil ama tüm becerilerimi iyi bir şekilde gösteriyor.

Gömülü Linux ile çalışmanın ayrıntılarıyla ilgilenenler için bu konuyla ilgili bir dizi makalemi okumanızı öneririm: Gömülü Linux'ta Uzmanlaşmak. Orada, arama kartıma benzer şekilde, küçük ve ucuz Linux sistemleri için sıfırdan yazılım ve donanımın nasıl oluşturulacağını detaylı olarak anlatıyorum.

Kaynak: habr.com

Yorum ekle