मैं कैसे सुनिश्चित करूं कि वाई-फाई ड्राइवर (कर्नेल ऑब्जेक्ट के रूप में स्थापित) कर्नेल अपग्रेड के बाद भी चलता है


1

मैंने * .ko के रूप में एक ड्राइवर स्थापित किया है (इसे स्रोत से बनाया गया है), और इसे अंदर रखा है /etc/modules

रिबूट करने के बाद, ड्राइवर लोड करने में विफल रहा, और मैंने देखा कि मैं वास्तव में एक नया कर्नेल चला रहा हूं (शायद सॉफ्टवेयर सेंटर से अंतिम अपडेट के दौरान बदल गया)।

मैं किसी तरह महसूस करता हूं कि हर बार कर्नेल अपडेट को मैन्युअल रूप से करने के बिना ड्राइवर को स्थापित करने का एक तरीका है।

तो, मैं कैसे करूँ?

जवाबों:


1

यदि आपके पास ड्राइवर का स्रोत है (कुछ आप अपनी पोस्ट में स्पष्ट रूप से राज्य नहीं करते हैं), तो आपको इसे पुनः स्थापित करने की आवश्यकता होगी। एक एप्लिकेशन है जो आपके लिए इस बात का ध्यान रख सकता है, जिसे कहा जाता है dkms के लिये Dynamic Kernel Module Support

मूल रूप से आपको जो करने की आवश्यकता है वह है a dkms.conf पैकेज के un'tarring द्वारा बनाई गई निर्देशिका में फ़ाइल, फिर इन पंक्तियों को अंदर रखें dkms.conf फ़ाइल:

  PACKAGE_NAME=r8168
  PACKAGE_VERSION=8.032.00
  MAKE[0]="'make'"
  BUILT_MODULE_NAME[0]=r8168
  BUILT_MODULE_LOCATION[0]="./"
  DEST_MODULE_LOCATION[0]="/kernel/updates/dkms"
  AUTOINSTALL="YES"

निर्देशिकाओं की पहचान उनके रिश्तेदार रास्तों से होती है; उस सापेक्ष पथ की उत्पत्ति निर्देशिका है जहाँ dkms.conf फ़ाइल स्थित है। यह याद रखना कि मेक कमांड सही हैं, आपको उन्हें हर पैकेज में शामिल सामान्य README.txt फाइल के खिलाफ जांचना होगा।

अब, हमेशा इस निर्देशिका से, हम उसकी गंतव्य निर्देशिका के लिए सब कुछ कॉपी करते हैं:

  sudo cp -R . /usr/src/r8168-8.032.00/

अन्त में, तुम बताओ dkms अपनी बात करने के लिए:

  dkms add -m r8168 -v 8.032.00
  dkms build -m r8168 -v 8.032.00
  dkms install -m r8168 -v 8.032.00

और आप कर रहे हैं

संपादित करें:

क्षमा करें, मैं भूल गया कि आप कर्नेल हेडर को स्थापित करने की आवश्यकता है, और / config / gcc बना सकते हैं, ... जो कि डेबियन-फैमिली डिस्ट्रोस (डेबियन, उबंटू, मिंट ... aptosid ...) के माध्यम से डाउनलोड किया जा सकता है:

   sudo apt-get install linux-headers-generic build-essential

अन्य डिस्ट्रोस के समतुल्य आदेश हैं।


हां मेरे पास ड्राइवर के लिए स्रोत है। मेरे ड्राइवर के रूट फ़ोल्डर में Makefile है, और कोई भी नहीं है src फ़ोल्डर। इसके अलावा, जब इसे स्थापित मैं सिर्फ भाग गया make && make install निर्दिष्ट किए बिना KERNELDIR चर, तो मैं बस चलाना चाहिए make && make install में MAKE चर? कहाँ इंगित करने के लिए BUILT_MODULE_LOCATION?
ordahan

@ordahan मैंने आपकी टिप्पणी को प्रतिबिंबित करने के लिए अपना उत्तर संपादित किया है। BUILT_MODULE_LOCATION के लिए, वह निर्देशिका होनी चाहिए जहां .ko फ़ाइल शेष है। उपरोक्त पोस्ट में, मैंने माना कि इसे उस निर्देशिका में छोड़ दिया गया है जहाँ से आप अपने आदेश जारी कर रहे हैं। आपको यह देखना होगा कि यह मामला है, क्योंकि यह आपके मेकफाइल पर निर्भर करता है।
MariusMatutiae

मुझे यह त्रुटि मिलती है जब जोड़ने की कोशिश कर रहा हूँ dkms: dkms.conf: Error! No 'DEST_MODULE_LOCATION' directive specified for record #0. dkms.conf: Error! Directive 'DEST_MODULE_LOCATION' does not begin with '/kernel', '/updates', or '/extra' in record #0. Error! Bad conf file.
ordahan

@ordahan मैंने दिया है, जवाब में, काम कर रहे dkms.conf का एक उदाहरण। यह एक मैं उपयोग है। मुझे बताएं।
MariusMatutiae

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