FreePBX Distro 3.x and CPU type - wrong architecture?

Fresh install of the last stable ISO, install failed because Asterisk is core dumping with an error “1537 Illegal instruction” at line 145 of /usr/sbin/safe_asterisk.

The CPU is as follows:
[[email protected] ~]# cat /proc/cpuinfo
processor : 0
vendor_id : AuthenticAMD
cpu family : 6
model : 8
model name : AMD Duron™
stepping : 1
cpu MHz : 1600.183
cache size : 64 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 1
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 mmx fxsr sse syscall mmxext 3dnowext 3dnow up
bogomips : 3200.36
clflush size : 32
cache_alignment : 32
address sizes : 34 bits physical, 32 bits virtual
power management: ts

Asterisk version is

This same system was running a FreePBX Distro 1.817.xx, can’t remember what minor release of Asterisk 1.8, so it shouldn’t be the release.

Probably the distro pulled down the wrong package for the CPU.
Can you please check the repos?

Also, this is an error the install script should catch.
What can I do to help?

Asterisk RPMs dont care about the CPU. Its either 32bit or 64bit. That is it.

Hmmm… So why is asterisk bailing out with an “Illegal instruction” error?

I guess the Asterisk version in the RPM has been compiled with a few option switches that require some features from the CPU, and the Duron doesn’t have them.

I had the same problem with a plain Intel system with a Celeron CPU that was failing to install, turned out the error was the same.

PIAF - compiling Asterisk and other stuff from scratch on the deployment machine and CPU - worked first time, and I guess it would work on this Duron CPU machine.

I’m not asking you compile and package a number of Asterisk RPM with a 386, 586 and 686 architecture, but if there are some assumptions you take for the type of CPU instructions the system must support you should either state it somewhere or test for it before you try to install and fail.

Again, how can I help?

Well I have never seen a 32bit RPM not install on any CPU before. This would be a first. Not sure what to tell you. We dont do anything special with the RPM setup.

Trawled the repo, turns out up to all Asterisk packages were .i386.rpm, from the Asterisk packages are .i686.rpm.

So you switched from the i386 to the i686 architecture while moving from CentOS 5.x to 6.x.

As this CPU runs CentOS 6.3 without a problem, pulling the .i686.rpm packages from the repo, why the i686 packages for Asterisk fail is beyond me.

Again, it’s very likely any of the Asterisk packaged executables has been compiled using some switches for optimization and the instruction set required is beyond this CPU.

It’s a bummer, because if Asterisk fails to start before you download the FreePBX RPMs, almost all of the Kickstart post-install scripts fail.

I guess it’s another PIAF install on this hardware…

I like the direction your Distro is taking, but it’s becoming a bit too demanding in terms of hardware.

I mean, it’s a PBX… we shouldn’t need a quad-core last gen CPU for that!

Hi Tony,

It’s not the install of the RPM that fails, it’s when you try to execute the installed application that it bails out with that error.

It’s the second time that happens to me - maybe because I’m a cheapskate and I’m recycling old(ish) hardware to run the PBX.

Where do you pull the RPM to publish them in your repo? From Digium themselves?

I guess I can always install an old 1.x.x.58 (so all i386 packages) and cross my fingers…

If there’s anything I can do to help (logs or else) let me know, while I still have the failed install on this hardware.