Installation guide for LS1028A

Hey everyone :wave:

I’m thrilled to have received the LS1028A module and was able to successfully install the SOM.

Previously I was using the default SOM with an encrypted NVMe drive.

I didn’t do anything other than install the new module, and clearly I’m unable to boot with the new LS1028A module.

I’m currently downloading the LS1028A image from gitlab and plan to flash it and go through a fresh install.

It sounds like the NVMe SSD won’t work anymore with this chip, and I’ll have to use a SATA SSD.


  1. What are people currently doing for the whole no NVMe thing? I’m assuming this SOM has some storage on it to get started with.
  2. There doesn’t seem to be a SOM dip switch like on the MX8 module. How do I get into the bootloader this way?

Generally speaking, I’m starting a thread to ask questions about the install process, and learn how others have navigated this.

I see a few threads of folks running into wifi issues, so it seems like others have already navigated the install process and may be able to share the steps they took.

Thanks in advance for the replies, can’t wait to get this up and running :sunglasses:

All right, so I got the image flashed and tried to boot from it, but no dice.

It seems like according to the documentation on gitlab, I need to connect a couple of pins in order to get it to boot from the SD card?

So I will try and do that, but haven’t done anything like that before.

Another thing worth calling out is that I do still have the NVMe SSD drive installed, and when I open it up to look for pins to connect, I’ll remove that too.

Perhaps having it installed is messing with the boot process. :thinking:

I also have a LS1028A and for me it booted from SD-card just fine. I remember that there is a potential problem with the very first batch of LS1028A that got shipped out. You might want to confirm with if your specific SoM is affected by this problem or not.

Yes, the NVMe SSD will not work with LS1028A. I bought a SATA SSD for my LS1028A and use the NVMEe SSD in another machine.

There is no SoM DIP switch that lets you choose where to load u-boot from as it exists on the imx8mq. The configuration that the LS1028A is shipped can only load u-boot from SD-Card. It’s possible to change that but the process is quite involved.

1 Like

Thank you for the reply and heads up @josch :bowing_man:

I removed the NVMe, and re-flashed the SD card in case. I also re-seated all the connections.

I’m still getting a blank screen, it just arrived yesterday and has rev_02 on the SOM.

FWIW I ordered over a year ago, so I must be in the first batch.

I’ll reach out to support in case it’s related to what you mentioned.

Alright, so it is plug and play :tada:

I had the display cable flipped on accident.

It seems to be working now aside from some display flickering which is likely related to the display cable again.

It makes me wonder if it’s actually better to have the display cable above the heatsink vs. underneath it like the instructions showed.

1 Like

@josch Where did you put your standard SSD? Did you have to remove the wifi card or something?

Looking at the board I’m not seeing any other pcie lanes other than the NVMe slot.

I have an old samsung 860 drive from my desktop build I could repurpose for this. However, I can’t imagine finding the space to fit it.

Additionally, I’m not sure if it would be compatible, IIRC with the NVMe drives there were specific ones known to work well.

Do you have a known working drive you’d recommend?

Never-mind, I found this post. :man_detective:

I solved my screen flickering issues by putting tape around the display cable. The cable is under the heatsink, between the ls1028a and the heatsink. These two threads are relevant for you, I think:

1 Like

Okay, so I go my new SSD but am a bit lost on how to flash the image from the SD card to the SSD. I went with a samsung 860 evo with the sata interface and have it plugged into my reform.

I have the operating system and what not that I’ve been using the past few days on my SD card. I’d imagine I call reform-migrate or something like that.

However, I keep getting initramfs as soon as I try to boot the machine. What steps did those with LS1028A SOMs take during the switch?

I tried to look at the documentation page, but this doesn’t seem documented yet. I realize most reform users are wizards and can navigate this, but I’m not sure what to do.

Clearly I could rsync it and follow these steps, but I can’t boot from the SD card with the SSD installed.

Additionally, I know you need the SD card to boot to the SSD. What image should I be putting on the SD card, and how would it differentiate from the image on the SSD?

TLDR; How can I flash the SSD with the SD card image? I can’t boot into the SD card with the drive installed.

I will give the tape wrapping a shot. For the time being, I’ve been using ethernet only. Also generally speaking, thanks for all you do on this forum/the reform in general. You helped me setup my encrypted nvme ssd last time. :bowing_man: @josch

1 Like

It is correct that the current tooling is not properly documented yet. So you are absolutely correct in asking here instead of trying to find the (nonexistant) documentation for sysimage-v4. Unfortunately, writing documentation is really not something that is any fun for me :sweat_smile:

Additionally, the LS1028A is even more of a niche and much less tested than the other platforms. So it’s entirely possible that you are the first person running into some bugs. I’m thus very happy that you write about this as this allows me to potentially fix things. :slightly_smiling_face:

Yes, you need the SD-card but theoretically only to have u-boot on it. The rest of the system can be put onto eMMC or SSD. Theoretically (if everything works as expected) the same image should be able to work on eMMC, SD-Card, SSD and USB-stick. The only difference would be the entries in /etc/fstab because depending on where things are, different volumes are mounted as / and as /boot. This is why for the rescue SD-card image, we use LABEL=reformsdroot in /etc/fstab instead of /dev/mmcblk... which differs depending on the platform.

Now this is the interesting part to me. You are saying that if you have your SSD installed, your system refuses to boot from SD-card? This should not be happening. In commit 0bc4da6c I made u-boot also attempt booting from SATA but it should only try to boot from SATA (your SSD) after it has tried your SD-card. Does your SD-card contain a fresh system image for LS1028A?

If everything works as it should, running reform-migrate should indeed be all that is necessary. The reform-migrate script runs reform-boot-config at the end which should set up your /etc/fstab correctly. If it doesn’t, it would be useful to see what your /etc/fstab contains.

No worries! The Reform has been my favourite hobby project for a while now and it makes me happy to see others being happy with their Reform. :slight_smile:

1 Like

it just said it failed with no explanation when I tried it. I’ve not been able to find anywhere to tell the system that root should be /dev/sda3 and not the sd card

If you can reproduce the problem, please run the tool with sudo sh -x reform-... and then paste the last part of the output here so that I can see what is going on. This might as well be a bug in the code which I need to fix.

Theoretically you should be able to use reform-boot-config /dev/sda3 to achieve this.

Also, of course note, that the tools like reform-migrate or reform-boot-config are not doing any “magic”. They just automate some common tasks that otherwise also can be done by hand if one is familiar with mounting partitions somewhere, entering a chroot environment with /sys, /proc and friends mounted, editing /etc/fstab and running update-initramfs -u as required. You don’t have to use the reform-tools but if you decide that you do want to use them I’m of course grateful for any bug report you can provide. :smile:

that’s what failed:

set -eu
id -u
[ 0 -ne 0]
echo "this script...."

cat /proc/device-tree/model
[ 1 -ne 1]
[ --emmc = /dev/sda3 ]
[ ! -b /dev/sda3]
: /dev/sda3
set --
trap cleanup "$@" EXIT INT TERM
lsblk --noheadings --OUTPUT=mountpoint /dev/sda3
[ != ]
[ = ]
mktemp --tmpdir --directory reform-boot-config.XXXXXXXXXX
set -- /dev/sda3 /tmp/reform-boot-config.FAAYXdNcTc
mount /dev/sda3 /tmp/reform-boot-config.FAAYXdNcTc
[ 181.247882 ] EXT4-FS (sda3): recovery complete
[ 181.254056 ] EXT4-FS (sda3): mounted filesystem [UUID] r/w with ordered data mode, quota mode: none
[ ! -d /tmp/reform-boot-config.FAAYXdNcTc/boot ]
LIBMOUNT_FSTAB=/tmp/reform-boot-config.FAAYXdNcTc/etc/fstab findmnt --fstab --noheadings --evaluate --mountpoint /boot --output SOURCE
cleanup /dev/sda3 /tmp/reform-boot-config.FAAYXdNcTc
: /tmp
echo cleaning up /dev/sda3
cleaning up /dev/sda3
[ -d /dev/sda3 ]
umount /dev/sda3
[ 181.355817 ] EXT4-FS: unmounting filesystem [UUID]
[ 0 != 0 ]
echo cleaning up /tmp/reform-boot-config.FAAYXdNcTc
cleaning up /tmp/reform-boot-config.FAAYXdNcTc
[ -d /tmp/reform-boot-config.FAAYXdNcTc ]
rmdir /tmp/reform-boot-config.FAAYXdNcTc
[ 0 != 0 ]
[ /tmp/reform-boot-config.FAAYXdNcTc = / ]
echo reform-boot-config FAILED to run
reform-boot-config FAILED to run

this isn’t a reform-migrate, /dev/sda3 contains a chroot installation of void linux because I’m trying to get rid of systemd. Void doesn’t have update-initramfs, but I tried dracut -H without success. I’m aware that with this platform I have to boot from SD, so my intent was to use the existing boot partition as is, and simply make it use /dev/sda3 as root

I have noticed a few other issues since fitting the LS1028A; the reboot command is unable to reboot the system, it appears to shut down then hang before it kills the power, the circle menu ‘reset’ option appears hang at the same point, so the only option is circle-power off.

The system then doesn’t start up half the time because systemd is apparently incapable of waiting for/allowing the filesystem checks to complete before continuing boot, so it creates a race condition that results in the system not starting up correctly and being unusable (no login prompt and no keyboard functional).

The MNT logo on the oled appears to be permanently on when power is on, I’m fairly sure that wasn’t the case before the upgrade, and likely isnt good for the oled display.

Thank you, your log allowed me to find out what the problem is. The reform-boot-config script expects the system that you want to configure to have a /boot partition in its /etc/fstab. Yours does not seem to have that. Can you confirm or otherwise share the /etc/fstab of the filesystem on your /dev/sda3?

You found a legitimate bug in reform-boot-config but I don’t think you can use that script in your situation because reform-boot-config is only meant to work for Debian or derivatives. If you choose to use another OS, then you are on your own.

I observe the same behavior. When powering it off, one gets the message that the system is halted but it is not switched off. Maybe @minute can shed some light on the situation.

This is probably a software issue on your side. It boots fine 100% of the time for me.

Yes, it’s not good for the oled display. The solution is to flash the most recent keyboard firmware which automatically turns off the oled after a timeout.

it’s running on debian (stock mnt reform v4 image) because that’s all that will boot at present.

It’s a newly flashed completely stock reform v4 image. What appears to happen is it waits for a set time, and if the fsck isn’t completed within that time it continues the boot regardless, leading to the race condition

I’m sure this is a behaviour change since I swapped the som, but I’ll look into reflashing the lpc with a newer version

I’m not convinced it is shutting down correctly or it wouldnt be doing a fsck every boot. Clearly its something hw related with the new som because the circle-reset doesnt work either, it doesnt seem able to cut the power. ‘shutdown now’ did work, including cutting power, so it seems only reboot/circle-reset has the issue

for some reason /boot was indeed missing, I’ve added it but the script still doesn’t work. Unfortunately not able to play further at the moment, but I’ll see if I can capture the new output next week when I’ve got more time.

But above you wrote “/dev/sda3 contains a chroot installation of void linux” and reform-boot-config is not meant to work with that.

This indeed should be investigated. I have not seen that issue.

That should be fixed with the latest reform-tools version 1.34 which was in the works since last year october and finally released yesterday.

Please make sure that you are at the latest kernel (6.6) and reform-tools version (1.34) because there are important changes which are likely influencing the effects you see. If next week with the latest software you still see the issues, I will definitely look into it again.

Okay so I flashed a new sd card, booted off that, then ran reform-migrate. I followed the example instructions for formatting the SSD. It was the 3 commands in the help text, one of which started with mkpart msdos.

Then I ran reform-migrate /dev/sda. I’m now successfully booting from my SSD :partying_face:

Please disregard my comments on initramfs, I think that must be related to a crappy SD card install as I had the issue regardless of whether or not the SSD was installed.

That being said, I would like to also confirm I had the same issue with boot taking a long time on the SD card due to something filesystem related. It wouldn’t happen the first time I flashed a new SD card, but on subsequent boots sometimes my SD card would boot and say I need to manually run fsck and then it would put me into the initramfs prompt.

FWIW I did flash a newer image than the one provided by job 2471 when I encountered those issues. I tried to re-download that image, but noticed that it may have been removed. I used the image from job 2471 today for my successful SD & SSD flash.

Thanks again @josch :slight_smile:

1 Like

Awesome!! :tada:

That job is two months old. You need a system image that contains reform-tools 1.34 which was only released yesterday. I wanted to create a new system image right away but we had space problems on the CI infrastructure and deleted a bunch of artifacts to solve the problem. This is probably why you noticed those removed artifacts. Unfortunately it is still impossible to build a new system image right now because of this bug which makes the reform2-lpc-dkms package fail to install:

Once the maintainer of the dkms package has uploaded a fix, I will trigger a new reform-system-image pipeline immediately. Sorry for the inconvenience.

The bug is fixed and new system images are available here:

Have fun! :slight_smile:

P.S.: @megasquid you created this thread in the category “Uncatogerized”. Could you change this to “MNT Reform”? There should be a button at the very top of your initial post near the heading. This would make your thread more find-able. Thanks!