| Summary: | Адаптировать etercifs для CentOS 5.5 | ||
|---|---|---|---|
| Product: | CIFS@Etersoft | Reporter: | Vitaly Lipatov <lav> |
| Component: | компиляция модуля | Assignee: | Pavel Shilovsky <piastry> |
| Status: | CLOSED FIXED | QA Contact: | Константин Кондратюк <kondratyuk> |
| Severity: | normal | ||
| Priority: | P3 | CC: | baraka, e.osipenko, kondratyuk, lav, sin, yurifil |
| Version: | не указана | ||
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | All | ||
| Whiteboard: | |||
| Заявки RT: | Связано с: | 3770 | |
| Дата напоминания: | |||
| Bug Depends on: | |||
| Bug Blocks: | 3043, 5634 | ||
|
Description
Vitaly Lipatov
2010-12-17 11:41:58 MSK
При сборке жалуется на отсутствие linux/freezer.h Действительно, в ядре этот файл появился позже, чем в 2.6.18. Можно сделать вывод, что для всех старых систем получим ту же ошибку. (В ответ на comment #1) > При сборке жалуется на отсутствие linux/freezer.h > Действительно, в ядре этот файл появился позже, чем в 2.6.18. > > Можно сделать вывод, что для всех старых систем получим ту же ошибку. Ну так как сейчас при сборке он использует, судя по логу выше 33 ядро, то не удивительно, что оно не собирается на 2.6.18. Видимо, надо ещё добавить, чтобы не поддерживаемая версия CentOS собиралась на последней центос-специфичной версии исходников в etercifs. Немного не досмотрел - на самом деле сейчас так и делается. Странно, что скрипт не обработал это так, как нужно, а попытался подсунуть 33 версию исходников. Буду разбираться. В списке vbox -l напротив CentOS 5.5 опять отсутствуют хостнэйм и айпи-адрес. [piastry@localhost ~]$ uname -a
Linux localhost.localdomain 2.6.18-194.26.1.el5 #1 SMP Tue Nov 9 12:54:40 EST 2010 i686 i686 i386 GNU/Linux
[piastry@localhost ~]$ yum search dkms
Loaded plugins: fastestmirror
Warning: No matches found for: dkms
No Matches found
Соответственно, dkms вообще ту не нужен.
[piastry@localhost ~]$ sudo /etc/init.d/etercifs build
Building etercifs 4.5.3 for 2.6.18-194.26.1.el5 Linux kernel (headers in /lib/modules/2.6.18-194.26.1.el5/build)
Found CentOS or RHEL.
Warning! Your kernel is newer then 2.6.18-164.x
Building from legacy sources with patch for kernels 2.6.18-164.x from CentOS 5.4.
/usr/bin/gcc
Checking the kernel configuration...
OK
Setting etercifs version: OK
make: Entering directory `/usr/src/kernels/2.6.18-194.26.1.el5-i686'
make: Leaving directory `/usr/src/kernels/2.6.18-194.26.1.el5-i686'
make: Entering directory `/usr/src/kernels/2.6.18-194.26.1.el5-i686'
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/cifsfs.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/cifssmb.o
/tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/cifssmb.c: In function ‘SMBLegacyOpen’:
/tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/cifssmb.c:1188: предупреждение: unused variable ‘count’
/tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/cifssmb.c:1187: предупреждение: unused variable ‘name_len’
/tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/cifssmb.c:1186: предупреждение: unused variable ‘bytes_returned’
/tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/cifssmb.c:1185: предупреждение: unused variable ‘pSMBr’
/tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/cifssmb.c:1184: предупреждение: unused variable ‘pSMB’
/tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/cifssmb.c: На верхнем уровне:
/tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/cifssmb.c:1133: предупреждение: ‘convert_disposition’ defined but not used
/tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/cifssmb.c:1164: предупреждение: ‘access_flags_to_smbopen_mode’ defined but not used
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/cifs_debug.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/connect.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/dir.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/file.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/inode.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/link.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/misc.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/netmisc.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/smbdes.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/smbencrypt.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/transport.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/asn1.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/md4.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/md5.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/cifs_unicode.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/nterr.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/xattr.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/cifsencrypt.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/readdir.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/ioctl.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/sess.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/export.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/cifsacl.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/cifs_spnego.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/dns_resolve.o
CC [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/cifs_dfs_ref.o
LD [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/etercifs.o
Building modules, stage 2.
MODPOST
CC /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/etercifs.mod.o
LD [M] /tmp/Etercifs.ZbLH2493/kernel-source-etercifs-centos54-1.58/etercifs.ko
make: Leaving directory `/usr/src/kernels/2.6.18-194.26.1.el5-i686'
Stripping module etercifs.ko ...
Copying built module to /lib/modules/2.6.18-194.26.1.el5/kernel/fs/cifs
Do depmod -Ae for 2.6.18-194.26.1.el5 kernel
[piastry@localhost ~]$ sudo /etc/init.d/etercifs start
Loading kernel module etercifs 4.5.3... [ DONE ]
[piastry@localhost ~]$ sudo /etc/init.d/etercifs status
Package etercifs 4.5.3-eter1centos
CIFS kernel module status:
kernel module etercifs version 4.5.3 is built for current kernel
kernel module etercifs version 4.5.3 is loaded
Проблем не обнаружено.
Создал ветку legacy-etercifs-centos55, основанную на 31 ядре. Добавил туда исходники из ядра CentOS 5.5 для cifs. http://git.etersoft.ru/people/piastry/packages/?p=cifs-2.6.git;a=shortlog;h=refs/heads/legacy-centos55-etercifs Так же поправил версию в etercifs.spec для 35 и 35 ядер. http://git.etersoft.ru/people/piastry/packages/?p=etercifs.git;a=summary Дальше займусь переносом наших патчей из ветки 31 ядра в новую ветку. Собрал ветку с нашими патчами для CentOS 5.5: http://git.etersoft.ru/people/piastry/packages/?p=cifs-2.6.git;a=shortlog;h=refs/heads/legacy-centos55-etercifs Далее добавлю её в etercifs. Собрал etercifs-4.5.8-alt1, с исходниками для CentOS 5.5. 4.7.7 не собирается, до этого не собрался и 4.5.8.
Что мы делаем не так?
[root@localhost ~]# service etercifs build
Building etercifs 4.7.7 for 2.6.18-194.8.1.el5 Linux kernel (headers in /lib/modules/2.6.18-194.8.1.el5/build)
Warning: using the lates supported sources (2.6.37) that is not for current kernel version!
/usr/bin/gcc
Checking the kernel configuration...
OK
Setting etercifs version: OK
make: Entering directory `/usr/src/kernels/2.6.18-194.8.1.el5-i686'
make: Leaving directory `/usr/src/kernels/2.6.18-194.8.1.el5-i686'
make: Entering directory `/usr/src/kernels/2.6.18-194.8.1.el5-i686'
CC [M] /tmp/Etercifs.MWC32583/kernel-source-etercifs-2.6.37-1.68/cifsfs.o
/tmp/Etercifs.MWC32583/kernel-source-etercifs-2.6.37-1.68/cifsfs.c:37:27: error: linux/freezer.h: Нет такого файла или каталога
In file included from /tmp/Etercifs.MWC32583/kernel-source-etercifs-2.6.37-1.68/cifsglob.h:26,
from /tmp/Etercifs.MWC32583/kernel-source-etercifs-2.6.37-1.68/cifsfs.c:42:
etercifs определял только RedHat и CentOS из RHEL-подобных дистрибьютивов. Исправил в версии 4.6.2-alt2. Вчерашний etercifs-4.6.2 без проблем собрался на LinuxWizard. Спасибо! :) |