मुझे नहीं पता कि क्यों, लेकिन मुझे हमेशा लैपटॉप में एक तरह के बंद ब्लैक बॉक्स के रूप में कूलिंग सिस्टम माना जाता है। एल्गोरिदम की मूर्खता, जिसके अनुसार प्रशंसक अभी भी बहुत ठंडे प्रोसेसर पर गुस्से में हॉवेल करना शुरू कर देता था, कई लैपटॉप में बहुत गुस्सा आता था, लेकिन यह मुझे लग रहा था कि सभी मापदंडों को नस्ट किया गया था और निर्माता केवल BIOS को क्रैक करके या केवल कुछ समायोज्य प्रतिरोधों को डालकर उन्हें बदल सकते थे। सही जगह। मैं एक या दूसरे को नहीं करना चाहता था, इसलिए मैंने कभी इसके बारे में गंभीरता से सोचा भी नहीं था।
नहीं, निश्चित रूप से, मैंने उन सभी प्रकार के कार्यक्रमों के बारे में सुना है जो शीतलन प्रबंधन में हस्तक्षेप कर सकते हैं, और ऐसा लगता है कि कोई व्यक्ति उन्हें सफलतापूर्वक उपयोग कर रहा है, लेकिन मैं व्यक्तिगत रूप से उनके साथ कभी भाग्यशाली नहीं रहा हूं, या लोहे के साथ भाग्यशाली नहीं हूं जिस पर मैंने उन्हें शुरू करने की कोशिश की। उदाहरण के लिए, कुछ समय पहले मैंने Ubuntu के साथ एक पुराने एचपी nc8430 लैपटॉप पर fancontrol को कॉन्फ़िगर करने का प्रयास किया। नतीजतन, प्रसिद्ध सेंसर-डिटेक्ट स्क्रिप्ट को सिस्टम में कोई भी प्रशंसक नहीं मिल सका, और इसके बिना fancontrol काम नहीं करता है। समान समस्याओं वाले लोग समय-समय पर विभिन्न मंचों पर दिखाई देते हैं, लेकिन कोई भी वास्तव में उनकी मदद नहीं कर सकता है।
फिर मैंने एक बार फिर से इस विषय को छोड़ दिया और दूसरे दिन ही वापस लौट आया, जब मैंने समीक्षाएँ पढ़ीं, एक नए लैपटॉप की तलाश में, और पहले से ही लगभग सभी को एक अच्छा Sony S15 चुनने का मन हो रहा था, जैसे कि एक बार फिर मैंने इसके बारे में पढ़ा कि प्रशंसक इसमें है कभी नहीं रोकता है, यहां तक कि जब भी संभव हो। मुझे अब कोई लगातार शोर करने वाला लैपटॉप नहीं चाहिए, और हमेशा की तरह मेरे पास चुनने के लिए बहुत कुछ नहीं है, यह देखते हुए कि मुझे 15 "की आवश्यकता है, मुझे अब कोई टीएन मैट्रिक्स नहीं चाहिए, और मेरा बजट सीमित है। खैर, आप जानते हैं कि यह कैसे होता है। हो सकता है कि यह सब हो। - fancontrol शुरू हो जाएगा और सबकुछ ठीक हो जाएगा, लेकिन अगर नहीं! तो मुझे इस लैपटॉप पर इसे स्थापित करने पर कोई रिपोर्ट नहीं मिली, जिसने मुझे एक बार फिर से फैन कंट्रोल सॉफ्टवेयर के विषय को खोदने और बल्कि जटिल, लेकिन बहुत दिलचस्प खोज के माध्यम से जाना।
यह विंडोज पर कैसे है
मैंने फैसला किया कि अगर मैं अपने एचपी को ठंडा करने का तरीका समझ सकता हूं, तो मैं शायद नए सोनी को संभाल पाऊंगा। यदि नहीं, तो आपको दूसरे लैपटॉप की तलाश करनी होगी। थोड़ी सी गुगली करते हुए, मुझे पता चला कि विंडोज के तहत एक शानदार प्रोग्राम नोटबुक हार्डवेयर कंट्रोल है, यह मुफ़्त है, हर कोई इसकी प्रशंसा करता है। खैर, आपको प्रयास करना होगा। विंडोज पर रिबूट, डाउनलोड, लॉन्च - प्रोग्राम वास्तव में काम करता है। आप उस तापमान को सेट कर सकते हैं जिस पर पंखा पूरी तरह से बंद हो जाएगा, कम गति, मध्यम और उच्च पर काम करेगा, और सबसे महत्वपूर्ण बात, आप पंखे की मोटर शक्ति को तीनों मोडों के लिए प्रतिशत में सेट कर सकते हैं। यह आरपीएम नहीं बल्कि शक्ति है, लेकिन क्या अंतर है।
यह पता चला कि इस लैपटॉप में, डिफ़ॉल्ट रूप से, सबसे कम गति 55% शक्ति से मेल खाती है। यही है, या तो प्रशंसक बिल्कुल चुप है, या यह अपने 55% पर बहुत जोर से गूंजता है, और इससे भी अधिक जब तापमान बढ़ता है: 70%, 80% और 100%। उसी समय, वह केवल 50 डिग्री तक चुप रहता है, और फिर तुरंत काम करना शुरू कर देता है। प्रोसेसर काफी गर्म है - कोर 2 डुओ टी 7600, यह केवल स्विच करने के तुरंत बाद 50 डिग्री से कम है, फिर तापमान जल्दी से अधिक हो जाता है, यहां तक कि शून्य लोड पर भी, और अब 50 सी से नीचे नहीं गिरना चाहता है, केवल तभी जब आप पंखे को पूरी तरह से घुमाते हैं। इसे कुछ मिनटों के लिए छोड़ दें, और फिर जब कमरा बहुत गर्म न हो। डिफ़ॉल्ट 55% पर, प्रशंसक के पास प्रोसेसर को 50 सी से नीचे ठंडा करने का कोई मौका नहीं है। हालांकि, थर्मल ग्रीस को बदलने की कोशिश करना आवश्यक हो सकता है, लेकिन अब यह उसके बारे में नहीं है।
कार्यक्रम की मदद से, मैंने बस न्यूनतम बिजली को 30% के बराबर सेट किया और न्यूनतम तापमान उठाया, जिस पर प्रशंसक 60 सी पर बदल जाता है। मामले का तापमान लगभग स्पर्श से नहीं बदला, क्योंकि यह काफी गर्म था, यह बना रहा, लेकिन यह बहुत शांत हो गया। दिन के दौरान, 30% की शक्ति पर एक प्रशंसक को केवल तभी सुना जा सकता है जब आप अपना कान उसमें लाते हैं। एक शांत कमरे में रात में यह काफी श्रव्य है, लेकिन मुस्कराते हुए। यह जितना था उससे कहीं ज्यादा बेहतर है। यदि आप न्यूनतम तापमान को थोड़ा और बढ़ाते हैं और प्रोसेसर और वीडियो कार्ड को बिजली की बचत मोड में डालते हैं, तो आप बिल्कुल शांत लैपटॉप प्राप्त कर सकते हैं, आप केवल हार्ड ड्राइव कताई सुन सकते हैं, लेकिन इसे केवल एसएसडी के साथ बदलकर हल किया जा सकता है, जो सामान्य रूप से वैसे भी अच्छा होगा। संक्षेप में, तापमान को पूरी तरह से नियंत्रित करना संभव है और शोर है। किस्से और अंत होंगे, लेकिन यह विंडोज के तहत है, लेकिन मुझे लिनक्स के तहत इसकी आवश्यकता है!
यह लिनक्स के तहत कैसे है
लिनक्स के तहत ऐसा कोई कार्यक्रम नहीं है। और यह कैसे काम करता है, मैं ईमानदारी से अभी भी पूरी तरह से समझ नहीं पाया हूं, और उस समय मैंने केवल उन खोजशब्दों पर जासूसी की जो बाद में बहुत उपयोगी थे: एसीपीआई और डीएसडीटी। मैं बाद में उनके पास वापस आऊंगा। इस बीच, मैंने उबंटू को वापस रिबूट किया और सावधानीपूर्वक प्री-गूगल पथ का अध्ययन करने के लिए शुरू किया sysfs: / sys / class / थर्मल। यह पता चला:
lrwxrwxrwx 1 root root 0 Jan 11 2013 cooling_device0 lrwxrwxrwx 1 root root 0 Jan 11 2013 cooling_device1 lrwxrwxrwx 1 root root 0 Jan 11 2013 cooling_device2 lrwxrwxrwx 1 root root 0 Jan 11 2013 cooling_device3 lrwxrwxrwx 1 root root 0 Jan 11 2013 cooling_device4 lrwxrwxrwx 1 root root 0 Jan 11 2013 cooling_device5 lrwxrwxrwx 1 root root 0 Jan 11 2013 cooling_device6 lrwxrwxrwx 1 root root 0 Jan 11 2013 cooling_device7 lrwxrwxrwx 1 root root 0 Jan 11 2013 cooling_device8 lrwxrwxrwx 1 root root 0 Jan 10 21:26 cooling_device9 lrwxrwxrwx 1 root root 0 Jan 11 2013 thermal_zone0 lrwxrwxrwx 1 root root 0 Jan 11 2013 thermal_zone1 lrwxrwxrwx 1 root root 0 Jan 11 2013 thermal_zone2 lrwxrwxrwx 1 root root 0 Jan 11 2013 thermal_zone3 lrwxrwxrwx 1 root root 0 Jan 11 2013 thermal_zone4 lrwxrwxrwx 1 root root 0 Jan 11 2013 thermal_zone5
के रूप में कई के रूप में 10 cool_devices और 6 थर्मल_zones। थर्मल ज़ोन के साथ, सब कुछ कम या कम स्पष्ट है, सीपीयू, जीपीयू, कुछ अन्य तीन बिंदुओं का तापमान विशेष रूप से महत्वपूर्ण नहीं है। और अंतिम थर्मल_ज़ोन 5 बिल्कुल भी तापमान नहीं है, क्योंकि यह अनुभवजन्य रूप से निकला है, लेकिन वर्तमान प्रशंसक शक्ति। ब्रावो एचपी! अब यह स्पष्ट हो गया है कि सेंसर का पता क्यों नहीं लगा है, ऐसी कोई गड़बड़ है जिससे शैतान का पैर टूट जाएगा। तो, बस कुछ संख्या थर्मल_zone5 / अस्थायी में लिखकर आप शक्ति नहीं बदल सकते। फ़ाइल केवल पढ़ने के लिए है, यह समझ में आता है।
अब आइए कूलिंग_देविस * को देखें, उनमें से 10 क्यों हैं? प्रत्येक फ़ोल्डर के अंदर कुछ इस तरह है:
drwxr-xr-x 2 root root 0 Jan 10 21:35 power -rw-r--r-- 1 root root 4.0K Jan 10 21:35 cur_state lrwxrwxrwx 1 root root 0 Jan 10 21:35 device -r--r--r-- 1 root root 4.0K Jan 10 21:35 max_state lrwxrwxrwx 1 root root 0 Jan 11 2013 subsystem -r--r--r-- 1 root root 4.0K Jan 10 21:35 type -rw-r--r-- 1 root root 4.0K Jan 11 2013 uevent
कूलिंग_देविस सी 0 से 6 के लिए टाइप फाइलों में, फैन को 7-8 - प्रोसेसर में, और 9 - एलसीडी में लिखा जाता है। हम्म, मैं यह सुनिश्चित करने के लिए जानता हूं कि मेरे लैपटॉप में केवल एक ही प्रशंसक है। वास्तव में दो प्रोसेसर हैं, और एक एलसीडी स्क्रीन है, यह सच है। लेकिन यह शीतलन उपकरण नहीं है, वे यहां क्यों हैं? ठीक है, हम इस गड़बड़झाले को और समझने की कोशिश करेंगे। Cur_state फाइलें 0 या 1. हो सकती हैं। हाँ, यह किसी प्रकार के फैलने वाले बिट मास्क की तरह दिखता है। यदि आप "echo 0 |" के साथ सभी cur_state को शून्य लिखने का प्रयास करते हैं सुडो टी / एसआईएस / थर्मल / कूलिंग_देविस * / क्युरस्टेट ", फिर पंखा बंद हो जाएगा। और अगर आप इकाई को कूलिंग_देवाइस 3 / कर्व_स्टेट में लिखते हैं, तो प्रशंसक 55% तक स्पिन करेगा। हुर्रे, मैं उबंटू में मैन्युअल रूप से प्रशंसक को नियंत्रित करने में कामयाब रहा। यहाँ पायथन में कुछ दानवों को एक साथ रखना संभव होगा, जो कुछ निश्चित तापमान पर आवश्यक क्षमताएँ निर्धारित करेंगे, लेकिन सबसे पहले, सेट 0, 55, 70, 80, 100 में से केवल "मानक" क्षमताएँ इस तरह से स्थापित की जा सकती हैं, और अब मैं आपको 30 की आवश्यकता है। और दूसरी बात, सिस्टम में कुछ और इन बिट्स को बदलता है। हमें यह पता लगाने की कोशिश करनी चाहिए कि वास्तव में यह क्या कर रहा है और यह कैसे प्रभावित हो सकता है। दूसरे शब्दों में, "हमें गहराई तक जाना है"। फिर मुझे विंडोज: एसीपीआई के तहत उस प्रोग्राम द्वारा सुझाए गए पहले कीवर्ड की याद आई।
ACPI
ऐसा लगता है कि उबंट अकपीड में ऐसा कोई डेमॉन है। शायद वह यह सब नियंत्रित करता है? लेकिन नहीं, विवरण से देखते हुए, वह केवल बिजली के बटन को दबाने, ढक्कन को कम करने और उस सभी जैज पर नज़र रखता है। और वास्तव में, भले ही आप इसे रोक दें, पंखा काम करना जारी रखेगा जैसे कि कुछ भी नहीं हुआ था, बस तापमान के आधार पर शक्ति को बदलते हुए। लेकिन मैंने उस कार्यक्रम में देखा कि एसीपीआई के पास बहुत सी चीजें हैं, जिनमें कुछ डीएसडीटी (विभेदित सिस्टम विवरण तालिका) शामिल हैं, जो वास्तव में काफी तालिका नहीं है, बल्कि एएमएल (एसीपीआई मशीन भाषा) नामक भाषा में एक कोड है । अधिक सटीक रूप से, कोड एएसएल (एसीपीआई स्रोत भाषा) में लिखा गया है, और फिर एएमएल में संकलित किया गया है, अर्थात्, एएमएल एक बाईटेकोड है, यह बदले में, एएसएल पर आसानी से विघटित हो सकता है। मुझे आशा है कि मैंने आपको भ्रमित नहीं किया, प्रिय पाठकों। डीएसडीटी के अलावा, अन्य टेबल - एसएसडीटी आदि भी हैं, उनके पास एएमएल कोड और डेटा भी हैं, लेकिन सबसे दिलचस्प आमतौर पर डीएसडीटी में पाया जाता है। इन तालिकाओं के कोड में निश्चित रूप से, प्रशंसक सहित, अपनी शक्ति के प्रबंधन के लिए सभी कंप्यूटर उपकरणों और एल्गोरिदम का विवरण होता है।
चूंकि एक बाइट कोड है, तो कहीं न कहीं एक दुभाषिया होना चाहिए जो इसे निष्पादित करेगा। दरअसल, एसीपीआई का समर्थन करने वाले प्रत्येक ओएस के कोर में डीएसएलटी एएमएल कोड और अन्य तालिकाओं को निष्पादित करने के लिए एक वर्चुअल मशीन होनी चाहिए। यह लिनक्स पर भी है। तो यह पाया गया कि इन बिट्स को cur_state फाइलों में बदल दिया जाता है, यह कोर ही है।
तालिकाओं के कोड को निर्देशिका / sys / फर्मवेयर / acpi / tables / में sysfs में लिया जा सकता है। लेकिन पहले आपको एएसएल / एएमएल के लिए इंटेल कंपाइलर को स्थापित करने की आवश्यकता है, डेबियन-आधारित सिस्टम में इसे इस तरह से किया जाता है: "सुडो एप-गेट इंस्टाल आईएएसएल"। तो बस "sudo cat / sys / फर्मवेयर / acpi / tables / DSDT> /tmp/dsdt.dat" और "iasl -d /tmp/dsdt.dat" करके, हमें फ़ाइल /tmp/dsdt.dsl में DSDT स्रोत कोड मिलता है। । एएसएल, हालांकि पढ़ना मुश्किल है, अपने आप में एक काफी सरल भाषा है, जाहिरा तौर पर विशेष रूप से डिज़ाइन की गई है ताकि इसकी व्याख्या लिखने में आसान हो, क्योंकि प्रत्येक ओएस के लिए यह अलग होना चाहिए। मुझे जल्दी से पता चला कि प्रशंसक शक्ति को कैसे बदलना है, मैंने बस उसी शक्ति (55, 70, 80, 100) को हेक्साडेसिमल प्रणाली में स्थानांतरित करके देखा और वे तुरंत मिल गए। विधानसभा "iasl -tc /tmp/dsdt.dsl" कमांड के साथ किया जाता है।
इस स्थिति में, त्रुटियां और चेतावनी सामने आ सकती हैं, और उन पंक्तियों में जिन्हें आपने नहीं छुआ था। हर कोई कहता है कि यह इसलिए हो रहा है क्योंकि लगभग सभी BIOS निर्माता Microsoft कंपाइलर का उपयोग करते हैं, और यह बस कई त्रुटियों को अनदेखा करता है, Intel बहुत सख्त है। लेकिन मेरे पास एक संस्करण है जो प्रोग्रामर बस इस बेवकूफ भाषा में सामान्य रूप से लिखने से इनकार करते हैं। अन्य बातों के अलावा, मेरे डीएसडीटी में मुझे विधि के नाम पर एक बल्कि कष्टप्रद टाइपो मिला, जो वर्तमान स्क्रीन बैकलाइट स्तर को लौटाता है क्योंकि इसकी वजह से कर्नेल हमेशा "[फ़र्मवेयर बग]: ACPI: NoBBQC विधि को लोड करते समय शापित होता है, प्रारंभिक चमक निर्धारित नहीं कर सकता" और जब जब आप नींद से उठते हैं, तो बैकलाइट सेटिंग हमेशा खो जाती है। तो भले ही आप कूलिंग के साथ ठीक हैं, फिर भी आपके पास अपने डीएसडीटी को देखने का एक कारण है। नेटवर्क डीएसडीटी में कुछ त्रुटियों को ठीक करने के
व्यंजनों से भरा है, यहां मैं इस पर विस्तार से ध्यान नहीं दूंगा।
यह पता चला है कि यदि हम डीएसडीटी और अन्य तालिकाओं को डीटीडीसीटी के साथ विघटित, संपादित और संकलित कर सकते हैं, तो हम किसी भी डिवाइस की शक्ति के साथ कुछ भी कर सकते हैं। अब आपको बस किसी तरह पैच किए गए डीएसडीटी को कर्नेल पर खिसकाना होगा। ऐसा करना खतरनाक है, आप लापरवाही से किसी चीज़ को जला सकते हैं, इसलिए नीचे वर्णित किसी भी चीज़ को करने से पहले उसके बारे में 100 बार सोचें।
कैसे पैच DSDT निष्पादित करने के लिए कर्नेल प्राप्त करने के लिए
सभी एएमएल कोड को BIOS में संग्रहीत किया जाता है और कर्नेल डिफ़ॉल्ट रूप से, वहां से लेता है। पहली बात जो दिमाग में आती है वह है आपके BIOS छवि को पैच वाले DSDT के साथ बनाना और उसे फ्लैश करना। एक ईंट प्राप्त करने का जोखिम बहुत अधिक है, लेकिन यदि परिणाम सफल होता है, तो आपके द्वारा उपयोग किए जाने वाले सभी ऑपरेटिंग सिस्टम में सभी परिवर्तन तुरंत उपलब्ध होंगे। लेकिन, निश्चित रूप से, बेहतर और सुरक्षित तरीके हैं।
इस लेख को लिखने से पहले मैंने देखा कि इस विषय पर हैबेरा में क्या है और यह बहुत ही स्पष्ट था कि यह
फ्रीबीएसडी में कितना सरल है।
लिनक्स के लिए, सभी HowTo अनुप्रयोगों में, यह सबसे अक्सर अपने DSDT को एकीकृत करके स्रोत से कर्नेल को फिर से बनाने की सलाह दी जाती है। इस तरह के बहुत सारे निर्देश हैं, कुछ भी जटिल नहीं है, हैबे के पास
भी इसके बारे में है , इसलिए मैंने इसके बारे में फिर से बात नहीं की।
पहले, कर्नेल संस्करण 2.6 से पहले, initrd के माध्यम से बूट करने का एक सुविधाजनक तरीका था, लेकिन फिर लिनुस आया और उसने कहा कि ऐसा करना बुरा है, लेकिन आपको इसे अच्छी तरह से करना होगा या नहीं, और विधि को हटा दिया गया था। लिनुस को विश्वास करना होगा, क्योंकि वह कहता है कि यह आवश्यक है, तो यह आवश्यक है।
वे कहते हैं कि आप अभी भी GRUB2 कर्नेल के माध्यम से वांछित DSDT को स्थानांतरित कर सकते हैं। मैं वास्तव में कर्नेल का पुनर्निर्माण नहीं करना चाहता था और मैंने कोशिश करने का फैसला किया। सबसे पहले मैंने केवल DSDT को कॉन्फिगर किया, उस लेख के लेखक ने इस तरह काम किया, लेकिन कर्नेल ने इसे बिल्कुल लोड नहीं किया, लॉग में कुछ इस तरह था:
ACPI Exception: AE_NO_ACPI_TABLES, While loading namespace from ACPI tables (20110623/tbxface-642) ACPI: Unable to load the System Description Tables PM: Registering ACPI NVS region at d7fe5600 (76288 bytes) ACPI: Interpreter disabled.
तदनुसार, एसीपीआई ने काम नहीं किया। एक भयानक बात, वैसे। उसी समय, वाई-फाई ने मेरे लिए काम नहीं किया, शटडाउन बटन ने एक ही बार में सब कुछ बंद कर दिया, और एक सामान्य शटडाउन शुरू नहीं किया। संक्षेप में, आप इसका उपयोग बिल्कुल नहीं कर सकते। फिर मैंने भी सामान्य रूप से सभी तालिकाओं को पारित करने की कोशिश की, यह इस तरह निकला:
ACPI: RSDP 0009f500 00024 (v03 ) ACPI: XSDT d74ad95c 00084 (v01 00000000 00000000) ACPI: SSDT d74aca78 004B9 (v01 HP CpuPm 00003000 INTL 20100528) ACPI: SSDT d74acf31 000A0 (v01 HP Cpu1Tst 00003000 INTL 20100528) ACPI: SSDT d74acfd1 00232 (v01 HP Cpu0Tst 00003000 INTL 20100528) ACPI: SSDT d74ad203 002E0 (v01 HP HPQSAT 00000001 INTL 20100528) ACPI: SSDT d74ad4e3 00059 (v01 HP HPQNLP 00000001 INTL 20100528) ACPI: TCPA d74ad53c 00032 (v02 HP 30A3 00000001 HP 00000001) ACPI: MCFG d74ad56e 0003C (v01 HP 30A3 00000001 HP 00000001) ACPI: APIC d74ad5aa 00068 (v01 HP 30A3 00000001 HP 00000001) ACPI: HPET d74ad612 00038 (v01 HP 30A3 00000001 HP 00000001) ACPI: SLIC d74ad64a 00176 (v01 HPQOEM SLIC-MPC 00000001 HP 00000001) ACPI: FACS d74ad7c0 00040 ACPI: FACP d74ad800 000F4 (v04 HP 30A3 00000003 HP 00000001) ACPI: DSDT d749d420 0F658 (v01 HP nc8430 00010000 INTL 20100528) ACPI Error: Null physical address for ACPI table [FACS] (20110623/tbutils-459) <...> ACPI Warning: Could not map the FACS table (20110623/utxface-168) ACPI: Unable to enable ACPI
इस बार DSDT को लोड करने का प्रयास किया गया था, लेकिन जाहिर है कि FACS तालिका में किसी प्रकार का लिंक है, जिसे इस वातावरण में हल नहीं किया जा सकता है। इस के साथ थोड़ा सा पीड़ित होने के बाद, सिस्टम को 20 बार रिबूट किया, फिर भी मुझे इस तरह से काम करने के लिए सब कुछ नहीं मिला। सब कुछ पर थूकना, पुनर्निर्माण के लिए कर्नेल डाल दिया और बिस्तर पर चले गए, सुबह में सब कुछ काम किया जैसा कि यह होना चाहिए:
ACPI: RSDP 000f96a0 00024 (v02 HP ) ACPI: XSDT d7fe57c8 0007C (v01 HPQOEM SLIC-MPC 00000001 HP 00000001) ACPI: FACP d7fe5684 000F4 (v04 HP 30A3 00000003 HP 00000001) ACPI: Override [DSDT- nc8430], this is unsafe: tainting kernel ACPI: DSDT @ 0xd7fe5acc Table override, replaced with: ACPI: DSDT c181c9e0 0F658 (v01 HP nc8430 00010000 INTL 20100528) ACPI: FACS d7ff7e80 00040 ACPI: SLIC d7fe5844 00176 (v01 HPQOEM SLIC-MPC 00000001 HP 00000001) ACPI: HPET d7fe59bc 00038 (v01 HP 30A3 00000001 HP 00000001) ACPI: APIC d7fe59f4 00068 (v01 HP 30A3 00000001 HP 00000001) ACPI: MCFG d7fe5a5c 0003C (v01 HP 30A3 00000001 HP 00000001) ACPI: TCPA d7fe5a98 00032 (v02 HP 30A3 00000001 HP 00000001) ACPI: SSDT d7ff5e97 00059 (v01 HP HPQNLP 00000001 MSFT 0100000E) ACPI: SSDT d7ff5ef0 00326 (v01 HP HPQSAT 00000001 MSFT 0100000E) ACPI: SSDT d7ff6a6b 0025F (v01 HP Cpu0Tst 00003000 INTL 20060317) ACPI: SSDT d7ff6cca 000A6 (v01 HP Cpu1Tst 00003000 INTL 20060317) ACPI: SSDT d7ff6d70 004D7 (v01 HP CpuPm 00003000 INTL 20060317) <...> ACPI: Interpreter enabled
शैंपेन खोलना और सफलता का जश्न मनाना संभव होगा, लेकिन मेरे दिमाग में यह विचार आया कि कुछ बेहतर किया जा सकता है। आखिरकार, विंडोज के तहत उस कार्यक्रम ने चलते-चलते सब कुछ बदलने की अनुमति दी। यह पता चला है कि लिनक्स में यह भी किया जा सकता है, यहां
प्रलेखन है । फ़ोरम लगभग इस पद्धति के बारे में कभी नहीं लिखते हैं, लेकिन विधि वास्तव में अद्भुत है। आमतौर पर, एक या दो तरीकों को फिर से परिभाषित करने की आवश्यकता होती है, और यदि आपको एक ही समय में रिबूट करने की आवश्यकता नहीं है, तो यह आम तौर पर सुंदरता है।
मैंने एक लिखित प्रशंसक नियंत्रण विधि के साथ एक .aml फ़ाइल तैयार की और, ख़ुशी से यह अनुमान लगाते हुए कि अब सबकुछ कैसे ठीक होगा, मैं टाइप करता हूँ "sudo cat ./fan-speeds.aml> / sys / kernel / debug / acugpi / custom_method" और ... "zsh: अनुमति प्राप्त करें" : / sys / कर्नेल / डिबग / acpi / custom_method "। इतनी अनुमति से कैसे इनकार किया? मैं sudo बनाना नहीं भूला, डायरेक्टरी / sys / कर्नेल / डिबग / acpi / जज द्वारा परमिशन को लिखना रूट के लिए खुला है, वहाँ कोई अपरिवर्तनीय विशेषताएँ नहीं हैं इत्यादि। WTF?
यह पता चला कि इस सुविधा को एक छेद घोषित किया गया था, क्योंकि माना जाता है कि ऐसे वातावरण हैं जहाँ मूल सब नहीं हो सकता है। उदाहरण के लिए, यह पूरी तरह से बूट होने के बाद कर्नेल मॉड्यूल को लोड नहीं कर सकता है। क्यों और किसको इसकी आवश्यकता है, मैं ईमानदारी से मानने से डरता हूं, लेकिन एक तथ्य। ऐसा लगता है कि किसी भी उबंट में, रूट निश्चित रूप से कुछ भी कर सकता है, इसलिए यह बहुत स्पष्ट नहीं है कि उनकी सुरक्षा टीम
भी इसे बहुत गंभीर भेद्यता क्यों
मानती है। सौभाग्य से, यह पूरी तरह से कर्नेल से नहीं काटा गया था, लेकिन बस डिफ़ॉल्ट कॉन्फिग में बंद हो गया और मॉड्यूल के रूप में अलग से लोड करना संभव बना दिया। खैर, एक मॉड्यूल को इकट्ठा करने के लिए पूरे कोर के समान नहीं है, और भगवान का शुक्र है, हमने अब तक उबंट में हमारे लिए मॉड्यूल के कनेक्शन पर प्रतिबंध नहीं लगाया है।
मेरे पास पहले से ही कर्नेल स्रोत थे, इसलिए
निर्देशों के अनुसार
, मैंने custom_method मॉड्यूल को इकट्ठा, स्थापित और सक्षम किया। अब सब कुछ ठीक काम कर रहा था।
यह वैसा ही बना रहना चाहिए, और अपने अवकाश पर
ACPI विनिर्देश को तिरछे
ढंग से नहीं पढ़ना चाहिए और यह सोचना चाहिए कि लैपटॉप पर और क्या सुधार किया जा सकता है। मैं अब निश्चित रूप से लैपटॉप शीतलन प्रणाली में सॉफ्टवेयर समस्याओं से डरता नहीं हूं। मुझे उम्मीद है कि अब आप भी, यदि आप पहले अचानक डर गए थे।