กำลังสร้างอะไร / autoconf.h?


9

เรากำลังพยายามสร้างซอฟต์แวร์ที่ต้องการแหล่งเคอร์เนลไม่ใช่แค่ส่วนหัว ดังนั้นเราจึงดาวน์โหลดเคอร์เนลซอร์สผ่านทาง centos src rpm

อย่างไรก็ตาม autoconf.h หายไป

พวกเราเหนื่อย

  • ใส่. config ไว้ (คัดลอกจาก / boot)

  • วิ่ง make oldconfig

ดังนั้นการสร้างไฟล์ autoconf.h คืออะไร? เราต้องสร้างเคอร์เนลหรือไม่


ในกรณีที่มีคนใช้ Kconfig เป็นสถาปัตยกรรมสร้างสำหรับโครงการที่ไม่เกี่ยวข้องกับ Linux คำตอบสำหรับคำถามนี้แตกต่างกันเล็กน้อย: เพื่อสร้าง autoconf.h คุณต้องการ. /kconfig-frontends/frontends/conf/conf --silentoldconfig Kconfig
Étienne

คำตอบ:


12

ไฟล์include/generated/autoconf.hถูกสร้างในmake prepareขั้นตอน หากคุณกำลังพยายามสร้างโมดูลเคอร์เนลคุณจะต้องมีmake scriptsขั้นตอน:

gunzip < /proc/config.gz > .config
make oldconfig
make prepare
make scripts

โดยปกติแล้วเคอร์เนลจะมาพร้อมกับแพ็คเกจส่วนหัวคุณลองติดตั้งชุดนั้นก่อนหรือไม่? สำหรับ CentOS ลองติดตั้งkernel-develแพ็คเกจ รายละเอียดสามารถพบได้ในhttp://wiki.centos.org/HowTos/I_need_the_Kernel_Source


ขอบคุณ! ใช่เราได้ติดตั้งแพคเกจส่วนหัวไว้ แต่ด้วยเหตุผลบางอย่างสคริปต์กำหนดค่าก็ต้องการแหล่งข้อมูลเต็มรูปแบบ เราใช้หน้าวิกิที่คุณลิงก์ไว้
Stefan

เพื่อความสมบูรณ์: บน CentOS เคอร์เนลจะอยู่ในการตั้งค่า/boot(เปรียบเทียบกับuname -rเพื่อเลือกหนึ่งที่เหมาะสม)
Stefan

1
@Stefan ใน distros บางส่วน (เช่น Arch Linux) ตั้งอยู่ใน/lib/modules/$(uname -r)/build/.config( buildมักจะเชื่อมโยงไปถึง/usr/src/linux-$(uname -r)) ผู้อื่นใช้/boot/config-$(uname -r)(เช่น Ubuntu, Debian และ CentOS อย่างเห็นได้ชัด) /proc/config.gzหากเปิดใช้งานในระหว่างการรวบรวมก็ยังสามารถใช้ได้จาก
Lekensteyn

0

ไฟล์autoconf.hจะถูกสร้างขึ้นโดยอัตโนมัติในระหว่างกระบวนการสร้างจาก.confไฟล์ autoconf.hเคอร์เนลหลายแหล่งที่มาการใช้งานไฟล์


1
ยินดีต้อนรับสู่ Server Fault! เราต้องการคำตอบเพิ่มเติมเพื่อตอบคำถามในแบบที่คำตอบก่อนหน้าไม่ได้หรือให้ทางออกที่ดีกว่า
Falcon Momot
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.