Boot hangup while loading ntspec.service

After installing the KDE plasma desktop, my the screen blinks a couple times when it gets to network time service. In the lines leading up to that, it also fails to load some network .bin files. I have included a photo of the screen from my phone.

ETA: this is after installing KDE Plasma. I can’t even get to the login screen to try it out!

Is this something I will need to do a system image rescue on an SD card to fix?

(It’s been a couple of weeks, and my device still doesn’t boot. It keeps hanging up as described above. I copied the system image for my processor module from the archive onto a microSD card. Simply inserting the card and booting the device doesn’t work, since I don’t have any way to mount the system image to the SD card as described in the manual with the device not working.

I seem to be stuck. Any ideas?)

I guess it would help to download a program that can mount an image file, wouldn’t it? Jeez.

I mounted the system image to a microSD card and reinstalled the OS and it works now. Fortunately, I have just been experimenting with the device so I didn’t lose anything important.

Is there anything one can do to when the boot hangs up like that? How do you get into the bios? I tried some common key combinations to load the bios, but that didn’t yield anything.

You can attempt to enter one of the other TTY sessions. Control+Alt+FN key
F1 - F7 should be alternate sessions. F7 is usually Graphical Login or Display Manager like SDDM in the case of KDE default. From there you should be able to try and debug your issue.

1 Like

There is no BIOS. One of the first things that get loaded when you boot the device is u-boot which will look for a file called boot.scr or extlinux.conf on a usb-stick, on an sd-card or on emmc in that order. It will load the first one it finds and that file will then govern how the boot proceeds. You have a few options in situations like yours:

  1. get a usb uart adapter and use it to connect to the device via serial and use a serial terminal to fix the problem
  2. use a different tty as @Savasten suggested
  3. pop in an sd-card with a vanilla system image on it that you can then use to repair your existing installation

Since you have just re-installed the OS it would be useful to find out whether the problem is reproducible. But you should probably only try these kind of experiments if you either feel comfortable performing either of above 3 options or if you would enjoy doing some remote debugging. :slight_smile:

1 Like

Today I transferred all the guts of my unit into its new housing, only to have the same problem arise where it hung up on loading network time service.

I used my rescue micro SD to reload the system image, but after I removed the SD card and tried to boot from the device, the same problem came up again.

Is the network time service hangup a “red herring?” Has anyone else had this problem?

At any rate, here is my device’s spiffy new appearance.

3 Likes

Very pretty machine! :heart_eyes_cat:

Have you managed to get to another tty or connect a serial console? In that case, you could run dmesg and post that as there could be errors hidden further up in the message log.

The system always comes up if you boot a “clean” system from SD though?

Bit of an wild idea, as I have not seen this error before, but in case it is related to connectivity, you could hook the machine up via wired network to ensure you are not running into services trying to connect while the WiFi isn’t connected properly. That would also allow you to ssh into the machine (provided you have installed an ssh server and that is started successfully) which might be easier than the serial console.

1 Like

I was under the impression that mounting the image to an SD card and booting from that would write the image to the SSD. It looks like there a few more steps for me to take before that happens!

The instructions minute gives on this thread seem to be close to what I want to do:

That said, it doesn’t seem to match exactly what I need to do and I don’t have enough experience with a Linux terminal to know which commands apply to my situation.

The handbook mentions the reform-migrate tool on page 50. I opened a terminal and entered “reform-migrate” and tried some of the commands it suggested, but got a “partition not found” message.

This is most assuredly not an idiot-proof device!

I’d like to improve the experience. Can you start with one of the problems you are facing and exactly describe what you do and what happens as the result and what you expected to happen instead?

Thanks!

1 Like

I was hoping that using the SD card with a system image would act like a recovery disk. Instead, it looks like I just mounted the system image onto the SD card and the setup process installed the OS on it. What I need to do is migrate the image from the SD card to the onboard eMMC.

When the setup wizard comes on the screen, I can open a console screen with hyper+enter.

Per the instructions on page 50 of the manual, I used the “reform-migrate” command. A list of sample commands and explanations come up, but none of them seem to tell me how to migrate from the SD card to the eMMC.

It seems the only way to adjust settings on the device is through the Linux console, which is a type of UI I have no experience with. The closest thing is using MSDOS to load point-and-click adventure games back when I was in elementary school!

I definitely have a lot to learn.

Your use of the word “mount” is a bit confusing to me in this post and your last. I think you want to use the word “copy” instead?

Mounting is usually used for when you have a filesystem on a device or partition and via the act of “mounting” this device/partition into a path, you make that filesystem available to the OS, such it can then copy files to or from it.

That is correct. Usually you would finish the reform-setup-wizard with the options you want to see in the final system, then you let it complete and then you use one of the CLI tools to populate your eMMC or SSD.

Page 50 of the manual tells you to use the reform-migrate tool. If you run reform-migrate --help you get:

Copies the currently running system onto TARGET and run reform-boot-config
to set up /boot on SD-card or eMMC (selected by the --emmc option) to boot
into the newly copied system. TARGET is a partition block device and will
temporarily get mounted by this script.

Usage: ./sbin/reform-migrate [--help] [--help-full] [--emmc] DEVICE

Options:
  DEVICE           Rootfs partition in /dev.
  --help           Display this help and exit.
  --help-full      Extended device-specific help output.
  --emmc           Choose /boot partition on eMMC instead of SD-card.

Unfortunately, doing the above is not all that is needed to do what you want. Other tools are involved, so it’s a bit more complicated and as you saw, documentation is lacking a bit.

The plan to make this more user friendly has existed at least since last year August: 2024-08-17.log

Essentially, summarizing above link, the plan is to let the wizard have an option which populates eMMC and/or SSD for you. Then you don’t need to do any terminal foo anymore.

Please don’t worry and keep asking questions! We all have a lot to learn and the community is here to spread the knowledge. :slight_smile:

Is there a tutorial out there? Searching the forum only brings up migrating to an NVME or an encrypted drive rather than just a straight reinstall onto the eMMC.

Do I understand it correctly that you want the full system to be on your eMMC? You probably have no SSD or want to use it for other purposes?

Yes, I would like to put the system on the eMMC. This project has two goals: one, to get the system working again from the onboard module and two, to get the imx8mp board ready for a new home once the rk3588 board ships.

Incidentally, will the OS come pre-loaded on the rk3588 board or will I have to repeat this process once it arrives?

Okay, in that case, please try running the script reform-flash-rescue from a system booted on sd-card with internet access. That script will download the latest rescue image and flash it to emmc. Please tell me if that worked! If it does not, I’ll fix any problem you encounter. Thank you in advance!

1 Like

Thanks again for your help. I tried it this evening and the process aborted after the URL for pocket-reform-system-imx8mp.img.gz brought up an error 404.

That is my fault and I should’ve known better. It turns out that gitlab generates the latest job which matches a URL like this one (as it is used by reform-flash-rescue):

https://source.mnt.re/reform/reform-system-image/-/jobs/artifacts/main/raw/reform-system-imx8mp.img.gz?job=build

Then to find the latest job with name “build” that succeeded, it includes those jobs that were run with gitlab variables set to non-default values. I was bisecting the HDMI issue on imx8mq over the weekend and wanted a fresh system image for that. So I ran the pipeline with the variable SYSIMAGES set to reform-system-imx8mq creating this: Artifacts · build (#7443) · Jobs · Reform / reform-system-image · GitLab

As you can see, it only includes the imx8mq image as requested. Turns out that gitlab also decides to make this custom run of mine the latest job called “build” and serves this when performing the http request made by reform-flash-rescue

Sorry for that. I have to remember to never do any custom runs which kinda defeats parts of the the purpose of the CI a bit… I have started a new build process which should finish in a few minutes and then reform-flash-rescue should work again.

I saw a user from JP in IRC a few hours ago. Maybe that was you. Thank you for reporting this issue!

1 Like

I tried it after getting home from work this evening and got another error “bmap file not found, please use --nobmap option to flash without bmap”

I ran apt update and it downloaded a number of services to make sure I was up-to-date and ran “sudo apt install bmap-tools,” but it says that I have the newester version, 3.8.0.1.

When I run reform-flash-rescue, it starts to download the system image, then gives me this text:

Blockquote
bmap tool: ERROR: An error occurred, here is the traceback:
File “/usr/bin/bmaptool”, line 8, in
sys.exit(main())
File “/usr/lib/python3/dist-packages/bmaptool/CLI.py”, line 780, in main
args.func(args)
File “/usr/lib/python3/dist-packages/bmaptool/CLI.py”, line 508, in copy_command
error_out(
File “/usr/lib/python3/dist-packages/bmaptool/CLI.py”, line 81, in error-out
print_error_with_tb(str(msgformat) + “\n”, *args)
bmaptool: ERROR: bmap file note found, please use --nobmap option to flash without bmap

Is it ok to do this without bmap? If so, would the command be “sudo reform-flash-rescue --nobmap?”

No, the part which complains it cannot find a bmap file is bmaptool itself, not reform-flash-rescue. Do you know how to apply a patch? Can you try editing /usr/sbin/reform-flash-rescue like this:

--- a/sbin/reform-flash-rescue
+++ b/sbin/reform-flash-rescue
@@ -131,7 +131,7 @@ if command -v bmaptool >/dev/null 2>&1; then
       # https://github.com/yoctoproject/bmaptool/pull/32
       bmaptool copy "$URL" "/dev/$DEV_MMC"
       ;;
-    *) bmaptool copy "$URL" "/dev/$DEV_MMC" ;;
+    *) bmaptool copy --nobmap "$URL" "/dev/$DEV_MMC" ;;
   esac
 else
   {

Sorry again that you experience this issue and thank you again for your patience and for reporting these issues so that I can fix them.

Unfortunately, I do not have any experience with applying a patch.

I have done some reading and watched some tutorials, then tried the diff command on an unedited copy of reform-flash-rescue and an edited copy called reform-flash-rescue2 in a separate folder, but that didn’t seem to work in that it didn’t print the differences between the two files like the tutorials I watched said it would.

I do, however, now have a copy of reform-flash-rescue where I have made the edit you suggested, except it’s in the desktop folder rather than usr/sbin, where the file is read-only (which is why I guess you need to patch the file).

I am tempted to try “sudo reform-flash-rescue2,” but I’m scared that might mess things up further.

What next? I certainly appreciate your patience.