Giá trị tiff kernel có nghĩa là gì?


20

Chạy cat /proc/sys/kernel/taintedin giá trị mờ hạt nhân hiện tại (trong cơ sở 10). Sự hiểu biết của tôi là giá trị này là một bitfield, trong đó mỗi bit chỉ ra sự vắng mặt hoặc hiện diện của một loại vết bẩn cụ thể. Bạn có thể trích xuất các bit bằng cách sử dụng

python3 -c 'from pprint import pprint; pprint(list(zip(range(50), reversed(bin(int(open("/proc/sys/kernel/tainted").read()))[2:]))))'

Tôi đã tìm kiếm tài liệu, nhưng những gì tôi thấy chỉ xác định ý nghĩa của các bit từ 0 đến 10. Ví dụ: http://www.kernel.org/doc/Documentation/sysctl/kernel.txt nói:

tainted:

Non-zero if the kernel has been tainted. Numeric values, which can be
ORed together. The letters are seen in "Tainted" line of Oops reports.

     1 (P):  A module with a non-GPL license has been loaded, this
             includes modules with no license.
             Set by modutils >= 2.4.9 and module-init-tools.
     2 (F): A module was force loaded by insmod -f.
            Set by modutils >= 2.4.9 and module-init-tools.
     4 (S): Unsafe SMP processors: SMP with CPUs not designed for SMP.
     8 (R): A module was forcibly unloaded from the system by rmmod -f.
    16 (M): A hardware machine check error occurred on the system.
    32 (B): A bad page was discovered on the system.
    64 (U): The user has asked that the system be marked "tainted". This
            could be because they are running software that directly modifies
            the hardware, or for other reasons.
   128 (D): The system has died.
   256 (A): The ACPI DSDT has been overridden with one supplied by the user
            instead of using the one provided by the hardware.
   512 (W): A kernel warning has occurred.
  1024 (C): A module from drivers/staging was loaded.
  2048 (I): The system is working around a severe firmware bug.
  4096 (O): An out-of-tree module has been loaded.
  8192 (E): An unsigned module has been loaded in a kernel supporting module
            signature.
 16384 (L): A soft lockup has previously occurred on the system.
 32768 (K): The kernel has been live patched.
 65536 (X): Auxiliary taint, defined and used by for distros.
131072 (T): The kernel was built with the struct randomization plugin.

Tôi cũng đã thử xem tài liệu cho kernel Ubuntu bằng cách cài đặt linux-docgói và mở zless /usr/share/doc/linux-doc/sysctl/kernel.txt.gz, nhưng nó vẫn chỉ liệt kê tối đa 1024.

Trong trường hợp của tôi, tôi đang chạy kernel PAE mặc định (3.2.0-36-generic-pae) trên Chính xác. Tôi cũng đang xem bit 12 set.

Tài liệu đầy đủ về các bit bị nhiễm bẩn có ý nghĩa gì trên các hạt nhân Ubuntu?

Câu trả lời:


15

Nhìn vào panic.c:

/**
 *      print_tainted - return a string to represent the kernel taint state.
 *
 *  'P' - Proprietary module has been loaded.
 *  'F' - Module has been forcibly loaded.
 *  'S' - SMP with CPUs not designed for SMP.
 *  'R' - User forced a module unload.
 *  'M' - System experienced a machine check exception.
 *  'B' - System has hit bad_page.
 *  'U' - Userspace-defined naughtiness.
 *  'D' - Kernel has oopsed before
 *  'A' - ACPI table overridden.
 *  'W' - Taint on warning.
 *  'C' - modules from drivers/staging are loaded.
 *  'I' - Working around severe firmware bug.
 *  'O' - Out-of-tree module has been loaded.
 *  'E' - Unsigned module has been loaded.
 *  'L' - A soft lockup has previously occurred.
 *  'K' - Kernel has been live patched.
 *
 *      The string is overwritten by the next call to print_tainted().
 */

6
kernel.txtbây giờ tài liệu hai lá cờ cuối cùng.
Tobu
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.