Tôi có thể lấy tập tin kernel .config ở đâu?


15

Tôi đang sử dụng Maverick với các nhân mới nhất có sẵn trên kernel.org và tự mình xây dựng chúng. Cho đến bây giờ tôi đã dựa trên cấu hình của mình khỏi kernel Maverick và chấp nhận make oldconfigmặc định. Tôi đã làm điều này trong 3 phiên bản chính bây giờ vì vậy tôi nghĩ rằng tôi bắt đầu tụt lại phía sau "tiêu chuẩn" hiện tại.

Tôi muốn căn cứ lại hạt nhân của tôi ra khỏi .configtập tin Natty mới . Cái này có sẵn ở đâu đó trực tuyến hay tôi phải tải toàn bộ gói kernel và giải nén nó?

Chỉnh sửa: Tôi đã tự rút cấu hình từ gói hạt nhân Natty mới nhất và tôi có thể xác nhận rằng tôi có thể thực hiện việc này sớm hơn. Rất nhiều sự khác biệt giữa cấu hình "tiến hóa" cũ của tôi và mặc định Natty. Bây giờ nếu tôi có thể làm điều này mà không cần 20 phút săn lùng và tải xuống gói để tôi có thể tái lập trong tương lai.

Câu trả lời:



30

Mỗi linux-imagegói chứa tệp cấu hình chính xác mà nó được xây dựng cùng /boot/config-*. Để xem tệp cấu hình cho nhân Linux hiện đang chạy, hãy:

  • less /boot/config-$(uname -r)

Tôi đã kiểm tra với những người Ubuntu kernel (trên freenode #ubuntu-kernel) và họ đã khẳng định niềm tin của tôi rằng không có thực sự " các cấu hình", nhưng nó thực sự được xây dựng tại build / thời gian biên dịch bằng cách bao gồm một sốKconfig file; những điều này phụ thuộc vào kiến ​​trúc và mục tiêu chính xác (máy tính để bàn / máy chủ / đám mây). Bạn sẽ có thể đọc đoạn hội thoại (ngắn) đó tại:

Một danh sách các loại đó có thể được tìm thấy bằng cách sử dụng gói.ubfox.com và tìm kiếm sau đây:

Săn bắn, xung quanh, có vẻ như .configcũng được bao gồm trong các linux-headers-*gói. Đây là .debcác tệp (là các .artài liệu lưu trữ đơn giản sẽ mở ra file-roller) và chỉ có khoảng 800 kB mỗi tệp . Nếu bạn biết mục tiêu, kiến ​​trúc và phiên bản cụ thể mà bạn theo đuổi, bạn có thể lấy chúng trực tiếp từ Launchpad hoặc từ chính kho lưu trữ:

  1. archive.ubfox.com/ubfox/pool/main/l/linux/ linux-header-2.6 * .deb
  2. sau đó nhìn vào /usr/src/linux-headers-2.6*/.config

Nếu bạn muốn tự động hóa toàn bộ quá trình thành một lệnh, bạn có thể thử cách sau; hãy chắc chắn rằng bạn giữ tất cả trên một dòng!

Mong rằng sẽ giúp!


Cảm ơn đã điều tra này. Đọc xong irclog, có vẻ như tôi sẽ không có được thứ mình muốn mà không cần tải xuống. Tự động hóa khôn ngoan, vẫn dễ dàng lấy gói và giải nén nó /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 ở đó?)
Oli

Tôi nghĩ rằng tôi sẽ hỏi điều đó trong một câu hỏi riêng biệt.
Oli

4

Trên hệ thống Ubuntu 11.10 của tôi, cấu hình kernel nằm trong tệp '/boot/config-3.0.0-12-generic'.


1
Câu hỏi dành cho 11.04, không phải 11.10.
Christopher Kyle Horton

1

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-genericsẽ hợp nhất config.common.ubuntu, config.common.amd64config.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/annotationstệ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 dmesgboot, 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 .debtừ 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.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.