Інсталяція драйвера ядра Zaptel, База знань

Інсталяція драйвера ядра Zaptel

Зверніть увагу, що релізи Asterisk гілки 1.4 з версією вище 1.4.21, і всі релізи гілки 1.6 автоматично використовуватимуть DAHDI замість Zaptel, навіть якщо Zaptel все ще встановлений і присутній в системі.Про те, як перейти із Zaptel на DAHDI можна почитати тут.

Перш ніж Ви зможете їх використовувати, Вам потрібно встановити драйвер пристрою, який забезпечить їхню роботу. У ОС Linux драйва пристроїв можна встановити, як модуль ядра. Вам буде необхідно завантажити вихідні коди цих модулів ядра, скомпілювати та встановити їх. Саме цьому процесу і присвячено цю сторінку.

Для роботи драйвера Zaptel потрібне ядро ​​Linux 2.4.x або 2.6.x. Підтримка більш старих версій ядра не здійснюється.

Зауваження щодо роботи в різних операційних системах

Підтримка ядра Linux версії 2.6.*

  • Березень 2004: Використовуйте "make linux26" замість "make" для компіляції драйвера zaptel в директорії з його вихідними кодами.
  • Січень 2004: драйвери ztdummy та zaprtc не можуть бути одночасно завантажені для ядра Linux (версії 2.6?)
  • Січень 2004: Mark зробив виправлення в драйвері zaptel і зробив його сумісним із ядром Linux 2.6.
  • Вересень 2004: Якщо ви компілюєте драйвер zaptel для використання ztdummy, переконайтеся, що лінк /usr/src/linux-2.6 вказує на: /lib/modules/2.6.x.x.etc/build для правильної роботи modprobe.
  • Грудень 2004: Помічено, що проблема з перериваннями частіше виникає при використанні версії ядра 2.6, ніж 2.4, тому що там повніше використовується інтерфейс ACPI. Спробуйте завантажити з параметром: acpi=off
  • Березень 2006: Помічено, що для багатьох серверів Dell механізм RTC не може отриматипотрібне переривання, що призводить до того, що драйвер ztdummy не отримує позначок часу. Якщо Ви використовуєте драйвер ztdummy і маєте проблеми з командою Playback(), при використанні якої сервер зависає, спробуйте використовувати метод з відключенням acpi, описаний нижче. На додаток, перекомпіляція ядра з включеною опцією HPET_EMULATE_RTC може допомогти вирішити цю проблему.
  • Квітень 2006: Ви повинні виконати команду "make prepare" у директорії з вихідними кодами ядра, перш ніж приступити до компіляції модуля драйвера ядра zaptel.

Вихідники ядра linux

Коли ви збираєтеся встановити модуль ядра. Для того, щоб правильно скомпілювати драйвер zaptel, Вам необхідно мати вихідні коди ядра тієї ж версії, що використовується на Вашій машині, і Ви повинні обов'язково переконатися, що версія компілятора gcc, яка використовувалася для створення ядра, та сама, що встановлена ​​на на даний момент у Вашій системі. Якщо Ви самостійно не компілювали ядро ​​для своєї системи, дотримуйтесь наведеної нижче покрокової інструкції.

Перевірте версію ядра, яка у Вас встановлена. Це можна зробити наступною командою:

Як результат, Ви отримаєте щось на кшталт цього:

Linux version2.4.28(root@localhost) (gcc version3.220020903 (Red Hat Linux 8.0 3.2-7)) #1 Tue Jan 28 11:01:02 CST 2003

Це вказує на те, що Вам потрібні вихідні коди версії of 2.4.28 в директорії /usr/src, і для компіляції ядра використовувався компілятор gcc версії 3.2.

Після того як ви завантажили та встановили пакет з вихідними кодами потрібного ядра, результат виконання команди:

повинен дати приблизно такий результат:

Переконайтеся, що у вас є файл конфігурації для ядра, що використовується. Вінзазвичай знаходиться в директорії the /boot directory та його ім'я містить номер версії ядра:

Скопіюйте цей файл у: /usr/src/.config, приблизно так:

Тепер переконайтеся, що файл конфігурації повністю сумісний з вихідними кодами ядра. Виконайте наступне:

Коли стартує програма menuconfig, вона автоматично читає файл .config. Просто вийдете з програми menuconfig і погодьтеся на пропозицію зберегти файл .config.

Тепер, для Linux ядра версії 2.4, Ви повинні виконати наступну команду:

Її виконання може вимагати певного часу. В результаті виконання буде створено файл modversions.h, який буде необхідний для компіляції драйверів zaptel.

(Змініть "linux-2.6.9-5.0.3.EL" на потрібне значення для Вашої системи)

Також, якщо ви використовуєте cross compiling (наприклад, компіляцію драйвера для версії 2.6 на машині з ядром 2.4), відредагуйте файл Makefile і для параметра KERNEL_SOURCE змініть його значення на "/usr/src/linux", за умови, що директорія "/usr /src/linux" об'єднана з вихідними кодами ядра потрібної Вам версії.

Де завантажити

Ви можете завантажити останні версії драйвера zaptel c ftp сервера компанії Digium. Або можете скористатися svn репрозитором для отримання вихідних кодів драйвера zaptel. За допомогою наступних команд (передбачається, що у вас встановлений svn клієнт та використовується оболонка bash:

Компіляція

Якщо у Вас немає інтерфейсних карт від Digium, прочитайте про : Asterisk таймер і зробіть необхідні зміни у файлі Makefile, наприклад, дозвольте компіляцію драйвера ztdummy, видаливши відповідний символ #.

Перевірте вміст файлу "/usr/src/zaptel/zconfig.h" на будь-які специфічні налаштування,які повинні відповідати вашій конфігурації. Потім виконуємо:

Також виконайте 'make zttool' перед 'make install', якщо Ви хочете встановити додаткові утиліти (для цього будуть потрібні вихідні коди пакету libnewt, наприклад, libnewt-dev для Debian).

Якщо у вас виникають проблеми при виконанні команди 'depmod -a', яка виводить повідомлення про не знайдені залежності - "unresolved symbols", тоді:

  • спробуйте виконати команду 'depmod -ae', щоб дізнатися про імена залежностей, які не знайдені. Можливо, ці імена вкажуть вам, де потрібно шукати помилку.
  • Переконайтеся, що Ви використовуєте останні версії всіх утиліт, які використовуються для компіляції (компілятор gcc і т.д.).
  • Переконайтеся, що у вас вихідні коди ядра, його заголовні файли .h і саме ядро ​​однієї і тієї ж версії.
Якщо Ви використовуєте ядро ​​Linux версії 2.6, прочитайте вміст файлу README.udev, і дійте згідно з отриманими інструкціями. ПЕРЕГРУЗІТЬСЯ, після того, як ви зробите зміни, описані у файлі README.udev .

Коли модулі ядра скомпільовані, виконайте команду:

при цьому повинні завантажитися модулі драйвера zaptel без жодних повідомлень про помилки.

Так само як і для модуля zaptel, якщо все гаразд, то modprobe просто завантажить модуль ядра без жодних повідомлень.

Переглянувши вміст файлу /var/log/messages, Ви повинні знайти повідомлення, де модуль, що підвантажується, повідомляє, які інтерфейсні карти він знайшов. Наприклад:

Тепер Вам потрібно зробити так, щоб ці модулі ядра завантажувалися під час завантаження комп'ютера з сервером Asterisk. Ви можете використовувати такі команди:

При цьому будуть встановлені файли "/etc/rc.d/init.d/zaptel" та "/etc/sysconfig/zaptel". Однак, у різних дистрибутивахвикористовують різні методи завантаження додаткових модулів. Подивіться на вміст та відредагуйте файли (оригінали знаходяться в /usr/src/zaptel/zatptel.init та /usr/src/zaptel/zaptel.sysconfig) відповідно до вимог для вашої системи. Зокрема, якщо Ви використовуєте ztdummy, Вам знадобиться змінити файли завантаження драйверів zaptel, так як описано тут. Ймовірно, Вам захочеться змінити ці файли, щоб завантажувалися ті модулі, які Вам необхідні.

Коли ви виконаєте команду 'make install', у Вас з'явиться конфігураційний файл: /etc/zaptel.conf. Отже, тепер варто прочитати про те, які налаштування в ньому треба зробити:

  • Опис файлу zaptel.conf
Якщо Ви вже до цього скомпілювали та встановили сервер Asterisk, у вас, можливо, може бути відсутній модуль "chan_zap.so". Якщо Ви не бачите його в директорії /usr/lib/asterisk/modules, то тепер Вам треба його скомпілювати і встановити. Ідіть у директорію з вихідними кодами Asterisk - "/usr/src/asterisk" і виконайте "make & & make install" ще раз. При цьому буде створено та встановлено модуль "chan_zap.so".

Якщо Ви забули це зробити, ви отримаєте повідомлення про помилку: "Unable to create channel of type 'Zap'" При спробі здійснити виклик через Zap канал.

Встановлення драйверів адаптерів Кронікс для Asterisk

Ця інструкція взята з файлуzaptel-r.txt, що йде разом з поставкою драйверів для адаптерів Кронікс

Ця інструкція описує процедуру складання пакета драйверів для адаптерів КБ Кронікс з підтримкою інтерфейсу Zaptel для застосування адаптерів Кронікс Tau-PCI/2E1, Tau-PCI/4E1 та Tau32-PCI з пакетом Asterisk в операційній системі Linux.

ПРИМІТКА: адаптери модифікацій Tau-PCI/E1, Tau-PCI/G.703, Tau-ISA/E1 та Tau-ISA/G.703 не підтримуються.

Необхідні умови

Для збирання пакета драйверів потрібна наявність таких пакетів:

  • Тексти ядра, підготовлені для складання зовнішніх (що поставляються окремо від ядра) модулів. (див. вище)
  • Тексти пакета драйверів Zaptel. Передбачається, що вони вже зібрані та встановлені в систему, інакше при установці драйверів Кронікс буде видано повідомлення про невідомі символи в модулі czaptel.ko. Тут і далі в іменах модулів використовується розширення '.ko' притаманне модулів ядер Linux версії 2.6.х (для ядер 2.4.х - зширення '.o').
  • Розпакований пакет драйверів для адаптерів Кронікс. Якщо ви вже проводили складання драйверів у цій папці без підтримки інтерфейсу Zaptel, необхідно виконати команду:

для приведення текстів у вихідний стан.

УВАГА: для адаптера Tau32-PCI більше не потрібно спеціальної процедури складання драйвера для роботи з модулем czaptel.ko.

Складання та встановлення драйверів

Для складання та встановлення виконайте команду:

де some_path шлях до текстів драйверів Zaptel. Якщо пакет Zaptel не встановлено, під час інсталяції драйверів система видасть повідомлення про невирішені символи.

Запуск драйверів

Драйвера адаптерів Кронікс повинні запускатися до запуску пакета Asterisk та команд ініціалізації інтерфейсу Zaptel.

Якщо інсталяція драйверів пройшла правильно і були правильно побудовані залежності драйверів, то при старті пакета драйверів Кронікс буде завантажено протокольний модуль czaptel.ko із пакета драйверів Кронікс та модуль zaptel.ko (залежно) з пакета Zaptel. Переконатися в тому, що це так, виконавши команду "lsmod" для перевірки списку завантажених модулів.

Для того, щоб пристарті системи на каналах адаптерів автоматично включався протокол "zaptel" необхідно відредагувати відповідні рядки відповідні каналам /etc/cronyx.conf:

Після запуску пакета драйверів ви отримаєте інтерфейси Zaptel, подальше налаштування яких відбувається через /etc/zaptel.conf (шлях може відрізнятися залежно від параметрів, заданих при установці пакета). Оновлення параметрів, вказаних у /etc/zaptel.conf проводиться командою ztcfg.

Опис подальшого налаштування каналів виходить за рамки цього документа. За додатковою інформацією звертайтесь до розділу "Програмне забезпечення" на сайт КБ Кронікс та документації з пакету Asterisk на сайті проекту.

УВАГА: Наведена в цьому файлі інструкція може значно змінитись у наступних версіях драйверів. Тому при оновленні уважно вивчіть оновлену інструкцію та перевірте, чи не змінилися параметри конфігураційного файлу.

Всі питання та зауваження щодо цього пакету прохання надсилати до служби технічної підтримки КБ Кронікс

Установка драйвера Zaptel на RedHat 3.0

Якщо Ви встановлюєте модуль zaptel на RedHat AS/ES 3.0 або на його клони, Ви можете отримати повідомлення про помилки при виконанні команди make. Тоді Ви повинні зробити таке:

  • Встановити пакет із вихідними кодами ядра.
  • Зробити лінк з директорії, де проводитися складання ядра на: /usr/src/linux-2.4.
  • І спробувати скомпілювати модулі ядра zaptel.
Якщо зробити таке:

Тоді вихідні коди redhat enterprise зазвичай вже підготовлені для компіляції нових модулів ядра. Додано: HRORG (www.hrorg.com, )

Інсталяція драйвера Zaptel на Gentoo

Скрипти ініціалізації таконфігурація в Gentoo відрізняється від застосовуваних RedHat. Виконайте такі дії:

І зробіть такі зміни:

Нове розташування файлів конфігурації тепер буде таким: