ฉันจะติดตั้งไฟล์ส่วนหัวเคอร์เนลได้อย่างไร


85

ฉันต้องการเขียนโปรแกรมควบคุมอุปกรณ์ แต่ไม่สามารถหาไฟล์ส่วนหัวได้โปรดช่วยฉันค้นหาพวกเขาได้บ้างนอกจากนี้ถ้ามีคนสามารถชี้ให้เห็นถึงการเชื่อมโยงเว็บไซต์ที่สำคัญที่น่าชื่นชม

คำตอบ:


118

คุณควรจะสามารถติดตั้งไฟล์ส่วนหัวเคอร์เนลสำหรับเคอร์เนลที่กำลังทำงานอยู่ได้โดยการรันสิ่งต่อไปนี้ในเทอร์มินัล:

sudo apt-get install linux-headers-$(uname -r)

โดยทั่วไปแพ็คเกจส่วนหัวเคอร์เนลมีชื่อว่า linux-header- * โดยที่ "*" หมายถึงเวอร์ชัน & ชุดตัวเลือก (ทั่วไปเซิร์ฟเวอร์ ฯลฯ )


3
เฮ้ขอบคุณ แต่คุณสามารถบอกฉันสิ่งที่ไม่ทั่วไปเซิร์ฟเวอร์ ฯลฯหมายความว่าผมอยากจะเขียน (เคอร์เนลไดรเวอร์)
coder

8
สิ่งนี้จะไม่ติดตั้งส่วนหัวสำหรับการอัปเดตในอนาคตโดยอัตโนมัติและคุณจะต้องเรียกใช้คำสั่งนี้ซ้ำทุกครั้ง ดังนั้นจึงขอแนะนำให้ติดตั้ง metapackage แทนตามที่อธิบายไว้ในคำตอบอื่น
gertvdijk

หมายเหตุ: นี้ไม่ได้ใส่ไว้ใน GCC ได้แก่ -Iเส้นทางที่คุณยังคงต้อง
Ciro Santilli 新疆改造中心法轮功六四事件

1
หมายเหตุ: สำหรับการทำงานที่เหมาะสมบรรทัดบรรทัดต้องนำเสนอในdeb-src /etc/apt/sources.list
Vorac

87

คุณสามารถพิมพ์:

sudo apt-get install linux-headers-generic

ถ้าคุณอยู่ในการติดตั้งเดสก์ท็อป apt-get จะแก้ปัญหาการพึ่งพาและติดตั้งส่วนหัวเคอร์เนลเวอร์ชันที่ถูกต้อง


15
และ Ubuntu จะอัปเดตเมื่อรุ่นใหม่ออกมาด้วย
Csq

3
หรือlinux-headers-virtualถ้าคุณกำลังเรียกใช้ VM ในอินสแตนซ์ Openstack ...
BSchlinker

1
ใน Debian Wheezy ฉันได้รับข้อความแสดงข้อผิดพลาด"Package linux-headers-generic ไม่สามารถใช้งานได้ แต่ถูกเรียกโดยแพ็คเกจอื่น [... ] E: แพ็คเกจ 'linux-headers-generic' ไม่มีผู้ติดตั้ง"
IQAndreas

4
@IQAndreas เป็นlinux-headers-genericแพคเกจเฉพาะ Ubuntu ใน Debian คุณควรใช้sudo apt-get install linux-headers-$(uname -r)
Alexandre Teles

14

สิ่งนี้จะครอบคลุมปัญหาอื่นเมื่อ: เคอร์เนลที่ใช้งานอยู่ล้าสมัยซึ่งหมายความว่าไม่ได้อยู่ในพื้นที่เก็บข้อมูลอีกต่อไปทั้งส่วนหัว ดังนั้นสิ่งที่ดีที่สุดที่ต้องทำคืออัพเดตเคอร์เนลเป็นเวอร์ชันล่าสุดในที่เก็บ

linux-genericเป็นแพ็คเกจเมตาเพื่อเก็บเคอร์เนลและส่วนหัวปัจจุบัน :

sudo apt-get update
sudo apt-get install linux-generic

ทั้งนี้ขึ้นอยู่กับรุ่นอูบุนตูของคุณดูว่าคุณต้องlinux-lowlatency(Ubuntu สตูดิโอ), หรือlinux-signed-genericlinux-virtual


1
วิธีการแก้ปัญหาอื่นไม่ทำงานสำหรับฉันเมื่อพยายามติดตั้งไดรเวอร์ ขอบคุณ.
Sopalajo de Arrierez

1
เกือบจะเทียบเท่ากับ debian ถูกเรียกlinux-headers-amd64(สำหรับระบบ amd64, ชัด)
hanshenrik


-1

คำสั่งเหล่านี้ควรทำงาน:

sudo apt-get dist-upgrade -y
systemctl reboot
sudo apt-get install linux-headers-$(uname -r)
sudo apt-get upgrade linux-headers-$(uname -r)

เพื่อการเรียนการสอนที่ดีขึ้นชำระเงินวิดีโอนี้

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