Джим Меггелен - Asterisk™: будущее телефонии Второе издание
- Название:Asterisk™: будущее телефонии Второе издание
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Джим Меггелен - Asterisk™: будущее телефонии Второе издание краткое содержание
Asterisk™: будущее телефонии Второе издание - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
configure: error: C++ preprocessor "/lib/cpp" fails sanity check (configure: ошибка: препроцессор С++ "/lib/cpp" не проходит проверку на готовность к работе)
Препроцессор gcc-c++ требует наличия следующих пакетов; устанавливаются они путем выполнения команды yum install gcc-c++:
• gcc-c++
• libstdc++-devel
configure: error: *** termcap support not found
Следующая ошибка может возникнуть при запуске сценария configure, если не установлен пакет libtermcap-devel:
configure: error: *** termcap support not found (configure: ошибка: поддержка *** termcap не выявлена) Для компиляции Asterisk необходим следующий файл; его можно установить, выполнив команду yum install libtermcap-devel:
• libtermcap-devel
Zaptel
Ошибки могут возникать и при компиляции Zaptel. Здесь представлены некоторые наиболее распространенные проблемы и способы их решения. Если ниже вы не находите ошибки, с которой столкнулись, посмотрите предыдущий раздел, может быть, вы найдете ее там.
make: cc: Command not found
Следующее сообщение об ошибке будет получено при попытке сборки Zaptel без компилятора gcc:
make: cc: Command not found make: *** [gendigits.o] Error 127
(make: сс: Команда не найдена
make: *** [gendigits.o] Ошибка 127)
Убедитесь, что gcc и его зависимости установлены. Больше информации можно найти в подразделе «configure: error: no acceptable C compiler found in $PATH» предыдущего раздела.
FATAL: Module wctdm/fxs/fxo not found
Для плат TDM400P необходима PCI-шина версии 2.2. При попытке загрузить драйверы телефонии Zapata с более старой версией могут возникать следующие ошибки:
• При попытке загрузить драйвер wctdm может появиться такое сообщение об ошибке:
FATAL: Module wctdm not found
(ФАТАЛЬНАЯ ОШИБКА: Модуль wctdm не найден)
• При попытке загрузить драйвер wctdm или wcfxo может появиться такое сообщение об ошибке:
ZT_CHANCONFIG failed on channel 1: No such device or address (6) FATAL: Module wctdm not found
(Не удалось выполнить ZT_CHANCONFIG для канала 1: Такое устройство или адрес не обнаружены (6) ФАТАЛЬНАЯ ОШИБКА: Модуль wctdm не найден) Единственный способ исправить эти ошибки - использовать более новую системную плату, которая поддерживает PCI версии 2.2:
• Также эти ошибки могут возникнуть, если блок питания не подключен в разъем Molex на плате TDM400P.
Неразрешимая символическая ссылка при загрузке ztdummy
Драйвер ztdummy требует наличия доступного контроллера UHCI USB в ядрах Linux 2.4 (USB-котроллер не является обязательным требованием для ядер Linux 2.6, потому что они способны генерировать опорный синхросигнал частотой 1 кГц). Существуют контроллеры вторичного типа, известные как OHCI-контроллеры [51], которые несовместимы с драйвером ztdummy. Если контроллер UHCI USB недоступен в ядрах Linux 2.4, возникнет следующая ошибка:
/lib/modules/2.4.22/misc/ztdummy.o: /lib/modules/2.4.22/misc/ztdummy.o: unresolved symbol unlink_td
/lib/modules/2.4.22/misc/ztdummy.o: /lib/modules/2.4.22/misc/ztdummy.o: unresolved symbol alloc_td
/lib/modules/2.4.22/misc/ztdummy.o: /lib/modules/2.4.22/misc/ztdummy.o: unresolved symbol delete_desc
/lib/modules/2.4.22/misc/ztdummy.o: /lib/modules/2.4.22/mlsc/ztdummy.o: unresolved symbol uhci_devices
/lib/modules/2.4.22/misc/ztdummy.o: /lib/modules/2.4.22/misc/ztdummy.o: unresolved symbol uhci_interrupt
/lib/modules/2.4.22/misc/ztdummy.o: /lib/modules/2.4.22/misc/ztdummy.o: unresolved symbol fill_td
/lib/modules/2.4.22/misc/ztdummy.o: /lib/modules/2.4.22/misc/ztdummy.o: unresolved symbol insert_td_horizontal
/lib/modules/2.4.22/misc/ztdummy.o: insmod /lib/modules/2.4.22/misc/ ztdummy.o failed
/lib/modules/2.4.22/misc/ztdummy.o: insmod ztdummy failed Убедиться в наличии соответствующего USB-контроллера и связанных с ним драйверов можно с помощью команды lsmod:
# lsmod
Module Size Used by
usb_uhci 26412 0
usbcore 79040 1 [hid usb-uhci]
Как можно увидеть в приведенном выше примере, мы проверяем, загружены ли модули usbcore и usb_uhci. Если эти модули не загружены, необходимо убедиться, что USB в BIOS активирован и что эти модули есть в наличии.
Если драйверы USB не загружены, все равно с помощью команды dmesg есть возможность проверить тип имеющегося USB-контроллера:
# dmesg | grep -i usb
Наличие контроллера UHCI USB подтвердят следующие строки:
uhci_hcd 0000:00:04.2: new USB bus registered, assigned bus number 1 hub 1-0:1.0: USB hub found
uhci_hcd 0000:00:04.3: new USB bus registered, assigned bus number 2 hub 2-0:1.0: USB hub found
(uhci hcd 0000:00:04.2: зарегистрирована новая USB-шина, присвоенный номер шины - 1 hub 1-0: обнаружен концентратор USB
uhci hcd 0000:00:04.3: зарегистрирована новая USB-шина, присвоенный номер шины - 2 hub 2-0:1.0: обнаружен концентратор USB)
Ошибки depmod во время компиляции
Если во время компиляции возникают ошибки depmod, вероятнее всего, отсутствует символическая ссылка на исходные файлы ядра Linux. Если исходные файлы используемого ядра Linux не установлены, необходимо скачать их в Интернете c сайта http://kernel.org, установить и создать символическую ссылку на /usr/src/linux-2.4. Ниже представлен пример ошибки depmod: depmod: *** Unresolved symbols in /lib/modules/2.4.22/kernel/drivers/block/ loop.o
(depmod: *** Неразрешимые символы в /lib/modules/2.4.22/kernel/ drivers/block/loop.o)
Быстрая загрузка Asterisk и Zaptel
Если команда make config выполняется в папках исходного кода Asterisk или Zaptel, сценарии запуска, используемые для управления Asterisk или Zaptel, будут скопированы в папку /etc/rc.d/init.d/. Используя сценарии, можно упростить загрузку Asterisk и Zaptel. Эти сценарии также выполнят команду chkconfig, что обеспечит автоматический запуск Asterisk и Zaptel при загрузке системы. Ниже представлен пример их использования:
# service zaptel start
# service asterisk start
Каждый сценарий запуска имеет несколько опций, с помощью которых можно управлять офисной АТС или драйверами. В табл. 3.2 и 3.3 приведены команды, выполняемые сценарием (но их можно было бы вводить самостоятельно в интерфейсе командной строки (Command- Line Interface, CLI)).
Таблица 3.2. Опции сценария запуска Asterisk
service asterisk <���опция> | Эквивалент для ввода вручную |
start | asterisk |
stop | killproc asterisk |
restart | stop; start |
reload | asterisk -rx "reload" |
status | ps aux | grep [a]sterisk |
Таблица 3.3. Опции сценария запуска Zaptel
service zaptel <���опция> | Эквивалент для ввода вручную |
start | modprobe zaptel; modprobe <���модуль>; /sbin/ztcfg |
stop | rmmod ztdummy; rmmod zaptel |
restart | stop; start |
reload | /sbin/ztcfg |
Загрузка модулей Zaptel без использования сценариев
В данном разделе будет кратко рассмотрена загрузка модулей zaptel и ztdummy без сценария запуска CentOS. Если модуль zaptel будет использоваться только для модуля ztdummy, он не требует никакой конфигурации. Если планируется загружать модуль ztdummy в качестве источника временных интервалов (и таким образом, в системе не будут использоваться никакие PCI-устройства), самое время загрузить оба драйвера.
Системы, выполняющие udevd
В эпоху юности Linux системная папка /dev/ заполнялась списком устройств, с которыми система потенциально могла взаимодействовать. В то время в этом списке было примерно 18 000 устройств. Все изменилось с появлением devfs, обеспечившего динамическое создание файлов устройств, которые активно используются системой. Некоторые последние выпущенные дистрибутивы включают программу-демон udev для динамического заполнения папки /dev/ списками устройств. Чтобы Zaptel и другие драйверы устройств могли работать с PCI-уст- ройствами, установленными в системе, необходимо определить несколько правил. В своем любимом текстовом редакторе откройте файл правил udevd. В CentOS, например, этот файл находится по адресу /etc/udev/rules.d/50-udev.rules. В конце файла правил необходимо добавить следующие строки:
Читать дальшеИнтервал:
Закладка: