Не собирается по понятным причинам. Цитирую себя: Эта новая версия только что вышла и я больше, чем уверен, что с ней та же ситуация, что и со SLES10SP2 была - в ядре SLES, хоть оно и 2.6.16, cifs был из то ли 22, то ли из 23 ядра. И в редхате тоже к старому ядру новый cifs приложили. Абсолютно ожидаемая для меня ситуация. Буду качать CentOS дома с безлимитного интернета, ставить, выдирать оттуда исходники ядра, адаптировать под них наш модуль и проверять. Только так приходится действовать в случае Red Hat (CentOS) и SLES(D)
Пока есть проблемы со сборкой с CentOS, которые я не смог решить. Проблемы в функции get_random_int. Остальные части патча с трудом, но применил, кроме одной части, где решается проблема выделения памяти при перезагрузке модуля.
Может чем помочь?
(In reply to comment #2) > Может чем помочь? > Вопрос ставится так: какая функция в ядре CentOS используется вместо get_random_int и имеет такой же интерфейс? Дело в том, что get_random_int присутствует и в random.c и в random.h, но отсутствует в Module.symvers и это не дает использовать данную функцию, а она у нас используется. Как выход из положения - можно написать свою. Это не слишком сложный вариант и до конца недели, я думаю, сделаем.
Буду рад)
Created attachment 1137 [details] Добавлена функция cifs_random()
Компилируется и работает - потестил с помощью rect. Можно теперь собирать etercifs.
Как будет на ftp потестю)
Прогнаны тесты для ректа на CentOS . Оба сервиса были запущены на CentOS. Тесты прошли успешно.
Собрана версия etercifs-4.3.4 с исходниками для CentOS. ftp://ftp.etersoft.ru/pub/Etersoft/CIFS@Etersoft/4.3.4/CentOS/5.3/etercifs-4.3.4-eter1centos.noarch.rpm Поскольку ядро CentOS сильно патченное, то данные исходники рассчитаны для ядро 2.6.18.128. В скрипте проверяется, что дистрибутив - CentOS (grep-ается /etc/redhat-release ). Для RHEL потом допишу проверку. Стоит проверка по версии ядра. Для < 2.6.18-128 подсовываются legacy исходники, потому что для 2.6.18-92 от 5.2 они подходили. Для 2.6.18-128 и до версии 2.6.22 - специальные. А после - уже по обычной схеме, по ядру. Где надо - варнинги появляются.
Да, ядро в CentOS - песня, а не ядро! Смесь ядер с 18 по 27-е.
Прошу прощенья, нашел багу: неправильно запаковал исходники, недопоправил спек... Тестировал-то - вручную копируя исходники. Вот и не заметил, что пакет кривой получился. Исправил, заодно добавив в проверку к CentOS ещё и Red Hat, исправил грамматическую ошибку и сделал параметр CHECK_VERSION, чтобы можно было отключать проверку на версию пакеты при загрузке модуля на случай, если новый на данном ядре не собирается. ftp://ftp.etersoft.ru/pub/Etersoft/LINUX@Etersoft/Boxes/etercifs/noarch/RPMS.default/etercifs-4.3.4-alt2.noarch.rpm Сырцы для пересборки в ftp://ftp.etersoft.ru/pub/Etersoft/CIFS@Etersoft/4.3.4/sources/ тоже положил. Сдается мне, что релиз не последний, учитывая, что на старом ядре что-то сломалось. Но это уже на следующей неделе.
Тестировал ftp://ftp.etersoft.ru/pub/Etersoft/CIFS@Etersoft/4.3.4/CentOS/5.3/etercifs-4.3.4-eter1centos.noarch.rpm /etc/init.d/etercifs build Building for 2.6.18-128.el5PAE Linux kernel (headers in /lib/modules/2.6.18-128.el5PAE/build) Found CentOS. Your kernel is 2.6.18-128.x Building from sources, adapted for kernels 2.6.18-128.x from CentOS 5.3. Etercifs kernel module sources for current kernel does not installed! Сорцы установлены: yum install kernel-PAE-devel.i686 kernel-headers.i386 Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile Setting up Install Process Parsing package install arguments Package kernel-PAE-devel-2.6.18-128.el5.i686 installed and not available Package kernel-headers-2.6.18-128.el5.i386 installed and not available Nothing to do ls -l /lib/modules/2.6.18-128.el5PAE/ итого 1272 lrwxrwxrwx 1 root root 48 Апр 11 18:42 build -> ../../../usr/src/kernels/2.6.18-128.el5-PAE-i686 Надо ставить ftp://ftp.etersoft.ru/pub/Etersoft/CIFS@Etersoft/4.3.4/sources/etercifs-4.3.4-alt2.src.rpm в CentOS?
(In reply to comment #12) > Тестировал > ftp://ftp.etersoft.ru/pub/Etersoft/CIFS@Etersoft/4.3.4/CentOS/5.3/etercifs-4.3.4-eter1centos.noarch.rpm Зачем тестировали? Я же сказал, что сорцы etercifs для CentOS 5.3 забыл упаковать в rpm в этой версии. > Надо ставить > ftp://ftp.etersoft.ru/pub/Etersoft/CIFS@Etersoft/4.3.4/sources/etercifs-4.3.4-alt2.src.rpm > в CentOS? Нет, конечно. Это же исходники. Для CentOS уже пересобрали. Вот: ftp://ftp.etersoft.ru/pub/Etersoft/CIFS@Etersoft/4.3.4/CentOS/5.3/etercifs-4.3.4-eter2centos.noarch.rpm Только что собрал на ядре 2.6.18-128.el5 в CentOS 5.3 Надо, конечно, ещё тестировать и исправлять ошибки в 92-м ядре, так что считайте эту версию тестовой. Да оно так и есть.
Раз уж переоткрыли багу, то новую делать не буду - переименую эту с учетом 5.2
Протестировал ftp://ftp.etersoft.ru/pub/Etersoft/CIFS@Etersoft/4.3.4/CentOS/5.3/etercifs-4.3.4-eter2centos.noarch.rpm Собралось)) Спасибо!
Created attachment 1147 [details] Патч на legacy для сборки под CentOS 5.2 (ядро 2.6.18-92.el5) (In reply to comment #14) > Раз уж переоткрыли багу, то новую делать не > буду - переименую эту с учетом 5.2 > Собрал и на 5.2 на ядре 2.6.18-92.el5 Если кому срочно - можете приложить патч legacy_centos52.diff, изменив под себя сорцы legacy. А лучше подождать новую версию.
ftp://ftp.etersoft.ru/pub/Etersoft/CIFS@Etersoft/4.3.5/CentOS/5/etercifs-4.3.5-eter1centos.noarch.rpm fixed.