系统启动时从哪里调用dahdi_cfg?



我通过模块助手在 Debian stable(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中缺少echodahdi_echocan_oslec模块(回声消除在system.conf中指定(。

我找到了/usr/share/dahdi/span_config.d/10-dahdi-cfg,但我不知道什么可以运行这个。

那么,在系统启动期间从哪里调用dahdi_cfg

更新

我发现如果缺少system.conf,无论如何都会加载回声消除模块。强制性条件是:

  • 存在dahdi_cfg
  • /
  • etc/dahdi/assigned-spans.conf

UPDATE2

还有一个观察结果:如果删除/etc/dahdi/assigned-spans.conf并将options dahdi auto_assign_spans=1添加到/etc/modprobe.d/dahdi.conf,则不会加载回声消除模块(system.conf 仍然被删除(。所以似乎auto_assign_spans=1不起作用。


任何人都可以在我的回答中回答新问题吗?

首先,让我们处理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弄乱了跨度。这是一个错误吗?

然后运行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) 

现在我们看到一切都已正确配置。


接下来,dahdi_handle_device由 udev 调用。它不执行任何操作(因为使用了auto_assign_spans=1(。

然后dahdi_span_config被udev调用。出于同样的原因,它什么也没做。

这是有趣的部分:如果使用auto_assign_spans=1,则不会调用dahdi_cfg这是一个错误吗?

------------------------------

相反,如果不使用auto_assign_spans=1,则dahdi_cfgdahdi_span_config调用。

这有点令人困惑。如果使用auto_assign_spans=1,为什么禁止运行dahdi_cfg?如果我们只有一张卡,这是完全可以接受的。auto_assign_spans=1甚至记录在dahdi-tools README中作为此类场景的用例:

正常(模块中 auto_assign_spans=1 dahdi,这是默认值(,当发现并加载设备时, 它向 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

使用以下补丁进行/lib/udev/rules.d/60-dahdi.rules

+SUBSYSTEM=="dahdi_spans", RUN+="/usr/sbin/dahdi_cfg"
LABEL="dahdi_add_end"

相关内容

  • 没有找到相关文章

最新更新