LINUX.ORG.RU

Как сократить время загрузки системы?

 


2

1

Привет, ЛОР!

Стоит задача максимально увеличить скорость загрузки линукса (2.6.27), который крутится на сильно урезанной железке.

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

Как еще можно сократить время загрузки?

И, чтобы два раза не вставать, посоветуйте терминальный клиент, который умеет фиксировать время прихода данных по интерфейсу rs-232.

★★★★★

Отказаться от initrd, поставить systemd или на худой конец OpenRC и максимально распараллелить загрузку демонов. Отказаться от запуска иксов и отключить проверки файловых систем. Кстати, чем меньше разделов монтируется при загрузке, тем быстрее.

delete83 ★★ ()
Ответ на: комментарий от delete83

Еще один шаг: отказ от udev в пользу статичного /dev, но не уверен, что это сейчас еще возможно.

delete83 ★★ ()
Ответ на: комментарий от ymn

jffs2

Охпля! (пардоньте мой французский). Она ж весьма долго монтируется (сильно зависит от размера). Я отказался от неё и перешел в одном девайсе на squash а в другом UBI. Но у меня ядра 3.+. в 2.6.27 squash еще кажется не было, но была romfs

velikS ()
Ответ на: комментарий от ymn

интересная ссылка, большое спасибо!

Не за что, коллега :) Я в прошлом году летом нашел какой-то сайт, на котором чувак объяснял, как он грузит линукс + Qt аппликуху на 600МХц процессоре за секунду (!!!) Вот сейчас не могу линк найти :(

velikS ()
Ответ на: комментарий от velikS

да у того чувака просто топовая тачка по сравнению с моей:

/ # cat /proc/meminfo | grep MemTotal
MemTotal:        61636 kB
/ # cat /proc/cpuinfo
Processor       : ARM926EJ-S rev 4 (v5l)
BogoMIPS        : 107.52
Features        : swp half thumb fastmult vfp edsp java
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant     : 0x0
CPU part        : 0x926
CPU revision    : 4
Cache type      : write-back
Cache clean     : cp15 c7 ops
Cache lockdown  : format C
Cache format    : Harvard
I size          : 32768
I assoc         : 4
I line length   : 32
I sets          : 256
D size          : 32768
D assoc         : 4
D line length   : 32
D sets          : 256

Hardware        : Phytec 3250 board with the LPC3250 Microcontroller
Revision        : 0000
Serial          : 0000000000000000
ymn ★★★★★ ()

man ssd

Хочешь покрасноглазить сильнее — только самописный init на сях, только хардкор.

anonymous ()
Ответ на: комментарий от delete83

или на худой конец OpenRC

В котором даже параллельный запуск сервисов выпилили, из-за проблем? Ну-ну.

anonymous ()
Ответ на: комментарий от ymn

да у того чувака просто топовая тачка по сравнению с моей:

Пожалуй :) Вот нашел. У него где-то на сайте еще презентация была с описанием чего он оптимизировал.

http://www.zdnet.com/blog/hardware/1-second-linux-boot/10950

Я как-то хотел в конце проекта и у нас оптимизировать. Но пока нахожусь в рамках требуемого времени загрузки. У меня 6 секунд. Писал свой init процесс на C. Сэкономил где-то 0.5Сек в сравнении со стандартным init. Есть у меня и udev, но он запускается после старта приложения, иначе было бы +3Сек. Да, железо у меня тоже АРМ, но 400МХц :-Р

/ # cat /proc/cpuinfo 
Processor       : ARM926EJ-S rev 5 (v5l)
BogoMIPS        : 196.35
Features        : swp half thumb fastmult edsp java 
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant     : 0x0
CPU part        : 0x926
CPU revision    : 5

Hardware        : Weinmann P3 therapy device
Revision        : 020f
Serial          : ffffffffffffffff
velikS ()

Как еще можно сократить время загрузки?

Можно и с обычным инитом. Повесить запуск своей проги на респаунд прямо в /etc/inittab. Ну и ssd разумеется. У нас аппарат для приёма лаве весьма скор на загрузку, особенно горячую.

imul ★★★★★ ()
Ответ на: комментарий от ymn

Честно говоря не понял о чем речь? Об UBI?

Я просто тупо включил поддержку УБИ в ядре и гружу рутфс с неё.

я генерил имидж рутфс своими скриптами, потом перенес все в билдрут. Билдрут у меня сейчас для сборки тулчейна и генерации конечного имиджа рутфс для прошивки.

UBI, вроде, советуют с ядром не ниже 3.1. За базар не отвечаю, но вроде до 3.1 у них был баг - при выключении питания можно потерять систему. Если в сам деле интересно, как я собрал УБИ рутфс, то сообщи, не вопрос - накидаю куски конфигов и т.д. У тебя билдрут или как по-другому обошелся? Да, и еще, не знаю, насколько интересно, но: я у себя выкинул uboot. У меня проц. AT91SAM9G45. У него двух уровневый боотлоадер: свой собственный и УБут. Я немножко изменил их проприетарный бутлоадер и гружу ядро из него.

velikS ()
Ответ на: комментарий от velikS

Если в сам деле интересно, как я собрал УБИ рутфс

интересно

накидаю куски конфигов

если не сложно, кинь мне на мыло. учетная запись на gmail такая же как и в джаббере, джаббер в профиле)

У тебя билдрут или как по-другому обошелся?

рутфс у меня пока собирается ltib'ом.

я у себя выкинул uboot

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

ymn ★★★★★ ()
Ответ на: комментарий от ymn

если не сложно, кинь мне на мыло. учетная запись на gmail такая же как и в джаббере, джаббер в профиле)

Ушло

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

Тоже так поначалу думал, держал исключительно из-за загрузки тестового ядра по sftp. Потом выкинул. Пользуюсь NFS+kexec при отладке

проц у меня LPC3250

Ну эт я уже видел из sysinfo выше :-)

velikS ()
Ответ на: комментарий от ymn

Получил? У меня gmail настроен забирать письма с mail.ru, а на gmail меня рабочая сетка не пускает ))) Так что я отправил тебе с mail.ru, а посмотреть, что на него пришло, могу только дома )))

velikS ()
Ответ на: комментарий от velikS

да, получил. большое спасибо!

буду в скором времени ковыряться со всем этим) ты не будешь против ответить на некоторые вопросы по почте?

ymn ★★★★★ ()
Ответ на: комментарий от ymn

Не знаю, насколько я компетентен отвечать на вопросы :) Но, конечно, не проблема, чем смогу, тем помогу. Только вот с почтой проблема. Я сейчас сделал временный ящик на testVelik собака mail.ru. Давай через него

velikS ()
Ответ на: комментарий от ymn

Ok.

yaffs реально рулит.

А еще реальней рулит squashfs на NOR памяти. yaffs по функциональности сравнима с jffs. А в UBI есть некоторые вкусные фишки, которых другая система не даёт. Например, через GLUEBI драйвер получаете виртуальный mtdblock доступ к каждому тому (volume). Зачем? Например, у меня в требованиях к системе обеспечить доступ к устройству как к УСБ стику. Реализуется как 2 пальца об стол: включаем GLUEBI в ядре, выделяем том на УБИ, получившийся виртуальный mtdblock можно форматировать под ФАТ. Wear leveling обеспечивается UBI слоем. Отформатированное блочное устройство скармливаем mass storage гаджет драйверу. И всё )))

velikS ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.