FriendlyARM. Подготовка.

ARM
Решился я заказать себе FriendlyARM, и пока она ползет по просторам логистических каналов нашей почты осуществляю некоторую подготовку.


Основной системой у меня является Debian Unstable, поэтому первым делом создаем «песочницу»Debian Stable (по работе убедился, что самые свежие пакеты это не всегда хорошо, особенно libtool). Делается это очень просто:
Первым делом ставим утилиту debootstrap
sudo apt-get install debootstrap

Теперь создаем директорию в которой будет лежать песочница.
mkdir sandbox

И непосредственно стягиваем систему:
sudo debootstrap sqeeze ./sandbox/ http://mirror.yandex.ru/debian/

если нужна архитектура, отличная от основной системы ставим ее, например для i386
sudo debootstrap --arch i386 sqeeze ./sandbox/ http://mirror.yandex.ru/debian/ 

Делаем метку для монтирования proc, делать это надо от root, без sudo, потому что echo не наследует его:
echo "proc /path_to_sandbox/proc proc none 0 0" >> /etc/fstab
mount /path_to_sandbox/proc

И теперь можем войти в новое окружение:
chroot /path_to_sandbox/

Чтобы в терминале не путаться где я — в песочнице или в основной системе — делаю еще одно действие (оно уже делается в песочнице)
echo "++sandbox++" > /etc/debian_chroot

А так же, чтобы не было проблем со злосчастным libtool
rm /bin/sh
ln -s /bin/bash /bin/sh


Далее, как обычно создаем нового пользователя:
adduser builder


Все. Можно работать в новом окружении.

Далее, я заранее скачал диск, который прилагается к плате и был шокирован тем, что с платой идет тулчейн аж версии 4.2.2 и ядро версии 2.6.24. А хочется чего то поновее, поэтому теперь соберем тулчейн. Для этого я использую ct-ng.
Скачиваем свежую версию и распаковываем (все можно делать от root в песочнице):
wget http://crosstool-ng.org/download/crosstool-ng/crosstool-ng-1.12.0.tar.bz2
tar xjvf crosstool-ng-1.12.0.tar.bz2

Переходим в директорию и начинаем собирать:
cd crosstool-ng-1.12.0
./configure --prefix=/usr/local

Во время обработки скрипта узнаем каких пакетов нам не хватает и ставим их.
Когда configure успешно завершится, делаем:
make && make install

Теперь переходим к работе от пользователя
su builder

Создаем каталог в котором будет собиратся наш тулчейн:
mkdir toolchain
cd toolchain

За основу конфига я взял пример из поставки
cp /usr/local/lib/ct-ng-1.12.0/samples/arm-unknown-linux-gnueabi/* ./
mv crosstool.config .config

Но этот конфиг не соберется. Исправляем в нем некоторые строчки.
Меняем версию ядра (строки можно комментировать и вставлять новые, а можно редактировать существующие):
CT_KERNEL_VERSION="2.6.36"
CT_KERNEL_V_2_6_36=y

Выбираем более новую версию binutils:

CT_BINUTILS_V_2_20_1=y
CT_BINUTILS_VERSION="2.20.1"

Правим конфигурацию gcc
CT_CC_V_4_4_5=y
CT_CC_GCC_4_4_or_later=y
CT_CC_GCC_USE_MPC=y   

Далее я закомментировал все отладочные средства, т.к. пока они меня не интересуют.
Так же важно добавить следующие переменные, иначе тулчейн не соберется, будет искать библиотеку MPC, но не сможет найти т.к. не стянет.
CT_MPC=y
CT_MPC_NEEDED=y
CT_MPC_VERSION="0.9"
CT_MPC_V_0_9=y

В последнюю очередь отключаем CLOOG и PPL, т.к. пока они не требуются.
Запускаем сборку тулчейна:
ct-ng build.4

Crosstools все стянет, пропатчит и скомпилирует. Процесс этот довольно длительный, на моем сервере (2.6ГГЦ, 1ГБ ОЗУ) компиляция заняла 129 минут.
Когда все завершится в /home/builder/x-tools будет лежать наш тулчейн.

В завершении, для тестирования получившегося тулчейна соберем ядро.
Стягиваем и распаковываем исходники:
wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.tar.bz2
tar xjvf linux-3.0.tar.bz2


Переходим в директорию ядра и начинаем конфигурацию.
Открываем мейкфайл и указываем архитектуру и путь до тулчейна
ARCH      ?= arm
CROSS_COMPILE   ?= /home/builder/x-tools/arm-unknown-linux-gnueabi/bin/arm-unknown-linux-gnueabi-

Далее как обычно:
make menuconfig

Здесь все выставляем по своему усмотрению. Я выставил для начала все по максимуму, был очень удивлен что mini6410 поддерживается прямо в ядре.
Не забываем поставить mkimage, иначе не получим имедж для загрузки с помощью U-boot (для этого нажимаем Ctrl-D, чтобы снова стать root, т.к sudo на тот момент в песочнице не настроено).
apt-get install uboot-mkimage

И запускаем сборку:
make -j2 uImage

Когда все дейтсвия завершатся получаем упакованный uImage, готовый для запуска на устройтсве.
В аттаче к записи находится мой конфиг сборки тулчейна.

UPD: обновил конфиг, с новым можно собрать 4.5.2 используя ct-ng 1.12.0
  • +3
  • 01 августа 2011, 22:39
  • Legath
  • 1
Файлы в топике: config.tar.gz

Комментарии (76)

RSS свернуть / развернуть
А чего где почём?
Выглядит здорово.
0
stores.ebay.com/wayengineer?_rdc=1
99$ плюс доставка 10$
0
Экран входит в комплект, а остальное можно подрубить по USB, производительности ARM 11 хватит. Для вай-фай думаю сразу подключу D-link DWA-160, это дешевле чем покупать их модуль расширения. С камерой аналогично.
0
99$ это уже с экраном? Я думал от 150-200$ только платка будет.

Надо будет подарить себе, определённо =)
0
да. это с экраном. единственный минус, то что один аукцион по низкой цене все время. те которые блиц — все время дороже.
0
Давненько прикупил себе мини2440 с 7 дюймовым экраном cgi.ebay.com/256MB-NAND-mini2440-S3C2440-ARM9-DEVELOPMENT-Board-7-/320722323856?pt=LH_DefaultDomain_0&hash=item4aac8a4990 такую токо памяти гиг и набор кабелей для перефирии и питания.После долгих мук удалось достигнуть следущего-скомпилил ядро самосборное, установил gentoo, запустил иксы, звук и сеть, в качестве оконного менеджера openbox и fluxbox, музыку играет через mpg123, браузер dillo, установил самбу, нфс, апач.Неудалось нормально запустить тачскрин-он работает инверсно, т.е пальцем вправо а курсор влево, ну и вниз а он вверх=), не компилится mplayer, поэтому чем смотреть видео пока х.з.В скоре собираюсь скомпилить нормальный полноценный браузер (симанки или огнелиса)правда долго времени займет-часов 12 гдето.Пробывал кросскомпилить на десктопе под gentoo с помощью crossdev, но как то не очень-половина пакетов сегфолтится.В общем на большие подвиги ума и времени пока не хватает, понесла нелегкая на плис.
0
покажите cross-gcc -v
0
увы я удалил давно с системы
0
увы я удалил давно с системы, все компилю на миньке
0
я планирую поставить дебиан, благо отдельный проект по переносу есть.
0
еще пару фоток dl.dropbox.com/u/11463601/%D0%96%D0%96/%D0%B4%D0%B5%D1%81%D0%BA%D1%82%D0%BE%D0%BF%20%D1%84%D1%80%D0%B5%D0%BD%D0%B4%D0%BB%D0%B83.JPG dl.dropbox.com/u/11463601/%D0%96%D0%96/%D0%B4%D0%B5%D1%81%D0%BA%D1%82%D0%BE%D0%BF%D1%84%D1%80%D0%B5%D0%BD%D0%B4%D0%BB%D0%B8.JPG
Я попробовал кутопию (вроде как ничо вот пакетов фиг доставишь), винце и ангстром-ничего не приглянулось, андроид не запустился(не очень то и хотелось)
0
Есть отдельная версия Qt для embedded систем. Она более гибкая, планирую на ней собрать Qmmp.
0
vlc тоже пробовал -не собирается, о qmmp как то и не подумал.Может там надо какие ключи добавить компилятору… пока у меня идей нету =(
0
Вот нашел к стате статью по которой я пробовал кросскомпилить www.kaa.org.ua/statji/kak-sobratj-svoiu-rootfs-na-baze-gentoo-dlya-kpk.html
0
Спасибо за статью. В ответ так сказать то что попалось мне. www.ibm.com/developerworks/ru/edu/l-embedded-distro/section4.html
0
Вот еще человек писал, от туда я много полезного узнал dron-gus.livejournal.com/
0
и здесь есть что почитать roboforum.ru/forum96/
0
это все 24х0, похоже до 11го арма еще не все дошли.
0
Интересная тема. Буду ждать продолжения, когда придет плата. Сам посматриваю на что-нибудь подобное, но не знаю что выбрать. Например на starterkit.ru большой выбор, глаза разбегаются. Не понятно, есть ли разница в процах, ну кроме быстродействия. Может тогда эту же плату закажу. С линуксом не особо дружу, не представляю как под него программить. Придется разбираться.
0
  • avatar
  • ACE
  • 02 августа 2011, 00:18
По соотношению цены и «фарша» стартеркит по моему мнению проигрывает. Да и GPS мне не неужны сейчас, а стертер везде пихает это.
0
Утащил в коллективный блог ARM
0
Объясните мне сирому на кой такие штуки нужны радиолюбителям?
Ну купил такую плату, сдлал программу, прикинул, какое устройство будет.
А потом, хоть и по аналогии со схемой, но надо делать свою кастомную печатку, на которую некоторые конроллеры на коленках не запаять из-за корпуса.
Даже здесь есть конроллеры SD, ethernet-a…
0
Мне лично интересно создать устройство только для себя. И на его основе разрабатывать дальше, без макетирования.
0
Такие модули можно встраивать в готовом виде. Применений много, от компа в машину до автономной (без комповой) системы управления чем-либо. Например в качестве мозга умного дома.
0
Именно так и собираюсь поступить. Изначально это будут часы с интернет радио, которые затем перерастут в умный дом.
0
Ну, там же, всё равно будет куча ненужной переферии, которая свой, хоть и микроампер, но съест, а работать будет непрерывно. Тогда пропадает спортивная погоня за экономией любого ватт-часа.
По-хорошему, имхо, такие вещи для профессионального разработчика, который на макетной плате создает, а потом отдает печатать узкоспециальную плату на производство.
Хотя соглашуть, тема очень интересная.
0
Можно использовать Tiny6410 CPU Module. К нему периферию допаять, в принципе, вполне реально, если нужны, к примеру, только usb и ethernet.
0
А что думаете насчет такого? 89 баксов за плату, +10 баксов за 4.3", +26 за VGA 800х600 адаптер. И вроде всё почти тоже самое. Mini6410 баксов на 40 дороже, как минимум (ну не считая тот аукцион, где еще нужно победить). Доставка у них 36 баксов за EMS. Ещё есть Tiny6410, отличается в основном габаритами, зато всего $99.
Кстати, если кто в Москве хочет заказать, можно скооперироваться и сэкономить немного на доставке.
0
  • avatar
  • ACE
  • 02 августа 2011, 16:45
Из плюсов у этой платы размер оперативы и флешки, побольше чем в моей они, из минусов — ну только разве что топология, но это субъективно. По поводу аукциона — если нет ажиотажа — победить не составит труда.
0
Такие вещи уже граничат с обычными материнками с интегрированным Интелом, типа Zotac ION. Туда можно воткнуть SSD и накатить обычную операционку для x86.
0
Задавался таким вопросом по одному из проектов, но столкнулся с проблемой поиска ОЗУ для этих плат.
0
В теории — да, а на практике — много «но». Мини-ITX довольно велики, не всегда удобно, микро- и пико- — фиг найдешь, а если найдешь — цене не обрадуешься. Они просто заоблачные. Если так — дешевле купить субноут типа Asus EEE и разобрать, со всеми его плюсами и минусами, типа токопотребления, охлаждения, долгой загрузки.
0
Плата интересная, у самого имеется такая в комплекте с экраном 3,5" и маленькой камерой. Правда ставил я на нее самосборный образ Windows CE 6.0 (самосборность заключалась во внедрении драйвера для GPIO и отрезания лишних прог). Проги писал в Visual Studio с использованием .NET Compact Framework, получалось быстро, удобно и с кнопочками:). Можно светодиодами помигать, ногами, выведенными на разъем подрыгать, по блутусу выртуальный COM-порт погонять… В штатном линуксе (QTopia) заводил камеру с доступом к ней по сети через mjpeg-streamer. Еще рекомендую заказать комплект проводов на том же ебее, ибо во всех колодках на этой плате шаг 2.00 мм, помнится долго искал шлейф с таким шагом.
0
Кстати, подскажи, как быстро этот девайс грузится? Т.е. если сделать на нем какое-то устройство, сколько будет проходить от включения до запуска собственного приложения? На разных операционках.
И ещё, нигде не нашел информации, как подключить другой TFT дисплей дюймов на 10, с указанием совместимых по интерфейсу матриц. Кроме как через VGA адаптер.
0
Скорость загрузки я как-то не оценивал, ВинСЕ грузится достаточно быстро, Кутопия тоже, примерно секунд 10-15 (могу и ошибаться), если надо, то могу с секундомером засечь:). А вот приложения все по разному, те которые шли в качестве примеров для СЕ и Кутопии (написаны на С++) грузятся 2-4 секунды, а вот те, которые написаны на С# дольше, ибо подгружается фреймворк, но тоже в пределах разумного. А вот подключение экранов диагональю более 7" походу невозможно без VGA адаптера, поскольку железка по сути есть обычный КПК, причем довольно старый, а там большие экраны не предусмотрены. Тут имеет смысл смотреть в сторону Pandaboard, там уже кортексы стоят и есть аппаратная поддержка FullHD и HDMI выход на плате, можно хоть плазму настенную подрубить. Плюс ставится армовская версия убунты и получается неттоп:)
0
Не, секундомера не надо :) Спасибо, этой инфы достаточно. Мне главное что загрузка идёт быстрее, чем обычного компа с виндой.
В описаниях плат пишут что TFT поддерживаются до 10-12" и до 1024х768. Вот только у 10" матриц обычно другое управление, чем у 7". По крайней мере у тех, что я посмотрел.
О, PandaBoard очень интересная тема, учитывая цену. Всё что я до этого видел на А8-А9 было существенно дороже. Спасибо за наводку, буду иметь её ввиду.
0
не, для умного дома надо изучать и программить андроид, покупать 7 дюймовый планшетник (epad) на том же ебее за 100 баксов, но уже с вай фаем, и вперед по вифи через роутер команды в ethernet слать, или к планшетнику же можно и ethernet адаптер присоединить…
а из friendlyARM лучше всего встраиваемый интерфейс в какой-нить мощный девайс с ethernet'ом.
0
  • avatar
  • AntiL
  • 02 августа 2011, 19:42
Таки да, для умного дома лучше планшетник в качестве фронт-энда. Сам собираюсь прикупить. На ибее, наверное…

В очередной раз убедился, что в линуксе все очевидное делается макмсимально неочевидно. :-)
0
  • avatar
  • _YS_
  • 02 августа 2011, 22:36
Фронт-эндом можно что угодно сделать. Хоть ИК-пульт, хоть мобилу. А вот бэк-энд? АВРки или даже STM32 я бы в этом качестве не взял, сложно на них потом делать гибкую софтовую систему. Автоматизацию ещё можно, а вот в полной мере «умный» дом — нет. Да и управлять домом только по wi-fi — я бы не стал. Сидеть без света только потому что роутер сдох — не хочется :) Утрирую, но мысль понятна. Впрочем это уже оффтопик.
0
А вот бэк-энд?

Если браться серьезно, я бы взял «настоящий» комп в форм-факторе типа mini-ITX. Причем, желательно, x86-совместимый (Intel Atom, скорее всего). Там все проще, ибо софта немеряно.
0
Нафиг-нафиг-нафиг! А то останется только винду туда поставит и будешь потом объяснять соседям что торчишь на улице, потому что дом твой подвис, войти не можешь.
А если серьезно, то я резко против такого решения. Шум, ненадежность, потребление энергии (даже большой УПС протянет всего несколько часов, а всякое бывает), банально габариты. Часть проблем можно решить в той или иной мере, но зачем их создавать изначально?
0
Шум, ненадежность, потребление энергии

Видимо, Вы давно не смотрели каталоги. Вот, например. Полностью пассивное охлаждение, потребляет не особо много. С надежностью это Вы тоже зря, все там в порядке.

Кстати, я бы как раз таки поставил туда WinXP. Потому, что удобно и просто.
0
нагрузите его посильнее и большим ли будет аптайм до первой перезагрузки
0
Т.е., Вы полагаете, что ПО умного дома будет жутко грузить процессор? Это вряд ли. Там скорее простая логика.
0
Ок, согласен, вариант имеет право на жизнь, разумные аргументы у меня закончились, но от субъективных никуда не деться :)
В любом случае девайс из топика весьма интересен. Сегодня заказал и оплатил из китая аналог, super6410, может хотя бы будет повод попробовать программить под линукс. А то кроме скриптов ничего под него не писал.
0
но от субъективных никуда не деться :)

Именно. :-) Сколько сталкивался с юниксами — всегда оставалось ощущение замороченности и извращения. :-)

В любом случае девайс из топика весьма интересен.

Ну, с этим-то никто и не спорит.
0
Когда год назад только начинал работать в этой области тоже было страшно. Потом втянулся и сейчас все кажется очень логичным, проблемы возникают только при написании драйверов.
0
Да мне не страшно, мучает ощущение нелогичности.
0
По мне все логично, рекомендую к прочтению М. Джонсона с Э.Троаном и Роберта Лава.
0
ссылку не подкинете? может у них интересное что нибудь в дополнение найду.
0
Заказал тут:
www.armdevs.com (странно, сейчас не работает, проблемы с днс)
Или через их веб-магазин www.wishop.net/
Очень приятные и быстрые в общении, в Россию отправляют через EMS, цена посылки вышла 36 баксов (на сайте посчиталось 42 за DHL при оформлении). Заказал super6410 + 4.3LCD + VGA adapter.
Пытался найти посоветованную pilamaster'ом Panda Board, так и не нашел где заказать за адекватные деньги. Американцы хотят 120 баксов за доставку, да и всё равно не отправляют в Россию из-за экспортных ограничений (ага, я эту плату в ракету поставлю и им обратно отправлю). Остается вариант мутить с shipito, но пока лень, обойдусь 6410й.
0
Ага, с пандабордом проблемы, в Россию не шлют, типа высокотехнологичная железка. Хотя efind.ru выдал такое:
Pandaboard
Single-board computer: OMAP4430 1GHz processor. SGX540 GPU, 1 GB DDR2 SDRAM. SD Card slot. Wired 10/100 Ethernet, wireless Ethernet, Bluetooth. 100 x 110 mm. Video out DVI, HDMI. Stereo audio out.
+7 (812) 714-2899 order@scanti.ru www.scanti.ru/
+7 (495) 781-49-45 order@scanti.ru www.scanti.ru
Написано, что на складе есть 3 штуки по цене 548,74 $ (мелкий опт).

Еще в Москве есть тут www.mgktrade.com, но по неадекватной цене в 20577 руб.
0
Еще ссылка по теме. Tutorial. Если кому то интересно — могу сделать перевод со своими комментариями.
0
не отправляют в Россию из-за экспортных ограничений
COCOM жив
0
Я об этом и говорю. Взял себе Zotac ION NM10 года полтора назад (сейчас у них есть более интересные штуки IONITX, на zotac.com найдете). Подключил Терабайтный винт — сделал файловую помойку на FTP. Потом постепенно наросли всякие ssh, http итд.
Для умного дома самое то имхо. Плата размером 17x17 см, высота около 5 с радиатором. Влезает обычная DDRAM3. Сейчас собираюсь взять SSD, и ускорить загрузку. Загрузка около 30 секунд занимает — Gentoo Linux. И я ей почти никогда не пользуюсь — всегда в hibernate или suspend засылаю.
Вообще тема быстрой загрузки обсасывается в инете довольно подробно: OpenFirmware, coreboot, u-boot.
0
Загрузку операционки ускорить можно. А что насчет биоса? На обычных матплатах это как правило 10-15 секунд от включения до начала загрузки ОС, а тут как?
0
Коротко говоря вот: www.youtube.com/watch?v=CN0XyBtyhxY
Подробнее пока не разобрался. Читал еще на сайте www.coreboot.org/Welcome_to_coreboot, но свою материнку там не нашел.
Доделаю Web interface и пойду с биосом разбираться.
0
Кстати, еще о платформах: habrahabr.ru/blogs/DIY/125322/
0
Кстати, еще о платформах: __http://habrahabr.ru/blogs/DIY/125322/__

Ссылку заэкранировал, а то как спам отфутболивали.
0
Нормальная ссылка тоже запостилась, кстати.
Там, однако ж, проц от броадкома. Сия конторка по скрытности уделает китайцев. У ингеника вон даже ОС в сорцах выпросили просто так, под обещаение в паблик не класть, а у этих солидные проекты вроде дд-врт документации допроситься не могут.
0
Бродком дает инфу только партнерам. По работе у меня устройства как раз на чипах BCM963281 и других, так у нас даже даташиты шифрованные.
0
У ингеника вон ...

Тоже те еще фрукты. Сорцы, это, конечно, хорошо. Только где нормальный мануал на, например, JZ4725? Есть только краткий даташит.
0
Нууу… Что-то меня мучает подозрение, что его просто нет) Типа, все собрано из стандартных блоков, смотрите доки на них.
0
Дыг а ссылки где на них?
0
В гугле)
На самом деле я и сам особо с процем не ковырялся. В основе-то стандартный МИПС, а вот насколько стандартны периферия и дсп-ядро — не знаю.
0
Кто тебя отфутболил? О_о
0
Да никак))) Наверно просто вставил тэг с ссылкой, но без текста. Кстати это недочет, если пустой текст, то ссылка не вставляется, лучше бы если текст пустой, то дублировался бы ссылкой.
0
Да не, никакого тега, просто ссылка. А мне и говорят, типа, нехорошо спамить.
0
Возможно ты случайно отослал мессагу дважды подряд. У меня в последнее время в мышке левый микрик косячит — периодически даблклик выдает, так я тоже периодически виу «Стоп! Спам!», но мессага добавляется.
0
Сапожник без сапог)) как всегда)
0
Ага :)
Ну и мыша логитек, ее разбирать чуть сложнее, чем китайцев, поэтому лень. Да и с микриками проблема… Да и не единственное это, к чему в ней ручки приложить надо)
0
Вот и у меня также) Благо сегодня немного разгреб висяки. С интернетом разобрался. Теперь у меня 4 потребителя интернета, IPTV приставка, сетевое хранилище на 300гб DNS-300, роутер Dir-320. На днях еще один интернет терминал поставлю, гостевой, осталось систему поставить и d-link DWA-125 купить))
А вот розетку лень поменять, жена каждый день пилит)))
0
дом на виндовс да с учётом надёжности жёсткого диска…
Интересно. А если при экспериментах с софтом вирус попадёт?
0
  • avatar
  • Ross
  • 04 августа 2011, 02:30
А если при экспериментах с софтом вирус попадёт?

И чего? В порты они не пишут. Да и потом, с какой стати он должен туда попасть? При каких экспериментах? Что бы там не говорили, а все зависит от кривизны рук пользователя. В юниксах, кстати, наделать фигни еще легче, чем в Win.

Кстати, софт-то, очевидно, предполагается самописный, следовательно, уникальный. Где опасность?

с учётом надёжности жёсткого диска…

Почему-то все тут рассуждают так, как будто сервер умного дома будет круглосуточно обрабатывать огромные объемы данных по сложнейшим алгоритмам и отдавать терабайты информации по сети. В реальности же большую часть времени он будет практически простаивать. Но, если уж отдавать должное паранойе, то можно поставить SSD.
0
Недавно софт писал для mini2440. Потом защитился по учебе на этой плате.
Работает вроде нормально. Операционная система Windows CE.
0
  • avatar
  • rol20
  • 07 августа 2011, 14:51
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.