diff --git a/README.md b/README.md index 9ad3f556..086ce1f9 100644 --- a/README.md +++ b/README.md @@ -135,8 +135,8 @@ Otherwise, the instructions to apply the update manually are below. To determine if the currently running firmware matches the software, run, `ota-check-firmware`: ``` $ ota-check-firmware -Current firmware version is: 35.6.1 -Current software version is: 35.6.1 +Current firmware version is: 36.4.3-nix +Current software version is: 36.4.3 ``` If these versions do not match, you can update your firmware using the UEFI Capsule update mechanism. The procedure to do so is below: diff --git a/kernel/0001-ipu-Depend-on-x86.patch b/kernel/0001-ipu-Depend-on-x86.patch new file mode 100644 index 00000000..3b0ee379 --- /dev/null +++ b/kernel/0001-ipu-Depend-on-x86.patch @@ -0,0 +1,29 @@ +From 684f238159a15e58b935a9fc861744126f6833df Mon Sep 17 00:00:00 2001 +From: Elliot Berman +Date: Mon, 28 Apr 2025 15:28:58 -0700 +Subject: [PATCH] ipu: Depend on x86 + +The ipu6 module makes use of the following x86-specific function: +clflush_cache_range(). Make the Kconfig reflect this so allmodconfig +works. + +Signed-off-by: Elliot Berman +--- + drivers/media/pci/intel/Kconfig | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/media/pci/intel/Kconfig b/drivers/media/pci/intel/Kconfig +index ee4a77acb66f..5088f1e850c5 100644 +--- a/drivers/media/pci/intel/Kconfig ++++ b/drivers/media/pci/intel/Kconfig +@@ -3,6 +3,7 @@ config VIDEO_INTEL_IPU6 + depends on ACPI + depends on MEDIA_SUPPORT + depends on MEDIA_PCI_SUPPORT ++ depends on X86 + select IOMMU_API + select IOMMU_IOVA + select X86_DEV_DMA_OPS if X86 +-- +2.49.0 + diff --git a/kernel/0001-nvidia-drm-Guard-nv_dev-in-nv_drm_suspend_resume.patch b/kernel/0001-nvidia-drm-Guard-nv_dev-in-nv_drm_suspend_resume.patch new file mode 100644 index 00000000..bce321d5 --- /dev/null +++ b/kernel/0001-nvidia-drm-Guard-nv_dev-in-nv_drm_suspend_resume.patch @@ -0,0 +1,29 @@ +From d1fec76c4de1c778dc947720767cb9d1a2d8017a Mon Sep 17 00:00:00 2001 +From: Elliot Berman +Date: Fri, 25 Apr 2025 14:25:29 -0700 +Subject: [PATCH] nvidia-drm: Guard nv_dev in nv_drm_suspend_resume + +All that code should be in a separate function :shrug: + +Signed-off-by: Elliot Berman +--- + kernel-open/nvidia-drm/nvidia-drm-drv.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/kernel-open/nvidia-drm/nvidia-drm-drv.c b/kernel-open/nvidia-drm/nvidia-drm-drv.c +index 61842e8..dd18e80 100644 +--- a/kernel-open/nvidia-drm/nvidia-drm-drv.c ++++ b/kernel-open/nvidia-drm/nvidia-drm-drv.c +@@ -1861,7 +1861,9 @@ void nv_drm_suspend_resume(NvBool suspend) + { + static DEFINE_MUTEX(nv_drm_suspend_mutex); + static NvU32 nv_drm_suspend_count = 0; ++#if defined(NV_DRM_ATOMIC_MODESET_AVAILABLE) + struct nv_drm_device *nv_dev; ++#endif /* NV_DRM_ATOMIC_MODESET_AVAILABLE */ + + mutex_lock(&nv_drm_suspend_mutex); + +-- +2.49.0 + diff --git a/kernel/0001-rtl8822ce-Fix-Werror-address.patch b/kernel/0001-rtl8822ce-Fix-Werror-address.patch new file mode 100644 index 00000000..db0a9c6e --- /dev/null +++ b/kernel/0001-rtl8822ce-Fix-Werror-address.patch @@ -0,0 +1,320 @@ +From b357cda254885375bde6d67ea2738e3481906d93 Mon Sep 17 00:00:00 2001 +From: Elliot Berman +Date: Fri, 25 Apr 2025 08:21:53 -0700 +Subject: [PATCH 1/2] rtl8822ce: Fix -Werror=address + +For -Werror=address + +Signed-off-by: Elliot Berman +--- + drivers/net/wireless/realtek/rtl8822ce/core/rtw_sta_mgt.c | 3 +-- + .../net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf.c | 6 +++--- + .../realtek/rtl8822ce/hal/phydm/halrf/halrf_debug.c | 6 +++--- + .../net/wireless/realtek/rtl8822ce/hal/phydm/phydm_antdiv.c | 2 +- + .../net/wireless/realtek/rtl8822ce/hal/phydm/phydm_api.c | 2 +- + .../net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cck_pd.c | 2 +- + .../net/wireless/realtek/rtl8822ce/hal/phydm/phydm_ccx.c | 4 ++-- + .../net/wireless/realtek/rtl8822ce/hal/phydm/phydm_debug.c | 6 +++--- + .../net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dig.c | 2 +- + .../realtek/rtl8822ce/hal/phydm/phydm_dynamictxpower.c | 2 +- + .../wireless/realtek/rtl8822ce/hal/phydm/phydm_lna_sat.c | 4 ++-- + .../wireless/realtek/rtl8822ce/hal/phydm/phydm_pathdiv.c | 2 +- + .../realtek/rtl8822ce/hal/phydm/phydm_pmac_tx_setting.c | 2 +- + .../wireless/realtek/rtl8822ce/hal/phydm/phydm_pow_train.c | 2 +- + .../wireless/realtek/rtl8822ce/hal/phydm/phydm_smt_ant.c | 4 ++-- + .../net/wireless/realtek/rtl8822ce/hal/phydm/phydm_soml.c | 2 +- + 16 files changed, 25 insertions(+), 26 deletions(-) + +diff --git a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_sta_mgt.c b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_sta_mgt.c +index d0966567..282d701d 100644 +--- a/drivers/net/wireless/realtek/rtl8822ce/core/rtw_sta_mgt.c ++++ b/drivers/net/wireless/realtek/rtl8822ce/core/rtw_sta_mgt.c +@@ -390,8 +390,7 @@ void rtw_mfree_stainfo(struct sta_info *psta); + void rtw_mfree_stainfo(struct sta_info *psta) + { + +- if (&psta->lock != NULL) +- _rtw_spinlock_free(&psta->lock); ++ _rtw_spinlock_free(&psta->lock); + + _rtw_free_sta_xmit_priv_lock(&psta->sta_xmitpriv); + _rtw_free_sta_recv_priv_lock(&psta->sta_recvpriv); +diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf.c +index ebe51b4f..abb5552e 100644 +--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf.c ++++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf.c +@@ -867,7 +867,7 @@ void halrf_support_ability_debug(void *dm_void, char input[][16], u32 *_used, + u8 i; + + for (i = 0; i < 5; i++) +- if (input[i + 1]) ++ if (input[i + 1][0]) + PHYDM_SSCANF(input[i + 2], DCMD_DECIMAL, &dm_value[i]); + + if (dm_value[0] == 100) { +@@ -942,7 +942,7 @@ void halrf_support_band_shift_debug(void *dm_void, char input[][16], u32 *_used, + + #if (RTL8192F_SUPPORT == 1) + for (i = 0; i < 7; i++) +- if (input[i + 1]) ++ if (input[i + 1][0]) + PHYDM_SSCANF(input[i + 2], DCMD_DECIMAL, &dm_value[i]); + + if (!(rf->rf_supportability & HAL_2GBAND_SHIFT)) { +@@ -4658,7 +4658,7 @@ void halrf_dump_rfk_reg(void *dm_void, char input[][16], u32 *_used, + + reg_1b00 = odm_get_bb_reg(dm, R_0x1b00, MASKDWORD); + +- if (input[2]) ++ if (input[2][0]) + PHYDM_SSCANF(input[2], DCMD_DECIMAL, &var1[0]); + + if ((strcmp(input[2], help) == 0)) +diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_debug.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_debug.c +index 3f2d142b..822ba62e 100644 +--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_debug.c ++++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/halrf/halrf_debug.c +@@ -151,7 +151,7 @@ void halrf_debug_trace(void *dm_void, char input[][16], u32 *_used, + u8 i; + + for (i = 0; i < 5; i++) +- if (input[i + 1]) ++ if (input[i + 1][0]) + PHYDM_SSCANF(input[i + 2], DCMD_DECIMAL, &rf_var[i]); + + if (rf_var[0] == 100) { +@@ -211,7 +211,7 @@ void halrf_dack_debug_cmd(void *dm_void, char input[][16]) + u8 i; + + for (i = 0; i < 7; i++) +- if (input[i + 1]) ++ if (input[i + 1][0]) + PHYDM_SSCANF(input[i + 2], DCMD_DECIMAL, &dm_value[i]); + + if (dm_value[0] == 1) +@@ -329,7 +329,7 @@ void halrf_cmd_parser(void *dm_void, char input[][16], u32 *_used, char *output, + PDM_SNPF(out_len, used, output + used, out_len - used, + "IQK DEBUG!!!!!\n"); + for (i = 0; i < 5; i++) { +- if (input[i + 1]) { ++ if (input[i + 1][0]) { + PHYDM_SSCANF(input[i + 2], DCMD_HEX, + &rf_var[i]); + input_idx++; +diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_antdiv.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_antdiv.c +index 3c2cc583..efb5955e 100644 +--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_antdiv.c ++++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_antdiv.c +@@ -6440,7 +6440,7 @@ void phydm_antdiv_debug(void *dm_void, char input[][16], u32 *_used, + u8 i, input_idx = 0; + + for (i = 0; i < 5; i++) { +- if (input[i + 1]) { ++ if (input[i + 1][0]) { + PHYDM_SSCANF(input[i + 1], DCMD_HEX, &dm_value[i]); + input_idx++; + } +diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_api.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_api.c +index 349f3574..3f3e3d0b 100644 +--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_api.c ++++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_api.c +@@ -433,7 +433,7 @@ void phydm_config_trx_path_v1(void *dm_void, char input[][16], u32 *_used, + return; + + for (i = 0; i < 5; i++) { +- if (input[i + 1]) { ++ if (input[i + 1][0]) { + PHYDM_SSCANF(input[i + 1], DCMD_HEX, &val[i]); + input_idx++; + } +diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cck_pd.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cck_pd.c +index 15a4b931..710ce2f6 100644 +--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cck_pd.c ++++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_cck_pd.c +@@ -1904,7 +1904,7 @@ void phydm_dig_cckpd_coex_dbg(void *dm_void, char input[][16], u32 *_used, + u8 i = 0; + + for (i = 0; i < 3; i++) { +- if (input[i + 1]) ++ if (input[i + 1][0]) + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var[i]); + } + +diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_ccx.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_ccx.c +index dc88a20e..39ecf374 100644 +--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_ccx.c ++++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_ccx.c +@@ -2997,7 +2997,7 @@ void phydm_ifs_clm_dbg(void *dm_void, char input[][16], u32 *_used, + return; + + for (i = 0; i < 5; i++) { +- if (input[i + 1]) ++ if (input[i + 1][0]) + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, + &var1[i]); + } +@@ -3601,7 +3601,7 @@ void phydm_edcca_clm_dbg(void *dm_void, char input[][16], u32 *_used, + return; + + for (i = 0; i < 4; i++) { +- if (input[i + 1]) ++ if (input[i + 1][0]) + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &var1[i]); + } + +diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_debug.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_debug.c +index dde03231..1a2db507 100644 +--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_debug.c ++++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_debug.c +@@ -4193,7 +4193,7 @@ void phydm_enable_big_jump(void *dm_void, char input[][16], u32 *_used, + return; + + for (i = 0; i < 5; i++) { +- if (input[i + 1]) { ++ if (input[i + 1][0]) { + PHYDM_SSCANF(input[i + 1], DCMD_HEX, &dm_value[i]); + input_idx++; + } +@@ -5190,7 +5190,7 @@ void phydm_spur_detect_dbg(void *dm_void, char input[][16], u32 *_used, + "{5: Adjust CSI weight threshold} {0:-,1:+} {th offset}\n"); + } else { + for (i = 0; i < 10; i++) { +- if (input[i + 1]) ++ if (input[i + 1][0]) + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, + &var1[i]); + } +@@ -5843,7 +5843,7 @@ s32 phydm_cmd(struct dm_struct *dm, char *input, u32 in_len, u8 flag, + { + char *token; + u32 argc = 0; +- char argv[MAX_ARGC][MAX_ARGV]; ++ char argv[MAX_ARGC][MAX_ARGV] = {0}; + + do { + token = strsep(&input, ", "); +diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dig.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dig.c +index 3798f989..66f3f358 100644 +--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dig.c ++++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dig.c +@@ -969,7 +969,7 @@ void phydm_hwigi_dbg(void *dm_void, char input[][16], u32 *_used, + "Reset all hwigi : {5}\n"); + } else { + for (i = 0; i < 7; i++) { +- if (input[i + 1]) ++ if (input[i + 1][0]) + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, + &var1[i]); + } +diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dynamictxpower.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dynamictxpower.c +index 2ccbd1ae..c8ee0bc7 100644 +--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dynamictxpower.c ++++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_dynamictxpower.c +@@ -653,7 +653,7 @@ void phydm_dtp_debug(void *dm_void, char input[][16], u32 *_used, char *output, + #endif + } else { + for (i = 0; i < 7; i++) { +- if (input[i + 1]) ++ if (input[i + 1][0]) + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, + &var1[i]); + } +diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_lna_sat.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_lna_sat.c +index 204765ee..d5246724 100644 +--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_lna_sat.c ++++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_lna_sat.c +@@ -1480,7 +1480,7 @@ void phydm_auto_agc_tab_debug(void *dm_void, char input[][16], u32 *_used, + } else { + PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var1[0]); + for (i = 1; i < 10; i++) { +- if (input[i + 1]) ++ if (input[i + 1][0]) + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, + &var1[i]); + } +@@ -1565,7 +1565,7 @@ void phydm_lna_sat_debug(void *dm_void, char input[][16], u32 *_used, + PHYDM_SSCANF(input[1], DCMD_DECIMAL, &var1[0]); + + for (i = 1; i < 10; i++) { +- if (input[i + 1]) ++ if (input[i + 1][0]) + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, + &var1[i]); + } +diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pathdiv.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pathdiv.c +index a6b347cf..6b5043d6 100644 +--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pathdiv.c ++++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pathdiv.c +@@ -519,7 +519,7 @@ void phydm_pathdiv_debug_8814a(void *dm_void, char input[][16], u32 *_used, + u8 i, input_idx = 0; + + for (i = 0; i < 5; i++) { +- if (input[i + 1]) { ++ if (input[i + 1][0]) { + PHYDM_SSCANF(input[i + 1], DCMD_HEX, &dm_value[i]); + input_idx++; + } +diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pmac_tx_setting.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pmac_tx_setting.c +index 296f39c3..caa6a41d 100644 +--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pmac_tx_setting.c ++++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pmac_tx_setting.c +@@ -493,7 +493,7 @@ void phydm_pmac_tx_dbg(void *dm_void, char input[][16], u32 *_used, + "[pmac_tx] basic : {1} {rate_idx}(only 1M & 6M) {count}\n"); + } else { + for (i = 1; i < 7; i++) { +- if (input[i + 1]) { ++ if (input[i + 1][0]) { + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, + &var[i]); + } +diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pow_train.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pow_train.c +index 56bc2411..c5d61e02 100644 +--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pow_train.c ++++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_pow_train.c +@@ -149,7 +149,7 @@ void phydm_pow_train_debug( + "{0: Auto PT, 1:enable, 2: disable}\n"); + } else { + for (i = 0; i < 10; i++) { +- if (input[i + 1]) ++ if (input[i + 1][0]) + PHYDM_SSCANF(input[i + 1], DCMD_HEX, &var1[i]); + } + +diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_smt_ant.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_smt_ant.c +index 8e805b3c..1678cc40 100644 +--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_smt_ant.c ++++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_smt_ant.c +@@ -319,7 +319,7 @@ void phydm_cumitek_smt_ant_debug( + } else if (dm_value[0] == 2) { /*@fix tx pattern*/ + + for (i = 1; i < 4; i++) { +- if (input[i + 1]) ++ if (input[i + 1][0]) + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &dm_value[i]); + } + +@@ -333,7 +333,7 @@ void phydm_cumitek_smt_ant_debug( + u8 table_path_b[8] = {0}; + + for (i = 1; i < 4; i++) { +- if (input[i + 1]) ++ if (input[i + 1][0]) + PHYDM_SSCANF(input[i + 1], DCMD_HEX, &dm_value[i]); + } + +diff --git a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_soml.c b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_soml.c +index cd4001af..315db53f 100644 +--- a/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_soml.c ++++ b/drivers/net/wireless/realtek/rtl8822ce/hal/phydm/phydm_soml.c +@@ -316,7 +316,7 @@ void phydm_soml_debug(void *dm_void, char input[][16], u32 *_used, + return; + + for (i = 0; i < 5; i++) { +- if (input[i + 1]) { ++ if (input[i + 1][0]) { + PHYDM_SSCANF(input[i + 1], DCMD_DECIMAL, &dm_value[i]); + input_idx++; + } +-- +2.49.0 + diff --git a/kernel/0001-tools-resolve_btfids-Warn-when-having-multiple-IDs-f.patch b/kernel/0001-tools-resolve_btfids-Warn-when-having-multiple-IDs-f.patch deleted file mode 100644 index b9bc3b89..00000000 --- a/kernel/0001-tools-resolve_btfids-Warn-when-having-multiple-IDs-f.patch +++ /dev/null @@ -1,93 +0,0 @@ -From 4102db0f166348639b3f95fb8d96448b5c4d675d Mon Sep 17 00:00:00 2001 -From: Jiri Olsa -Date: Wed, 6 Jan 2021 00:42:19 +0100 -Subject: [PATCH 1/3] tools/resolve_btfids: Warn when having multiple IDs for - single type - -The kernel image can contain multiple types (structs/unions) -with the same name. This causes distinct type hierarchies in -BTF data and makes resolve_btfids fail with error like: - - BTFIDS vmlinux -FAILED unresolved symbol udp6_sock - -as reported by Qais Yousef [1]. - -This change adds warning when multiple types of the same name -are detected: - - BTFIDS vmlinux -WARN: multiple IDs found for 'file': 526, 113351 - using 526 -WARN: multiple IDs found for 'sk_buff': 2744, 113958 - using 2744 - -We keep the lower ID for the given type instance and let the -build continue. - -Also changing the 'nr' variable name to 'nr_types' to avoid confusion. - -[1] https://lore.kernel.org/lkml/20201229151352.6hzmjvu3qh6p2qgg@e107158-lin/ - -Signed-off-by: Jiri Olsa -Signed-off-by: Alexei Starovoitov -Acked-by: Andrii Nakryiko -Link: https://lore.kernel.org/bpf/20210105234219.970039-1-jolsa@kernel.org ---- - tools/bpf/resolve_btfids/main.c | 17 ++++++++++++----- - 1 file changed, 12 insertions(+), 5 deletions(-) - -diff --git a/tools/bpf/resolve_btfids/main.c b/tools/bpf/resolve_btfids/main.c -index f32c059fbfb4..c3f808a393d1 100644 ---- a/tools/bpf/resolve_btfids/main.c -+++ b/tools/bpf/resolve_btfids/main.c -@@ -139,6 +139,8 @@ int eprintf(int level, int var, const char *fmt, ...) - #define pr_debug2(fmt, ...) pr_debugN(2, pr_fmt(fmt), ##__VA_ARGS__) - #define pr_err(fmt, ...) \ - eprintf(0, verbose, pr_fmt(fmt), ##__VA_ARGS__) -+#define pr_info(fmt, ...) \ -+ eprintf(0, verbose, pr_fmt(fmt), ##__VA_ARGS__) - - static bool is_btf_id(const char *name) - { -@@ -477,7 +479,7 @@ static int symbols_resolve(struct object *obj) - int nr_funcs = obj->nr_funcs; - int err, type_id; - struct btf *btf; -- __u32 nr; -+ __u32 nr_types; - - btf = btf__parse(obj->btf ?: obj->path, NULL); - err = libbpf_get_error(btf); -@@ -488,12 +490,12 @@ static int symbols_resolve(struct object *obj) - } - - err = -1; -- nr = btf__get_nr_types(btf); -+ nr_types = btf__get_nr_types(btf); - - /* - * Iterate all the BTF types and search for collected symbol IDs. - */ -- for (type_id = 1; type_id <= nr; type_id++) { -+ for (type_id = 1; type_id <= nr_types; type_id++) { - const struct btf_type *type; - struct rb_root *root; - struct btf_id *id; -@@ -531,8 +533,13 @@ static int symbols_resolve(struct object *obj) - - id = btf_id__find(root, str); - if (id) { -- id->id = type_id; -- (*nr)--; -+ if (id->id) { -+ pr_info("WARN: multiple IDs found for '%s': %d, %d - using %d\n", -+ str, id->id, type_id, id->id); -+ } else { -+ id->id = type_id; -+ (*nr)--; -+ } - } - } - --- -2.45.1 - diff --git a/kernel/0002-net-phy-realtek-read-actual-speed-on-rtl8211f-to-det.patch b/kernel/0002-net-phy-realtek-read-actual-speed-on-rtl8211f-to-det.patch deleted file mode 100644 index dcd17cf6..00000000 --- a/kernel/0002-net-phy-realtek-read-actual-speed-on-rtl8211f-to-det.patch +++ /dev/null @@ -1,43 +0,0 @@ -From bda1b6c431cffc63b166dabc72087a3eaeb5ee8e Mon Sep 17 00:00:00 2001 -From: Antonio Borneo -Date: Wed, 25 Nov 2020 00:07:56 +0100 -Subject: [PATCH 2/3] net: phy: realtek: read actual speed on rtl8211f to - detect downshift - -The rtl8211f supports downshift and before commit 5502b218e001 -("net: phy: use phy_resolve_aneg_linkmode in genphy_read_status") -the read-back of register MII_CTRL1000 was used to detect the -negotiated link speed. -The code added in commit d445dff2df60 ("net: phy: realtek: read -actual speed to detect downshift") is working fine also for this -phy and it's trivial re-using it to restore the downshift -detection on rtl8211f. - -Add the phy specific read_status() pointing to the existing -function rtlgen_read_status(). - -Signed-off-by: Antonio Borneo -Link: https://lore.kernel.org/r/478f871a-583d-01f1-9cc5-2eea56d8c2a7@huawei.com -Tested-by: Yonglong Liu -Link: https://lore.kernel.org/r/20201124230756.887925-1-antonio.borneo@st.com -Signed-off-by: Jakub Kicinski -(cherry picked from commit 4826d2c4fcbfcc3ba7887a197143ffe4d444a3d3) ---- - drivers/net/phy/realtek.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/drivers/net/phy/realtek.c b/drivers/net/phy/realtek.c -index d56d5dc6d713..b5841fd056e7 100644 ---- a/drivers/net/phy/realtek.c -+++ b/drivers/net/phy/realtek.c -@@ -812,6 +812,7 @@ static struct phy_driver realtek_drvs[] = { - PHY_ID_MATCH_EXACT(0x001cc916), - .name = "RTL8211F Gigabit Ethernet", - .config_init = &rtl8211f_config_init, -+ .read_status = rtlgen_read_status, - .ack_interrupt = &rtl8211f_ack_interrupt, - .config_intr = &rtl8211f_config_intr, - .get_wol = &rtl8211f_get_wol, --- -2.45.1 - diff --git a/kernel/0002-sound-Fix-include-path-for-tegra-virt-alt-include.patch b/kernel/0002-sound-Fix-include-path-for-tegra-virt-alt-include.patch new file mode 100644 index 00000000..bf129087 --- /dev/null +++ b/kernel/0002-sound-Fix-include-path-for-tegra-virt-alt-include.patch @@ -0,0 +1,28 @@ +From 8ccff3029f2d8bf626adc1dcd44924e86ec91ba8 Mon Sep 17 00:00:00 2001 +From: Elliot Berman +Date: Fri, 25 Apr 2025 08:40:40 -0700 +Subject: [PATCH 2/2] sound: Fix include path for tegra-virt-alt/include + +overlay isn't defined. + +Signed-off-by: Elliot Berman +--- + sound/soc/tegra-virt-alt/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sound/soc/tegra-virt-alt/Makefile b/sound/soc/tegra-virt-alt/Makefile +index 77bad808..2853f096 100644 +--- a/sound/soc/tegra-virt-alt/Makefile ++++ b/sound/soc/tegra-virt-alt/Makefile +@@ -4,7 +4,7 @@ + GCOV_PROFILE := y + + subdir-ccflags-y += -Werror +-ccflags-y += -I$(overlay)/$(src)/../tegra-virt-alt/include/ ++ccflags-y += -I$(srctree.nvidia-oot)/sound/soc/tegra-virt-alt/include/ + ccflags-y += -I$(overlay)/$(src)/../codecs + ccflags-y += -I$(srctree.nvidia-oot)/sound/soc/tegra-virt-alt/nvaudio_ivc/ + +-- +2.49.0 + diff --git a/kernel/0003-Lower-priority-of-tegra-se-crypto.patch b/kernel/0003-Lower-priority-of-tegra-se-crypto.patch deleted file mode 100644 index 4723ab77..00000000 --- a/kernel/0003-Lower-priority-of-tegra-se-crypto.patch +++ /dev/null @@ -1,267 +0,0 @@ -From fb490ced52c6c0b0677da05f7945f9f49c73b582 Mon Sep 17 00:00:00 2001 -From: Daniel Fullmer -Date: Sat, 18 Nov 2023 21:33:53 -0800 -Subject: [PATCH 3/3] Lower priority of tegra-se crypto - -It is far too flaky and slow to be useful. I get approximately 150MB/s -when benchmarking encryption with AES-CBC using this module, while I get -over 2000MB/s with just the ARMv8 AES extensions. - -Multiple crashes have been reported on the Jetson forums over the course -of years and there is still no resolution. - -For example, when using dm-crypt, we see: -> [ 1058.429722] BUG: scheduling while atomic: swapper/6/0/0x00000100 -which happens in tegra_se_aes_queue_req because it uses mutexes while -being called from the kcryptd tasklet. - -Additionally, we see: -> [ 329.008351] tegra-se-nvhost 15820000.se: Couldn't get free cmdbuf - -We don't entirely disable this module because nvpmodel on certain -devices expects this driver to be loaded so it can set the SE frequency. ---- - nvidia/drivers/crypto/tegra-se-nvhost.c | 52 ++++++++++++------------- - 1 file changed, 26 insertions(+), 26 deletions(-) - -diff --git a/nvidia/drivers/crypto/tegra-se-nvhost.c b/nvidia/drivers/crypto/tegra-se-nvhost.c -index c114d71550b8..49c2c45d05b3 100644 ---- a/nvidia/drivers/crypto/tegra-se-nvhost.c -+++ b/nvidia/drivers/crypto/tegra-se-nvhost.c -@@ -6394,7 +6394,7 @@ static struct aead_alg aead_algs[] = { - .base = { - .cra_name = "ccm(aes)", - .cra_driver_name = "ccm-aes-tegra", -- .cra_priority = 1000, -+ .cra_priority = 1, - .cra_blocksize = TEGRA_SE_AES_BLOCK_SIZE, - .cra_ctxsize = sizeof(struct tegra_se_aes_ccm_ctx), - .cra_module = THIS_MODULE, -@@ -6412,7 +6412,7 @@ static struct aead_alg aead_algs[] = { - .base = { - .cra_name = "gcm(aes)", - .cra_driver_name = "gcm-aes-tegra", -- .cra_priority = 1000, -+ .cra_priority = 1, - .cra_blocksize = TEGRA_SE_AES_BLOCK_SIZE, - .cra_ctxsize = sizeof(struct tegra_se_aes_gcm_ctx), - .cra_module = THIS_MODULE, -@@ -6430,7 +6430,7 @@ static struct kpp_alg dh_algs[] = { - .base = { - .cra_name = "dh", - .cra_driver_name = "tegra-se-dh", -- .cra_priority = 300, -+ .cra_priority = 1, - .cra_module = THIS_MODULE, - .cra_ctxsize = sizeof(struct tegra_se_dh_context), - } -@@ -6445,7 +6445,7 @@ static struct rng_alg rng_algs[] = { - .base = { - .cra_name = "rng_drbg", - .cra_driver_name = "rng_drbg-aes-tegra", -- .cra_priority = 100, -+ .cra_priority = 1, - .cra_flags = CRYPTO_ALG_TYPE_RNG, - .cra_ctxsize = sizeof(struct tegra_se_rng_context), - .cra_module = THIS_MODULE, -@@ -6459,7 +6459,7 @@ static struct skcipher_alg aes_algs[] = { - { - .base.cra_name = "xts(aes)", - .base.cra_driver_name = "xts-aes-tegra", -- .base.cra_priority = 500, -+ .base.cra_priority = 1, - .base.cra_flags = CRYPTO_ALG_TYPE_SKCIPHER | - CRYPTO_ALG_ASYNC, - .base.cra_blocksize = TEGRA_SE_AES_BLOCK_SIZE, -@@ -6478,7 +6478,7 @@ static struct skcipher_alg aes_algs[] = { - { - .base.cra_name = "cbc(aes)", - .base.cra_driver_name = "cbc-aes-tegra", -- .base.cra_priority = 500, -+ .base.cra_priority = 1, - .base.cra_flags = CRYPTO_ALG_TYPE_SKCIPHER | - CRYPTO_ALG_ASYNC, - .base.cra_blocksize = TEGRA_SE_AES_BLOCK_SIZE, -@@ -6497,7 +6497,7 @@ static struct skcipher_alg aes_algs[] = { - { - .base.cra_name = "ecb(aes)", - .base.cra_driver_name = "ecb-aes-tegra", -- .base.cra_priority = 500, -+ .base.cra_priority = 1, - .base.cra_flags = CRYPTO_ALG_TYPE_SKCIPHER | - CRYPTO_ALG_ASYNC, - .base.cra_blocksize = TEGRA_SE_AES_BLOCK_SIZE, -@@ -6516,7 +6516,7 @@ static struct skcipher_alg aes_algs[] = { - { - .base.cra_name = "ctr(aes)", - .base.cra_driver_name = "ctr-aes-tegra", -- .base.cra_priority = 500, -+ .base.cra_priority = 1, - .base.cra_flags = CRYPTO_ALG_TYPE_SKCIPHER | - CRYPTO_ALG_ASYNC, - .base.cra_blocksize = TEGRA_SE_AES_BLOCK_SIZE, -@@ -6535,7 +6535,7 @@ static struct skcipher_alg aes_algs[] = { - { - .base.cra_name = "ofb(aes)", - .base.cra_driver_name = "ofb-aes-tegra", -- .base.cra_priority = 500, -+ .base.cra_priority = 1, - .base.cra_flags = CRYPTO_ALG_TYPE_SKCIPHER | - CRYPTO_ALG_ASYNC, - .base.cra_blocksize = TEGRA_SE_AES_BLOCK_SIZE, -@@ -6568,7 +6568,7 @@ static struct ahash_alg hash_algs[] = { - .halg.base = { - .cra_name = "cmac(aes)", - .cra_driver_name = "tegra-se-cmac(aes)", -- .cra_priority = 500, -+ .cra_priority = 1, - .cra_flags = CRYPTO_ALG_TYPE_AHASH, - .cra_blocksize = TEGRA_SE_AES_BLOCK_SIZE, - .cra_ctxsize = sizeof(struct tegra_se_aes_cmac_context), -@@ -6590,7 +6590,7 @@ static struct ahash_alg hash_algs[] = { - .halg.base = { - .cra_name = "sha1", - .cra_driver_name = "tegra-se-sha1", -- .cra_priority = 300, -+ .cra_priority = 1, - .cra_flags = CRYPTO_ALG_TYPE_AHASH, - .cra_blocksize = SHA1_BLOCK_SIZE, - .cra_ctxsize = sizeof(struct tegra_se_sha_context), -@@ -6612,7 +6612,7 @@ static struct ahash_alg hash_algs[] = { - .halg.base = { - .cra_name = "sha224", - .cra_driver_name = "tegra-se-sha224", -- .cra_priority = 300, -+ .cra_priority = 1, - .cra_flags = CRYPTO_ALG_TYPE_AHASH, - .cra_blocksize = SHA224_BLOCK_SIZE, - .cra_ctxsize = sizeof(struct tegra_se_sha_context), -@@ -6634,7 +6634,7 @@ static struct ahash_alg hash_algs[] = { - .halg.base = { - .cra_name = "sha256", - .cra_driver_name = "tegra-se-sha256", -- .cra_priority = 300, -+ .cra_priority = 1, - .cra_flags = CRYPTO_ALG_TYPE_AHASH, - .cra_blocksize = SHA256_BLOCK_SIZE, - .cra_ctxsize = sizeof(struct tegra_se_sha_context), -@@ -6656,7 +6656,7 @@ static struct ahash_alg hash_algs[] = { - .halg.base = { - .cra_name = "sha384", - .cra_driver_name = "tegra-se-sha384", -- .cra_priority = 300, -+ .cra_priority = 1, - .cra_flags = CRYPTO_ALG_TYPE_AHASH, - .cra_blocksize = SHA384_BLOCK_SIZE, - .cra_ctxsize = sizeof(struct tegra_se_sha_context), -@@ -6678,7 +6678,7 @@ static struct ahash_alg hash_algs[] = { - .halg.base = { - .cra_name = "sha512", - .cra_driver_name = "tegra-se-sha512", -- .cra_priority = 300, -+ .cra_priority = 1, - .cra_flags = CRYPTO_ALG_TYPE_AHASH, - .cra_blocksize = SHA512_BLOCK_SIZE, - .cra_ctxsize = sizeof(struct tegra_se_sha_context), -@@ -6700,7 +6700,7 @@ static struct ahash_alg hash_algs[] = { - .halg.base = { - .cra_name = "sha3-224", - .cra_driver_name = "tegra-se-sha3-224", -- .cra_priority = 300, -+ .cra_priority = 1, - .cra_flags = CRYPTO_ALG_TYPE_AHASH, - .cra_blocksize = SHA3_224_BLOCK_SIZE, - .cra_ctxsize = sizeof(struct tegra_se_sha_context), -@@ -6722,7 +6722,7 @@ static struct ahash_alg hash_algs[] = { - .halg.base = { - .cra_name = "sha3-256", - .cra_driver_name = "tegra-se-sha3-256", -- .cra_priority = 300, -+ .cra_priority = 1, - .cra_flags = CRYPTO_ALG_TYPE_AHASH, - .cra_blocksize = SHA3_256_BLOCK_SIZE, - .cra_ctxsize = sizeof(struct tegra_se_sha_context), -@@ -6744,7 +6744,7 @@ static struct ahash_alg hash_algs[] = { - .halg.base = { - .cra_name = "sha3-384", - .cra_driver_name = "tegra-se-sha3-384", -- .cra_priority = 300, -+ .cra_priority = 1, - .cra_flags = CRYPTO_ALG_TYPE_AHASH, - .cra_blocksize = SHA3_384_BLOCK_SIZE, - .cra_ctxsize = sizeof(struct tegra_se_sha_context), -@@ -6766,7 +6766,7 @@ static struct ahash_alg hash_algs[] = { - .halg.base = { - .cra_name = "sha3-512", - .cra_driver_name = "tegra-se-sha3-512", -- .cra_priority = 300, -+ .cra_priority = 1, - .cra_flags = CRYPTO_ALG_TYPE_AHASH, - .cra_blocksize = SHA3_512_BLOCK_SIZE, - .cra_ctxsize = sizeof(struct tegra_se_sha_context), -@@ -6788,7 +6788,7 @@ static struct ahash_alg hash_algs[] = { - .halg.base = { - .cra_name = "shake128", - .cra_driver_name = "tegra-se-shake128", -- .cra_priority = 300, -+ .cra_priority = 1, - .cra_flags = CRYPTO_ALG_TYPE_AHASH, - .cra_blocksize = SHA3_512_BLOCK_SIZE, - .cra_ctxsize = sizeof(struct tegra_se_sha_context), -@@ -6810,7 +6810,7 @@ static struct ahash_alg hash_algs[] = { - .halg.base = { - .cra_name = "shake256", - .cra_driver_name = "tegra-se-shake256", -- .cra_priority = 300, -+ .cra_priority = 1, - .cra_flags = CRYPTO_ALG_TYPE_AHASH, - .cra_blocksize = SHA3_512_BLOCK_SIZE, - .cra_ctxsize = sizeof(struct tegra_se_sha_context), -@@ -6833,7 +6833,7 @@ static struct ahash_alg hash_algs[] = { - .halg.base = { - .cra_name = "hmac(sha224)", - .cra_driver_name = "tegra-se-hmac-sha224", -- .cra_priority = 500, -+ .cra_priority = 1, - .cra_flags = CRYPTO_ALG_TYPE_AHASH, - .cra_blocksize = SHA224_BLOCK_SIZE, - .cra_ctxsize = sizeof(struct tegra_se_sha_context), -@@ -6856,7 +6856,7 @@ static struct ahash_alg hash_algs[] = { - .halg.base = { - .cra_name = "hmac(sha256)", - .cra_driver_name = "tegra-se-hmac-sha256", -- .cra_priority = 500, -+ .cra_priority = 1, - .cra_flags = CRYPTO_ALG_TYPE_AHASH, - .cra_blocksize = SHA256_BLOCK_SIZE, - .cra_ctxsize = sizeof(struct tegra_se_sha_context), -@@ -6879,7 +6879,7 @@ static struct ahash_alg hash_algs[] = { - .halg.base = { - .cra_name = "hmac(sha384)", - .cra_driver_name = "tegra-se-hmac-sha384", -- .cra_priority = 500, -+ .cra_priority = 1, - .cra_flags = CRYPTO_ALG_TYPE_AHASH, - .cra_blocksize = SHA384_BLOCK_SIZE, - .cra_ctxsize = sizeof(struct tegra_se_sha_context), -@@ -6902,7 +6902,7 @@ static struct ahash_alg hash_algs[] = { - .halg.base = { - .cra_name = "hmac(sha512)", - .cra_driver_name = "tegra-se-hmac-sha512", -- .cra_priority = 500, -+ .cra_priority = 1, - .cra_flags = CRYPTO_ALG_TYPE_AHASH, - .cra_blocksize = SHA512_BLOCK_SIZE, - .cra_ctxsize = sizeof(struct tegra_se_sha_context), -@@ -6926,7 +6926,7 @@ static struct akcipher_alg rsa_alg = { - .base = { - .cra_name = "rsa-pka0", - .cra_driver_name = "tegra-se-pka0-rsa", -- .cra_priority = 300, -+ .cra_priority = 1, - .cra_ctxsize = sizeof(struct tegra_se_aes_rsa_context), - .cra_module = THIS_MODULE, - } --- -2.45.1 - diff --git a/kernel/Makefile.diff b/kernel/Makefile.diff new file mode 100644 index 00000000..5f8f69af --- /dev/null +++ b/kernel/Makefile.diff @@ -0,0 +1,32 @@ +diff --git a/source/Makefile b/source/Makefile +index ad7dc07..cdbb336 100644 +--- a/source/Makefile ++++ b/source/Makefile +@@ -112,24 +112,21 @@ define display-cmd + KERNELRELEASE="" \ + SYSSRC=$(NVIDIA_HEADERS) \ + SYSOUT=$(NVIDIA_HEADERS) \ +- SYSSRCHOST1X=$(MAKEFILE_DIR)/nvidia-oot/drivers/gpu/host1x/include \ +- CC=$(CROSS_COMPILE)gcc \ +- LD=$(CROSS_COMPILE)ld.bfd \ +- AR=$(CROSS_COMPILE)ar \ +- CXX=$(CROSS_COMPILE)g++ \ +- OBJCOPY=$(CROSS_COMPILE)objcopy ++ SYSSRCHOST1X=$(MAKEFILE_DIR)/nvidia-oot/drivers/gpu/host1x/include + endef + + + nvidia-headers: nvidia-oot + mkdir -p $(NVIDIA_HEADERS) + cp -LR $(KERNEL_HEADERS)/* $(NVIDIA_HEADERS) ++ chmod -R u+w $(NVIDIA_HEADERS) + if [ "$(KERNEL_HEADERS)" != "$(KERNEL_OUTPUT)" ] ; then \ + cp -LR $(KERNEL_OUTPUT)/include/* $(NVIDIA_HEADERS)/include/ ; \ + cp -LR $(KERNEL_OUTPUT)/arch/arm64/include/* $(NVIDIA_HEADERS)/arch/arm64/include/ ; \ + cp -LR $(KERNEL_OUTPUT)/scripts/* $(NVIDIA_HEADERS)/scripts/ ; \ + cp $(KERNEL_OUTPUT)/System.map $(NVIDIA_HEADERS)/ || true ; \ + fi ++ chmod -R u+w $(NVIDIA_HEADERS) + cp -LR $(MAKEFILE_DIR)/nvidia-oot/include/* $(NVIDIA_HEADERS)/include/ + cat $(KERNEL_OUTPUT)/Module.symvers $(MAKEFILE_DIR)/nvidia-oot/Module.symvers > \ + $(NVIDIA_HEADERS)/Module.symvers diff --git a/kernel/default.nix b/kernel/default.nix index 58cefc50..22617d55 100644 --- a/kernel/default.nix +++ b/kernel/default.nix @@ -11,51 +11,20 @@ , ... }@args: -# NVIDIA's kernel builds include multiple git repositories outside the main -# kernel tree. NixOS expects all kernel source to be within a single source -# tree. OE4T's kernel already has this structure. So we can either reuse that -# structure, or reproduce it ourself below. - let useOe4tKernelSrc = false; oe4tKernelSrc = fetchFromGitHub { owner = "OE4T"; repo = "linux-tegra-5.10"; - # No OE4T kernel branch/tag for 35.6.1 as of 2025-03-11 - #rev = "4bce4d148ef3ff159ab55c127d8761aeaac5cc28"; - #sha256 = "sha256-YCOEGQ943EbrApdVFKs+l+g2XWZ8TvdqRxcK8F9ebo8="; - }; - - # keys are strings referring to repos in sourceInfo, keys are relative paths to place into kernel src dir - subtrees = (lib.flip lib.genAttrs (lib.removePrefix "kernel/") [ - "kernel/nvidia" - "kernel/nvidia/drivers/net/ethernet/nvidia/nvethernet/nvethernetrm" - ]) // (lib.flip lib.genAttrs (lib.removePrefix "hardware/") [ - "hardware/nvidia/platform/t19x/common" - "hardware/nvidia/platform/t19x/galen-industrial/kernel-dts" - "hardware/nvidia/platform/t19x/galen/kernel-dts" - "hardware/nvidia/platform/t19x/jakku/kernel-dts" - "hardware/nvidia/platform/t19x/mccoy/kernel-dts" - "hardware/nvidia/platform/t23x/common/kernel-dts" - "hardware/nvidia/platform/t23x/concord/kernel-dts" - "hardware/nvidia/platform/t23x/p3768/kernel-dts" - #"hardware/nvidia/platform/t23x/prometheus/kernel-dts" # Only used for IGX - "hardware/nvidia/platform/tegra/common" - "hardware/nvidia/soc/t19x" - "hardware/nvidia/soc/t23x" - "hardware/nvidia/soc/tegra" - ]) // { - # Exception to the rules above - "kernel/nvgpu" = "nvidia/nvgpu"; }; in buildLinux (args // { - # See Makefile in kernel source root for VERSION/PATCHLEVEL/SUBLEVEL. See realtime patch for rt version - version = "5.10.216" + lib.optionalString realtime "-rt108"; - extraMeta.branch = "5.10"; + # See Makefile in kernel source root for VERSION/PATCHLEVEL/SUBLEVEL. + version = "5.15.148"; + extraMeta.branch = "5.15"; - defconfig = "tegra_defconfig"; + defconfig = "defconfig"; # https://github.com/NixOS/nixpkgs/pull/366004 # introduced a breaking change that if a module is declared but it is not being used it will fail @@ -72,87 +41,18 @@ buildLinux (args // { # Using applyPatches here since it's not obvious how to append an extra # postPatch. This is not very efficient. - src = applyPatches { - src = if useOe4tKernelSrc then oe4tKernelSrc else gitRepos."kernel/kernel-5.10"; - - prePatch = lib.optionalString (!useOe4tKernelSrc) (lib.concatStringsSep "\n" (lib.mapAttrsToList - (treeName: outPath: '' - echo "Copying ${treeName} to ./${outPath}" - mkdir -p "./${outPath}" - cp -r "${gitRepos.${treeName}}/." "./${outPath}" - chmod +w -R "./${outPath}" - '') - subtrees)); - - # Patches from OE4T which modify the build files to work with a single common kernel directory - # Also includes some toolchain and random fixes - patches = lib.optional (!useOe4tKernelSrc) ./oe4t-patches.mbox; - - postPatch = '' - # Remove device tree overlays with some incorrect "remote-endpoint" nodes. - # They are strings, but should be phandles. Otherwise, it fails to compile - rm \ - nvidia/platform/t19x/galen/kernel-dts/tegra194-p2822-camera-imx185-overlay.dts \ - nvidia/platform/t19x/galen/kernel-dts/tegra194-p2822-camera-dual-imx274-overlay.dts \ - nvidia/platform/t23x/concord/kernel-dts/tegra234-p3737-camera-imx185-overlay.dts \ - nvidia/platform/t23x/concord/kernel-dts/tegra234-p3737-camera-dual-imx274-overlay.dts - - sed -i -e '/imx185-overlay/d' -e '/imx274-overlay/d' \ - nvidia/platform/t19x/galen/kernel-dts/Makefile \ - nvidia/platform/t23x/concord/kernel-dts/Makefile - - '' + lib.optionalString realtime '' - for p in $(find $PWD/rt-patches -name \*.patch -type f | sort); do - echo "Applying $p" - patch -s -p1 < $p - done - ''; - }; - autoModules = false; + src = if useOe4tKernelSrc then oe4tKernelSrc else gitRepos."kernel/kernel-jammy-src"; + autoModules = true; features = { }; # TODO: Why is this needed in nixpkgs master (but not NixOS 22.05)? - # As of 22.11, only kernel configs supplied through kernelPatches - # can override configs specified in the platforms kernelPatches = [ - # if USB_XHCI_TEGRA is built as module, the kernel won't build { - name = "make-USB_XHCI_TEGRA-builtins"; - patch = null; - extraConfig = '' - USB_XHCI_TEGRA y - ''; + name = "ipu: Depend on x86"; + patch = ./0001-ipu-Depend-on-x86.patch; } - - # Fix "FAILED: resolved symbol udp_sock" - # This is caused by having multiple structs of the same name in the BTF output. - # For example, `bpftool btf dump file vmlinux | grep "STRUCT 'udp_sock'"` - # [507] STRUCT 'file' size=256 vlen=22 - # [121957] STRUCT 'file' size=256 vlen=22 - # Without this patch, resolve_btfids doesn't handle this case and - # miscounts, leading to the failure. The underlying cause of why we have - # multiple structs of the same name is still unresolved as of 2023-07-29 - { patch = ./0001-tools-resolve_btfids-Warn-when-having-multiple-IDs-f.patch; } - - # Fix Ethernet "downshifting" (e.g.1000Base-T -> 100Base-T) with realtek - # PHY used on Xavier NX - { patch = ./0002-net-phy-realtek-read-actual-speed-on-rtl8211f-to-det.patch; } - - # Lower priority of tegra-se crypto modules since they're slow and flaky - { patch = ./0003-Lower-priority-of-tegra-se-crypto.patch; } ] ++ kernelPatches; structuredExtraConfig = with lib.kernel; { - # MODPOST modules-only.symvers - #ERROR: modpost: "xhci_hc_died" [drivers/usb/host/xhci-tegra.ko] undefined! - #ERROR: modpost: "xhci_hub_status_data" [drivers/usb/host/xhci-tegra.ko] undefined! - #ERROR: modpost: "xhci_enable_usb3_lpm_timeout" [drivers/usb/host/xhci-tegra.ko] undefined! - #ERROR: modpost: "xhci_hub_control" [drivers/usb/host/xhci-tegra.ko] undefined! - #ERROR: modpost: "xhci_get_rhub" [drivers/usb/host/xhci-tegra.ko] undefined! - #ERROR: modpost: "xhci_urb_enqueue" [drivers/usb/host/xhci-tegra.ko] undefined! - #ERROR: modpost: "xhci_irq" [drivers/usb/host/xhci-tegra.ko] undefined! - #USB_XHCI_TEGRA = module; - USB_XHCI_TEGRA = yes; - # stage-1 links /lib/firmware to the /nix/store path in the initramfs. # However, since it's builtin and not a module, that's too late, since # the kernel will have already tried loading! @@ -175,6 +75,7 @@ buildLinux (args // { NFT_COMPAT = module; NFT_LOG = module; NFT_COUNTER = module; + # IPv6 is enabled by default and without some of these `firewall.service` will explode. IP6_NF_MATCH_AH = module; IP6_NF_MATCH_EUI64 = module; @@ -189,13 +90,17 @@ buildLinux (args // { # Needed since mdadm stuff is currently unconditionally included in the initrd # This will hopefully get changed, see: https://github.com/NixOS/nixpkgs/pull/183314 - MD = yes; - BLK_DEV_MD = module; MD_LINEAR = module; MD_RAID0 = module; MD_RAID1 = module; MD_RAID10 = module; MD_RAID456 = module; + + # Needed for booting from USB + USB_UAS = module; + + FW_LOADER_COMPRESS_XZ = yes; + FW_LOADER_COMPRESS_ZSTD = yes; } // (lib.optionalAttrs realtime { PREEMPT_VOLUNTARY = lib.mkForce no; # Disable the one set in common-config.nix # These are the options enabled/disabled by scripts/rt-patch.sh diff --git a/kernel/devicetree.nix b/kernel/devicetree.nix new file mode 100644 index 00000000..cc536db6 --- /dev/null +++ b/kernel/devicetree.nix @@ -0,0 +1,49 @@ +{ bspSrc +, gitRepos +, kernel +, l4tVersion +, lib +, runCommand +, stdenv +, ... +}: +let + l4t-devicetree-sources = runCommand "l4t-devicetree-sources" { } + (lib.strings.concatStrings + ([ "mkdir -p $out ; cp ${bspSrc}/source/Makefile $out/Makefile ;" ] ++ + (lib.lists.forEach + [ "hardware/nvidia/t23x/nv-public" "hardware/nvidia/tegra/nv-public" "kernel-devicetree" ] + ( + project: + '' + mkdir -p $out/${project} + cp --no-preserve=all -r ${lib.attrsets.attrByPath [project] 0 gitRepos}/. $out/${project} + '' + )))); +in +stdenv.mkDerivation { + pname = "l4t-devicetree"; + version = "${l4tVersion}"; + src = l4t-devicetree-sources; + + nativeBuildInputs = kernel.moduleBuildDependencies; + + # See bspSrc/source/Makefile + makeFlags = [ + "KERNEL_HEADERS=${kernel.src}" + "KERNEL_OUTPUT=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" + ]; + + buildFlags = "dtbs"; + + installPhase = '' + runHook preInstall + + mkdir -p $out/ + # See kernel-devicetree/generic-dts/Makefile + # The dtbs are installed to kernel-devicetree/generic-dts/dtbs + install -Dm644 kernel-devicetree/generic-dts/dtbs/* "$out/" + + runHook postInstall + ''; +} diff --git a/kernel/display-driver-reproducibility-fix.patch b/kernel/display-driver-reproducibility-fix.patch deleted file mode 100644 index e6f3fd34..00000000 --- a/kernel/display-driver-reproducibility-fix.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/utils.mk b/utils.mk -index d09807e..bf87a2a 100644 ---- a/utils.mk -+++ b/utils.mk -@@ -524,7 +524,7 @@ define GENERATE_NVIDSTRING - # g_nvid_string.c depends on all objects except g_nvid_string.o, and version.mk - $(NVIDSTRING): $$(filter-out $$(call BUILD_OBJECT_LIST,$$(NVIDSTRING)), $(3)) $$(VERSION_MK) - $(at_if_quiet)$$(MKDIR) $$(dir $$@) -- $(at_if_quiet)$$(ECHO) "const char $(1)[] = \"nvidia id: NVIDIA $$(strip $(2)) for $$(TARGET_ARCH) $$(NVIDIA_VERSION) $$(NVIDSTRING_BUILD_TYPE_STRING) (`$$(WHOAMI)`@`$$(HOSTNAME)`) `$$(DATE)`\";" > $$@ -+ $(at_if_quiet)$$(ECHO) "const char $(1)[] = \"nvidia id: NVIDIA $$(strip $(2)) for $$(TARGET_ARCH) $$(NVIDIA_VERSION) $$(NVIDSTRING_BUILD_TYPE_STRING)\";" > $$@ - $(at_if_quiet)$$(ECHO) "const char *const p$$(strip $(1)) = $(1) + 11;" >> $$@; - endef - diff --git a/kernel/display-driver.nix b/kernel/display-driver.nix deleted file mode 100644 index 8fad291d..00000000 --- a/kernel/display-driver.nix +++ /dev/null @@ -1,38 +0,0 @@ -# TODO: Should try to merge with upstream nixpkgs's open.nix nvidia driver -{ stdenv -, lib -, kernel -, gitRepos -, l4tVersion -}: - -stdenv.mkDerivation { - pname = "nvidia-display-driver"; - version = "jetson_${l4tVersion}"; - - src = gitRepos."tegra/kernel-src/nv-kernel-display-driver"; - - setSourceRoot = "sourceRoot=$(echo */nvdisplay)"; - - patches = [ ./display-driver-reproducibility-fix.patch ]; - - nativeBuildInputs = kernel.moduleBuildDependencies; - - makeFlags = kernel.makeFlags ++ [ - "SYSSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source" - "SYSOUT=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" - "MODLIB=$(out)/lib/modules/${kernel.modDirVersion}" - ] ++ lib.optionals ((stdenv.buildPlatform != stdenv.hostPlatform) && stdenv.hostPlatform.isAarch64) [ - "TARGET_ARCH=aarch64" - ]; - - # Avoid an error in modpost: "__stack_chk_guard" [.../nvidia.ko] undefined - NIX_CFLAGS_COMPILE = "-fno-stack-protector -Wno-implicit-function-declaration"; - - installTargets = [ "modules_install" ]; - enableParallelBuilding = true; - - passthru.meta = { - license = with lib.licenses; [ mit /* OR */ gpl2Only ]; - }; -} diff --git a/kernel/oe4t-patches.mbox b/kernel/oe4t-patches.mbox deleted file mode 100644 index 2e43605e..00000000 --- a/kernel/oe4t-patches.mbox +++ /dev/null @@ -1,1456 +0,0 @@ -From 58a7b0064543e242e9b3759a6dacc4afd6c07bd7 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Fri, 21 Sep 2018 09:04:31 -0700 -Subject: [PATCH 01/26] Build system updates for merged nvidia tree. - -Signed-off-by: Matt Madison ---- - Makefile | 17 +++-------------- - arch/arm64/boot/dts/Makefile | 4 ++-- - nvidia/drivers/video/tegra/dc/bridge/Makefile | 6 +++--- - scripts/Kbuild.include | 2 +- - 4 files changed, 9 insertions(+), 20 deletions(-) - -diff --git a/Makefile b/Makefile -index 33093baedce1..5a40d0805a42 100644 ---- a/Makefile -+++ b/Makefile -@@ -6,20 +6,9 @@ EXTRAVERSION = - NAME = Dare mighty things - - ifeq ($(KERNEL_OVERLAYS),) --ifeq ($(_nv_build_configuration_is_external),0) --# internal build kernel overlays txt --CHOSEN_KERNEL_OVERLAYS_TXT := kernel-int-overlays.txt --else --ifeq ($(_nv_build_configuration_is_external),) --# menuconfig make selects internal profile --# NOTE: external profile menuconfig support may be needed later --CHOSEN_KERNEL_OVERLAYS_TXT := kernel-int-overlays.txt --else --# external build kernel overlays txt --CHOSEN_KERNEL_OVERLAYS_TXT := kernel-overlays.txt --endif --endif --KERNEL_OVERLAYS := $(addprefix $(CURDIR)/../,$(shell cat $(CHOSEN_KERNEL_OVERLAYS_TXT))) -+KERNEL_OVERLAYS := -+KERNEL_OVERLAYS += $(CURDIR)/nvidia -+KERNEL_OVERLAYS += $(CURDIR)/nvidia/nvgpu - else - override KERNEL_OVERLAYS := $(subst :, ,$(KERNEL_OVERLAYS)) - endif -diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile -index dfef14e99367..761d36c33d01 100644 ---- a/arch/arm64/boot/dts/Makefile -+++ b/arch/arm64/boot/dts/Makefile -@@ -47,8 +47,8 @@ dts_mfiles = $(call dts_makefile, $(tegra-dtstree)/platform/, Makefile) - ifneq ($(dts_mfiles),) - dts-include := - include $(dts_mfiles) --dtb-y := $(addprefix $(tegra-rel-dtstree)/hardware/nvidia/,$(dtb-y)) --dtbo-y := $(addprefix $(tegra-rel-dtstree)/hardware/nvidia/,$(dtbo-y)) -+dtb-y := $(addprefix $(tegra-rel-dtstree)/nvidia/,$(dtb-y)) -+dtbo-y := $(addprefix $(tegra-rel-dtstree)/nvidia/,$(dtbo-y)) - ifneq ($(dts-include),) - DTC_INCLUDE += $(addprefix $(tegra-dtstree)/,$(dts-include)) - endif -diff --git a/nvidia/drivers/video/tegra/dc/bridge/Makefile b/nvidia/drivers/video/tegra/dc/bridge/Makefile -index edf9013ab75b..bfda2c32b8c8 100644 ---- a/nvidia/drivers/video/tegra/dc/bridge/Makefile -+++ b/nvidia/drivers/video/tegra/dc/bridge/Makefile -@@ -1,8 +1,8 @@ - GCOV_PROFILE := y - subdir-ccflags-y := -Werror --ccflags-y += -I$(overlay)/drivers/video/tegra/host --ccflags-y += -I$(overlay)/drivers/video/tegra/dc --ccflags-y += -I$(overlay)/drivers/platform/tegra -+ccflags-y += -I$(srctree.nvidia)/drivers/video/tegra/host -+ccflags-y += -I$(srctree.nvidia)/drivers/video/tegra/dc -+ccflags-y += -I$(srctree.nvidia)/drivers/platform/tegra - ccflags-y += -I$(srctree)/arch/arm/mach-tegra - - obj-$(CONFIG_TEGRA_HDMI2FPD_DS90UH949) += hdmi2fpd_ds90uh949.o -diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include -index 1f2f661ab18c..c5965bbcb168 100644 ---- a/scripts/Kbuild.include -+++ b/scripts/Kbuild.include -@@ -352,7 +352,7 @@ endef - ifneq ($(NV_BUILD_KERNEL_DTS_ROOT),) - tegra-dtstree = $(NV_BUILD_KERNEL_DTS_ROOT) - else --tegra-dtstree = $(srctree)/../../hardware/nvidia -+tegra-dtstree = $(srctree)/nvidia - endif - - tegra-root-dtstree = $(subst ^$(realpath $(tegra-dtstree)/../..)/,,^$(realpath $(srctree)/arch/arm64/boot/dts)) --- -2.47.0 - - -From 2f7f99efae12a25692ebd67f7a1ce82a1b389c65 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Fri, 21 Sep 2018 12:56:45 -0700 -Subject: [PATCH 02/26] nvidia: tegra: host: remove xxd reference from Makefile - -and replace it with commands that are more readily -available, updating bus_client.c to provide the actual -variable declearations. - -Signed-off-by: Matt Madison ---- - nvidia/drivers/video/tegra/host/Makefile | 3 +-- - nvidia/drivers/video/tegra/host/bus_client.c | 3 +++ - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/nvidia/drivers/video/tegra/host/Makefile b/nvidia/drivers/video/tegra/host/Makefile -index 169b46acccdb..c5a60789c031 100644 ---- a/nvidia/drivers/video/tegra/host/Makefile -+++ b/nvidia/drivers/video/tegra/host/Makefile -@@ -80,8 +80,7 @@ ifdef CONFIG_EVENTLIB - $(obj)/bus_client.o: $(obj)/nvhost_events_json.h - - $(obj)/nvhost_events_json.h: $(src)/nvhost_events.json -- xxd -i $< $@ -- sed -i 's/\(.*\) \(.*\)nvhost_events_json\(.*\)/\1 nvhost_events_json\3/g' $@ -+ od -tx1 -v $< | sed -r -e's,^[0-9a-f]+, ,' -e's! ([0-9a-f][0-9a-f])! 0x\1,!g' | head -c -4 > $@ - - clean-files := nvhost_events_json.h - -diff --git a/nvidia/drivers/video/tegra/host/bus_client.c b/nvidia/drivers/video/tegra/host/bus_client.c -index 1d923f3e8d85..281f1eda26e6 100644 ---- a/nvidia/drivers/video/tegra/host/bus_client.c -+++ b/nvidia/drivers/video/tegra/host/bus_client.c -@@ -45,7 +45,10 @@ - - #ifdef CONFIG_EVENTLIB - #include -+static const char nvhost_events_json[] = { - #include "nvhost_events_json.h" -+}; -+static size_t nvhost_events_json_len = sizeof(nvhost_events_json); - #endif - - #include "debug.h" --- -2.47.0 - - -From a17a93349bcf29fcc19189e2d3b1975f5165ce8f Mon Sep 17 00:00:00 2001 -From: Ilies CHERGUI -Date: Mon, 27 Dec 2021 12:58:19 +0000 -Subject: [PATCH 03/26] scripts: update 'tegra-root-dtstree' definition - -This is needed to fix dtbs build issue. - -Signed-off-by: Ilies CHERGUI ---- - scripts/Kbuild.include | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include -index c5965bbcb168..fe0db0c83fad 100644 ---- a/scripts/Kbuild.include -+++ b/scripts/Kbuild.include -@@ -355,5 +355,5 @@ else - tegra-dtstree = $(srctree)/nvidia - endif - --tegra-root-dtstree = $(subst ^$(realpath $(tegra-dtstree)/../..)/,,^$(realpath $(srctree)/arch/arm64/boot/dts)) -+tegra-root-dtstree = $(subst ^$(realpath $(tegra-dtstree)/..)/,,^$(realpath $(srctree)/arch/arm64/boot/dts)) - tegra-rel-dtstree = $(subst $(space),/,$(patsubst %,..,$(subst /, ,$(tegra-root-dtstree)))) --- -2.47.0 - - -From f0cb7c4f2480afae473cbd5cd22aec7128e2014b Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Sat, 8 Aug 2020 08:43:33 -0700 -Subject: [PATCH 04/26] nvidia/net: fix Kconfig file for bcmdhd_pcie - -which Kbuild accepts but kconfiglib.py does not, -due to incorrect indentation. - -Signed-off-by: Matt Madison ---- - nvidia/drivers/net/wireless/bcmdhd_pcie/Kconfig | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/nvidia/drivers/net/wireless/bcmdhd_pcie/Kconfig b/nvidia/drivers/net/wireless/bcmdhd_pcie/Kconfig -index 4e19476e00d2..6486da16b1f6 100644 ---- a/nvidia/drivers/net/wireless/bcmdhd_pcie/Kconfig -+++ b/nvidia/drivers/net/wireless/bcmdhd_pcie/Kconfig -@@ -59,8 +59,8 @@ config DHD_USE_SCHED_SCAN - Use CFG80211 sched scan - - config DHD_SET_RANDOM_MAC_VAL --hex "Vendor OUI" --depends on BCMDHD --default 0x001A11 -- help --Set vendor OUI for SoftAP -+ hex "Vendor OUI" -+ depends on BCMDHD -+ default 0x001A11 -+ help -+ Set vendor OUI for SoftAP --- -2.47.0 - - -From 3daffc569bb3da4e1f6a2a45e472ed8b6ddbd34a Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Mon, 27 Dec 2021 06:25:32 -0800 -Subject: [PATCH 05/26] Ensure KERNEL_OVERLAYS are in the source tree - -Signed-off-by: Matt Madison ---- - Makefile | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Makefile b/Makefile -index 5a40d0805a42..97a7a77fc5ee 100644 ---- a/Makefile -+++ b/Makefile -@@ -7,8 +7,8 @@ NAME = Dare mighty things - - ifeq ($(KERNEL_OVERLAYS),) - KERNEL_OVERLAYS := --KERNEL_OVERLAYS += $(CURDIR)/nvidia --KERNEL_OVERLAYS += $(CURDIR)/nvidia/nvgpu -+KERNEL_OVERLAYS += $(dir $(lastword $(MAKEFILE_LIST)))/nvidia -+KERNEL_OVERLAYS += $(dir $(lastword $(MAKEFILE_LIST)))/nvidia/nvgpu - else - override KERNEL_OVERLAYS := $(subst :, ,$(KERNEL_OVERLAYS)) - endif --- -2.47.0 - - -From 0c476ad40ba9609dffa76646c5508fe9e9eb8ee9 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Mon, 27 Dec 2021 07:01:56 -0800 -Subject: [PATCH 06/26] arm64: set -mno-outline-atomics in KBUILD_CFLAGS - -to compensate for NVIDIA's use of GCC builtins instead -of kernel atomics in their semi-out-of-tree drivers. - -Signed-off-by: Matt Madison ---- - arch/arm64/Makefile | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile -index 485b7dbd4f9e..d06262298804 100644 ---- a/arch/arm64/Makefile -+++ b/arch/arm64/Makefile -@@ -52,6 +52,13 @@ KBUILD_AFLAGS += $(compat_vdso) - KBUILD_CFLAGS += $(call cc-option,-mabi=lp64) - KBUILD_AFLAGS += $(call cc-option,-mabi=lp64) - -+# XXX--- -+# NVIDIA uses GCC builtins instead of proper kernel atomics -+# in their semi-out-of-tree drivers, and those builtins get -+# outlined automatically with GCC 10 and later -+KBUILD_CFLAGS += $(call cc-option,-mno-outline-atomics) -+# ---XXX -+ - # Avoid generating .eh_frame* sections. - KBUILD_CFLAGS += -fno-asynchronous-unwind-tables -fno-unwind-tables - KBUILD_AFLAGS += -fno-asynchronous-unwind-tables -fno-unwind-tables --- -2.47.0 - - -From d0d82d3fb0d2d888bda5983ec552eb1eba38171e Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Thu, 6 May 2021 05:12:54 -0700 -Subject: [PATCH 07/26] nvidia: net/wireless/bcmdhd: fix incorrect identation - -flagged by gcc 11. - -Signed-off-by: Matt Madison ---- - nvidia/drivers/net/wireless/bcmdhd/dhd_linux.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/nvidia/drivers/net/wireless/bcmdhd/dhd_linux.c b/nvidia/drivers/net/wireless/bcmdhd/dhd_linux.c -index 365b6a12320d..74e59df7832f 100644 ---- a/nvidia/drivers/net/wireless/bcmdhd/dhd_linux.c -+++ b/nvidia/drivers/net/wireless/bcmdhd/dhd_linux.c -@@ -3366,8 +3366,8 @@ dhd_watchdog_thread(void *data) - jiffies + - msecs_to_jiffies(dhd_watchdog_ms) - - min(msecs_to_jiffies(dhd_watchdog_ms), time_lapse)); -- DHD_GENERAL_UNLOCK(&dhd->pub, flags); -- } -+ DHD_GENERAL_UNLOCK(&dhd->pub, flags); -+ } - } else { - break; - } --- -2.47.0 - - -From 23cdf54cc98686db7acf33fc22fcbb569f6c55a4 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Thu, 6 May 2021 05:36:19 -0700 -Subject: [PATCH 08/26] nvidia: net/wireless/realtek: clean up indentation - issues - -now flagged as errors by gcc 11. Some of these were actual -bugs. - -Signed-off-by: Matt Madison ---- - .../wireless/realtek/rtl8812au/core/efuse/rtw_efuse.c | 4 ++-- - .../net/wireless/realtek/rtl8812au/core/rtw_mlme.c | 5 ++++- - .../net/wireless/realtek/rtl8812au/core/rtw_rf.c | 3 ++- - .../wireless/realtek/rtl8812au/core/rtw_wlan_util.c | 4 ++-- - .../wireless/realtek/rtl8814au/core/efuse/rtw_efuse.c | 2 +- - .../net/wireless/realtek/rtl8814au/core/rtw_mlme.c | 5 ++++- - .../net/wireless/realtek/rtl8814au/core/rtw_recv.c | 10 +++++----- - .../wireless/realtek/rtl8821au/core/efuse/rtw_efuse.c | 2 +- - .../net/wireless/realtek/rtl8821au/core/rtw_mlme.c | 5 ++++- - .../net/wireless/realtek/rtl8821au/core/rtw_recv.c | 10 +++++----- - .../wireless/realtek/rtl8821cu/core/efuse/rtw_efuse.c | 2 +- - .../net/wireless/realtek/rtl8821cu/core/rtw_mlme.c | 5 ++++- - .../net/wireless/realtek/rtl8821cu/core/rtw_recv.c | 10 +++++----- - .../wireless/realtek/rtl8822bu/core/efuse/rtw_efuse.c | 2 +- - .../net/wireless/realtek/rtl8822bu/core/rtw_mlme.c | 5 ++++- - .../net/wireless/realtek/rtl8822bu/core/rtw_recv.c | 10 +++++----- - .../net/wireless/realtek/rtl8822ce/core/rtw_mlme.c | 5 ++++- - 17 files changed, 54 insertions(+), 35 deletions(-) - -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8812au/core/efuse/rtw_efuse.c b/nvidia/drivers/net/wireless/realtek/rtl8812au/core/efuse/rtw_efuse.c -index 44d8ac4687b5..af715d5f9198 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8812au/core/efuse/rtw_efuse.c -+++ b/nvidia/drivers/net/wireless/realtek/rtl8812au/core/efuse/rtw_efuse.c -@@ -780,10 +780,10 @@ void rtw_efuse_analyze(PADAPTER padapter, u8 Type, u8 Fake) - for (i = 0; i < mapLen; i++) { - if (i % 16 == 0) - RTW_PRINT_SEL(RTW_DBGDUMP, "0x%03x: ", i); -- _RTW_PRINT_SEL(RTW_DBGDUMP, "%02X%s" -+ _RTW_PRINT_SEL(RTW_DBGDUMP, "%02X%s" - , pEfuseHal->fakeEfuseInitMap[i] - , ((i + 1) % 16 == 0) ? "\n" : (((i + 1) % 8 == 0) ? " " : " ") -- ); -+ ); - } - _RTW_PRINT_SEL(RTW_DBGDUMP, "\n"); - -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8812au/core/rtw_mlme.c b/nvidia/drivers/net/wireless/realtek/rtl8812au/core/rtw_mlme.c -index a3567a2c873e..9e3cdc0e0a65 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8812au/core/rtw_mlme.c -+++ b/nvidia/drivers/net/wireless/realtek/rtl8812au/core/rtw_mlme.c -@@ -3193,10 +3193,13 @@ void rtw_drv_scan_by_self(_adapter *padapter, u8 reason) - #ifdef CONFIG_LAYER2_ROAMING - if (rtw_chk_roam_flags(padapter, RTW_ROAM_ACTIVE) && pmlmepriv->need_to_roam == _TRUE) - RTW_INFO(FUNC_ADPT_FMT" need to roam, don't care BusyTraffic\n", FUNC_ADPT_ARG(padapter)); -- else -+ else { - #endif - RTW_INFO(FUNC_ADPT_FMT" exit BusyTraffic\n", FUNC_ADPT_ARG(padapter)); - goto exit; -+ #ifdef CONFIG_LAYER2_ROAMING -+ } -+ #endif - } - else if (ssc_chk != SS_ALLOW) - goto exit; -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8812au/core/rtw_rf.c b/nvidia/drivers/net/wireless/realtek/rtl8812au/core/rtw_rf.c -index fa851e40e822..f8015fd99123 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8812au/core/rtw_rf.c -+++ b/nvidia/drivers/net/wireless/realtek/rtl8812au/core/rtw_rf.c -@@ -762,9 +762,10 @@ void dump_txpwr_lmt(void *sel, _adapter *adapter) - - RTW_PRINT_SEL(sel, "txpwr_lmt_2g_cck_ofdm_state:0x%02x\n", rfctl->txpwr_lmt_2g_cck_ofdm_state); - #ifdef CONFIG_IEEE80211_BAND_5GHZ -- if (IS_HARDWARE_TYPE_JAGUAR_AND_JAGUAR2(adapter)) -+ if (IS_HARDWARE_TYPE_JAGUAR_AND_JAGUAR2(adapter)) { - RTW_PRINT_SEL(sel, "txpwr_lmt_5g_cck_ofdm_state:0x%02x\n", rfctl->txpwr_lmt_5g_cck_ofdm_state); - RTW_PRINT_SEL(sel, "txpwr_lmt_5g_20_40_ref:0x%02x\n", rfctl->txpwr_lmt_5g_20_40_ref); -+ } - #endif - RTW_PRINT_SEL(sel, "\n"); - -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8812au/core/rtw_wlan_util.c b/nvidia/drivers/net/wireless/realtek/rtl8812au/core/rtw_wlan_util.c -index fd9b7cabde3f..ad8a00e92e5b 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8812au/core/rtw_wlan_util.c -+++ b/nvidia/drivers/net/wireless/realtek/rtl8812au/core/rtw_wlan_util.c -@@ -3225,8 +3225,8 @@ void rtw_parse_sta_vendor_ie_8812(_adapter *adapter, struct sta_info *sta, u8 *t - else { - if(*(p+1) > 6 ) { - for(i=0; i<9;i++) -- RTW_INFO("p[%d]=0x%x",i,*(p+i) ); -- RTW_INFO("\n"); -+ RTW_INFO("p[%d]=0x%x ",i,*(p+i) ); -+ RTW_INFO("\n"); - if(*(p+6) != 2) - goto exit; - -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8814au/core/efuse/rtw_efuse.c b/nvidia/drivers/net/wireless/realtek/rtl8814au/core/efuse/rtw_efuse.c -index a3572531ee9e..54e34d4b6f11 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8814au/core/efuse/rtw_efuse.c -+++ b/nvidia/drivers/net/wireless/realtek/rtl8814au/core/efuse/rtw_efuse.c -@@ -904,7 +904,7 @@ void rtw_efuse_analyze(PADAPTER padapter, u8 Type, u8 Fake) - for (i = 0; i < mapLen; i++) { - if (i % 16 == 0) - RTW_PRINT_SEL(RTW_DBGDUMP, "0x%03x: ", i); -- _RTW_PRINT_SEL(RTW_DBGDUMP, "%02X%s" -+ _RTW_PRINT_SEL(RTW_DBGDUMP, "%02X%s" - , pEfuseHal->fakeEfuseInitMap[i] - , ((i + 1) % 16 == 0) ? "\n" : (((i + 1) % 8 == 0) ? " " : " ") - ); -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8814au/core/rtw_mlme.c b/nvidia/drivers/net/wireless/realtek/rtl8814au/core/rtw_mlme.c -index 791fafd073fe..257f24a8fde7 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8814au/core/rtw_mlme.c -+++ b/nvidia/drivers/net/wireless/realtek/rtl8814au/core/rtw_mlme.c -@@ -3127,10 +3127,13 @@ void rtw_drv_scan_by_self(_adapter *padapter, u8 reason) - #ifdef CONFIG_LAYER2_ROAMING - if (rtw_chk_roam_flags(padapter, RTW_ROAM_ACTIVE) && pmlmepriv->need_to_roam == _TRUE) - RTW_INFO(FUNC_ADPT_FMT" need to roam, don't care BusyTraffic\n", FUNC_ADPT_ARG(padapter)); -- else -+ else { - #endif - RTW_INFO(FUNC_ADPT_FMT" exit BusyTraffic\n", FUNC_ADPT_ARG(padapter)); - goto exit; -+ #ifdef CONFIG_LAYER2_ROAMING -+ } -+ #endif - } - else if (ssc_chk != SS_ALLOW) - goto exit; -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8814au/core/rtw_recv.c b/nvidia/drivers/net/wireless/realtek/rtl8814au/core/rtw_recv.c -index 2d5047fc8719..aa52b3e15eca 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8814au/core/rtw_recv.c -+++ b/nvidia/drivers/net/wireless/realtek/rtl8814au/core/rtw_recv.c -@@ -3575,11 +3575,11 @@ int validate_mp_recv_frame(_adapter *adapter, union recv_frame *precv_frame) - for (i = 0; i < precv_frame->u.hdr.len; i = i + 8) - RTW_INFO("%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:\n", *(ptr + i), - *(ptr + i + 1), *(ptr + i + 2) , *(ptr + i + 3) , *(ptr + i + 4), *(ptr + i + 5), *(ptr + i + 6), *(ptr + i + 7)); -- RTW_INFO("#############################\n"); -- _rtw_memset(pmppriv->mplink_buf, '\0' , sizeof(pmppriv->mplink_buf)); -- _rtw_memcpy(pmppriv->mplink_buf, ptr, precv_frame->u.hdr.len); -- pmppriv->mplink_rx_len = precv_frame->u.hdr.len; -- pmppriv->mplink_brx =_TRUE; -+ RTW_INFO("#############################\n"); -+ _rtw_memset(pmppriv->mplink_buf, '\0' , sizeof(pmppriv->mplink_buf)); -+ _rtw_memcpy(pmppriv->mplink_buf, ptr, precv_frame->u.hdr.len); -+ pmppriv->mplink_rx_len = precv_frame->u.hdr.len; -+ pmppriv->mplink_brx =_TRUE; - } - } - if (pmppriv->bloopback) { -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8821au/core/efuse/rtw_efuse.c b/nvidia/drivers/net/wireless/realtek/rtl8821au/core/efuse/rtw_efuse.c -index 89f27271e845..5eec8b78278a 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8821au/core/efuse/rtw_efuse.c -+++ b/nvidia/drivers/net/wireless/realtek/rtl8821au/core/efuse/rtw_efuse.c -@@ -904,7 +904,7 @@ void rtw_efuse_analyze(PADAPTER padapter, u8 Type, u8 Fake) - for (i = 0; i < mapLen; i++) { - if (i % 16 == 0) - RTW_PRINT_SEL(RTW_DBGDUMP, "0x%03x: ", i); -- _RTW_PRINT_SEL(RTW_DBGDUMP, "%02X%s" -+ _RTW_PRINT_SEL(RTW_DBGDUMP, "%02X%s" - , pEfuseHal->fakeEfuseInitMap[i] - , ((i + 1) % 16 == 0) ? "\n" : (((i + 1) % 8 == 0) ? " " : " ") - ); -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8821au/core/rtw_mlme.c b/nvidia/drivers/net/wireless/realtek/rtl8821au/core/rtw_mlme.c -index 5c905d9d49e2..930665bfbbe7 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8821au/core/rtw_mlme.c -+++ b/nvidia/drivers/net/wireless/realtek/rtl8821au/core/rtw_mlme.c -@@ -3137,10 +3137,13 @@ void rtw_drv_scan_by_self(_adapter *padapter, u8 reason) - #ifdef CONFIG_LAYER2_ROAMING - if (rtw_chk_roam_flags(padapter, RTW_ROAM_ACTIVE) && pmlmepriv->need_to_roam == _TRUE) - RTW_INFO(FUNC_ADPT_FMT" need to roam, don't care BusyTraffic\n", FUNC_ADPT_ARG(padapter)); -- else -+ else { - #endif - RTW_INFO(FUNC_ADPT_FMT" exit BusyTraffic\n", FUNC_ADPT_ARG(padapter)); - goto exit; -+ #ifdef CONFIG_LAYER2_ROAMING -+ } -+ #endif - } - else if (ssc_chk != SS_ALLOW) - goto exit; -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8821au/core/rtw_recv.c b/nvidia/drivers/net/wireless/realtek/rtl8821au/core/rtw_recv.c -index e417f13c18ac..6309fee2a165 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8821au/core/rtw_recv.c -+++ b/nvidia/drivers/net/wireless/realtek/rtl8821au/core/rtw_recv.c -@@ -3575,11 +3575,11 @@ int validate_mp_recv_frame(_adapter *adapter, union recv_frame *precv_frame) - for (i = 0; i < precv_frame->u.hdr.len; i = i + 8) - RTW_INFO("%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:\n", *(ptr + i), - *(ptr + i + 1), *(ptr + i + 2) , *(ptr + i + 3) , *(ptr + i + 4), *(ptr + i + 5), *(ptr + i + 6), *(ptr + i + 7)); -- RTW_INFO("#############################\n"); -- _rtw_memset(pmppriv->mplink_buf, '\0' , sizeof(pmppriv->mplink_buf)); -- _rtw_memcpy(pmppriv->mplink_buf, ptr, precv_frame->u.hdr.len); -- pmppriv->mplink_rx_len = precv_frame->u.hdr.len; -- pmppriv->mplink_brx =_TRUE; -+ RTW_INFO("#############################\n"); -+ _rtw_memset(pmppriv->mplink_buf, '\0' , sizeof(pmppriv->mplink_buf)); -+ _rtw_memcpy(pmppriv->mplink_buf, ptr, precv_frame->u.hdr.len); -+ pmppriv->mplink_rx_len = precv_frame->u.hdr.len; -+ pmppriv->mplink_brx =_TRUE; - } - } - if (pmppriv->bloopback) { -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8821cu/core/efuse/rtw_efuse.c b/nvidia/drivers/net/wireless/realtek/rtl8821cu/core/efuse/rtw_efuse.c -index 89f27271e845..5eec8b78278a 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8821cu/core/efuse/rtw_efuse.c -+++ b/nvidia/drivers/net/wireless/realtek/rtl8821cu/core/efuse/rtw_efuse.c -@@ -904,7 +904,7 @@ void rtw_efuse_analyze(PADAPTER padapter, u8 Type, u8 Fake) - for (i = 0; i < mapLen; i++) { - if (i % 16 == 0) - RTW_PRINT_SEL(RTW_DBGDUMP, "0x%03x: ", i); -- _RTW_PRINT_SEL(RTW_DBGDUMP, "%02X%s" -+ _RTW_PRINT_SEL(RTW_DBGDUMP, "%02X%s" - , pEfuseHal->fakeEfuseInitMap[i] - , ((i + 1) % 16 == 0) ? "\n" : (((i + 1) % 8 == 0) ? " " : " ") - ); -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8821cu/core/rtw_mlme.c b/nvidia/drivers/net/wireless/realtek/rtl8821cu/core/rtw_mlme.c -index 936205bad360..366bf98c21cd 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8821cu/core/rtw_mlme.c -+++ b/nvidia/drivers/net/wireless/realtek/rtl8821cu/core/rtw_mlme.c -@@ -3125,10 +3125,13 @@ void rtw_drv_scan_by_self(_adapter *padapter, u8 reason) - #ifdef CONFIG_LAYER2_ROAMING - if (rtw_chk_roam_flags(padapter, RTW_ROAM_ACTIVE) && pmlmepriv->need_to_roam == _TRUE) - RTW_INFO(FUNC_ADPT_FMT" need to roam, don't care BusyTraffic\n", FUNC_ADPT_ARG(padapter)); -- else -+ else { - #endif - RTW_INFO(FUNC_ADPT_FMT" exit BusyTraffic\n", FUNC_ADPT_ARG(padapter)); - goto exit; -+ #ifdef CONFIG_LAYER2_ROAMING -+ } -+ #endif - } - else if (ssc_chk != SS_ALLOW) - goto exit; -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8821cu/core/rtw_recv.c b/nvidia/drivers/net/wireless/realtek/rtl8821cu/core/rtw_recv.c -index e417f13c18ac..6309fee2a165 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8821cu/core/rtw_recv.c -+++ b/nvidia/drivers/net/wireless/realtek/rtl8821cu/core/rtw_recv.c -@@ -3575,11 +3575,11 @@ int validate_mp_recv_frame(_adapter *adapter, union recv_frame *precv_frame) - for (i = 0; i < precv_frame->u.hdr.len; i = i + 8) - RTW_INFO("%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:\n", *(ptr + i), - *(ptr + i + 1), *(ptr + i + 2) , *(ptr + i + 3) , *(ptr + i + 4), *(ptr + i + 5), *(ptr + i + 6), *(ptr + i + 7)); -- RTW_INFO("#############################\n"); -- _rtw_memset(pmppriv->mplink_buf, '\0' , sizeof(pmppriv->mplink_buf)); -- _rtw_memcpy(pmppriv->mplink_buf, ptr, precv_frame->u.hdr.len); -- pmppriv->mplink_rx_len = precv_frame->u.hdr.len; -- pmppriv->mplink_brx =_TRUE; -+ RTW_INFO("#############################\n"); -+ _rtw_memset(pmppriv->mplink_buf, '\0' , sizeof(pmppriv->mplink_buf)); -+ _rtw_memcpy(pmppriv->mplink_buf, ptr, precv_frame->u.hdr.len); -+ pmppriv->mplink_rx_len = precv_frame->u.hdr.len; -+ pmppriv->mplink_brx =_TRUE; - } - } - if (pmppriv->bloopback) { -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8822bu/core/efuse/rtw_efuse.c b/nvidia/drivers/net/wireless/realtek/rtl8822bu/core/efuse/rtw_efuse.c -index a97abc2d5eb4..09a75c4d258a 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8822bu/core/efuse/rtw_efuse.c -+++ b/nvidia/drivers/net/wireless/realtek/rtl8822bu/core/efuse/rtw_efuse.c -@@ -904,7 +904,7 @@ void rtw_efuse_analyze(PADAPTER padapter, u8 Type, u8 Fake) - for (i = 0; i < mapLen; i++) { - if (i % 16 == 0) - RTW_PRINT_SEL(RTW_DBGDUMP, "0x%03x: ", i); -- _RTW_PRINT_SEL(RTW_DBGDUMP, "%02X%s" -+ _RTW_PRINT_SEL(RTW_DBGDUMP, "%02X%s" - , pEfuseHal->fakeEfuseInitMap[i] - , ((i + 1) % 16 == 0) ? "\n" : (((i + 1) % 8 == 0) ? " " : " ") - ); -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8822bu/core/rtw_mlme.c b/nvidia/drivers/net/wireless/realtek/rtl8822bu/core/rtw_mlme.c -index 83a0cf2d6e9e..6e35fc1fe36b 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8822bu/core/rtw_mlme.c -+++ b/nvidia/drivers/net/wireless/realtek/rtl8822bu/core/rtw_mlme.c -@@ -3451,10 +3451,13 @@ void rtw_drv_scan_by_self(_adapter *padapter, u8 reason) - #ifdef CONFIG_LAYER2_ROAMING - if (rtw_chk_roam_flags(padapter, RTW_ROAM_ACTIVE) && pmlmepriv->need_to_roam == _TRUE) - RTW_INFO(FUNC_ADPT_FMT" need to roam, don't care BusyTraffic\n", FUNC_ADPT_ARG(padapter)); -- else -+ else { - #endif - RTW_INFO(FUNC_ADPT_FMT" exit BusyTraffic\n", FUNC_ADPT_ARG(padapter)); - goto exit; -+ #ifdef CONFIG_LAYER2_ROAMING -+ } -+ #endif - } - else if (ssc_chk != SS_ALLOW) - goto exit; -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8822bu/core/rtw_recv.c b/nvidia/drivers/net/wireless/realtek/rtl8822bu/core/rtw_recv.c -index e417f13c18ac..6309fee2a165 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8822bu/core/rtw_recv.c -+++ b/nvidia/drivers/net/wireless/realtek/rtl8822bu/core/rtw_recv.c -@@ -3575,11 +3575,11 @@ int validate_mp_recv_frame(_adapter *adapter, union recv_frame *precv_frame) - for (i = 0; i < precv_frame->u.hdr.len; i = i + 8) - RTW_INFO("%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:\n", *(ptr + i), - *(ptr + i + 1), *(ptr + i + 2) , *(ptr + i + 3) , *(ptr + i + 4), *(ptr + i + 5), *(ptr + i + 6), *(ptr + i + 7)); -- RTW_INFO("#############################\n"); -- _rtw_memset(pmppriv->mplink_buf, '\0' , sizeof(pmppriv->mplink_buf)); -- _rtw_memcpy(pmppriv->mplink_buf, ptr, precv_frame->u.hdr.len); -- pmppriv->mplink_rx_len = precv_frame->u.hdr.len; -- pmppriv->mplink_brx =_TRUE; -+ RTW_INFO("#############################\n"); -+ _rtw_memset(pmppriv->mplink_buf, '\0' , sizeof(pmppriv->mplink_buf)); -+ _rtw_memcpy(pmppriv->mplink_buf, ptr, precv_frame->u.hdr.len); -+ pmppriv->mplink_rx_len = precv_frame->u.hdr.len; -+ pmppriv->mplink_brx =_TRUE; - } - } - if (pmppriv->bloopback) { -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mlme.c b/nvidia/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mlme.c -index 752a3300f76a..a1974d9f9451 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mlme.c -+++ b/nvidia/drivers/net/wireless/realtek/rtl8822ce/core/rtw_mlme.c -@@ -3662,12 +3662,15 @@ u8 rtw_drv_scan_by_self(_adapter *padapter, u8 reason) - #ifdef CONFIG_LAYER2_ROAMING - if (rtw_chk_roam_flags(padapter, RTW_ROAM_ACTIVE) && pmlmepriv->need_to_roam == _TRUE) - RTW_INFO(FUNC_ADPT_FMT" need to roam, don't care BusyTraffic\n", FUNC_ADPT_ARG(padapter)); -- else -+ else { - #endif - { - RTW_INFO(FUNC_ADPT_FMT" exit BusyTraffic\n", FUNC_ADPT_ARG(padapter)); - goto exit; - } -+ #ifdef CONFIG_LAYER2_ROAMING -+ } -+ #endif - } - else if (ssc_chk != SS_ALLOW) - goto exit; --- -2.47.0 - - -From c7c6216f7c115cb04edb1eed658809035491f789 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Fri, 1 Oct 2021 03:05:08 -0700 -Subject: [PATCH 09/26] nvidia/driver/net/wireless: fix WEXT conditional in - realtek drivers - -Building the rtl88XXXX drivers for a kernel with CONFIG_WIRELESS_EXT -disabled in the configuration results in unused static functions. -Move the ifdef that conditionalizes inclusion of WEXT support to -above the offending function. - -Signed-off-by: Matt Madison ---- - .../net/wireless/realtek/rtl8812au/os_dep/linux/ioctl_linux.c | 2 +- - .../net/wireless/realtek/rtl8814au/os_dep/linux/ioctl_linux.c | 2 +- - .../net/wireless/realtek/rtl8821au/os_dep/linux/ioctl_linux.c | 2 +- - .../net/wireless/realtek/rtl8821cu/os_dep/linux/ioctl_linux.c | 2 +- - .../net/wireless/realtek/rtl8822bu/os_dep/linux/ioctl_linux.c | 2 +- - 5 files changed, 5 insertions(+), 5 deletions(-) - -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8812au/os_dep/linux/ioctl_linux.c b/nvidia/drivers/net/wireless/realtek/rtl8812au/os_dep/linux/ioctl_linux.c -index 1060cf017e46..9e1afbf67812 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8812au/os_dep/linux/ioctl_linux.c -+++ b/nvidia/drivers/net/wireless/realtek/rtl8812au/os_dep/linux/ioctl_linux.c -@@ -12346,6 +12346,7 @@ static iw_handler rtw_private_handler[] = { - #endif /* CONFIG_INTEL_WIDI */ - }; - -+#ifdef CONFIG_WIRELESS_EXT - #if WIRELESS_EXT >= 17 - static struct iw_statistics *rtw_get_wireless_stats(struct net_device *dev) - { -@@ -12402,7 +12403,6 @@ static struct iw_statistics *rtw_get_wireless_stats(struct net_device *dev) - } - #endif - --#ifdef CONFIG_WIRELESS_EXT - struct iw_handler_def rtw_handlers_def = { - .standard = rtw_handlers, - .num_standard = sizeof(rtw_handlers) / sizeof(iw_handler), -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8814au/os_dep/linux/ioctl_linux.c b/nvidia/drivers/net/wireless/realtek/rtl8814au/os_dep/linux/ioctl_linux.c -index 4128ed1fea12..d0869d650017 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8814au/os_dep/linux/ioctl_linux.c -+++ b/nvidia/drivers/net/wireless/realtek/rtl8814au/os_dep/linux/ioctl_linux.c -@@ -12328,6 +12328,7 @@ static iw_handler rtw_private_handler[] = { - rtw_test, /* 0x1D */ - }; - -+#ifdef CONFIG_WIRELESS_EXT - #if WIRELESS_EXT >= 17 - static struct iw_statistics *rtw_get_wireless_stats(struct net_device *dev) - { -@@ -12384,7 +12385,6 @@ static struct iw_statistics *rtw_get_wireless_stats(struct net_device *dev) - } - #endif - --#ifdef CONFIG_WIRELESS_EXT - struct iw_handler_def rtw_handlers_def = { - .standard = rtw_handlers, - .num_standard = sizeof(rtw_handlers) / sizeof(iw_handler), -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8821au/os_dep/linux/ioctl_linux.c b/nvidia/drivers/net/wireless/realtek/rtl8821au/os_dep/linux/ioctl_linux.c -index a46609723300..f2527f3d7ce0 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8821au/os_dep/linux/ioctl_linux.c -+++ b/nvidia/drivers/net/wireless/realtek/rtl8821au/os_dep/linux/ioctl_linux.c -@@ -12345,6 +12345,7 @@ static iw_handler rtw_private_handler[] = { - rtw_test, /* 0x1D */ - }; - -+#ifdef CONFIG_WIRELESS_EXT - #if WIRELESS_EXT >= 17 - static struct iw_statistics *rtw_get_wireless_stats(struct net_device *dev) - { -@@ -12401,7 +12402,6 @@ static struct iw_statistics *rtw_get_wireless_stats(struct net_device *dev) - } - #endif - --#ifdef CONFIG_WIRELESS_EXT - struct iw_handler_def rtw_handlers_def = { - .standard = rtw_handlers, - .num_standard = sizeof(rtw_handlers) / sizeof(iw_handler), -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8821cu/os_dep/linux/ioctl_linux.c b/nvidia/drivers/net/wireless/realtek/rtl8821cu/os_dep/linux/ioctl_linux.c -index f467f7e4588c..352eded54515 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8821cu/os_dep/linux/ioctl_linux.c -+++ b/nvidia/drivers/net/wireless/realtek/rtl8821cu/os_dep/linux/ioctl_linux.c -@@ -12329,6 +12329,7 @@ static iw_handler rtw_private_handler[] = { - rtw_test, /* 0x1D */ - }; - -+#ifdef CONFIG_WIRELESS_EXT - #if WIRELESS_EXT >= 17 - static struct iw_statistics *rtw_get_wireless_stats(struct net_device *dev) - { -@@ -12385,7 +12386,6 @@ static struct iw_statistics *rtw_get_wireless_stats(struct net_device *dev) - } - #endif - --#ifdef CONFIG_WIRELESS_EXT - struct iw_handler_def rtw_handlers_def = { - .standard = rtw_handlers, - .num_standard = sizeof(rtw_handlers) / sizeof(iw_handler), -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8822bu/os_dep/linux/ioctl_linux.c b/nvidia/drivers/net/wireless/realtek/rtl8822bu/os_dep/linux/ioctl_linux.c -index 91c07ae8d2c6..05ede16792ea 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8822bu/os_dep/linux/ioctl_linux.c -+++ b/nvidia/drivers/net/wireless/realtek/rtl8822bu/os_dep/linux/ioctl_linux.c -@@ -12345,6 +12345,7 @@ static iw_handler rtw_private_handler[] = { - rtw_test, /* 0x1D */ - }; - -+#ifdef CONFIG_WIRELESS_EXT - #if WIRELESS_EXT >= 17 - static struct iw_statistics *rtw_get_wireless_stats(struct net_device *dev) - { -@@ -12401,7 +12402,6 @@ static struct iw_statistics *rtw_get_wireless_stats(struct net_device *dev) - } - #endif - --#ifdef CONFIG_WIRELESS_EXT - struct iw_handler_def rtw_handlers_def = { - .standard = rtw_handlers, - .num_standard = sizeof(rtw_handlers) / sizeof(iw_handler), --- -2.47.0 - - -From 213113c966d7e0bd1e2c3c6e3d47584a7f6228b8 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Mon, 3 Jan 2022 05:04:51 -0800 -Subject: [PATCH 10/26] nvgpu: disable GSP stress test - -to cut down on the kernel message spam it was generating. - -Signed-off-by: Matt Madison ---- - nvidia/nvgpu/drivers/gpu/nvgpu/Makefile.linux.configs | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/nvidia/nvgpu/drivers/gpu/nvgpu/Makefile.linux.configs b/nvidia/nvgpu/drivers/gpu/nvgpu/Makefile.linux.configs -index 431e947f1983..821b908178d4 100644 ---- a/nvidia/nvgpu/drivers/gpu/nvgpu/Makefile.linux.configs -+++ b/nvidia/nvgpu/drivers/gpu/nvgpu/Makefile.linux.configs -@@ -62,9 +62,9 @@ CONFIG_NVGPU_REMAP := y - CONFIG_NVGPU_GSP_SCHEDULER := y - - #Enable stress test for GSP --ifeq ($(CONFIG_NVGPU_GSP_SCHEDULER),y) --CONFIG_NVGPU_GSP_STRESS_TEST := y --endif -+#ifeq ($(CONFIG_NVGPU_GSP_SCHEDULER),y) -+#CONFIG_NVGPU_GSP_STRESS_TEST := y -+#endif - - ifeq ($(CONFIG_COMMON_CLK),y) - ifeq ($(CONFIG_PM_DEVFREQ),y) --- -2.47.0 - - -From e833c6dd718f86ce7a1fd5696189d5012bf6a660 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Tue, 8 Feb 2022 12:01:52 -0800 -Subject: [PATCH 11/26] ARM64: update NVIDIA dtb/dtbo generation targets - -* Fix the rule generators to create targets for each - dtb/dtbo directly under arch/arm64/boot/dts with - appropriate dependencies - -* Add a pattern rule for .dtbo files so they can be - individually built from the top-level make - -* Add a 'dtb-overlays' target to build just the dtbos - -Signed-off-by: Matt Madison ---- - arch/arm64/Makefile | 7 +++++++ - arch/arm64/boot/dts/Makefile | 38 +++++++++++++----------------------- - 2 files changed, 21 insertions(+), 24 deletions(-) - -diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile -index d06262298804..eb9497b76f0f 100644 ---- a/arch/arm64/Makefile -+++ b/arch/arm64/Makefile -@@ -171,6 +171,13 @@ Image.%: Image - zinstall install: - $(Q)$(MAKE) $(build)=$(boot) $@ - -+%.dtbo: include/config/kernel.release scripts_dtc -+ $(Q)$(MAKE) $(build)=$(boot)/dts $(boot)/dts/$@ -+ -+PHONY += dtb-overlays -+dtb-overlays: include/config/kernel.release scripts_dtc -+ $(Q)$(MAKE) $(build)=$(boot)/dts dtb-overlays -+ - PHONY += vdso_install - vdso_install: - $(Q)$(MAKE) $(build)=arch/arm64/kernel/vdso $@ -diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile -index 761d36c33d01..6d6a2f08df39 100644 ---- a/arch/arm64/boot/dts/Makefile -+++ b/arch/arm64/boot/dts/Makefile -@@ -63,42 +63,32 @@ DTBO_NEW_RULE_LIST := $(dtbo-y) - dtb-y := $(DTB_LIST) - dtbo-y := $(DTBO_LIST) - --DTB_OBJS := $(addprefix $(obj)/,$(DTB_LIST)) --DTBO_OBJS := $(addprefix $(obj)/,$(DTBO_LIST)) -+DTB_OBJS := $(addprefix $(obj)/,$(notdir $(DTB_LIST))) -+DTBO_OBJS := $(addprefix $(obj)/,$(notdir $(DTBO_LIST))) - - define _define_dtb_rule - $(obj)/$(call replace_ddot,$(1)): $(src)/$(patsubst %.dtb,%.dts,$(1)) FORCE -+ $$(call if_changed_dep,dtc) -+ifneq ($(1),$(call replace_ddot,$(1))) -+$(obj)/$(notdir $(1)): $(obj)/$(call replace_ddot,$(1)) -+ @cp -f $$< $$@ -+endif - endef - - $(foreach _dtb, $(DTB_NEW_RULE_LIST), $(eval $(call _define_dtb_rule,$(_dtb)))) - --DTB_OBJS := $(call replace_ddot,$(DTB_OBJS)) --DTB_NEW_RULE_LIST := $(addprefix $(obj)/,$(DTB_NEW_RULE_LIST)) --DTB_NEW_RULE_LIST := $(call replace_ddot,$(DTB_NEW_RULE_LIST)) -- --$(DTB_NEW_RULE_LIST): -- $(call if_changed_dep,dtc) -- - define _define_dtbo_rule - $(obj)/$(call replace_ddot,$(1)): $(src)/$(patsubst %.dtbo,%.dts,$(1)) FORCE -+ $$(call if_changed_dep,dtc) -+ifneq ($(1),$(call replace_ddot,$(1))) -+$(obj)/$(notdir $(1)): $(obj)/$(call replace_ddot,$(1)) -+ @cp -f $$< $$@ -+endif - endef - - $(foreach _dtbo, $(DTBO_NEW_RULE_LIST), $(eval $(call _define_dtbo_rule,$(_dtbo)))) - --DTBO_OBJS := $(call replace_ddot,$(DTBO_OBJS)) --DTBO_NEW_RULE_LIST := $(addprefix $(obj)/,$(DTBO_NEW_RULE_LIST)) --DTBO_NEW_RULE_LIST := $(call replace_ddot,$(DTBO_NEW_RULE_LIST)) -- --$(DTBO_NEW_RULE_LIST): -- $(call if_changed_dep,dtc) -- --dtbs: $(DTB_OBJS) $(DTBO_OBJS) FORCE -- if [ ! -d arch/arm64/boot/dts/nvidia/ ] ; then \ -- mkdir arch/arm64/boot/dts/nvidia/ ; \ -- fi -- cp -u $(DTB_OBJS) $(DTBO_OBJS) arch/arm64/boot/dts/nvidia/ -- if [ -d arch/arm64/boot/dts/_ddot_/ ] ; then \ -- rm -rf arch/arm64/boot/dts/_ddot_/ ; \ -- fi -+dtbs: $(DTB_OBJS) $(DTBO_OBJS) -+dtb-overlays: $(DTBO_OBJS) - - clean-files := *.dtb *.dtbo *.tmp --- -2.47.0 - - -From 246d646583e2cd2b881f14a2bd235703a8fd646a Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Tue, 16 Aug 2022 06:00:06 -0700 -Subject: [PATCH 12/26] scripts/Makefile.dtbinst: handle dtbs from NVIDIA - source tree overlays - -Signed-off-by: Matt Madison ---- - scripts/Makefile.dtbinst | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/scripts/Makefile.dtbinst b/scripts/Makefile.dtbinst -index 50d580d77ae9..f69eb7bb63fb 100644 ---- a/scripts/Makefile.dtbinst -+++ b/scripts/Makefile.dtbinst -@@ -17,7 +17,7 @@ include include/config/auto.conf - include scripts/Kbuild.include - include $(src)/Makefile - --dtbs := $(addprefix $(dst)/, $(dtb-y) $(if $(CONFIG_OF_ALL_DTBS),$(dtb-))) -+dtbs := $(addprefix $(dst)/, $(notdir $(dtb-y)) $(if $(CONFIG_OF_ALL_DTBS),$(dtb-))) - subdirs := $(addprefix $(obj)/, $(subdir-y) $(subdir-m)) - - __dtbs_install: $(dtbs) $(subdirs) --- -2.47.0 - - -From ae01ebdd3d848e31d9ac5529ece682dfedf1eefe Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Tue, 16 Aug 2022 07:44:20 -0700 -Subject: [PATCH 13/26] nvidia: nvcsi: fix vi_channel test in - csi5_tpg_set_gain() - -Looks like the pointer was converted to an array of pointers, but -the null check wasn't changed to account for this. Caught by gcc-12. - -Signed-off-by: Matt Madison ---- - nvidia/drivers/media/platform/tegra/camera/nvcsi/csi5_fops.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/nvidia/drivers/media/platform/tegra/camera/nvcsi/csi5_fops.c b/nvidia/drivers/media/platform/tegra/camera/nvcsi/csi5_fops.c -index fab8be2ecb17..cda4872a2b4c 100644 ---- a/nvidia/drivers/media/platform/tegra/camera/nvcsi/csi5_fops.c -+++ b/nvidia/drivers/media/platform/tegra/camera/nvcsi/csi5_fops.c -@@ -422,7 +422,9 @@ int csi5_tpg_set_gain(struct tegra_csi_channel *chan, int gain_ratio_tpg) - return -EINVAL; - } - -- if (tegra_chan->tegra_vi_channel == NULL) { -+ vi_port = (tegra_chan->valid_ports > 1) ? port->stream_id : 0; -+ -+ if (tegra_chan->tegra_vi_channel[vi_port] == NULL) { - /* We come here during initial v4l2 ctrl setup during TPG LKM - * loading - */ -@@ -437,7 +439,6 @@ int csi5_tpg_set_gain(struct tegra_csi_channel *chan, int gain_ratio_tpg) - port->virtual_channel_id; - msg.csi_stream_tpg_apply_gain_req.gain_ratio = - get_tpg_gain_ratio_setting(gain_ratio_tpg); -- vi_port = (tegra_chan->valid_ports > 1) ? port->stream_id : 0; - - err = csi5_send_control_message(tegra_chan->tegra_vi_channel[vi_port], &msg, - &msg.csi_stream_tpg_apply_gain_resp.result); --- -2.47.0 - - -From 6bda78fb6c38895656ef0046d7bb954d9c1ee503 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Tue, 16 Aug 2022 08:01:57 -0700 -Subject: [PATCH 14/26] nvidia: rtcpu: fix null pointer check in tegra_vi_get - -The check was being performed on the address of the driver pointer, -rather than the pointer itself. Caught by gcc-12. - -Signed-off-by: Matt Madison ---- - nvidia/drivers/platform/tegra/rtcpu/vi-notify.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/nvidia/drivers/platform/tegra/rtcpu/vi-notify.c b/nvidia/drivers/platform/tegra/rtcpu/vi-notify.c -index c9af83ce74e7..5264244836dd 100644 ---- a/nvidia/drivers/platform/tegra/rtcpu/vi-notify.c -+++ b/nvidia/drivers/platform/tegra/rtcpu/vi-notify.c -@@ -482,7 +482,7 @@ static struct platform_device *tegra_vi_get(struct device *dev) - if (vi_pdev == NULL) - return ERR_PTR(-EPROBE_DEFER); - -- if (&vi_pdev->dev.driver == NULL) { -+ if (vi_pdev->dev.driver == NULL) { - platform_device_put(vi_pdev); - return ERR_PTR(-EPROBE_DEFER); - } --- -2.47.0 - - -From 34729e4fe9e8dfbdf5657ba805091b8ac6af80e8 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Tue, 16 Aug 2022 08:14:59 -0700 -Subject: [PATCH 15/26] nvidia: tegra-camera-rtcpu: fix null pointer check - -tegra_camrtc_get_hsp_device() was checking the address of -the driver field, rather than the driver pointer itself. -Flagged by gcc-12. - -Signed-off-by: Matt Madison ---- - nvidia/drivers/platform/tegra/tegra-camera-rtcpu.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/nvidia/drivers/platform/tegra/tegra-camera-rtcpu.c b/nvidia/drivers/platform/tegra/tegra-camera-rtcpu.c -index 264f1ae6ccb4..e8ee531f1c5d 100644 ---- a/nvidia/drivers/platform/tegra/tegra-camera-rtcpu.c -+++ b/nvidia/drivers/platform/tegra/tegra-camera-rtcpu.c -@@ -1083,7 +1083,7 @@ static struct device *tegra_camrtc_get_hsp_device(struct device_node *hsp_node) - if (pdev == NULL) - return ERR_PTR(-EPROBE_DEFER); - -- if (&pdev->dev.driver == NULL) { -+ if (pdev->dev.driver == NULL) { - platform_device_put(pdev); - return ERR_PTR(-EPROBE_DEFER); - } --- -2.47.0 - - -From 26f181a750ea0c2fdb6ce94419480bef5de2f2ef Mon Sep 17 00:00:00 2001 -From: Jakub Kicinski -Date: Fri, 20 May 2022 12:43:16 -0700 -Subject: [PATCH 16/26] wifi: ath6k: silence false positive - -Wno-dangling-pointer warning on GCC 12 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -For some reason GCC 12 decided to complain about the common -pattern of queuing an object onto a list on the stack in ath6k: - - inlined from ‘ath6kl_htc_mbox_tx’ at drivers/net/wireless/ath/ath6kl/htc_mbox.c:1142:3: -include/linux/list.h:74:19: warning: storing the address of local variable ‘queue’ in ‘*&packet_15(D)->list.prev’ [-Wdangling-pointer=] - 74 | new->prev = prev; - | ~~~~~~~~~~^~~~~~ - -Move the warning to W=1, hopefully it goes away with a compiler -update. - -Acked-by: Kalle Valo -Signed-off-by: Jakub Kicinski ---- - drivers/net/wireless/ath/ath6kl/Makefile | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/drivers/net/wireless/ath/ath6kl/Makefile b/drivers/net/wireless/ath/ath6kl/Makefile -index dc2b3b46781e..01cc0d50fee6 100644 ---- a/drivers/net/wireless/ath/ath6kl/Makefile -+++ b/drivers/net/wireless/ath/ath6kl/Makefile -@@ -36,6 +36,11 @@ ath6kl_core-y += wmi.o - ath6kl_core-y += core.o - ath6kl_core-y += recovery.o - -+# FIXME: temporarily silence -Wdangling-pointer on non W=1+ builds -+ifndef KBUILD_EXTRA_WARN -+CFLAGS_htc_mbox.o += -Wno-dangling-pointer -+endif -+ - ath6kl_core-$(CONFIG_NL80211_TESTMODE) += testmode.o - ath6kl_core-$(CONFIG_ATH6KL_TRACING) += trace.o - --- -2.47.0 - - -From 7393d52ae0b93ba9c52e60e4f5b14a941464c06c Mon Sep 17 00:00:00 2001 -From: Nathan Chancellor -Date: Tue, 24 May 2022 07:56:55 -0700 -Subject: [PATCH 17/26] ath6kl: Use cc-disable-warning to disable - -Wdangling-pointer - -Clang does not support this option so the build fails: - - error: unknown warning option '-Wno-dangling-pointer' [-Werror,-Wunknown-warning-option] - -Use cc-disable-warning so that the option is only added when it is -supported. - -Fixes: bd1d129daa3e ("wifi: ath6k: silence false positive -Wno-dangling-pointer warning on GCC 12") -Reported-by: "kernelci.org bot" -Signed-off-by: Nathan Chancellor -Reviewed-by: Tom Rix -Link: https://lore.kernel.org/r/20220524145655.869822-1-nathan@kernel.org -Signed-off-by: Jakub Kicinski ---- - drivers/net/wireless/ath/ath6kl/Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/net/wireless/ath/ath6kl/Makefile b/drivers/net/wireless/ath/ath6kl/Makefile -index 01cc0d50fee6..a75bfa9fd1cf 100644 ---- a/drivers/net/wireless/ath/ath6kl/Makefile -+++ b/drivers/net/wireless/ath/ath6kl/Makefile -@@ -38,7 +38,7 @@ ath6kl_core-y += recovery.o - - # FIXME: temporarily silence -Wdangling-pointer on non W=1+ builds - ifndef KBUILD_EXTRA_WARN --CFLAGS_htc_mbox.o += -Wno-dangling-pointer -+CFLAGS_htc_mbox.o += $(call cc-disable-warning, dangling-pointer) - endif - - ath6kl_core-$(CONFIG_NL80211_TESTMODE) += testmode.o --- -2.47.0 - - -From 755183655690b38bbec3aa91fe0fa5f82c717935 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Tue, 16 Aug 2022 11:30:17 -0700 -Subject: [PATCH 18/26] nvidia: net: wireless: disable -Waddress in rtl88xxxx - drivers - -There are just too many such mistakes in these drivers, in identical -code copied-and-pasted across all six drivers, to try to fix these -warnings now being flagged by gcc-12. - -Signed-off-by: Matt Madison ---- - nvidia/drivers/net/wireless/realtek/rtl8812au/Makefile | 1 + - nvidia/drivers/net/wireless/realtek/rtl8814au/Makefile | 1 + - nvidia/drivers/net/wireless/realtek/rtl8821au/Makefile | 1 + - nvidia/drivers/net/wireless/realtek/rtl8821cu/Makefile | 1 + - nvidia/drivers/net/wireless/realtek/rtl8822bu/Makefile | 1 + - nvidia/drivers/net/wireless/realtek/rtl8822ce/Makefile | 1 + - 6 files changed, 6 insertions(+) - -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8812au/Makefile b/nvidia/drivers/net/wireless/realtek/rtl8812au/Makefile -index 5b05b30797ef..7a9b4d9d5a2a 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8812au/Makefile -+++ b/nvidia/drivers/net/wireless/realtek/rtl8812au/Makefile -@@ -14,6 +14,7 @@ EXTRA_CFLAGS += -Wno-unused-parameter - EXTRA_CFLAGS += -Wno-unused-function - EXTRA_CFLAGS += -Wno-unused - #EXTRA_CFLAGS += -Wno-uninitialized -+EXTRA_CFLAGS += $(call cc-disable-warning, address) - - GCC_VER_49 := $(shell echo `$(CC) -dumpversion | cut -f1-2 -d.` \>= 4.9 | bc ) - ifeq ($(GCC_VER_49),1) -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8814au/Makefile b/nvidia/drivers/net/wireless/realtek/rtl8814au/Makefile -index 9654d017e814..67fb9cde754a 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8814au/Makefile -+++ b/nvidia/drivers/net/wireless/realtek/rtl8814au/Makefile -@@ -14,6 +14,7 @@ EXTRA_CFLAGS += -Wno-unused-variable - #EXTRA_CFLAGS += -Wno-unused-function - #EXTRA_CFLAGS += -Wno-unused - #EXTRA_CFLAGS += -Wno-uninitialized -+EXTRA_CFLAGS += $(call cc-disable-warning, address) - - GCC_VER_49 := $(shell echo `$(CC) -dumpversion | cut -f1-2 -d.` \>= 4.9 | bc ) - ifeq ($(GCC_VER_49),1) -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8821au/Makefile b/nvidia/drivers/net/wireless/realtek/rtl8821au/Makefile -index e0c52c513e83..d598a83737d6 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8821au/Makefile -+++ b/nvidia/drivers/net/wireless/realtek/rtl8821au/Makefile -@@ -14,6 +14,7 @@ EXTRA_CFLAGS += -Wno-unused-variable - #EXTRA_CFLAGS += -Wno-unused-function - #EXTRA_CFLAGS += -Wno-unused - #EXTRA_CFLAGS += -Wno-uninitialized -+EXTRA_CFLAGS += $(call cc-disable-warning, address) - - GCC_VER_49 := $(shell echo `$(CC) -dumpversion | cut -f1-2 -d.` \>= 4.9 | bc ) - ifeq ($(GCC_VER_49),1) -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8821cu/Makefile b/nvidia/drivers/net/wireless/realtek/rtl8821cu/Makefile -index 1124d672c2b1..a7e92b282363 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8821cu/Makefile -+++ b/nvidia/drivers/net/wireless/realtek/rtl8821cu/Makefile -@@ -14,6 +14,7 @@ EXTRA_CFLAGS += -Wno-unused-variable - #EXTRA_CFLAGS += -Wno-unused-function - #EXTRA_CFLAGS += -Wno-unused - #EXTRA_CFLAGS += -Wno-uninitialized -+EXTRA_CFLAGS += $(call cc-disable-warning, address) - - GCC_VER_49 := $(shell echo `$(CC) -dumpversion | cut -f1-2 -d.` \>= 4.9 | bc ) - ifeq ($(GCC_VER_49),1) -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8822bu/Makefile b/nvidia/drivers/net/wireless/realtek/rtl8822bu/Makefile -index 2f5179664b32..f281ccb67a33 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8822bu/Makefile -+++ b/nvidia/drivers/net/wireless/realtek/rtl8822bu/Makefile -@@ -14,6 +14,7 @@ EXTRA_CFLAGS += -Wno-unused-variable - #EXTRA_CFLAGS += -Wno-unused-function - #EXTRA_CFLAGS += -Wno-unused - #EXTRA_CFLAGS += -Wno-uninitialized -+EXTRA_CFLAGS += $(call cc-disable-warning, address) - - GCC_VER_49 := $(shell echo `$(CC) -dumpversion | cut -f1-2 -d.` \>= 4.9 | bc ) - ifeq ($(GCC_VER_49),1) -diff --git a/nvidia/drivers/net/wireless/realtek/rtl8822ce/Makefile b/nvidia/drivers/net/wireless/realtek/rtl8822ce/Makefile -index 21d853729789..9a6b738508fa 100644 ---- a/nvidia/drivers/net/wireless/realtek/rtl8822ce/Makefile -+++ b/nvidia/drivers/net/wireless/realtek/rtl8822ce/Makefile -@@ -15,6 +15,7 @@ EXTRA_CFLAGS += -Wno-unused-variable - #EXTRA_CFLAGS += -Wno-unused - #EXTRA_CFLAGS += -Wno-uninitialized - EXTRA_CFLAGS += -Wno-missing-prototypes -+EXTRA_CFLAGS += $(call cc-disable-warning, address) - - GCC_VER_49 := $(shell echo `$(CC) -dumpversion | cut -f1-2 -d.` \>= 4.9 | bc ) - ifeq ($(GCC_VER_49),1) --- -2.47.0 - - -From 6d7ba8370b3e9e12566b929891a04c69e5f7c942 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Tue, 16 Aug 2022 12:24:39 -0700 -Subject: [PATCH 19/26] ARM64: dts: pass base name of file to cpp - -The NVIDIA DTS files use the __FILE__ macro to insert -the file name as a property in the tree, and there are -drivers that look for this property. - -To improve reproducibility of builds, redefine that macro -to just the base name of the file, excluding the path. - -Signed-off-by: Matt Madison ---- - arch/arm64/boot/dts/Makefile | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile -index 6d6a2f08df39..4aa2f7039c59 100644 ---- a/arch/arm64/boot/dts/Makefile -+++ b/arch/arm64/boot/dts/Makefile -@@ -3,6 +3,7 @@ - DTC_CPP_FLAGS += $(EXTRA_CPP_FLAGS) - - DTC_CPP_FLAGS += -DLINUX_VERSION=504 -DTEGRA_HOST1X_DT_VERSION=1 -+DTC_CPP_FLAGS += -Wno-builtin-macro-redefined -D__FILE__='"$(notdir $<)"' - - DTC_INCLUDE += $(tegra-dtstree)/soc/tegra/kernel-include - DTC_INCLUDE += $(tegra-dtstree)/platform/tegra/common/kernel-dts --- -2.47.0 - - -From a8f00d1002290f047bb51e113bca7f24af587b5e Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Tue, 16 Aug 2022 12:30:26 -0700 -Subject: [PATCH 20/26] lib: remove build_OID_registry path from emitted output - -to improve build reproducibility. - -Signed-off-by: Matt Madison ---- - lib/build_OID_registry | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/lib/build_OID_registry b/lib/build_OID_registry -index d7fc32ea8ac2..06f242202036 100755 ---- a/lib/build_OID_registry -+++ b/lib/build_OID_registry -@@ -35,7 +35,7 @@ close IN_FILE || die; - # - open C_FILE, ">$ARGV[1]" or die; - print C_FILE "/*\n"; --print C_FILE " * Automatically generated by ", $0, ". Do not edit\n"; -+print C_FILE " * Automatically generated by build_OID_registry. Do not edit\n"; - print C_FILE " */\n"; - - # --- -2.47.0 - - -From b7cc962f4492f2c87365bc4d5e0f0073f210cc59 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Tue, 16 Aug 2022 12:32:56 -0700 -Subject: [PATCH 21/26] tty: remove file name from conmakehash emitted output - -to improve build reproducibility. - -Signed-off-by: Matt Madison ---- - drivers/tty/vt/conmakehash.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/drivers/tty/vt/conmakehash.c b/drivers/tty/vt/conmakehash.c -index cddd789fe46e..789659dde520 100644 ---- a/drivers/tty/vt/conmakehash.c -+++ b/drivers/tty/vt/conmakehash.c -@@ -246,14 +246,14 @@ int main(int argc, char *argv[]) - /*\n\ - * Do not edit this file; it was automatically generated by\n\ - *\n\ -- * conmakehash %s > [this file]\n\ -+ * conmakehash\n\ - *\n\ - */\n\ - \n\ - #include \n\ - \n\ - u8 dfont_unicount[%d] = \n\ --{\n\t", argv[1], fontlen); -+{\n\t", fontlen); - - for ( i = 0 ; i < fontlen ; i++ ) - { --- -2.47.0 - - -From 6768cb7d0060db0dc2d438526759ef663d9e4678 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Mon, 18 Jul 2022 14:12:03 -0700 -Subject: [PATCH 22/26] Makefile: add nvmap location to KERNEL_OVERLAYS setting - -Signed-off-by: Matt Madison ---- - Makefile | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Makefile b/Makefile -index 97a7a77fc5ee..efdcea653716 100644 ---- a/Makefile -+++ b/Makefile -@@ -9,6 +9,7 @@ ifeq ($(KERNEL_OVERLAYS),) - KERNEL_OVERLAYS := - KERNEL_OVERLAYS += $(dir $(lastword $(MAKEFILE_LIST)))/nvidia - KERNEL_OVERLAYS += $(dir $(lastword $(MAKEFILE_LIST)))/nvidia/nvgpu -+KERNEL_OVERLAYS += $(dir $(lastword $(MAKEFILE_LIST)))/nvidia/drivers/video/tegra/nvmap - else - override KERNEL_OVERLAYS := $(subst :, ,$(KERNEL_OVERLAYS)) - endif --- -2.47.0 - - -From e95c1a32d529274e8cfef97b0fa66463875ab322 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Wed, 25 Jan 2023 08:31:34 -0800 -Subject: [PATCH 23/26] nvidia: ar1335: fix/remove useless null address checks - -which are causing compilation errors. - -Signed-off-by: Matt Madison ---- - nvidia/drivers/media/i2c/ar1335_common.c | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) - -diff --git a/nvidia/drivers/media/i2c/ar1335_common.c b/nvidia/drivers/media/i2c/ar1335_common.c -index dbf15fefae49..96ee2944828d 100644 ---- a/nvidia/drivers/media/i2c/ar1335_common.c -+++ b/nvidia/drivers/media/i2c/ar1335_common.c -@@ -692,7 +692,7 @@ static int mcu_stream_config(struct i2c_client *client, uint32_t format, - goto exit; - } - -- for (loop = 0;(&priv->streamdb[loop]) != NULL; loop++) { -+ for (loop = 0; loop < s_data->numfmts; loop++) { - if (priv->streamdb[loop] == mode) { - index = loop + frate_index; - break; -@@ -2094,7 +2094,7 @@ unsigned short int mcu_bload_calc_crc16(unsigned char *buf, int len) - unsigned short int crc = 0; - int i = 0; - -- if (!buf || !(buf + len)) -+ if (!buf) - return 0; - - for (i = 0; i < len; i++) { -@@ -2109,7 +2109,7 @@ unsigned char mcu_bload_inv_checksum(unsigned char *buf, int len) - unsigned int checksum = 0x00; - int i = 0; - -- if (!buf || !(buf + len)) -+ if (!buf) - return 0; - - for (i = 0; i < len; i++) { --- -2.47.0 - - -From da8001cfac18b18abffd6281204fd1ddb5f1d9be Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Wed, 29 Mar 2023 05:58:31 -0700 -Subject: [PATCH 24/26] nvidia: hid-atv-jarvis: remove useless address check - -Signed-off-by: Matt Madison ---- - nvidia/drivers/hid/hid-atv-jarvis.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/nvidia/drivers/hid/hid-atv-jarvis.c b/nvidia/drivers/hid/hid-atv-jarvis.c -index cb1ae7746697..fdaf3ce0fc86 100644 ---- a/nvidia/drivers/hid/hid-atv-jarvis.c -+++ b/nvidia/drivers/hid/hid-atv-jarvis.c -@@ -2089,7 +2089,7 @@ static void atvr_remove(struct hid_device *hdev) - device_remove_file(&hdev->dev, &dev_attr_timeout); - } - -- if (hdev->product == USB_DEVICE_ID_NVIDIA_THUNDERSTRIKE && hdev->uniq) { -+ if (hdev->product == USB_DEVICE_ID_NVIDIA_THUNDERSTRIKE) { - if (shdr_dev->last_ljsx == 0 || shdr_dev->last_ljsx == 0xffff || - shdr_dev->last_ljsy == 0 || shdr_dev->last_ljsy == 0xffff || - shdr_dev->last_rjsx == 0 || shdr_dev->last_rjsx == 0xffff || --- -2.47.0 - - -From 6d6304fbf7550ef4418fc3fcbf21f3ae4341592c Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Sat, 27 May 2023 06:35:24 -0700 -Subject: [PATCH 25/26] net: intel: i40e: disable enum-int-mismatch warnings - -to prevent build failures with gcc13. - -Signed-off-by: Matt Madison ---- - drivers/net/ethernet/intel/i40e/Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/drivers/net/ethernet/intel/i40e/Makefile b/drivers/net/ethernet/intel/i40e/Makefile -index 2f21b3e89fd0..96ffe6074f3b 100644 ---- a/drivers/net/ethernet/intel/i40e/Makefile -+++ b/drivers/net/ethernet/intel/i40e/Makefile -@@ -5,7 +5,7 @@ - # Makefile for the Intel(R) Ethernet Connection XL710 (i40e.ko) driver - # - --ccflags-y += -I$(src) -+ccflags-y += -I$(src) $(call cc-disable-warning, enum-int-mismatch) - subdir-ccflags-y += -I$(src) - - obj-$(CONFIG_I40E) += i40e.o --- -2.47.0 - - -From 4bce4d148ef3ff159ab55c127d8761aeaac5cc28 Mon Sep 17 00:00:00 2001 -From: Matt Madison -Date: Sat, 27 May 2023 06:44:37 -0700 -Subject: [PATCH 26/26] net: intel: ice: disable enum-int-mismatch warnings - -to resolve compilation failures with gcc13. - -Signed-off-by: Matt Madison ---- - drivers/net/ethernet/intel/ice/Makefile | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/drivers/net/ethernet/intel/ice/Makefile b/drivers/net/ethernet/intel/ice/Makefile -index 6da4f43f2348..60165f30967c 100644 ---- a/drivers/net/ethernet/intel/ice/Makefile -+++ b/drivers/net/ethernet/intel/ice/Makefile -@@ -5,6 +5,8 @@ - # Makefile for the Intel(R) Ethernet Connection E800 Series Linux Driver - # - -+ccflags-y += $(call cc-disable-warning, enum-int-mismatch) -+ - obj-$(CONFIG_ICE) += ice.o - - ice-y := ice_main.o \ --- -2.47.0 - diff --git a/kernel/oot-modules.nix b/kernel/oot-modules.nix new file mode 100644 index 00000000..77cd4cc0 --- /dev/null +++ b/kernel/oot-modules.nix @@ -0,0 +1,85 @@ +{ applyPatches +, bspSrc +, gitRepos +, kernel +, l4tVersion +, lib +, runCommand +, stdenv +, ... +}: +let + patchedBsp = applyPatches { + name = "patchedBsp"; + src = bspSrc; + patches = [ + ./Makefile.diff + ]; + }; + + mkCopyProjectCommand = project: '' + mkdir -p $out/${project.name} + cp --no-preserve=all -r ${project}/. $out/${project.name} + ''; + + l4t-oot-projects = [ + gitRepos.hwpm + (applyPatches { + name = "nvidia-oot"; + src = gitRepos.nvidia-oot; + patches = [ + ./0001-rtl8822ce-Fix-Werror-address.patch + ./0002-sound-Fix-include-path-for-tegra-virt-alt-include.patch + ]; + }) + gitRepos.nvgpu + (applyPatches { + name = "nvdisplay"; + src = gitRepos.nvdisplay; + patches = [ + ./0001-nvidia-drm-Guard-nv_dev-in-nv_drm_suspend_resume.patch + ]; + }) + (applyPatches { + name = "nvethernetrm"; + src = gitRepos.nvethernetrm; + # Some directories in the git repo are RO. + # This works for L4T b/c they use different output directory + postPatch = '' + chmod -R u+w osi + ''; + }) + ]; + + l4t-oot-modules-sources = runCommand "l4t-oot-sources" { } + ( + # Copy the Makefile + '' + mkdir -p "$out" + cp "${patchedBsp}/source/Makefile" "$out/Makefile" + '' + # copy the projects + + lib.strings.concatMapStringsSep "\n" mkCopyProjectCommand l4t-oot-projects + # See bspSrc/source/source_sync.sh symlink at end of file + + '' + ln -srf $out/nvethernetrm $out/nvidia-oot/drivers/net/ethernet/nvidia/nvethernet/nvethernetrm + '' + ); +in +stdenv.mkDerivation { + pname = "l4t-oot-modules"; + version = "${l4tVersion}"; + src = l4t-oot-modules-sources; + + nativeBuildInputs = kernel.moduleBuildDependencies; + + # See bspSrc/source/Makefile + makeFlags = kernel.makeFlags ++ [ + "KERNEL_HEADERS=${kernel.src}" + "KERNEL_OUTPUT=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" + "INSTALL_MOD_PATH=$(out)" + ]; + + buildFlags = [ "modules" ]; + installTargets = [ "modules_install" ]; +} diff --git a/modules/default.nix b/modules/default.nix index e7e95f89..a606836a 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -182,32 +182,51 @@ in } ]; - # Use mkOptionDefault so that we prevent conflicting with the priority that - # `nixos-generate-config` uses. - nixpkgs.hostPlatform = lib.mkOptionDefault "aarch64-linux"; - # Use mkBefore to ensure that our overlays get merged prior to any # downstream jetpack-nixos users. This should prevent a situation where a # user's overlay is merged before ours and that overlay depends on # something defined in our overlay. - nixpkgs.overlays = lib.mkBefore [ - (import ../overlay.nix) - (import ../overlay-with-config.nix config) - ]; + nixpkgs = lib.mkMerge [ + { + overlays = lib.mkBefore [ + (import ../overlay.nix) + (import ../overlay-with-config.nix config) + ]; - # Advertise support for CUDA. - nixpkgs.config = mkIf cfg.configureCuda { - cudaSupport = lib.mkDefault true; - cudaCapabilities = - let - isGeneric = cfg.som == "generic"; - isXavier = lib.hasPrefix "xavier-" cfg.som; - isOrin = lib.hasPrefix "orin-" cfg.som; - in - lib.mkDefault - (lib.optionals (isXavier || isGeneric) [ "7.2" ] - ++ lib.optionals (isOrin || isGeneric) [ "8.7" ]); - }; + # Use mkOptionDefault so that we prevent conflicting with the priority that + # `nixos-generate-config` uses. + hostPlatform = lib.mkOptionDefault "aarch64-linux"; + + } + (lib.mkIf cfg.configureCuda { + # Advertise support for CUDA. + config = { + cudaSupport = lib.mkDefault true; + cudaCapabilities = + let + isGeneric = cfg.som == "generic"; + isXavier = lib.hasPrefix "xavier-" cfg.som; + isOrin = lib.hasPrefix "orin-" cfg.som; + in + lib.mkDefault + (lib.optionals (isXavier || isGeneric) [ "7.2" ] + ++ lib.optionals (isOrin || isGeneric) [ "8.7" ]); + }; + + overlays = lib.mkBefore [ + (final: prev: { + # NOTE: samples (and other packages) may pull in dependencies which depend on CUDA (either directly or + # transitively) -- this is problematic for us, because the default CUDA package set is not the one we + # construct. + # To avoid mixed package sets, we make our CUDA package set the default. + inherit (final.nvidia-jetpack) cudaPackages; + # TODO: Remove after bumping past 24.11: reset OpenCV's override on cudaPackages. + # https://github.com/NixOS/nixpkgs/blob/7ffe0edc685f14b8c635e3d6591b0bbb97365e6c/pkgs/top-level/all-packages.nix#L10540-L10541 + opencv4 = prev.opencv4.override { inherit (final) cudaPackages; }; + }) + ]; + }) + ]; boot.kernelPackages = if cfg.kernel.realtime then @@ -226,7 +245,17 @@ in ++ lib.optional (lib.hasPrefix "xavier-" cfg.som || cfg.som == "generic") "video=efifb:off"; # Disable efifb driver, which crashes Xavier NX and possibly AGX boot.initrd.includeDefaultModules = false; # Avoid a bunch of modules we may not get from tegra_defconfig - boot.initrd.availableKernelModules = [ "xhci-tegra" ]; # Make sure USB firmware makes it into initrd + boot.initrd.availableKernelModules = [ + # Make sure USB driver stack makes it into initrd + "phy-tegra-xusb" + "tegra_mce" + "xhci-tegra" + # for type-c connector + "i2c-tegra" + "fusb301" + "typec_ucsi" + "ucsi_ccg" + ]; boot.kernelModules = [ "nvgpu" ] @@ -240,17 +269,12 @@ in options nvidia-drm modeset=1 ''; - # For Orin. Unsupported with PREEMPT_RT. - boot.extraModulePackages = lib.optional - ( - !cfg.kernel.realtime - ) - config.boot.kernelPackages.nvidia-display-driver; + boot.extraModulePackages = [ config.boot.kernelPackages.nvidia-oot-modules ]; hardware.firmware = with pkgs.nvidia-jetpack; [ l4t-firmware l4t-xusb-firmware # usb firmware also present in linux-firmware package, but that package is huge and has much more than needed - cudaPackages.vpi2-firmware # Optional, but needed for pva_auth_allowlist firmware file used by VPI2 + cudaPackages.vpi3-firmware # Optional, but needed for pva_auth_allowlist firmware file used by vpi3 ]; hardware.deviceTree.enable = true; @@ -383,16 +407,16 @@ in wantedBy = [ "multi-user.target" ]; script = let - exe = lib.getExe pkgs.nvidia-jetpack.nvidia-ctk; + ctk = pkgs.nvidia-container-toolkit; in '' - ${exe} cdi generate \ - --nvidia-ctk-path=${exe} \ - --driver-root=${pkgs.nvidia-jetpack.containerDeps} \ - --ldconfig-path ${lib.getExe' pkgs.glibc "ldconfig"} \ - --dev-root=/ \ - --mode=csv \ - --csv.file=${pkgs.nvidia-jetpack.l4tCsv} \ + ${ctk}/bin/nvidia-ctk cdi generate \ + --csv.file ${pkgs.nvidia-jetpack.l4tCsv}/devices.csv \ + --csv.file ${pkgs.nvidia-jetpack.l4tCsv}/drivers.csv \ + --discovery-mode csv \ + --driver-root ${pkgs.nvidia-jetpack.containerDeps} \ + --nvidia-ctk-path ${ctk}/bin/nvidia-ctk \ + --dev-root / \ --output="$RUNTIME_DIRECTORY/jetpack-nixos" ''; }; diff --git a/modules/devices.nix b/modules/devices.nix index 7610f4bd..a4277ea6 100644 --- a/modules/devices.nix +++ b/modules/devices.nix @@ -100,14 +100,14 @@ in targetBoard = mkDefault "jetson-agx-orin-devkit"; # We don't flash the sdmmc with kernel/initrd/etc at all. Just let it be a # regular NixOS machine instead of having some weird partition structure. - partitionTemplate = mkDefault "${pkgs.nvidia-jetpack.bspSrc}/bootloader/t186ref/cfg/flash_t234_qspi.xml"; + partitionTemplate = mkDefault "${pkgs.nvidia-jetpack.bspSrc}/bootloader/generic/cfg/flash_t234_qspi.xml"; }) (mkIf (cfg.som == "orin-agx-industrial") { targetBoard = mkDefault "jetson-agx-orin-devkit-industrial"; # Remove the sdmmc part of this flash.xmo file. The industrial spi part is still different partitionTemplate = mkDefault (pkgs.runCommand "flash.xml" { nativeBuildInputs = [ pkgs.buildPackages.xmlstarlet ]; } '' - xmlstarlet ed -d '//device[@type="sdmmc_user"]' ${pkgs.nvidia-jetpack.bspSrc}/bootloader/t186ref/cfg/flash_t234_qspi_sdmmc_industrial.xml >$out + xmlstarlet ed -d '//device[@type="sdmmc_user"]' ${pkgs.nvidia-jetpack.bspSrc}/bootloader/generic/cfg/flash_t234_qspi_sdmmc_industrial.xml >$out ''); }) @@ -115,7 +115,7 @@ in targetBoard = mkDefault "jetson-orin-nano-devkit${lib.optionalString cfg.super "-super"}"; # Use this instead if you want to use the original Xavier NX Devkit module (p3509-a02) #targetBoard = mkDefault "p3509-a02+p3767-0000"; - partitionTemplate = mkDefault "${pkgs.nvidia-jetpack.bspSrc}/bootloader/t186ref/cfg/flash_t234_qspi.xml"; + partitionTemplate = mkDefault "${pkgs.nvidia-jetpack.bspSrc}/bootloader/generic/cfg/flash_t234_qspi.xml"; }) (mkIf (cfg.som == "xavier-agx") { @@ -123,41 +123,27 @@ in # Remove unnecessary partitions to make it more like # flash_t194_uefi_sdmmc_min.xml, except also keep the A/B slots of # each partition - partitionTemplate = mkDefault (filterPartitions xavierAgxPartitionsToRemove "${pkgs.nvidia-jetpack.bspSrc}/bootloader/t186ref/cfg/flash_t194_sdmmc.xml"); + partitionTemplate = mkDefault (filterPartitions xavierAgxPartitionsToRemove "${pkgs.nvidia-jetpack.bspSrc}/bootloader/generic/cfg/flash_t194_sdmmc.xml"); }) (mkIf (cfg.som == "xavier-agx-industrial") { targetBoard = mkDefault "jetson-agx-xavier-industrial"; # Remove the sdmmc part of this flash.xml file. The industrial spi part is still different partitionTemplate = mkDefault (pkgs.runCommand "flash.xml" { nativeBuildInputs = [ pkgs.buildPackages.xmlstarlet ]; } '' - xmlstarlet ed -d '//device[@type="sdmmc_user"]' ${pkgs.nvidia-jetpack.bspSrc}/bootloader/t186ref/cfg/flash_l4t_t194_spi_emmc_jaxi.xml >$out + xmlstarlet ed -d '//device[@type="sdmmc_user"]' ${pkgs.nvidia-jetpack.bspSrc}/bootloader/generic/cfg/flash_l4t_t194_spi_emmc_jaxi.xml >$out ''); }) (mkIf (cfg.som == "xavier-nx") { targetBoard = mkDefault "jetson-xavier-nx-devkit"; - partitionTemplate = mkDefault (filterPartitions defaultPartitionsToRemove "${pkgs.nvidia-jetpack.bspSrc}/bootloader/t186ref/cfg/flash_l4t_t194_spi_sd_p3668.xml"); + partitionTemplate = mkDefault (filterPartitions defaultPartitionsToRemove "${pkgs.nvidia-jetpack.bspSrc}/bootloader/generic/cfg/flash_l4t_t194_spi_sd_p3668.xml"); }) (mkIf (cfg.som == "xavier-nx-emmc") { targetBoard = mkDefault "jetson-xavier-nx-devkit-emmc"; - partitionTemplate = mkDefault (filterPartitions defaultPartitionsToRemove "${pkgs.nvidia-jetpack.bspSrc}/bootloader/t186ref/cfg/flash_l4t_t194_spi_emmc_p3668.xml"); + partitionTemplate = mkDefault (filterPartitions defaultPartitionsToRemove "${pkgs.nvidia-jetpack.bspSrc}/bootloader/generic/cfg/flash_l4t_t194_spi_emmc_p3668.xml"); }) ]; - - boot.kernelPatches = lib.mkIf (cfg.som == "orin-nx") [ - { - name = "disable-usb-otg"; - patch = null; - # TODO: Having these options enabled on the Orin NX currently causes a - # kernel panic with a failure in tegra_xudc_unpowergate. We should figure - # this out - extraStructuredConfig = with lib.kernel; { - USB_OTG = no; - USB_GADGET = no; - }; - } - ]; } (lib.mkIf (cfg.som == "xavier-agx" && cfg.mountFirmwareEsp) { # On Xavier AGX, setting UEFI variables requires having the ESP partition on the eMMC: @@ -208,7 +194,7 @@ in (lib.mkIf (cfg.som == "orin-agx") { hardware.firmware = lib.optionals (config.hardware.bluetooth.enable - || config.networking.wireless.enable + || config.hardware.wirelessRegulatoryDatabase || config.networking.wireless.iwd.enable) [ # From https://github.com/OE4T/linux-tegra-5.10/blob/20443c6df8b9095e4676b4bf696987279fac30a9/drivers/net/wireless/realtek/rtw88/rtw8822c.c#L4398 (extractLinuxFirmware "rtw88-firmware" [ diff --git a/modules/flash-script.nix b/modules/flash-script.nix index 807bee15..8fa4b71d 100644 --- a/modules/flash-script.nix +++ b/modules/flash-script.nix @@ -42,7 +42,7 @@ let fi CUR_VER=$(cat /sys/devices/virtual/dmi/id/bios_version) - NEW_VER=${pkgs.nvidia-jetpack.l4tVersion} + NEW_VER=${pkgs.nvidia-jetpack.l4tVersion}-nix if [[ "$CUR_VER" != "$NEW_VER" ]]; then echo "Current Jetson firmware version is: $CUR_VER" diff --git a/overlay-with-config.nix b/overlay-with-config.nix index a94e7c74..d2ceb041 100644 --- a/overlay-with-config.nix +++ b/overlay-with-config.nix @@ -59,7 +59,7 @@ final: prev: ( flashInitrd = let - modules = [ "qspi_mtd" "spi_tegra210_qspi" "at24" "spi_nor" ]; + modules = [ "mtdblock" "spi_tegra210_quad" ]; # [ "qspi_mtd" "spi_tegra210_qspi" "at24" "spi_nor" ]; modulesClosure = prev.makeModulesClosure { rootModules = modules; kernel = config.system.modulesTree; @@ -130,7 +130,7 @@ final: prev: ( ${cfg.firmware.secureBoot.preSignCommands final.buildPackages} '' + lib.concatMapStringsSep "\n" (v: with v; - "BOARDID=${boardid} BOARDSKU=${boardsku} FAB=${fab} BOARDREV=${boardrev} FUSELEVEL=${fuselevel} CHIPREV=${chiprev} ${lib.optionalString (chipsku != null) "CHIP_SKU=${chipsku}"} ${lib.optionalString (ramcode != null) "RAMCODE=${ramcode}"} ./flash.sh ${lib.optionalString (cfg.flashScriptOverrides.partitionTemplate != null) "-c flash.xml"} --no-flash --bup --multi-spec ${builtins.toString cfg.flashScriptOverrides.flashArgs}" + "BOARDID=${boardid} BOARDSKU=${boardsku} FAB=${fab} BOARDREV=${boardrev} FUSELEVEL=${fuselevel} CHIPREV=${chiprev} ${lib.optionalString (chipsku != null) "CHIP_SKU=${chipsku}"} ${lib.optionalString (ramcode != null) "RAMCODE=${ramcode}"} ./flash.sh ${lib.optionalString (cfg.flashScriptOverrides.partitionTemplate != null) "-c flash.xml"} --no-flash --sign --bup --multi-spec ${builtins.toString cfg.flashScriptOverrides.flashArgs}" ) cfg.firmware.variants; }) + '' diff --git a/overlay.nix b/overlay.nix index 2e99b36d..2e7148c1 100644 --- a/overlay.nix +++ b/overlay.nix @@ -18,10 +18,11 @@ let versions ; - jetpackVersion = "5.1.5"; - l4tVersion = "35.6.1"; - cudaMajorMinorPatchVersion = "11.4.298"; + jetpackVersion = "6.2"; + l4tVersion = "36.4.3"; + cudaMajorMinorPatchVersion = "12.6.10"; cudaVersion = versions.majorMinor cudaMajorMinorPatchVersion; + cudaDriverVersion = "540.4.0"; sourceInfo = import ./sourceinfo { inherit l4tVersion; @@ -31,7 +32,7 @@ in { nvidia-jetpack = makeScope final.newScope (self: { inherit (sourceInfo) debs gitRepos; - inherit jetpackVersion l4tVersion cudaVersion; + inherit jetpackVersion l4tVersion cudaVersion cudaDriverVersion; callPackages = callPackagesWith (final // self); @@ -40,13 +41,9 @@ in # https://developer.nvidia.com/embedded/jetson-linux-archive # https://repo.download.nvidia.com/jetson/ src = final.fetchurl { - url = "https://developer.download.nvidia.com/embedded/L4T/r${versions.major l4tVersion}_Release_v${versions.minor l4tVersion}.${versions.patch l4tVersion}/release/Jetson_Linux_R${l4tVersion}_aarch64.tbz2"; - hash = "sha256-nqKEd3R7MJXuec3Q4odDJ9SNTUD1FyluWg/SeeptbUE="; + url = with final.lib.versions; "https://developer.download.nvidia.com/embedded/L4T/r${major l4tVersion}_Release_v${minor l4tVersion}.${patch l4tVersion}/release/Jetson_Linux_R${l4tVersion}_aarch64.tbz2"; + hash = "sha256-lJpEBJxM5qjv31cuoIIMh09u5dQco+STW58OONEYc9I="; }; - # We use a more recent version of bzip2 here because we hit this bug - # extracting nvidia's archives: - # https://bugs.launchpad.net/ubuntu/+source/bzip2/+bug/1834494 - nativeBuildInputs = [ final.buildPackages.bzip2_1_1 ]; } '' bzip2 -d -c $src | tar xf - mv Linux_for_Tegra $out @@ -76,7 +73,7 @@ in ); inherit (final.callPackages ./pkgs/uefi-firmware { inherit (self) l4tVersion; }) - edk2-jetson uefi-firmware; + edk2-jetson uefi-firmware jetson-edk2-uefi; inherit (final.callPackages ./pkgs/optee { # Nvidia's recommended toolchain is gcc9: @@ -132,7 +129,7 @@ in tests = final.callPackages ./pkgs/tests { inherit l4tVersion; }; kernelPackagesOverlay = final: _: { - nvidia-display-driver = final.callPackage ./kernel/display-driver.nix { inherit (self) gitRepos l4tVersion; }; + nvidia-oot-modules = final.callPackage ./kernel/oot-modules.nix { inherit (self) bspSrc gitRepos l4tVersion; }; }; kernel = self.callPackage ./kernel { kernelPatches = [ ]; }; @@ -141,6 +138,8 @@ in rtkernel = self.callPackage ./kernel { kernelPatches = [ ]; realtime = true; }; rtkernelPackages = (final.linuxPackagesFor self.rtkernel).extend self.kernelPackagesOverlay; + devicetree = self.callPackage ./kernel/devicetree.nix { }; + nxJetsonBenchmarks = self.callPackage ./pkgs/jetson-benchmarks { targetSom = "nx"; }; @@ -170,6 +169,6 @@ in # attribute set, we cannot use self.callPackages because we would end up with infinite recursion. # Instead, we must either use final.callPackages or packagesFromDirectoryRecursive. // final.callPackages ./pkgs/l4t { - inherit (self) debs l4tVersion; + inherit (self) debs l4tVersion cudaDriverVersion; }); } diff --git a/pkgs/containers/l4t-csv.nix b/pkgs/containers/l4t-csv.nix index db1bbbdd..521a541e 100644 --- a/pkgs/containers/l4t-csv.nix +++ b/pkgs/containers/l4t-csv.nix @@ -1,5 +1,6 @@ { bspSrc, runCommand }: runCommand "l4t.csv" { } '' tar -xf "${bspSrc}/nv_tegra/config.tbz2" - install etc/nvidia-container-runtime/host-files-for-container.d/l4t.csv $out + mkdir $out + install etc/nvidia-container-runtime/host-files-for-container.d/*.csv $out '' diff --git a/pkgs/containers/l4t.json b/pkgs/containers/l4t.json index f4b49c68..7d4dc496 100644 --- a/pkgs/containers/l4t.json +++ b/pkgs/containers/l4t.json @@ -1,113 +1,126 @@ { "nvidia-l4t-3d-core": [ - "/usr/lib/aarch64-linux-gnu/tegra/libGLX_nvidia.so.0", - "/usr/lib/aarch64-linux-gnu/tegra/libnvidia-eglcore.so.35.6.1", - "/usr/lib/aarch64-linux-gnu/tegra/libnvidia-glcore.so.35.6.1", - "/usr/lib/aarch64-linux-gnu/tegra/libnvidia-glsi.so.35.6.1", - "/usr/lib/aarch64-linux-gnu/tegra/libnvidia-glvkspirv.so.35.6.1", - "/usr/lib/aarch64-linux-gnu/tegra/libnvidia-nvvm.so.35.6.1", - "/usr/lib/aarch64-linux-gnu/tegra/libnvidia-ptxjitcompiler.so.35.6.1", - "/usr/lib/aarch64-linux-gnu/tegra/libnvidia-rmapi-tegra.so.35.6.1", - "/usr/lib/aarch64-linux-gnu/tegra/libnvidia-rtcore.so.35.6.1", - "/usr/lib/aarch64-linux-gnu/tegra/libnvidia-vulkan-producer.so", - "/usr/lib/aarch64-linux-gnu/tegra/nvidia_icd.json", + "/usr/lib/aarch64-linux-gnu/nvidia/libGLX_nvidia.so.0", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvidia-eglcore.so.540.4.0", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvidia-glcore.so.540.4.0", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvidia-glsi.so.540.4.0", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvidia-glvkspirv.so.540.4.0", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvidia-gpucomp.so.540.4.0", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvidia-nvvm.so.540.4.0", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvidia-ptxjitcompiler.so.540.4.0", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvidia-rtcore.so.540.4.0", + "/usr/lib/aarch64-linux-gnu/nvidia/nvidia_icd.json", + "/usr/lib/aarch64-linux-gnu/tegra-egl/", "/usr/lib/aarch64-linux-gnu/tegra-egl/ld.so.conf", "/usr/lib/aarch64-linux-gnu/tegra-egl/libEGL_nvidia.so.0", "/usr/lib/aarch64-linux-gnu/tegra-egl/libGLESv1_CM_nvidia.so.1", "/usr/lib/aarch64-linux-gnu/tegra-egl/libGLESv2_nvidia.so.2", "/usr/lib/aarch64-linux-gnu/tegra-egl/nvidia.json", "/etc/vulkan/icd.d/nvidia_icd.json", - "/usr/lib/aarch64-linux-gnu/tegra/libnvidia-nvvm.so.4", - "/usr/lib/aarch64-linux-gnu/tegra/libnvidia-ptxjitcompiler.so.1", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvidia-nvvm.so.4", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvidia-ptxjitcompiler.so.1", "/usr/share/glvnd/egl_vendor.d/10_nvidia.json" ], "nvidia-l4t-camera": [ - "/usr/lib/aarch64-linux-gnu/tegra/libnvargus.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvargus_socketclient.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvargus_socketserver.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvcam_imageencoder.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvcameratools.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvcamerautils.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvcamlog.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvcamv4l2.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvcapture.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvfusacap.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvfusacapinterface.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvisp.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvisppg.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvmedia_isp_ext.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvodm_imager.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvscf.so", - "/usr/lib/aarch64-linux-gnu/tegra/libv4l2_nvargus.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvargus.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvargus_socketclient.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvargus_socketserver.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvcam_imageencoder.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvcameratools.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvcamerautils.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvcamlog.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvcamv4l2.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvcapture.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvfusacap.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvfusacapinterface.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvisp.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvisppg.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvmedia_isp_ext.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvodm_imager.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvscf.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libv4l2_nvargus.so", "/usr/lib/aarch64-linux-gnu/libv4l/plugins/nv/libv4l2_nvargus.so" ], "nvidia-l4t-core": [ - "/usr/lib/aarch64-linux-gnu/tegra/ld.so.conf", - "/usr/lib/aarch64-linux-gnu/tegra/libdrm.so.2", - "/usr/lib/aarch64-linux-gnu/tegra/libjetsonpower.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvcolorutil.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvdc.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvddk_2d_v2.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvddk_vic.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvdla_compiler.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvdla_runtime.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvfnet.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvfnetstoredefog.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvfnetstorehdfx.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvgov_boot.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvgov_camera.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvgov_force.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvgov_generic.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvgov_gpucompute.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvgov_graphics.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvgov_il.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvgov_spincircle.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvgov_tbc.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvgov_ui.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvidia-tls.so.35.6.1", - "/usr/lib/aarch64-linux-gnu/tegra/libnvimp.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvisp_utils.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvll.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvos.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvphs.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvphsd.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvpva.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvpva_algorithms.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvpvaumd.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvrm_chip.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvrm_gpu.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvrm_host1x.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvrm_mem.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvrm_stream.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvrm_surface.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvrm_sync.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvsciipc.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvsocsys.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvvic.so", - "/usr/lib/aarch64-linux-gnu/tegra/libsensors.hal-client.nvs.so", - "/usr/lib/aarch64-linux-gnu/tegra/libsensors.l4t.no_fusion.nvs.so", - "/usr/lib/aarch64-linux-gnu/tegra/libsensors_hal.nvs.so" + "/usr/lib/aarch64-linux-gnu/nvidia/ld.so.conf", + "/usr/lib/aarch64-linux-gnu/nvidia/libjetsonpower.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvcolorutil.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvdc.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvddk_2d_v2.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvddk_vic.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvdla_runtime.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvfnet.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvfnetstoredefog.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvfnetstorehdfx.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvgov_boot.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvgov_camera.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvgov_force.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvgov_generic.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvgov_gpucompute.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvgov_graphics.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvgov_il.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvgov_spincircle.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvgov_tbc.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvgov_ui.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvidia-rmapi-tegra.so.540.4.0", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvidia-tls.so.540.4.0", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvimp.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvisp_utils.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvos.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvphs.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvphsd.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvpva.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvpva_algorithms.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvpvaumd.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvrm_chip.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvrm_gpu.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvrm_host1x.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvrm_mem.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvrm_stream.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvrm_surface.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvrm_sync.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvsciipc.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvsocsys.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvtegrahv.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvvic.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libsensors.hal-client.nvs.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libsensors.l4t.no_fusion.nvs.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libsensors_hal.nvs.so", + "/usr/lib/aarch64-linux-gnu/tegra" ], "nvidia-l4t-cuda": [ - "/usr/lib/aarch64-linux-gnu/tegra/libcuda.so.1.1", - "/usr/lib/aarch64-linux-gnu/tegra/libnvcucompat.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libcuda.so.1.1", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvcucompat.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvcudla.so", "/usr/lib/aarch64-linux-gnu/libcuda.so", "/usr/lib/aarch64-linux-gnu/libnvcucompat.so", - "/usr/lib/aarch64-linux-gnu/tegra/libcuda.so", - "/usr/lib/aarch64-linux-gnu/tegra/libcuda.so.1" + "/usr/lib/aarch64-linux-gnu/libnvcudla.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libcuda.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libcuda.so.1" + ], + "nvidia-l4t-cuda-utils": [ + "/usr/bin/nvidia-cuda-mps-control", + "/usr/bin/nvidia-cuda-mps-server" + ], + "nvidia-l4t-cudadebuggingsupport": [ + "/usr/lib/aarch64-linux-gnu/tegra/", + "/usr/lib/aarch64-linux-gnu/tegra/libcudadebugger.so.1" + ], + "nvidia-l4t-dla-compiler": [ + "/usr/lib/aarch64-linux-gnu/nvidia/libnvdla_compiler.so" ], "nvidia-l4t-firmware": [ "/lib/firmware/tegra19x/nvhost_nvdec040_ns.fw", "/lib/firmware/tegra23x/nvhost_nvdec050_desc_prod.bin" ], "nvidia-l4t-gbm": [ - "/usr/lib/aarch64-linux-gnu/tegra/libnvidia-allocator.so.1", - "/usr/lib/aarch64-linux-gnu/tegra/libnvidia-egl-gbm.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvidia-allocator.so.1", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvidia-egl-gbm.so.1.1.0", "/usr/lib/aarch64-linux-gnu/gbm/nvidia-drm_gbm.so", "/usr/lib/aarch64-linux-gnu/gbm/tegra-udrm_gbm.so", "/usr/lib/aarch64-linux-gnu/gbm/tegra_gbm.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvidia-allocator.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvidia-egl-gbm.so.1" + "/usr/lib/aarch64-linux-gnu/nvidia/libnvidia-allocator.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvidia-egl-gbm.so.1" ], "nvidia-l4t-gstreamer": [ "/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvarguscamerasrc.so", @@ -116,175 +129,208 @@ "/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnveglglessink.so", "/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnveglstreamsrc.so", "/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvegltransform.so", + "/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvipcpipeline.so", "/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvivafilter.so", "/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvjpeg.so", "/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvtee.so", + "/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvunixfd.so", "/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvv4l2camerasrc.so", "/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvidconv.so", "/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideo4linux2.so", "/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideosink.so", "/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvvideosinks.so", + "/usr/lib/aarch64-linux-gnu/gstreamer-1.0/nvgstcapture-1.0_README.txt", + "/usr/lib/aarch64-linux-gnu/gstreamer-1.0/nvgstipctestapp-1.0_README.txt", + "/usr/lib/aarch64-linux-gnu/gstreamer-1.0/nvgstplayer-1.0_README.txt", "/usr/lib/aarch64-linux-gnu/libgstnvegl-1.0.so.0", "/usr/lib/aarch64-linux-gnu/libgstnvexifmeta.so", "/usr/lib/aarch64-linux-gnu/libgstnvivameta.so", "/usr/lib/aarch64-linux-gnu/libnvsample_cudaprocess.so", - "/usr/lib/aarch64-linux-gnu/tegra/libgstnvcustomhelper.so.1.0.0", - "/usr/lib/aarch64-linux-gnu/tegra/libgstnvdsseimeta.so.1.0.0", - "/usr/lib/aarch64-linux-gnu/tegra/libnveglstreamproducer.so", - "/usr/lib/aarch64-linux-gnu/tegra/libgstnvcustomhelper.so", - "/usr/lib/aarch64-linux-gnu/tegra/libgstnvdsseimeta.so" + "/usr/lib/aarch64-linux-gnu/nvidia/libgstnvcustomhelper.so.1.0.0", + "/usr/lib/aarch64-linux-gnu/nvidia/libgstnvdsseimeta.so.1.0.0", + "/usr/lib/aarch64-linux-gnu/nvidia/libnveglstreamproducer.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libgstnvcustomhelper.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libgstnvdsseimeta.so" + ], + "nvidia-l4t-libwayland-client0": [ + "/usr/lib/aarch64-linux-gnu/nvidia/libwayland-client.so.0.22.0", + "/usr/lib/aarch64-linux-gnu/nvidia/libwayland-client.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libwayland-client.so.0" ], - "nvidia-l4t-libvulkan": [ - "/usr/lib/aarch64-linux-gnu/tegra/libvulkan.so.1.3.204", - "/usr/lib/aarch64-linux-gnu/libvulkan.so.1.3.204", - "/usr/lib/aarch64-linux-gnu/tegra/libvulkan.so.1" + "nvidia-l4t-libwayland-cursor0": [ + "/usr/lib/aarch64-linux-gnu/nvidia/libwayland-cursor.so.0.22.0", + "/usr/lib/aarch64-linux-gnu/nvidia/libwayland-cursor.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libwayland-cursor.so.0" + ], + "nvidia-l4t-libwayland-egl1": [ + "/usr/lib/aarch64-linux-gnu/nvidia/libwayland-egl.so.1.22.0", + "/usr/lib/aarch64-linux-gnu/nvidia/libwayland-egl.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libwayland-egl.so.1" + ], + "nvidia-l4t-libwayland-server0": [ + "/usr/lib/aarch64-linux-gnu/nvidia/libwayland-server.so.0.22.0", + "/usr/lib/aarch64-linux-gnu/nvidia/libwayland-server.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libwayland-server.so.0" ], "nvidia-l4t-multimedia": [ - "/usr/lib/aarch64-linux-gnu/tegra/libnvbufsurftransform.so.1.0.0", - "/usr/lib/aarch64-linux-gnu/tegra/libnvcuvidv4l2.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvdecode2eglimage.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvdsbufferpool.so.1.0.0", - "/usr/lib/aarch64-linux-gnu/tegra/libnveventlib.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvexif.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvid_mapper.so.1.0.0", - "/usr/lib/aarch64-linux-gnu/tegra/libnvjpeg.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvmedia.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvmedia2d.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvmedia_2d.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvmedia_dla.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvmedia_eglstream.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvmedia_ide_parser.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvmedia_ide_sci.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvmedia_iep_sci.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvmedia_ijpd_sci.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvmedia_ijpe_sci.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvmedia_iofa_sci.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvmedia_sci_overlay.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvmedia_tensor.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvmedialdc.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvmm.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvmm_contentpipe.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvmm_parser.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvmm_utils.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvmmlite.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvmmlite_image.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvmmlite_utils.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvmmlite_video.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvofsdk.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvoggopus.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvomx.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvomxilclient.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvosd.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvparser.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvtracebuf.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvtvmr.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvtvmr_2d.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvv4l2.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvv4lconvert.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvvideo.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvvideoencode_ppe.so", - "/usr/lib/aarch64-linux-gnu/tegra/libtegrav4l2.so", - "/usr/lib/aarch64-linux-gnu/tegra/libv4l2_nvcuvidvideocodec.so", - "/usr/lib/aarch64-linux-gnu/tegra/libv4l2_nvvideocodec.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvbufsurftransform.so.1.0.0", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvcuvidv4l2.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvdecode2eglimage.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvdsbufferpool.so.1.0.0", + "/usr/lib/aarch64-linux-gnu/nvidia/libnveventlib.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvexif.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvid_mapper.so.1.0.0", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvjpeg.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvmedia.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvmedia2d.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvmedia_2d.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvmedia_dla.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvmedia_eglstream.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvmedia_ide_parser.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvmedia_ide_sci.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvmedia_iep_sci.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvmedia_ijpd_sci.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvmedia_ijpe_sci.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvmedia_iofa_sci.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvmedia_tensor.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvmedialdc.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvmm.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvmm_contentpipe.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvmm_parser.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvmm_utils.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvmmlite.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvmmlite_image.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvmmlite_utils.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvmmlite_video.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvofsdk.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvoggopus.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvomx.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvomxilclient.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvosd.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvparser.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvtracebuf.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvtvmr.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvtvmr_2d.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvv4l2.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvv4lconvert.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvvideo.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvvideoencode_ppe.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libtegrav4l2.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libv4l2_nvcuvidvideocodec.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libv4l2_nvvideocodec.so", "/usr/lib/aarch64-linux-gnu/libv4l/plugins/nv/libv4l2_nvcuvidvideocodec.so", "/usr/lib/aarch64-linux-gnu/libv4l/plugins/nv/libv4l2_nvvideocodec.so", "/usr/lib/aarch64-linux-gnu/libv4l2.so.0.0.999999", "/usr/lib/aarch64-linux-gnu/libv4lconvert.so.0.0.999999", - "/usr/lib/aarch64-linux-gnu/tegra/libnvbufsurftransform.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvdsbufferpool.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvid_mapper.so", - "/usr/lib/aarch64-linux-gnu/tegra/libv4l2.so.0", - "/usr/lib/aarch64-linux-gnu/tegra/libv4lconvert.so.0" + "/usr/lib/aarch64-linux-gnu/nvidia/libnvbufsurftransform.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvdsbufferpool.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvid_mapper.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libv4l2.so.0", + "/usr/lib/aarch64-linux-gnu/nvidia/libv4lconvert.so.0" ], "nvidia-l4t-multimedia-utils": [ - "/usr/lib/aarch64-linux-gnu/tegra/libnvbuf_fdmap.so.1.0.0", - "/usr/lib/aarch64-linux-gnu/tegra/libnvbufsurface.so.1.0.0", - "/usr/lib/aarch64-linux-gnu/tegra/libnvbufsurface.so" + "/usr/lib/aarch64-linux-gnu/nvidia/libnvbuf_fdmap.so.1.0.0", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvbufsurface.so.1.0.0", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvbufsurface.so" + ], + "nvidia-l4t-nvml": [ + "/usr/lib/aarch64-linux-gnu/nvidia/libnvidia-ml.so.1", + "/usr/sbin/nvidia-smi", + "/usr/share/doc/nvidia-tegra/LICENSE.nvidia-smi" ], "nvidia-l4t-nvsci": [ - "/usr/lib/aarch64-linux-gnu/tegra/libnvscibuf.so.1", - "/usr/lib/aarch64-linux-gnu/tegra/libnvscicommon.so.1", - "/usr/lib/aarch64-linux-gnu/tegra/libnvscievent.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvscistream.so.1", - "/usr/lib/aarch64-linux-gnu/tegra/libnvscisync.so.1", - "/usr/lib/aarch64-linux-gnu/tegra/libnvscibuf.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvscicommon.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvscistream.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvscisync.so" + "/usr/lib/aarch64-linux-gnu/nvidia/libnvscibuf.so.1", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvscicommon.so.1", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvscievent.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvscistream.so.1", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvscisync.so.1", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvscibuf.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvscicommon.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvscistream.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvscisync.so" ], "nvidia-l4t-openwfd": [ - "/usr/lib/aarch64-linux-gnu/tegra/libnvidia-kms.so.35.6.1", - "/usr/lib/aarch64-linux-gnu/tegra/libtegrawfd.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvidia-kms.so" + "/usr/lib/aarch64-linux-gnu/nvidia/libnvidia-kms.so.540.4.0", + "/usr/lib/aarch64-linux-gnu/nvidia/libtegrawfd.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvidia-kms.so" ], "nvidia-l4t-pva": [ - "/usr/lib/aarch64-linux-gnu/tegra/libnvpvaintf.so" + "/usr/lib/aarch64-linux-gnu/nvidia/libnvpvaintf.so" + ], + "nvidia-l4t-tools": [ + "/usr/lib/aarch64-linux-gnu/nvidia/libnvplayfair.so" ], "nvidia-l4t-vulkan-sc": [ - "/usr/lib/aarch64-linux-gnu/tegra/libnvidia-vksc-core.so.35.6.1", - "/usr/lib/aarch64-linux-gnu/tegra/libnvidia-vksc-core.so" + "/usr/lib/aarch64-linux-gnu/nvidia/libnvidia-vksc-core.so.540.4.0", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvidia-vksc-core.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvidia-vksc-core.so.1" ], "nvidia-l4t-vulkan-sc-sdk": [ "/etc/vulkansc/icd.d/nvidia_icd_vksc.json", - "/usr/lib/aarch64-linux-gnu/tegra/libVkLayer_json_gen.so", - "/usr/lib/aarch64-linux-gnu/tegra/libVkSCLayer_khronos_validation.so", - "/usr/lib/aarch64-linux-gnu/tegra/libvulkansc.so.1.0.10", - "/usr/lib/aarch64-linux-gnu/tegra/libvulkansc.so", - "/usr/lib/aarch64-linux-gnu/tegra/libvulkansc.so.1" + "/usr/lib/aarch64-linux-gnu/nvidia/libVkLayer_json_gen.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libVkSCLayer_khronos_validation.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libvulkansc.so.1.0.10", + "/usr/lib/aarch64-linux-gnu/nvidia/libvulkansc.so", + "/usr/lib/aarch64-linux-gnu/nvidia/libvulkansc.so.1" ], "nvidia-l4t-wayland": [ - "/usr/lib/aarch64-linux-gnu/tegra/libnvidia-egl-wayland.so", - "/usr/lib/aarch64-linux-gnu/tegra/libnvidia-egl-wayland.so.1" + "/usr/lib/aarch64-linux-gnu/nvidia/libnvidia-egl-wayland.so.1.1.11", + "/usr/lib/aarch64-linux-gnu/nvidia/libnvidia-egl-wayland.so.1" ], "nvidia-l4t-weston": [ - "/usr/lib/aarch64-linux-gnu/tegra/weston/EGLWLInputEventExample", - "/usr/lib/aarch64-linux-gnu/tegra/weston/EGLWLMockNavigation", - "/usr/lib/aarch64-linux-gnu/tegra/weston/LayerManagerControl", - "/usr/lib/aarch64-linux-gnu/tegra/weston/desktop-shell.so", - "/usr/lib/aarch64-linux-gnu/tegra/weston/drm-backend.so", - "/usr/lib/aarch64-linux-gnu/tegra/weston/fullscreen-shell.so", - "/usr/lib/aarch64-linux-gnu/tegra/weston/gl-renderer.so", - "/usr/lib/aarch64-linux-gnu/tegra/weston/hmi-controller.so", - "/usr/lib/aarch64-linux-gnu/tegra/weston/ivi-controller.so", - "/usr/lib/aarch64-linux-gnu/tegra/weston/ivi-shell.so", - "/usr/lib/aarch64-linux-gnu/tegra/weston/libilmClient.so.2.2.0", - "/usr/lib/aarch64-linux-gnu/tegra/weston/libilmCommon.so.2.2.0", - "/usr/lib/aarch64-linux-gnu/tegra/weston/libilmControl.so.2.2.0", - "/usr/lib/aarch64-linux-gnu/tegra/weston/libilmInput.so.2.2.0", - "/usr/lib/aarch64-linux-gnu/tegra/weston/libweston-6.so.0", - "/usr/lib/aarch64-linux-gnu/tegra/weston/libweston-desktop-6.so.0", - "/usr/lib/aarch64-linux-gnu/tegra/weston/simple-weston-client", - "/usr/lib/aarch64-linux-gnu/tegra/weston/spring-tool", - "/usr/lib/aarch64-linux-gnu/tegra/weston/wayland-backend.so", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-calibrator", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-clickdot", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-cliptest", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-content-protection", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-debug", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-desktop-shell", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-dnd", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-eventdemo", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-flower", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-fullscreen", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-image", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-info", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-ivi-shell-user-interface", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-keyboard", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-launch", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-multi-resource", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-output-mode", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-resizor", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-scaler", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-screenshooter", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-simple-dmabuf-egldevice", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-simple-egl", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-simple-shm", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-simple-touch", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-smoke", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-stacking", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-subsurfaces", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-terminal", - "/usr/lib/aarch64-linux-gnu/tegra/weston/weston-transformed" + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/EGLWLInputEventExample", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/EGLWLMockNavigation", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/LayerManagerControl", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/color-lcms.so", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/desktop-shell.so", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/drm-backend.so", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/fullscreen-shell.so", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/gl-renderer.so", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/headless-backend.so", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/hmi-controller.so", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/ivi-controller.so", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/ivi-shell.so", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/libilmClient.so.2.3.2", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/libilmCommon.so.2.3.2", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/libilmControl.so.2.3.2", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/libilmInput.so.2.3.2", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/libweston-13.so.0", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/simple-weston-client", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/spring-tool", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/wayland-backend.so", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-calibrator", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-clickdot", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-cliptest", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-content-protection", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-debug", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-desktop-shell", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-dnd", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-eventdemo", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-flower", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-fullscreen", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-image", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-ivi-shell-user-interface", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-keyboard", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-multi-resource", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-presentation-shm", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-resizor", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-scaler", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-screenshooter", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-simple-damage", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-simple-dmabuf-egl", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-simple-dmabuf-egldevice", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-simple-dmabuf-feedback", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-simple-egl", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-simple-im", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-simple-shm", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-simple-touch", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-smoke", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-stacking", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-subsurfaces", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-tablet", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-terminal", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-touch-calibrator", + "/usr/lib/aarch64-linux-gnu/nvidia/weston-13.0/weston-transformed" ] } diff --git a/pkgs/containers/nvidia-ctk.nix b/pkgs/containers/nvidia-ctk.nix index 0c3d47f2..0e543a4d 100644 --- a/pkgs/containers/nvidia-ctk.nix +++ b/pkgs/containers/nvidia-ctk.nix @@ -6,13 +6,13 @@ let in buildGoModule rec { pname = "nvidia-ctk"; - version = "1.16.2"; + version = "1.17.5"; src = fetchFromGitHub { owner = "nvidia"; repo = "nvidia-container-toolkit"; rev = "v${version}"; - hash = "sha256-ldEBF+5zuJAyDSUVnMPja2BvdMCNMDkp0Ye5+qFEm14="; + hash = "sha256-vEo8agJ3jTaBokBjdGcO2naE457y8KPUAedC8vtwD1Y="; }; subPackages = [ "cmd/nvidia-ctk" ]; diff --git a/pkgs/cuda-packages/cudaConfig.nix b/pkgs/cuda-packages/cudaConfig.nix index 19c7c3c6..d34e15d5 100644 --- a/pkgs/cuda-packages/cudaConfig.nix +++ b/pkgs/cuda-packages/cudaConfig.nix @@ -23,7 +23,7 @@ _: { isJetson = true; minCudaMajorMinorVersion = "11.4"; dontDefaultAfterCudaMajorMinorVersion = null; - maxCudaMajorMinorVersion = "12.2"; + maxCudaMajorMinorVersion = "12.8"; }; }; # NVCC compatibilities come from @@ -45,6 +45,19 @@ _: { minMajorVersion = "6"; }; }; + + # Maximum Clang version is 18 + # https://docs.nvidia.com/cuda/archive/12.6.0/cuda-installation-guide-linux/index.html#host-compiler-support-policy + "12.6" = { + clang = { + maxMajorVersion = "18"; + minMajorVersion = "7"; + }; + gcc = { + maxMajorVersion = "13"; + minMajorVersion = "6"; + }; + }; }; }; } diff --git a/pkgs/cuda-packages/cuda_cccl.nix b/pkgs/cuda-packages/cuda_cccl.nix index 076198fc..629c04d0 100644 --- a/pkgs/cuda-packages/cuda_cccl.nix +++ b/pkgs/cuda-packages/cuda_cccl.nix @@ -1,6 +1,6 @@ { deb-builder }: deb-builder { - sourceName = "cuda-thrust"; + sourceName = "cuda-cccl"; packageName = "cuda_cccl"; outputs = [ "out" diff --git a/pkgs/cuda-packages/cuda_gdb/fixup.nix b/pkgs/cuda-packages/cuda_gdb/fixup.nix index da558b6c..091f5850 100644 --- a/pkgs/cuda-packages/cuda_gdb/fixup.nix +++ b/pkgs/cuda-packages/cuda_gdb/fixup.nix @@ -4,6 +4,7 @@ , lib , python3 , stdenv +, gmp }: let inherit (lib.attrsets) recursiveUpdate; @@ -17,21 +18,22 @@ prevAttrs: { buildInputs = prevAttrs.buildInputs or [ ] + ++ [ gmp ] # aarch64, sbsa needs expat ++ optionals stdenv.hostPlatform.isAarch64 [ expat ]; - # TODO(@connorbaker): What does CUDA 11.x provide in terms of Python binaries? - postInstall = - prevAttrs.postInstall or "" - # Remove binaries requiring Python3 versions we do not have - + optionalString (cudaAtLeast "12.5") '' - pushd "''${!outputBin:?}/bin" >/dev/null - echo "removing cuda-gdb-python*-tui binaries for Python 3 versions we do not have" - mv "cuda-gdb-python${python3MajorMinorVersion}-tui" ../ - rm -f cuda-gdb-python*-tui - mv "../cuda-gdb-python${python3MajorMinorVersion}-tui" . - popd >/dev/null - ''; + # # TODO(@connorbaker): What does CUDA 11.x provide in terms of Python binaries? + # postInstall = + # prevAttrs.postInstall or "" + # # Remove binaries requiring Python3 versions we do not have + # + optionalString (cudaAtLeast "12.5") '' + # pushd "''${!outputBin:?}/bin" >/dev/null + # echo "removing cuda-gdb-python*-tui binaries for Python 3 versions we do not have" + # mv "cuda-gdb-python${python3MajorMinorVersion}-tui" ../ + # rm -f cuda-gdb-python*-tui + # mv "../cuda-gdb-python${python3MajorMinorVersion}-tui" . + # popd >/dev/null + # ''; passthru = recursiveUpdate (prevAttrs.passthru or { }) { brokenConditions = { diff --git a/pkgs/cuda-packages/cuda_nvcc/fixup.nix b/pkgs/cuda-packages/cuda_nvcc/fixup.nix index 9ef060dc..ac1c31ec 100644 --- a/pkgs/cuda-packages/cuda_nvcc/fixup.nix +++ b/pkgs/cuda-packages/cuda_nvcc/fixup.nix @@ -1,18 +1,21 @@ -# NOTE: All fixups must be at least binary functions to avoid callPackage adding override attributes. -{ backendStdenv -, cudaAtLeast -, cudaConfig -, cudaMajorMinorPatchVersion -, cudaMajorMinorVersion +{ cudaAtLeast , cudaOlder +, backendStdenv , lib -, makeBinaryWrapper -, setupCudaHook + # , nvccHook +, }: -let - inherit (lib.strings) concatStringsSep optionalString; -in +let cudaStdenv = backendStdenv; in finalAttrs: prevAttrs: { + # The nvcc and cicc binaries contain hard-coded references to /usr + allowFHSReferences = true; + + # Entries here will be in nativeBuildInputs when cuda_nvcc is in nativeBuildInputs + propagatedBuildInputs = prevAttrs.propagatedBuildInputs or [ ] ++ [ + # nvccHook + cudaStdenv.cc + ]; + # Patch the nvcc.profile. # Syntax: # - `=` for assignment, @@ -62,23 +65,13 @@ finalAttrs: prevAttrs: { # CUDAFE_FLAGS += # PTXAS_FLAGS += - # NOTE(@connorbaker): - # While the postInstall phase is fairly gnarly and repetitive, it's necessary to ensure we're able to add - # dependencies to *specific* outputs generated as by the multiple-output setup hook. Barring this method of - # manipulating the files in `nix-support` in the respective outputs, I'm not sure there is a way to do per-output - # manipulation of dependencies. If there is, I'd love to hear about it! postInstall = prevAttrs.postInstall or "" - + optionalString finalAttrs.finalPackage.meta.available ( + + lib.optionalString finalAttrs.finalPackage.meta.available ( # Always move the nvvm directory to the bin output. '' moveToOutput "nvvm" "''${!outputBin:?}" - echo "moving nvvm/lib64 to nvvm/lib" - mv "''${!outputBin:?}/nvvm/lib64" "''${!outputBin:?}/nvvm/lib" - '' - # Create a directory for our manual propagation. - + '' - mkdir -p "''${!outputBin:?}/nix-support" + mv --verbose --no-clobber "''${!outputBin:?}/nvvm/lib64" "''${!outputBin:?}/nvvm/lib" '' # Unconditional patching to remove the use of $(_TARGET_SIZE_) since we don't use lib64 in Nixpkgs + '' @@ -97,16 +90,15 @@ finalAttrs: prevAttrs: { '$(TOP)/$(_TARGET_DIR_)/include' \ "''${!outputInclude:?}/include" '' - # Add the dependency on the include output to the nvcc.profile. - + '' - echo "adding ''${!outputInclude:?} to propagatedBuildInputs of ''${!outputBin:?}" - printWords "''${!outputInclude:?}" >> "''${!outputBin:?}/nix-support/native-propagated-build-inputs" - '' # Fixup the nvcc.profile to use the correct paths for the backend compiler and NVVM. + ( let # TODO: Should we also patch the LIBRARIES line's use of $(TOP)/$(_TARGET_DIR_)? - oldNvvmDir = concatStringsSep "/" [ "$(TOP)" "$(_NVVM_BRANCH_)" ]; + oldNvvmDir = lib.concatStringsSep "/" ( + [ "$(TOP)" ] + ++ lib.optionals (cudaOlder "12.5") [ "$(_NVVM_BRANCH_)" ] + ++ lib.optionals (cudaAtLeast "12.5") [ "nvvm" ] + ); newNvvmDir = ''''${!outputBin:?}/nvvm''; in # Unconditional patching to switch to the correct NVVM paths. @@ -119,14 +111,14 @@ finalAttrs: prevAttrs: { '${oldNvvmDir}/' \ "${newNvvmDir}/" '' - # Add the dependency on backendStdenv.cc and the new NVVM directories to the nvcc.profile. + # Add the dependency on cudaStdenv.cc and the new NVVM directories to the nvcc.profile. # NOTE: Escape the dollar sign in the variable expansion to prevent early expansion. + '' - echo "adding backendStdenv.cc and ${newNvvmDir} to nvcc.profile" + echo "adding cudaStdenv.cc and ${newNvvmDir} to nvcc.profile" cat << EOF >> "''${!outputBin:?}/bin/nvcc.profile" # Fix a compatible backend compiler - PATH += "${backendStdenv.cc}/bin": + PATH += "${cudaStdenv.cc}/bin": # Expose the split-out nvvm LIBRARIES =+ \$(_SPACE_) "-L${newNvvmDir}/lib" @@ -136,24 +128,6 @@ finalAttrs: prevAttrs: { ) ); - # Add setupCudaHook to the propagatedBuildInputs of the bin output (so it will be in nativeBuildInputs when nvcc is). - # NOTE: mkDerivation's setup.sh clobbers all dependency files in fixupPhase, so we must register the paths in postFixup. - postFixup = - prevAttrs.postFixup or "" - + '' - echo "adding setupCudaHook to propagatedBuildInputs of ''${!outputBin:?}" - printWords "${setupCudaHook}" >> "''${!outputBin:?}/nix-support/propagated-build-inputs" - '' - # Add the dependency on backendStdenv.cc to the nvcc.profile and native-propagated-build-inputs. - # NOTE: No need to add a dependency on `newNvvmDir` since it's already in the bin output. - + '' - echo "adding backendStdenv.cc to propagatedNativeBuildInputs of ''${!outputBin:?}" - printWords "${backendStdenv.cc}" >> "''${!outputBin:?}/nix-support/propagated-native-build-inputs" - ''; - - # The nvcc and cicc binaries contain hard-coded references to /usr - allowFHSReferences = true; - meta = prevAttrs.meta or { } // { mainProgram = "nvcc"; }; diff --git a/pkgs/cuda-packages/cudnn/fixup.nix b/pkgs/cuda-packages/cudnn/fixup.nix index 1b6518ed..cdb06a7d 100644 --- a/pkgs/cuda-packages/cudnn/fixup.nix +++ b/pkgs/cuda-packages/cudnn/fixup.nix @@ -1,13 +1,11 @@ # NOTE: All fixups must be at least binary functions to avoid callPackage adding override attributes. { lib , libcublas -, patchelf , zlib , }: let inherit (lib.attrsets) getLib; - inherit (lib.meta) getExe; in prevAttrs: { buildInputs = prevAttrs.buildInputs or [ ] ++ [ @@ -18,15 +16,15 @@ prevAttrs: { postFixup = prevAttrs.postFixup or "" + '' - echo "patchelf-ing libcudnn with runtime dependencies" - "${getExe patchelf}" "''${!outputLib:?}/lib/libcudnn.so" --add-needed libcudnn_cnn_infer.so - "${getExe patchelf}" "''${!outputLib:?}/lib/libcudnn_ops_infer.so" --add-needed libcublas.so --add-needed libcublasLt.so + pushd "''${!outputLib:?}/lib" >/dev/null + ln -s libcudnn.so.9 libcudnn.so + popd >/dev/null - echo "creating symlinks for header files in include without the _v8 suffix before the file extension" + echo "creating symlinks for header files in include without the _v9 suffix before the file extension" pushd "''${!outputInclude:?}/include" >/dev/null for file in *.h; do - echo "symlinking $file to $(basename "$file" "_v8.h").h" - ln -s "$file" "$(basename "$file" "_v8.h").h" + echo "symlinking $file to $(basename "$file" "_v9.h").h" + ln -s "$file" "$(basename "$file" "_v9.h").h" done unset -v file popd >/dev/null diff --git a/pkgs/cuda-packages/libcusolver/fixup.nix b/pkgs/cuda-packages/libcusolver/fixup.nix index 5deef439..43ef3d3b 100644 --- a/pkgs/cuda-packages/libcusolver/fixup.nix +++ b/pkgs/cuda-packages/libcusolver/fixup.nix @@ -1,3 +1,13 @@ # NOTE: All fixups must be at least binary functions to avoid callPackage adding override attributes. -{ lib, libcublas }: -prevAttrs: { buildInputs = prevAttrs.buildInputs or [ ] ++ [ (lib.getLib libcublas) ]; } +{ lib +, libcublas +, libcusparse +, libnvjitlink +}: +prevAttrs: { + buildInputs = prevAttrs.buildInputs or [ ] ++ [ + (lib.getLib libcublas) + (lib.getLib libcusparse) + (lib.getLib libnvjitlink) + ]; +} diff --git a/pkgs/cuda-packages/libcusparse/fixup.nix b/pkgs/cuda-packages/libcusparse/fixup.nix new file mode 100644 index 00000000..b9f4cf42 --- /dev/null +++ b/pkgs/cuda-packages/libcusparse/fixup.nix @@ -0,0 +1,3 @@ +# NOTE: All fixups must be at least binary functions to avoid callPackage adding override attributes. +{ lib, libnvjitlink }: +prevAttrs: { buildInputs = prevAttrs.buildInputs or [ ] ++ [ (lib.getLib libnvjitlink) ]; } diff --git a/pkgs/cuda-packages/libcusparse.nix b/pkgs/cuda-packages/libcusparse/package.nix similarity index 88% rename from pkgs/cuda-packages/libcusparse.nix rename to pkgs/cuda-packages/libcusparse/package.nix index 3ed274dd..83729a16 100644 --- a/pkgs/cuda-packages/libcusparse.nix +++ b/pkgs/cuda-packages/libcusparse/package.nix @@ -1,6 +1,7 @@ { deb-builder }: deb-builder { sourceName = "libcusparse"; + fixupFns = [ ./fixup.nix ]; outputs = [ "out" "dev" diff --git a/pkgs/cuda-packages/libnvdla_compiler.nix b/pkgs/cuda-packages/libnvdla_compiler.nix new file mode 100644 index 00000000..5e40c678 --- /dev/null +++ b/pkgs/cuda-packages/libnvdla_compiler.nix @@ -0,0 +1,17 @@ +{ deb-builder }: +deb-builder { + sourceName = "nvidia-l4t-dla-compiler"; + packageName = "libnvdla_compiler"; + outputs = [ + "out" + "dev" + "include" + "lib" + "static" + "stubs" + ]; + releaseInfo = { + license = "CUDA Toolkit"; + name = "libnvdla_compiler"; + }; +} diff --git a/pkgs/cuda-packages/libnvjitlink.nix b/pkgs/cuda-packages/libnvjitlink.nix new file mode 100644 index 00000000..b222ae2e --- /dev/null +++ b/pkgs/cuda-packages/libnvjitlink.nix @@ -0,0 +1,17 @@ +{ deb-builder }: +deb-builder { + sourceName = "libnvjitlink"; + packageName = "libnvjitlink"; + outputs = [ + "out" + "dev" + "include" + "lib" + "static" + "stubs" + ]; + releaseInfo = { + license = "CUDA Toolkit"; + name = "libnvjitlink"; + }; +} diff --git a/pkgs/cuda-packages/libnvjpeg.nix b/pkgs/cuda-packages/libnvjpeg.nix new file mode 100644 index 00000000..ca7e1995 --- /dev/null +++ b/pkgs/cuda-packages/libnvjpeg.nix @@ -0,0 +1,17 @@ +{ deb-builder }: +deb-builder { + sourceName = "libnvjpeg"; + packageName = "libnvjpeg"; + outputs = [ + "out" + "dev" + "include" + "lib" + "static" + "stubs" + ]; + releaseInfo = { + license = "CUDA Toolkit"; + name = "libnvjpeg"; + }; +} diff --git a/pkgs/cuda-packages/tensorrt/fixup.nix b/pkgs/cuda-packages/tensorrt/fixup.nix index 770ac7c4..d3e6979b 100644 --- a/pkgs/cuda-packages/tensorrt/fixup.nix +++ b/pkgs/cuda-packages/tensorrt/fixup.nix @@ -6,6 +6,7 @@ , flags , libcublas , libcudla +, l4t-dla-compiler , patchelf }: prevAttrs: { @@ -20,6 +21,7 @@ prevAttrs: { cudnn libcublas libcudla + l4t-dla-compiler ]; debNormalization = diff --git a/pkgs/cuda-packages/vpi2-firmware.nix b/pkgs/cuda-packages/vpi2-firmware.nix deleted file mode 100644 index 21ac1d9e..00000000 --- a/pkgs/cuda-packages/vpi2-firmware.nix +++ /dev/null @@ -1,10 +0,0 @@ -# Needed for vpi2-samples benchmark w/ pva to work -{ debs -, dpkg -, runCommand -, -}: -runCommand "vpi2-firmware" { nativeBuildInputs = [ dpkg ]; } '' - dpkg-deb -x ${debs.common.libnvvpi2.src} source - install -D source/opt/nvidia/vpi2/lib64/priv/vpi2_pva_auth_allowlist $out/lib/firmware/pva_auth_allowlist -'' diff --git a/pkgs/cuda-packages/vpi3-firmware.nix b/pkgs/cuda-packages/vpi3-firmware.nix new file mode 100644 index 00000000..5956d42c --- /dev/null +++ b/pkgs/cuda-packages/vpi3-firmware.nix @@ -0,0 +1,10 @@ +# Needed for vpi3-samples benchmark w/ pva to work +{ debs +, dpkg +, runCommand +, +}: +runCommand "vpi3-firmware" { nativeBuildInputs = [ dpkg ]; } '' + dpkg-deb -x ${debs.common.libnvvpi3.src} source + install -D source/opt/nvidia/vpi3/lib64/priv/vpi3_pva_auth_allowlist $out/lib/firmware/pva_auth_allowlist +'' diff --git a/pkgs/cuda-packages/vpi2/package.nix b/pkgs/cuda-packages/vpi3/package.nix similarity index 70% rename from pkgs/cuda-packages/vpi2/package.nix rename to pkgs/cuda-packages/vpi3/package.nix index 209c9836..ca1381ea 100644 --- a/pkgs/cuda-packages/vpi2/package.nix +++ b/pkgs/cuda-packages/vpi3/package.nix @@ -9,13 +9,13 @@ , }: buildFromDebs { - pname = "vpi2"; - version = debs.common.vpi2-dev.version; + pname = "vpi3"; + version = debs.common.vpi3-dev.version; srcs = [ - debs.common.libnvvpi2.src - debs.common.vpi2-dev.src + debs.common.libnvvpi3.src + debs.common.vpi3-dev.src ]; - sourceRoot = "source/opt/nvidia/vpi2"; + sourceRoot = "source/opt/nvidia/vpi3"; buildInputs = [ l4t-core l4t-3d-core @@ -24,7 +24,7 @@ buildFromDebs { libcufft libnpp ]; - patches = [ ./vpi2.patch ]; + patches = [ ./vpi3.patch ]; postPatch = '' rm -rf etc substituteInPlace lib/cmake/vpi/vpi-config.cmake --subst-var out diff --git a/pkgs/cuda-packages/vpi2/vpi2.patch b/pkgs/cuda-packages/vpi3/vpi3.patch similarity index 100% rename from pkgs/cuda-packages/vpi2/vpi2.patch rename to pkgs/cuda-packages/vpi3/vpi3.patch diff --git a/pkgs/flash-from-device/flash-from-device.sh b/pkgs/flash-from-device/flash-from-device.sh index b00c1e9d..15579e18 100644 --- a/pkgs/flash-from-device/flash-from-device.sh +++ b/pkgs/flash-from-device/flash-from-device.sh @@ -5,6 +5,8 @@ set -euo pipefail +set -x + source @ota_helpers_func@ signed_images=$1 diff --git a/pkgs/flash-tools/default.nix b/pkgs/flash-tools/default.nix index c145dc5e..a345e87e 100644 --- a/pkgs/flash-tools/default.nix +++ b/pkgs/flash-tools/default.nix @@ -73,17 +73,20 @@ let mkdir nv_tegra mv bsp_version nv_tegra '' + (lib.optionalString (!stdenv.hostPlatform.isx86) '' - # Wrap x86 binaries in qemu - pushd bootloader/ >/dev/null - for filename in chkbdinfo mkbctpart mkbootimg mksparse tegrabct_v2 tegradevflash_v2 tegrahost_v2 tegrakeyhash tegraopenssl tegraparser_v2 tegrarcm_v2 tegrasign_v2; do - mv "$filename" ."$filename"-wrapped - cat >"$filename" </dev/null + for filename in chkbdinfo mkbctpart mkbootimg mksparse tegrabct_v2 tegradevflash_v2 tegrahost_v2 tegrakeyhash tegraopenssl tegraparser_v2 tegrarcm_v2 tegrasign_v2; do + if [ -e "$filename" ]; then + mv "$filename" ."$filename"-wrapped + # DO NOT CHANGE THE WHITESPACE BELOW! + cat >"$filename" </dev/null + chmod +x "$filename" + fi + done + popd >/dev/null ''); # Create update payloads with: diff --git a/pkgs/flash-tools/flash-tools.patch b/pkgs/flash-tools/flash-tools.patch index f893c0ac..50fd579b 100644 --- a/pkgs/flash-tools/flash-tools.patch +++ b/pkgs/flash-tools/flash-tools.patch @@ -1,23 +1,12 @@ -diff -Naur bsp-5.1.4/bootloader/l4t_bup_gen.func bsp-5.1.4-new/bootloader/l4t_bup_gen.func ---- bsp-5.1.4/bootloader/l4t_bup_gen.func 1969-12-31 16:00:01.000000000 -0800 -+++ bsp-5.1.4-new/bootloader/l4t_bup_gen.func 2024-10-27 17:38:54.890791212 -0700 -@@ -23,7 +23,6 @@ +diff --color -Naur original/bootloader/l4t_bup_gen.func new/bootloader/l4t_bup_gen.func +--- original/bootloader/l4t_bup_gen.func 2025-01-07 17:42:15.358647998 -0800 ++++ new/bootloader/l4t_bup_gen.func 2025-04-14 15:21:33.105126516 -0700 +@@ -25,8 +25,6 @@ declare -A ENTRY_LIST ENTRY_LIST[bl]="" -ENTRY_LIST[kernel]="" +-ENTRY_LIST[safety_user]="" PART_NAME="" IMAGE_SIGNED=0 -diff -Naur bsp-5.1.4/flash.sh bsp-5.1.4-new/flash.sh ---- bsp-5.1.4/flash.sh 1969-12-31 16:00:01.000000000 -0800 -+++ bsp-5.1.4-new/flash.sh 2024-10-27 17:41:11.472780429 -0700 -@@ -2711,6 +2711,8 @@ - fi - cmdline+="${string} "; - done -+ -+ # Just use the cmdline as-is, needed for RCM-boot in jetpack-nixos - fi; - - ########################################################################## diff --git a/pkgs/l4t/default.nix b/pkgs/l4t/default.nix index 26386961..29c3785e 100644 --- a/pkgs/l4t/default.nix +++ b/pkgs/l4t/default.nix @@ -20,8 +20,10 @@ , makeWrapper , bc , debs +, tree , l4tVersion , cudaPackages +, cudaDriverVersion }: let # The version currently in nixpkgs 23.11 and master 0.15 is pretty old and @@ -71,20 +73,31 @@ let postPatch = '' if [[ -d usr ]]; then - mv usr/* . + mv -v usr/* . rmdir usr fi if [[ -d lib/aarch64-linux-gnu ]]; then - mv lib/aarch64-linux-gnu/* lib + if [[ -n "$(ls lib/aarch64-linux-gnu)" ]] ; then + mv -v -t lib lib/aarch64-linux-gnu/* + fi rm -rf lib/aarch64-linux-gnu fi if [[ -d lib/tegra ]]; then - mv lib/tegra/* lib + if [[ -n "$(ls lib/tegra)" ]] ; then + mv -v -t lib lib/tegra/* + fi rm -rf lib/tegra fi + if [[ -d lib/nvidia ]]; then + if [[ -n "$(ls lib/nvidia)" ]] ; then + mv -v -t lib lib/nvidia/* + fi + rm -rf lib/nvidia + fi + ${postPatch} rm -f lib/ld.so.conf @@ -120,18 +133,18 @@ let postPatch = '' # Replace incorrect ICD symlinks rm -rf etc - mkdir -p share/vulkan/icd.d - mv lib/nvidia_icd.json share/vulkan/icd.d/nvidia_icd.json + # mkdir -p share/vulkan/icd.d + # mv lib/nvidia/nvidia_icd.json share/vulkan/icd.d/nvidia_icd.json # Use absolute path in ICD json - sed -i -E "s#(libGLX_nvidia)#$out/lib/\\1#" share/vulkan/icd.d/nvidia_icd.json + # sed -i -E "s#(libGLX_nvidia)#$out/lib/\\1#" share/vulkan/icd.d/nvidia_icd.json rm -f share/glvnd/egl_vendor.d/10_nvidia.json cp lib/tegra-egl/nvidia.json share/glvnd/egl_vendor.d/10_nvidia.json sed -i -E "s#(libEGL_nvidia)#$out/lib/\\1#" share/glvnd/egl_vendor.d/10_nvidia.json - mv lib/tegra-egl/* lib - rm -rf lib/tegra-egl - rm -f lib/nvidia.json + mv -v lib/tegra-egl/* lib/ + rm -r lib/tegra-egl + rm lib/nvidia.json # Remove libnvidia-ptxjitcompiler, which is included in l4t-cuda instead rm -f lib/libnvidia-ptxjitcompiler.* @@ -163,10 +176,11 @@ let # TODO: Replace this with appendRunpaths which is available in 23.11 preFixup = '' postFixupHooks+=(' - patchelf --add-rpath ${lib.makeLibraryPath [ libglvnd ]} \ - $out/lib/libEGL_nvidia.so.0 \ - $out/lib/libGLX_nvidia.so.0 \ - $out/lib/libnvidia-vulkan-producer.so + # ${lib.getExe tree} $out + # patchelf --add-rpath ${lib.makeLibraryPath [ libglvnd ]} \ + # $out/lib/libEGL_nvidia.so.0 \ + # $out/lib/libGLX_nvidia.so.0 \ + # $out/lib/libnvidia-vulkan-producer.so patchelf --add-rpath ${lib.makeLibraryPath (with xorg; [ libX11 libXext libxcb ])} \ $out/lib/libGLX_nvidia.so.0 \ @@ -198,9 +212,9 @@ let # well as libnvidia-ptxjitcompiler in the same package. meta-tegra does a # similar thing where they pull libnvidia-ptxjitcompiler out of # l4t-3d-core and place it in the same package as libcuda. - dpkg --fsys-tarfile ${debs.t234.nvidia-l4t-3d-core.src} | tar -xO ./usr/lib/aarch64-linux-gnu/tegra/libnvidia-ptxjitcompiler.so.${l4tVersion} > lib/libnvidia-ptxjitcompiler.so.${l4tVersion} - ln -sf libnvidia-ptxjitcompiler.so.${l4tVersion} lib/libnvidia-ptxjitcompiler.so.1 - ln -sf libnvidia-ptxjitcompiler.so.${l4tVersion} lib/libnvidia-ptxjitcompiler.so + dpkg --fsys-tarfile ${debs.t234.nvidia-l4t-3d-core.src} | tar -xO ./usr/lib/aarch64-linux-gnu/nvidia/libnvidia-ptxjitcompiler.so.${cudaDriverVersion} > lib/libnvidia-ptxjitcompiler.so.${cudaDriverVersion} + ln -sf libnvidia-ptxjitcompiler.so.${cudaDriverVersion} lib/libnvidia-ptxjitcompiler.so.1 + ln -sf libnvidia-ptxjitcompiler.so.${cudaDriverVersion} lib/libnvidia-ptxjitcompiler.so ''; # libcuda.so actually depends on libnvcucompat.so at runtime (probably @@ -212,16 +226,23 @@ let l4t-cupva = buildFromDeb { name = "cupva"; - src = debs.common."cupva-2.3-l4t".src; - version = debs.common."cupva-2.3-l4t".version; + src = debs.common."cupva-2.5-l4t".src; + version = debs.common."cupva-2.5-l4t".version; buildInputs = [ stdenv.cc.cc.lib l4t-cuda l4t-nvsci l4t-pva ]; postPatch = '' mkdir -p lib - mv opt/nvidia/cupva-2.3/lib/aarch64-linux-gnu/* lib/ + mv opt/nvidia/cupva-2.5/lib/aarch64-linux-gnu/* lib/ rm -rf opt ''; }; + l4t-dla-compiler = buildFromDeb { + name = "nvidia-l4t-dla-compiler"; + src = debs.common."nvidia-l4t-dla-compiler".src; + version = debs.common."nvidia-l4t-dla-compiler".version; + buildInputs = [ l4t-cuda ]; + }; + # TODO: Make nvwifibt systemd scripts work l4t-firmware = buildFromDeb { name = "nvidia-l4t-firmware"; @@ -282,8 +303,8 @@ let patches = [ (fetchpatch { - url = "https://raw.githubusercontent.com/OE4T/meta-tegra/af0a93313c13e9eac4e80082d8a8e8ac5f7ad6e8/recipes-multimedia/argus/files/0005-Remove-DO-NOT-USE-declarations-from-v4l2_nv_extensio.patch"; - sha256 = "sha256-meHF7uS2TFMoh0qGCmjGzR8hfhE0cCwSP2T3ufzwM0s="; + url = "https://raw.githubusercontent.com/OE4T/meta-tegra/2b51abd5b3e2436f8eeb98e8f985806521379174/recipes-multimedia/argus/files/0001-Remove-DO-NOT-USE-declarations-from-v4l2_nv_extensio.patch"; + sha256 = "sha256-MvrwedGEuGtORhshGzJ76A9/VPPCyp9Ztrh0x13T+pw="; stripLen = 1; extraPrefix = "usr/src/jetson_multimedia_api/"; }) @@ -372,9 +393,8 @@ let nativeBuildInputs = [ makeWrapper ]; buildInputs = [ stdenv.cc.cc.lib l4t-core ]; postPatch = '' - # Remove a utility that bring in too many libraries - rm bin/nv_macsec_wpa_supplicant - + rm sbin/nv_wpa_supplicant_wifi sbin/wpa_supplicant + # This just contains a symlink to a binary already in /bin (nvcapture-status-decoder) rm -rf opt ''; @@ -405,6 +425,7 @@ in l4t-core l4t-cuda l4t-cupva + l4t-dla-compiler l4t-firmware l4t-gbm l4t-gstreamer diff --git a/pkgs/optee/default.nix b/pkgs/optee/default.nix index 02f2a340..c7765b89 100644 --- a/pkgs/optee/default.nix +++ b/pkgs/optee/default.nix @@ -20,16 +20,6 @@ let pname = "optee_client"; version = l4tVersion; src = nvopteeSrc; - patches = [ - ./0001-Don-t-prepend-foo-bar-baz-to-TEEC_LOAD_PATH.patch - (fetchpatch { - name = "tee-supplicant-Allow-for-TA-load-path-to-be-specified-at-runtime.patch"; - url = "https://github.com/OP-TEE/optee_client/commit/f3845d8bee3645eedfcc494be4db034c3c69e9ab.patch"; - stripLen = 1; - extraPrefix = "optee/optee_client/"; - hash = "sha256-XjFpMbyXy74sqnc8l+EgTaPXqwwHcvni1Z68ShokTGc="; - }) - ]; nativeBuildInputs = [ pkg-config ]; buildInputs = [ libuuid ]; enableParallelBuilding = true; @@ -161,6 +151,15 @@ let ''); buildArmTrustedFirmware = lib.makeOverridable ({ socType, ... }: + let + atf_build_params = { + t194 = [ ]; + t234 = [ + "BRANCH_PROTECTION=3" + "ARM_ARCH_MINOR=3" + ]; + }.${socType}; + in stdenv.mkDerivation { pname = "arm-trusted-firmware"; version = l4tVersion; @@ -179,7 +178,7 @@ let # `warning: /build/source/build/rk3399/release/bl31/bl31.elf has a LOAD segment with RWX permissions` # See also: https://developer.trustedfirmware.org/T996 "LDFLAGS=-no-warn-rwx-segments" - ]; + ] ++ atf_build_params; enableParallelBuilding = true; diff --git a/pkgs/samples/0001-cupti-samples-Explicitly-ignore-fread-return.patch b/pkgs/samples/0001-cupti-samples-Explicitly-ignore-fread-return.patch new file mode 100644 index 00000000..74c731e2 --- /dev/null +++ b/pkgs/samples/0001-cupti-samples-Explicitly-ignore-fread-return.patch @@ -0,0 +1,28 @@ +From c9c6455af16a0d325fafc48c20d17f14796576d8 Mon Sep 17 00:00:00 2001 +From: Elliot Berman +Date: Tue, 29 Apr 2025 16:36:27 -0700 +Subject: [PATCH 1/2] cupti-samples: Explicitly ignore fread() return + +Suppresses -Wunused-result. +--- + extensions/include/c_util/FileOp.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/extensions/include/c_util/FileOp.h b/extensions/include/c_util/FileOp.h +index ae0bf76..0e187c6 100644 +--- a/extensions/include/c_util/FileOp.h ++++ b/extensions/include/c_util/FileOp.h +@@ -44,7 +44,7 @@ bool ReadBinaryFile(const char* pFileName, std::vector& image) + } + + image.resize((size_t)fileLength); +- fread(&image[0], 1, image.size(), fp); ++ (void)fread(&image[0], 1, image.size(), fp); + fclose(fp); + return true; +-} +\ No newline at end of file ++} +-- +2.49.0 + diff --git a/pkgs/samples/0002-cupti_samples-Fix-include-path-search-for-common-hea.patch b/pkgs/samples/0002-cupti_samples-Fix-include-path-search-for-common-hea.patch new file mode 100644 index 00000000..9b6365cc --- /dev/null +++ b/pkgs/samples/0002-cupti_samples-Fix-include-path-search-for-common-hea.patch @@ -0,0 +1,39 @@ +From e0b4eac5ccf0f85fa4b6cdd2793c9a7e3efac26b Mon Sep 17 00:00:00 2001 +From: Elliot Berman +Date: Tue, 29 Apr 2025 16:42:41 -0700 +Subject: [PATCH 2/2] cupti_samples: Fix include path search for common headers + +--- + pm_sampling/Makefile | 2 +- + sass_metrics/Makefile | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/pm_sampling/Makefile b/pm_sampling/Makefile +index 7b5a98d..fb8b2db 100644 +--- a/pm_sampling/Makefile ++++ b/pm_sampling/Makefile +@@ -9,7 +9,7 @@ endif + CUDA_INSTALL_PATH ?= ../../../.. + CUPTI_INSTALL_PATH ?= $(CUDA_INSTALL_PATH)/extras/CUPTI + NVCC := "$(CUDA_INSTALL_PATH)/bin/nvcc" +-INCLUDES := -I"$(CUDA_INSTALL_PATH)/include" -I$(CUPTI_INSTALL_PATH)/include -I$(CUPTI_INSTALL_PATH)/samples/common ++INCLUDES := -I"$(CUDA_INSTALL_PATH)/include" -I../../include -I../common + + ifeq ($(OS),Windows_NT) + LIB_PATH ?= $(CUPTI_INSTALL_PATH)\lib64 +diff --git a/sass_metrics/Makefile b/sass_metrics/Makefile +index ad37da3..d0be6e1 100644 +--- a/sass_metrics/Makefile ++++ b/sass_metrics/Makefile +@@ -9,7 +9,7 @@ endif + CUDA_INSTALL_PATH ?= ../../../.. + CUPTI_INSTALL_PATH ?= $(CUDA_INSTALL_PATH)/extras/CUPTI + NVCC := "$(CUDA_INSTALL_PATH)/bin/nvcc" +-INCLUDES := -I"$(CUDA_INSTALL_PATH)/include" -I"$(CUPTI_INSTALL_PATH)/include" -I"$(CUPTI_INSTALL_PATH)/samples/common" ++INCLUDES := -I"$(CUDA_INSTALL_PATH)/include" -I"../../include" -I"../common" + TARGET_ARCH ?= $(HOST_ARCH) + TARGET_OS ?= $(shell uname | tr A-Z a-z) + +-- +2.49.0 + diff --git a/pkgs/samples/combined-test.nix b/pkgs/samples/combined-test.nix index 82b4abc1..6b167bec 100644 --- a/pkgs/samples/combined-test.nix +++ b/pkgs/samples/combined-test.nix @@ -3,7 +3,7 @@ , cupti-test , libnvinfer-test , multimedia-test -, vpi2-test +, vpi3-test , writeShellApplication }: writeShellApplication { @@ -28,15 +28,5 @@ writeShellApplication { echo "Running TensorRT test" echo "=====" ${libnvinfer-test}/bin/libnvinfer-test - - echo "=====" - echo "Running Multimedia test" - echo "=====" - ${multimedia-test}/bin/multimedia-test - - echo "=====" - echo "Running VPI2 test" - echo "=====" - ${vpi2-test}/bin/vpi2-test ''; } diff --git a/pkgs/samples/cuda-samples.nix b/pkgs/samples/cuda-samples.nix index 1228b5eb..9ed23d7c 100644 --- a/pkgs/samples/cuda-samples.nix +++ b/pkgs/samples/cuda-samples.nix @@ -1,71 +1,213 @@ -# This package is unfortunately not identical to the upstream cuda-samples -# published at https://github.com/NVIDIA/cuda-samples, so we can't use -# nixpkgs's pkgs/tests/cuda packages { autoAddDriverRunpath +, cmake , cudaPackages -, debs -, dpkg +, fetchFromGitHub , lib -, pkg-config , stdenv +, }: -let - inherit (cudaPackages) - cuda_nvcc - cudatoolkit - cudaMajorMinorVersion - cudaVersionDashes - flags - ; - inherit (stdenv.hostPlatform) parsed; +let inherit (cudaPackages) + cuda_cccl + cuda_cudart + cuda_nvcc + cuda_nvrtc + cuda_nvtx + cuda_profiler_api + cudaAtLeast + cudaOlder + flags + libcublas + libcufft + libcurand + libcusolver + libcusparse + libnpp + libnvjitlink + libnvjpeg + ; in -stdenv.mkDerivation { +stdenv.mkDerivation (finalAttrs: { __structuredAttrs = true; strictDeps = true; pname = "cuda-samples"; - inherit (debs.common."cuda-samples-${cudaVersionDashes}") src version; - - unpackCmd = "dpkg -x $src source"; - sourceRoot = "source/usr/local/cuda-${cudaMajorMinorVersion}/samples"; + version = "12.8"; - nativeBuildInputs = [ autoAddDriverRunpath cuda_nvcc dpkg pkg-config ]; - buildInputs = [ cudatoolkit ]; + # We should be able to use samples from the latest version of CUDA + # on most of the CUDA package sets we have. + # Plus, 12.8 and later are rewritten to use CMake which makes it much, much easier to build. + src = fetchFromGitHub { + owner = "NVIDIA"; + repo = "cuda-samples"; + tag = "v${finalAttrs.version}"; + hash = "sha256-Ba0Fi0v/sQ+1iJ4mslgyIAE+oK5KO0lMoTQCC91vpiA="; + }; - # NOTE: ptxjit requires that we build for a single architecture, which we don't necessarily do. - postPatch = '' - substituteInPlace 0_Simple/matrixMul_nvrtc/Makefile \ - --replace-fail \ - '$(EXEC) cp "$(CUDA_PATH)/$(CUDA_INSTALL_TARGET_DIR)include/cooperative_groups.h" .' \ - '$(EXEC) cp "$(CUDA_PATH)/include/cooperative_groups.h" .' \ - --replace-fail \ - '$(EXEC) cp -r "$(CUDA_PATH)/$(CUDA_INSTALL_TARGET_DIR)include/cooperative_groups" .' \ - '$(EXEC) cp -r "$(CUDA_PATH)/include/cooperative_groups" .' + prePatch = + # https://github.com/NVIDIA/cuda-samples/issues/333 + '' + echo "removing sample 0_Introduction/UnifiedMemoryStreams which requires OpenMP support for CUDA" + substituteInPlace \ + "$NIX_BUILD_TOP/$sourceRoot/Samples/0_Introduction/CMakeLists.txt" \ + --replace-fail \ + 'add_subdirectory(UnifiedMemoryStreams)' \ + '# add_subdirectory(UnifiedMemoryStreams)' + '' + # This sample tries to use a relative path, which doesn't work for our splayed installation. + + '' + echo "patching sample 0_Introduction/matrixMul_nvrtc" + substituteInPlace \ + "$NIX_BUILD_TOP/$sourceRoot/Samples/0_Introduction/matrixMul_nvrtc/CMakeLists.txt" \ + --replace-fail \ + "\''${CUDAToolkit_BIN_DIR}/../include/cooperative_groups" \ + "${lib.getOutput "include" cuda_cudart}/include/cooperative_groups" \ + --replace-fail \ + "\''${CUDAToolkit_BIN_DIR}/../include/nv" \ + "${lib.getOutput "include" cuda_cccl}/include/nv" \ + --replace-fail \ + "\''${CUDAToolkit_BIN_DIR}/../include/cuda" \ + "${lib.getOutput "include" cuda_cccl}/include/cuda" + '' + # These three samples give undefined references, like + # nvlink error : Undefined reference to '__cudaCDP2Free' in 'CMakeFiles/cdpBezierTessellation.dir/BezierLineCDP.cu.o' + # nvlink error : Undefined reference to '__cudaCDP2Malloc' in 'CMakeFiles/cdpBezierTessellation.dir/BezierLineCDP.cu.o' + # nvlink error : Undefined reference to '__cudaCDP2GetParameterBufferV2' in 'CMakeFiles/cdpBezierTessellation.dir/BezierLineCDP.cu.o' + # nvlink error : Undefined reference to '__cudaCDP2LaunchDeviceV2' in 'CMakeFiles/cdpBezierTessellation.dir/BezierLineCDP.cu.o' + + '' + for sample in cdp{AdvancedQuicksort,BezierTessellation,Quadtree,SimplePrint,SimpleQuicksort}; do + echo "removing sample 3_CUDA_Features/$sample which fails to link" + substituteInPlace \ + "$NIX_BUILD_TOP/$sourceRoot/Samples/3_CUDA_Features/CMakeLists.txt" \ + --replace-fail \ + "add_subdirectory($sample)" \ + "# add_subdirectory($sample)" + done + unset -v sample + '' + + lib.optionalString (cudaOlder "12.4") '' + echo "removing sample 3_CUDA_Features/graphConditionalNodes which requires at least CUDA 12.4" + substituteInPlace \ + "$NIX_BUILD_TOP/$sourceRoot/Samples/3_CUDA_Features/CMakeLists.txt" \ + --replace-fail \ + "add_subdirectory(graphConditionalNodes)" \ + "# add_subdirectory(graphConditionalNodes)" + '' + # For some reason this sample requires a static library, which we don't propagate by default due to size. + + '' + echo "patching sample 4_CUDA_Libraries/simpleCUFFT_callback to use dynamic library" + substituteInPlace \ + "$NIX_BUILD_TOP/$sourceRoot/Samples/4_CUDA_Libraries/simpleCUFFT_callback/CMakeLists.txt" \ + --replace-fail \ + 'CUDA::cufft_static' \ + 'CUDA::cufft' + '' + # Patch to use the correct path to libnvJitLink.so, or disable the sample if older than 12.4. + + lib.optionalString (cudaOlder "12.4") '' + echo "removing sample 4_CUDA_Libraries/jitLto which requires at least CUDA 12.4" + substituteInPlace \ + "$NIX_BUILD_TOP/$sourceRoot/Samples/4_CUDA_Libraries/CMakeLists.txt" \ + --replace-fail \ + "add_subdirectory(jitLto)" \ + "# add_subdirectory(jitLto)" + '' + + lib.optionalString (cudaAtLeast "12.4") '' + echo "patching sample 4_CUDA_Libraries/jitLto to use correct path to libnvJitLink.so" + substituteInPlace \ + "$NIX_BUILD_TOP/$sourceRoot/Samples/4_CUDA_Libraries/jitLto/CMakeLists.txt" \ + --replace-fail \ + "\''${CUDAToolkit_LIBRARY_DIR}/libnvJitLink.so" \ + "${lib.getLib libnvjitlink}/lib/libnvJitLink.so" + '' + # /build/NVIDIA-cuda-samples-v12.8/Samples/4_CUDA_Libraries/watershedSegmentationNPP/watershedSegmentationNPP.cpp:272:80: error: cannot convert 'size_t*' {aka 'long unsigned int*'} to 'int*' + # 272 | nppStatus = nppiSegmentWatershedGetBufferSize_8u_C1R(oSizeROI[nImage], &aSegmentationScratchBufferSize[nImage]); + # | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + # | | + # | size_t* {aka long unsigned int*} + + lib.optionalString (cudaOlder "12.8") '' + echo "removing sample 4_CUDA_Libraries/watershedSegmentationNPP which requires at least CUDA 12.8" + substituteInPlace \ + "$NIX_BUILD_TOP/$sourceRoot/Samples/4_CUDA_Libraries/CMakeLists.txt" \ + --replace-fail \ + "add_subdirectory(watershedSegmentationNPP)" \ + "# add_subdirectory(watershedSegmentationNPP)" + '' + # NVVM samples require a specific build of LLVM, which is a hassle. + + '' + echo "removing samples 7_libNVVM which require a specific build of LLVM" + substituteInPlace \ + "$NIX_BUILD_TOP/$sourceRoot/Samples/CMakeLists.txt" \ + --replace-fail \ + 'add_subdirectory(7_libNVVM)' \ + '# add_subdirectory(7_libNVVM)' + '' + # Don't use hard-coded CUDA architectures + + '' + echo "patching CMakeLists.txt to use provided CUDA architectures" + local path="" + while IFS= read -r -d $'\0' path; do + echo "removing CMAKE_CUDA_ARCHITECTURES declaration from $path" + substituteInPlace \ + "$path" \ + --replace-fail \ + 'set(CMAKE_CUDA_ARCHITECTURES' \ + '# set(CMAKE_CUDA_ARCHITECTURES' + done < <(grep --files-with-matches --null "set(CMAKE_CUDA_ARCHITECTURES" --recursive "$NIX_BUILD_TOP/$sourceRoot") + unset -v path + ''; - substituteInPlace 6_Advanced/ptxjit/Makefile \ - --replace-fail \ - 'SAMPLE_ENABLED := 1' \ - 'SAMPLE_ENABLED := 0' - ''; + nativeBuildInputs = [ + # TODO(connorbaker): remove this if we want to support CUDA 12.8 or anything using cuda_compat + autoAddDriverRunpath + cmake + cuda_nvcc + ]; - makeFlags = [ - "CUDA_PATH=${cudatoolkit}" - "SMS=${lib.replaceStrings [ ";" ] [" "] flags.cmakeCudaArchitecturesString}" - # NOTE: CUDA_SEARCH_PATH is only ever used to find stubs. - # Some packages (like deviceQueryDrv) try to link against driver stubs and are not built if they are not found. - "CUDA_SEARCH_PATH=${cudatoolkit}/lib/stubs" + buildInputs = [ + cuda_cccl + cuda_cudart + cuda_nvrtc + cuda_nvtx + cuda_profiler_api + libcublas + libcufft + libcurand + libcusolver + libcusparse + libnpp + libnvjitlink + libnvjpeg + (lib.getOutput "stubs" cuda_cudart) ]; - enableParallelBuilding = true; + cmakeFlags = [ + (lib.cmakeFeature "CMAKE_CUDA_ARCHITECTURES" flags.cmakeCudaArchitecturesString) + (lib.cmakeBool "BUILD_TEGRA" true) + ]; + # TODO(@connorbaker): + # For some reason, using the combined find command doesn't delete directories: + # find "$PWD/Samples" \ + # \( -type d -name CMakeFiles \) \ + # -o \( -type f -name cmake_install.cmake \) \ + # -o \( -type f -name Makefile \) \ + # -exec rm -rf {} + installPhase = '' runHook preInstall - install -Dm755 -t $out/bin bin/${parsed.cpu.name}/${parsed.kernel.name}/release/* + pushd "$NIX_BUILD_TOP/$sourceRoot/''${cmakeBuildDir:?}" >/dev/null + + echo "deleting CMake related files" + + find "$PWD/Samples" -type d -name CMakeFiles -exec rm -rf {} + + find "$PWD/Samples" -type f -name cmake_install.cmake -exec rm -rf {} + + find "$PWD/Samples" -type f -name Makefile -exec rm -rf {} + + + echo "copying $PWD/Samples to $out/" + mkdir -p "$out" + cp -rv "$PWD/Samples"/* "$out/" - # *_nvrtc samples require your current working directory contains the corresponding .cu file - find -ipath "*_nvrtc/*.cu" -exec install -Dt $out/data {} \; + popd >/dev/null runHook postInstall ''; -} +}) diff --git a/pkgs/samples/cuda-test.nix b/pkgs/samples/cuda-test.nix index 7dd7a81e..ade9836b 100644 --- a/pkgs/samples/cuda-test.nix +++ b/pkgs/samples/cuda-test.nix @@ -6,11 +6,11 @@ writeShellApplication { deviceQuery deviceQueryDrv bandwidthTest clock clock_nvrtc matrixMul matrixMulCUBLAS matrixMulDrv matrixMulDynlinkJIT ) - # clock_nvrtc expects .cu files under $PWD/data - cd ${cuda-samples}/bin for binary in "''${BINARIES[@]}"; do - echo " * Running $binary" - ./"$binary" + real="$(find ${cuda-samples} -type f -name "$binary")" + echo " * Running $real" + # clock_nvrtc expects .cu files under $PWD/data + pushd "$(dirname "$real")" && "$real" && popd echo echo done diff --git a/pkgs/samples/cudnn-samples.nix b/pkgs/samples/cudnn-samples.nix index 654e3264..7bb108f0 100644 --- a/pkgs/samples/cudnn-samples.nix +++ b/pkgs/samples/cudnn-samples.nix @@ -18,10 +18,10 @@ stdenv.mkDerivation { strictDeps = true; pname = "cudnn-samples"; - inherit (debs.common.libcudnn8-samples) src version; + inherit (debs.common.libcudnn9-samples) src version; unpackCmd = "dpkg -x $src source"; - sourceRoot = "source/usr/src/cudnn_samples_v8"; + sourceRoot = "source/usr/src/cudnn_samples_v9"; nativeBuildInputs = [ autoAddDriverRunpath cuda_nvcc dpkg ]; buildInputs = [ cudatoolkit cudnn ]; @@ -40,6 +40,8 @@ stdenv.mkDerivation { # Sample directories which we won't build. ignoredSampleDirs = { + cmake = 1; + common = 1; # `mnistCUDNN` requires freeimage which is marked vulnerable in upstream as of 24.05 mnistCUDNN = 1; }; diff --git a/pkgs/samples/cupti-samples.nix b/pkgs/samples/cupti-samples.nix index 600e0bba..f7b9e6d6 100644 --- a/pkgs/samples/cupti-samples.nix +++ b/pkgs/samples/cupti-samples.nix @@ -24,6 +24,10 @@ stdenv.mkDerivation { unpackCmd = "dpkg -x $src source"; sourceRoot = "source/usr/local/cuda-${cudaMajorMinorVersion}/extras/CUPTI/samples"; + patches = [ + ./0001-cupti-samples-Explicitly-ignore-fread-return.patch + ./0002-cupti_samples-Fix-include-path-search-for-common-hea.patch + ]; nativeBuildInputs = [ autoAddDriverRunpath cuda_nvcc dpkg pkg-config ]; buildInputs = [ cudatoolkit ]; @@ -42,6 +46,7 @@ stdenv.mkDerivation { # Sample directories which we won't build. ignoredSampleDirs = { + common = 1; extensions = 1; }; @@ -87,8 +92,12 @@ stdenv.mkDerivation { # Skip directories that don't exist or are ignored [[ ! -d $sampleDir || ''${ignoredSampleDirs["$sampleDir"]-0} -eq 1 ]] && continue # Install the sample, using the special name if it exists and the directory name if it doesn't. - install -Dm755 -t "$out/bin" \ - "$sampleDir/''${sampleExes["$sampleDir"]:-"$sampleDir"}" + file="$sampleDir/''${sampleExes["$sampleDir"]:-"$sampleDir"}" + if [[ -x "$file" ]] ; then + install -Dm755 -t "$out/bin" "$file" + elif [[ -e "''${file}.so" ]] ; then + install -Dm555 -t "$out/lib" "$file" + fi done unset -v sampleDir diff --git a/pkgs/samples/libnvinfer-samples.nix b/pkgs/samples/libnvinfer-samples.nix index b93be535..a8906d20 100644 --- a/pkgs/samples/libnvinfer-samples.nix +++ b/pkgs/samples/libnvinfer-samples.nix @@ -32,13 +32,6 @@ stdenv.mkDerivation { nativeBuildInputs = [ autoAddDriverRunpath cuda_nvcc dpkg ]; buildInputs = [ cuda_cudart cuda_profiler_api cudnn libcublas tensorrt ]; - postPatch = '' - substituteInPlace Makefile.config \ - --replace-fail \ - '-I"$(CUDNN_INSTALL_DIR)/include"' \ - '-I"${lib.getOutput "include" cudnn}/include"' - ''; - enableParallelBuilding = true; makeFlags = [ diff --git a/pkgs/samples/multimedia-samples.nix b/pkgs/samples/multimedia-samples.nix index c61a4484..faad8477 100644 --- a/pkgs/samples/multimedia-samples.nix +++ b/pkgs/samples/multimedia-samples.nix @@ -64,8 +64,8 @@ stdenv.mkDerivation { # TODO: Unify this with headers in l4t-jetson-multimedia-api patches = [ (fetchurl { - url = "https://raw.githubusercontent.com/OE4T/meta-tegra/af0a93313c13e9eac4e80082d8a8e8ac5f7ad6e8/recipes-multimedia/argus/files/0005-Remove-DO-NOT-USE-declarations-from-v4l2_nv_extensio.patch"; - sha256 = "sha256-IJ1teGEUxYDEPYSvYZbqdmUYg9tOORN7WGYpDaUUnHY="; + url = "https://raw.githubusercontent.com/OE4T/meta-tegra/2b51abd5b3e2436f8eeb98e8f985806521379174/recipes-multimedia/argus/files/0001-Remove-DO-NOT-USE-declarations-from-v4l2_nv_extensio.patch"; + sha256 = "sha256-J9Hhm7oOptUR39KMbxZB1+esAlKWTyyKk1Ep3ZlJ488="; }) (fetchurl { url = "https://raw.githubusercontent.com/OE4T/meta-tegra/4f825ddeb2e9a1b5fbff623955123c20b82c8274/recipes-multimedia/argus/tegra-mmapi-samples/0004-samples-classes-fix-a-data-race-in-shutting-down-deq.patch"; diff --git a/pkgs/samples/vpi2-samples.nix b/pkgs/samples/vpi3-samples.nix similarity index 85% rename from pkgs/samples/vpi2-samples.nix rename to pkgs/samples/vpi3-samples.nix index 5a99e2b3..6310d047 100644 --- a/pkgs/samples/vpi2-samples.nix +++ b/pkgs/samples/vpi3-samples.nix @@ -9,21 +9,21 @@ let inherit (cudaPackages) cuda_cudart cuda_nvcc - vpi2 + vpi3 ; in stdenv.mkDerivation { __structuredAttrs = true; strictDeps = true; - pname = "vpi2-samples"; - inherit (debs.common.vpi2-samples) src version; + pname = "vpi3-samples"; + inherit (debs.common.vpi3-samples) src version; unpackCmd = "dpkg -x $src source"; - sourceRoot = "source/opt/nvidia/vpi2/samples"; + sourceRoot = "source/opt/nvidia/vpi3/samples"; nativeBuildInputs = [ cmake cuda_nvcc dpkg ]; - buildInputs = [ cuda_cudart opencv vpi2 ]; + buildInputs = [ cuda_cudart opencv vpi3 ]; configurePhase = '' runHook preBuild diff --git a/pkgs/samples/vpi2-test.nix b/pkgs/samples/vpi3-test.nix similarity index 72% rename from pkgs/samples/vpi2-test.nix rename to pkgs/samples/vpi3-test.nix index ff2a4750..8ec6f7a7 100644 --- a/pkgs/samples/vpi2-test.nix +++ b/pkgs/samples/vpi3-test.nix @@ -1,26 +1,26 @@ -{ vpi2-samples, writeShellApplication }: +{ vpi3-samples, writeShellApplication }: # Tested via "./result/bin/vpi_sample_05_benchmark " (Try pva especially) # Getting a bunch of "pva 16000000.pva0: failed to get firmware" messages, so unsure if its working. writeShellApplication { - name = "vpi2-test"; + name = "vpi3-test"; text = '' echo " * Running vpi_sample_05_benchmark cuda" - ${vpi2-samples}/bin/vpi_sample_05_benchmark cuda + ${vpi3-samples}/bin/vpi_sample_05_benchmark cuda echo echo " * Running vpi_sample_05_benchmark cpu" - ${vpi2-samples}/bin/vpi_sample_05_benchmark cpu + ${vpi3-samples}/bin/vpi_sample_05_benchmark cpu echo CHIP="$(tr -d '\0' < /proc/device-tree/compatible)" if [[ "''${CHIP}" =~ "tegra194" ]]; then echo " * Running vpi_sample_05_benchmark pva" - ${vpi2-samples}/bin/vpi_sample_05_benchmark pva + ${vpi3-samples}/bin/vpi_sample_05_benchmark pva echo fi ''; # PVA is only available on Xaviers. If the Jetpack version of the - # firmware doesnt match the vpi2 version, it might fail with the + # firmware doesnt match the vpi3 version, it might fail with the # following: # [ 435.318277] pva 16800000.pva1: invalid symbol id in descriptor for dst2 VMEM # [ 435.318467] pva 16800000.pva1: failed to map DMA desc info diff --git a/pkgs/tests/default.nix b/pkgs/tests/default.nix index 2907a8c9..422a8e40 100644 --- a/pkgs/tests/default.nix +++ b/pkgs/tests/default.nix @@ -1,13 +1,14 @@ { l4tVersion , dockerTools , writeShellScriptBin +, pkgs }: let l4tImage = dockerTools.pullImage { imageName = "nvcr.io/nvidia/l4t-jetpack"; - imageDigest = "sha256:d1c8e971ab994235840eacc31c4ef4173bf9156317b1bf8aabe7e01eb21b2a0e"; - finalImageTag = "r35.4.1"; # As of 2024-10-27 there is (still) no 35.6.0 image published - sha256 = "sha256-IDePYGssk6yrcaocnluxBaRJb7BrXxS7tBlEo6hNtHw="; + imageDigest = "sha256:34ccf0f3b63c6da9eee45f2e79de9bf7fdf3beda9abfd72bbf285ae9d40bb673"; + finalImageTag = "r36.4.0"; + sha256 = "sha256-+5+GRmyCl2ZcdYIJHU5snuFzEx1QkZic9bhtx9ZjXeo="; os = "linux"; arch = "arm64"; }; @@ -15,7 +16,7 @@ in { oci = writeShellScriptBin "oci-test" '' image=${l4tImage.imageName}:${l4tImage.imageTag} - container_commands="cd /usr/local/cuda/samples/1_Utilities/deviceQuery && make && ./deviceQuery" + container_commands="apt-get update && apt-get install --yes cmake build-essential && wget https://github.com/NVIDIA/cuda-samples/archive/refs/tags/v12.9.tar.gz && tar xf v12.9.tar.gz && mkdir cuda-samples-12.9/build && cd cuda-samples-12.9/build && cmake -DBUILD_TEGRA=True .. ; make -C Samples/1_Utilities/deviceQuery && Samples/1_Utilities/deviceQuery/deviceQuery" for runtime in docker podman; do if command -v $runtime 2>&1 >/dev/null; then diff --git a/pkgs/uefi-firmware/default.nix b/pkgs/uefi-firmware/default.nix index 3462c3cb..e7197a00 100644 --- a/pkgs/uefi-firmware/default.nix +++ b/pkgs/uefi-firmware/default.nix @@ -1,19 +1,21 @@ { lib , stdenv +, callPackage , buildPackages +, pkgsCross , fetchFromGitHub -, fetchurl , fetchpatch , runCommand , edk2 , acpica-tools , dtc , python3 -, bc -, imagemagick , unixtools , libuuid +, which +, nasm , applyPatches +, pkgsBuildHost , nukeReferences , l4tVersion , # Optional path to a boot logo that will be converted and cropped into the format required @@ -42,47 +44,99 @@ let convert ${bootLogo} -resize 640x480 -gravity Center -extent 640x480 -format bmp -define bmp:format=bmp3 $out/logo480.bmp ''; - ### - - # See: https://github.com/NVIDIA/edk2-edkrepo-manifest/blob/main/edk2-nvidia/Jetson/NVIDIAJetsonManifest.xml + # See: https://github.com/NVIDIA/edk2-edkrepo-manifest/blob/main/edk2-nvidia/Platform/NVIDIAPlatformsManifest.xml edk2-src = applyPatches { - src = fetchFromGitHub { + name = "edk2"; + src = (fetchFromGitHub { owner = "NVIDIA"; repo = "edk2"; - rev = "r${l4tVersion}-edk2-stable202208"; + rev = "r${l4tVersion}"; fetchSubmodules = true; - sha256 = "sha256-w+rZq7Wjni62MJds6QmqpLod+zSFZ/qAN7kRDOit+jo="; - }; + sha256 = "sha256-TBroMmFyZt6ypooDtSzScjA3POPr76rJKfLQfAkRwdU="; + }).overrideAttrs + # see https://github.com/NixOS/nixpkgs/pull/354193 + (_: { + env = { + GIT_CONFIG_COUNT = 1; + GIT_CONFIG_KEY_0 = "url.https://github.com/tianocore/edk2-subhook.git.insteadOf"; + GIT_CONFIG_VALUE_0 = "https://github.com/Zeex/subhook.git"; + }; + }); + # see https://github.com/NixOS/nixpkgs/blob/9e7e65f7c5ec6a9cfb4ca7239c78a3d237c160ac/pkgs/by-name/ed/edk2/package.nix#L51-L98 patches = [ - # Fix GCC 14 compile issue. - # PR: https://github.com/tianocore/edk2/pull/5781 + # pass targetPrefix as an env var + (fetchpatch { + url = "https://src.fedoraproject.org/rpms/edk2/raw/08f2354cd280b4ce5a7888aa85cf520e042955c3/f/0021-Tweak-the-tools_def-to-support-cross-compiling.patch"; + hash = "sha256-E1/fiFNVx0aB1kOej2DJ2DlBIs9tAAcxoedym2Zhjxw="; + }) + # https://github.com/tianocore/edk2/pull/5658 (fetchpatch { - url = "https://github.com/NVIDIA/edk2/commit/57a890fd03356350a1b7a2a0064c8118f44e9958.patch"; - hash = "sha256-on+yJOlH9B2cD1CS9b8Pmg99pzrlrZT6/n4qPHAbDcA="; + name = "fix-cross-compilation-antlr-dlg.patch"; + url = "https://github.com/tianocore/edk2/commit/a34ff4a8f69a7b8a52b9b299153a8fac702c7df1.patch"; + hash = "sha256-u+niqwjuLV5tNPykW4xhb7PW2XvUmXhx5uvftG1UIbU="; }) + + ./remove-gcc-prefix-checks.diff ]; + + # EDK2 is currently working on OpenSSL 3.3.x support. Use buildpackages.openssl again, + # when "https://github.com/tianocore/edk2/pull/6167" is merged. + postPatch = '' + # We don't want EDK2 to keep track of OpenSSL, they're frankly bad at it. + rm -r CryptoPkg/Library/OpensslLib/openssl + mkdir -p CryptoPkg/Library/OpensslLib/openssl + ( + cd CryptoPkg/Library/OpensslLib/openssl + tar --strip-components=1 -xf ${buildPackages.openssl_3.src} + + # Apply OpenSSL patches. + ${lib.pipe buildPackages.openssl_3.patches [ + (builtins.filter ( + patch: + !builtins.elem (baseNameOf patch) [ + # Exclude patches not required in this context. + "nix-ssl-cert-file.patch" + "openssl-disable-kernel-detection.patch" + "use-etc-ssl-certs-darwin.patch" + "use-etc-ssl-certs.patch" + ] + )) + (map (patch: "patch -p1 < ${patch}\n")) + lib.concatStrings + ]} + ) + + # enable compilation using Clang + # https://bugzilla.tianocore.org/show_bug.cgi?id=4620 + substituteInPlace BaseTools/Conf/tools_def.template --replace-fail \ + 'DEFINE CLANGPDB_WARNING_OVERRIDES = ' \ + 'DEFINE CLANGPDB_WARNING_OVERRIDES = -Wno-unneeded-internal-declaration ' + ''; }; - edk2-platforms = fetchFromGitHub { + edk2-platforms = fetchFromGitHub rec { owner = "NVIDIA"; repo = "edk2-platforms"; - rev = "r${l4tVersion}-upstream-20220830"; - sha256 = "sha256-PjAJEbbswOLYupMg/xEqkAOJuAC8SxNsQlb9YBswRfo="; + name = repo; + rev = "r${l4tVersion}"; + sha256 = "sha256-27dKEi66UWBgJi3Sb2/naeeSC2CJ5+Dbtw8e0o5Y/Hg="; }; - edk2-non-osi = fetchFromGitHub { + edk2-non-osi = fetchFromGitHub rec { owner = "NVIDIA"; repo = "edk2-non-osi"; - rev = "r${l4tVersion}-upstream-20220830"; - sha256 = "sha256-EPtI63jYhEIo4uVTH3lUt9NC/lK5vPVacUAc5qgmz9M="; + name = repo; + rev = "r${l4tVersion}"; + sha256 = "sha256-FnznH8KsB3rD7sL5Lx2GuQZRPZ+uqAYqenjk+7x89mE="; }; edk2-nvidia = applyPatches { + name = "edk2-nvidia"; src = fetchFromGitHub { owner = "NVIDIA"; repo = "edk2-nvidia"; rev = "r${l4tVersion}"; - sha256 = "sha256-0Ef+yybdORI9NPWPR+tKwgmRil+I9QQQ16F747w/E6s="; + sha256 = "sha256-Ri+0vrxvd7eE7TP/KBM0ET2jX0fupdC3+Dli+IshUP8="; }; patches = edk2NvidiaPatches ++ [ # Fix Eqos driver to use correct TX clock name @@ -92,12 +146,14 @@ let hash = "sha256-cc+eGLFHZ6JQQix1VWe/UOkGunAzPb8jM9SXa9ScIn8="; }) - ./capsule-authentication.patch + ./stuart-passthru-compiler-prefix.diff + + # ./capsule-authentication.patch # Have UEFI use the device tree compiled into the firmware, instead of # using one from the kernel-dtb partition. # See: https://github.com/anduril/jetpack-nixos/pull/18 - ./edk2-uefi-dtb.patch + # ./edk2-uefi-dtb.patch ]; postPatch = lib.optionalString errorLevelInfo '' sed -i 's#PcdDebugPrintErrorLevel|.*#PcdDebugPrintErrorLevel|0x8000004F#' Platform/NVIDIA/NVIDIA.common.dsc.inc @@ -108,50 +164,49 @@ let ''; }; - edk2-nvidia-non-osi = fetchFromGitHub { + edk2-nvidia-non-osi = fetchFromGitHub rec { owner = "NVIDIA"; repo = "edk2-nvidia-non-osi"; + name = repo; rev = "r${l4tVersion}"; - sha256 = "sha256-l2rEbBvlXhlXFUyubsmPlWofqjJuDM/t9EqFwFoSdfk="; + sha256 = "sha256-qQs1jO/h6+j9WLfz1OtYpgZutEeX284BlcUKJWvghEE="; }; - edk2-jetson = edk2.overrideAttrs (prev: { - # Upstream nixpkgs patch to use nixpkgs OpenSSL - # See https://github.com/NixOS/nixpkgs/blob/44733514b72e732bd49f5511bd0203dea9b9a434/pkgs/development/compilers/edk2/default.nix#L57 - src = runCommand "edk2-unvendored-src" { } '' - cp --no-preserve=mode -r ${edk2-src} $out - rm -rf $out/CryptoPkg/Library/OpensslLib/openssl - mkdir -p $out/CryptoPkg/Library/OpensslLib/openssl - tar --strip-components=1 -xf ${buildPackages.openssl.src} -C $out/CryptoPkg/Library/OpensslLib/openssl - chmod -R +w $out/ - # Fix missing INT64_MAX include that edk2 explicitly does not provide - # via it's own . Let's pull in openssl's definition instead: - sed -i $out/CryptoPkg/Library/OpensslLib/openssl/crypto/property/property_parse.c \ - -e '1i #include "internal/numbers.h"' - ''; + pythonEnv = buildPackages.python312.withPackages (ps: callPackage ./pyenv.nix { inherit ps edk2-nvidia; }); + + # _stdenv = stdenv.override (prevStdenv: { + # cc = prevStdenv.cc.overrideAttrs (prevCc: { + # # https://github.com/NVIDIA/edk2-nvidia/wiki/Build-without-docker + # # asks us to install gcc-ar, gcc-nm, and gcc-ranlib & edk2 expects at least gcc-ar + # # stdenv.cc doesn't have these by default, so install them too + # installPhase = (prevCc.installPhase or "") + '' + # for binary in gcc-ar gcc-nm gcc-ranlib; do + # if [ -e $ccPath/${prevCc.passthru.targetPrefix}$binary ]; then + # ln -s $ccPath/${prevCc.passthru.targetPrefix}$binary $out/bin/${prevCc.passthru.targetPrefix}$binary + # fi + # done + # ''; + # }); + # }); - depsBuildBuild = prev.depsBuildBuild ++ [ libuuid ]; - }); + buildTarget = if debugMode then "DEBUG" else "RELEASE"; - pythonEnv = buildPackages.python3.withPackages (ps: [ ps.tkinter ]); targetArch = - if stdenv.isi686 then + if stdenv.hostPlatform.isi686 then "IA32" - else if stdenv.isx86_64 then + else if stdenv.hostPlatform.isx86_64 then "X64" - else if stdenv.isAarch64 then + else if stdenv.hostPlatform.isAarch32 then + "ARM" + else if stdenv.hostPlatform.isAarch64 then "AARCH64" + else if stdenv.hostPlatform.isRiscV64 then + "RISCV64" + else if stdenv.hostPlatform.isLoongArch64 then + "LOONGARCH64" else throw "Unsupported architecture"; - buildType = - if stdenv.isDarwin then - "CLANGPDB" - else - "GCC5"; - - buildTarget = if debugMode then "DEBUG" else "RELEASE"; - jetson-edk2-uefi = # TODO: edk2.mkDerivation doesn't have a way to override the edk version used! # Make it not via passthru ? @@ -159,70 +214,84 @@ let pname = "jetson-edk2-uefi"; version = l4tVersion; - # Initialize the build dir with the build tools from edk2 - src = edk2-src; + srcs = [ + edk2-src + edk2-platforms + edk2-non-osi + edk2-nvidia + edk2-nvidia-non-osi + ]; - depsBuildBuild = [ buildPackages.stdenv.cc ]; - nativeBuildInputs = [ bc pythonEnv acpica-tools dtc unixtools.whereis ]; - strictDeps = true; + sourceRoot = "."; - NIX_CFLAGS_COMPILE = [ - "-Wno-error=format-security" # TODO: Fix underlying issue + depsBuildBuild = [ buildPackages.stdenv.cc buildPackages.bash libuuid ]; + nativeBuildInputs = [ + pythonEnv - # Workaround for ../Silicon/NVIDIA/Drivers/EqosDeviceDxe/nvethernetrm/osi/core/osi_hal.c:1428: undefined reference to `__aarch64_ldadd4_sync' - "-mno-outline-atomics" + # from nixpkgs, for stuart + acpica-tools + dtc + nasm + unixtools.whereis + which ]; + strictDeps = true; + # trick taken from https://src.fedoraproject.org/rpms/edk2/blob/08f2354cd280b4ce5a7888aa85cf520e042955c3/f/edk2.spec#_319 ${"GCC5_${targetArch}_PREFIX"} = stdenv.cc.targetPrefix; - - # From edk2-nvidia/Silicon/NVIDIA/edk2nv/stuart/settings.py - PACKAGES_PATH = lib.concatStringsSep ":" [ - "${edk2-src}/BaseTools" # TODO: Is this needed? - finalAttrs.src - edk2-platforms - edk2-non-osi - edk2-nvidia - edk2-nvidia-non-osi - "${edk2-platforms}/Features/Intel/OutOfBandManagement" + # stuart (nvidia extensions) really wants CROSS_COMPILER_PREFIX to look like this + CROSS_COMPILER_PREFIX = "${stdenv.cc}/bin/${stdenv.cc.targetPrefix}"; + # DANGER: If someone else modifies PYTHONPATH, then we lose this + # We're okay when this was written. + PYTHONPATH = "${edk2-nvidia}/Silicon/NVIDIA"; + # Version is ${FIRMWARE_VERSION_BASE}-${GIT_SYNC_REVISION} + FIRMWARE_VERSION_BASE = "${l4tVersion}"; + GIT_SYNC_REVISION = "nix"; + + # see nixpkgs/pkgs/by-name/ed/edk2/package.nix + hardeningDisable = [ + "format" + "fortify" ]; - enableParallelBuilding = true; - - prePatch = '' - rm -rf BaseTools - cp -r ${edk2-jetson}/BaseTools BaseTools - chmod -R u+w BaseTools + patchPhase = '' + find . -name \*_ext_dep.yaml -delete + patchShebangs . ''; - patches = edk2UefiPatches; - configurePhase = '' runHook preConfigure - export WORKSPACE="$PWD" - source ./edksetup.sh BaseTools + + unset AR + unset AS + unset CC + unset CXX + unset LD + unset NM + unset OBJCOPY + unset OBJDUMP + unset RANLIB + unset READELF + unset SIZE + unset STRINGS + unset STRIP + + export WORKSPACE=$(pwd) + CFLAGS=$NIX_CFLAGS_COMPILE_FOR_BUILD LDFLAGS=$NIX_LDFLAGS_FOR_BUILD python edk2/BaseTools/Edk2ToolsBuild.py -t GCC5 ${lib.optionalString (trustedPublicCertPemFile != null) '' echo Using ${trustedPublicCertPemFile} as public certificate for capsule verification - ${lib.getExe buildPackages.openssl} x509 -outform DER -in ${trustedPublicCertPemFile} -out PublicCapsuleKey.cer - python3 BaseTools/Scripts/BinToPcd.py -p gEfiSecurityPkgTokenSpaceGuid.PcdPkcs7CertBuffer -i PublicCapsuleKey.cer -o PublicCapsuleKey.cer.gEfiSecurityPkgTokenSpaceGuid.PcdPkcs7CertBuffer.inc - python3 BaseTools/Scripts/BinToPcd.py -x -p gFmpDevicePkgTokenSpaceGuid.PcdFmpDevicePkcs7CertBufferXdr -i PublicCapsuleKey.cer -o PublicCapsuleKey.cer.gFmpDevicePkgTokenSpaceGuid.PcdFmpDevicePkcs7CertBufferXdr.inc + ${lib.getExe buildPackages.openssl} x509 -outform DER -in ${trustedPublicCertPemFile} -out edk2/PublicCapsuleKey.cer + python3 edk2/BaseTools/Scripts/BinToPcd.py -p gEfiSecurityPkgTokenSpaceGuid.PcdPkcs7CertBuffer -i edk2/PublicCapsuleKey.cer -o edk2/PublicCapsuleKey.cer.gEfiSecurityPkgTokenSpaceGuid.PcdPkcs7CertBuffer.inc + python3 edk2/BaseTools/Scripts/BinToPcd.py -x -p gFmpDevicePkgTokenSpaceGuid.PcdFmpDevicePkcs7CertBufferXdr -i edk2/PublicCapsuleKey.cer -o edk2/PublicCapsuleKey.cer.gFmpDevicePkgTokenSpaceGuid.PcdFmpDevicePkcs7CertBufferXdr.inc ''} runHook postConfigure ''; buildPhase = '' - runHook preBuild - - # The BUILDID_STRING and BUILD_DATE_TIME are used - # just by nvidia, not generic edk2 - build -a ${targetArch} -b ${buildTarget} -t ${buildType} -p Platform/NVIDIA/Jetson/Jetson.dsc -n $NIX_BUILD_CORES \ - -D BUILDID_STRING=${l4tVersion} \ - -D BUILD_DATE_TIME="$(date --utc --iso-8601=seconds --date=@$SOURCE_DATE_EPOCH)" \ - ${lib.optionalString (trustedPublicCertPemFile != null) "-D CUSTOM_CAPSULE_CERT"} \ - $buildFlags - - runHook postBuild + stuart_setup -c edk2-nvidia/Platform/NVIDIA/Jetson/PlatformBuild.py + stuart_build -c edk2-nvidia/Platform/NVIDIA/Jetson/PlatformBuild.py --target ${buildTarget} ''; installPhase = '' @@ -235,25 +304,28 @@ let uefi-firmware = runCommand "uefi-firmware-${l4tVersion}" { nativeBuildInputs = [ python3 nukeReferences ]; - } '' - mkdir -p $out - python3 ${edk2-nvidia}/Silicon/NVIDIA/Tools/FormatUefiBinary.py \ - ${jetson-edk2-uefi}/FV/UEFI_NS.Fv \ - $out/uefi_jetson.bin - - python3 ${edk2-nvidia}/Silicon/NVIDIA/Tools/FormatUefiBinary.py \ - ${jetson-edk2-uefi}/AARCH64/L4TLauncher.efi \ - $out/L4TLauncher.efi - - mkdir -p $out/dtbs - for filename in ${jetson-edk2-uefi}/AARCH64/Silicon/NVIDIA/Tegra/DeviceTree/DeviceTree/OUTPUT/*.dtb; do - cp $filename $out/dtbs/$(basename "$filename" ".dtb").dtbo - done - - # Get rid of any string references to source(s) - nuke-refs $out/uefi_jetson.bin - ''; + } + '' + mkdir -p $out + python3 ${edk2-nvidia}/Silicon/NVIDIA/edk2nv/FormatUefiBinary.py \ + ${jetson-edk2-uefi}/FV/UEFI_NS.Fv \ + $out/uefi_jetson.bin + + python3 ${edk2-nvidia}/Silicon/NVIDIA/edk2nv/FormatUefiBinary.py \ + ${jetson-edk2-uefi}/AARCH64/L4TLauncher.efi \ + $out/L4TLauncher.efi + + mkdir -p $out/dtbs + for filename in ${jetson-edk2-uefi}/AARCH64/Silicon/NVIDIA/Tegra/DeviceTree/DeviceTree/OUTPUT/*.dtb; do + cp $filename $out/dtbs/$(basename "$filename" ".dtb").dtbo + done + + # Get rid of any string references to source(s) + nuke-refs $out/uefi_jetson.bin + ''; in { - inherit edk2-jetson uefi-firmware; + inherit uefi-firmware jetson-edk2-uefi; } + + diff --git a/pkgs/uefi-firmware/pyenv.nix b/pkgs/uefi-firmware/pyenv.nix new file mode 100644 index 00000000..ba399ac3 --- /dev/null +++ b/pkgs/uefi-firmware/pyenv.nix @@ -0,0 +1,100 @@ +{ fetchFromGitHub +, ps +, ... +}: +with ps; +let + edk2-pytool-library = buildPythonPackage + rec { + pname = "edk2-pytool-library"; + # Bumped from 0.19.3 for edk2-basetools + version = "0.23.2"; + pyproject = true; + + src = fetchPypi { + pname = "edk2_pytool_library"; + inherit version; + hash = "sha256-v33XVI+m2CSOuuxsu2JcBjm0cQmspWQGireQzL6/6rI="; + }; + build-system = [ setuptools-scm ]; + + dependencies = [ + pyasn1 + pyasn1-modules + cryptography + joblib + GitPython + sqlalchemy + pygount + ]; + }; + edk2-pytool-extensions = buildPythonPackage + rec { + pname = "edk2-pytool-extensions"; + version = "0.29.4"; + pyproject = true; + + src = fetchPypi { + pname = "edk2_pytool_extensions"; + inherit version; + hash = "sha256-qHLLHjFKnfgn4aO6n+CxhEqwyR7MaHYOfZxJCDhR13s="; + }; + build-system = [ setuptools-scm ]; + + dependencies = [ + edk2-pytool-library + pyyaml + pefile + semantic-version + GitPython + openpyxl + XlsxWriter + ]; + }; + edk2-basetools = buildPythonPackage + rec { + pname = "edk2-basetools"; + # Want 0.1.48, but it hard-codes a fetch from pypi! + # 0.1.50 is broken, see tianocore/edk2-basetools#124 + version = "0.1.53"; + pyproject = true; + + src = fetchFromGitHub { + owner = "tianocore"; + repo = pname; + rev = "v${version}"; + hash = "sha256-qg54/2fYjX9pJbcu2iryrWIvQc1iOFl8v490zD7IhrA="; + }; + build-system = [ setuptools setuptools-scm pytest pytest-html pytest-cov flake8 build ]; + + dependencies = [ + edk2-pytool-library + antlr4-python3-runtime + ]; + }; + kconfiglib = buildPythonPackage + rec { + pname = "kconfiglib"; + version = "14.1.0"; # Latest when writing, conveniently not pinned + pyproject = true; + + src = fetchPypi { + inherit pname version; + hash = "sha256-vtLMIhb1OOykJVqDpFiNiCNWPN1QEU+GzxomdOYCyTw="; + }; + build-system = [ setuptools ]; + }; +in +[ + # from edk2/pip-requirements.txt + edk2-pytool-library + edk2-pytool-extensions + edk2-basetools + antlr4-python3-runtime + lcov-cobertura + regex + # from edk2-nvidia + kconfiglib + # implicit! + setuptools +] diff --git a/pkgs/uefi-firmware/remove-gcc-prefix-checks.diff b/pkgs/uefi-firmware/remove-gcc-prefix-checks.diff new file mode 100644 index 00000000..cbd5913f --- /dev/null +++ b/pkgs/uefi-firmware/remove-gcc-prefix-checks.diff @@ -0,0 +1,40 @@ +diff --git a/BaseTools/Plugin/LinuxGcc5ToolChain/LinuxGcc5ToolChain.py b/BaseTools/Plugin/LinuxGcc5ToolChain/LinuxGcc5ToolChain.py +index dab7a87997..db18dc8341 100644 +--- a/BaseTools/Plugin/LinuxGcc5ToolChain/LinuxGcc5ToolChain.py ++++ b/BaseTools/Plugin/LinuxGcc5ToolChain/LinuxGcc5ToolChain.py +@@ -21,35 +21,6 @@ class LinuxGcc5ToolChain(IUefiBuildPlugin): + + def do_pre_build(self, thebuilder): + self.Logger = logging.getLogger("LinuxGcc5ToolChain") +- +- # +- # GCC5 - The ARM and AARCH64 compilers need their paths set if available +- if thebuilder.env.GetValue("TOOL_CHAIN_TAG") == "GCC5": +- +- # Start with AARACH64 compiler +- ret = self._check_aarch64() +- if ret != 0: +- self.Logger.critical("Failed in check aarch64") +- return ret +- +- # Check arm compiler +- ret = self._check_arm() +- if ret != 0: +- self.Logger.critical("Failed in check arm") +- return ret +- +- # Check RISCV64 compiler +- ret = self._check_riscv64() +- if ret != 0: +- self.Logger.critical("Failed in check riscv64") +- return ret +- +- # Check LoongArch64 compiler +- ret = self._check_loongarch64() +- if ret != 0: +- self.Logger.critical("Failed in check loongarch64") +- return ret +- + return 0 + + def _check_arm(self): diff --git a/pkgs/uefi-firmware/stuart-passthru-compiler-prefix.diff b/pkgs/uefi-firmware/stuart-passthru-compiler-prefix.diff new file mode 100644 index 00000000..aead7267 --- /dev/null +++ b/pkgs/uefi-firmware/stuart-passthru-compiler-prefix.diff @@ -0,0 +1,18 @@ +diff --git a/Silicon/NVIDIA/edk2nv/stuart/builder.py b/Silicon/NVIDIA/edk2nv/stuart/builder.py +index 692400d2..31cef6ae 100644 +--- a/Silicon/NVIDIA/edk2nv/stuart/builder.py ++++ b/Silicon/NVIDIA/edk2nv/stuart/builder.py +@@ -340,13 +340,6 @@ class NVIDIAPlatformBuilder(UefiBuilder): + str(ws_dir / self.settings.GetReportFile()), + reason_setman) + +- # Set shell env +- shell_environment.GetEnvironment().set_shell_var( +- f"{toolchain_tag}_AARCH64_PREFIX", +- self.settings.GetCrossCompilerPrefix()) +- shell_environment.GetEnvironment().set_shell_var( +- f"DTCPP_PREFIX", +- self.settings.GetCrossCompilerPrefix()) + # - Needed by build.py. + confdir_path = ws_dir / self.settings.GetConfDirName() + shell_environment.GetEnvironment().set_shell_var( diff --git a/sourceinfo/debs-update.py b/sourceinfo/debs-update.py index e5d162fb..a54e223f 100755 --- a/sourceinfo/debs-update.py +++ b/sourceinfo/debs-update.py @@ -11,7 +11,7 @@ BASE_URL = 'https://repo.download.nvidia.com/jetson' REPOS = ['t234', 'common'] -VERSION = 'r35.6' +VERSION = 'r36.4' def fetch_debs(url): fd = urllib.request.urlopen(url) diff --git a/sourceinfo/default.nix b/sourceinfo/default.nix index e15afc78..91464aa2 100644 --- a/sourceinfo/default.nix +++ b/sourceinfo/default.nix @@ -15,6 +15,7 @@ let gitRepos = lib.mapAttrs (relpath: info: fetchgit { inherit (info) url rev hash; + name = relpath; }) gitJSON; in diff --git a/sourceinfo/gitrepos-update.py b/sourceinfo/gitrepos-update.py index 6b5fa27d..d21fef3d 100755 --- a/sourceinfo/gitrepos-update.py +++ b/sourceinfo/gitrepos-update.py @@ -9,7 +9,7 @@ import sys import os -VERSION = '35.6.1' +VERSION = '36.4.3' TAG = 'jetson_' + VERSION FILENAME = 'r' + VERSION + '-gitrepos.json' diff --git a/sourceinfo/r36.4-debs.json b/sourceinfo/r36.4-debs.json new file mode 100644 index 00000000..20b856dc --- /dev/null +++ b/sourceinfo/r36.4-debs.json @@ -0,0 +1,1050 @@ +{ + "common": { + "cuda-cccl-12-6": { + "filename": "pool/main/c/cuda-cccl/cuda-cccl-12-6_12.6.37-1_arm64.deb", + "sha256": "0518e4f42f59d8fcc9081c331cce28b87494f2d66ae3d88a6bec35aa4fdb89d1", + "source": "cuda-cccl", + "version": "12.6.37-1" + }, + "cuda-command-line-tools-12-6": { + "filename": "pool/main/c/cuda-command-line-tools-12-6/cuda-command-line-tools-12-6_12.6.11-1_arm64.deb", + "sha256": "738965465725ee43de9ddec990f8da83dbacc820d6226844b8aaa1930a98daab", + "version": "12.6.11-1" + }, + "cuda-compat-12-6": { + "filename": "pool/main/c/cuda-compat/cuda-compat-12-6_12.6.36890662-1_arm64.deb", + "sha256": "a5bc64122f78abd2e87cf4282803e40ccef3aae4362d1b8ae87914e2970adc4b", + "source": "cuda-compat", + "version": "12.6.36890662-1" + }, + "cuda-compiler-12-6": { + "filename": "pool/main/c/cuda-compiler-12-6/cuda-compiler-12-6_12.6.11-1_arm64.deb", + "sha256": "4fd98aa6971aa57b314475c0acc508ac6e38e1ea3a66288a381d21767594f89a", + "version": "12.6.11-1" + }, + "cuda-crt-12-6": { + "filename": "pool/main/c/cuda-nvcc/cuda-crt-12-6_12.6.68-1_arm64.deb", + "sha256": "b95d26f0e63f113e6e2f5b8578841644de549293679d65c70e112164d2080311", + "source": "cuda-nvcc", + "version": "12.6.68-1" + }, + "cuda-cudart-12-6": { + "filename": "pool/main/c/cuda-cudart/cuda-cudart-12-6_12.6.68-1_arm64.deb", + "sha256": "54456ed3372670d6a6d7e19d5971ec234800fe620dfb822aa751bc7d80f2a516", + "source": "cuda-cudart", + "version": "12.6.68-1" + }, + "cuda-cudart-dev-12-6": { + "filename": "pool/main/c/cuda-cudart/cuda-cudart-dev-12-6_12.6.68-1_arm64.deb", + "sha256": "2ddcaeec93f2c508533f52bea7ad3f339d223d8724537e4695cf14a034b65193", + "source": "cuda-cudart", + "version": "12.6.68-1" + }, + "cuda-cuobjdump-12-6": { + "filename": "pool/main/c/cuda-cuobjdump/cuda-cuobjdump-12-6_12.6.68-1_arm64.deb", + "sha256": "906f876946be37bd67bad65b2a01aad5b1f63e85a1547f13d19c547a8e8ebc10", + "source": "cuda-cuobjdump", + "version": "12.6.68-1" + }, + "cuda-cupti-12-6": { + "filename": "pool/main/c/cuda-cupti/cuda-cupti-12-6_12.6.68-1_arm64.deb", + "sha256": "4458ad07170a0a7f8a8d5864dfa0936bac767d7878a3cd753c3cf50dc1ff631a", + "source": "cuda-cupti", + "version": "12.6.68-1" + }, + "cuda-cupti-dev-12-6": { + "filename": "pool/main/c/cuda-cupti/cuda-cupti-dev-12-6_12.6.68-1_arm64.deb", + "sha256": "aa44c4e149b4ee239a09c03c1fe3617b73157716d6820e2345b8244a3a8fb0d5", + "source": "cuda-cupti", + "version": "12.6.68-1" + }, + "cuda-cuxxfilt-12-6": { + "filename": "pool/main/c/cuda-cuxxfilt/cuda-cuxxfilt-12-6_12.6.68-1_arm64.deb", + "sha256": "abdb3b1f96722e9115a699ae02b795b7d67e127fe879612cbfb65ed86ebd6605", + "source": "cuda-cuxxfilt", + "version": "12.6.68-1" + }, + "cuda-documentation-12-6": { + "filename": "pool/main/c/cuda-documentation/cuda-documentation-12-6_12.6.68-1_arm64.deb", + "sha256": "fa976b3f74f2fbfe0653ad1796d70fc0910950cca6c4b1eae758ddc26c33551e", + "source": "cuda-documentation", + "version": "12.6.68-1" + }, + "cuda-driver-dev-12-6": { + "filename": "pool/main/c/cuda-cudart/cuda-driver-dev-12-6_12.6.68-1_arm64.deb", + "sha256": "0c453507da39a28ca214723c8980c5a4832d8ea3e8f28dfd8ac83a1b2055dda1", + "source": "cuda-cudart", + "version": "12.6.68-1" + }, + "cuda-gdb-12-6": { + "filename": "pool/main/c/cuda-gdb/cuda-gdb-12-6_12.6.68-1_arm64.deb", + "sha256": "db4c0ab18446e05a62c8f001c26327cc76d7988edc850ad1bff0661792d3afe5", + "source": "cuda-gdb", + "version": "12.6.68-1" + }, + "cuda-gdb-src-12-6": { + "filename": "pool/main/c/cuda-gdb/cuda-gdb-src-12-6_12.6.68-1_arm64.deb", + "sha256": "f9f85aaa70c407e8ce25870b88c1a0107451768b40592dd0fb977a5fd117b60f", + "source": "cuda-gdb", + "version": "12.6.68-1" + }, + "cuda-minimal-build-12-6": { + "filename": "pool/main/c/cuda-minimal-build-12-6/cuda-minimal-build-12-6_12.6.11-1_arm64.deb", + "sha256": "9f844ea82e4058b4db229f2c219f1203ac7f457e938547b3d1b156c6142487ad", + "version": "12.6.11-1" + }, + "cuda-nsight-compute-12-6": { + "filename": "pool/main/c/cuda-nsight-compute-12-6/cuda-nsight-compute-12-6_12.6.11-1_arm64.deb", + "sha256": "f165e703e5efc02c94dcda47814458cb118f6655bb7bbc1e550a11784432384c", + "version": "12.6.11-1" + }, + "cuda-nvcc-12-6": { + "filename": "pool/main/c/cuda-nvcc/cuda-nvcc-12-6_12.6.68-1_arm64.deb", + "sha256": "89dbfa6e7f791221f9886de6a32871be825d0001f6c4ac5a8c12229fda39c598", + "source": "cuda-nvcc", + "version": "12.6.68-1" + }, + "cuda-nvdisasm-12-6": { + "filename": "pool/main/c/cuda-nvdisasm/cuda-nvdisasm-12-6_12.6.68-1_arm64.deb", + "sha256": "973580bee9d6bf01ccfe1d2bc8a03437384c0fbf68af785390aa513062dc34b7", + "source": "cuda-nvdisasm", + "version": "12.6.68-1" + }, + "cuda-nvml-dev-12-6": { + "filename": "pool/main/c/cuda-nvml-dev/cuda-nvml-dev-12-6_12.6.68-1_arm64.deb", + "sha256": "2a1050aff1a8297dc1bab6cdce2c35daf47eb6e77412d544b35e809e75f2746b", + "source": "cuda-nvml-dev", + "version": "12.6.68-1" + }, + "cuda-nvprune-12-6": { + "filename": "pool/main/c/cuda-nvprune/cuda-nvprune-12-6_12.6.68-1_arm64.deb", + "sha256": "fe39e03cf8ef59ca1dc5cc88f08c1e615776b0f9a574a770f85863bc6f34a68e", + "source": "cuda-nvprune", + "version": "12.6.68-1" + }, + "cuda-nvrtc-12-6": { + "filename": "pool/main/c/cuda-nvrtc/cuda-nvrtc-12-6_12.6.68-1_arm64.deb", + "sha256": "b8189ac22bb781b1dcccc61a902fb623238cd4e65cf456dcd95f8f319eb346be", + "source": "cuda-nvrtc", + "version": "12.6.68-1" + }, + "cuda-nvrtc-dev-12-6": { + "filename": "pool/main/c/cuda-nvrtc/cuda-nvrtc-dev-12-6_12.6.68-1_arm64.deb", + "sha256": "a0a1596466507b8fb5fa0bfad848ec7c601c927d5f51db72a78135979e5c5423", + "source": "cuda-nvrtc", + "version": "12.6.68-1" + }, + "cuda-nvtx-12-6": { + "filename": "pool/main/c/cuda-nvtx/cuda-nvtx-12-6_12.6.68-1_arm64.deb", + "sha256": "99e06f439b736f8f1a44b7f11326e4eacd8fc1c78258a9ab8b9c2aed7612ca5f", + "source": "cuda-nvtx", + "version": "12.6.68-1" + }, + "cuda-nvvm-12-6": { + "filename": "pool/main/c/cuda-nvcc/cuda-nvvm-12-6_12.6.68-1_arm64.deb", + "sha256": "32ba801d719a593cb35abd4aeb93c672c0a02d47539455b5780c6004f03462cd", + "source": "cuda-nvcc", + "version": "12.6.68-1" + }, + "cuda-profiler-api-12-6": { + "filename": "pool/main/c/cuda-profiler-api/cuda-profiler-api-12-6_12.6.68-1_arm64.deb", + "sha256": "4e695d6e559f453c3e637e594d98c7b8b605a6816920ec0e5f501eda7e32818f", + "source": "cuda-profiler-api", + "version": "12.6.68-1" + }, + "cuda-sanitizer-12-6": { + "filename": "pool/main/c/cuda-sanitizer-api/cuda-sanitizer-12-6_12.6.68-1_arm64.deb", + "sha256": "9003f6266f6169b3c52eb2d5fa7f9114bc98048de9bd8a55f2574d41ebd3bed6", + "source": "cuda-sanitizer-api", + "version": "12.6.68-1" + }, + "cuda-toolkit-12-6-config-common": { + "filename": "pool/main/c/cuda-cudart/cuda-toolkit-12-6-config-common_12.6.68-1_all.deb", + "sha256": "4b3030e33bb2d58010d66ad1380987556906260c1438a47f088be5116b27925b", + "source": "cuda-cudart", + "version": "12.6.68-1" + }, + "cuda-toolkit-12-config-common": { + "filename": "pool/main/c/cuda-cudart/cuda-toolkit-12-config-common_12.6.68-1_all.deb", + "sha256": "b24be39e9f8baa8a44e8a3d787f45f577e50f9de6af5e0b6c3b09a7b7e2edbcc", + "source": "cuda-cudart", + "version": "12.6.68-1" + }, + "cuda-toolkit-config-common": { + "filename": "pool/main/c/cuda-cudart/cuda-toolkit-config-common_12.6.68-1_all.deb", + "sha256": "91b3cfe61d903a401c8ac043712c427042e3829ff2602f3aa594c1a2f25e48e8", + "source": "cuda-cudart", + "version": "12.6.68-1" + }, + "cuda-visual-tools-12-6": { + "filename": "pool/main/c/cuda-visual-tools-12-6/cuda-visual-tools-12-6_12.6.11-1_arm64.deb", + "sha256": "683819036194b788504e3744cbc474ae00b9b7690efbe05c916f20619afadca2", + "version": "12.6.11-1" + }, + "cudnn": { + "filename": "pool/main/c/cudnn/cudnn_9.3.0-1_arm64.deb", + "sha256": "f8a00d1db6857b6111a363338d8b6af7633c48afddda2dcae7feddc9466ff9c3", + "version": "9.3.0-1" + }, + "cudnn9": { + "filename": "pool/main/c/cudnn9/cudnn9_9.3.0-1_arm64.deb", + "sha256": "369ffe743aa3944221e1a7ddd643db5e797134383112a8171401bf1638f17c1f", + "version": "9.3.0-1" + }, + "cudnn9-cuda-12": { + "filename": "pool/main/c/cudnn/cudnn9-cuda-12_9.3.0.75-1_arm64.deb", + "sha256": "74e53ba6529de035acde125fc3c3ff511697f0e31a4e0fde5518f61986715aaa", + "source": "cudnn", + "version": "9.3.0.75-1" + }, + "cudnn9-cuda-12-6": { + "filename": "pool/main/c/cudnn/cudnn9-cuda-12-6_9.3.0.75-1_arm64.deb", + "sha256": "1af20b49dd7357d22b41ab8e8e20ce8cf0aeea76b81fe9516eeafa7ef673eb2c", + "source": "cudnn", + "version": "9.3.0.75-1" + }, + "cupva-2.5-l4t": { + "filename": "pool/main/c/cupva-2.5-l4t/cupva-2.5-l4t_2.5.3_arm64.deb", + "sha256": "c3729a78a6a03ce97ae988d808f8c1b6f36f1637b6662a22a8f0d5d37f334aca", + "version": "2.5.3" + }, + "deepstream-7.1": { + "filename": "pool/main/d/deepstream-7.1/deepstream-7.1_7.1.0-1_arm64.deb", + "sha256": "8cc657e4784108c1a17da9bb8fbf736bc2ae4017065bb493486548c274465ca4", + "version": "7.1.0-1" + }, + "gds-tools-12-6": { + "filename": "pool/main/libc/libcufile/gds-tools-12-6_1.11.1.6-1_arm64.deb", + "sha256": "539b7576f57ab08e24000529222c658d91f544999f3263ba9a5a47dd13ea620b", + "source": "libcufile", + "version": "1.11.1.6-1" + }, + "holoscan": { + "filename": "pool/main/h/holoscan/holoscan_3.1.0.3-1_arm64.deb", + "sha256": "92391427eaada1bfc62a390e2372b4a34136a2d99900a294091f896d0831e99e", + "version": "3.1.0.3-1" + }, + "libcublas-12-6": { + "filename": "pool/main/libc/libcublas/libcublas-12-6_12.6.1.4-1_arm64.deb", + "sha256": "3ff5d9c20e8cf1b8fd36841271846f2d2de23aaca9bf2e9213d5dac8e6488693", + "source": "libcublas", + "version": "12.6.1.4-1" + }, + "libcublas-dev-12-6": { + "filename": "pool/main/libc/libcublas/libcublas-dev-12-6_12.6.1.4-1_arm64.deb", + "sha256": "8125eeb5502d569a19f8bf8c54fd455c2a4a722f3c571e02bfe8c6bdd3d6e800", + "source": "libcublas", + "version": "12.6.1.4-1" + }, + "libcudla-12-6": { + "filename": "pool/main/libc/libcudla/libcudla-12-6_12.6.68-1_arm64.deb", + "sha256": "bc14ff94b6211e7536b54faa6a7f38bb67a919671869c22d13b2bcae2146887c", + "source": "libcudla", + "version": "12.6.68-1" + }, + "libcudla-dev-12-6": { + "filename": "pool/main/libc/libcudla/libcudla-dev-12-6_12.6.68-1_arm64.deb", + "sha256": "1327073641f9ba48603338c271095940ca685997e22eda0583202733ad0800ba", + "source": "libcudla", + "version": "12.6.68-1" + }, + "libcudnn9-cuda-12": { + "filename": "pool/main/c/cudnn/libcudnn9-cuda-12_9.3.0.75-1_arm64.deb", + "sha256": "0f3a869f4b9f5c20912acfb043c911f210304a554de27c71346638ac73c96377", + "source": "cudnn", + "version": "9.3.0.75-1" + }, + "libcudnn9-dev-cuda-12": { + "filename": "pool/main/c/cudnn/libcudnn9-dev-cuda-12_9.3.0.75-1_arm64.deb", + "sha256": "749c910beca1b32216a0dbb2705aac261c3180437eb69922cb70932c2315ceff", + "source": "cudnn", + "version": "9.3.0.75-1" + }, + "libcudnn9-samples": { + "filename": "pool/main/c/cudnn-samples/libcudnn9-samples_9.3.0.75-1_all.deb", + "sha256": "d823a34d283bc12416e1a3606be83f50ee75d6ad59ae206a4ed037f60c79e215", + "source": "cudnn-samples", + "version": "9.3.0.75-1" + }, + "libcudnn9-static-cuda-12": { + "filename": "pool/main/c/cudnn/libcudnn9-static-cuda-12_9.3.0.75-1_arm64.deb", + "sha256": "8f951856fedc3b890b56109917e2877413c5c49a2d2cb81a4dd4d30269d2d565", + "source": "cudnn", + "version": "9.3.0.75-1" + }, + "libcufft-12-6": { + "filename": "pool/main/libc/libcufft/libcufft-12-6_11.2.6.59-1_arm64.deb", + "sha256": "68c95fdae59bde441a6ea9fc7d94eebb064f50e41fc51c4aeb4175cf098705e7", + "source": "libcufft", + "version": "11.2.6.59-1" + }, + "libcufft-dev-12-6": { + "filename": "pool/main/libc/libcufft/libcufft-dev-12-6_11.2.6.59-1_arm64.deb", + "sha256": "e4322f0712961be4b4bba58015e28dde0c30224cad27561cc73d4756463531f4", + "source": "libcufft", + "version": "11.2.6.59-1" + }, + "libcufile-12-6": { + "filename": "pool/main/libc/libcufile/libcufile-12-6_1.11.1.6-1_arm64.deb", + "sha256": "d48aadaf52731f2e058a976581e55f0ad18a24dafb020a1324a8c7a293cba5ef", + "source": "libcufile", + "version": "1.11.1.6-1" + }, + "libcufile-dev-12-6": { + "filename": "pool/main/libc/libcufile/libcufile-dev-12-6_1.11.1.6-1_arm64.deb", + "sha256": "a8e59753cab9e361454df3d4408b589e36659fe074ddb249ba6f36a2bfbeeaf7", + "source": "libcufile", + "version": "1.11.1.6-1" + }, + "libcurand-12-6": { + "filename": "pool/main/libc/libcurand/libcurand-12-6_10.3.7.68-1_arm64.deb", + "sha256": "7b8e1c2ce01db9539e92439859b3fb72ca95ff9da4424c9b8cd711934e7c7265", + "source": "libcurand", + "version": "10.3.7.68-1" + }, + "libcurand-dev-12-6": { + "filename": "pool/main/libc/libcurand/libcurand-dev-12-6_10.3.7.68-1_arm64.deb", + "sha256": "cee52e65f17de85e798130a7a201e3eb8cc127586f636aac6f145db91a00fb9d", + "source": "libcurand", + "version": "10.3.7.68-1" + }, + "libcusolver-12-6": { + "filename": "pool/main/libc/libcusolver/libcusolver-12-6_11.6.4.69-1_arm64.deb", + "sha256": "c4301dc5e91369e3eefd326f4552febdf7daceb232712c72b8094f8b92809fdd", + "source": "libcusolver", + "version": "11.6.4.69-1" + }, + "libcusolver-dev-12-6": { + "filename": "pool/main/libc/libcusolver/libcusolver-dev-12-6_11.6.4.69-1_arm64.deb", + "sha256": "e58aca1de60ae405e597e1b4c748372c230416b53067afbc4841dc4d80530fd2", + "source": "libcusolver", + "version": "11.6.4.69-1" + }, + "libcusparse-12-6": { + "filename": "pool/main/libc/libcusparse/libcusparse-12-6_12.5.3.3-1_arm64.deb", + "sha256": "c665700c6aae6a4aace16a7b1ff833fd73850a6fdafb41ed04f2e328a2769b9b", + "source": "libcusparse", + "version": "12.5.3.3-1" + }, + "libcusparse-dev-12-6": { + "filename": "pool/main/libc/libcusparse/libcusparse-dev-12-6_12.5.3.3-1_arm64.deb", + "sha256": "e7f4a85c4fcd99c236be4c336db1a6f985168a98bd8f1e94609e8db9232560cc", + "source": "libcusparse", + "version": "12.5.3.3-1" + }, + "libnpp-12-6": { + "filename": "pool/main/libn/libnpp/libnpp-12-6_12.3.1.54-1_arm64.deb", + "sha256": "65284b80a1fdbfe7fe3ee4e53720a71e4496df37b4702b5a2559f4bc15614b0f", + "source": "libnpp", + "version": "12.3.1.54-1" + }, + "libnpp-dev-12-6": { + "filename": "pool/main/libn/libnpp/libnpp-dev-12-6_12.3.1.54-1_arm64.deb", + "sha256": "7ca13092a34005bda3b82a8e61a156dee2b0c04c729d265501a1d2827783a258", + "source": "libnpp", + "version": "12.3.1.54-1" + }, + "libnvfatbin-12-6": { + "filename": "pool/main/libn/libnvfatbin/libnvfatbin-12-6_12.6.68-1_arm64.deb", + "sha256": "2dd434eafdb320bcc59465abb1eafa951fdd57ddd00afc4b1b5f1e2082d12330", + "source": "libnvfatbin", + "version": "12.6.68-1" + }, + "libnvfatbin-dev-12-6": { + "filename": "pool/main/libn/libnvfatbin/libnvfatbin-dev-12-6_12.6.68-1_arm64.deb", + "sha256": "925e2735799bfdcd3c36e2b4005d013fd0bffe4113d7f3142f1a624a5c31d8e1", + "source": "libnvfatbin", + "version": "12.6.68-1" + }, + "libnvidia-container-tools": { + "filename": "pool/main/libn/libnvidia-container/libnvidia-container-tools_1.16.2-1_arm64.deb", + "sha256": "0b990ba7af550022cbf9ac95cc72fe988b2116147835f9ac56cf6b605cae1b36", + "source": "libnvidia-container", + "version": "1.16.2-1" + }, + "libnvidia-container1": { + "filename": "pool/main/libn/libnvidia-container/libnvidia-container1_1.16.2-1_arm64.deb", + "sha256": "69e47c18ee26640af03d3f2d64380707995e27bc0abaad9b3c12e4c8751ec2c7", + "source": "libnvidia-container", + "version": "1.16.2-1" + }, + "libnvinfer-bin": { + "filename": "pool/main/t/tensorrt/libnvinfer-bin_10.3.0.30-1+cuda12.5_arm64.deb", + "sha256": "98494de17fc6596475141fa342ab34ce05f6c19d34769cf686628e16398484b7", + "source": "tensorrt", + "version": "10.3.0.30-1+cuda12.5" + }, + "libnvinfer-dev": { + "filename": "pool/main/t/tensorrt/libnvinfer-dev_10.3.0.30-1+cuda12.5_arm64.deb", + "sha256": "b24b0c9d09fda80b2b9d4fdee6f02deb513e3f876f94e4119caa538a68964e15", + "source": "tensorrt", + "version": "10.3.0.30-1+cuda12.5" + }, + "libnvinfer-dispatch-dev": { + "filename": "pool/main/t/tensorrt/libnvinfer-dispatch-dev_10.3.0.30-1+cuda12.5_arm64.deb", + "sha256": "a87c324e438bcc669c86c7e959ba9fb6827cd0d3122a1d730b2224f7ca82c91a", + "source": "tensorrt", + "version": "10.3.0.30-1+cuda12.5" + }, + "libnvinfer-dispatch10": { + "filename": "pool/main/t/tensorrt/libnvinfer-dispatch10_10.3.0.30-1+cuda12.5_arm64.deb", + "sha256": "0a39d0e37017d677ee05e122ae3bad500e7d819c4c11ea3c92197dcc62e322bc", + "source": "tensorrt", + "version": "10.3.0.30-1+cuda12.5" + }, + "libnvinfer-headers-dev": { + "filename": "pool/main/t/tensorrt/libnvinfer-headers-dev_10.3.0.30-1+cuda12.5_arm64.deb", + "sha256": "40a4fa566218f71176144a0eafa5aef8cf0af7ee9211b20487f1970d5344bbb8", + "source": "tensorrt", + "version": "10.3.0.30-1+cuda12.5" + }, + "libnvinfer-headers-plugin-dev": { + "filename": "pool/main/t/tensorrt/libnvinfer-headers-plugin-dev_10.3.0.30-1+cuda12.5_arm64.deb", + "sha256": "ce43de06fdcaa65bb11378df10973bf726aa1c83f0ee53709d53b5b8c5a2d09f", + "source": "tensorrt", + "version": "10.3.0.30-1+cuda12.5" + }, + "libnvinfer-lean-dev": { + "filename": "pool/main/t/tensorrt/libnvinfer-lean-dev_10.3.0.30-1+cuda12.5_arm64.deb", + "sha256": "3c8bba2c5a5fdac9e57ac13490ca42eb79ae9caf8ca1a07bd94a9f7ed10d370b", + "source": "tensorrt", + "version": "10.3.0.30-1+cuda12.5" + }, + "libnvinfer-lean10": { + "filename": "pool/main/t/tensorrt/libnvinfer-lean10_10.3.0.30-1+cuda12.5_arm64.deb", + "sha256": "27e2d97fd79f1a0a6f864d6a2ec234be72c173f48dbfa8788b38e89df49261de", + "source": "tensorrt", + "version": "10.3.0.30-1+cuda12.5" + }, + "libnvinfer-plugin-dev": { + "filename": "pool/main/t/tensorrt/libnvinfer-plugin-dev_10.3.0.30-1+cuda12.5_arm64.deb", + "sha256": "d61e98f8f477143a5a211bc01b3f240875700af591cc117b77af44f18433a941", + "source": "tensorrt", + "version": "10.3.0.30-1+cuda12.5" + }, + "libnvinfer-plugin10": { + "filename": "pool/main/t/tensorrt/libnvinfer-plugin10_10.3.0.30-1+cuda12.5_arm64.deb", + "sha256": "709a8b3111e4d5966abaa806de3282c59586e175f3db9898f3f2a3bf93a5886b", + "source": "tensorrt", + "version": "10.3.0.30-1+cuda12.5" + }, + "libnvinfer-samples": { + "filename": "pool/main/t/tensorrt/libnvinfer-samples_10.3.0.30-1+cuda12.5_all.deb", + "sha256": "57a3633cf1242a157138395da3e57ead9bcf1fc15c5653ad5422b1bd7a80aae0", + "source": "tensorrt", + "version": "10.3.0.30-1+cuda12.5" + }, + "libnvinfer-vc-plugin-dev": { + "filename": "pool/main/t/tensorrt/libnvinfer-vc-plugin-dev_10.3.0.30-1+cuda12.5_arm64.deb", + "sha256": "86bc05dc389a94146c698e175505c7ca6b45d54d87f08865caf39fa92d0771c9", + "source": "tensorrt", + "version": "10.3.0.30-1+cuda12.5" + }, + "libnvinfer-vc-plugin10": { + "filename": "pool/main/t/tensorrt/libnvinfer-vc-plugin10_10.3.0.30-1+cuda12.5_arm64.deb", + "sha256": "318238a61b8a434ed54d148c05b31bebca0ad072657721a596190177fc1306d5", + "source": "tensorrt", + "version": "10.3.0.30-1+cuda12.5" + }, + "libnvinfer10": { + "filename": "pool/main/t/tensorrt/libnvinfer10_10.3.0.30-1+cuda12.5_arm64.deb", + "sha256": "fabaad3ac8a50cf25da83a25938844808be4a3a43c2e76ea0b70b9cd2c6234bc", + "source": "tensorrt", + "version": "10.3.0.30-1+cuda12.5" + }, + "libnvjitlink-12-6": { + "filename": "pool/main/libn/libnvjitlink/libnvjitlink-12-6_12.6.68-1_arm64.deb", + "sha256": "98c811d3fa81a1e55cc6c4fe3dc4fa0cb3b10a26b7ed23341418333b65b832a0", + "source": "libnvjitlink", + "version": "12.6.68-1" + }, + "libnvjitlink-dev-12-6": { + "filename": "pool/main/libn/libnvjitlink/libnvjitlink-dev-12-6_12.6.68-1_arm64.deb", + "sha256": "c97e77cef8833c13207ddaed119201434b643267be7c08f7e7f735467f7ec15b", + "source": "libnvjitlink", + "version": "12.6.68-1" + }, + "libnvjpeg-12-6": { + "filename": "pool/main/libn/libnvjpeg/libnvjpeg-12-6_12.3.3.54-1_arm64.deb", + "sha256": "0658635943cb77024c03990a9df0fd2543e4352377dff7b5a8654a87c4a54387", + "source": "libnvjpeg", + "version": "12.3.3.54-1" + }, + "libnvjpeg-dev-12-6": { + "filename": "pool/main/libn/libnvjpeg/libnvjpeg-dev-12-6_12.3.3.54-1_arm64.deb", + "sha256": "6414bacf8dcd7da1256a5251c32d1fa22d56c378dabc337d1a56d90eba631502", + "source": "libnvjpeg", + "version": "12.3.3.54-1" + }, + "libnvonnxparsers-dev": { + "filename": "pool/main/t/tensorrt/libnvonnxparsers-dev_10.3.0.30-1+cuda12.5_arm64.deb", + "sha256": "8a6675f3d444dead0e0430fb4e7e6b546af9d9a72414ee8964b18edf1fb28756", + "source": "tensorrt", + "version": "10.3.0.30-1+cuda12.5" + }, + "libnvonnxparsers10": { + "filename": "pool/main/t/tensorrt/libnvonnxparsers10_10.3.0.30-1+cuda12.5_arm64.deb", + "sha256": "042e21f28a271934d3c497504b41533e25f044893474e7567e3042e803384950", + "source": "tensorrt", + "version": "10.3.0.30-1+cuda12.5" + }, + "libnvvpi3": { + "filename": "pool/main/libn/libnvvpi3/libnvvpi3_3.2.4_arm64.deb", + "sha256": "5589eac155bba4a2f881963bb4e3c4cd06c7fc0fa12cb6d73196dca496daab1b", + "version": "3.2.4" + }, + "libopencv": { + "filename": "pool/main/libo/libopencv/libopencv_4.8.0-1-g6371ee1_arm64.deb", + "sha256": "a43ac2a2f1fa7579fe526314bf04692ed6eca05ceb49447486e3ed46c3c85b67", + "version": "4.8.0-1-g6371ee1" + }, + "libopencv-dev": { + "filename": "pool/main/libo/libopencv-dev/libopencv-dev_4.8.0-1-g6371ee1_arm64.deb", + "sha256": "09ad91e63b38fa432fb77b7a34ea956e4ac6c9a7d7ae00ad3a74591604ac1385", + "version": "4.8.0-1-g6371ee1" + }, + "libopencv-python": { + "filename": "pool/main/libo/libopencv-python/libopencv-python_4.8.0-1-g6371ee1_arm64.deb", + "sha256": "739463b0755bc29deac458ad01948700d0e6680788a22eeda919bc44b3b43406", + "version": "4.8.0-1-g6371ee1" + }, + "libopencv-samples": { + "filename": "pool/main/libo/libopencv-samples/libopencv-samples_4.8.0-1-g6371ee1_arm64.deb", + "sha256": "0dd890d6a410f1c7a3ca550c56685d8c4d26e6289827b314830141d49f7a4c08", + "version": "4.8.0-1-g6371ee1" + }, + "nsight-compute-2024.3.1": { + "filename": "pool/main/n/nsight-compute/nsight-compute-2024.3.1_2024.3.1.2-1_arm64.deb", + "sha256": "3907dce2827a6237648041d07968a75574e92b6cc9419ffacc44f41bf8c6cf47", + "source": "nsight-compute", + "version": "2024.3.1.2-1" + }, + "nsight-graphics-for-embeddedlinux-2024.2.0.0": { + "filename": "pool/main/n/nsight-graphics-for-embeddedlinux-2024.2.0.0/nsight-graphics-for-embeddedlinux-2024.2.0.0_2024.2.0.0_arm64.deb", + "sha256": "90ec132d56a3852a619693765e7473a34e007fdcb16d594cf99147083a972b17", + "version": "2024.2.0.0" + }, + "nsight-systems-2024.5.4": { + "filename": "pool/main/n/nsight-systems-2024.5.4/nsight-systems-2024.5.4_2024.5.4.34-245434855735v0_arm64.deb", + "sha256": "404b1d921366d94f60a027298523e295c5484ee6f6e3b8a27da304ad4fd92bad", + "version": "2024.5.4.34-245434855735v0" + }, + "nvidia-container": { + "filename": "pool/main/n/nvidia-container/nvidia-container_6.2+b77_arm64.deb", + "sha256": "98fecb14ed28fbb996bef93417448f476bdfb23ba408a2e4a0f46b7506a2cc3f", + "source": "nvidia-container (6.2)", + "version": "6.2+b77" + }, + "nvidia-container-toolkit": { + "filename": "pool/main/n/nvidia-container-toolkit/nvidia-container-toolkit_1.16.2-1_arm64.deb", + "sha256": "6bfca25bc5ea329fcc76897cef85371a85c50f714849666313332085069e8bb3", + "version": "1.16.2-1" + }, + "nvidia-container-toolkit-base": { + "filename": "pool/main/n/nvidia-container-toolkit/nvidia-container-toolkit-base_1.16.2-1_arm64.deb", + "sha256": "9f4db184a9ee96527e90d073ca32ab8baf199904066a90f49f01c6425f9ea79b", + "source": "nvidia-container-toolkit", + "version": "1.16.2-1" + }, + "nvidia-cuda": { + "filename": "pool/main/n/nvidia-cuda/nvidia-cuda_6.2+b77_arm64.deb", + "sha256": "dd5d3988f90c98bd2c7245e861543b30ced32cbb6c5699b80277ef000e1e961f", + "source": "nvidia-cuda (6.2)", + "version": "6.2+b77" + }, + "nvidia-cuda-dev": { + "filename": "pool/main/n/nvidia-cuda-dev/nvidia-cuda-dev_6.2+b77_arm64.deb", + "sha256": "a6ae7674c7023bef23d6667e19e4a506aa437747ee84f3dfad4a46483c4d07a5", + "source": "nvidia-cuda-dev (6.2)", + "version": "6.2+b77" + }, + "nvidia-cudnn": { + "filename": "pool/main/n/nvidia-cudnn/nvidia-cudnn_6.2+b77_arm64.deb", + "sha256": "e601adc982347f47d101800733eb912fafe0bad9bb6a3fb1942029cdc90cb34b", + "source": "nvidia-cudnn (6.2)", + "version": "6.2+b77" + }, + "nvidia-cudnn-dev": { + "filename": "pool/main/n/nvidia-cudnn-dev/nvidia-cudnn-dev_6.2+b77_arm64.deb", + "sha256": "9c7bb98e9abbee27af604034e4f59714ba473b2117a29cc54897a172c0698002", + "source": "nvidia-cudnn-dev (6.2)", + "version": "6.2+b77" + }, + "nvidia-cudnn9": { + "filename": "pool/main/n/nvidia-cudnn9/nvidia-cudnn9_6.1+b123_arm64.deb", + "sha256": "7685bd77097d574f0859c6728d7723755afc632fbcb6a67e2792961deca258c8", + "source": "nvidia-cudnn9 (6.1)", + "version": "6.1+b123" + }, + "nvidia-cudnn9-dev": { + "filename": "pool/main/n/nvidia-cudnn9-dev/nvidia-cudnn9-dev_6.1+b123_arm64.deb", + "sha256": "c45f5804e2457cb9b9166be0423431616d31754e1ef6a6a4bf5c7f11ad0af265", + "source": "nvidia-cudnn9-dev (6.1)", + "version": "6.1+b123" + }, + "nvidia-cupva": { + "filename": "pool/main/n/nvidia-cupva/nvidia-cupva_6.2+b77_arm64.deb", + "sha256": "8fa7efda033485080fb48f9013ff8c3ac2dd19f5d11d29bc206ac95eea28a699", + "source": "nvidia-cupva (6.2)", + "version": "6.2+b77" + }, + "nvidia-fs": { + "filename": "pool/main/n/nvidia-fs/nvidia-fs_2.22.3-1_arm64.deb", + "sha256": "c419c5c83dfaf152c98e1d5ba932adf5d022ce9d5505392bc59c66f7f1a83795", + "version": "2.22.3-1" + }, + "nvidia-fs-dkms": { + "filename": "pool/main/n/nvidia-fs/nvidia-fs-dkms_2.22.3-1_arm64.deb", + "sha256": "e8d20736c14058cb96045b50723130d0429c0e7f606bdcf44e0bced3aff2dd52", + "source": "nvidia-fs", + "version": "2.22.3-1" + }, + "nvidia-jetpack": { + "filename": "pool/main/n/nvidia-jetpack/nvidia-jetpack_6.2+b77_arm64.deb", + "sha256": "70553d4b5a802057f9436677ef8ce255db386fd3b5d24ff2c0a8ec0e485c59cd", + "source": "nvidia-jetpack (6.2)", + "version": "6.2+b77" + }, + "nvidia-jetpack-dev": { + "filename": "pool/main/n/nvidia-jetpack-dev/nvidia-jetpack-dev_6.2+b77_arm64.deb", + "sha256": "12404f223cb9b89a46a0dd3bf356a97f99146c4f1b3a596ae5add6f6b319168c", + "source": "nvidia-jetpack-dev (6.2)", + "version": "6.2+b77" + }, + "nvidia-jetpack-runtime": { + "filename": "pool/main/n/nvidia-jetpack-runtime/nvidia-jetpack-runtime_6.2+b77_arm64.deb", + "sha256": "77925ca1dd17d63bd690e512338bb65d7ae23847c12f1f1517116c3709acbecf", + "source": "nvidia-jetpack-runtime (6.2)", + "version": "6.2+b77" + }, + "nvidia-jetson-services": { + "filename": "pool/main/n/nvidia-jetson-services/nvidia-jetson-services_2.0.0_arm64.deb", + "sha256": "a38fb40c62e58f6831673602a44df73ad2da14937d0bd7fc80e6536bddd731eb", + "version": "2.0.0" + }, + "nvidia-l4t-cudadebuggingsupport": { + "filename": "pool/main/n/nvidia-l4t-cudadebuggingsupport/nvidia-l4t-cudadebuggingsupport_12.6-34622040.0_arm64.deb", + "sha256": "72c11a87ce3f741d2218957eb842d8a6061ca650ae0defc367ed322fffc45c46", + "version": "12.6-34622040.0" + }, + "nvidia-l4t-dla-compiler": { + "filename": "pool/main/n/nvidia-l4t-dla-compiler/nvidia-l4t-dla-compiler_36.4.3-20250107174145_arm64.deb", + "sha256": "928170c9e743257c063c235a610473cfec4be917a36f91a61a890ba2bfc47c94", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-gstreamer": { + "filename": "pool/main/n/nvidia-l4t-gstreamer/nvidia-l4t-gstreamer_36.4.3-20250107174145_arm64.deb", + "sha256": "93dbd3dc122b7181ab0a2573024dac972dd53c185830fcf1559b4d2b21870cb0", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-jetson-multimedia-api": { + "filename": "pool/main/n/nvidia-l4t-jetson-multimedia-api/nvidia-l4t-jetson-multimedia-api_36.4.3-20250107174145_arm64.deb", + "sha256": "c82bb071be5d8b87ab25ba3a57fab7d758e5aab5a538709fd70e911364eeb162", + "version": "36.4.3-20250107174145" + }, + "nvidia-nsight-graphics": { + "filename": "pool/main/n/nvidia-nsight-graphics/nvidia-nsight-graphics_6.2+b77_arm64.deb", + "sha256": "0b1023c6240c68c04a2d0654d88fb7ae3d6dc09f67bebbc437946e6f3bd29ea7", + "source": "nvidia-nsight-graphics (6.2)", + "version": "6.2+b77" + }, + "nvidia-nsight-systems": { + "filename": "pool/main/n/nvidia-nsight-systems/nvidia-nsight-systems_6.2+b77_arm64.deb", + "sha256": "7f1d2457ed15863bfdcd69f937e4a2a1a3b4d071863e1cd0ee5ac7353378af3c", + "source": "nvidia-nsight-systems (6.2)", + "version": "6.2+b77" + }, + "nvidia-opencv": { + "filename": "pool/main/n/nvidia-opencv/nvidia-opencv_6.2+b77_arm64.deb", + "sha256": "9202e589895d0ee3a22ed9ae9f936332a06672d9ecc74ae84e2651d1f1286c67", + "source": "nvidia-opencv (6.2)", + "version": "6.2+b77" + }, + "nvidia-opencv-dev": { + "filename": "pool/main/n/nvidia-opencv-dev/nvidia-opencv-dev_6.2+b77_arm64.deb", + "sha256": "2672d6789d4c5a827717da36eed86afb0aaa097fbd66b1e70dfa722a293b585c", + "source": "nvidia-opencv-dev (6.2)", + "version": "6.2+b77" + }, + "nvidia-tensorrt": { + "filename": "pool/main/n/nvidia-tensorrt/nvidia-tensorrt_6.2+b77_arm64.deb", + "sha256": "37b467e801f4d593cf34bfd4ea880f9c9c72a2e31bce740a41a909199672e772", + "source": "nvidia-tensorrt (6.2)", + "version": "6.2+b77" + }, + "nvidia-tensorrt-dev": { + "filename": "pool/main/n/nvidia-tensorrt-dev/nvidia-tensorrt-dev_6.2+b77_arm64.deb", + "sha256": "11d5af33ae0507960ade0d4c2064822ad3da9e0f5aec087ba7e273a5d29daf60", + "source": "nvidia-tensorrt-dev (6.2)", + "version": "6.2+b77" + }, + "nvidia-vpi": { + "filename": "pool/main/n/nvidia-vpi/nvidia-vpi_6.2+b77_arm64.deb", + "sha256": "32e45260df83668f46925568d0ed4a4cf08eccfe14c9322e9bd122a335048897", + "source": "nvidia-vpi (6.2)", + "version": "6.2+b77" + }, + "nvidia-vpi-dev": { + "filename": "pool/main/n/nvidia-vpi-dev/nvidia-vpi-dev_6.2+b77_arm64.deb", + "sha256": "5845e2e1db5ef3bbca22f1f7036b01c8cb9ff34256983cc59efad47e97ce3131", + "source": "nvidia-vpi-dev (6.2)", + "version": "6.2+b77" + }, + "opencv-licenses": { + "filename": "pool/main/o/opencv-licenses/opencv-licenses_4.8.0-1-g6371ee1_arm64.deb", + "sha256": "9886503d64761eb5dc7eac0e2072ac91516a39fec2832c3e868787a8377873ee", + "version": "4.8.0-1-g6371ee1" + }, + "opencv-samples-data": { + "filename": "pool/main/o/opencv-samples-data/opencv-samples-data_4.8.0-1-g6371ee1_arm64.deb", + "sha256": "9e506af34a7b2a1583828365663521c80ed4a071892b23513f8e3f899db9b662", + "version": "4.8.0-1-g6371ee1" + }, + "pva-allow-2": { + "filename": "pool/main/p/pva-allow-2/pva-allow-2_2.0.5_all.deb", + "sha256": "cc20598f9076fdb9fba176c1e55c2065276236ba0a64305f1b9da94b98e4c301", + "version": "2.0.5" + }, + "pva-sdk-2.5-l4t": { + "filename": "pool/main/p/pva-sdk-2.5-l4t/pva-sdk-2.5-l4t_2.5.4_arm64.deb", + "sha256": "7a0b94aee7154753392c3b224ebd30f667046289255a574b760636e63242cb7a", + "version": "2.5.4" + }, + "python3-libnvinfer": { + "filename": "pool/main/t/tensorrt/python3-libnvinfer_10.3.0.30-1+cuda12.5_arm64.deb", + "sha256": "d2b7d6e9755e7dc470c1bdb2a5564c0916989ae6a4b4063a1cbfc2510b644a6d", + "source": "tensorrt", + "version": "10.3.0.30-1+cuda12.5" + }, + "python3-libnvinfer-dev": { + "filename": "pool/main/t/tensorrt/python3-libnvinfer-dev_10.3.0.30-1+cuda12.5_arm64.deb", + "sha256": "a94bda70a4e6e28aee0dece0ea72dc76193cce7116e0365b394c1b42f54cedd3", + "source": "tensorrt", + "version": "10.3.0.30-1+cuda12.5" + }, + "python3-libnvinfer-dispatch": { + "filename": "pool/main/t/tensorrt/python3-libnvinfer-dispatch_10.3.0.30-1+cuda12.5_arm64.deb", + "sha256": "b2c8b7b5e37953d8b30e8993d99ef0e89ffdafdc71c2249e1f7b34ce5c592002", + "source": "tensorrt", + "version": "10.3.0.30-1+cuda12.5" + }, + "python3-libnvinfer-lean": { + "filename": "pool/main/t/tensorrt/python3-libnvinfer-lean_10.3.0.30-1+cuda12.5_arm64.deb", + "sha256": "521d353e2fa1e3ba1d2735b724218a1d2296e180c73a1879bcc3985dddd2bd06", + "source": "tensorrt", + "version": "10.3.0.30-1+cuda12.5" + }, + "python3.10-vpi3": { + "filename": "pool/main/p/python3.10-vpi3/python3.10-vpi3_3.2.4_arm64.deb", + "sha256": "5287483f97ff1c0ea734957f2a16e2b27f1e81b8bc634d69dfdcf73662fd4d26", + "version": "3.2.4" + }, + "tensorrt": { + "filename": "pool/main/t/tensorrt/tensorrt_10.3.0.30-1+cuda12.5_arm64.deb", + "sha256": "5185fc2cb820d2adbcd42374d341002b5ebc105321e12d1ad6d25855c23d39fd", + "version": "10.3.0.30-1+cuda12.5" + }, + "tensorrt-dev": { + "filename": "pool/main/t/tensorrt/tensorrt-dev_10.3.0.30-1+cuda12.5_arm64.deb", + "sha256": "2f1ddc135b31d7bc065131097196fd25e79305c25863a87d37c7c7e5dfc47434", + "source": "tensorrt", + "version": "10.3.0.30-1+cuda12.5" + }, + "tensorrt-libs": { + "filename": "pool/main/t/tensorrt/tensorrt-libs_10.3.0.30-1+cuda12.5_arm64.deb", + "sha256": "9804a2640442eef173b6f6fae6acd2729ddc40d4ed8f31a0beaaec859616d95b", + "source": "tensorrt", + "version": "10.3.0.30-1+cuda12.5" + }, + "vpi3-dev": { + "filename": "pool/main/v/vpi3-dev/vpi3-dev_3.2.4_arm64.deb", + "sha256": "6425dbf2c0fc00b2ab5b323c3834bda52edad7101d80176b0385c2a1d0e63ce8", + "version": "3.2.4" + }, + "vpi3-python-src": { + "filename": "pool/main/v/vpi3-python-src/vpi3-python-src_3.2.4_arm64.deb", + "sha256": "7e4962fa3a45214b82d1c09a7747e7ec2e0bc2cd57183f1aa8d4b4dbdbc22dc2", + "version": "3.2.4" + }, + "vpi3-samples": { + "filename": "pool/main/v/vpi3-samples/vpi3-samples_3.2.4_arm64.deb", + "sha256": "e7850f6675856507b5064c23315934a025e811ebf1264f059670730e45885eec", + "version": "3.2.4" + } + }, + "t234": { + "jetson-gpio-common": { + "filename": "pool/main/j/jetson-gpio/jetson-gpio-common_2.1.7ubuntu1_arm64.deb", + "sha256": "a378148c985c1e7853ff4c14b84b3db0757ffe96adf3f5c6efc2a326e30a0be5", + "source": "jetson-gpio", + "version": "2.1.7ubuntu1" + }, + "nvidia-igx-bootloader": { + "filename": "pool/main/n/nvidia-igx-bootloader/nvidia-igx-bootloader_36.4.3-20250107174145_arm64.deb", + "sha256": "54458be75ab032b41fbfc39f3719788d33e5be622bbd4c345bf80472a07f72a4", + "version": "36.4.3-20250107174145" + }, + "nvidia-igx-oem-config": { + "filename": "pool/main/n/nvidia-igx-oem-config/nvidia-igx-oem-config_36.4.3-20250107174145_arm64.deb", + "sha256": "702c40a7c9515b7f00eaae4e9126a0f6373e49b3fdd654fcd64f912448506f1b", + "version": "36.4.3-20250107174145" + }, + "nvidia-igx-systemd-reboot-hooks": { + "filename": "pool/main/n/nvidia-igx-systemd-reboot-hooks/nvidia-igx-systemd-reboot-hooks_36.4.3-20250107174145_arm64.deb", + "sha256": "6f8b59f00ee60d16a2230562faa06f2e96e956e9909e723d36233737e411b137", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-3d-core": { + "filename": "pool/main/n/nvidia-l4t-3d-core/nvidia-l4t-3d-core_36.4.3-20250107174145_arm64.deb", + "sha256": "ab19b524f942b35d21cc7893cf5b8a5d0a4007614e88c27dd85e2668a537cc5c", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-apt-source": { + "filename": "pool/main/n/nvidia-l4t-apt-source/nvidia-l4t-apt-source_36.4.3-20250107174145_arm64.deb", + "sha256": "f058ce7827bcab8efceec57f36deea1e0d07cc57afc9ff7f912dbb8b02b875a9", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-bootloader": { + "filename": "pool/main/n/nvidia-l4t-bootloader/nvidia-l4t-bootloader_36.4.3-20250107174145_arm64.deb", + "sha256": "5e36d1ebca83aaf8e4cda8621c60c3c8d224e02ab0f27e907510821d0f3c9f0d", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-camera": { + "filename": "pool/main/n/nvidia-l4t-camera/nvidia-l4t-camera_36.4.3-20250107174145_arm64.deb", + "sha256": "4483a57b203968caff0d36d7eebf8671fca6707fc9d7b77d42f4061f7ac0db42", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-configs": { + "filename": "pool/main/n/nvidia-l4t-configs/nvidia-l4t-configs_36.4.3-20250107174145_arm64.deb", + "sha256": "3af8e6c3791311ced4487d8eb7d5327a830f6579ea0a77a59d00faf324b4ce62", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-core": { + "filename": "pool/main/n/nvidia-l4t-core/nvidia-l4t-core_36.4.3-20250107174145_arm64.deb", + "sha256": "06e58e0decd9af534b3eeb23958ff9cb95d61079f2af443ec3908957a2d7e82b", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-cuda": { + "filename": "pool/main/n/nvidia-l4t-cuda/nvidia-l4t-cuda_36.4.3-20250107174145_arm64.deb", + "sha256": "b89095c419488d37212cbd10969277cf6e60922be89ee98cd83bbfdaed03ef86", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-cuda-utils": { + "filename": "pool/main/n/nvidia-l4t-cuda-utils/nvidia-l4t-cuda-utils_36.4.3-20250107174145_arm64.deb", + "sha256": "b57b29bbdfd13611c3c859411d422d72ed044efa6a92145e72e720e43d7072cd", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-dgpu-tools": { + "filename": "pool/main/n/nvidia-l4t-dgpu-tools/nvidia-l4t-dgpu-tools_36.4.3-20250107174145_arm64.deb", + "sha256": "178eff3c706280f82d1646554634c789bff5b47f1885852af7fdfe81c6426fa0", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-display-kernel": { + "filename": "pool/main/n/nvidia-l4t-display-kernel/nvidia-l4t-display-kernel_5.15.148-tegra-36.4.3-20250107174145_arm64.deb", + "sha256": "b012be571abd2759b4f4f04f8b33ec27b99d896b2e847cf9d5d3890042f727c5", + "version": "5.15.148-tegra-36.4.3-20250107174145" + }, + "nvidia-l4t-factory-service": { + "filename": "pool/main/n/nvidia-l4t-factory-service/nvidia-l4t-factory-service_36.4.3-20250107174145_arm64.deb", + "sha256": "9a1d244682404a6f4b06bb92e0dea1cdce05c9737c6ea9cdbfd3144be9f01321", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-firmware": { + "filename": "pool/main/n/nvidia-l4t-firmware/nvidia-l4t-firmware_36.4.3-20250107174145_arm64.deb", + "sha256": "ec89d6a5c449bc6e7e89127bc7390bea7a113a69f92a4dc15462e9e943fad3ab", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-gbm": { + "filename": "pool/main/n/nvidia-l4t-gbm/nvidia-l4t-gbm_36.4.3-20250107174145_arm64.deb", + "sha256": "3131b3bd47c616732934bc9db32c65e7664b591e00308547b2dc3b960fe8bf76", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-graphics-demos": { + "filename": "pool/main/n/nvidia-l4t-graphics-demos/nvidia-l4t-graphics-demos_36.4.3-20250107174145_arm64.deb", + "sha256": "830f49b6b25ec7a8e682be1d700bee642a8ad324411722ce0b4214960d0aeb41", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-init": { + "filename": "pool/main/n/nvidia-l4t-init/nvidia-l4t-init_36.4.3-20250107174145_arm64.deb", + "sha256": "3a396551d88ebebd70b1eae57ed74837e82485c7897ab1c233735f3ea63e8215", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-initrd": { + "filename": "pool/main/n/nvidia-l4t-initrd/nvidia-l4t-initrd_36.4.3-20250107174145_arm64.deb", + "sha256": "161f0ee23c94730953f280a1d338787afa78bf35c46606f7687439f0907b443d", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-jetson-io": { + "filename": "pool/main/n/nvidia-l4t-jetson-io/nvidia-l4t-jetson-io_36.4.3-20250107174145_arm64.deb", + "sha256": "9d504c59f81ea9b4642d8e0bb3c4bb875147ac2438ca9201b9e2e850ec77048d", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-jetson-orin-nano-qspi-updater": { + "filename": "pool/main/n/nvidia-l4t-jetson-orin-nano-qspi-updater/nvidia-l4t-jetson-orin-nano-qspi-updater_36.4.3-20250107174145_arm64.deb", + "sha256": "f0a99de8822d20769ec4b18ee79f240a3fabd91533f3aad5a9ed19e32c0f8d5e", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-jetsonpower-gui-tools": { + "filename": "pool/main/n/nvidia-l4t-jetsonpower-gui-tools/nvidia-l4t-jetsonpower-gui-tools_36.4.3-20250107174145_arm64.deb", + "sha256": "2fd4f4f00251f31177d9b5ae9e482bd3f07b20f68ab90cfe680760fef851865b", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-kernel": { + "filename": "pool/main/n/nvidia-l4t-kernel/nvidia-l4t-kernel_5.15.148-tegra-36.4.3-20250107174145_arm64.deb", + "sha256": "243c42b541814d98f2ceb325ec9fad437309c08862b85d5280cd6bcbdbbe7c5d", + "version": "5.15.148-tegra-36.4.3-20250107174145" + }, + "nvidia-l4t-kernel-dtbs": { + "filename": "pool/main/n/nvidia-l4t-kernel-dtbs/nvidia-l4t-kernel-dtbs_5.15.148-tegra-36.4.3-20250107174145_arm64.deb", + "sha256": "498947be0ab0feac9fcd67c7a0fc9840c67bb6e94d03f1261f0b54193d2924cc", + "version": "5.15.148-tegra-36.4.3-20250107174145" + }, + "nvidia-l4t-kernel-headers": { + "filename": "pool/main/n/nvidia-l4t-kernel-headers/nvidia-l4t-kernel-headers_5.15.148-tegra-36.4.3-20250107174145_arm64.deb", + "sha256": "8734cd9df3eddfb4fd677cb1bf72b136c1a1d286bcf4655a998a8eefe6202fef", + "version": "5.15.148-tegra-36.4.3-20250107174145" + }, + "nvidia-l4t-kernel-oot-headers": { + "filename": "pool/main/n/nvidia-l4t-kernel-oot-headers/nvidia-l4t-kernel-oot-headers_5.15.148-tegra-36.4.3-20250107174145_arm64.deb", + "sha256": "9c44c3f220760f5cf056aed8e588c66657239554241ece8281fc605bebec37cd", + "version": "5.15.148-tegra-36.4.3-20250107174145" + }, + "nvidia-l4t-kernel-oot-modules": { + "filename": "pool/main/n/nvidia-l4t-kernel-oot-modules/nvidia-l4t-kernel-oot-modules_5.15.148-tegra-36.4.3-20250107174145_arm64.deb", + "sha256": "81580995d7f085100cc928d06f9c8b4f315cb313ba2dfa6cfc0b8e40125369ab", + "version": "5.15.148-tegra-36.4.3-20250107174145" + }, + "nvidia-l4t-libwayland-client0": { + "filename": "pool/main/n/nvidia-l4t-libwayland-client0/nvidia-l4t-libwayland-client0_36.4.3-20250107174145_arm64.deb", + "sha256": "2a900d20033bc6780a67d95341ef44a5ff8a90ddbf7a7f6de15e195cedaad03e", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-libwayland-cursor0": { + "filename": "pool/main/n/nvidia-l4t-libwayland-cursor0/nvidia-l4t-libwayland-cursor0_36.4.3-20250107174145_arm64.deb", + "sha256": "7d4fcb6417c493d2d98bfbbb2726e607c5bfda4a578aded06131fb76ac9dafa3", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-libwayland-egl1": { + "filename": "pool/main/n/nvidia-l4t-libwayland-egl1/nvidia-l4t-libwayland-egl1_36.4.3-20250107174145_arm64.deb", + "sha256": "d79ffddd63141b90be221768878e7ddbf8a1a6d8a05efa74b5cf549bf94b3697", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-libwayland-server0": { + "filename": "pool/main/n/nvidia-l4t-libwayland-server0/nvidia-l4t-libwayland-server0_36.4.3-20250107174145_arm64.deb", + "sha256": "33d9fbdb238f22cea828283a9f19e5eb4dcf087009b6475453267392c512bbbd", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-multimedia": { + "filename": "pool/main/n/nvidia-l4t-multimedia/nvidia-l4t-multimedia_36.4.3-20250107174145_arm64.deb", + "sha256": "a3067000eb63ebe954684367464e7f1de213abb0c78ec3400a59ceb9acdf69bb", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-multimedia-utils": { + "filename": "pool/main/n/nvidia-l4t-multimedia-utils/nvidia-l4t-multimedia-utils_36.4.3-20250107174145_arm64.deb", + "sha256": "8e57f5a9a8f9c7cf2045a3031c0ad397024f62ce7e14d1e34f65e631788c10b9", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-nvfancontrol": { + "filename": "pool/main/n/nvidia-l4t-nvfancontrol/nvidia-l4t-nvfancontrol_36.4.3-20250107174145_arm64.deb", + "sha256": "5ab541e2f32342da1dc74c83a309537b80ba3566f7b8050d554861ec5eebf0dc", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-nvml": { + "filename": "pool/main/n/nvidia-l4t-nvml/nvidia-l4t-nvml_36.4.3-20250107174145_arm64.deb", + "sha256": "c2e29277178d40c156b4c597f7f1d14f4330de84c71bf7785ef76ddaa23e812f", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-nvpmodel": { + "filename": "pool/main/n/nvidia-l4t-nvpmodel/nvidia-l4t-nvpmodel_36.4.3-20250107174145_arm64.deb", + "sha256": "7e6b9fd7b0ab74606e086540f9f21afa9d092989b6c831561a35b090389b1c93", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-nvpmodel-gui-tools": { + "filename": "pool/main/n/nvidia-l4t-nvpmodel-gui-tools/nvidia-l4t-nvpmodel-gui-tools_36.4.3-20250107174145_arm64.deb", + "sha256": "0484618e76d97a13e3c9e5075f930cfc1297fbcb38cd617196aff83c8065e193", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-nvsci": { + "filename": "pool/main/n/nvidia-l4t-nvsci/nvidia-l4t-nvsci_36.4.3-20250107174145_arm64.deb", + "sha256": "49a965b5339d07de91f5ed556609dbeb5dfcc7998747c5c7e070a558ea10602e", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-oem-config": { + "filename": "pool/main/n/nvidia-l4t-oem-config/nvidia-l4t-oem-config_36.4.3-20250107174145_arm64.deb", + "sha256": "7b7770f6124e9a345cacdd9f829021de37e480eca736f183d273da21cca520be", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-openwfd": { + "filename": "pool/main/n/nvidia-l4t-openwfd/nvidia-l4t-openwfd_36.4.3-20250107174145_arm64.deb", + "sha256": "a75f89fddaa76668da559efa6969cc938e86f3d475438e1458b062003fdcdbb2", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-optee": { + "filename": "pool/main/n/nvidia-l4t-optee/nvidia-l4t-optee_36.4.3-20250107174145_arm64.deb", + "sha256": "7e2f1812e09f048b8f019c16a7062b4b15c3f1b3eb5b33e17e736439687329c5", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-pva": { + "filename": "pool/main/n/nvidia-l4t-pva/nvidia-l4t-pva_36.4.3-20250107174145_arm64.deb", + "sha256": "8caa940b0bbd81958f523cda7fde8b7c4a91ef41caa9d68c5ab0271ce8553bf2", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-tools": { + "filename": "pool/main/n/nvidia-l4t-tools/nvidia-l4t-tools_36.4.3-20250107174145_arm64.deb", + "sha256": "5e861d7dea1dca2709461e4831946968fe526f31eb87fa205a7b073d2a151ac3", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-vulkan-sc": { + "filename": "pool/main/n/nvidia-l4t-vulkan-sc/nvidia-l4t-vulkan-sc_36.4.3-20250107174145_arm64.deb", + "sha256": "a512ecfd9fda277b984678537b71da5997d0ecf6151ad2f55a194407696f12aa", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-vulkan-sc-dev": { + "filename": "pool/main/n/nvidia-l4t-vulkan-sc-dev/nvidia-l4t-vulkan-sc-dev_36.4.3-20250107174145_arm64.deb", + "sha256": "234db2c177297c5881d40c30deb42591180fa5369915c2c9a3d5e7a2f31c0b5b", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-vulkan-sc-samples": { + "filename": "pool/main/n/nvidia-l4t-vulkan-sc-samples/nvidia-l4t-vulkan-sc-samples_36.4.3-20250107174145_arm64.deb", + "sha256": "d1b3d23abd468d337a3f774dea21d9b1553776eb7de856eaa9145261e5f78f60", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-vulkan-sc-sdk": { + "filename": "pool/main/n/nvidia-l4t-vulkan-sc-sdk/nvidia-l4t-vulkan-sc-sdk_36.4.3-20250107174145_arm64.deb", + "sha256": "a02ea891d3c5b53295793d2fdda93263d4439b999f6c2a12c3a4b713bc2773c6", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-wayland": { + "filename": "pool/main/n/nvidia-l4t-wayland/nvidia-l4t-wayland_36.4.3-20250107174145_arm64.deb", + "sha256": "9f5f77010f5b332dd5ef9bfaba9f397c2bb2dc4ef8e929c0ab1e73f121762f46", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-weston": { + "filename": "pool/main/n/nvidia-l4t-weston/nvidia-l4t-weston_36.4.3-20250107174145_arm64.deb", + "sha256": "9b86cc6f103bfbe1f188820a400b698b5fcfbbf98d9d338dadb3038a9f37ce57", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-x11": { + "filename": "pool/main/n/nvidia-l4t-x11/nvidia-l4t-x11_36.4.3-20250107174145_arm64.deb", + "sha256": "952db06d6fd11ef547cc74b8cc93377529f7d2b06a3472b4824dc647c78743e3", + "version": "36.4.3-20250107174145" + }, + "nvidia-l4t-xusb-firmware": { + "filename": "pool/main/n/nvidia-l4t-xusb-firmware/nvidia-l4t-xusb-firmware_36.4.3-20250107174145_arm64.deb", + "sha256": "411a41513403cc306a07aaa7e27453398e857c8f7fe0f746086202f4c7c3ff62", + "version": "36.4.3-20250107174145" + }, + "python-jetson-gpio": { + "filename": "pool/main/j/jetson-gpio/python-jetson-gpio_2.1.7ubuntu1_arm64.deb", + "sha256": "234950a48ec85815fc3847617cc05390487a50b659b2320f63ca96d68a69fd16", + "source": "jetson-gpio", + "version": "2.1.7ubuntu1" + }, + "python3-jetson-gpio": { + "filename": "pool/main/j/jetson-gpio/python3-jetson-gpio_2.1.7ubuntu1_arm64.deb", + "sha256": "32f23da75cd21749390529571f339098ee2ead646c60116da84627c5713fa78c", + "source": "jetson-gpio", + "version": "2.1.7ubuntu1" + } + } +} diff --git a/sourceinfo/r36.4.3-gitrepos.json b/sourceinfo/r36.4.3-gitrepos.json new file mode 100644 index 00000000..8be9af91 --- /dev/null +++ b/sourceinfo/r36.4.3-gitrepos.json @@ -0,0 +1,410 @@ +{ + "dtc-src/1.4.5": { + "date": "2025-01-21T05:25:07-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-FJocmB5uPrngj2KRTON8jn0mM6Zht3GhWI1GxniExcI=", + "leaveDotGit": false, + "path": "/nix/store/h7wi95xgp99zmwvc3607yh1irai20ih6-1.4.5", + "rev": "2cc61f91f230f2a62c5222a39dfd91b783a7c1a6", + "sha256": "1hn5hiwccildb2hp3dv1lqrjczcfgkilr4b2izhbjgkf3sc1r6hl", + "url": "https://nv-tegra.nvidia.com/3rdparty/dtc-src/1.4.5.git" + }, + "hardware/nvidia/t23x/nv-public": { + "date": "2024-12-25T10:18:53-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-YF4gyPH8he35tRg8DdcnPgI2Nm7ca3RNn+BnHAm5PnM=", + "leaveDotGit": false, + "path": "/nix/store/cr3qyqf2mw91m9z3kipwh18cydfwdf25-t23x-public-dts", + "rev": "85ce314b25a2f112ee4411dca63ecb72cbe508ff", + "sha256": "0wryp44iqrz0kx6p8sywdqv3c0iy4zbhsg0qnpwyv1gwy7420pk0", + "url": "https://nv-tegra.nvidia.com/device/hardware/nvidia/t23x-public-dts.git" + }, + "hardware/nvidia/tegra/nv-public": { + "date": "2023-06-28T02:06:21-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-NMp7UY0OlH2ddBSrUzCUSLkvnWrELhz8xH/dkV86ids=", + "leaveDotGit": false, + "path": "/nix/store/18pwc2x6sl43b6a1i895x58v3ag3dx2k-tegra-public-dts", + "rev": "8ba5d53ef1e1753f9f2a5b1f7b7b5fc5039de68e", + "sha256": "1nw979gr3pbzqky1qbn4dafjzfa8jhq57aqlfjfpv50fim8ppjil", + "url": "https://nv-tegra.nvidia.com/device/hardware/nvidia/tegra-public-dts.git" + }, + "hwpm": { + "date": "2024-08-01T10:24:36-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-otOVFeF+8XKORWMXTRTcXQUXvojdwInVC3jPXTgrk3A=", + "leaveDotGit": false, + "path": "/nix/store/19n1mf5knlz7wrh8xf0g5an9kiqn5i95-linux-hwpm", + "rev": "d47dc62f4011ffbb0353ba43df5cfb42b967bef2", + "sha256": "0w4k5cw5vkvq1gaqkh6xi2z1f1axvha4s5v38n775wbyw4arblx2", + "url": "https://nv-tegra.nvidia.com/linux-hwpm.git" + }, + "kernel-devicetree": { + "date": "2024-05-29T18:53:06Z", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-mFmxO7rg1DWnYK+HDFQnc9XLpS4lwXfSXGOibKC4FPY=", + "leaveDotGit": false, + "path": "/nix/store/hcnjzmavdp7wx4bslpr40rrjcm99q4vz-kernel-devicetree", + "rev": "19952c8e25702e9de23500c3b1fb351bf4380446", + "sha256": "1xhlp2h6r8k3bk97gh955sjwpmbk4xa0r1xgc2kkbm70p8xv2ncq", + "url": "https://nv-tegra.nvidia.com/linux/kernel-devicetree.git" + }, + "kernel/kernel-jammy-src": { + "date": "2024-09-12T20:40:42-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-WzSLoaSP5bWg6x0QAD+2FO1z6cEA3s1rWpMoKbc5kfk=", + "leaveDotGit": false, + "path": "/nix/store/8vr7l69pbvps7kqafvhk2dvd9j561cd0-linux-jammy", + "rev": "dac1b0b4ecfc5b1aae9617011565f6c6c4a72171", + "sha256": "1yci76vjja4kb9mwvph0q7lp7v8lnqzh040xxfhbbrcgljhqnd2v", + "url": "https://nv-tegra.nvidia.com/3rdparty/canonical/linux-jammy.git" + }, + "nvdisplay": { + "date": "2025-01-21T05:25:10-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-ZgoEXl4G5/lk+i5pdwqPwTi8eRNi+kLvC1hxmRZzj3k=", + "leaveDotGit": false, + "path": "/nix/store/g01kbwk24mrvjpl09bbj8n8jz2l36f2c-nv-kernel-display-driver", + "rev": "b2fb5ad0da0c8f24f7e5221b761cc01b4eadaa79", + "sha256": "0ycgfcb9jwaq1gpl5yk22dwvqf61iw57fs9fz9jgkrq6brg082k6", + "url": "https://nv-tegra.nvidia.com/tegra/kernel-src/nv-kernel-display-driver.git" + }, + "nvethernetrm": { + "date": "2023-06-06T02:05:11-07:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-cTJagcO7TYG0eT0dgZn67hX/EKT04OrTYvwBwWEe1YU=", + "leaveDotGit": false, + "path": "/nix/store/ryzmhzxifq2rxhjin3d4a7a0c561qzxh-nvethernetrm", + "rev": "1150fc9b2976463a6d839c3515d012b5a27a367b", + "sha256": "11fm3rhw20gwcb9ymq7llh8gy5gfzacq279xg6s82kdvqf0mlcki", + "url": "https://nv-tegra.nvidia.com/kernel/nvethernetrm.git" + }, + "nvgpu": { + "date": "2024-12-17T15:54:04-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-qI/YRdPIvXEDb4AU+ksLmgiwcGlSHLJTw2N/B/yOFpY=", + "leaveDotGit": false, + "path": "/nix/store/gvnsifv7wy7nl27fgwvi3v7fhrxgq4r8-linux-nvgpu", + "rev": "8a0a5345705e069e398a79dbcba96c5db54a37f1", + "sha256": "15hnivy0fzv3qd9v472jd5qb024s1d5zl540dw1p3gf8sd2xi3x8", + "url": "https://nv-tegra.nvidia.com/linux-nvgpu.git" + }, + "nvidia-oot": { + "date": "2024-12-17T15:56:55-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-SixXSU0lhOC3V1nII1YdEpyGXR0fxOS8rI7CHaWbFzo=", + "leaveDotGit": false, + "path": "/nix/store/ifvppy5p9vis4bwcazan6aw6nqva4s6n-linux-nv-oot", + "rev": "087418781c377c7e1aeae138024ef5c81950f85e", + "sha256": "0fhpkfjivhlfmjyf9i0z3mfqd70j3mb27j2rayvy11159m4mfb2a", + "url": "https://nv-tegra.nvidia.com/linux-nv-oot.git" + }, + "tegra/argus-cam-libav/argus_cam_libavencoder": { + "date": "2025-01-21T05:24:48-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-3wmV6I5/HOGreqCHt/lXO/qzuKRp5IYheI6pnYFKK1k=", + "leaveDotGit": false, + "path": "/nix/store/vancmbi7653k3wgqgvkf55llbjqcmvig-argus_cam_libavencoder", + "rev": "915c81c0e566cabfb2905d2613e3dd20bf3ac7d1", + "sha256": "0n9b9a0rvacfg0hqdr39ljwb7yivazwvg1x0gamy273zivl9a2fz", + "url": "https://nv-tegra.nvidia.com/tegra/argus-cam-libav/argus_cam_libavencoder.git" + }, + "tegra/cuda-src/nvsample_cudaprocess": { + "date": "2025-01-21T05:25:07-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-FkwWv++PL/0lxSCkBKEV8wqlI/Zby9i6vfsAq88tlMQ=", + "leaveDotGit": false, + "path": "/nix/store/9hhx3rdch7y2r896vzklkkyp0grqfpn5-nvsample_cudaprocess", + "rev": "15f8722ed872496f4c6d91946f3d969309882561", + "sha256": "1i4l5p7sn07vpnxdijsvyqisa2pk2nhh9910qljzsbwgxyzick0n", + "url": "https://nv-tegra.nvidia.com/tegra/cuda-src/nvsample_cudaprocess.git" + }, + "tegra/gfx-src/nv-xconfig": { + "date": "2025-01-21T05:24:49-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-UEid/cAtfLbwg1PEFm42+U+qJZIS73eDEgC5lKsZFyI=", + "leaveDotGit": false, + "path": "/nix/store/5pjpplmg097lihk9fcmy8i20g6x1xc6k-nv-xconfig", + "rev": "89880fc278ba498ebbe7d30417bebfccc482bdc3", + "sha256": "08hp36mr9f802a1pgvqjj8jslkzr6rp1di2khgqbcz1dq3yrsj2h", + "url": "https://nv-tegra.nvidia.com/tegra/gfx-src/nv-xconfig.git" + }, + "tegra/gst-src/gst-egl": { + "date": "2025-01-21T05:24:50-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-IFSfv30DK0El5yQ7JnkRBcI5iYoS5s2fYVc4J8P99sc=", + "leaveDotGit": false, + "path": "/nix/store/jnmy0gcrjgpi5q70y7iv8f2m4i31487f-gst-egl", + "rev": "4be089e6fb43ada35a8cbfab855b5645170bd25d", + "sha256": "1iznzp1jff2pc6gwvrhjia4kkhh525wjcfr4wwjl2aq3gnzrym10", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/gst-egl.git" + }, + "tegra/gst-src/gst-jpeg": { + "date": "2025-01-21T05:24:50-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-YCy4NUl0GHAKoimiNLtDspOX/7vPYuhTqU6dJRIdjpI=", + "leaveDotGit": false, + "path": "/nix/store/g9pps0cv87cvbkr0paiw7zajfsb2g6w0-gst-jpeg", + "rev": "23634be9d6a242e6306f3aa5abed1899f2311ddf", + "sha256": "14lf3l92b7afm59yhqngpgzrg4xj8fxk98i9l857063l94svhb30", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/gst-jpeg.git" + }, + "tegra/gst-src/gst-nvarguscamera": { + "date": "2025-01-21T05:25:06-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-VZwWNpy3qQ9PeAxtY+fP3cVYdlqCqPIXd64R3yANgXg=", + "leaveDotGit": false, + "path": "/nix/store/3bw1hrj82di6zzmy5xfzhyvylvklrgif-gst-nvarguscamera", + "rev": "77e672c5eabad3bf794f368725bb704991c51766", + "sha256": "0y411lhdy4dffwbz5a42b9v5iifxrzkn6v8cg17hzadpkhv1d72m", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/gst-nvarguscamera.git" + }, + "tegra/gst-src/gst-nvcompositor": { + "date": "2025-01-21T05:25:19-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-3JR66vm2x6gyTQtiVqr5OMuWHlokKChjtq2MoS65mz4=", + "leaveDotGit": false, + "path": "/nix/store/5xh06w9kcxbd59w97w5j0873mfz8f2cf-gst-nvcompositor", + "rev": "79855ba9fccb3f7f149c7828f4449414eb5193e8", + "sha256": "0glvp4pa335dnrijha14b8g9djrqz6m5cqhb9lraiixnz7m7m56w", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/gst-nvcompositor.git" + }, + "tegra/gst-src/gst-nvtee": { + "date": "2025-01-21T05:24:46-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-l3XGzRvzWIj1edFzladO2sNDix2P7xGGZWh7/3bgn7c=", + "leaveDotGit": false, + "path": "/nix/store/r21f6w4kpgpnpc3l6vbybzacycvbf3hb-gst-nvtee", + "rev": "6c60322bfac866d6200bccb71832c3b282a2415e", + "sha256": "1dwzw1vgyyv8cn313vwg3n5l7hys9skrawyig7sqhn7k3g6wcxcp", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/gst-nvtee.git" + }, + "tegra/gst-src/gst-nvv4l2camera": { + "date": "2025-01-21T05:25:11-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-UYtfmzByrRC1QOkQ48Q7s4BNJVE5vPIpR1yyKjIzuwI=", + "leaveDotGit": false, + "path": "/nix/store/clnkpy0r4c43jz2jv1mkqk6fsancwr12-gst-nvv4l2camera", + "rev": "bb0d46b972a70c6a9159c4f49cae932edee4073a", + "sha256": "00mv6cr2mcjw8wlz5g1ra4jlv05k7g2f647982si1bbj62dmz2si", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/gst-nvv4l2camera.git" + }, + "tegra/gst-src/gst-nvvidconv": { + "date": "2025-01-21T05:25:20-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-SGS3qf9E8XzfrsAFyQIYNG9nctFgx/ve/O8UiX+6rkE=", + "leaveDotGit": false, + "path": "/nix/store/gzzgn0zh0gfbwwnw5jkr60zl1bg3nx6r-gst-nvvidconv", + "rev": "9587d3aea68b7aa1ceb70f6ceb6691c4e3852867", + "sha256": "0hdfp9zqj57gzkggpiv0s5r6fvrl301cj1f0mvgprwa4zylvfr28", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/gst-nvvidconv.git" + }, + "tegra/gst-src/gst-nvvideo4linux2": { + "date": "2025-01-21T05:24:47-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-lo6olm3Jm4Vqzf7pVEI9NF+Z1oiU7/nsHGfWTfHzqV8=", + "leaveDotGit": false, + "path": "/nix/store/bzxa8rg7w88012kl7qxwa1az9c7z3db4-gst-nvvideo4linux2", + "rev": "e102cca855e8f241a48ffb3f280046bea8d8062f", + "sha256": "0px9ygqlvmk73kngkvwli3b9jprl7m159sgyrmm8b6y9dnbai3ln", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/gst-nvvideo4linux2.git" + }, + "tegra/gst-src/libgstnvcustomhelper": { + "date": "2025-01-21T05:24:48-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-IYgNCwQXBQi88BLwyqxIrI7bnvcxcsyf07WO5ctYWWs=", + "leaveDotGit": false, + "path": "/nix/store/7g771whpkplg2j1p7dnzkird8wsyx11h-libgstnvcustomhelper", + "rev": "c71b7aad17ba4684fd093c137bb8d8b67c364d8a", + "sha256": "0ssrb35yb3mmsfgwqwiiyygdp3mc92ncmw0jy2y0h18p0h5hv211", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/libgstnvcustomhelper.git" + }, + "tegra/gst-src/libgstnvdrmvideosink": { + "date": "2025-01-21T05:24:47-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-GS+Gz8g2s0nP3s5nYQwTrTwydr4G7TfdvLzTd+2u51Y=", + "leaveDotGit": false, + "path": "/nix/store/i6ggc2jp9dhg1crn81qpvhvffcvvvr2h-libgstnvdrmvideosink", + "rev": "fe43724fe449664f46bc79f6fe2fe0356e8af305", + "sha256": "0mp7mvnpglxwpkfkgv86prv34g5d2c662ryfvv7lkcrnr37qcbqr", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/libgstnvdrmvideosink.git" + }, + "tegra/gst-src/libgstnvvideosinks": { + "date": "2025-01-21T05:25:21-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-ZOgTA1oQ2hRIdQ+vPPleKKDbnj3dD0ZivURcXqaAA6Q=", + "leaveDotGit": false, + "path": "/nix/store/dk4dr582b7m38hml95ygyl71hll3qlsy-libgstnvvideosinks", + "rev": "677753a9ee9661fa94bbf09c47c6477e56ae62a1", + "sha256": "1903h2k5wp24pmi4c3yx7ngdp818bvwkrbqgfm419nhhb81i7s34", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/libgstnvvideosinks.git" + }, + "tegra/gst-src/nvgstapps": { + "date": "2025-01-21T05:25:21-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-EZysmimkyi86Vq8dHuh8u9wOpZOE4hJbm1auTSn9srg=", + "leaveDotGit": false, + "path": "/nix/store/xbbj7p784nhq71rxkbkvif7a1cbi9gva-nvgstapps", + "rev": "4b224ccaf2346f7b7b8a21b94b00bc07b337f6bd", + "sha256": "1f5jzlllvbjnkddi5ql4jfjhxp5vgkl1w7dgaqx2zjm456dar70i", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/nvgstapps.git" + }, + "tegra/gst-src/opencv_gst_samples": { + "date": "2025-01-21T05:25:06-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-F3QN2lsB8RNmxEmnko+rhLTbTNiIpQ8/sOTo2UdghH4=", + "leaveDotGit": false, + "path": "/nix/store/zmnha6w9icn02vk61k86di6kdsx0h1p5-opencv_gst_samples", + "rev": "b49f0d21cf167c6dbba1721d18b18723dda06e9a", + "sha256": "0zl4c13xks74n0zhz9c8v16dpd44mf7r59s9qik17w81bgd0sx0p", + "url": "https://nv-tegra.nvidia.com/tegra/gst-src/opencv_gst_samples.git" + }, + "tegra/nv-sci-src/nvsci_headers": { + "date": "2025-01-21T05:25:20-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-UJYg8CWqUXa2m2lolNlEGqawwzrHoYMluejWqWh5rWU=", + "leaveDotGit": false, + "path": "/nix/store/c034vdkv8rg06g3cixbs1fpy645rxn45-nvsci_headers", + "rev": "2c56c6ae8d3e6c8fc8b617e992dd7b746c8548d3", + "sha256": "0rddg5lakmp8p4jq78f77b1v19hs8kcr8s39kfv7clda4pq215jh", + "url": "https://nv-tegra.nvidia.com/tegra/nv-sci-src/nvsci_headers.git" + }, + "tegra/nv-sci-src/nvsci_samples": { + "date": "2025-01-21T05:25:22-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-5A8RtYPDFWpHOwFM5R/n7YNq+NdDuC1ieNzHI5Jp8iQ=", + "leaveDotGit": false, + "path": "/nix/store/k6akz3raxq4q2hfxkviqirkq0zpmsl69-nvsci_samples", + "rev": "5482324389f18de3a894365914c3b0fa4af8ded0", + "sha256": "097jd6927iywg1i2vf23szw6m0zdwwgyak017d3nl5f3hfsi23z4", + "url": "https://nv-tegra.nvidia.com/tegra/nv-sci-src/nvsci_samples.git" + }, + "tegra/openwfd-src/openwfd_headers": { + "date": "2025-01-21T05:25:00-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-P31fq5ahOJRYsJ5LUT89y/F9vLllb+WdaMcG2noWSUk=", + "leaveDotGit": false, + "path": "/nix/store/g54zsfzl00nygym6075nciyg27n236c9-openwfd_headers", + "rev": "24f52694b123788001a92fdea539bbe057a8b644", + "sha256": "0ja92rxdl1n7d2fyavv5p6y7vwfb7lzm2jwyn1c98f51jsmmyz9z", + "url": "https://nv-tegra.nvidia.com/tegra/openwfd-src/openwfd_headers.git" + }, + "tegra/optee-src/atf": { + "date": "2025-01-21T05:25:18-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-uBclueCAeGsEldbl1OTfUHXLaWOICXy4CXW1VR8E2Iw=", + "leaveDotGit": false, + "path": "/nix/store/00yp2xh0q5raajxv0395n604kzcpww26-atf", + "rev": "6788fd9dde38dd72910694e940beaeaf3d1c30d2", + "sha256": "136q0hgmbdbm16w7q2c8cdlwnxahvzjd9rfnjl26ny40w2wja5xq", + "url": "https://nv-tegra.nvidia.com/tegra/optee-src/atf.git" + }, + "tegra/optee-src/nv-optee": { + "date": "2025-01-21T05:24:57-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-YIkONwvQ3PYF12PcGlX+C4/wlo4n12rrQI3PLnK408k=", + "leaveDotGit": false, + "path": "/nix/store/0miq6gcxssfa5n9ysjvdkwsnq4iz23mi-nv-optee", + "rev": "84c0c96776ebb0bf0bd02b8033e07977cea81b9c", + "sha256": "1jfkp1r2xkwd83mnmmr7isbg13qbzraimp33sw2zdp6h1cvhx2b0", + "url": "https://nv-tegra.nvidia.com/tegra/optee-src/nv-optee.git" + }, + "tegra/spe-src/spe-freertos-bsp": { + "date": "2025-01-21T05:25:03-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-PTrgmHtVK7nSzf4Tnshnjy1gv+s3tZcOvvUQeppXOKo=", + "leaveDotGit": false, + "path": "/nix/store/hs2nph09nfp6i8spb7abnsclsa8kxhhn-spe-freertos-bsp", + "rev": "c5599650343928607ee3ee8c126535a285ae1527", + "sha256": "1aiqayd7l47mpq79gd9pxfzn0bcgcz49w4zyrp9bjasmgfcf0fix", + "url": "https://nv-tegra.nvidia.com/tegra/spe-src/spe-freertos-bsp.git" + }, + "tegra/v4l2-src/libv4l2_nvargus": { + "date": "2025-01-21T05:25:00-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-qRPyMOHuBZn48mGoqiClVgK/xlp/hivWxIgmmS8A+Hk=", + "leaveDotGit": false, + "path": "/nix/store/xyg44bxwscbr84ddqaxjwn0d5f39r1zx-libv4l2_nvargus", + "rev": "833da9d669dbb9d614184c055fc281af664e0d55", + "sha256": "0ygq00prj9l8qkb2p1kzbb3by0jnllhama31ybw9j1gfw4qg44x9", + "url": "https://nv-tegra.nvidia.com/tegra/v4l2-src/libv4l2_nvargus.git" + }, + "tegra/v4l2-src/v4l2_libs": { + "date": "2025-01-21T05:25:05-08:00", + "deepClone": false, + "fetchLFS": false, + "fetchSubmodules": false, + "hash": "sha256-N6DQXJ/8nEAafhUiABfXm9gihZIbWrxD06YgQRmu93g=", + "leaveDotGit": false, + "path": "/nix/store/mgnxb9lf590y6ldk5v70s6gc3kjl6nni-v4l2_libs", + "rev": "41db982d533c441e11f4fae6b492476f8e18a689", + "sha256": "0y7pmqcl2856sd1vqnhvja2j5n4vswbh08hmgqd4177wkxfd181p", + "url": "https://nv-tegra.nvidia.com/tegra/v4l2-src/v4l2_libs.git" + } +} \ No newline at end of file