Распаковал, запустил
make distclean
make imx53loco_defconfig
make menuconfig (полазил по менюшке, поставил галочку генерироваться zImage)
make busybox-menuconfig (ничего не менял)
make
Около 2х часов у меня чтото скачивалось, устанавливалось, собиралось.
В итоге в папке images я получил rootfs.tar rootfs.jffs2 и uImage
Поиском нашёл zImage.
Создал на SD-карте 2 раздела размерами 50 МБ и всё что осталось. В начале карты неразмеченная область в 2 МБ в которой записан u-boot от Роберта Нелсона. Закинул zImage на раздел boot. На раздел rootfs распаковал файловую систему rootfs.tar
Вобщем система стартует и доходит до предложения ввода логина/пароля.
Сразу возникли вопросы
1. Не могу зайти под root т.к. не могу понять где прописывается пароль root пользователля. Могу зайти под default без пароля но этот пользователь не обладает правами root.
2. В настройках busybox не нашёл возможности установить пакеты apt-get dpkg. Их вообще можно установить используя busybox?
3. Сама rootfs в распакованном виде занимает ~3МБ что мне кажется маловато. Подскажите может быть есть какието ньюансы в конфигурировании которые я не учёл или возможно я не до конца установил файловую систему.
4. Правильно ли я понял что при необходимости пересборки проекта distclean лучше не подавать чтобы не удалить всё что было загружено ранее
1. загляните в /etc/passwd в рутовой - может вы шелл не собрали для рута.. или в распакованной на карточку рутовой подмените этот файл на свой с заранее известным паролем
2. похоже их там и нет (у меня стойкое ощущение что когда-то я их там видел).. в наличии ipkg и opkg
3. нормальный размер, основной вес занимает бинарник busybox и либы, все остальное формируется симлинками (ссылками на бузибокс)
4. не надо distclean - почитайте доку в каталоге билдрута /docs/manual
Пробовал менять файл на файл со своего компьютера где указаны root и user с известными паролями.
В настройках busybox нашёл dpkg. Но после сборки rootfs всёравно пакета нет в системе. Возможно я както неправильно собираю или распаковываю rootfs.
Сейчас делаю так.
make menuconfig - настариваю всё что качается ядра. Всё записывается в .config и вроде как работает т.к. меняются некоторые надписи после сборки и появляются дополнительные пакеты, которые я выбираю в настройках.
make busybox-menuconfig сдесь я не совсем уверен работает ли. Полазил по меню поставил галочку для dpkg и в принципе всё. После выхода согласился с предложением сохранить и всё.
make
через полтора часа получил zImage и rootfs.tar
закинул rootfs.tar на раздел rootfs и распаковал его tar xfvp rootfs.tar
Система запускается но с паролем для root проблема. и с пакетами тоже.
1. одновременно с passwd файл /etc/shadow пробовали подменить? пароль там лежит
2. как выглядит ошибка логина - "пароль неправильный" или молча глотает и снова "login:"?
Спасибо. Пароль подошёл. Вы сами создавали файлы с пользователями и паролями? или это возможно средствами buildroot (я не нашёл там меню где можно указать дефолтных пользователей).
Ну и ещё может подскажите по busybox - достаточно ли будет расставить все галочки, сохранить в конфигурацию по умолчанию и в итоге получить все необходимые пакеты в rootfs? Или там нужны определённые танцы с бубном?
И реально ли установить dpkg и с помощью него apt-get? Я несколько раз собирал rootfs с установленной галочкой dpkg но так и не обнаружил пакет в системе.
p.s. В топике где лежит архив Вы указали - после распаковки make и всё. К чему может привести если я сначала подаю make clean а потом все остальные команды?
можно сохранить нужный конфиг и указать в buildroot его для busybox
Package Selection for the target --->
[*] BusyBox
(package/busybox/busybox-1.20.x.config) BusyBox configuration file to use?
а какой в этом смысл ? не проще дистрибутив установить сразу ?
Спасибо за ответы и за полезную ссылку по изменению параметров builroot. Попробую ещё раз настроить busybox сохранить конфигурацию и собрать проект со своей конфигурацией.
Желание установить apt-get возникает из-за того что с
P.S. помощью этого пакета можно просто устанавливать другие пакеты (по крайней мере на ноутбуке в ubuntu проще написать apt-get install mplayer чем искать mplayer.deb или другие программы под свою архитектуру).
проще, но зачем тогда собирать buildroot ? в debian/ubuntu есть минималистичный образ для установки системы под свои нужды http://www.debian.org/CD/netinst/
или вообще можно собрать корневую под свои нужды на x86 машине https://wiki.ubuntu.com/ARM/RootfsFromScratch
я так например делал образ xubuntu (DE xfce) на ubuntu 10.04 для imx53 (ubuntu в отлчии от debian пакеты на ARM оптимизирует под armv7, debian - для старой архитектуры armv4 без поддержки аппаратных FPU)
но не забывайте, что дистрибутивы общего назначения при утсановке пакетов учитывают _свои_ зависимости - как в дистрибутиве принято, а это выливается в такой снежный ком что нафик не нужно :) какой-нибуть пакетик с бинарником 500 кбайт может вытянуть (и вытянет) десятки мегабайт совершенно не нужных пакетов. Для этого и существует buildroot - вы сами собираете пакеты учитывая только то что вам нужно в вашей системе (при этом buildroot автоматически выберет только минимально возможные зависимости)
Ещё раз спасибо за ответы и полезные ссылки.
У меня получилось собрать минимальный kernel с некоторыми изменениями в menuconfig и busybox-menuconfig. Если же добавлять какие-либо дополнительные пакеты для мультимедии (например mplayer, какието библиотеки от freescale, QT) то сборка завершается с ошибками причём они появляются не сразу, а через час после начала сборки.
Дабы не терять время в ожидании пока собирается ядро, я решил остановиться на варианте минимального ядра и разобраться с тем как собирать rootfs используя исходные коды. Я понимаю что это возможно сделать используя buildroot, но пока что не могу уловить всех тонкостей настроек.
Буду благодарен за ссылки на книги по соответствующей тематике (или просто названия). Сам же пошёл шерстить интернет в поисках полезного материала.
Ещё раз спаибо запомощь - успешная сборка ядра это уже значительный прогресс для меня.