diff options
-rw-r--r-- | Makefile.config | 2 | ||||
-rw-r--r-- | images/Makefile | 2 | ||||
-rw-r--r-- | images/grub2.config | 28 | ||||
-rwxr-xr-x | images/make_boot_img | 82 | ||||
-rw-r--r-- | kernel/list_modules.pm | 3 | ||||
-rw-r--r-- | mdk-stage1/init.c | 2 | ||||
-rw-r--r-- | mdk-stage1/rescue-gui.c | 2 | ||||
-rw-r--r-- | perl-install/any.pm | 2 | ||||
-rwxr-xr-x | perl-install/c/Makefile.PL | 2 | ||||
-rw-r--r-- | perl-install/common.pm | 2 | ||||
-rw-r--r-- | perl-install/install/share/list.xml | 9 | ||||
-rwxr-xr-x | tools/install-xml-file-list | 2 |
12 files changed, 87 insertions, 51 deletions
diff --git a/Makefile.config b/Makefile.config index dabf65a5b..0c408328e 100644 --- a/Makefile.config +++ b/Makefile.config @@ -13,7 +13,7 @@ ARCH := $(ARCH:arm%=arm) PKG_ARCH := $(ARCH:i386=i586) -ifeq (x86_64, $(ARCH)) +ifneq (,$(filter $(ARCH), x86_64 aarch64)) LIB = lib64 else LIB = lib diff --git a/images/Makefile b/images/Makefile index e97ab5d45..abbbbfb44 100644 --- a/images/Makefile +++ b/images/Makefile @@ -2,7 +2,7 @@ include ../Makefile.config VERSION=2.91 PRODUCT=drakx-installer-images -KERNELS=$(shell rpm -qf /lib/modules/4.*) +KERNELS=$(shell rpm -qf /lib/modules/6.*) IMAGES_DEST = $(ROOTDEST)/install/images diff --git a/images/grub2.config b/images/grub2.config index 9ea55dfd2..0e1c57e90 100644 --- a/images/grub2.config +++ b/images/grub2.config @@ -1,12 +1,22 @@ +if test ${grub_cpu} == arm64 ; then set larch=aarch64 ; +elif test ${grub_cpu} == arm ; then set larch=armv7hl ; +elif test ${grub_cpu} == i386 ; then set larch=i386 ; +elif test ${grub_cpu} == x86_64 ; then set larch=x86_64 ; +else set larch=x86_64 ; +fi + insmod efi_gop -insmod efi_uga -insmod video_bochs -insmod video_cirrus +if [ ${grub_cpu} == i386 -o ${grub_cpu} == x86_64 ] ; then + insmod efi_uga + insmod video_bochs + insmod video_cirrus +fi insmod video_fb + insmod font -if loadfont ${prefix}/fonts/unicode.pf2 +if loadfont ($root)/EFI/BOOT/fonts/unicode.pf2 then insmod gfxterm set gfxmode=1024x768,800x600,640x480 @@ -20,16 +30,16 @@ export theme set timeout=10 -search --no-floppy --set=root -l 'Mageia-9-x86_64-netinstall' +search --no-floppy --set=root -l 'Mageia-9-netinstall' menuentry 'Start Mageia 10 (Cauldron) Install' { - linux /isolinux/x86_64/vmlinuz audit=0 quiet noiswmd - initrd /isolinux/x86_64/all.rdz + linux /isolinux/${larch}/vmlinuz audit=0 quiet noiswmd + initrd /isolinux/${larch}/all.rdz } menuentry 'Start Mageia 10 (Cauldron) Rescue' { - linux /isolinux/x86_64/vmlinuz audit=0 noiswmd rescue - initrd /isolinux/x86_64/all.rdz + linux /isolinux/${larch}/vmlinuz audit=0 noiswmd rescue + initrd /isolinux/${larch}/all.rdz } menuentry 'Memory Test' { diff --git a/images/make_boot_img b/images/make_boot_img index c7823b324..7ce9711ea 100755 --- a/images/make_boot_img +++ b/images/make_boot_img @@ -37,8 +37,9 @@ mkdir "images"; my @kernels = chomp_(cat_('all.kernels/.list')); my @all_images = ( - if_($arch =~ /i.86|x86_64/, 'isolinux', 'boot.iso', 'all.img', 'hd_grub.img'), - ); + if_($arch =~ /i.86|x86_64/, 'isolinux', 'all.img', 'hd_grub.img'), + 'boot.iso', +); my @images = @ARGV ? @ARGV : map { "images/$_" } @all_images; @@ -266,7 +267,7 @@ sub syslinux_all_files { rename("images/all.rdz-$_", "$dir/$arch/all.rdz"); } @$kernels; - _ "install -m 644 -D /boot/memtest* $dir/memtest"; + _ "install -m 644 -D /boot/memtest* $dir/memtest" if arch() =~ /.*86.*/; output("$dir/help.msg", syslinux_msg('help.msg.xml')); output("$dir/advanced.msg", syslinux_msg('advanced.msg.xml', @@ -313,50 +314,63 @@ EOF sub boot_iso { my ($iso, $kernels) = @_; + my $arch = arch(); syslinux_all_files('.boot_iso/isolinux', $kernels); - output('.boot_iso/VERSION', VERSION($kernels)); + output('.boot_iso/VERSION', VERSION($kernels)); - # for the boot iso, use standard isolinux - _ "cp $isolinux_bin .boot_iso/isolinux/isolinux.bin"; - _ "cp /usr/lib/syslinux/ifcpu.c32 .boot_iso/isolinux/ifcpu.c32"; - _ "cp /usr/lib/syslinux/ldlinux.c32 .boot_iso/isolinux/ldlinux.c32"; - _ "cp /usr/lib/syslinux/libcom32.c32 .boot_iso/isolinux/libcom32.c32"; - _ "cp /usr/lib/syslinux/libgpl.c32 .boot_iso/isolinux/libgpl.c32"; - _ "cp /usr/lib/syslinux/libmenu.c32 .boot_iso/isolinux/libmenu.c32"; - _ "cp /usr/lib/syslinux/libutil.c32 .boot_iso/isolinux/libutil.c32"; - _ "cp /usr/lib/syslinux/chain.c32 .boot_iso/isolinux/chain.c32"; - - my $with_gfxboot = 0; - _ "cp /usr/share/gfxboot/themes/Mageia/install/* .boot_iso/isolinux" if $with_gfxboot; -# _ "cp /home/pixel/cooker/soft/theme/mandriva-gfxboot-theme/inst/* .boot_iso/isolinux" if $with_gfxboot; - #_ "cp /home/teuf/mdv/src/mandriva-gfxboot-theme/inst/* .boot_iso/isolinux" if $with_gfxboot; - _ "cp /usr/lib/syslinux/gfxboot.c32 .boot_iso/isolinux/gfxboot.c32" if $with_gfxboot; - - output('.boot_iso/isolinux/isolinux.cfg', syslinux_cfg_all('', $with_gfxboot)); - - if ($ENV{BOOT_AUTOMATIC_METHOD}) { - _ "sed -i 's#\\(append .*\\)\\(splash quiet\\|rescue\\)\$#\\1\\2 automatic=$ENV{BOOT_AUTOMATIC_METHOD}#' .boot_iso/isolinux/isolinux.cfg"; + if ($arch =~ /.*86.*/) { + # for the boot iso, use standard isolinux + _ "cp $isolinux_bin .boot_iso/isolinux/isolinux.bin"; + _ "cp /usr/lib/syslinux/ifcpu.c32 .boot_iso/isolinux/ifcpu.c32"; + _ "cp /usr/lib/syslinux/ldlinux.c32 .boot_iso/isolinux/ldlinux.c32"; + _ "cp /usr/lib/syslinux/libcom32.c32 .boot_iso/isolinux/libcom32.c32"; + _ "cp /usr/lib/syslinux/libgpl.c32 .boot_iso/isolinux/libgpl.c32"; + _ "cp /usr/lib/syslinux/libmenu.c32 .boot_iso/isolinux/libmenu.c32"; + _ "cp /usr/lib/syslinux/libutil.c32 .boot_iso/isolinux/libutil.c32"; + _ "cp /usr/lib/syslinux/chain.c32 .boot_iso/isolinux/chain.c32"; + + my $with_gfxboot = 0; + _ "cp /usr/share/gfxboot/themes/Mageia/install/* .boot_iso/isolinux" if $with_gfxboot; + #_ "cp /home/pixel/cooker/soft/theme/mandriva-gfxboot-theme/inst/* .boot_iso/isolinux" if $with_gfxboot; + #_ "cp /home/teuf/mdv/src/mandriva-gfxboot-theme/inst/* .boot_iso/isolinux" if $with_gfxboot; + _ "cp /usr/lib/syslinux/gfxboot.c32 .boot_iso/isolinux/gfxboot.c32" if $with_gfxboot; + + output('.boot_iso/isolinux/isolinux.cfg', syslinux_cfg_all('', $with_gfxboot)); + + if ($ENV{BOOT_AUTOMATIC_METHOD}) { + _ "sed -i 's#\\(append .*\\)\\(splash quiet\\|rescue\\)\$#\\1\\2 automatic=$ENV{BOOT_AUTOMATIC_METHOD}#' .boot_iso/isolinux/isolinux.cfg"; + } + my $options = "-joliet -joliet-long -rational-rock -verbose -T -eltorito-boot isolinux/isolinux.bin -eltorito-catalog isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table"; + } else { + my $options = "-joliet -joliet-long -rational-rock -verbose -T -no-emul-boot -boot-load-size 4 -boot-info-table"; } - my $arch = arch(); - my $options = "-J -joliet-long -r -v -T -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table"; - my $cmd = "xorriso -as mkisofs -U -A 'Mageia-$ENV{DISTRIB_VERSION}-$arch-netinstall' -V 'Mageia-$ENV{DISTRIB_VERSION}-$arch-netinstall' -volset 'Mageia-$ENV{DISTRIB_VERSION}-$arch' $options"; + my $cmd = "xorriso -as mkisofs -untranslated-filenames -appid 'Mageia-$ENV{DISTRIB_VERSION}-netinstall' -volid 'Mageia-$ENV{DISTRIB_VERSION}-netinstall' -volset 'Mageia-$ENV{DISTRIB_VERSION}' $options"; + # create efi stuff on the fly - if ($arch =~ /x86_64/) { + if (!($arch =~ /i.86/)) { _ "mkdir -p .boot_iso/EFI/BOOT/"; # create efi loader my $efi_core = "configfile normal boot linux linux32 loadenv ls reboot search search_label"; my $efi_part_fs = "part_msdos part_gpt part_apple fat iso9660 udf"; my $efi_gfx = "gfxmenu gfxterm efi_gop efi_uga video video_bochs video_cirrus video_fb font png"; - _ "/usr/bin/grub2-mkimage --prefix='/EFI/BOOT' -O x86_64-efi -o .boot_iso/EFI/BOOT/bootx64.efi $efi_core $efi_part_fs $efi_gfx"; - _ "cp -f grub2.config .boot_iso/EFI/BOOT/grub.cfg"; + + _ "cp -f grub2.config wip-grub.cfg"; if ($ENV{BOOT_AUTOMATIC_METHOD}) { - _ "sed -i 's#\\(linux .*\\)#\\1 automatic=$ENV{BOOT_AUTOMATIC_METHOD}#' .boot_iso/EFI/BOOT/grub.cfg"; - _ "sed -i 's#timeout=[0-9]*#timeout=1#' .boot_iso/EFI/BOOT/grub.cfg"; + _ "sed -i '/linux /s|\\$| automatic=$ENV{BOOT_AUTOMATIC_METHOD}|' wip-grub.cfg"; + _ "sed -i 's#timeout=[0-9]*#timeout=1#' wip-grub.cfg"; + } + use feature "switch"; + given ($arch) { + when ('aarch64') { _ "/usr/bin/grub2-mkstandalone -O arm64-efi -o .boot_iso/EFI/BOOT/bootaa64.efi 'boot/grub/grub.cfg=./wip-grub.cfg' "; } + when ('armv7hl') { _ "/usr/bin/grub2-mkstandalone -O arm-efi -o .boot_iso/EFI/BOOT/bootaa32.efi 'boot/grub/grub.cfg=./wip-grub.cfg' "; } + when ('x86_64') { _ "/usr/bin/grub2-mkimage --prefix='/EFI/BOOT' -O x86_64-efi -o .boot_iso/EFI/BOOT/bootx64.efi $efi_core $efi_part_fs $efi_gfx"; } + default { print STDERR "Unexpected arch" ; } } # add theme + _ "cp -f wip-grub.cfg .boot_iso/EFI/BOOT/grub.cfg"; _ "cp -r -L /boot/grub2/themes .boot_iso/EFI/BOOT/"; _ "cp -f grub2.theme .boot_iso/EFI/BOOT/themes/maggy/theme.txt"; _ "mkdir -p .boot_iso/EFI/BOOT/fonts"; @@ -368,7 +382,9 @@ sub boot_iso { _ "mcopy -s -i $efi_img .boot_iso/EFI ::"; # create iso _ "$cmd -eltorito-alt-boot -e isolinux/efiboot.img -no-emul-boot -o $iso .boot_iso"; - _ "isohybrid -u $iso"; + if ($arch =~ /.*86./) { + _ "isohybrid -u $iso"; + } } else { _ "$cmd -o $iso .boot_iso"; _ "isohybrid -o 1 $iso"; diff --git a/kernel/list_modules.pm b/kernel/list_modules.pm index ee0d1f77b..566ce928c 100644 --- a/kernel/list_modules.pm +++ b/kernel/list_modules.pm @@ -329,6 +329,9 @@ our %l = ( 'cryptoloop', 'ulpi', + # Try pinbook pro display + qw(rockchipdrm phy-rockchip-inno-dsidphy phy-rockchip-naneng-combphy phy-rockchip-pcie phy-rockchip-typec pcie-rockchip-host io-domain rockchip-nand-controller spi-rockchip-sfc rockchip-rga rockchip_thermal rockchip_saradc hantro_vpu rockchip_rga videobuf2_dma_contig videobuf2_dma_sg videobuf2_vmalloc videobuf2_memops videobuf2_common industrialio_triggered_buffer usb_storage hid_multitouch mmc_block xhci_plat_hcd rtc_rk808 rk808_regulator clk_rk808 dw_hdmi polyval_ce panel_edp gpio_keys panfrost phy_rockchip_emmc phy_rockchip_inno_usb2 gpu_sched io_domain phy_rockchip_typec drm_dp_aux_bus pl330 pwm_rockchip sdhci_of_arasan sdhci_pltfm ohci_platform cqhci spi_rockchip ohci_hcd pwm_bl dw_mmc_rockchip ehci_platform dw_mmc_pltfm dw_mmc cpufreq_dt), + # Virtualization: qw(hv_balloon pci-hyperv pci-hyperv-intf), qw(mlx5-vfio-pci), diff --git a/mdk-stage1/init.c b/mdk-stage1/init.c index 7c48f64ec..7f18c3ee0 100644 --- a/mdk-stage1/init.c +++ b/mdk-stage1/init.c @@ -59,7 +59,7 @@ static inline long reboot(unsigned int command) char * env[] = { "PATH=/usr/bin:/bin:/sbin:/usr/sbin:/mnt/sbin:/mnt/usr/sbin:/mnt/bin:/mnt/usr/bin", "LD_LIBRARY_PATH=/lib:/usr/lib:/mnt/lib:/mnt/usr/lib" -#if defined(__x86_64__) +#if defined(__x86_64__) || defined(__aarch64__) ":/lib64:/usr/lib64:/mnt/lib64:/mnt/usr/lib64" #endif , diff --git a/mdk-stage1/rescue-gui.c b/mdk-stage1/rescue-gui.c index c7aae6126..e1b14be2e 100644 --- a/mdk-stage1/rescue-gui.c +++ b/mdk-stage1/rescue-gui.c @@ -48,7 +48,7 @@ static inline long reboot(void) char * env[] = { "PATH=/usr/bin:/bin:/sbin:/usr/sbin:/mnt/sbin:/mnt/usr/sbin:/mnt/bin:/mnt/usr/bin", "LD_LIBRARY_PATH=/lib:/usr/lib:/mnt/lib:/mnt/usr/lib" -#if defined(__x86_64__) +#if defined(__x86_64__) || defined(__aarch64__) ":/lib64:/usr/lib64:/mnt/lib64:/mnt/usr/lib64" #endif , diff --git a/perl-install/any.pm b/perl-install/any.pm index 9ffe0a86d..4b697bc5d 100644 --- a/perl-install/any.pm +++ b/perl-install/any.pm @@ -991,7 +991,7 @@ sub writeandclean_ldsoconf { my @default = ('/lib', '/usr/lib'); #- no need to have /lib and /usr/lib in ld.so.conf my @suggest = ('/usr/lib/qt3/lib'); #- needed for upgrade where package renaming can cause this to disappear - if (arch() =~ /x86_64/) { + if (arch() =~ /.*64$/) { @default = map { $_, $_ . '64' } @default; @suggest = map { $_, $_ . '64' } @suggest; } diff --git a/perl-install/c/Makefile.PL b/perl-install/c/Makefile.PL index f776d27f2..8b4c08a6f 100755 --- a/perl-install/c/Makefile.PL +++ b/perl-install/c/Makefile.PL @@ -4,7 +4,7 @@ use Config; # See lib/ExtUtils/MakeMaker.pm for details of how to influence # the contents of the Makefile that is written. -my $lib = arch() =~ /x86_64/ ? 'lib64' : 'lib'; +my $lib = arch() =~ /64$/ ? 'lib64' : 'lib'; my $libs = '-lldetect -lparted'; diff --git a/perl-install/common.pm b/perl-install/common.pm index 508e6b31f..82c101dfa 100644 --- a/perl-install/common.pm +++ b/perl-install/common.pm @@ -715,7 +715,7 @@ sub update_gnomekderc_no_create { } sub get_libdir() { - arch() =~ /x86_64/ ? "lib64" : "lib"; + arch() =~ /64$/ ? "lib64" : "lib"; } =item is_uefi() diff --git a/perl-install/install/share/list.xml b/perl-install/install/share/list.xml index 9c18a3ae9..828a623ce 100644 --- a/perl-install/install/share/list.xml +++ b/perl-install/install/share/list.xml @@ -241,11 +241,13 @@ </from> <filter command="strip"> +<from dir="/lib"> + ld-linux*.so.* +</from> <from dir="/LIB"> libnss_files.so.2 libnss_dns.so.2 libresolv.so.2 - ld-linux*.so.* <!-- needed for mount.ntfs-3g --> libfuse.so.2 @@ -575,6 +577,11 @@ asm/unistd_32.ph asm/unistd_64.ph </if> + <if ARCH="aarch64"> + asm-generic/unistd.ph + asm-generic/bitsperlong.ph + asm/bitsperlong.ph + </if> asm/unistd.ph auto/B/B.so auto/Cwd/Cwd.so diff --git a/tools/install-xml-file-list b/tools/install-xml-file-list index 64c70b9c6..f0bf5fd23 100755 --- a/tools/install-xml-file-list +++ b/tools/install-xml-file-list @@ -25,7 +25,7 @@ my $verbose; my $initial_dir = cwd(); my $ARCH = arch() =~ /i.86/ ? 'i386' : arch(); $ARCH =~ s/^(arm).*/$1/; -my $LIB = arch() =~ /x86_64/ ? "lib64" : "lib"; +my $LIB = arch() =~ /64$/ ? "lib64" : "lib"; my $base_cpio_options = '-pumd --quiet'; |