Έχουμε αναφερθεί παλιότερα στο σε αυτό το πρόβλημα που ανέκυψε με την έκδοση 2.6.38 του Linux πυρήνα που είναι «στάνταρτ» στις περισσότερες διανομές.

Από ότι φαίνεται το πρόβλημα εντοπίστηκε…. αλλά… δεν υπάρχει εύκολη λύση. Η λύση δυστυχώς, μάλλον μόνο από τους κατασκευαστές μπορεί να έρθει (με κάποιο BIOS update ?) παρά απο τους προγραμματιστές του Linux. To ζήτημα είναι αρκετά τεχνικό και μπορεί μεν να μην κατανοώ/ουμε πλήρως τις λεπτομέρειες δεν πάβουμε όμως να επιρεαζόμαστε απο δύο βασικά συμπτώματα αυτής της «ασθένειας»: ΑΥΞΗΣΗ ΘΕΡΜΟΚΡΑΣΙΑΣ και ΜΕΙΩΣΗ ΔΙΑΡΚΕΙΑΣ ΤΗΣ ΜΠΑΤΑΡΙΑΣ

Όσοι προφανώς έχετε Laptop/Netbook, σας ενδιαφέρει… όσοι έχετε σταθερό υπολογιστή (πύργο) μάλλον θα παρατηρείστε απλά μια μικρή (ίσως) αύξηση στην παραγωγή θερμότητας και προφανώς δεν σας «καίει» το ζήτημα. Εμάς πάντως τα χέρια μας έχουν καεί στο λάπτοπ !!!

power_consumption

Ο Σίμος Ξενιτέλλης αναφέρθηκε στο ζήτημα στην mailing list του Ubuntu-gr κάνοντας μια ανασκόπηση του προβλήματος:

Υπήρξε το ζήτημα με την αυξημένη κατανάλωση ενέργειας σε φορητούς υπολογιστές, σε διανομές που χρησιμοποιούν νεότερες εκδόσεις πυρήνα του Linux. Το αποτέλεσμα για την κοινότητά μας ήταν ότι «σε μερικούς φορητούς υπολογιστές, η κατανάλωση ενέργειας ήταν μεγαλύτερη με αποτέλεσμα ο υπολογιστής σε μπαταρία να διαρκεί αρκετά λιγότερο (διότι η μπαταρία πρέπει να φορτιστεί πιο νωρίς)».

Με τη χρήση κάτι που ονομάζεται git bisect, ήταν εφικτό να βρεθεί η έκδοση του πυρήνα που προκάλεσε το πρόβλημα καθώς και η αλλαγή που το προκάλεσε. Για παράδειγμα, αν η τρέχουσα έκδοση του πυρήνα έχει πρόβλημα και 200 εκδόσεις πριν δεν υπήρχε πρόβλημα, τότε

1. δοκιμάζουμε αν υπήρχε πρόβλημα 100 εκδόσεις πριν

α. αν ναι, τότε δοκιμάζουμε 150 εκδόσεις πριν

β. αν όχι, τότε δοκιμάζουμε 50 εκδόσεις πριν

κτλ

Αυτή τη λειτουργία την υποστηρίζει εύκολα το αποθετήριο πηγαίου κώδικα git. Το αποτέλεσμα της έρευνας περιγράφει ότι σε μερικούς υπολογιστές, με προβληματικό BIOS, έχει γίνει μια αλλαγή στο Linux που μπορεί να τους επηρεάσει σε σχέση με την κατανάλωση. Οι προγραμματιστές του πυρήνα Linux έπρεπε να αποφασίσουν, όταν το BIOS αναφέρει ότι δεν υποστηρίζει μια σημαντική λειτουργία εξοικονόμησης ενέργειας σε συσκευές PCI (είτε δε μπορεί, είτε το BIOS έχει πρόβλημα),

α. να μη γίνει προσπάθεια για εξοικονόμηση ενέργειας (αυξημένη κατανάλωση, δε θα κολλά ο υπολογιστής)

β. να γίνει με το ζόρι προσπάθεια εξοικονόμησης ενέργειας (μπορεί να κολλήσει ο υπολογιστής)

Στο η-περιοδικό LWN.net υπάρχει άρθρο, «PCIe, power management, and problematic BIOSes» https://lwn.net/Articles/449448/ (θα είναι διαθέσιμο για ανάγνωση από

την επόμενη Πέμπτη), αναφέρει:

«That said, this patch is the one that the bisection effort at Phoronix has fingered as the cause of the power regression. Apparently, the notion that disabling low-power states in hardware may lead to increased power consumption also makes sense. The workaround suggested in the article is to boot with the pcie_aspm=force option; that forces the system to turn on ASPM regardless of whether the BIOS claims to support it. This workaround will undoubtedly yield better battery life on some affected systems; others may well not work at all. In the latter case, the system may simply lock up – a state with even worse latency characteristics combined with surprisingly bad power use. So this workaround may be welcomed by users who have seen their battery life decline significantly, but it is not a proper solution to the problem.»

Αν πιστεύουμε ότι έχουμε πρόβλημα, τότε μπορούμε να τρέξουμε σε «τερματικό»

dmesg | grep ASPM

Αν αναφέρει κάτι σαν

«[ 0.439490] ACPI FADT declares the system doesn't support PCIe ASPM, so disable it»

τότε μπορούμε να ρυθμίσουμε την επιλογή πυρήνα (kernel option) pcie_aspm=force και όταν το κάνουμε θα αναφέρει

$ dmesg | grep ASPM
[ 0.000000] PCIe ASPM is forcedly enabled
[ 0.439490] ACPI FADT declares the system doesn't support PCIe ASPM, so disable it

που σημαίνει ότι πράγματι ενεργοποιήθηκε με το ζόρι. Εδώ παρατηρούμε αν η μπαταρία μπορεί να διατηρήσει τον υπολογιστή ανοικτό για περισσότερο χρόνο, οπότε έχει νόημα για εμάς να έχουμε την επιλογή.

power_consumption1

Ανακεφαλαιόνοντας,

1. το πρόβλημα το αντιμετωπίζουν λίγα άτομα με υπολογιστή με προβληματικό BIOS

2. η σωστή λύση είναι οι κατασκευαστές να διορθώσουν το BIOS

3. υπάρχει κάτι για να πειραματιστούμε, αυτό με το pcie_aspm=force

4. Αναφερθήκαμε και στο φόρουμ για θέματα εξοικονόμησης ενέργειας και προβληματικού BIOS,

 

Αυτά σε γενικές γραμμές. Μπορείτε να παρακολουθήσετε το θέμα στο forum του Ubuntu http://forum.ubuntu-gr.org/viewtopic.php?f=9&t=18042 ή άν γνωρίζεται οτι υπάρχει ενεργή συζήτηση και σε άλλο Ελληνικό φόρουμ διανομής Linux παρακαλώ αφήστε το ως σχόλιο απο κάτω. Προσωπικά έχω δοκιμάσει την λύση «pci_aspm» και είδα μια διαφορά 15% αύξηση στην διάρκεια της μπαταρίας χωρίς όμως να λύσει το πρόβλημα της θερμότητας. Σήμερα στον laptop μου Ubuntu 11.04, ενώ έχω εγκατεστημένο τον Linux 3.0~rc4 (δείτε εδώ πώς) αποφάσισα να εγκαταστήσω τον Linux kernel 2.6.32 (είναι έκδοση του 2010/Μάρτιος) και ο οποίος δεν «ασθενεί» από αυτό το πρόβλημα. Θα δούμε πως θα πάει… θα κρατήσω αυτή την έκδοση (2.6.32) για μια βδομάδα και αν δω οτι υπάρχει βελτίωση, θα απεγκαταστήσω όλους τους υπόλοιπους πυρήνες που έχω στο σύστημά μου (2.6.38-natty, 3.0-oneiric)

Το ζήτημα επηρεάζει όπως είχα είπα όλες τις «σύγχρονες» διανομές μόνο και μόνο επειδή έχει να κάνει με τον πυρήνα… το βασικότερο κομμάτι που είναι κοινό σε όλες τις διανομές.