Превод на статија од инженерот Џорџ Хилиард
Може да се кликне
Јас сум инженер за вградени системи. Во слободното време често барам нешто што може да се искористи во дизајнирањето на идните системи или нешто од моите интереси.
Одна из таких областей – дешёвые компьютеры, способные поддерживать Linux, и чем дешевле, тем лучше. Поэтому я зарылся в глубокую кроличью нору малоизвестных процессоров.
Я подумал: «Эти процессоры настолько дешёвые, что их практически можно раздавать даром». И через некоторое время ко мне пришла идея сделать голую карточку для Linux в форм-факторе визитной карточки.
Откако размислував за тоа, решив дека ќе биде навистина кул работа. Имам веќе да , и у них были различные интересные возможности, типа эмулирования флэш-карт, мигания лампочек или даже беспроводной передачи данных. Однако визитки с поддержкой Linux я не встречал.
Така си направив еден.
Это законченная версия продукта. Полноценный минимальный компьютер на ARM, на котором работает моя особая версия Linux, созданная при помощи Buildroot.

Има USB приклучок во аголот. Ако го поврзете со компјутер, тој се подига за околу 6 секунди и е видлив како флеш-картичка и виртуелна сериска порта преку која можете да се најавите во обвивката на картичката. На флеш-драјвот има датотека README, копија од мојата биографија и неколку мои фотографии. Школката има неколку игри, класици на Unix како среќа и непријателски, мала верзија на играта 2048 и преведувач на MicroPython.
Сето ова е направено со користење на многу мал флеш чип од 8 MB. Подигнувачот се вклопува во 256 KB, кернелот зафаќа 1,6 MB, а целиот root датотечен систем зафаќа 2,4 MB. Затоа, останува многу простор за виртуелниот флеш-уред. Има и домашен директориум што може да се запише во случај некој да направи нешто што сака да зачува. Сето ова е зачувано и на флеш чип.
Целиот уред чини помалку од 3 долари. Доволно е евтин за да се подарува. Ако сте примиле таков уред од мене, тоа значи дека најверојатно се обидувам да ве импресионирам.
Дизајн и изградба
Сам дизајнирав и составив сè. Тоа е моја работа и ја сакам, а голем дел од предизвикот е да се најдат доволно евтини делови за хобито.
Изборот на процесор беше најважната одлука што влијаеше на цената и изводливоста на проектот. По детално истражување, го избрав F1C100s, релативно малку познат процесор од Allwinner кој е оптимизиран за трошоците (т.е. проклето евтин). И RAM и процесорот се наоѓаат во истиот пакет. Купив процесори на Taobao. Сите други компоненти се купени од LCSC.
Таблите ги нарачав од JLC. Ми направија 8 примероци за 10 долари. Нивниот квалитет е импресивен, особено за цената; не толку уредно како на OSHPark, но сепак изгледаат добро.
Првата серија ја направив мат црна. Изгледаа прекрасно, но многу лесно се извалкаа.

Имаше неколку проблеми со првата серија. Прво, USB конекторот не беше доволно долг за безбедно да се вклопи во која било USB порта. Второ, флеш-траките беа направени погрешно, но јас го заобиколив ова со свиткување на контактите.

Откако проверив дека сè работи, нарачав нова серија табли; Фотографија од една од нив можете да ја видите на почетокот на статијата.
Поради малата големина на сите овие мали компоненти, решив да прибегнам кон повторно лемење со користење . Имам пристап до ласерски секач, па го користев за да отсечам матрица за лемење од филмот за ламинатор. Матрицата испадна доста добро. Дупките со дијаметар од 0,2 mm за контактите на процесорот бараа посебна грижа за да се обезбеди висококвалитетно производство - од клучно значење беше правилно да се фокусира ласерот и да се избере неговата моќност.

Другите табли добро ја држат таблата додека нанесувате паста.
Нанесов паста за лемење и рачно ги поставив компонентите. Се погрижив олово да не се користи никаде во процесот - сите плочи, компоненти и паста ги исполнуваат стандардот - за да не ме мачи совеста кога ќе им ги делам на луѓето.

Направив мала грешка со оваа серија, но пастата за лемење простува грешки, и се беше добро
На секоја компонента ѝ беа потребни околу 10 секунди за да се постави, па се обидов да го задржам бројот на компоненти на минимум. Повеќе детали за дизајнот на картата може да се прочитаат во друга .
Список на материјали и цена
Се држев до строг буџет. И визит-картичката излезе како што беше наменета - не ми пречи да ја дадам! Се разбира, нема да го дадам на сите, бидејќи е потребно време за да се направи секоја копија, а моето време не се зема предвид во цената на визит-картичката (некако е бесплатна).
Компонента
Цена
F1C100s
$1.42
ПХБ
$0.80
8 MB блиц
$0.17
Сите други компоненти
$0.49
Во вкупен
$2.88
Естественно, есть ещё расходы, которые сложно рассчитать, типа доставки (поскольку она распределилась между компонентами, предназначенными для нескольких проектов). Однако для платы с поддержкой Linux это определённо весьма дёшево. Также эта разбивка даёт неплохое представление о том, почём обходится компаниям изготовление устройств самого нижнего ценового сегмента: можете быть уверены в том, что компаниям это обходится ещё дешевле, чем мне!
Способности
Что сказать? Карта загружает очень сильно обрезанный Linux за 6 секунд. Из-за форм-фактора и стоимости у карты нет I/O, сетевой поддержки, какого-то серьёзного объёма хранилища для запуска тяжёлых программ. Тем не менее, я сумел впихнуть в образ прошивки кучу всего интересного.
USB
С USB можно было придумать много чего интересного, но я выбрал самый простой вариант, чтобы у людей с большой вероятностью всё заработало, если они решат попробовать мою визитку. Linux позволяет карте вести себя как «устройство» с поддержкой . Зедов некои од двигателите од претходните проекти кои го вклучуваа овој процесор, така што имам пристап до целата функционалност на рамката за USB-гаџет. Решив да имитирам претходно генериран флеш драјв и да дадам пристап до школка преку виртуелна сериска порта.
Школка
Откако ќе се најавите како root, можете да ги извршите следните програми на сериската конзола:
- непријателските: класична Unix зандана лазење авантуристичка игра;
- 2048: едноставна игра од 2048 година во режим на конзола;
- богатство: излез од разни претенциозни изреки. Решив да не ја вклучам целата база на цитати овде за да оставам простор за други карактеристики;
- : Многу мал толкувач на Python.
Емулација на флеш драјв
Во время компиляции инструменты сборки генерируют небольшой образ FAT32 и добавляют его в качестве одного из разделов UBI. Подсистема гаджетов Linux представляет его ПК как устройство-накопитель.
Ако сте заинтересирани да видите што се појавува на флеш-уредот, најлесниот начин да го направите ова е со читање . Има и неколку фотографии и моја биографија.
Ресурси
Извори
Моето Buildroot дрво е објавено на GitHub - . Постои код за генерирање на NOR флеш слика, која се инсталира со помош на режимот за преземање USB на процесорот. Ги има и сите дефиниции за пакети за игри и други програми што ги втурнав во Buildroot откако успеав сè да работи. Ако сте заинтересирани да ги користите F1C100s во вашиот проект, ова би било одлична почетна точка (слободно ).
користев Linux v4.9 для F1C100s за авторством Icenowy, немного его переделав. На моей карточке работает почти стандартная v5.2. Она лежит на GitHub — .
Мислам дека ја имам најдобрата порта на U-Boot за F1C100 во светот денес, а исто така е делумно заснована на работата на Icenowy (изненадувачки, тоа што U-Boot да работи правилно беше доста фрустрирачка задача). Можете да го добиете и на GitHub - .
Документација за F1C100s
Најдов прилично ретка документација за F1C100s и ја објавувам овде:
- – општи информации и пикап.
- – определения регистров для F1C600, который на самом деле является тем же F1C100s, но переименованным с заявленной поддержкой Linux (ха!).
- Активно позајмив информации од дијаграмот од – развојната табла што ја користев за конфигурирање на софтверот.
Го ставам за оние кои се љубопитни. .

Заклучок
Научив многу за време на развојот на овој проект - тоа беше мојот прв проект користејќи рерна за лемење. Научив и како да најдам ресурси за компоненти со лоша документација.
Я пользовался имевшимся у меня опытом работы со встроенным Linux и опытом разработки плат. Проект не без изъянов, однако неплохо показывает все мои умения.
Интересующимся подробностями работы со встроенным Linux предлагаю прочесть мою серию статей об этом: . Там я подробно рассказываю о том, как создавать ПО и железо с нуля для крохотных и дешёвых Linux-систем, похожих на эту мою визитную карточку.
Извор: www.habr.com
