Lineage Android OS for the Jetson Nano

on line 868 of the boot log i see
1. tegra-xusb 70090000.xusb: Direct firmware load for tegra21x_xusb_firmware failed with error -2
so i guess the firmware file is not loaded at boot time, is that right?
is there a way to see what is inside the boot kernel?
now these are the lines i found about the symlinking, from 1310,

 1. ueventd: Failed to symlink /dev/block/sda1 to /dev/block/by-name/APP, which already links to: /des

2. ueventd: Failed to symlink /dev/block/sda2 to /dev/block/by-name/EBT, which already links to: /dev/block/mmcblk0p2: File exists

3. ueventd: Failed to symlink /dev/block/sda3 to /dev/block/by-name/RP1, which already links to: /dev/block/mmcblk0p3: File exists

4. ueventd: Failed to symlink /dev/block/sda4 to /dev/block/by-name/TOS, which already links to: /dev/block/mmcblk0p4: File exists

5. ueventd: Failed to symlink /dev/block/sda5 to /dev/block/by-name/LNX, which already links to: /dev/block/mmcblk0p5: File exists

6. ueventd: Failed to symlink /dev/block/sda6 to /dev/block/by-name/DTB, which already links to: /dev/block/mmcblk0p6: File exists

7. ueventd: Failed to symlink /dev/block/sda7 to /dev/block/by-name/EKS, which already links to: /dev/block/mmcblk0p7: File exists

8. ueventd: Failed to symlink /dev/block/sda8 to /dev/block/by-name/BMP, which already links to: /dev/block/mmcblk0p8: File exists

9. ueventd: Failed to symlink /dev/block/sda9 to /dev/block/by-name/SOS, which already links to: /dev/block/mmcblk0p9: File exists

10. ueventd: Failed to symlink /dev/block/sda10 to /dev/block/by-name/CAC, which already links to: /dev/block/mmcblk0p10: File exists

but i guess it runs AFTER boot, when vendor/etc/init/hw/init.porg_sd.rc is hit

ok, i patched the wrong dts file, as mine is a jetson a02, not a b01, so it still loaded the dts for a02 which wasn’t pointing to sda1
did a new patch, now i will build and try :)

ok, built it again, but can’t seem to build anymore, as the script errors out when running mkbootimg with missing pyyaml (within the build environment) and i really don’t know how to pass this

Yeah, things are in a bit of flux atm as I integrate l4t r34.1 stuff. The new version of tegraflash has additional python library dependencies, and pyyaml isn’t available in the android python prebuilt. I’ve got a local patch to vendor/nvidia I’m using to build, but don’t know that I want to commit that or not.

diff --git a/common/tegraflash/tegrasign_v3_util.py b/common/tegraflash/tegrasign_v3_util.py
index f341ec9..69818dd 100755
--- a/common/tegraflash/tegrasign_v3_util.py
+++ b/common/tegraflash/tegrasign_v3_util.py
@@ -19,7 +19,7 @@ import subprocess
 import re
 import time
 import traceback
-import yaml
+#import yaml
 
 AES_128_HASH_BLOCK_LEN = 16
 AES_256_HASH_BLOCK_LEN = 16
@@ -178,8 +178,8 @@ class KDF:
     def parse_file(self, p_key, arg, internal):
         kdf_file = arg.split('=')[1]
 
-        with open(kdf_file) as f:
-            params = yaml.safe_load(f)
+        #with open(kdf_file) as f:
+        #    params = yaml.safe_load(f)
 
         tokens = {'IV':'--iv', 'AAD':'--aad', 'VER':None, 'DERSTR':None, 'CHIPID':None,
                   'MAGICID':None, 'FLAG':None, 'BL_DERSTR':None, 'FW_DERSTR':None}

ok, it built fine, i guess it flashed fine i reached recovery and could flash the image, and saw usb activity, so the files were going to the nvme, and i can see in the nvme a partition with a recovery folder with logs saying i last installed eng.sucche.20220419.181734), but it only boots to recovery, no way to make it boot to system
here is a boot log sending me to recovery, if you need the ‘new’ patches, here we go
thanks for any help :)

Lineage 18.1 for Nano has been released as of last week.

The opening post cannot be modified, but is still mostly applicable. Bullet points 3 and 4 no longer apply. The bootloader can be updated inline now (through a method akin to hitting the problem with a bigger hammer) and the boot stack is now inline with l4t 32.7.1.

A new note:

  • In recovery, the Nano 2GB carrier boards 2 usb host ports stacked together do not work. The single usb host port does work, so the input device used for recovery needs plugged in there. All usb ports work in android itself.

I have tried to fix up emmc module support, but since I still do not own one, I cannot test that. It would be appreciated if someone could try to install the new releases on an emmc module and report if it works or what specifically went wrong if it does not.

1 Like

Tested the 18.1 build on an emmc unit and can confirm that it’s working well. Thanks.


i sideload the lineage-17.1-20220214-nightly-porg-signed.zip with the 18.1,but it does no work as well.could it be possible to have some help? :)

The error line tells you what’s wrong. The 17.1 zips cannot upgrade/downgrade the bootloader, as is stated in the opening post. You have to use the 17.1 flash package to install a 17.1 zip. The androidfilehost link on the Lineage wiki has a 17.1-old folder which contains the 17.1 flash package.

An 18.1 zip can upgrade from the 17.1 flash package. And of course installing 18.1 from the 18.1 flash package works. But going backwards from an 18.1 flash package to a 17.1 zip is not supported.

thanks for your help.