Укажите отработанное время

Отработанное время:
Продуктивное время:
Bug 6651 - Адаптировать etercifs для CentOS 5.5   Make a simular bug
Summary: Адаптировать etercifs для CentOS 5.5
Status: CLOSED FIXED
Alias: None
Product: CIFS@Etersoft
Classification: Продукты (Products)
Component: компиляция модуля (show other bugs)
Version: не указана
Hardware: PC All
: P3 normal
Target Milestone: ---
Assignee: Pavel Shilovsky
QA Contact: Константин Кондратюк
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 3043 5634
  Show dependency treegraph
 
In work:
Reported: 2010-12-17 11:41 MSK by Vitaly Lipatov
Modified: 2011-03-03 10:23 MSK (History)
6 users (show)

See Also:
Заявки RT:
Связано с:
Дата напоминания:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vitaly Lipatov 2010-12-17 11:41:58 MSK
Нужно добавить поддержку для CentOS 5.5 (там же по причине уникальности ядра отдельные ветки на каждую версию)
И заодно посмотреть, при чём тут dkms.

Сейчас выглядит так:

# service etercifs build

Building etercifs 4.5.3 for 2.6.18-194.8.1.el5 Linux kernel with dkms
Warning: using the lates supported sources (2.6.33) that is not for current kernel version!
Setting etercifs version: OK

...Building module:
cleaning build area.....
make KERNELRELEASE=2.6.18-194.8.1.el5 -C /lib/modules/2.6.18-194.8.1.el5/build M=/var/lib/dkms/etercifs/4.5.3/build.....(bad exit status: 2)

Error! Bad return status for module build on kernel: 2.6.18-194.8.1.el5 (i686)
Consult the make.log in the build directory
/var/lib/dkms/etercifs/4.5.3/build/ for more information.
0
0

Error! Could not locate etercifs.ko for module etercifs in the DKMS tree.
You must run a dkms build for kernel 2.6.18-194.8.1.el5 (i686) first.
Comment 1 Константин Кондратюк 2010-12-17 11:46:05 MSK
При сборке жалуется на отсутствие linux/freezer.h
Действительно, в ядре этот файл появился позже, чем в 2.6.18.

Можно сделать вывод, что для всех старых систем получим ту же ошибку.
Comment 2 Pavel Shilovsky 2010-12-21 10:47:10 MSK
(В ответ на comment #1)
> При сборке жалуется на отсутствие linux/freezer.h
> Действительно, в ядре этот файл появился позже, чем в 2.6.18.
> 
> Можно сделать вывод, что для всех старых систем получим ту же ошибку.

Ну так как сейчас при сборке он использует, судя по логу выше 33 ядро, то не удивительно, что оно не собирается на 2.6.18. Видимо, надо ещё добавить, чтобы не поддерживаемая версия CentOS собиралась на последней центос-специфичной версии исходников в etercifs.
Comment 3 Pavel Shilovsky 2010-12-21 10:54:40 MSK
Немного не досмотрел - на самом деле сейчас так и делается. Странно, что скрипт не обработал это так, как нужно, а попытался подсунуть 33 версию исходников.

Буду разбираться.
Comment 4 Pavel Shilovsky 2010-12-21 11:04:31 MSK
В списке vbox -l напротив CentOS 5.5 опять отсутствуют хостнэйм и айпи-адрес.
Comment 5 Pavel Shilovsky 2010-12-21 11:50:24 MSK
[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

Проблем не обнаружено.
Comment 6 Pavel Shilovsky 2010-12-21 14:55:48 MSK
Создал ветку 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 ядра в новую ветку.
Comment 7 Pavel Shilovsky 2010-12-28 10:21:00 MSK
Собрал ветку с нашими патчами для CentOS 5.5:
http://git.etersoft.ru/people/piastry/packages/?p=cifs-2.6.git;a=shortlog;h=refs/heads/legacy-centos55-etercifs

Далее добавлю её в etercifs.
Comment 8 Pavel Shilovsky 2010-12-29 11:24:11 MSK
Собрал etercifs-4.5.8-alt1, с исходниками для CentOS 5.5.
Comment 9 Константин Кондратюк 2011-03-02 17:45:52 MSK
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:
Comment 10 Pavel Shilovsky 2011-03-02 21:45:11 MSK
etercifs определял только RedHat и CentOS из RHEL-подобных дистрибьютивов. Исправил в версии 4.6.2-alt2.
Comment 11 Константин Кондратюк 2011-03-03 10:23:05 MSK
Вчерашний etercifs-4.6.2 без проблем собрался на LinuxWizard.

Спасибо! :)