Как улучшить время загрузки для малины Pi?

Я создаю встраиваемое удаленное приложение, которое не будет постоянно включено. Я играю с разными дистрибутивами ОС и могу сократить время загрузки, используя более качественные SD-карты с более быстрым скорость чтения. Я не привязан к какому-либо определенному дистрибутиву, поэтому я могу разделить столько, сколько необходимо для использования минимального дистрибутива Linux.

(Я попытался найти тесты, которые люди использовали для повышения времени загрузки, но я не нашел ничего с жесткими цифрами.)

Я мог бы также использовать создать root (см. также видео YouTube Raspberry Pi - Super Fast Boot Time - Развлекательная система Marshmallow

26 голосов | спросил Layke 26 MarpmWed, 26 Mar 2014 16:15:26 +04002014-03-26T16:15:26+04:0004 2014, 16:15:26

8 ответов


12

Если вы объедините Arch Linux с функциями, предложенными Фредом, вы должны получить обычно быструю загрузку ОС.

Что замедляет загрузку ОС, это

  1. Скорость медленного чтения /записи (I /O).

    Таким образом, вы используете более быструю SD-карту будет , карта класса 10 будет значительно быстрее, чем карта класса 4 . Я неправильно понял, как работают классы SD-карт, и это было четко указано в комментариях, но я плохо себя чувствую. Фактически, карта класса 10 будет быстрее, чем карта класса 4 для больших передач файлов , таких как HD-видео и многое другое. Очевидно, класс 4 работает так же, как и с меньшими файлами. Опять же, мой плохой, но эй, мы все учимся снова и снова.

  2. Увязанная последовательность инициализации.

    Если у вас много программного обеспечения, которое срабатывает во время фазы загрузки, время загрузки будет медленнее. Больше программного обеспечения, начиная == Более длительное время загрузки.

    Таким образом, если вам нужна быстрая загрузка, вырезайте как можно больше программного обеспечения из последовательности init. Вы можете создать простой скрипт (или я уверен, что он есть там), который запустит программное обеспечение после , основная загрузочная последовательность завершится, еще раз увеличив загрузку.

Это в основном это. Arch Linux, вероятно, путь, в сочетании с теми функциями, о которых говорил Фред, как я уже говорил. Arch - это минимальная ОС very , и, возможно, это не лучшая вещь для новичков, но если у вас есть опыт работы в Linux, то идите на нее. Он просто немного настраивается, поскольку он поставляется с минимальным минимальным уровнем установки и , а именно .

Надеюсь, что ваш проект пройдет хорошо!

ответил RPi Awesomeness 26 MarpmWed, 26 Mar 2014 18:37:53 +04002014-03-26T18:37:53+04:0006 2014, 18:37:53
7

Я предлагаю использовать Arch Linux.

Я получаю нормальное время загрузки 5s (ядро) + 5s (в пользовательское пространство), и это не требует больших усилий, потому что для init используется systemd.

ответил 10robinho 26 MarpmWed, 26 Mar 2014 18:08:43 +04002014-03-26T18:08:43+04:0006 2014, 18:08:43
7

Я написал статью здесь .

Короче: используйте systemd.

Вы можете легко запустить приложение RaspberryPi менее чем через 8 секунд после того, как вы запустили шнур питания, или менее 3 секунд после загрузки Linux.

Пример здесь, моя служба называется samplerbox.service:

введите описание изображения здесь>> </p>

<p>  Примечание. Я не пытался оптимизировать время в пространстве пользователей, потому что мне это не нужно: мое приложение запускается в любом случае, поэтому я не возражаю, если сетевое присвоение DHCP /IP занимает 8 секунд после моего приложения был запущен.  </p></body></html>

ответил Basj 30 Maypm15 2015, 15:52:11
4

Оптимальное решение, вероятно, заключается в создании дистрибутива, который выполняет только то, что вы хотите, при загрузке, таким образом, вам гарантировано минимальное время (используя минимальную систему инициализации, такую ​​как sinit ). В качестве альтернативы вы можете использовать функцию suspend to disk ( hibernation ) ядра Linux. После загрузки действия приостановки и возобновления позже будут довольно быстрыми, и система полностью отключена тем временем.

ответил Fred 26 MarpmWed, 26 Mar 2014 17:09:19 +04002014-03-26T17:09:19+04:0005 2014, 17:09:19
3

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

ответил Drunken Code Monkey 27 MaramThu, 27 Mar 2014 07:22:36 +04002014-03-27T07:22:36+04:0007 2014, 07:22:36
1

Используйте TinyCoreLinux . Он предназначен для быстрой загрузки и для выключения питания.

ответил avra 27 MarpmThu, 27 Mar 2014 12:39:10 +04002014-03-27T12:39:10+04:0012 2014, 12:39:10
0

Вы можете попробовать использовать eINIT для ускорения процесса загрузки: : http://sourceforge.net/projects/einit/

К сожалению, в настоящее время (октябрь 2016 г.) на домашней странице eINIT отмечается:

  

eINIT использовался для альтернативной реализации программы /sbin /init для Linux и FreeBSD. Ну, я полагаю, что это все еще есть, но проект был приостановлен уже много лет.

ответил avra 27 MarpmThu, 27 Mar 2014 12:39:10 +04002014-03-27T12:39:10+04:0012 2014, 12:39:10
-3

Удалите все модули ядра, которые вы не будете использовать.

ответил mrpi64 2 PMpWed, 02 Apr 2014 16:10:16 +040010Wednesday 2014, 16:10:16

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132