Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

Centos 5 + Dahdi from src

1

Приветствую! Появилась необходимость собрать * на Centos. Поставил все необходимые пакеты. Пытаюсь собрать DAHDI с сорцов но получаю:

[root@app]/usr/src/dahdi-linux-complete-2.5.0+2.5.0# make all
make -C linux all
make[1]: Entering directory `/usr/src/dahdi-linux-complete-2.5.0+2.5.0/linux'
make -C drivers/dahdi/firmware firmware-loaders
make[2]: Entering directory `/usr/src/dahdi-linux-complete-2.5.0+2.5.0/linux/drivers/dahdi/firmware'
make[2]: Leaving directory `/usr/src/dahdi-linux-complete-2.5.0+2.5.0/linux/drivers/dahdi/firmware'
You do not appear to have the sources for the 2.6.18-92.el5 kernel installed.
make[1]: *** [modules] Error 1
make[1]: Leaving directory `/usr/src/dahdi-linux-complete-2.5.0+2.5.0/linux'
make: *** [all] Error 2

Хотя пакет kernel-devel установлен:

[root@app]/usr/src/dahdi-linux-complete-2.5.0+2.5.0# yum list installed | grep kernel
kernel.x86_64                            2.6.18-92.el5          installed
kernel-devel.x86_64                      2.6.18-238.19.1.el5    installed

Попытался явно указать, через экспорт переменной KSRC. Все собирается, но модуля попадают в папку /lib/modules/2.6.18-238.19.1.el5 вместо /lib/modules/2.6.18-92.el5. Пытался сделать и через симлинк с нужным именем версии ядра на папку сорцов и через полное копирование - результат тот же. Попытался переложить модуля из 2.6.18-238.19.1.el5 в 2.6.18-92.el5 и запустить depmod -a. Модуля ядро видит, но грузить не хочет. Что я делаю не правильно ? До этого пользовался Debian'ом - не было никаких проблем. З.Ы. Систему переставить нельзя, иначе давно бы так сделал.

удалить закрыть спам изменить тег редактировать

спросил 2011-09-07 15:14:40 +0400

iye Gravatar iye
31 3 1 6

2 Ответа

1

а вас не смущает что у вас ядро не совпадает с девелом? обновитесь. либо поставте девел нужной версии.

и вообще, зачем в центос * с исходников? есть же репозиторий.

ссылка удалить спам редактировать

ответил 2011-09-07 21:11:59 +0400

meral Gravatar meral flag of Ukraine
23347 24 20 177
http://pro-sip.net/

Comments

Очень смущает. Я бы даже сказал коробит ). Но я нигде не могу найти исходники нужной версии. Скачал rpm пакет от RHEL, поставил, а там куча патчей, конфигов и еще чего то. Вобщем совсем не то что я ожидал .. как из этой солянки собрать то что мне нужно - вообше не представляю. * из репозитория не ставлю никогда, потому что, как правило, он там никогда так как мне нужно собран не бывает, да еще и какой нибудь древней версии. iye ( 2011-09-07 23:09:35 +0400 )редактировать
а yum update не помогает? и перезагрузится? если нет, то надо сделать yum remove kernel-devel ; yum install kernel-devel.2.6.18-92.el5 meral ( 2011-09-08 06:13:21 +0400 )редактировать
в репозитории asterisk.org астриск последней версии со всеми включенными опцими. и там жесть dahdi/dahdi-devel. поставте dahdi из репозитория и астериск компильте если сильно хочется. meral ( 2011-09-08 06:14:36 +0400 )редактировать
Апдейтнул ядро - и все взлетело. Спасибо! iye ( 2011-09-08 11:24:49 +0400 )редактировать
0
function build_dahdi {
  function fix_kern {
    mv /lib/modules/`uname -r`/build /lib/modules/`uname -r`/build.bak
    source_kern=`find /usr/src/ -type d -name "2.6*" | grep kernel | awk '{print $1}'`
    ln -s $source_kern /lib/modules/`uname -r`/build
  }
  wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz -O - | tar zxf - -C /usr/src
    cd /usr/src/dahdi* ; 
    make clean ; make || fix_kern ; make all || return 0; make install ;make config
    if [ ! -f /lib/modules/`uname -r`/dahdi/dahdi_dummy.ko ]; then
    cd linux;
    make MODULES_EXTRA="dahdi_dummy"
    cp drivers/dahdi/dahdi_dummy.ko /lib/modules/`uname -r`/dahdi
    depmod -a
    modprobe dahdi_dummy
  fi
  sed '${/\/usr\/lib\// !{/^$/!s/$/\n\/usr\/lib\//};}' -i  /etc/ld.so.conf ;
    cd /usr/src/libpri* ; 
    make ; make install ; ldconfig
  depmod -a
  modprobe dahdi || (ln -s `find /lib/modules/ -type d -name 'dahdi'` /lib/modules/`uname -r`/dahdi ; depmod -a ;modprobe dahdi )
  /etc/init.d/dahdi start 
}

обычно этого хватает чтобы поставить сразу.

ссылка удалить спам редактировать

ответил 2011-09-07 16:40:47 +0400

zzuz Gravatar zzuz flag of Russian Federation
7174 2 6 75
http://line24.ru/

Comments

Эта функция для dahdi_dummy , так что если будет источник синхронизации , то строки где dadhi_dummy ставится можно убрать . Плюс сырцы ядра (точнее его установленная версия) могут не совпасть с /lib/modules/`uname -r`/build zzuz ( 2011-09-07 16:43:46 +0400 )редактировать
Попробовал перелинковать /lib/modules/`uname -r`/build - ноль эффекта. Все равно ставит не в ту папку модули (. iye ( 2011-09-07 18:39:10 +0400 )редактировать
Исправить в таком случае поможет линк на папку dahdi из /lib/modules/`uname -r`/dahdi на папку /lib/modules/<kernel>/dahdi . После сделать depmod -a и попробывать подгрузить модуль. zzuz ( 2011-09-07 18:48:00 +0400 )редактировать
Пробовал до этого просто скопировать и запустить depmod - не помогло. Вашим способом - анналогичный результат. Пишет:Loading DAHDI hardware modules: FATAL: Error inserting dahdi (/lib/modules/2.6.18-92.el5/dahdi/dahdi.ko): Unknown symbol in module, or unknown parameter (see dmesg). В /var/log/message: Sep 7 22:20:28 app kernel: dahdi: Unknown symbol strcasecmp iye ( 2011-09-07 23:02:57 +0400 )редактировать
ну так. Не то видимо компилите. или сырцы явно не под версию. zzuz ( 2011-09-07 23:55:55 +0400 )редактировать
а что говорит find /lib/modules/ -type d | grep dahdi ? zzuz ( 2011-09-07 23:58:45 +0400 )редактировать
find /lib/modules/ -type d | grep dahdi /lib/modules/2.6.18-238.19.1.el5/dahdi /lib/modules/2.6.18-238.19.1.el5/dahdi/wctdm24xxp /lib/modules/2.6.18-238.19.1.el5/dahdi/wct4xxp /lib/modules/2.6.18-238.19.1.el5/dahdi/wcte12xp /lib/modules/2.6.18-238.19.1.el5/dahdi/wctc4xxp /lib/modules/2.6.18-238.19.1.el5/dahdi/xpp /lib/modules/2.6.18-238.19.1.el5/dahdi/wcb4xxp /lib/modules/2.6.18-238.19.1.el5/dahdi/voicebus iye ( 2011-09-08 08:58:18 +0400 )редактировать
ага, понятно . А что говорит ls /lib/modules/ ? zzuz ( 2011-09-08 10:18:05 +0400 )редактировать
Апдейтнул ядро - и все взлетело. Спасибо! iye ( 2011-09-08 11:25:00 +0400 )редактировать

Ваш ответ

Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!
[скрыть предварительный просмотр]

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2011-09-07 15:14:40 +0400

Просмотрен: 1,538 раз

Обновлен: Sep 07 '11

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.