这个故事对于这个问题来说并不那么重要,但它是这样的:GPRS 调制解调器被锁定在供应商的软件中(如果它没有收到对其打印的“挑战”的正确响应,它就无法工作)时不时地)。为了在 Linux 下使用它,有人对该代码进行了逆向工程/反汇编,现在有一个类似守护程序的程序,它会扫描要出现的设备,然后开始向其发送特殊命令。该程序的源代码已丢失,因此我们无法重写它。
如果守护程序在 NetworkManager 开始连接之前运行,则 NetworkManager 会因某些访问冲突而失败。如果在建立 PPP 连接后运行守护程序,则连接会断开(可能是因为它在初始阶段干扰它。)但我发现,如果启动守护程序,然后运行 pppd手动,一切正常。
但人们使用 NetworkManager。
对于特定连接,如何让 NetworkManager 在 pppd 之前运行另一个程序? (我知道对任何连接执行此操作的方法:只需用包装器替换 pppd 二进制文件!也许,它甚至没有那么糟糕,除了侵入发行版的包,这意味着我们的包装器将被包升级覆盖。 )
一个更简单的问题:如何使 NetworkManager 使用另一个程序而不是标准 pppd(无需在其标准位置替换 pppd)?
一个更难的问题:如果 NetworkManager 要使用某种已定义的 GPRS 调制解调器模型,如何使 NetworkManager 运行这个特殊程序?