Summary: | Problem with builtin modules and different kernel types | ||||||
---|---|---|---|---|---|---|---|
Product: | Sisyphus | Reporter: | Vitaly Kuznetsov <vitty> | ||||
Component: | make-initrd | Assignee: | Alexey Gladkov <legion> | ||||
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus | ||||
Severity: | normal | ||||||
Priority: | P3 | CC: | glebfm, ldv, legion, mike, placeholder | ||||
Version: | unstable | ||||||
Hardware: | all | ||||||
OS: | Linux | ||||||
Attachments: |
|
Description
Vitaly Kuznetsov
2012-05-11 14:42:40 MSK
Пытаюсь собрать initrd для ядра std-def из-под ядра el-smp. Проблема в том, что не добавляется модуль scsi_mod т.к. в el-smp он встроенный. Не работает даже MODULES_PRELOAD="scsi_mod" make-initrd -v -k 3.3.5-std-def-alt1 с сообщением "add-module: Builtin module "scsi_mod"" Created attachment 5457 [details]
make-initrd -v -k 3.3.5-std-def-alt1 bug-report
Проблема в следующем: # depinfo --set-version 3.3.5-std-def-alt1 scsi_mod builtin scsi_mod # find /lib/modules/3.3.5-std-def-alt1/ -name "scsi_mod.ko" /lib/modules/3.3.5-std-def-alt1/kernel/drivers/scsi/scsi_mod.ko т.е. depinfo работает некорректно Вот не оставляют шансов создатели kmod полюбить их. kmod_module_get_initstate() лезет в /sys если модуля нет в modules.builtin. Все функции для работы с базой modules.builtin приватные. kmod_module_get_path() возвращает неинициализированный указатель если модуль builtin. И нет никаких путей получить эту информацию, хотя она есть. Предётся вернуть старый код, который делает отдельный а-ля: grep '/modname.ko$' modules.builtin. А не мог бы ты выполнить на этой машине: $ runas modinfo /bin/kmod -k 3.3.5-std-def-alt1 scsi_mod $ modinfo -k 3.3.5-std-def-alt1 scsi_mod ? (В ответ на комментарий №5)
> А не мог бы ты выполнить на этой машине:
>
> $ runas modinfo /bin/kmod -k 3.3.5-std-def-alt1 scsi_mod
> $ modinfo -k 3.3.5-std-def-alt1 scsi_mod
У меня на этой машине не был установлен kmod. Если установить, то получим следующее:
# runas modinfo /bin/kmod -k 3.3.5-std-def-alt1 scsi_mod
filename: /lib/modules/3.3.5-std-def-alt1/kernel/drivers/scsi/scsi_mod.ko
license: GPL
description: SCSI core
srcversion: 9F74F6882E1F8B530A14AF9
depends:
intree: Y
vermagic: 3.3.5-std-def-alt1 SMP mod_unload modversions
parm: dev_flags:Given scsi_dev_flags=vendor:model:flags[,v:m:f] add black/white list entries for vendor and model with an integer value of flags to the scsi device info list (string)
parm: default_dev_flags:scsi default device flag integer value (int)
parm: max_luns:last scsi LUN (should be between 1 and 2^32-1) (uint)
parm: scan:sync, async or none (string)
parm: max_report_luns:REPORT LUNS maximum number of LUNS received (should be between 1 and 16384) (uint)
parm: inq_timeout:Timeout (in seconds) waiting for devices to answer INQUIRY. Default is 20. Some devices may need more; most need less. (uint)
parm: scsi_logging_level:a bit mask of logging levels (int)
# modinfo -k 3.3.5-std-def-alt1 scsi_mod
filename: /lib/modules/3.3.5-std-def-alt1/kernel/drivers/scsi/scsi_mod.ko
license: GPL
description: SCSI core
srcversion: 9F74F6882E1F8B530A14AF9
depends:
intree: Y
vermagic: 3.3.5-std-def-alt1 SMP mod_unload modversions
parm: dev_flags:Given scsi_dev_flags=vendor:model:flags[,v:m:f] add black/white list entries for vendor and model with an integer value of flags to the scsi device info list (string)
parm: default_dev_flags:scsi default device flag integer value (int)
parm: max_luns:last scsi LUN (should be between 1 and 2^32-1) (uint)
parm: scan:sync, async or none (string)
parm: max_report_luns:REPORT LUNS maximum number of LUNS received (should be between 1 and 16384) (uint)
parm: inq_timeout:Timeout (in seconds) waiting for devices to answer INQUIRY. Default is 20. Some devices may need more; most need less. (uint)
parm: scsi_logging_level:a bit mask of logging levels (int)
Не мог бы ты попробовать версию make-initrd из моего git ? |