วิธีเช็ค Version ของ CentOS ให้ดูจากไฟล์ /etc/redhat-release ครับ
- โค้ด: เลือกทั้งหมด
cat /etc/redhat-release
ผลลัพธ์จะโชว์เวอร์ชั่นแบบนี้ เวอร์ชั่น 5.9
CentOS release 5.9 (Final)
ข้อความ Error ขณะ Complie ใกล้จะเสร็จครับ
- โค้ด: เลือกทั้งหมด
In file included from /usr/src/dahdi-linux-complete-2.6.1+2.6.1/linux/drivers/dahdi/xpp/xpd.h:26,
from /usr/src/dahdi-linux-complete-2.6.1+2.6.1/linux/drivers/dahdi/xpp/card_bri.c:29:
/usr/src/dahdi-linux-complete-2.6.1+2.6.1/linux/drivers/dahdi/xpp/xdefs.h:152: error: conflicting types for 'bool'
include/linux/types.h:36: error: previous declaration of 'bool' was here
make[4]: *** [/usr/src/dahdi-linux-complete-2.6.1+2.6.1/linux/drivers/dahdi/xpp/card_bri.o] Error 1
make[3]: *** [/usr/src/dahdi-linux-complete-2.6.1+2.6.1/linux/drivers/dahdi/xpp] Error 2
make[2]: *** [_module_/usr/src/dahdi-linux-complete-2.6.1+2.6.1/linux/drivers/dahdi] Error 2
make[2]: Leaving directory `/usr/src/kernels/2.6.18-348.el5-i686'
make[1]: *** [modules] Error 2
make[1]: Leaving directory `/usr/src/dahdi-linux-complete-2.6.1+2.6.1/linux'
make: *** [all] Error 2
วิธีแก้ไขก็คือให้ Comment บรรทัดๆหนึ่งที่อยู่ในไฟล์นี้
** อย่าลืมแก้ไขตัวเลขเวอร์ชั่นของ DAHDI ให้ตรงด้วยนะครับ **
- โค้ด: เลือกทั้งหมด
vi /usr/src/dahdi-linux-complete-2.6.1+2.6.1/linux/drivers/dahdi/xpp/xdefs.h
คือบรรทัดนี้ครับ
- โค้ด: เลือกทั้งหมด
typedef int bool;
แต่ว่ามันมีบรรทัดแบบนี้ 2 บรรทัด (หรือ 3 บรรทัด) ให้ทำกับบรรรทัดบนครับ ส่วนบรรทัดล่างๆปล่อยไว้ตามเดิม
ของเดิม
- โค้ด: เลือกทั้งหมด
typedef int bool;
#endif
#endif
#else
typedef int bool;
แก้ไขเป็น
- โค้ด: เลือกทั้งหมด
/* typedef int bool; */
#endif
#endif
#else
typedef int bool;
แล้วคอมไพล์ DAHDI ใหม่ ก็จะผ่านฉลุยครับ
บทความที่เกี่ยวข้อง
เทคนิคการแก้ไขปัญหาสตาร์ท Asterisk 11.2.1 ไม่ได้
เทคนิคการติดตั้ง Asterisk 11.2.1 + DAHDI 2.6.1
เทคนิคการติดตั้ง Asterisk 16.x + DAHDI 2.11.1 บน CentOS 7
เทคนิคการติดตั้ง Asterisk 15.x + DAHDI 2.11.1 บน CentOS 7