Δεν είναι μυστικό ότι, κάτω από την κουκούλα του "hardware", κρύβεται ένα μεγάλο μέρος του ιδιόκτητου λογισμικού. Αυτός ο κώδικας, γραμμένος από ανώνυμους προγραμματιστές, σπάνια βλέπει το φως της ημέρας , και ως αποτέλεσμα, τείνει να έχει όλες τις παθολογίες που σχετίζονται με το λογισμικό που κανείς δεν μπορεί ούτε να αναθεωρήσει ούτε να διορθώσει. Πριν λίγο καιρό στο 2018 Embedded Linux Conference ανακοινώθηκε ένα νέο έργο το οποίο μπορεί να αλλάξει αυτή την κατάσταση για τις συσκευές ήχου.
Ο Imad Sousou της Intel . στη σκηνή του ELC 2018 ανακοίνωσε την δημιουργία του Sound Open Firmware (SOF) . Ο στόχος πίσω από το SOF είναι να δημιουργηθεί ένα firmware ανοιχτού κώδικα για συσκευές ήχου και βίντεο. Αυτή είναι, είπε ο Sousou, μια περιοχή που κυριαρχείται συνήθως από ιδιόκτητο λογισμικό. Το έργο αυτό ξεκίνησε από κοινού με την Google και υπάρχουν, όπως πρότεινε, πολλές ευκαιρίες για τους συνεισφέροντες που θα ήθελαν να συμμετάσχουν σε αυτήν την προσπάθεια. Ο κώδικας διατίθεται με συνδυασμό των αδειών BSD και GPLv2.
Το έργο έχει μια σελίδα στο wiki του έργου ALSA που περιγράφει πού θα βρείτε το λογισμικό και πώς να ξεκινήσετε. Υπάρχει ένα κιτ ανάπτυξης λογισμικού (SDK) για εγκατάσταση, ενώ η δημιουργία του firmware απαιτείται επίσης ένα cross-compiler για την αρχιτεκτονική Xtensa . Το SDK περιλαμβάνει ένα εξομοιωτή που μπορεί να χρησιμοποιηθεί κατά τη διάρκεια της διαδικασίας ανάπτυξη ενώ η ιστοσελίδα SOF σημειώνει επίσης ότι υπάρχουν "proprietary compilers and emulators" . Προς το παρόν, υποστηρίζονται μόνο digital signal processors που βασίζονται στο Xtensa, αλλά η πρόθεση του έργου είναι να υποστηρίξει τελικά ένα ευρύτερο φάσμα υλικού.
Το ίδιο το firmware βασίζεται στον δικό του μικροσκοπικό πυρήνα. Φαίνεται ότι ένας νέος πυρήνας αναπτύχθηκε αντί να προσαρμόσει έναν από τους (πολλούς) πυρήνες που κυκλοφορούσαν. Περιλαμβάνει έναν earliest-deadline first scheduler και υποστηρίζει βασικές έννοιες όπως η memory allocation, interrupt handling, work queues και πολλά άλλα. Χρησιμοποιώντας αυτό το λογισμικό, το firmware εκτελεί μια "εργασία ήχου" η εργασία της οποίας είναι η μετακίνηση δεδομένων μεταξύ των προσωρινών καταχωρητών DMA και των στοιχείων επεξεργασίας ήχου.
Από την πλευρά του πυρήνα, το SOF φαίνεται να παρουσιάζει ένα ημι-πρότυπο περιβάλλον εργασίας που μπορούν να χρησιμοποιήσουν όλοι οι οδηγοί, αλλά εξακολουθεί να υπάρχει ένας σημαντικός αριθμός device-specific κώδικα. Ο κώδικας για την υποστήριξη συσκευών με βάση το SOF βρίσκεται στο ALSA system-on-chip tree (git://git.kernel.org/pub/scm/linux/kernel/git/lrg/asoc.git). Αυτή τη στιγμή δεν βρίσκεται στο mainline . Επίσης, δεν φαίνεται να εμφανίζεται στο linux-next, οπότε σχεδόν σίγουρα δεν θα εμφανιστεί πριν από τον κύκλο ανάπτυξης 4.18.
Το έργο αυτό ξεκινά από τα πρώτα του βήματα, αλλά έχει τη δυνατότητα να βελτιώσει τα πράγματα με πολλούς τρόπους. Οι κατασκευαστές που συμμετέχουν σε αυτό μπορεί να καταλήξουν σε firmware υψηλότερης ποιότητας με μικρότερη προσπάθεια. Οι προγραμματιστές που ενδιαφέρονται να κάνουν νέα πράγματα με hardware ήχου οι συσκευές με βάση το SOF είναι ένα καλό σημείο εκκίνησης. Και εάν το έργο επιτύχει, όλοι θα έχουμε συστήματα που τρέχουν λίγο πιο ελεύθερο λογισμικό στα χαμηλότερα επίπεδα, κάτι που μοιάζει καλό.
Πηγή άρθρου: https://lwn.net/Articles/749888/