LinuxForum.Fans
Тема

Проблема с софтом управления RAID-контоллера

Автор: Undel 6 сообщений 2604 просмотров
#139436

Дано:
- Debian 6.0 "Squeeze" с ядром 2.6.32-5 (дернуло ж меня обновляться с Lenny...);
- RAID-контроллер HighPoint RocketRaid 2640X1;
- установленный драйвер для данного контроллера (модуль ядра).

Требуется:
заставить работать софт управления

Что имеем в жизни:
При попытке запуска демона управления hptsvr получаем такой отлуп

text
# /etc/init.d/hptdaemon start
Starting hptsvr daemonDriver is not loaded.

Хотя драйвер-то загружен:

text
# lsmod | grep rr
rr26xx                248896  1
scsi_mod              122149  3 sd_mod,libata,rr26xx

Конфиг-файл содержит требуемую строку с именем модуля:

text
# cat /etc/hptcfg
rr26xx

Starce для init-скрипта:

text
# strace /etc/init.d/hptdaemon start
execve("/etc/init.d/hptdaemon", ["/etc/init.d/hptdaemon", "start"], [/* 16 vars */]) = 0
brk(0)                                  = 0x16b4000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7f3f903000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=47775, ...}) = 0
mmap(NULL, 47775, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f7f3f8f7000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0`\355\1\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1432968, ...}) = 0
mmap(NULL, 3541032, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f7f3f387000
mprotect(0x7f7f3f4df000, 2093056, PROT_NONE) = 0
mmap(0x7f7f3f6de000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x157000) = 0x7f7f3f6de000
mmap(0x7f7f3f6e3000, 18472, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f7f3f6e3000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7f3f8f6000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7f3f8f5000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f7f3f8f4000
arch_prctl(ARCH_SET_FS, 0x7f7f3f8f5700) = 0
mprotect(0x7f7f3f6de000, 16384, PROT_READ) = 0
mprotect(0x7f7f3f905000, 4096, PROT_READ) = 0
munmap(0x7f7f3f8f7000, 47775)           = 0
getpid()                                = 4581
rt_sigaction(SIGCHLD, {SIG_DFL, [CHLD], SA_RESTORER|SA_RESTART, 0x7f7f3f3b91e0}, {SIG_DFL, [], 0}, 8) = 0
geteuid()                               = 0
brk(0)                                  = 0x16b4000
brk(0x16d5000)                          = 0x16d5000
getppid()                               = 4580
stat("/root/Fucking_RAID/CLI-Linux-3.5-100701/deb", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
stat(".", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
open("/etc/init.d/hptdaemon", O_RDONLY) = 3
fcntl(3, F_DUPFD, 10)                   = 10
close(3)                                = 0
fcntl(10, F_SETFD, FD_CLOEXEC)          = 0
rt_sigaction(SIGINT, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGINT, {0x40f540, ~[RTMIN RT_1], SA_RESTORER, 0x7f7f3f3b91e0}, NULL, 8) = 0
rt_sigaction(SIGQUIT, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGQUIT, {SIG_DFL, ~[RTMIN RT_1], SA_RESTORER, 0x7f7f3f3b91e0}, NULL, 8) = 0
rt_sigaction(SIGTERM, NULL, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGTERM, {SIG_DFL, ~[RTMIN RT_1], SA_RESTORER, 0x7f7f3f3b91e0}, NULL, 8) = 0
read(10, "#! /bin/sh                      "..., 8192) = 1971
write(1, "Starting hptsvr daemon", 22Starting hptsvr daemon)  = 22
pipe([3, 4])                            = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f7f3f8f59d0) = 4582
close(4)                                = 0
read(3, "rr26xx\n", 128)                = 7
read(3, "", 128)                        = 0
close(3)                                = 0
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 4582
--- SIGCHLD (Child exited) @ 0 (0) ---
open("/dev/null", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
fcntl(1, F_DUPFD, 10)                   = 11
close(1)                                = 0
fcntl(11, F_SETFD, FD_CLOEXEC)          = 0
dup2(3, 1)                              = 1
close(3)                                = 0
open("/dev/null", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3
fcntl(2, F_DUPFD, 10)                   = 12
close(2)                                = 0
fcntl(12, F_SETFD, FD_CLOEXEC)          = 0
dup2(3, 2)                              = 2
close(3)                                = 0
stat("/usr/local/sbin/modprobe", 0x7fff64c8e150) = -1 ENOENT (No such file or directory)
stat("/usr/local/bin/modprobe", 0x7fff64c8e150) = -1 ENOENT (No such file or directory)
stat("/usr/sbin/modprobe", 0x7fff64c8e150) = -1 ENOENT (No such file or directory)
stat("/usr/bin/modprobe", 0x7fff64c8e150) = -1 ENOENT (No such file or directory)
stat("/sbin/modprobe", {st_mode=S_IFREG|0755, st_size=57360, ...}) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f7f3f8f59d0) = 4583
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 4583
--- SIGCHLD (Child exited) @ 0 (0) ---
dup2(11, 1)                             = 1
close(11)                               = 0
dup2(12, 2)                             = 2
close(12)                               = 0
stat("/usr/local/sbin/start-stop-daemon", 0x7fff64c8e240) = -1 ENOENT (No such file or directory)
stat("/usr/local/bin/start-stop-daemon", 0x7fff64c8e240) = -1 ENOENT (No such file or directory)
stat("/usr/sbin/start-stop-daemon", 0x7fff64c8e240) = -1 ENOENT (No such file or directory)
stat("/usr/bin/start-stop-daemon", 0x7fff64c8e240) = -1 ENOENT (No such file or directory)
stat("/sbin/start-stop-daemon", {st_mode=S_IFREG|0755, st_size=28584, ...}) = 0
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f7f3f8f59d0) = 4584
wait4(-1, Driver is not loaded.
[{WIFEXITED(s) && WEXITSTATUS(s) == 255}], 0, NULL) = 4584
--- SIGCHLD (Child exited) @ 0 (0) ---
write(1, ".\n", 2.
)                      = 2
exit_group(0)                           = ?

Я пробовал версии CLI-утилиты 3.3 и 3.5, а также версии WEB-утилиты 1.4-10 и 1.4-14. Результат везде абсолютно одинаковый.

Даже пересобрал ядро с поддержкой legacy SCSI (/proc/scsi/) - не помогло.

P.S. Графического интерфейса на машине нет, поэтому GUI я не пробовал.

#139454

А как сам /etc/init.d/hptdaemon выглядит?

P.S. stat("/root/Fucking_RAID .. улыбнуло:))

#139480
Macumazan написал:
А как сам /etc/init.d/hptdaemon выглядит?

Вот так:
# cat /etc/init.d/hptdaemon
#! /bin/sh
PRODUCT="hptiop rr26xx rr2644 rr232x rr2310 rr2310_00 rr2300 rr2340 rr2320 rr1740 rr174x rr172x rr2522 hptmv6 hptmv hpt370 hpt37x2 hpt374 hptmviop rr2210"

case "$1" in
start)
echo -n "Starting hptsvr daemon"
for mod in `([ -f /etc/hptcfg ] && cat /etc/hptcfg)` ${PRODUCT}; do
modprobe $mod >/dev/null 2>/dev/null && break
done
start-stop-daemon --start --quiet --exec /usr/bin/hptsvr
echo "."
;;
stop)
echo -n "Stopping hptsvr daemon"
start-stop-daemon --stop --quiet --exec /usr/bin/hptsvr
echo "."
;;
*)
echo "Usage: /etc/init.d/hptdaemon {start|stop}"
exit 1
esac
exit 0

#139498

/usr/bin/hptsvr имеет ключи какие-нибудь? Хорошо бы его в режиме debug запустить.

#139502

Ключей нет. Вся документация заключается в changelog и инструкциях по сборке (я их выполнил).
Кстати, deb-пакеты в версии CLI 3.5 "битые" - файлы приходится вручную перекладывать.

#139504

Все, проблема решена. Невнимательно пересобрал в первый раз ядро.

Войдите или зарегистрируйтесь, чтобы ответить.