Kho lưu trữ nhân git Ubuntu
Các debian/
siêu dữ liệu chứa các configs, và cây hạt nhân được theo dõi cả hai trong một kho git duy nhất cho mỗi phát hành: http://kernel.ubuntu.com/git/ubuntu/ubuntu-bionic.git/
Repo sau đó có một thẻ cho mỗi gói kernel, ví dụ như trong Ubuntu 18.04 của tôi, tôi có gói linux-image-4.15.0-36-generic
đó, mà tôi đoán tương ứng với thẻ:Ubuntu-4.15.0-36.39
.
https://help.ubfox.com/community/Kernel/Compile giải thích cách biên dịch kernel, và do đó cách định cấu hình nó và cách cấu hình được hợp nhất vào cấu hình cuối cùng.
Tất cả các cấu hình dường như nằm dưới debian.master/config/ARCH
:
config.common.ubuntu
config.common.ports
amd64/config.common.amd64
amd64/config.flavour.generic
amd64/config.flavour.lowlatency
Vì vậy, tôi đoán rằng linux-image-4.15.0-36-generic
sẽ hợp nhất config.common.ubuntu
, config.common.amd64
và config.flavour.generic
.
Kịch bản hợp nhất dường như là debian / scripts / misc / kernelconfig và nó chứa nhận xét:
# Merge configs
# We merge config.common.ubuntu + config.common.<arch> +
# config.flavour.<flavour>
TODO: cũng có một debian.master/config/annotations
tệp dường như chứa giá trị cho mỗi cấu hình cho mỗi vòm, nó được sử dụng như thế nào?
Ai đó nên xác nhận tất cả điều đó bằng cách chạy các tập lệnh xây dựng ở chế độ dài dòng bằng cách nào đó, nhưng bây giờ tôi lười biếng, bạn có thể xây dựng với:
git clone git://kernel.ubuntu.com/ubuntu/ubuntu-bionic.git linux
cd linux
git checkout Ubuntu-4.15.0-36.39
fakeroot debian/rules clean
debian/rules updateconfigs
fakeroot debian/rules build-generic
Sau đó tôi đã xác nhận rằng điều này tạo ra cấu hình chính xác giống như tôi có tại địa phương:
diff debian/build/build-generic/.config /boot/config-4.15.0-36-generic
Lưu ý rằng git repo kernel Ubuntu cũng có hàng ngàn bản vá trên Linux thượng nguồn, vì vậy chỉ cần cấu hình đúng sẽ không đủ để tái tạo hành vi.
Chúng ta cũng có thể kiểm tra ba lần xem kernel mà chúng ta đã tạo có khớp với kernel đã đóng gói hay không bằng cách nhìn vào phần khởi động của dmesg
boot, có chứa:
[ 0.000000] Linux version 4.15.0-36-generic (buildd@lgw01-amd64-031) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #39-Ubuntu SMP Mon Sep 24 16:19:09 UTC 2018 (Ubuntu 4.15.0-36.39-generic 4.15.18)
Cấu hình trong .deb
Như đã đề cập bởi những người khác, cấu hình đầy đủ cuối cùng cũng có mặt dưới:
/boot/config-4.15.0-36-generic
tương ứng với từng ảnh nhân Linux:
/boot/vmlinuz-4.15.0-36-generic
Vì vậy, đối với các phiên bản khác, chúng ta có thể tìm thấy gói nào đến từ:
dpkg -S /boot/config-4.15.0-36-generic
cung cấp cho:
linux-modules-4.15.0-36-generic: /boot/config-4.15.0-36-generic
và sau đó bạn chỉ có thể tải xuống .deb
từ https://packages.ubfox.com/bionic-updates/linux-modules-4.15.0-36-generic
và giải nén nó để có được cấu hình:
mkdir config
cd config
wget http://mirrors.kernel.org/ubuntu/pool/main/l/linux/linux-modules-4.15.0-36-generic_4.15.0-36.39_amd64.deb
ar x linux-modules-4.15.0-36-generic_4.15.0-36.39_amd64.deb
tar -xvf data.tar.xz
cat ./boot/config-4.15.0-36-generic
Đã thử nghiệm trong Ubuntu 18.04.
/boot-config-*
hơn là cố gắng mô phỏng thuật sĩ họ sử dụng để tự động tạo chúng trong thời gian xây dựng. Thật xấu hổ vì không có cách nào lấy một tập tin từ một gói trực tuyến (hoặc ở đó?)