Hi,
i have two Xaviers. On Xavier one I made a bitwise copy of the full root partition. From this raw binary file I created a system.img with the help of mksparse. I flashed this image on Xavier two and it is booting until the user interface should start showing up. But instead the screen begin to blinking. I can connect over ssh and files from Xavier one are present. Over the serial uart i get disagrees about version of symbol module_layout error messages. After some research I found that this means that a kernel module could not be loaded. I checked lsmod and cat /proc/modules but it was all empty so no module was loaded. I checked the kernel version and the required version from the module “fuse” and its the same (see below). Do you know a way to fix this so my second Xavier works exactly like the first Xavier?
Here are some outputs of commands I did:
uname -a
Linux jeton-xavier 4.9.140-tegra #1 SMP PREEMPT Tue Jul 16 17:09:53 PDT 2019 aarch64 aarch64 aarch64 GNU/Linux
modinfo fuse
filename: /lib/modules/4.9.140-tegra/kernel/fs/fuse/fuse.ko
alias: devname:fuse
alias: char-major-10-229
alias: fs-fuseblk
alias: fs-fuse
license: GPL
description: Filesystem in Userspace
author: Miklos Szeredi <miklos@szeredi.hu>
alias: fs-fusectl
depends:
intree: Y
vermagic: 4.9.140-tegra SMP preempt mod_unload modversions aarch64
parm: max_user_bgreq:Global limit for the maximum number of backgrounded requests an unprivileged user can set (uint)
parm: max_user_congthresh:Global limit for the maximum congestion threshold an unprivileged user can set (uint)
lsmod
Module Size Used by
I posted the boot log on pastebin: https://pastebin.com/VRXMdjuA
Was the clone from a system flashed with the same exact version of JetPack/SDK Manager as the system where the clone was written to? Matching versions is usually required.
I am not sure which version I have used back then. Is there a possibility to find out?
Use “head -n 1 /etc/nv_tegra_release” to see the L4T version.
An additional question is what shows up via “uname -r” on both the source rootfs and the alternate system flashed with this rootfs? If these differ, then it would explain why modules didn’t load (the module load path is “/lib/modules/$(uname -r)/”).
They are exact the same:
uname -a
Xavier 1: (original)
Linux jeton-xavier 4.9.140-tegra #1 SMP PREEMPT Wed Mar 13 00:30:11 PDT 2019 aarch64 aarch64 aarch64 GNU/Linux
Xavier 2: (cloned)
Linux jeton-xavier 4.9.140-tegra #1 SMP PREEMPT Tue Jul 16 17:09:53 PDT 2019 aarch64 aarch64 aarch64 GNU/Linux
head -n 1 /etc/nv_tegra_release
Xavier 1: (original)
# R32 (release), REVISION: 1.0, GCID: 14531094, BOARD: t186ref, EABI: aarch64, DATE: Wed Mar 13 07:41:08 UTC 2019
Xavier 2: (cloned)
# R32 (release), REVISION: 1.0, GCID: 14531094, BOARD: t186ref, EABI: aarch64, DATE: Wed Mar 13 07:41:08 UTC 2019
For flashing i used the flash.sh script:
sudo ./flash.sh -r jetson-xavier mmcblk0p1
What is it doing except flashing the file system to the Xavier? Does it apply changes to the rootfs? after flashing?
Edit: I realised that the log I posted was cut off automatically. I did repost it on pastebin and changed my first post.
Just to point out one possible “gotcha”, if you run “head -n 1 /etc/nv_tegra_release” it only tells you about the rootfs release. You’d need to verify these match prior to loading the clone. If these match, then it looks as if you have done things correctly (also assumes the JetPack/SDKM version matches that (R32.1 implies JetPack/SDKM4.2).
Were both units originally from this same release? Has any other partition of the original source been altered (I’m thinking that if a kernel update were installed on the original, then maybe there would be some need to add this to the receiving unit as well)?