Hello.
I was given a task to produce rootfs & bootable images for Nano inside docker containers and noticed few issues. I’ve used https://developer.download.nvidia.com/embedded/L4T/r32_Release_v6.1/T210/Jetson-210_Linux_R32.6.1_aarch64.tbz2 as the tooling.
-
nv_build_sample_fs.sh - this script checks the host architecture via hostnamectl. This requires dbus to be running to even give anything back but when run inside the docker container, it will not print any sort of architecture. Thus, check_pre_req() will fail.
-
nv_build_sample_fs.sh - randomly but quite often fails with when installing packages mentioned in nvubuntu-bionic-aarch64-packages. The sample errors i still have stored, its always ```
Unpacking humanity-icon-theme (0.6.15) ... dpkg: error processing archive /tmp/apt-dpkg-install-QRqGCR/26-humanity-icon-theme_0.6.15_all.deb (--unpack): corrupted filesystem tarfile - corrupted package archive
I’m calling the script like this:
sudo TMPDIR=${TMPDIR} ./nv_build_samplefs.sh --abi aarch64 --distro ubuntu --version bionic --verbose
and TMPDIR is pointing to"${WORKSPACE}/tmpbuilddir
so that everything should be going into workspace directory of the jenkins slave (inside the container). I dont remember/know if dpkg honours TMPDIR, but it still feels wrong that i dont have a control where temporary files are located from CI perspective. It also feels odd that when ever the build failure happens, its been the humanity-icon-theme deb … -
One cannot specify rootfs location for nv_build_sample_fs.sh and l4t_create_default_user.sh like you can for apply_binaries.sh and jetson-disk-image-creator.sh and the scripts have to be executed with correct location related to the rootfs. For l4t_create_default_user.sh, things go even further since the rootfs directory HAS to be named as “rootfs” and script has to be located on the parent directory.
-
Defining rootfs location for apply_binaries.sh and jetsom-disk-image-creator.sh use different env variables to point where the rootfs being produced is located (LDK_ROOTFS_DIR vs ROOTFS_DIR)
-
jetson-disk-image-creator.sh - There is way to tell the partition size when creating bootable image. Size will be just slightly bigger than the files in the populated rootfs directory.
None of these are blockers at least for now, i can just fork and tweak the scripts or go with something like (hopefully) multistrap to generate the rootfs and work with image creation with something based off Jetson-disk-image-creator.sh … But would be nice to get some answers for above things if possible.
Thanks.