Менің визит карточкам Linux жүйесінде жұмыс істейді

Мақаланың аудармасы блог инженер Джордж Хиллиард

Менің визит карточкам Linux жүйесінде жұмыс істейді
Басуға болады

Мен ендірілген жүйелер инженерімін. Бос уақытымда мен көбінесе болашақ жүйелерді жобалауда қолдануға болатын нәрсені немесе өзімнің қызығушылықтарымнан бір нәрсені іздеймін.

Осындай салалардың бірі - Linux-ты басқара алатын арзан компьютерлер, ал арзанырақ соғұрлым жақсы. Сондықтан мен түсініксіз процессорлардың терең қоян шұңқырын қазып алдым.

Мен: «Бұл процессорлардың арзандығы сонша, оларды іс жүзінде тегін беруге болады» деп ойладым. Біраз уақыттан кейін маған визит карточкасының форма факторында Linux үшін жалаң карта жасау идеясы келді.

Мен бұл туралы ойланғаннан кейін мен бұл шынымен керемет нәрсе болады деп шештім. Менде бар көрдім электронды визиткалар қарай ол, және олардың флэш-карталарды эмуляциялау, жыпылықтайтын шамдар немесе тіпті сымсыз деректерді беру сияқты әртүрлі қызықты мүмкіндіктері болды. Дегенмен, мен Linux қолдауы бар визиткаларды көрмедім.

Сондықтан мен өзімді бір жасадым.

Бұл өнімнің дайын нұсқасы. Buildroot бағдарламасымен құрастырылған Linux-тің пайдаланушы нұсқасында жұмыс істейтін толық минималды ARM компьютері.

Менің визит карточкам Linux жүйесінде жұмыс істейді

Оның бұрышында USB порты бар. Егер сіз оны компьютерге қоссаңыз, ол шамамен 6 секундта жүктеледі және флэш-карта және карта қабығына кіруге болатын виртуалды сериялық порт ретінде көрінеді. Флэш-дискіде README файлы, түйіндеменің көшірмесі және менің бірнеше фотосуретім бар. Қабықта бірнеше ойындар, Fortune және Rogue сияқты Unix классиктері, 2048 ойынының шағын нұсқасы және MicroPython аудармашысы бар.

Мұның бәрі өте кішкентай 8 МБ флэш-чип арқылы жасалады. Жүктеуші 256 КБ сыйдырады, ядро ​​1,6 МБ, ал бүкіл түбірлік файлдық жүйе 2,4 МБ алады. Сондықтан виртуалды флэш-дискке көп орын қалды. Сондай-ақ кез келген адам сақтағысы келетін нәрсені жасаған жағдайда жазылатын үй каталогы бар. Мұның бәрі флэш-чипте сақталады.

Бүкіл құрылғы 3 доллардан аз тұрады. Бұл беруге жеткілікті арзан. Егер сіз менен мұндай құрылғыны алсаңыз, бұл мен сізді таң қалдырғым келеді дегенді білдіреді.

Жобалау және салу

Барлығын өзім жобалап, құрастырдым. Бұл менің жұмысым және мен оны жақсы көремін, және көптеген қиындықтар хобби үшін жеткілікті арзан бөлшектерді табу болды.

Процессорды таңдау жобаның құны мен орындылығына әсер ететін ең маңызды шешім болды. Толық зерттеулерден кейін мен Allwinner фирмасының салыстырмалы түрде аз танымал процессоры F1C100s таңдадым, ол құны оңтайландырылған (яғни, арзан). RAM және CPU екеуі бір бумада орналасқан. Мен Taobao-да процессорларды сатып алдым. Барлық қалған құрамдас бөліктер LCSC компаниясынан сатып алынды.

Мен JLC компаниясынан тақталарға тапсырыс бердім. Олар маған 8 долларға 10 көшірме жасады. Олардың сапасы әсерлі, әсіресе бағасы үшін; OSHPark сияқты ұқыпты емес, бірақ бәрібір жақсы көрінеді.

Мен бірінші партияны күңгірт қара түсті етіп жасадым. Олар әдемі көрінді, бірақ өте оңай ластанған.

Менің визит карточкам Linux жүйесінде жұмыс істейді

Бірінші топтамада бірнеше мәселе болды. Біріншіден, USB қосқышы кез келген USB порттарына сенімді түрде кіруге жеткіліксіз болды. Екіншіден, флэш-тректер қате жасалды, бірақ мен контактілерді бүгу арқылы оны айналып өттім.

Менің визит карточкам Linux жүйесінде жұмыс істейді

Барлығы жұмыс істеп тұрғанын тексергеннен кейін мен тақталардың жаңа партиясына тапсырыс бердім; Олардың бірінің фотосын мақаланың басында көре аласыз.

Барлық осы шағын құрамдас бөліктердің кішкентай өлшеміне байланысты мен дәнекерлеуді қайта өңдеуге жүгінуді шештім арзан пеш. Менде лазерлік кескіш бар, сондықтан мен оны ламинатор пленкасынан дәнекерлеу трафаретін кесу үшін қолдандым. Трафарет өте жақсы шықты. Процессор контактілеріне арналған диаметрі 0,2 мм саңылаулар жоғары сапалы өндірісті қамтамасыз ету үшін ерекше күтімді қажет етті - лазерді дұрыс фокустау және оның қуатын таңдау өте маңызды болды.

Менің визит карточкам Linux жүйесінде жұмыс істейді
Басқа тақталар пастаны қолдану кезінде тақтаны ұстау үшін жақсы жұмыс істейді.

Мен дәнекерлеу пастасын жағып, компоненттерді қолмен орналастырдым. Процестің ешбір жерінде қорғасын пайдаланылмайтынына көз жеткіздім - барлық тақталар, компоненттер мен паста стандартқа сәйкес келеді RoHS – деп халыққа таратқанда ар-ұжданым қинамасын.

Менің визит карточкам Linux жүйесінде жұмыс істейді
Мен бұл топтамада аздап қателестім, бірақ дәнекерлеу пастасы қателерді кешіреді және бәрі жақсы болды

Әрбір компоненттің орналасуына шамамен 10 секунд қажет болды, сондықтан мен құрамдастардың санын барынша азайтуға тырыстым. Карта дизайны туралы толығырақ ақпаратты басқа мақаладан оқуға болады менің егжей-тегжейлі мақалам.

Материалдар тізімі және құны

Мен қатаң бюджетті ұстандым. Ал визитка ойдағыдай шықты - мен оны беруге қарсы емеспін! Әрине, мен оны бәріне бермеймін, өйткені әрбір көшірме жасау үшін уақыт қажет, ал менің уақытым визитка құнында ескерілмейді (бұл тегін).

Құрамдас бөлік
баға

F1C100s
$1.42

ПХД
$0.80

8 МБ жарқыл
$0.17

Барлық басқа компоненттер
$0.49

Барлығы
$2.88

Әрине, жеткізу (бірнеше жобаларға арналған құрамдас бөліктерге бөлінгендіктен) сияқты есептеу қиын шығындар да бар. Дегенмен, Linux жүйесін қолдайтын тақта үшін бұл өте арзан. Бұл бөлу сонымен қатар компанияларға ең төменгі баға сегментіндегі құрылғыларды жасау қанша тұратыны туралы жақсы түсінік береді: бұл компанияларға маған кететін шығыннан да аз тұратынына сенімді бола аласыз!

Ерекшеліктері

Не айтайын? Карта 6 секундта өте қатты жойылған Linux жүйесін жүктейді. Пішін факторы мен құнына байланысты картада енгізу/шығару, желілік қолдау немесе ауыр бағдарламаларды іске қосу үшін маңызды жады жоқ. Дегенмен, мен микробағдарлама кескініне көптеген қызықты нәрселерді енгізе алдым.

USB флеш

USB арқылы жасауға болатын көптеген керемет нәрселер болды, бірақ адамдар менің визит картамды сынап көргісі келсе, оның жұмыс істеу мүмкіндігі жоғары болуы үшін мен ең қарапайым опцияны таңдадым. Linux картасы қолдауы бар «құрылғы» сияқты әрекет етуге мүмкіндік береді Гаджет шеңбері. Мен осы процессорды қамтитын алдыңғы жобалардан кейбір драйверлерді алдым, сондықтан мен USB гаджет құрылымының барлық мүмкіндіктеріне қол жеткізе аламын. Мен алдын ала жасалған флэш-дискіні эмуляциялауды және виртуалды сериялық порт арқылы қабықшаға қол жеткізуді шештім.

Shell

Түбір ретінде кіргеннен кейін сериялық консольде келесі бағдарламаларды іске қосуға болады:

  • алаяқ: классикалық Unix зынданға арналған шытырман оқиғалы ойын;
  • 2048: консоль режиміндегі 2048 қарапайым ойыны;
  • байлық: түрлі жалаң сөздердің шығуы. Мен басқа мүмкіндіктерге орын қалдыру үшін барлық дәйексөздер базасын осында қоспауды шештім;
  • микропитон: Өте кішкентай Python аудармашысы.

Флэш-диск эмуляциясы

Компиляция кезінде құрастыру құралдары шағын FAT32 кескінін жасайды және оны UBI бөлімдерінің бірі ретінде қосады. Linux гаджетінің ішкі жүйесі оның компьютерін сақтау құрылғысы ретінде ұсынады.

Флэш-дискіде не көрінетінін көргіңіз келсе, мұны істеудің ең оңай жолы - оқу көздері. Сондай-ақ бірнеше фотосуреттер мен түйіндемем бар.

Ресурстар

Дереккөздер

Менің Buildroot ағашым GitHub сайтында жарияланған - thirtythreeforty/визитка-linux. Процессордың USB жүктеу режимі арқылы орнатылатын NOR флэш кескінін жасау үшін код бар. Сондай-ақ, барлығы жұмыс істегеннен кейін Buildroot жүйесіне енгізген ойындар мен басқа бағдарламаларға арналған барлық пакет анықтамалары бар. Егер сіз жобаңызда F1C100 пайдалануды қаласаңыз, бұл тамаша бастау нүктесі болар еді (еркін сезініңіз). маған сұрақтар қойыңыз).
Мен пайдаландым әдемі орындалған жоба Icenowy ұсынған F4.9C1 үшін Linux v100, сәл қайта жасалған. Менің картам дерлік стандартты v5.2 жұмыс істейді. Ол GitHub-да - thirtythreeforty/linux.
Менің ойымша, менде бүгінде әлемдегі F1C100 үшін ең жақсы U-Boot порты бар және ол ішінара Icenowy жұмысына негізделген (бір таңқаларлығы, U-Boot дұрыс жұмыс істеуі өте көңілсіз тапсырма болды). Сіз оны GitHub сайтында да ала аласыз - thirtythreeforty/u-boot.

F1C100 үшін құжаттама

Мен F1C100 үшін өте сирек құжаттаманы таптым және оны осында жариялап отырмын:

  • Allwinner F1C100s деректер парағы – жалпы ақпарат және pinout.
  • Allwinner F1C600 анықтамалық нұсқаулығы – F1C600 анықтамаларын тіркеңіз, ол шын мәнінде бірдей F1C100 болып табылады, бірақ жарияланған Linux қолдауымен атауы өзгертілді (га!).
  • Мен диаграммадан ақпаратты белсенді түрде алдым Sipeed's Lichee Nano – бағдарламалық құралды конфигурациялау үшін пайдаланған әзірлеу тақтасы.

Қызыққандар үшін жүктеп жатырмын. менің жоба диаграммам.

Менің визит карточкам Linux жүйесінде жұмыс істейді

қорытынды

Бұл жобаны әзірлеу барысында мен көп нәрсені білдім - бұл менің қайта ағынды дәнекерлеу пешін қолданатын бірінші жобам болды. Мен сондай-ақ құжаттары нашар құрамдас бөліктерге арналған ресурстарды қалай табуға болатынын білдім.

Мен ендірілген Linux және тақтаны әзірлеу тәжірибесімен бар тәжірибемді қолдандым. Жоба кемшіліктерсіз емес, бірақ ол менің барлық дағдыларымды жақсы көрсетеді.

Ендірілген Linux-пен жұмыс істеудің егжей-тегжейлеріне қызығушылық танытатындар үшін мен бұл туралы мақалалар сериясын оқуды ұсынамын: Енгізілген Linux-ті меңгеру. Онда мен визит картасына ұқсас кішкентай және арзан Linux жүйелері үшін бағдарламалық жасақтама мен аппараттық құралдарды нөлден қалай жасау керектігі туралы егжей-тегжейлі сөйлесемін.

Ақпарат көзі: www.habr.com

пікір қалдыру