Jetson AGX Xavier flash.sh, can't start UI

Jetson AGX Xavier flash.sh and can’t start UI.

I have two Xavier device A and B. I wanna create my own rootfs directory for flashing new device.
So, I do this steps:

  1. Use SDKManager update Xavier A, and install some tools we need. (such as: jtop/ros/etc.)
  2. Create a flash directory. (in topic “Quick Start Guide” of “NVIDIA Jetson Linux Developer Guide” )
  3. Sync Xavier A Dir to rootfs dir.
    sudo rsync -alog -A -X root@device-ip:/bin  ./rootfs/
    sudo rsync -alog -A -X root@device-ip:/boot ./rootfs/
    sudo rsync -alog -A -X root@device-ip:/etc  ./rootfs/
    sudo rsync -alog -A -X root@device-ip:/run  ./rootfs/
    sudo rsync -alog -A -X root@device-ip:/home ./rootfs/
    sudo rsync -alog -A -X root@device-ip:/lib  ./rootfs/
    sudo rsync -alog -A -X root@device-ip:/opt  ./rootfs/
    sudo rsync -alog -A -X root@device-ip:/root ./rootfs/
    sudo rsync -alog -A -X root@device-ip:/sbin ./rootfs/
    sudo rsync -alog -A -X root@device-ip:/snap ./rootfs/
    sudo rsync -alog -A -X root@device-ip:/srv  ./rootfs/
    sudo rsync -alog -A -X root@device-ip:/usr  ./rootfs/
    
  4. flash.sh Xavier B.
    sudo ./flash.sh jetson-agx-xavier-devkit mmcblk0p1 
    

When I finished those steps, I find Xavier B cannot start UI and stuck like this:

syslog

syslog.ok (485.9 KB)
syslog.bad (1.0 MB)

Xorg.0.log

Xorg.0.log.bad (13.4 KB)
Xorg.0.log.ok (13.0 KB)

Have anyone has the same problem? How can I solve it .

hello 18588523137,

would you like to clone the Xavier-A rootfs to Xavier-B?
if yes, please check this session, To clone a Jetson device and flash for reference,
thanks

I have two purpose:

  1. Clone Xavier-A to Xavier-B.
  2. I wanna install my cross-compile program in rootfs directory. Then I can flash.sh this program in Xavier-B without make a new image.

I can flash.sh Xavier for ubuntu system. But I can’t flash.sh device with SDK, such as: cuda, deepstream, cudnn, …
I have no way to create a rootfs with this tools .

hello 18588523137,

please check comment #3 to clone the APP partition to backup your rootfs, then you should enable flash.sh to do manual flash to deploy the root file system to Xavier-B.
note, you should add -r options to reuse the system image for image flashing,
thanks

hello, JerryChang,

I not sure what you said.
Did you mean use command “sudo ./flash.sh -r -k APP -G clone.img jetson-agx-xavier-devkit mmcblk0p1” to backup APP partition ?

In this way, I can get a .img file of APP partition, but it can’t achieve my 2nd purpose.

hello 18588523137,

you should install your cross-compile program in rootfs directory before cloning the APP partition.

In the host machine (PC), install my cross-compile program in rootfs directory.
Then, use command "sudo ./flash.sh jetson-agx-xavier-devkit mmcblk0p1 " update my xavier device.
At the last, use command “sudo ./flash.sh -r -k APP -G clone.img jetson-agx-xavier-devkit mmcblk0p1” to backup APP partition.

You mean use this three step ?
But in this way, how can I install cuda/cudnn/opencv in the rootfs ?

hello 18588523137,

after you used -k APP -G clone.img to backup APP partition, you’ve also backup the installation to rootfs.
you should taking this clone.img to replace original system.img to deploy your Xavier-B. i.e. $ sudo ./flash.sh -r jetson-agx-xavier-devkit mmcblk0p1.

you may boot-up the device to install all of them on the target.

Hi, JerryChang:
It is great gratitude for that you have patience to answer my question. And I notice that I didn’t express it well.

In your way, when I update my cross-compile program, I have to do this item:

  1. Install my cross-compile program to my device.
  2. Make a new clone.img file . (In your way , we have to make a new .img file .)
  3. Use new clone.img file to update other device .

I think it’s too complicated to update my program. I wanna more simple like this :

  1. Install my cross-compile program in host (PC) rootfs directory.
  2. Use ./flash.sh to update other device .

hello 18588523137,

you may customize your own root file system, and deploy it by using flash script.
please check developer guide, Setting Up the Root File System for reference, thanks

Yeah,according to Setting Up the Root File System, I can make a rootfs directory with my cross-compile program.

But as I had said, in this way I can’t make a rootfs directory which also have nvidia SDK (such as: cuda, deepstream, cudnn, …).

hello 18588523137,

you can only install those components on the target.

rootfs for L4T JetOS, and plus extra packages like CUDA,
Those extra packages are installed from debs or through SDK Manager.

Then, I think, Jerry’s advice is much easier way.

Yeah, I did do that.
So,I use command “sudo rsync -alog -A -X root@device-ip:/bin ./rootfs/” to copy the rootfs in device to the PC rootfs directory.

In this way, It was stuck when I have finished Xavier updating with new rootfs which include cuda/cudnn .

What you mean is using “dpkg -i xxxx.deb” command to install the packages to my purpose directory ?

But how to deal with the dependency of the debs ?

hello 18588523137,

that’ll be huge rootfs if all the components has installed, it should taking a long time if using rsync to copy the rootfs.
btw, how about post installation via apt server?
please check OTA update packages from developer guide for reference, Update Packages for Jetson Devices.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.