我正在使用来自 Amazon AWS 服务的 ec2 实例构建一个 Asterisk 服务器。 现在我有以下问题。
我需要说,这只是偶尔发生,并非总是如此!
当我通过 Amazon Cli AMI 创建实例时,它在大多数情况下都有效,但有时我会收到错误"非法指令"。
# asterisk -cvvvvvvvvvvvvr
Illegal Instruction
发生这种情况时,像Asterisk这样的程序不起作用。 我尝试重新启动进程,但错误"非法指令"不断出现。
我怎样才能避免这种情况? 这是更多人使用Amazon Cli AMI的错误吗? 任何建议将不胜感激。
谢谢
像"非法指令"这样的消息通常表示应用程序正在尝试告诉CPU做一些它不能做的事情。
它通常是运行为实际使用的不同处理器变体编译的二进制文件的结果。
当您为 ec2 构建时,您应该通过 make menuconfig 禁用 SSE 和其他优化
不幸的是,大多数图像都是由对星号和Linux不太了解的"专家"创建的。
最佳解决方案 - 设置简单的 bash 脚本,每次实例启动时都会下载并构建星号。这样,您就可以进行所有优化,并且实例 CPU 没有问题。
如果您在短插槽中使用星号 - 解决方案是在关闭优化的情况下重建它。在这种情况下,最好使用 64 位实例。
帮助有相同错误的人。 通过在菜单选择中关闭build_native选项的情况下重建星号来修复错误。
这每次都会修复错误。 已经测试了多次!