我通过这样的模块助手在Debian稳定(Buster)上安装了DAHDI:
apt-get install dahdi dahdi-source module-assistant
module-assistant auto-install dahdi我还创建了/etc/dahdi/system.conf和/etc/dahdi/assigned-spans.conf。
我不知道谁在系统引导期间调用dahdi_cfg。我可以确认它是通过某种方式调用的,因为如果删除dahdi_cfg并重新启动,则lsmod中缺少echo和dahdi_echocan_oslec模块(system.conf中指定了回波消除)。
我找到了/usr/share/dahdi/span_config.d/10-dahdi-cfg,但我不知道是什么在运行它。
那么,在系统引导期间,从哪里调用dahdi_cfg呢?
更新
我发现如果system.conf丢失,回波取消模块无论如何都会被加载。强制性条件是:
dahdi_cfg
的
UPDATE2
还有一个注意:如果删除了/etc/dahdi/assigned-spans.conf并将options dahdi auto_assign_spans=1添加到/etc/modprobe.d/dahdi.conf,那么回波消除模块就不会加载(system.conf仍然被删除)。因此,auto_assign_spans=1似乎不起作用。
有人能在我的回答中回答新的问题吗?
发布于 2019-11-29 02:08:10
首先,让我们来处理auto_assign_spans=1
删除auto_assign_spans=1。结果:/proc/dahdi/为空。使用auto_assign_spans=1。结果:/proc/dahdi/不为空。
因此,这就是如何检查auto_assign_spans=1的效果。
这是一个例子:
Span 1: WCTDM/0 "Wildcard TDM410P" (MASTER)
1 WCTDM/0/0 RED
2 WCTDM/0/1
3 WCTDM/0/2
4 WCTDM/0/3 现在运行dahdi_genconf system并再次检查/proc/dahdi/1:
Span 1: WCTDM/0 "Wildcard TDM410P" (MASTER)
1 WCTDM/0/0 FXSKS RED
2 WCTDM/0/1 FXOKS
3 WCTDM/0/2 FXOKS
4 WCTDM/0/3 FXOKS 我们已经看到,dahdi_genconf扰乱了跨度。这是个bug吗?
然后运行dahdi_cfg并再次检查/proc/dahdi/1:
Span 1: WCTDM/0 "Wildcard TDM410P" (MASTER)
1 WCTDM/0/0 FXSKS RED (EC: OSLEC - INACTIVE)
2 WCTDM/0/1 FXOKS (EC: OSLEC - INACTIVE)
3 WCTDM/0/2 FXOKS (EC: OSLEC - INACTIVE)
4 WCTDM/0/3 FXOKS (EC: OSLEC - INACTIVE) 现在我们看到一切都被正确地配置了。
接下来,udev调用dahdi_handle_device。它什么也不做(因为使用了auto_assign_spans=1 )。
然后udev调用dahdi_span_config。出于同样的原因,它什么也不做。
这是有趣的部分:如果使用dahdi_cfg,则不调用auto_assign_spans=1。这是个bug吗?
?
相反,如果不使用auto_assign_spans=1,则由dahdi_span_config调用dahdi_cfg。
这有点让人困惑。如果使用dahdi_cfg,为什么禁止运行auto_assign_spans=1?如果我们只有一张卡,这是完全可以接受的。auto_assign_spans=1甚至记录在dahdi-tools自述文件中,作为这种场景的用例:
通常(在模块dahdi中使用auto_assign_spans=1,这是默认的),当设备被发现和加载时,它会向DAHDI核心注册,并且它的跨度会自动变为可用。但是,如果您有多个设备,您可能有兴趣为它们设置显式的跨度和通道号。
手动将dahdi_cfg添加到dahdi_span_config中安全吗?
顺便说一句,system.conf甚至不需要创建--如果它不存在,它是动态生成的,但同样,只有在不使用auto_assign_spans=1的情况下才会动态生成它。如果以某种方式纠正了这一缺陷,配置DAHDI所需的唯一方法就是
echo options dahdi auto_assign_spans=1 >/etc/modprobe.d/dahdi.conf发布于 2019-11-29 03:27:34
对/lib/udev/rules.d/60-dahdi.rules使用下面的修补程序
+SUBSYSTEM=="dahdi_spans", RUN+="/usr/sbin/dahdi_cfg"
LABEL="dahdi_add_end"https://stackoverflow.com/questions/59085152
复制相似问题