Я создаю встраиваемое удаленное приложение, которое не будет постоянно включено. Я играл с различными дистрибутивами ОС и могу существенно сократить время загрузки, используя лучшие SD-карты с более высокой скоростью чтения. Я не привязан к какому-либо конкретному дистрибутиву, так что я могу сократить столько, сколько нужно, чтобы использовать минимальный дистрибутив Linux.
(Я пытался найти тесты, которые люди использовали для улучшения времени загрузки, но я не нашел ничего с точными цифрами.)
Я также могу использовать сборку root (см. Также видео на YouTube Raspberry Pi - Super Fast Boot Time - система развлечений Marshmallow ) ...
Ответы:
Если вы комбинируете Arch Linux с функциями, которые предлагает Фред, у вас должна получиться в целом быстрая загрузка ОС.
Что замедляет загрузку ОС, так это
Низкая скорость чтения / записи (I / O).
Таким образом , вы используете более быструю SD - карту будет помогать,
класса 10 карт будет существенно быстрее , чем 4 -го класса карты будет. Я неправильно понял, как работают классы SD-карт, и это было ясно указано в комментариях, мой плохой. На самом деле, карта класса 10 будет быстрее, чем карта класса 4 для передачи больших файлов, таких как HD-видео и еще много чего. Очевидно, что Class 4 работает так же хорошо с небольшими файлами. Опять моя плохая, но эй, мы все учимся время от времени.Замкнутая последовательность инициализации.
Если у вас есть много программного обеспечения, которое запускается во время фазы загрузки, время загрузки будет медленнее. Больше запуска программного обеспечения == Более длительное время загрузки.
Таким образом, если вам нужна быстрая загрузка, вырежьте как можно больше программного обеспечения из последовательности инициализации. Вы можете создать простой скрипт (или я уверен, что он там есть), который будет запускать программное обеспечение после завершения основной последовательности загрузки, распределяя нагрузку немного больше.
Это в основном это. Arch Linux - это, вероятно, лучший путь в сочетании с функциями, упомянутыми Фредом, как я уже говорил ранее. Arch - очень минимальная ОС и, возможно, не самая лучшая вещь для начинающих, но если у вас есть опыт работы с Linux, то сделайте это. Это займет немного настройки, так как требует минимума для установки и все .
Надеюсь, ваш проект пройдет хорошо!
источник
Я предлагаю использовать Arch Linux.
Я получаю нормальное время загрузки 5 с (ядро) + 5 с (для пользовательского пространства), и это не требует особых усилий, потому что оно используется
systemd
для init.источник
systemd
имеет большое значение, по сравнению сsysvinit
. Смотри мой ответ .Я написал статью об этом здесь .
Короче говоря: использовать
systemd
.Вы можете легко запустить приложение RaspberryPi менее чем через 8 секунд после подключения шнура питания или менее чем через 3 секунды после начала загрузки Linux.
Вот пример, мой сервис называется
samplerbox.service
:Примечание. Я не пытался оптимизировать время в пользовательском пространстве, потому что оно мне не нужно: мое приложение все равно запускается рано, поэтому я не возражаю, если сетевая атрибуция DHCP / IP займет 8 секунд после запуска моего приложения.
источник
Оптимальным решением, вероятно, является создание дистрибутива, который будет делать только то, что вы хотите при загрузке, таким образом, вам гарантировано минимальное время (используя минималистичную систему инициализации, такую как sinit ). В качестве альтернативы вы можете рассмотреть возможность использования функции приостановки на диск ( гибернации ) ядра Linux. После загрузки операции приостановки и возобновления выполняются довольно быстро, и в это время система полностью отключается.
источник
Использование статически связанного ядра вместо драйверов modprobing также может значительно повысить производительность. Существуют и другие оптимизации, которые необходимо выполнить, тщательно настроив и перекомпилировав ядро.
источник
1) Do this in command line, 2) Do this and this 3) Modify this and this in config.txt 4) Boot, it will take 3.2 seconds! 5) Here is the result of my benchmarks: ...
)Используйте TinyCoreLinux . Это сделано для быстрой загрузки и выживания при сбоях питания.
источник
1) Download an image here: +link 2) Flash it on your microSD 3) Modify this and this in config.txt 4) Boot, it will take 3.2 seconds!
)Вы можете попробовать использовать eINIT для ускорения процесса загрузки:: http://sourceforge.net/projects/einit/
К сожалению, в настоящее время (октябрь 2016 г.) домашняя страница eINIT отмечает:
источник
Удалите все модули ядра, которые вы не будете использовать.
источник