Such a feature is not really available in journald.
The journald.conf man page documents this limitation of
If forwarding to syslog is enabled but nothing reads messages from the socket, forwarding to syslog has no effect.
Which is why messages from early boot are lost. The man page also states:
With [imjournal], messages do not have to be read immediately, which allows a logging daemon which is only started late in boot to access all messages since the start of the system.
Which is why using such a method is recommended.
I guess a "kludge" could be done when rsyslog is first started, by feeding it messages stored in the journal since boot, using
journalctl to read them and
logger to feed them to rsyslog. Perhaps something as simple as this could work:
journalctl -b | logger -u /run/systemd/journal/syslog
Though it's possible
logger will try to add dates and tags to the messages and the final effect might look different from the forwarded messages... Perhaps you might need something more raw or low-level than
logger, or maybe reformat
journalctl output so it's in a format rsyslog will understand...
This solution has a race condition, since it's quite possible some messages will be lost (or duplicated) in between this initial feed and journald's forwarding.
Getting imjournal working is definitely a better solution. I'm curious as to why it can't be made available, after all both systemd and rsyslog software were compiled and built for your device, so it would be at least technically possible to build the imjournal mode as well... Perhaps there's some cross-compiling involved which might pose challenges linking to systemd libraries, but I'm sure that's a solvable problem, so maybe consider asking a question towards getting that working instead.
Another possible solution to consider is using the native journal remote protocols (rather than the syslog protocol and daemon) to centralize your logs.
There's systemd-journal-remote which you can run in "sink" mode on a remote host to receive entries from your embedded device, to save them locally. And systemd-journal-upload, which you can run on your embedded device to push journal data to the remote host.
This should both preserve messages from early boot and also keep all the metadata, since the messages do not have to be converted to the syslog format. It also has the advantage that you don't need to keep a locally running rsyslog daemon on your embedded device.
(The journal also supports a "pull" model, where you run systemd-journal-gatewayd on your embedded device and configure systemd-journal-remote to pull from it.)