Страница 1 из 5
Не компилится драйвер контроллера Promise FastTrak TX4650
Добавлено: 2010-03-19 16:05:23
kpp
Линукс Debian Lenny, SATA\SAS контроллер Promise FastTrak TX4650.
Исходники дров для линуксов есть.
Для Suse и RedHat отдельно и для всех остальных линуксов для ядра 2.6
Не компилится. Говорит Ошибка 1, Ошибка 2.
Может кто сталкивался?
Куда хоть копать?
Re: Не компилится драйвер контроллера Promise FastTrak TX465
Добавлено: 2010-03-19 16:13:30
Гость
искать в гугле ошибка 1 ошибка 2
Re: Не компилится драйвер контроллера Promise FastTrak TX465
Добавлено: 2010-03-19 16:26:14
kpp
происходит примерно следущее:
Код: Выделить всё
# make
make ARCH=i386 V=1 CC=cc LD=ld ARCH=i386 DRIVER_SRC_DIR=/usr/src/2/tx4650 -C /usr/src/linux SUBDIRS=`pwd` modules
make[1]: Entering directory `/usr/src/linux-source-2.6.26'
test -e include/linux/autoconf.h -a -e include/config/auto.conf || ( \
echo; \
echo " ERROR: Kernel configuration is invalid."; \
echo " include/linux/autoconf.h or include/config/auto.conf are missing."; \
echo " Run 'make oldconfig && make prepare' on kernel src to fix it."; \
echo; \
/bin/false)
mkdir -p /usr/src/2/tx4650/.tmp_versions ; rm -f /usr/src/2/tx4650/.tmp_versions/*
make -f scripts/Makefile.build obj=/usr/src/2/tx4650
cc -Wp,-MD,/usr/src/2/tx4650/linux/.osd_main.o.d -nostdinc -isystem /usr/lib/gcc/i486-linux-gnu/4.3.2/include -D__KERNEL__ -Iinclude -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -fno-delete-null-pointer-checks -fno-strict-overflow -Os -fno-stack-protector -m32 -msoft-float -mregparm=3 -freg-struct-return -mpreferred-stack-boundary=2 -march=i686 -ffreestanding -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -Iinclude/asm-x86/mach-generic -Iinclude/asm-x86/mach-default -fomit-frame-pointer -Wdeclaration-after-statement -Wno-pointer-sign -Wno-multichar -D_LINUXDRIVER -D_X8632B -D_32BPLATFORM -I/usr/src/linuxinclude -I/usr/src/linux/include/scsi -I/usr/src/linux/drivers/scsi -I/usr/src/linux/include -I/usr/src/linux/include/scsi -I/usr/src/linux/drivers/scsi -I/usr/src/2/tx4650 -I/usr/src/2/tx4650/linux -I/usr/src/2/tx4650/include -DARCH_HAS_NMI_WATCHDOG -D_OBSOLETE_PROC_ -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(osd_main)" -D"KBUILD_MODNAME=KBUILD_STR(t3sas)" -c -o /usr/src/2/tx4650/linux/.tmp_osd_main.o /usr/src/2/tx4650/linux/osd_main.c
In file included from include/asm/irq.h:2,
from include/linux/nmi.h:8,
from /usr/src/2/tx4650/linux/osd_inc.h:6,
from /usr/src/2/tx4650/linux/osd_main.c:47:
include/asm/irq_32.h:24:1: warning: "ARCH_HAS_NMI_WATCHDOG" redefined
: warning: this is the location of the previous definition
In file included from /usr/src/2/tx4650/include/napa_cfg.h:9,
from /usr/src/2/tx4650/linux/osd_inc.h:79,
from /usr/src/2/tx4650/linux/osd_main.c:47:
/usr/src/2/tx4650/linux/cfg_linux.h:102:5: warning: "VDEBUG" is not defined
In file included from /usr/src/2/tx4650/linux/osd_inc.h:80,
from /usr/src/2/tx4650/linux/osd_main.c:47:
/usr/src/2/tx4650/include/gen_typs.h:97:1: warning: "do_div" redefined
In file included from include/linux/kernel.h:53,
from include/linux/sched.h:52,
from include/linux/nmi.h:7,
from /usr/src/2/tx4650/linux/osd_inc.h:6,
from /usr/src/2/tx4650/linux/osd_main.c:47:
include/asm/div64.h:20:1: warning: this is the location of the previous definition
In file included from /usr/src/2/tx4650/linux/osd_inc.h:81,
from /usr/src/2/tx4650/linux/osd_main.c:47:
/usr/src/2/tx4650/include/gen_ds.h:38:5: warning: "VDEBUG" is not defined
/usr/src/2/tx4650/include/gen_ds.h:91:5: warning: "VDEBUG" is not defined
/usr/src/2/tx4650/include/gen_ds.h:110:5: warning: "VDEBUG" is not defined
/usr/src/2/tx4650/include/gen_ds.h:116:5: warning: "VDEBUG" is not defined
In file included from /usr/src/2/tx4650/linux/osd_inc.h:85,
from /usr/src/2/tx4650/linux/osd_main.c:47:
/usr/src/2/tx4650/include/eng_req.h:114:5: warning: "VDEBUG" is not defined
In file included from /usr/src/2/tx4650/linux/osd_inc.h:88,
from /usr/src/2/tx4650/linux/osd_main.c:47:
/usr/src/2/tx4650/include/osd_dbg.h:179:5: warning: "VDEBUG" is not defined
/usr/src/2/tx4650/linux/osd_main.c:318:5: warning: "VDEBUG" is not defined
/usr/src/2/tx4650/linux/osd_main.c: In function ‘wrap_P2V’:
/usr/src/2/tx4650/linux/osd_main.c:353: warning: passing argument 1 of ‘phys_to_virt’ makes integer from pointer without a cast
/usr/src/2/tx4650/linux/osd_main.c: In function ‘wrap_HIGHMAP_PAGE’:
/usr/src/2/tx4650/linux/osd_main.c:371: warning: unused variable ‘i’
/usr/src/2/tx4650/linux/osd_main.c:371: warning: unused variable ‘idx’
/usr/src/2/tx4650/linux/osd_main.c: In function ‘wrap_HIGHUNMAP_PAGE’:
/usr/src/2/tx4650/linux/osd_main.c:399: warning: unused variable ‘idx’
/usr/src/2/tx4650/linux/osd_main.c:648:5: warning: "VDEBUG" is not defined
/usr/src/2/tx4650/linux/osd_main.c:669:5: warning: "VDEBUG" is not defined
/usr/src/2/tx4650/linux/osd_main.c: In function ‘prepare_sg_table2’:
/usr/src/2/tx4650/linux/osd_main.c:854: error: ‘Scsi_Cmnd’ has no member named ‘use_sg’
/usr/src/2/tx4650/linux/osd_main.c:855: error: ‘Scsi_Cmnd’ has no member named ‘request_buffer’
/usr/src/2/tx4650/linux/osd_main.c:856: error: ‘Scsi_Cmnd’ has no member named ‘use_sg’
/usr/src/2/tx4650/linux/osd_main.c:878: error: ‘Scsi_Cmnd’ has no member named ‘request_buffer’
/usr/src/2/tx4650/linux/osd_main.c:878: error: ‘Scsi_Cmnd’ has no member named ‘request_buffer’
/usr/src/2/tx4650/linux/osd_main.c:878: error: ‘Scsi_Cmnd’ has no member named ‘request_bufflen’
/usr/src/2/tx4650/linux/osd_main.c:890: error: ‘Scsi_Cmnd’ has no member named ‘request_bufflen’
/usr/src/2/tx4650/linux/osd_main.c: In function ‘prepare_sg_table’:
/usr/src/2/tx4650/linux/osd_main.c:953: error: ‘Scsi_Cmnd’ has no member named ‘use_sg’
/usr/src/2/tx4650/linux/osd_main.c:954: error: ‘Scsi_Cmnd’ has no member named ‘request_buffer’
/usr/src/2/tx4650/linux/osd_main.c:955: error: ‘Scsi_Cmnd’ has no member named ‘use_sg’
/usr/src/2/tx4650/linux/osd_main.c:989: error: ‘Scsi_Cmnd’ has no member named ‘request_buffer’
/usr/src/2/tx4650/linux/osd_main.c:989: error: ‘Scsi_Cmnd’ has no member named ‘request_buffer’
/usr/src/2/tx4650/linux/osd_main.c:989: error: ‘Scsi_Cmnd’ has no member named ‘request_bufflen’
/usr/src/2/tx4650/linux/osd_main.c:1006: error: ‘Scsi_Cmnd’ has no member named ‘request_bufflen’
/usr/src/2/tx4650/linux/osd_main.c:1009: error: ‘Scsi_Cmnd’ has no member named ‘request_buffer’
/usr/src/2/tx4650/linux/osd_main.c:1012: error: ‘Scsi_Cmnd’ has no member named ‘request_bufflen’
/usr/src/2/tx4650/linux/osd_main.c:1134:5: warning: "VDEBUG" is not defined
/usr/src/2/tx4650/linux/osd_main.c: In function ‘t3_queue’:
/usr/src/2/tx4650/linux/osd_main.c:1179: error: ‘Scsi_Cmnd’ has no member named ‘request_buffer’
/usr/src/2/tx4650/linux/osd_main.c:1184: error: ‘Scsi_Cmnd’ has no member named ‘request_bufflen’
/usr/src/2/tx4650/linux/osd_main.c:1218:5: warning: "VDEBUG" is not defined
/usr/src/2/tx4650/linux/osd_main.c:1222:5: warning: "VDEBUG" is not defined
/usr/src/2/tx4650/linux/osd_main.c: In function ‘init_pci_resource’:
/usr/src/2/tx4650/linux/osd_main.c:1380: warning: cast to pointer from integer of different size
/usr/src/2/tx4650/linux/osd_main.c: In function ‘t3_probe’:
/usr/src/2/tx4650/linux/osd_main.c:2032: warning: statement with no effect
/usr/src/2/tx4650/linux/osd_main.c: At top level:
/usr/src/2/tx4650/linux/osd_main.c:2098: warning: function declaration isn’t a prototype
/usr/src/2/tx4650/linux/osd_main.c: In function ‘t3_remove’:
/usr/src/2/tx4650/linux/osd_main.c:2120: warning: statement with no effect
/usr/src/2/tx4650/linux/osd_main.c: In function ‘t3_shutdown_1’:
/usr/src/2/tx4650/linux/osd_main.c:2140: warning: statement with no effect
/usr/src/2/tx4650/linux/osd_main.c: In function ‘t3_shutdown_2’:
/usr/src/2/tx4650/linux/osd_main.c:2152: warning: statement with no effect
make[2]: *** [/usr/src/2/tx4650/linux/osd_main.o] Ошибка 1
make[1]: *** [_module_/usr/src/2/tx4650] Ошибка 2
make[1]: Leaving directory `/usr/src/linux-source-2.6.26'
make: *** [default] Ошибка 2
Описание к дровам:
Код: Выделить всё
/**********************************************************************************
* PROMISE FastTrak TX2650/4650 Series Linux Driver Installation Guide
*
* PROMISE Linux support team <support@promise.com.tw> 2007/01/03
***********************************************************************************/
Now we support Linux kernel version : 2.6.18
How to make driver for FastTrak & load it?
1.) Please ensure cc, the source compiler , version is above 3 by issuing Linux command :
# gcc -v
If you do not install the compiler, you will not be able to built Promise driver.
2.) Please ensure linux kernel source directory is "/usr/src/linux".
For SuSE EL9 platform, it always release its kernel source in /usr/src/linux-2.6.7-97.
Please make a link to the appropriate directory, for example:
# ln -s /usr/src/linux-2.6.7-97 /usr/src/linux
For RHEL4 platform, it always release its kernel source in /usr/src/kernels/2.6.9-5.EL.??? which ??? means various kernel images.
3.) Setup Kernel Compile Environment
For SuSE EL9, SuSE 10:
# cd /usr/src/linux/
# make mrproper
# cp arch/$(ARCH)/defconfig.??? .config
# Execute 'make' for a while about 5 sec. and then stop its execution. (Avoid below make menuconfig fail...)
# Execute 'make menuconfig' & exit with configuration save.
# Execute 'make' for a while about 10 sec. and then stop its execution.
For RHEL4:
DO NOTHING.
[1]. $(ARCH) means architecture, which is i386 or x86_64.
[2]. ??? is options to make choose, default, smp and bigmem, depend on your booting image.
4.) Check /lib/modules/$(UTS_RELEASE)/build directy was linked properly to /usr/src/linux.
UTS_RELEASE is the current version of your booting image. You can get it by issuing Linux command :
#uname -r
5.) Goto directory where the PROMISE driver source was located.
5.) Issue Linux command to make FastTrak driver: t3sas.o
#make clean
#make or #make all
6.) Load PROMISE driver
# modprobe -a sd_mod
# insmod t3sas.ko or # insmod t3sas.o
7.) You can copy this module to /lib/modules/$(UTS_VERSION)/kernel/drivers/scsi/ for automatic load when boot system.
Note:
1. Promise partial source can be adapted on kernel 2.6.
2. Different OS may has different kernel source location, please do some modifications of above steps to fit their requirements.
Re: Не компилится драйвер контроллера Promise FastTrak TX465
Добавлено: 2010-03-19 16:29:09
kpp
У меня ядро 2.6.26
В описании к дровам:
Now we support Linux kernel version : 2.6.18
Означает ли это что поставить эти дрова на линух с ядром 2.6.26 не удастся никак?
Re: Не компилится драйвер контроллера Promise FastTrak TX465
Добавлено: 2010-03-19 16:29:56
Гость
в линупсе все всегда банально, не соответсвие ядра
Re: Не компилится драйвер контроллера Promise FastTrak TX465
Добавлено: 2010-03-19 16:40:22
kpp
Если производитель пишет
Код: Выделить всё
Promise partial source can be adapted on kernel 2.6.
Означает ли это совместимочть для всей линейки ядер 2.6. ??
Re: Не компилится драйвер контроллера Promise FastTrak TX465
Добавлено: 2010-03-19 16:42:53
hizel
нет, это вряд ли, там много ломалось в течении 2.6
Re: Не компилится драйвер контроллера Promise FastTrak TX465
Добавлено: 2010-03-19 16:43:40
Гость
это означает что если вы будете портировать(адаптировать) то у вас это вызовен минимум манипуляций

Re: Не компилится драйвер контроллера Promise FastTrak TX465
Добавлено: 2010-03-19 16:55:53
kpp
Правильно ли я понимаю, что копать нужно в сторону исправления ошибок:
Код: Выделить всё
usr/src/2/tx4650/linux/osd_main.c: In function ‘prepare_sg_table2’:
/usr/src/2/tx4650/linux/osd_main.c:854: error: ‘Scsi_Cmnd’ has no member named ‘use_sg’
/usr/src/2/tx4650/linux/osd_main.c:855: error: ‘Scsi_Cmnd’ has no member named ‘request_buffer’
/usr/src/2/tx4650/linux/osd_main.c:856: error: ‘Scsi_Cmnd’ has no member named ‘use_sg’
/usr/src/2/tx4650/linux/osd_main.c:878: error: ‘Scsi_Cmnd’ has no member named ‘request_buffer’
/usr/src/2/tx4650/linux/osd_main.c:878: error: ‘Scsi_Cmnd’ has no member named ‘request_buffer’
/usr/src/2/tx4650/linux/osd_main.c:878: error: ‘Scsi_Cmnd’ has no member named ‘request_bufflen’
/usr/src/2/tx4650/linux/osd_main.c:890: error: ‘Scsi_Cmnd’ has no member named ‘request_bufflen’
/usr/src/2/tx4650/linux/osd_main.c: In function ‘prepare_sg_table’:
/usr/src/2/tx4650/linux/osd_main.c:953: error: ‘Scsi_Cmnd’ has no member named ‘use_sg’
/usr/src/2/tx4650/linux/osd_main.c:954: error: ‘Scsi_Cmnd’ has no member named ‘request_buffer’
/usr/src/2/tx4650/linux/osd_main.c:955: error: ‘Scsi_Cmnd’ has no member named ‘use_sg’
/usr/src/2/tx4650/linux/osd_main.c:989: error: ‘Scsi_Cmnd’ has no member named ‘request_buffer’
/usr/src/2/tx4650/linux/osd_main.c:989: error: ‘Scsi_Cmnd’ has no member named ‘request_buffer’
/usr/src/2/tx4650/linux/osd_main.c:989: error: ‘Scsi_Cmnd’ has no member named ‘request_bufflen’
/usr/src/2/tx4650/linux/osd_main.c:1006: error: ‘Scsi_Cmnd’ has no member named ‘request_bufflen’
/usr/src/2/tx4650/linux/osd_main.c:1009: error: ‘Scsi_Cmnd’ has no member named ‘request_buffer’
/usr/src/2/tx4650/linux/osd_main.c:1012: error: ‘Scsi_Cmnd’ has no member named ‘request_bufflen’
/usr/src/2/tx4650/linux/osd_main.c: In function ‘t3_queue’:
/usr/src/2/tx4650/linux/osd_main.c:1179: error: ‘Scsi_Cmnd’ has no member named ‘request_buffer’
/usr/src/2/tx4650/linux/osd_main.c:1184: error: ‘Scsi_Cmnd’ has no member named ‘request_bufflen’
Re: Не компилится драйвер контроллера Promise FastTrak TX465
Добавлено: 2010-03-20 1:13:18
kpp
Удалось скомпилить.
Правка osd_main.c и osd_inc.h
Re: Не компилится драйвер контроллера Promise FastTrak TX465
Добавлено: 2010-03-20 18:22:19
kpp
Итак подытожу мои изыскания с контроллером Promise FastTrak TX4650 (под Линукс Debian Lenny).
Рейд не собирал.
Драйвера контроллера успешно скомпилировались после серъезной доработки исходников
К контроллеру подключено два WD20EADS. Винты видны, один отформатил для теста - все нормально.
Скорость записи(на один винт) 70-82Мб\с что является пределом винта.
Софт от производителя WebPam установить не удалось.
smarttools пишет что эти винты не поддерживают SMART.
Т.е. под линуксами смарт смотреть невозможно (может подскажет кто чем можно еще попытаться смотреть смарт?).
Горячую замену винтов контроллер+драйвера под линукс не поддерживают:
-винт подключен до загрузки ОС, загружаем - видим винт, файловую систему на нем
-отключаем питание на винт, включаем - винт видится, но ОС говорит что файловой системы на нем нет(типа не отформатирован ).
Ну и странную особенность заметил:
после загрузки компа, примерно через мин 5 контроллер каждые 10сек(замерял секундомером ) обращается последовательно ко всем подключенным к нему винтам
(у меня на каждый винт своя индикация) с характрерным звуком перемещения головок - что это и зачем, и нормально ли это???
Причем вне зависимости от того смонтированы винты или нет.
В общем этот контроллер явно не подходит для юниксовых систем. Печально.
Как по мне, за такие деньги можно было дрова написать получшее для линуксов..
Re: Не компилится драйвер контроллера Promise FastTrak TX465
Добавлено: 2010-03-20 21:35:56
NiTr0
ИМХО - куда рациональнее пользовать набортный AHCI + софтовый рэйд, если будут висеть обычные SATA... У нас в хозяйстве имеется один промайс EX8350, пользуется в режиме глупого сата контроллера (ибо массив на 16 винтов) - смарт штатно не поддерживает (возможно, вендор-утиль позволит что-то выпытать), при обнаружении бэда на винте винт отваливается (набортный SATA - пытается записать валидный блок поверх, что приводит к римэпу бэда), + с дровами из 2.6.24 федориного ведра все это хозяйство часто падало в кернел паник (что характерно - уже 2 года прекрасно крутится на 2.6.18 от центоси без паник). В общем, впечатления от данного девайса -

Re: Не компилится драйвер контроллера Promise FastTrak TX465
Добавлено: 2010-03-28 22:56:54
kpp
Debian Lenny
Пересобираю драйвер для контроллера Primise TX4650.
Закачиваю linux-headers-2.6.26-2-amd64 linux-headers-2.6.26-2-common linux-kbuild-2.6.26 linux-source-2.6.26
Компилирую модуль ядра (t3sas.ko) нормально компилится, ошибок нет.
Делаю
Код: Выделить всё
# insmod /usr/src/tx4650/t3sas.ko
insmod: error inserting '/usr/src/tx4650/t3sas.ko': -1 Invalid module format
Начитался в нете, что такое возможно если несовпадают версии исходников ядра и рабочего ядра, но более подходящих сырцов не нашел.
Тоже самое делал на предыдущем Дебиане (Linux 2.6.26-1-amd64) модуль нормально скомпилися и заработал.
Полностью переставил Дебиан(теперь уже Linux 2.6.26-2-amd64) и вот такая петрушка.
Куда копать?
Re: Не компилится драйвер контроллера Promise FastTrak TX465
Добавлено: 2010-03-28 23:54:12
NiTr0
kpp писал(а):Начитался в нете, что такое возможно если несовпадают версии исходников ядра и рабочего ядра
Нет. Такое возможно при несовпадении версий компиляторов, которыми собрано ядро и модуль. Т.е., если модуль собран 4.2.4 гнусью - то и ядро должно быть собрано 4.2.x и не иначе.
Качните пакет с сырцами ядра (как он в дебиане зовется - хз, я дебиан не пользовал), пересоберите ядро, пересоберите модуль (на всякий).
Re: Не компилится драйвер контроллера Promise FastTrak TX465
Добавлено: 2010-03-29 10:44:14
kpp
Код: Выделить всё
# dmesg |grep gcc
[ 0.000000] Linux version 2.6.26-2-amd64 (Debian 2.6.26-21lenny4) (dannf@debian.org) (gcc version 4.1.3 20080704 (prerelease) (Debian 4.1.2-25)) #1 SMP Tue Mar 9 22:29:32 UTC 2010
# gcc -v
Using built-in specs.
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.3.2-1.1' --with-bugurl=file:///usr/share/doc/gcc-4.3/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.3 --program-suffix=-4.3 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-cld --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 4.3.2 (Debian 4.3.2-1.1)
Получается что ядро собрано gcc version 4.1.3, а сейчас есть gcc version 4.3.2 .
Как лучше поступить: пересобрать ядро gcc version 4.3.2 или установить gcc version 4.1.3 и перекомпилить модуль?
(Пытался снести gcc version 4.3.2 и поставить gcc version 4.1.3 - что-то не особо получилось - gcc -v пишет нет gcc

)
Re: Не компилится драйвер контроллера Promise FastTrak TX465
Добавлено: 2010-03-29 13:33:44
NiTr0
Проще ядро пересобрать.
Re: Не компилится драйвер контроллера Promise FastTrak TX465
Добавлено: 2010-03-31 13:38:58
kpp
Чтобы сравнять версии компилятора gcc :
1.Пересобирал ядро уже несколько раз, родным для дебиана методом, ядро компилится, но при загрузке тупо останавливается на начальной стадии, ошибок никаких не пишет(
ftp://hi.dp.ua/pub/Debian/new_kern_1.jpg). Может лог какой пишет?
2.Менял симплинк на /usr/bin/gcc был на /usr/bin/gcc-4.3 , сделал на /usr/bin/gcc-4.1, перекомпилил драйвер(t3sas.ko) - скомпилился, ошибок нет, делаю:
Код: Выделить всё
# insmod t3sas.o
insmod: error inserting 't3sas.o': -1 Invalid module format
Переставил Дебиан уже пару раз
Что делать - не знаю.
Самое интересное, что в самом начале скомпилиля и поставился драйвер с полпинка, потом по неосторожности удалил линух, переставил с тогоже дистрибутива - делаю вроде все как и тогда - капец...
Re: Не компилится драйвер контроллера Promise FastTrak TX465
Добавлено: 2010-04-12 12:35:27
Mikola
Я с этим драйвером намучался на Сусе 11.0
Компилил под железку 2650 SAS был нужен.
Долго курил сайте colinmackenzie (сейчас он сайт сменил, все обсуждение не сохранилось), но дрова есть
http://www.colinmackenzie.net/index.php ... &Itemid=18 написано что под новые ядра, но фигвам, у меня так и не скомпилилось.
Я качал оттуда разные драйвера под разные ядра, пробовал компилировать ядра потом под ядра драйвера в общем нихрена не получилось.
Если есть у кого решение как эти драйвера, или драйвера от производителя можно доделать, буду очень признателен.
А то tx2650 единственный SAS контроллер в своей ценовой категории.
Re: Не компилится драйвер контроллера Promise FastTrak TX465
Добавлено: 2010-04-12 13:10:04
kpp
2 Mikola
Скомпилить мне удалось - тут вопросов нет. Телодвижений, конечно много, но компилится.
Если смогу-помогу.
А вот уже скомпиленный подгрузить(insmod t3sas.ko) - не удается..
То, что его вообще можно подгрузить - однозначно - сам проверял, вот только повторить не могу

Re: Не компилится драйвер контроллера Promise FastTrak TX465
Добавлено: 2010-04-12 14:04:19
Mikola
От така херня у меня происходит:
Код: Выделить всё
vr01:/home/tx2650_driver/2.6.27.32/tx4650-k32 # make
make ARCH=x86_64 V=1 CC=cc LD=ld ARCH=x86_64 DRIVER_SRC_DIR=/home/tx2650_driver/2.6.27.32/tx4650-k32 -C /usr/src/linux SUBDIRS=`pwd` modules
make[1]: Entering directory `/usr/src/linux-2.6.32'
test -e include/linux/autoconf.h -a -e include/config/auto.conf || ( \
echo; \
echo " ERROR: Kernel configuration is invalid."; \
echo " include/linux/autoconf.h or include/config/auto.conf are missing."; \
echo " Run 'make oldconfig && make prepare' on kernel src to fix it."; \
echo; \
/bin/false)
mkdir -p /home/tx2650_driver/2.6.27.32/tx4650-k32/.tmp_versions ; rm -f /home/tx2650_driver/2.6.27.32/tx4650-k32/.tmp_versions/*
WARNING: Symbol version dump /usr/src/linux-2.6.32/Module.symvers
is missing; modules will have no dependencies and modversions.
make -f scripts/Makefile.build obj=/home/tx2650_driver/2.6.27.32/tx4650-k32
cc -Wp,-MD,/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/.osd_main.o.d -nostdinc -isystem /usr/lib64/gcc/x86_64-suse-linux/4.3/include -Iinclude -I/usr/src/linux-2.6.32/arch/x86/include -include include/linux/autoconf.h -D__KERNEL__ -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -Os -m64 -mtune=generic -mno-red-zone -mcmodel=kernel -funit-at-a-time -maccumulate-outgoing-args -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI_SIGNAL_FRAME=1 -pipe -Wno-sign-compare -fno-asynchronous-unwind-tables -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -fno-stack-protector -fno-omit-frame-pointer -fno-optimize-sibling-calls -g -Wdeclaration-after-statement -Wno-pointer-sign -fno-strict-overflow -Wno-multichar -D_LINUXDRIVER -D_AMD64B -D_64BPLATFORM -I/usr/src/linuxinclude -I/usr/src/linux/include/scsi -I/usr/src/linux/drivers/scsi -I/usr/src/linux/include -I/usr/src/linux/include/scsi -I/usr/src/linux/drivers/scsi -I/home/tx2650_driver/2.6.27.32/tx4650-k32 -I/home/tx2650_driver/2.6.27.32/tx4650-k32/linux -I/home/tx2650_driver/2.6.27.32/tx4650-k32/include -DARCH_HAS_NMI_WATCHDOG -D_OBSOLETE_PROC_ -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(osd_main)" -D"KBUILD_MODNAME=KBUILD_STR(t3sas)" -c -o /home/tx2650_driver/2.6.27.32/tx4650-k32/linux/.tmp_osd_main.o /home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c
In file included from include/linux/nmi.h:8,
from /home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_inc.h:6,
from /home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c:47:
/usr/src/linux-2.6.32/arch/x86/include/asm/irq.h:19:1: warning: "ARCH_HAS_NMI_WATCHDOG" redefined
<command-line>: warning: this is the location of the previous definition
In file included from /home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c:47:
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_inc.h:11:27: error: linux/ioctl32.h: No such file or directory
In file included from /home/tx2650_driver/2.6.27.32/tx4650-k32/include/napa_cfg.h:9,
from /home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_inc.h:79,
from /home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c:47:
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/cfg_linux.h:102:5: warning: "VDEBUG" is not defined
In file included from /home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_inc.h:81,
from /home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c:47:
/home/tx2650_driver/2.6.27.32/tx4650-k32/include/gen_ds.h:38:5: warning: "VDEBUG" is not defined
/home/tx2650_driver/2.6.27.32/tx4650-k32/include/gen_ds.h:91:5: warning: "VDEBUG" is not defined
/home/tx2650_driver/2.6.27.32/tx4650-k32/include/gen_ds.h:110:5: warning: "VDEBUG" is not defined
/home/tx2650_driver/2.6.27.32/tx4650-k32/include/gen_ds.h:116:5: warning: "VDEBUG" is not defined
In file included from /home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_inc.h:85,
from /home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c:47:
/home/tx2650_driver/2.6.27.32/tx4650-k32/include/eng_req.h:114:5: warning: "VDEBUG" is not defined
In file included from /home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_inc.h:88,
from /home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c:47:
/home/tx2650_driver/2.6.27.32/tx4650-k32/include/osd_dbg.h:179:5: warning: "VDEBUG" is not defined
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c:318:5: warning: "VDEBUG" is not defined
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c: In function ‘wrap_P2V’:
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c:353: warning: passing argument 1 of ‘phys_to_virt’ makes integer from pointer without a cast
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c: In function ‘wrap_HIGHMAP_PAGE’:
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c:371: warning: unused variable ‘i’
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c:371: warning: unused variable ‘idx’
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c: In function ‘wrap_HIGHMAP’:
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c:393: warning: cast from pointer to integer of different size
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c: In function ‘wrap_HIGHUNMAP_PAGE’:
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c:399: warning: unused variable ‘idx’
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c:648:5: warning: "VDEBUG" is not defined
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c:669:5: warning: "VDEBUG" is not defined
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c:1134:5: warning: "VDEBUG" is not defined
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c:1218:5: warning: "VDEBUG" is not defined
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c:1222:5: warning: "VDEBUG" is not defined
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c: In function ‘t3_probe’:
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c:2022: warning: statement with no effect
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c: At top level:
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c:2088: warning: function declaration isn’t a prototype
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c: In function ‘t3_remove’:
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c:2110: warning: statement with no effect
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c: In function ‘t3_shutdown_1’:
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c:2130: warning: statement with no effect
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c: In function ‘t3_shutdown_2’:
/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.c:2142: warning: statement with no effect
make[2]: *** [/home/tx2650_driver/2.6.27.32/tx4650-k32/linux/osd_main.o] Error 1
make[1]: *** [_module_/home/tx2650_driver/2.6.27.32/tx4650-k32] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.32'
make: *** [default] Error 2
Если есть предложения - буду рад. В самом начале написаны ошибки так вот и make oldconfig и make prepare делал и по отдельности и вместе - не пропадает.
Весь прикол в том что на официальном сайте дрова есть, но они под ядра раньше чем 2.6.18. После 2.6.18 изменились IRQ и старые дрова уже не подходят. В промайзе подумали - достали вы нас с вашими ядрами и забили на новый драйвер. А спецификаций на железки они не дают, один товарищ на ЛОРе им даже письмо писал - они его побрили.
С ядра 2.6.32 контроллеры tx 2650/4650 поддерживаются, но только как SATA. Хотите RAID или SAS (как я) берите официальные дрова.
Еще я делал такой финт ушами: Официальный драйвер записывается на дискету из под винды и ставится. Я изменил версию ядра в файле make с более старой на свою - более новую. Драйвер вроде встал, но отвалилась сеть. Посмотрел через YaST висят на одном прерывании, на 17-ом.
Дальше начались очень долгие пляски с бубном, тк я бздун, и с линуксом ковырялся в первые так и не смог найти где именно подгружается драйвер t3sas и отключить его.
Кончилось тем что скопировал раздел boot и запустил восстановление системы, оно мне переписало и ядро и initrd.
Если прерывания можно развести вручную после установки - можно попробовать этот способ.
Re: Не компилится драйвер контроллера Promise FastTrak TX465
Добавлено: 2010-04-12 14:15:16
kpp
Я взял родные старые дрова с сайта промайза, подрихтовал их, теперь на ядре 2.6.26 компилятся. Могу поделиться.
Re: Не компилится драйвер контроллера Promise FastTrak TX465
Добавлено: 2010-04-12 14:19:20
_Andy
kpp писал(а):Я взял родные старые дрова с сайта промайза, подрихтовал их, теперь на ядре 2.6.26 компилятся. Могу поделиться.
Надо не говорить, а патч постить. В поиске же вылезет это сообщение.
Re: Не компилится драйвер контроллера Promise FastTrak TX465
Добавлено: 2010-04-12 14:37:16
kpp
Я взял за основу
ftp://hi.dp.ua/pub/SATA/tx4650/patches/
подправил два файла исходников (файлы с исправлениями osd_inc.h, osd_main.c)
ftp://hi.dp.ua/pub/SATA/tx4650
Это для TX4650, думаю для 2650 можно сделать аналогично.
2 _Andy попроще нужно быть. Здесь никто никому ничего не обязан.
Re: Не компилится драйвер контроллера Promise FastTrak TX465
Добавлено: 2010-04-12 14:57:09
Mikola
Так конечно поделись, добрый человек.
Я смотрю там под 2.6.32 дрова?
И процесс установки - берем родный и патчим, или берем сразу с ftp правим файлы и компилим?
Re: Не компилится драйвер контроллера Promise FastTrak TX465
Добавлено: 2010-04-12 15:08:18
kpp
Взял родные старые дрова с сайта промайза(v1.1.0.12), подрихтовал их - откорректированные файлы на фтп (osd_inc.h, osd_main.c).
Потому как готовые патчи не заработали.
В общем берем родные(v1.1.0.12) и либо патчим, либо берем говотые osd_inc.h, osd_main.c(на фтп) , меняем, компилим.