Beaglebone Black Touchscreen Issue

I hope someone here can give me a pointer or two with an issue I’m having and how to get to the bottom of the issue.

I have a Qt application that works, so does the touch screen. The issue is that the time before the application launches is very slow (roughly 1 minute and 30 seconds). My goal is to speed this up.

I am using systemctl to start the application. The file is shown below:

[Unit]
Description=Application Service
After=networking.service

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/bash /etc/init.d/Application start &

[Install]
WantedBy=graphical.target

This works, the touchscreen works, but as I said the boot is very slow.

If I change this to

[Unit]
Description=Application Service
Before=networking.service

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/bash /etc/init.d/Application start &

[Install]
WantedBy=multi-user.target

The application still works, the time before the application launches is roughly half of what it was before, but the touch screen does not work. I’m struggling to narrow down how to locate whatever driver is not loading correctly or not loading in the correct order. Does anyone know how I could find this out?

systemctl list-dependencies Scanscale.service
Application.service
● ├─system.slice
● └─sysinit.target
○   ├─dev-hugepages.mount
●   ├─dev-mqueue.mount
●   ├─kmod-static-nodes.service
●   ├─proc-sys-fs-binfmt_misc.automount
●   ├─sys-fs-fuse-connections.mount
●   ├─sys-kernel-config.mount
●   ├─sys-kernel-debug.mount
●   ├─sys-kernel-tracing.mount
●   ├─systemd-ask-password-console.path
●   ├─systemd-binfmt.service
●   ├─systemd-firstboot.service
●   ├─systemd-journal-flush.service
●   ├─systemd-journald.service
○   ├─systemd-machine-id-commit.service
●   ├─systemd-modules-load.service
●   ├─systemd-network-generator.service
○   ├─systemd-pcrphase-sysinit.service
○   ├─systemd-pcrphase.service
○   ├─systemd-pstore.service
●   ├─systemd-random-seed.service
○   ├─systemd-repart.service
●   ├─systemd-sysctl.service
●   ├─systemd-sysusers.service
●   ├─systemd-tmpfiles-setup-dev.service
●   ├─systemd-tmpfiles-setup.service
●   ├─systemd-udev-trigger.service
●   ├─systemd-udevd.service
●   ├─systemd-update-utmp.service
●   ├─cryptsetup.target
●   ├─integritysetup.target
●   ├─local-fs.target
●   │ ├─-.mount
●   │ ├─sys-kernel-debug.mount
○   │ ├─systemd-fsck-root.service
●   │ └─systemd-remount-fs.service
●   ├─swap.target
●   └─veritysetup.target

The list of dependencies doesn’t change regardless of the order in systemctl. Any direction someone can give me is appreciated!

1.5 minutes to complete the boot process is a very long time. I’d start by trying to find out what the holdup is:
journalctl -k will show the boot logs with times.
systemd-analyze plot > startup_order.svg will export a graphic of systemd’s startup to a file.

1 Like

Not really, that is actually not too bad considering the load. We had one up on weston with systemd and that is not out or normal.

Only way to get a fast boot time is do a yocto core-image-minimal and just add exactly what is needed. Might have to even run without systemd, just depends on what is needed.