赞
踩
- wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.90.tar.gz
- tar -xf linux-4.19.90.tar.gz
- cd linux-4.19.90
- make defconfig
- make -j64
- make modules_install
- make install
重启后,卡在 EFI stub: Exiting boot services and installing virtual address map...
经过实验,已知采用系统自带的config文件(config-4.19.90-2112.8.0.0131.oe1.aarch64)可以正常引导启动。对比config-4.19.90-2112.8.0.0131.oe1.aarch64 与 make defconfig 生成出来的.config文件,发现关键差异
测试重新准备干净的源码,make defconfig后,手动在.config配置
CONFIG_ARCH_PHYTIUM=y
重新编译,安装有以下报错
仍然卡在 EFI stub: Exiting boot services and installing virtual address map...
原版的代码并没有CONFIG_ARCH_PHYTIUM的定义及应用
并且make之后,编译器自动去掉了这个无效的配置
- [root@localhost yeqiang]# rm linux-4.19.90 -rf
- [root@localhost yeqiang]# tar -xf linux-4.19.90.tar.gz
- [root@localhost yeqiang]# cp /boot/config-4.19.90-2112.8.0.0131.oe1.aarch64 linux-4.19.90/.config
- [root@localhost yeqiang]# cd linux-4.19.90
- [root@localhost yeqiang]# make -j64
差异较多,重点筛选ARM64相关差异,调整后,与原来的defconfig差异如下
[root@localhost linux-4.19.90]# diff ../4.19.90-defconfig.config .config 160d159 < CONFIG_HAVE_UID16=y 164d162 < CONFIG_UID16=y 213,217c211,215 < CONFIG_ARM64_PAGE_SHIFT=12 < CONFIG_ARM64_CONT_SHIFT=4 < CONFIG_ARCH_MMAP_RND_BITS_MIN=18 < CONFIG_ARCH_MMAP_RND_BITS_MAX=33 < CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11 --- > CONFIG_ARM64_PAGE_SHIFT=16 > CONFIG_ARM64_CONT_SHIFT=5 > CONFIG_ARCH_MMAP_RND_BITS_MIN=14 > CONFIG_ARCH_MMAP_RND_BITS_MAX=29 > CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=7 234c232 < CONFIG_PGTABLE_LEVELS=4 --- > CONFIG_PGTABLE_LEVELS=3 372d369 < CONFIG_ARM64_ERRATUM_845719=y 387c384 < CONFIG_ARM64_4K_PAGES=y --- > # CONFIG_ARM64_4K_PAGES is not set 389,390c386,387 < # CONFIG_ARM64_64K_PAGES is not set < # CONFIG_ARM64_VA_BITS_39 is not set --- > CONFIG_ARM64_64K_PAGES=y > # CONFIG_ARM64_VA_BITS_42 is not set 393a391 > # CONFIG_ARM64_PA_BITS_52 is not set 398c396 < CONFIG_NR_CPUS=64 --- > CONFIG_NR_CPUS=1024 401c399 < CONFIG_NODES_SHIFT=2 --- > CONFIG_NODES_SHIFT=4 420d417 < CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y 429c426 < CONFIG_FORCE_MAX_ZONEORDER=11 --- > CONFIG_FORCE_MAX_ZONEORDER=14 434d430 < # CONFIG_ARMV8_DEPRECATED is not set 458,459c454,455 < # CONFIG_ARM64_ACPI_PARKING_PROTOCOL is not set < CONFIG_CMDLINE="" --- > CONFIG_ARM64_ACPI_PARKING_PROTOCOL=y > CONFIG_CMDLINE="console=ttyAMA0" 464,465d459 < CONFIG_COMPAT=y < CONFIG_SYSVIPC_COMPAT=y 581d574 < CONFIG_MESON_SM=y 714,716c707 < CONFIG_ARCH_MMAP_RND_BITS=18 < CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y < CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11 --- > CONFIG_ARCH_MMAP_RND_BITS=14 718,720d708 < CONFIG_OLD_SIGSUSPEND3=y < CONFIG_COMPAT_OLD_SIGACTION=y < CONFIG_COMPAT_32BIT_TIME=y 768d755 < CONFIG_BLOCK_COMPAT=y 804d790 < CONFIG_COMPAT_BINFMT_ELF=y 2261d2246 < # CONFIG_VMXNET3 is not set 5925d5909 < CONFIG_MESON_EFUSE=m 6190d6173 < CONFIG_KEYS_COMPAT=y 6430d6412 < CONFIG_AUDIT_COMPAT_GENERIC=y
重新基于defconfig,操作上述差异修改
仍然卡在 EFI stub: Exiting boot services and installing virtual address map...
说明关键配置没找到或者不全,后续有空再继续。
参考:https://blog.csdn.net/hknaruto/article/details/129360777
注意:openEuler 20.03版本内核与标准版本有较大差异,部分配置是无效的,如CONFIG_ARCH_PHYTIUM
参考过程
- wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.19.90.tar.gz
- tar -xf linux-4.19.90.tar.gz
- cd linux-4.19.90
- cp /boot/config-4.19.90-2112.8.0.0131.oe1.aarch64 .config
- make -j64
- make modules_install
- make install
效果
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。