Thanks to the approach in this gist, I found a way to get it working with Jetpack 5.1.1, using the Ubuntu 20.04 docker, running from Ubuntu 22.04. I’m sharing my notes here:
/usr/bin/sdkmanager-docker:
#!/bin/bash
docker run -it --rm --privileged --net=host \
--volume /dev/bus/usb:/dev/bus/usb \
--volume /dev:/dev \
--volume /home/vincent/sdkmanager:/home/nvidia \
--name sdkmanager sdkmanager-fixed $@
To get losetup to work, the /dev:/dev
was required. I choose another name, as I had also sdkmanager installed (using the “fake 20.04” trick).
./Dockerfile:
FROM sdkmanager
RUN sudo apt update
RUN sudo apt upgrade -y
RUN sudo apt install -y binutils xxd lz4 libxml2-utils
ENTRYPOINT [ "/usr/bin/sdkmanager" ]
Finally they include xxd
, but now lz4
and libxml2-utils
are missing. I added an upgrade, but that’s optional.
./build.sh
#!/bin/bash
cat Dockerfile | sudo docker build -t sdkmanager-fixed -
./flash.sh
#!/bin/bash
sudo sdkmanager-docker --cli install --logintype devzone --product Jetson --version 5.1.1 --targetos Linux --target JETSON_AGX_XAVIER_TARGETS --flash all --datacollection disable --license accept @0
This covers P2888-0001. I have the P2888-0004 (32GB), but it works on all three version with this variable. I assume that
Steps:
- choose the first option (no username or password) when flashing
- wait till flashed.
- the device should have finished the installation of Ubuntu and be in normal operation work - I foudn this not to be working.
- the device
/dev/ttyACM0
should exist. If this does not work (ttyACM0 not there), restart the device (turn off and turn on again). - assumption: device not reachable via
nc -z -vv -w 5 192.168.55.1 22
yet. If it works, then Ubuntu-install was finished for you. - log in via minicom:
sudo minicom -D /dev/ttyACM0 -8 -b 115200
. - you should see Ubuntu setup. If not, exit sdkmanager and flash again
- finish the Ubuntu setup.
- Needs confirmation: I selected eth0 for DHCP, wait, and then choose not to setup right now. Not sure if this was useful, but I had DHCP on eth0 when finished.
- check if the device is reachable via USB:
nc -z -vv -w 5 192.168.55.1 22
. If not, then something else is wrong for you. - go back to sdk-manager. Continue the installation. Use:
- network
192.168.55.1
- username
nvidia
(maybe your own user works also?) - password
nvidia
- network
- it should now install all the packages. If not, silently weep
Assume that the package is not maintained well, and fixes are added at random. So if you are installing Jetpack other than 5.1.1, all of the above probably does not work. One approach might be to install 5.1.1 with the above instructions, and then upgrade.
When I did an “apt update && apt upgrade” I saw a quite a large list of packages that could be autoremoved, but these looked important (opencv-related) - probably another badly configured part, so best to just leave it.