GNU Linux-libre 5.14-gnu zostało wydane dzisiaj jako re-baza projektu na niedawno wydanym pierwotnym jądrze Linux 5.14. Jednak wcześniejsze obsługiwane wersje GNU Linux-libre również musiały zostać ponownie rozwinięte, ponieważ okazało się, że to jądro „100% wolnego oprogramowania” przez pomyłkę pozostawiło kilka niewolnych bitów jądra.
Jeśli chodzi o nowe zmiany w GNU Linux-libre 5.14, sterownik graficzny jądra Intel „i915” wymagał różnych zmian do usuwania pęcherzyków, nowy sterownik Emulex Fibre Channel Target (eftc) musiał usunąć obsługę ładowania binarnych obiektów blob , i konieczne były różne zmiany nazw obiektów blob w różnych sterownikach, od AMDGPU do innych.
Więc teraz jądro GNU Linux-libre 5.14 jest gotowe do użycia w systemach, które mogą działać bez uzależnienia od żadnego z tych usuniętych binarnych blobów oprogramowania układowego/mikrokodu i innych niewolnych komponentów oprogramowania.
Ale okazało się również, że wcześniej GNU Linux-libre brakowało w jakimś niewolnym kodzie, więc oprócz wydania 5.14 są też reedycje dla wersji 4.4, 4.9, 4.14, 4.19, 5.4, Serie jądra 5.10 i 5.13. Oto, co się stało z tą sytuacją:
Nieco ponad tydzień temu Legimet podniósł flagi dotyczące potencjalnego niewolnego kodu w GNU Linux-libre.
Chociaż niektóre problemy dotyczyły różnych standardów (na ogół nie traktujemy słabo udokumentowanego kodu lub czystych danych jako kodu obiektowego nad spekulacjami na temat istnienia alternatywnej, preferowanej formy źródłowej), ale kilka problemów się okazało być bezźródłowym kodem obiektowym, więc rozpoczęliśmy proces ich czyszczenia i ponownego uruchamiania wcześniejszych wydań, które je zawierały.
Więc teraz wyczyściliśmy łatkę oprogramowania układowego dla czujników vs6624 i kilka poprawek relokacji mikrokodu dla powerpc 8xx. Oba są zakodowane jako tablice liczb we wcześniejszych wydaniach Linuksa. To drugie od dawna wydawało mi się podejrzane, ale założyłem, że ci, którzy zaczęli czyścić Linuksa, zanim odziedziczyłem Linux-libre, mieli dobre powody, by go zostawić. To pierwsze było całkowicie moim własnym błędem. Prawdopodobnie zostałem oszukany przez pozornie nieciągłe zakresy adresów, wzorzec, który sugeruje inicjalizację rejestru, ale wiele małych fragmentów to w rzeczywistości większe ciągłe zakresy (dzięki, Juca!), przetasowane z nieznanych powodów.
Więcej szczegółów na temat tych wydarzeń znajdziesz na liście dyskusyjnej GNU.