Я работаю над встроенной системой. ОС - это проект Yocto (Ubuntu). Мое целевое оборудование должно запускать приложение анимации после включения. Я запускаю мое анимационное приложение в качестве службы systemd под basic.target.

Но как только я включил плату, экран флэш-памяти появляется примерно на 500 мс, и после этого курсор мигает в течение 10 секунд, после чего запускается мое приложение для анимации. так что мое анимационное приложение начинает показываться на экране примерно за 13 секунд.

Я хочу убрать этот экран со вспышкой и курсор мигает. Что я должен делать? Есть ли способ минимизировать время загрузки ядра?

Результат обвинения systemd-analysis выглядит следующим образом:

      1.065s dev-mmcblk1p1.device
      1.004s launchHMIUSB.service
       518ms launchWeston.service
       437ms node-startup-controller.service
       287ms kmod-static-nodes.service
       286ms systemd-remount-fs.service
       279ms pas-daemon.service
       254ms systemd-modules-load.service
       245ms alsa-restore.service
       219ms systemd-journal-flush.service
       219ms connman.service
       207ms systemd-udev-trigger.service
       202ms dev-hugepages.mount
       190ms systemd-journald.service
       138ms systemd-sysctl.service
       133ms ofono.service
       127ms systemd-vconsole-setup.service
       121ms tmp.mount
       120ms systemd-update-utmp.service
       117ms dev-mqueue.mount
       102ms systemd-logind.service
       101ms node-health-monitor.service
        93ms sys-fs-fuse-connections.mount
        90ms sys-kernel-config.mount
        90ms sys-kernel-debug.mount
        88ms systemd-tmpfiles-setup-dev.service
        74ms user@0.service
        68ms wpa_supplicant.service
        67ms systemd-udevd.service
        60ms nodestatemanager-daemon.service
        53ms systemd-update-utmp-runlevel.service
        31ms systemd-random-seed.service
        31ms systemd-user-sessions.service
        18ms sshd.socket
        16ms systemd-tmpfiles-setup.service
        16ms Data-mnttemp.mount
        15ms var-volatile.mount

2 ответа2

2

Минимизация времени загрузки - шаг 3. Ваши шаги 1 и 2 выясняют, что на самом деле занимает так много времени и почему.

Процесс загрузки не такой прямой, как «кнопка питания → ядро → ваше приложение». То, что вы получаете в течение этих первых 500 мс, является вашей первоначальной прошивкой; загрузчик, если есть; и ядро Linux, загружающее графические драйверы. Остальное - «init» (systemd), запускающий различные сервисы, пока он не достигнет точки, когда он может даже начать запускать ваше приложение.

  • Изучите системные журналы, чтобы найти наиболее очевидные ошибки.
  • Изучите выходы systemd-analyze blame systemd-analyze critical-chain , systemd-анализ критической цепочки, чтобы посмотреть, какие системные модули запускаются дольше всего. Выясните, почему каждый блок медленный, и нужен ли он вообще. (Большинство юнитов начинаются в параллельных группах. Некоторые из них сериализуются, но иногда без необходимости.)
  • Используйте такие инструменты, как bootchartd для мониторинга ресурсов во время загрузки системы. Например, это может быть связано с тем, что ваше хранилище слишком медленное или что определенная служба слишком долго загружает процессор.
0

Мигание курсора было удалено путем передачи vt.global_cursor_default = 0

setenv bootargs 'vt.global_cursor_default=0'
saveenv

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .