2015-06-09 4 views
4

Я пытаюсь построить минимальное ядро ​​под 1 Mb с Buildroot. Он предназначен для небольшой платы с qspi memory и базовые функции, ethernet, usb, spi, и некоторые GPIO's. Доступ к базовому терминалу через ssh и UART. Мои первые мысли, если даже можно изменить ядро ​​.config via linux-menuconfig для достижения этой длины.Buildroot пользовательское ядро ​​под 1MB

Также, если возможно, идентифицировать избыточные части без глубокого знания архитектуры ядра и исключить их из компиляции.

Если кто-то может направить меня в правильном направлении, как решить эту проблему или даже указать некоторые инструменты и способы, как это сделать, было бы очень полезно.

Спасибо!

+0

Статья: [Tuning Embedded Linux] (http://elinux.org/images/2/2b/Elce11_hart.pdf) может вам помочь. – alexander

+0

@alexander спасибо. Я проверил это уже и больше связан с Yocto. Все еще очень информативно! Но я не был уверен, как применить его подход к buildroot. Может быть, я просто недостаточно знаком с buildroot, чтобы увидеть ссылки.Также он перечисляет размеры модулей ядра и удаляет их, и я думаю, что это довольно сложно не нарушать зависимости. – Michal

+0

Я опубликовал неполный ответ. Какой SOC вы используете? Поэтому я мог бы изучить источники yocto и, возможно, рекомендовать что-нибудь еще. – alexander

ответ

2

Если у вас есть рабочий корень для вашей доски, то лучше продолжать работать с ним. Техник для отключения параметров ядра должен быть таким же. В article он достиг ~ 0,7 МБ uImage, потеряв много функциональности (p40). Он начал с минимальной (голой) конфигурации (p27) и добавил блоки конфигураций. Поэтому вместо того, чтобы идентифицировать избыточные части, вы можете создать минимально возможный uImage, который вы можете загрузить. Затем добавьте дополнительные опции: ext2, serial и так далее. На самом деле эта работа требует большого тестирования. И вы, вероятно, тормозны зависимости.

Kernel configs (рабочий и новый) можно сравнить с помощью diff -Naur, чтобы вы могли видеть, что изменилось.

Offtopic:

Похоже Yocto официально поддерживается Altera. here - инструкции, как построить altera-image-minimal. Если вы в порядке с этим размером, чем используете его и не тратите время на минимизацию uImage. Если вам нужны дополнительные пакеты, установленные в нем, вы можете легко расширить его.

И here являются инструкциями по строительству Angstrom (распределение на основе yocto). Вы можете создать пользовательский образ на основе минимального размера консоли.

Я использую Angstrom в производстве. Должен сказать, было очень сложно использовать его в первый раз.

3

Независимо от того, построите ядро ​​с помощью buildroot, это не имеет особого значения. Важно настроить его так, чтобы он входил в 1 МБ. Когда вы создаете ядро ​​из buildroot, вы можете сделать это с помощью make linux-menuconfig, как вы упомянули.

Это означает, что получить ядро ​​под 1 МБ будет довольно сложно. Biff once did this for an x86-based platform, bifferboard. Но это было без сети или USB.

Вы можете обратиться к the kernel size tuning guide, который имеет ссылки на некоторые исправления, чтобы уменьшить размер. Но он не обновляется через пару лет.

+0

В этой конфигурации конфигурации есть сеть и USB: github.com/bifferos/bb/blob/master/tiny/linux-2.6.37.6/.conf ig – Keeely

Смежные вопросы