首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从系统启动到哪里调用dahdi_cfg?

从系统启动到哪里调用dahdi_cfg?
EN

Stack Overflow用户
提问于 2019-11-28 09:06:26
回答 2查看 199关注 0票数 1

我通过这样的模块助手在Debian稳定(Buster)上安装了DAHDI:

代码语言:javascript
复制
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似乎不起作用。

有人能在我的回答中回答新的问题吗?

EN

回答 2

Stack Overflow用户

发布于 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的效果。

这是一个例子:

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
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所需的唯一方法就是

代码语言:javascript
复制
echo options dahdi auto_assign_spans=1 >/etc/modprobe.d/dahdi.conf
票数 0
EN

Stack Overflow用户

发布于 2019-11-29 03:27:34

/lib/udev/rules.d/60-dahdi.rules使用下面的修补程序

代码语言:javascript
复制
+SUBSYSTEM=="dahdi_spans", RUN+="/usr/sbin/dahdi_cfg"
 LABEL="dahdi_add_end"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59085152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档