@@ -6,11 +6,179 @@ La société ANTS travaille sur le développement d'une infrastructure de stocka
## Installation
## Usage
The easiest way to set the correctly setup the bootloaders is through the SDK manager. Please flash the SOM once using the SDK manager and the correct storgae device to setup thing properly before using the command line options. We can then proceed with customization :
## Support
- From [the Jetson Developper Webpage](https://developer.nvidia.com/embedded/jetson-linux), download the BSP and sample rootfs. The rootfs is derived from Ubuntu 22.04 and must be unzipped in the rootfs directory of the BSP. The includes a modified version of the ubuntu kernel and the corresponding dtb files for building the dtb.
## Roadmap
```
tar xf Jetson_Linux_R36.2.0_aarch64.tbz2 -C L4T
sudo tar xpf Tegra_Linux_Sample-Root-Filesystem_R36.2.0_aarch64.tbz2 -C L4T/rootfs/
```
- Install the flashing requirements :
```
cd L4T
sudo ./tools/l4t_flash_prerequisites.sh
```
## Generating a SD card blob for flashing
The rootfs previously downloaded from Nvidia doesn't contain anything in /boot. To populate it with the default dtb and kernel provided by Nvidia, run :
```
sudo L4T/apply_binaries.sh
```
Then, generate the SD blob using the jetson image creator script :
Like previously, the rootfs doesn't contain anything in /boot. To generate it automatically, use the apply_binaries script or follow the next sections.
To create a default user and set a few default settings, use l4t_create_user in l4t/tools :
-u | --username - If not specified then default will be set to 'nvidia'.
-p | --password - If not set then randomized password will be generated.
-a | --autologin - If specified autologin will be enabled. Default is disabled
-n | --hostname - If not specified then default will be set to 'tegra-ubuntu'.
-h | --help - print usage
--accept-license - Specified to accept the terms and conditions of EULA
Example:
l4t_create_default_user.sh -u nvidia -p NDZjMWM4
l4t_create_default_user.sh -u ubuntu -a
l4t_create_default_user.sh -n tegra
```
### Creating a custom package list based on ubuntu
To create your own custom list of packages, create a file with the following name : nvubuntu-jammy-[yourcustomname]-aarch64-packages. Add all packages that you desire to the text file. It is recommanded to copy one of the existing file and customize the package list. For instance, I will copy the desktop version file and add the editor "nano" to the package list. I will also remove python3-scipy as I have no use for it.
Then, use the same command but using your custom package list :
From [the Jetson Developper Webpage](https://developer.nvidia.com/embedded/jetson-linux), download the Bootlin toolchain for Jetson. Unarchive the binaries and set the cross compilation variable to the correct path :
@@ -401,7 +401,7 @@ For this addition to the journal, these questions will mainly be answered theori
## Using the Nvidia provided image to investigate
At first, I will be using the blob provided by nvidia that is already ready for SD flashing and mount it on my host to investigate its filesystem. This will allow for in depth research and answer most of our questions easily.
At first, I will be using the blob provided by nvidia that is already ready for SD flashing and mount it on my host to investigate its filesystem. This will allow for in depth research and answer most of our questions easily.
To understand the right partition to mount, I first inspect the .img file :
# When testing a custom kernel, it is recommended that you create a backup of
# the original kernel and add a new entry to this file so that the device can
...
...
@@ -487,5 +487,17 @@ LABEL primary
# APPEND ${cbootargs}
```
The provided file is fairly easy to understand and even explains how to use multiple kernels. For each entry, the kernel image, the DTB, the initrd and the bootargs are configurable. It is possible to have multiple entries to fit our desired scenarii. The kernels should be in image form and located somewhere in the rootfs, preferably in /boot.
The provided file is fairly easy to understand and even explains how to use multiple kernels. For each entry, the kernel image, the DTB, the initrd and the bootargs are configurable. It is possible to have multiple entries to fit our desired scenarii. The kernels should be in image form and located somewhere in the rootfs, preferably in /boot.
# Week 12-15 17.05.2024
The main goal is to confirm everything that we have previously theorized by flashing multiple custom options onto our board. The steps are reported in README.md. The following possibilities have been sucessfully tested :
- Flashing the kit using the SDK manager
- Generating a custom filesystem and customizing the package list
- Recompiling the kernel and dtb
- Using multiple extlinux entries
TODO :
- Modifying the filesystem type
- Modifying default setting such as hostname and network configuration