Χρησιμοποιώντας το FreeBSD σε Φορητούς | ||
---|---|---|
Προηγ |
Δυστυχώς, το power management δεν υποστηρίζεται πολύ καλά από το FreeBSD. Αν είστε τυχεροί, ίσως κάποιες από τις λειτουργίες να δουλεύουν αξιόπιστα. Συνήθως πάντως, δεν δουλεύουν καθόλου.
Κάτι που περιπλέκει λίγο τα πράγματα είναι η ύπαρξη δύο διαφορετικών προτύπων για power management: του APM και του ACPI. Το δεύτερο έχει ως στόχο να αντικαταστήσει το πρώτο, επεκτείνοντας ταυτόχρονα τα χαρακτηριστικά του APM. Σε πολλές περιπτώσεις το ACPI το πετυχαίνει αυτό, αλλά μερικές φορές δημιουργεί και προβλήματα που δεν τα έχει το APM.
Ορισμένοι φορητοί υπολογιστές υποστηρίζουν και το APM και το ACPI. Κάποιοι άλλοι φορητοί υπολογιστές υποστηρίζουν μόνο το ένα από τα δύο. Πιθανόν να χρειαστεί να δοκιμάσετε και το APM και το ACPI, για να δείτε πιο από τα δύο υποστηρίζει καλύτερα και με πιο αξιόπιστο τρόπο τα χαρακτηριστικά power management του φορητού σας.
Σημείωση: Δεν έχει νόημα (και πολλές φορές δε γίνεται καν) να ενεργοποιήσετε ταυτόχρονα και το APM και το ACPI, ακόμη κι αν ο φορητός σας υποστηρίζει και τα δύο πρότυπα.
Το APM (Advanced Power Management) BIOS παρέχει υποστήριξη για διάφορες λειτουργίες power management, όπως standby, suspend, hibernation, μείωση της ταχύτητας του επεξεργαστή, κλπ. Οι λειτουργίες APM υποστηρίζονται από τις εκδόσεις 4.Χ και 5.Χ του FreeBSD.
Για να ενεργοποιήσετε την υποστήριξη APM στον πυρήνα του FreeBSD, πρέπει να μεταγλωττίσετε τον πυρήνα σας με τις επιλογές για power management (device apm0 για το FreeBSD 4.X και device apm για το FreeBSD 5.X). Στο FreeBSD 5.Χ υπάρχει και ξεχωριστό άρθρωμα πυρήνα για το APM, το οποίο μπορείτε να φορτώσετε κατά την εκκίνηση του συστήματος προσθέτοντας στο αρχείο /boot/loader.conf τη γραμμή apm_load="YES".
Στο FreeBSD 5.X πρέπει να προσθέσετε και τη γραμμή hint.apm.0.disabled="0" στο αρχείο /boot/device.hints.
Για να ενεργοποιούνται αυτόματα οι λειτουργίες APM κατά την εκκίνηση του συστήματος πρέπει να προσθέσετε και τη γραμμή apm_enable="YES" στο αρχείο /etc/rc.conf. Στο βασικό σύστημα του FreeBSD περιλαμβάνεται και η υπηρεσία apmd(8), που ξεκινάει αυτόματα αν προσθέσετε τη γραμμή apmd_enable="YES" στο αρχείο /etc/rc.conf. Η υπηρεσία αυτή χειρίζεται τα διάφορα μηνύματα APM που στέλνει το BIOS. Μπορεί, για παράδειγμα, να βάλει το φορητό σας σε κατάσταση suspend ή να το ενεργοποιήσει πάλι με το πάτημα ενός πλήκτρου στο πληκτρολόγιο ή όταν ανοιγοκλείνετε την οθόνη του φορητού σας.
Οι εντολές APM περιγράφονται στη σελίδα βοήθειας apm(8). Για παράδειγμα, η εντολή apm -b τυπώνει πληροφορίες για την κατάσταση της μπαταρίας (ή 255 αν δεν υποστηρίζεται), η εντολή apm -Z θέτει τον φορητό σε κατάσταση standby, η εντολή apm -z (ή η εντολή zzz) θέτει τον φορητό σε κατάσταση suspend. Για να κλείσει εντελώς ο φορητός μπορείτε να δώσετε την εντολή shutdown -p. Προσοχή όμως: μερικές από αυτές τις εντολές μπορεί να μη δουλεύουν σωστά ή να μη δουλεύουν καθόλου.
Σε μερικούς φορητούς δουλεύει σωστά η αλλαγή κατάστασης σε standby ή suspend μόνο από την κονσόλα, κι όχι μέσα από το περιβάλλον X (μπορεί π.χ. η οθόνη να μην επανέρχεται σωστά). Σε αυτή την περίπτωση κι αν χρησιμοποιείτε την έκδοση 5.Χ του FreeBSD (ή κάποια νεότερη), ίσως έχει νόημα να προσθέσετε την επιλογή options SC_NO_SUSPEND_VTYSWITCH στο αρχείο ρυθμίσεων του πυρήνα σας και να μεταγλωττίσετε πάλι τον πυρήνα. Κάτι άλλο που μπορείτε να δοκιμάσετε είναι να γυρίσετε σε κατάσταση κονσόλας πριν τρέξετε το apm(8) (μπορείτε να γυρίσετε σε κατάσταση κονσόλας από το περιβάλλον Χ γράφοντας Ctrl+Alt+F1). Το εργαλείο vidcontrol(1) μπορεί να αλλάξει αυτόματα σε κατάσταση κονσόλας. Απλά προσθέστε στο αρχείο /etc/apmd.conf τις παρακάτω ρυθμίσεις:
apm_event SUSPENDREQ { exec "vidcontrol -s 1 < /dev/console"; exec "/etc/rc.suspend"; } apm_event USERSUSPENDREQ { exec "vidcontrol -s 1 < /dev/console"; exec "sync && sync && sync"; exec "sleep 1"; exec "apm -z"; } apm_event NORMRESUME, STANDBYRESUME { exec "/etc/rc.resume"; exec "vidcontrol -s 9 < /dev/console"; }
Το ACPI (Advanced Configuration and Power Management Interface) παρέχει λειτουργίες διαχείρισης κατάναλωσης (power management) αλλά και αναγνώρισης συσκευών συστήματος (αντικαθιστώντας το PnP και το PCI BIOS). Το FreeBSD έχει υποστήριξη για λειτουργίες ACPI από την έκδοση 5.Χ κι ύστερα, και η υποστήριξη για λειτουργίες ACPI είναι ενεργοποιημένη εξ' ορισμού. Οπότε δε χρειάζεται να κάνετε κάτι για να λειτουργήσει το ACPI. Μπορείτε να ρυθμίσετε το ACPI με το εργαλείο acpiconf(8).
Δυστυχώς, ορισμένοι κατασκευαστές πουλούν φορητούς υπολογιστές με προβληματικές υλοποιήσεις του προτύπου ACPI, οπότε μπορεί να παρουσιαστούν προβλήματα αν ενεργοποιήσετε το ACPI. Μπορεί ακόμη και να μην ξεκινάει καθόλου to FreeBSD με το ACPI ενεργοποιημένο.
Αν το ACPI σας δημιουργεί προβλήματα, κοιτάξτε αν ο κατασκευαστής του φορητού σας έχει βγάλει κάποια καινούρια έκδοση από το BIOS του φορητού σας. Η υλοποίηση του ACPI στο FreeBSD βελτιώνεται κι αυτή συνεχώς, οπότε μπορεί να έχει νόημα να αναβαθμίσετε το σύστημά σας σε πιο καινούρια έκδοση. Μπορεί κάποια από τα προβλήματα να διορθωθούν έτσι.
Αν θέλετε να απενεργοποιήσετε το ACPI, μπορείτε να προσθέσετε τη γραμμή hint.acpi.0.disabled="1" στο αρχείο /boot/device.hints. Για λιγότερο μόνιμες αλλαγές, μπορείτε να απενεργοποιήσετε προσωρινά το ACPI τρέχοντας την εντολή unset acpi_load στην προτροπή του boot loader. Στην έκδοση 5.1-RELEASE του FreeBSD και τις νεότερες εκδόσεις υπάρχει ένα μενού επιλογών εκκίνησης. Μία από τις επιλογές επιτρέπει την εκκίνηση χωρίς ACPI. Επιλέγοντας 2. Boot FreeBSD with ACPI disabled μπορείτε να ξεκινήσετε το σύστημά σας με απενεργοποιημένες όλες τις λειτουργίες ACPI.
Το γραφικό περιβάλλον X έχει επίσης κάποιου είδους υποστήριξη για power management (διαβάστε την τεκμηρίωση της εντολής xset(1), και ψάξτε για «dpms»). Είναι καλή ιδέα να δοκιμάσετε να το χρησιμοποιήσετε, αλλά κι αυτό το χαρακτηριστικό των X δεν λειτουργεί πάντα σωστά. Μερικές φορές κλείνει την οθόνη αλλά δεν κλείνει το φως.
Αυτό το κείμενο, και άλλα κείμενα, μπορεί να βρεθεί στο ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.
Για ερωτήσεις σχετικά με το FreeBSD, διαβάστε την τεκμηρίωση πριν να επικοινωνήσετε με την
<questions@FreeBSD.org>.
Για ερωτήσεις σχετικά με αυτή την τεκμηρίωση, στείλτε e-mail στην <doc@FreeBSD.org>.