Hôm nay, Linus Torvalds đã giải quyet irri của mình với ARM64: Cách cài đặt hình ảnh nhân kernel được nén
Sau khi nhận được máy trạm Ampere Altra Max từ Ampere Computing, Linus Torvalds đã bắt đầu học hỏi nhiều hơn về ARM64 vì nó mang lại cho anh nhiều sức mạnh tính toán AArch64 hơn so với MacBook của anh dựa trên Apple Silicon. Torvalds bắt đầu cửa sổ hợp nhất Linux 6.11 bằng cách đưa một số mã riêng của mình để làm tăng cường hơn nữa hạt nhân ARM64 và khi chúng ta tiến gần cuối của cửa sổ hợp nhất v6.11 vào cuối tuần này, anh đã hợp nhất thêm một số mã ARM64 khác.
Nổi bật nhất trong số đó là vấn đề mà Linus Torvalds đang gặp phải, là việc hình ảnh nhân kernel ARM64 bị nén khi cài đặt không tự động được sau khi chạy lệnh “make install”. Các kiến trúc khác khi chạy lệnh “make install” trên hạt nhân Linux sẽ chọn hình ảnh nhân kernel bị nén nếu đã được xây, nhưng không dành cho ARM64. Do tình trạng hỗn hợp của bootloader ARM và không có trình giải nén tích hợp khác, trên ARM64 khi cài đặt hạt nhân Linux bạn cần chạy “make zinstall” mà không tự động chọn tùy chọn cài đặt theo mặc định.
Vì lý do như vậy, Linus Torvalds đã thêm một tùy chọn mới “COMPRESSED_INSTALL” vào Kconfig ARM64. Khi tùy chọn này được kích hoạt, hình ảnh nén sẽ được cài đặt mặc định với lệnh “make install”.
Vậy nên những người thoải mái và biết rằng hệ thống/bootloader của họ có thể xử lý hình ảnh nhân kernel ARM64 đã nén có thể kích hoạt tùy chọn CONFIG_COMPRESSED_INSTALL để họ có thể dựa vào “make install” mà không cần phải nhớ lệnh “zinstall”.
Linus Torvalds đang tiếp tục cải thiện sự tiện ích cho hạt nhân Linux ARM64. Tìm kiếm COMPRESSED_INSTALL trong các tùy chọn kernel ARM64 Linux 6.11.#ARM64 #Linux611 #LinusTorvalds #KernelImageCompression
Nguồn: https://www.phoronix.com/news/Torvalds-ARM64-Compress-Kernel
Following Linus Torvalds receiving an Ampere Altra Max workstation from Ampere Computing, he’s been dabbling more with ARM64 now that it affords him more AArch64 compute power than his Apple Silicon powered MacBook. Torvalds kicked off the Linux 6.11 merge window by landing some of his own code to further enhance the ARM64 kernel and as we approach the end of the v6.11 merge window this weekend, he’s merged some more ARM64 code.
Linus Torvalds landed another ARM64 change for Linux 6.11 as a result of his personal dealing with more ARM64 activity on his Ampere Altra Max system. His latest itch to scratch has been over ARM64 Linux kernel builds not installing compressed kernel images on the “make install” command. Other architectures when running “make install” on the Linux kernel will opt for the compressed kernel image if built, but not for ARM64. Due to the mixed state of ARM bootloaders and not having a built-in decompressor otherwise, on ARM64 when installing the Linux kernel you need to specifically run “make zinstall” to install the compressed kernel image.
Due to kernel developers like Torvalds and other dealing routinely with multiple CPU architectures, having to remember that “make zinstall” can be a nuisance.
ARM64 maintainer Will Deacon doesn’t believe it’s wise changing the default behavior of “make install” on ARM64, so as an alternative approach Linus Torvalds added a new “COMPRESSED_INSTALL” ARM64 Kconfig option. When this option is enabled, the compressed image will be installed by default with “make install”.
So those comfortable and knowing that their system/bootloader can handle compressed ARM64 kernel images can enable the CONFIG_COMPRESSED_INSTALL option so they can go ahead and rely on “make install” without having to remember doing “zinstall”.
Torvalds wrote in the patch that he just merged to Linux 6.11 Git:
On arm64 we build compressed images, but “make install” by default will install the old non-compressed one. To actually get the compressed image install, you need to use “make zinstall”, which is not the usual way to install a kernel.
Which may not sound like much of an issue, but when you deal with multiple architectures (and years of your fingers knowing the regular “make install” incantation), this inconsistency is pretty annoying.
But as Will Deacon says:
“Sadly, bootloaders being as top quality as you might expect, I don’t think we’re in a position to rely on decompressor support across the board. Our Image.gz is literally just that — we don’t have a built-in decompressor (nor do I think we want to rush into that again after the fun we had on arm32) and the recent EFI zboot support solves that problem for platforms using EFI.
Changing the default ‘install’ target terrifies me. There are bound to be folks with embedded boards who’ve scripted this and we could really ruin their day if we quietly give them a compressed kernel that their bootloader doesn’t know how to handle :/”
So make this conditional on a new “COMPRESSED_INSTALL” option.
Linus Torvalds is on a nice spree of some usability improvements for the ARM64 Linux kernel. Look for COMPRESSED_INSTALL in Linux 6.11 ARM64 kernel options.