lefteros_by SomniusX
EN ↗Πες ένα γεια

6 Νοεμβρίου 2026 / Lefteris Iliadis / SomniusX

Omarchy στο Pixel 8 Pro: τα ηχεία παίζουν

6 Νοεμβρίου 2026

Και τα δύο ηχεία του Pixel 8 Pro μου παίζουν πλέον με Omarchy Mobile: τόνος δοκιμής και μουσική από το καθένα, και YouTube στο Chromium. Τι χρειάστηκε, η ζέστη που ήρθε μαζί, το κόμπιασμα με τα κουμπιά έντασης, και τι δεν δουλεύει ακόμη.

Omarchy στο Pixel 8 Pro: τα ηχεία παίζουν

Το Pixel 8 Pro μου (husky, Tensor G3) τρέχει Omarchy Mobile από το slot B, με το GrapheneOS στο slot A ως δρόμο επιστροφής. Την προηγούμενη φορά είχα Wi-Fi, GPU, 120 Hz και καλύτερη φόρτιση, και έγραφα ότι ήχος δεν υπήρχε ακόμη. Τώρα υπάρχει: το βράδυ της 5ης Νοεμβρίου άκουσα έναν τόνο δοκιμής 1 kHz από το πάνω ηχείο, και αργότερα το ίδιο βράδυ το YouTube έπαιξε στο Chromium από το κάτω μεγάφωνο.

Όλα αυτά τρέχουν σε δοκιμαστικό kernel στο κινητό μου, όχι σε κάποια έκδοση. Να τι χρειάστηκε και τι λείπει ακόμη.

Γιατί ο ήχος ήταν δύσκολος σε αυτό το κινητό

Στο Pixel 8 Pro τα ηχεία δεν τα οδηγεί απευθείας ο κύριος επεξεργαστής. Ο ήχος περνάει από τον επεξεργαστή ήχου της Google, το AoC, και από εκεί σε δύο ενισχυτές της Cirrus Logic, έναν για το πάνω ηχείο κι έναν για το κάτω. Οπότε, πριν βγει οποιοσδήποτε ήχος, έπρεπε να τρέξει όλη αυτή η αλυσίδα στο δικό μας kernel. Το port του Pixel 7 Pro το είχε ήδη κάνει για το παλιότερο chip του, και οι σημειώσεις του ήταν ο χάρτης μου.

Τρία πράγματα στάθηκαν εμπόδιο:

  • Το reset του System MMU. Το AoC κάθεται πίσω από τη δική του μονάδα μνήμης, και σε αυτό το chip ήθελε ένα reset που ο παλιότερος κώδικας δεν έκανε. Χωρίς αυτό, ο επεξεργαστής ήχου δεν ξεκινούσε ποτέ σωστά.
  • Το chip select των ενισχυτών. Οι δύο ενισχυτές μοιράζονται ένα δίαυλο SPI. Ο driver του SPI οδηγούσε και τη δική του γραμμή chip select του ελεγκτή, ακόμη και για συσκευές που χρησιμοποιούν GPIO γι' αυτό, οπότε οι δύο ενισχυτές μιλούσαν ο ένας πάνω στον άλλον και απαντούσε μόνο ο ένας. Με τη διόρθωση, εμφανίστηκαν και οι δύο.
  • Η σωστή διαδρομή. Πρώτα δοκίμασα τη διαδρομή αναπαραγωγής χαμηλής καθυστέρησης, και κρέμαγε τον επεξεργαστή ήχου κάθε φορά. Το ηχείο παίζει από τη διαδρομή deep buffer (EP6), όπως και στο 7 Pro. Με αυτό και μια διόρθωση στο ρολόι των ενισχυτών, έπαιξε ο πρώτος τόνος.

Μετά ήρθε το PipeWire. Ο επεξεργαστής ήχου πετάει ό,τι γράφεται πριν ξεκινήσει η αναπαραγωγή, και το PipeWire γεμίζει πρώτα το buffer, οπότε έβλεπε μια θέση που δεν κουνιόταν και σταματούσε. Δύο μικρές αλλαγές στον driver το έλυσαν, και το Chromium έπαιξε ήχο. Εκείνη τη στιγμή έγραψα στις σημειώσεις μου "I GOT SOUND!!!!".

Και τα δύο ηχεία, σε ασφαλή ένταση

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

Το YouTube παίζει με ήχο στο Chromium στο Pixel 8 Pro

Το YouTube στο Chromium στο κινητό σήμερα το πρωί, με ήχο (το εικονίδιο του ηχείου στην καρτέλα), και με Bluetooth και Wi-Fi ανοιχτά στην μπάρα.

Για την ένταση θα είμαι ειλικρινής: στις δοκιμές της 5ης ανέβασα το κάτω ηχείο στο πιο δυνατό επίπεδο του 7 Pro, για λίγα δευτερόλεπτα τόνου κάθε φορά, και έπαιξα YouTube και μουσική για αρκετή ώρα πάνω από το ασφαλές επίπεδο, και στα δύο ηχεία. Αυτό ακριβώς ανησυχούσε τον Derek, οπότε στις 6 του μήνα τα περιόρισα όλα στο επίπεδο media του 7 Pro, το ασφαλές, μέχρι το 8 Pro να έχει δικά του μετρημένα όρια. Το firmware προστασίας των ενισχυτών φορτώνεται, αλλά δεν τους έχω κάνει calibration ούτε έχω διαβάσει τάση και ρεύμα την ώρα που παίζουν, οπότε προς το παρόν τίποτα δεν πάει πάνω από αυτό το επίπεδο.

Η ζέστη

Με τον ήχο να δουλεύει, έπαιξα πολύ YouTube, και το κινητό ζεστάθηκε τόσο που δεν το κρατούσα. Δεν υπάρχει ακόμη αποκωδικοποιητής βίντεο στο υλικό, οπότε το Chromium αποκωδικοποιεί στον επεξεργαστή, και ο επεξεργαστής δεν μπαίνει σε βαθιά αδράνεια. Έβαλα όρια θερμοκρασίας ώστε να κόβει ταχύτητα νωρίτερα, και μια μικρή επέκταση του Chromium ζητάει από το YouTube H.264 αντί για VP9 και AV1, που θα έπρεπε να βαραίνει λιγότερο τον επεξεργαστή. Δεν το έχω μετρήσει ακόμη, και η αποκωδικοποίηση γίνεται και πάλι σε λογισμικό.

Το μεγαλύτερο πρόβλημα είναι όταν το κινητό δεν κάνει τίποτα: με την οθόνη σβηστή και το καλώδιο έξω, τραβούσε περίπου 520 mA όταν το μέτρησα. Ένα κινητό σε κανονική αδράνεια είναι γύρω στα 30 με 60 mA. Το μέτρησα και με τον ήχο κλειστό, και δεν αλλάζει τίποτα. Απ' όσο καταλαβαίνω, σε αυτό το chip δεν διαχειριζόμαστε ακόμη τα power domains και τη βαθιά αδράνεια του επεξεργαστή, οπότε ό,τι άνοιξε ο bootloader μένει ανοιχτό. Ποιο κομμάτι τραβάει το ρεύμα, δεν το έχω δείξει ακόμη. Η πρώτη μου δοκιμή για βαθύτερη αδράνεια, μαζί με μια δοκιμή στα power domains, έκανε το κινητό να κάνει μόνο του επανεκκίνηση περίπου ένα λεπτό μετά από κάθε εκκίνηση. Δεν ξέρω ακόμη ποιο από τα δύο έφταιγε, και το επανέφερα μέσω fastboot. Αυτό μένει ανοιχτό, και είναι το πρώτο που θέλω να λυθεί πριν το χρησιμοποιήσει κανείς για κάθε μέρα.

Το κόμπιασμα με τα κουμπιά έντασης

Όταν κρατούσα πατημένο το κουμπί έντασης, το βίντεο και ο ήχος κόμπιαζαν. Το κουμπί επαναλαμβάνεται 40 φορές το δευτερόλεπτο, και κάθε επανάληψη ξεκινά ένα script που τρέχει το pactl αρκετές φορές. Σε ένα κινητό που έχει κόψει ταχύτητα, αυτό φτάνει για να μην προλαβαίνουν το βίντεο και ο ήχος. Με την επανάληψη στις 8 φορές το δευτερόλεπτο, και λίγο πιο χαλαρά όρια θερμοκρασίας, το πρόβλημα έφυγε, και το κουμπί πλέον αλλάζει την ένταση ομαλά.

Η μπάρα έντασης στο 60% πάνω από το YouTube στο Pixel 8 Pro

Με το κουμπί έντασης πατημένο σήμερα το πρωί: η μπάρα κινείται και το βίντεο συνεχίζει να παίζει.

Bluetooth, δόνηση και φακός

Αυτά δούλεψαν νωρίτερα μέσα στην εβδομάδα σε χωριστά δοκιμαστικά kernels: έκανα σύζευξη με ακουστικά και έπαιξα YouTube μέσω Bluetooth, ένιωσα το μοτέρ δόνησης, και είδα το πίσω LED να ανάβει. Οι καθαρές εκδοχές για έλεγχο είναι στο #199 (Bluetooth) και στο #200 (δόνηση και φακός). Στο ενιαίο kernel με τα δύο, έχω ελέγξει μόνο ότι εντοπίζονται και ξεκινούν. Πέρα από αυτό δεν τα έχω δοκιμάσει ακόμη.

Τι έστειλα upstream

  • #449: τα partitions του modem και τα NV του 8 Pro στο εργαλείο αντιγράφων, ώστε να σώζονται πριν από οτιδήποτε ριψοκίνδυνο.
  • #450: όλες οι σημειώσεις για το πως στήθηκε ο ήχος, βήμα βήμα με ημερομηνίες, για όποιον το πιάσει μετά.
  • #199 και #200: Bluetooth, δόνηση και φακός, ξαναδουλεμένα μετά τον έλεγχο του Derek.

Και τα τέσσερα είναι ανοιχτά. Οι ίδιες οι αλλαγές για τον ήχο είναι ακόμη στο δοκιμαστικό μου branch και πρέπει να καθαριστούν σε κανονικά PRs.

Τι δεν δουλεύει ακόμη

  • Το modem. Όπως και στο Pixel 7 Pro, χωρίς κλήσεις και δεδομένα κινητής.
  • Η αποκωδικοποίηση βίντεο στο υλικό στο Chromium.
  • Η κατανάλωση σε αδράνεια, περίπου 520 mA με την οθόνη σβηστή.
  • Μικρόφωνα, ακουστικά USB και κλήσεις μέσω Bluetooth, δεν τα έχω δοκιμάσει ακόμη. Μουσική μέσω Bluetooth έπαιξε σε παλιότερο kernel.
  • Ο ύπνος: το κινητό μπήκε μία φορά σε βαθύ ύπνο και δεν ξύπνησε ποτέ, οπότε τον αφήνω κλειστό μέχρι να υπάρχει ασφαλής τρόπος να ξυπνήσει.

Ευχαριστώ

Τον Derek Ross (@derekross) για το Omarchy Mobile και που με κρατάει προσεκτικό με τα ηχεία, τον Brett-Michael Green (@greenbrettmichael) για τη δουλειά στο kernel πάνω στην οποία τρέχουν όλα αυτά, τον @W4HO-ham για τη δουλειά του στο Bluetooth του Pixel 9a που ακολούθησα, και τον Alejandro García León (@nesmeck) για τη δουλειά στην μπαταρία και στο USB. Η σελίδα του Omarchy Mobile έχει την τρέχουσα κατάσταση.