I'm currently working on building my own image for the dragonboard410c with OpenEmbedded. The goal essentially is to get a graphical QT application running as quickly as possible (possibly with a splash screen showing beforehand).
Currently I'm using the morty branch with the rpb-eglfs distribution as a base.
By removing unneeded options from "rpb-qt5-image.bb" (which I am building with bitbake) and removing the serial console output in "dragonboard410c.conf" I was able to reduce boot time a bit already. My test application is started as a systemd service and it's working so far.
According to systemd-analyze the kernel boot time takes about 6s while the entire userspace is already down to 1s (so its probably worth trying to reduce the former). As for the kernel size, it is down to ~150MB, with the largest parts being "firmware-qcom-dragonboard410c", "mesa-megadriver" and "kernel-image--image-4.4.38+linaro".
My question is: Is there an easy way to further decrease kernel boot time? For example, is it possible to skip all functionality and drivers related to bluetooth, wifi or sound, if I don't need any of them (but specifically keep the graphics driver/opengl working)?
Are there any other suggestions or resources I should look into?