Proxmox-Port/packages/pve-installer/patches/004-add-rockchip-dtb.patch

38 lines
1.1 KiB
Diff

diff --git a/Proxmox/Install.pm b/Proxmox/Install.pm
index fa2702c..636e684 100644
--- a/Proxmox/Install.pm
+++ b/Proxmox/Install.pm
@@ -608,6 +617,24 @@ my sub chroot_chmod {
die "chroot: unable to change permission mode for '$path'\n";
}
+sub rockchip_dtb_setup {
+ my ($espdev, $targetdir, $zfs) = @_;
+ # For rockchpi efi env need Device Tree mode, https://github.com/edk2-porting/edk2-rk3588
+ # We create \dtb\base\ in esp root
+ my $kernel_version = `uname -r`;
+ if ($kernel_version =~ /rockchip/){
+ print "kernel is rockchip\n";
+ if ($zfs == '1') {
+ syscmd("mount $espdev $targetdir/boot/efi/");
+ syscmd("cp -r /cdrom/dtb $targetdir/boot/efi/");
+ syscmd("umount -l $targetdir/boot/efi/") ;
+ }else{
+ syscmd("cp -r /cdrom/dtb $targetdir/boot/efi/");
+ }
+ }
+}
+
+
sub prepare_proxmox_boot_esp {
my ($espdev, $targetdir, $secureboot) = @_;
@@ -618,6 +645,7 @@ sub prepare_proxmox_boot_esp {
syscmd("chroot $targetdir proxmox-boot-tool init $espdev $mode") == 0 ||
die "unable to init ESP and install proxmox-boot loader on '$espdev'\n";
+ rockchip_dtb_setup($espdev, $targetdir,1);
}
sub prepare_grub_efi_boot_esp {