मैं कर्नेल हेडर फ़ाइलों को कैसे स्थापित करूं?


85

मैं एक डिवाइस ड्राइवर लिखना चाहता हूं, लेकिन हेडर फ़ाइल को खोजने में सक्षम नहीं हूं कि क्या कोई मुझे ढूंढने में मदद कर सकता है?

जवाबों:


118

आपको टर्मिनल में निम्नलिखित को चलाकर वर्तमान में चलने वाले कर्नेल के लिए कर्नेल हेडर फाइल को स्थापित करने में सक्षम होना चाहिए:

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

सामान्य तौर पर, कर्नेल हेडर पैकेज को लिनक्स-हेडर नाम दिया जाता है- * जहां "*" संस्करण और संस्करण (जेनेरिक, सर्वर, आदि) को इंगित करता है।


3
हे धन्यवाद, लेकिन क्या आप मुझे बता सकते हैं कि जेनेरिक, सर्वर आदि का क्या मतलब है कि मैं लिखना चाहता हूं (कर्नेल ड्राइवर)
कोडर

8
यह भविष्य के अपडेट के लिए हेडर को स्वचालित रूप से इंस्टॉल नहीं करेगा और आपको हर बार इस कमांड को फिर से चलाना होगा। इसलिए, इसके बजाय मेटापैकेज को स्थापित करने की सिफारिश की जाती है, जैसा कि एक अन्य उत्तर में वर्णित है ।
gertvdijk

नोट: यह उन्हें GCC में शामिल नहीं करता है, जिसमें आपको पथ की आवश्यकता होती है -I
सीरो सेंटिल्ली 34 i iro i 事件 '

1
नोट: यह काम करने के लिए, लाइन उपयुक्त deb-srcलाइन में मौजूद होना चाहिए /etc/apt/sources.list
वोरैक

87

आप बस टाइप कर सकते हैं:

sudo apt-get install linux-headers-generic

यदि आप एक डेस्कटॉप इंस्टॉलेशन पर हैं। Apt-get निर्भरता को हल करेगा और कर्नेल हेडर का सही संस्करण स्थापित करेगा।


15
और एक नया संस्करण सामने आने पर उबंटू उन्हें भी अपडेट कर देगा
Csq

3
या linux-headers-virtualयदि आपका एक ओपनस्टैक उदाहरण में एक वीएम चल रहा है ...
बीएसक्लिनर

1
डेबियन व्हीज़ी में मुझे त्रुटि संदेश मिलता है "पैकेज लिनक्स-हेडर्स-जेनेरिक उपलब्ध नहीं है, लेकिन किसी अन्य पैकेज द्वारा संदर्भित किया जाता है। [...] ई: पैकेज 'लिनक्स-हेडर-जेनेरिक' में कोई स्थापना उम्मीदवार नहीं है"
IQ.ndreas

4
@IQAndreas linux-headers-genericपैकेज ubuntu विशिष्ट है। डेबियन पर आप का उपयोग करना चाहिएsudo apt-get install linux-headers-$(uname -r)
एलेक्जेंडर Teles

14

यह तब एक और समस्या को कवर करता है जब: चालू कर्नेल अप्रचलित होता है, जिसका अर्थ है कि यह अब रिपॉजिटरी में नहीं है और न ही इसके हेडर। तो सबसे अच्छी बात यह है कि कर्नेल को रिपॉजिटरी में अंतिम संस्करण में अपडेट करें।

linux-genericकर्नेल और इसके हेडर का वर्तमान संस्करण रखने के लिए एक मेटा पैकेज है :

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

नोट: आपके उबंटू संस्करण के आधार पर, देखें कि क्या आपको linux-lowlatency(उबंटू स्टूडियो) की आवश्यकता है, linux-signed-genericया linux-virtual


1
ड्राइवर को स्थापित करने का प्रयास करते समय किसी भी अन्य समाधान ने मेरे लिए काम नहीं किया। धन्यवाद।
शोपाजो डी एरियेरेज़

1
डेबियन के लिए लगभग एक समान कहा जाता है linux-headers-amd64(amd64 सिस्टम के लिए, जाहिर है)
hanshenrik

1

या यदि आपके पास योग्यता स्थापित है: sudo aptitude install linux-headers-$(uname -r)


5
अनिवार्य रूप से एक ही बात।
कोणीय

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.