/ proc / modules 中列出的某些模块标有(F) - 我认为意味着强行加载。 我相信他们不是。如果我卸载并重新加载模块,则(F)消失。
例如:
squashfs 47871 1 - Live 0xffffffffa0100000 (F) ast 56335 1 - Live 0xffffffffa00c4000 (F) ttm 79926 1 ast, Live 0xffffffffa00e5000 (F) drm_kms_helper 50129 1 ast, Live 0xffffffffa00d7000 (F) drm 272304 3 ast,ttm,drm_kms_helper, Live 0xffffffffa0080000 (F) i2c_algo_bit 13250 1 ast, Live 0xffffffffa0053000 (F) i2c_core 38513 6 i2c_dev,i2c_i801,ast,drm_kms_helper,drm,i2c_algo_bit, \ Live 0xffffffffa0075000 (F) usb_storage 56610 0 - Live 0xffffffffa005d000 (F) mpt2sas 189642 16 - Live 0xffffffffa0023000 (F) scsi_transport_sas 39231 1 mpt2sas, Live 0xffffffffa0012000 (F)
答案 0 :(得分:0)
使用source,Luke!
static size_t module_flags_taint(struct module *mod, char *buf)
{
size_t l = 0;
if (mod->taints & (1 << TAINT_PROPRIETARY_MODULE))
buf[l++] = 'P';
if (mod->taints & (1 << TAINT_OOT_MODULE))
buf[l++] = 'O';
if (mod->taints & (1 << TAINT_FORCED_MODULE))
buf[l++] = 'F';
if (mod->taints & (1 << TAINT_CRAP))
buf[l++] = 'C';
if (mod->taints & (1 << TAINT_UNSIGNED_MODULE))
buf[l++] = 'E';
/*
* TAINT_FORCED_RMMOD: could be added.
* TAINT_CPU_OUT_OF_SPEC, TAINT_MACHINE_CHECK, TAINT_BAD_PAGE don't
* apply to modules.
*/
return l;
}
这些模块肯定是被迫的。 (当使用版本信息编译内核时也会发生这种情况,但模块不是。)