Латиноамериканският Фонд за свободен софтуер публикува напълно свободна версия на ядрото Linux 6.12 — Linux-libre 6.12-gnu, почистена от елементи на фърмуера и драйвери, съдържащи несвободни компоненти или код, ограничен от производителя. Освен това, Linux-libre деактивира ядрото от зареждането на външни несвободни компоненти, които не са включени в разпространението на ядрото, и премахва споменаванията за употребата на несвободни компоненти от документацията.
За почистването на ядрото от несвободни части проектът Linux-libre създаде универсален shell-скрипт, който съдържа хиляди шаблони за определяне на наличието на бинарни препратки и изключване на фалшиви сработвания. Също така са налични готови пачове за изтегляне, създадени на базата на използването на споменатия скрипт. Ядрото Linux-libre се препоръчва за употреба в дистрибуции, които отговарят на критериите на фонда за свободен софтуер за изграждане на напълно свободни дистрибуции на GNU/Linux. Например, Linux-libre се използва в дистрибуции като Dragora Linux, Trisquel, Dyne:Bolic, gNewSense, Parabola, Musix и Kongoni.
В изданието Linux-libre 6.12-gnu е добавен код за почистване на блобове в драйверите за SoC CPM/QE QMC, безжични чипове Realtek 8852BE-VT, bluetooth адаптери Amlogic, мрежови адаптери amcc qt2025, сензори aw96103/aw96105 и кодеци TI TLV320AIC31XX. Извършено е допълнително почистване на блобове в драйверите за xHCI контролери Renesas и Intel ISH (Integrated Sensor Hub) HID. Обновен е кодът за премахване на блобове в драйверите и подсистемите MHI PCI host, Adreno 620/621, r8169, Qualcomm q6v5 remoteproc, rtw8852c, rtw8922a, както и в dts файловете за ARM54 чипове TI PRU и Qualcomm. Почистването на драйверите за безжични карти ks7010 и звуковата подсистема Intel SkyLake е прекратено, тъй като тези драйвери бяха премахнати от състава на ядрото.
Особено се отбелязва откритие в изходните текстове на един от драйверите на изпълняем обектен код, генериран от непубликувани изходни текстове и вградени под формата на последователност от шестнадесетични числа. Проблемният драйвер не е назован явно, но, judging by the changes, става дума за наличие на микрокод на шейдера в файла gfx_v9_4_3_cleaner_shader.h, който е част от драйвера AMDGPU. Първото подобно вмъкване беше открито в ядрото 6.11 и после предложено от един от разработчиците за премахване, тъй като изходните текстове не бяха предоставени (възникна ситуация на доставка под лиценз GPL на програма, достъпна само в бинарен вид). Все пак, в ядрото 6.12 посоченият бинарен код беше запазен, а в същия драйвер беше добавено още едно подобно вмъкване.
Освен това, в анонса на Linux-libre 6.12 се споменават още две събития:
- За включване в ядрото е предложена поправка, която блокира на драйверите за лаптопи Tuxedo достъпа до подсистеми на ядрото, достъпни само за код с лиценз GPLv2 (EXPORT_SYMBOL_GPL). Възможността за блокиране първоначално беше въведена, за да ограничи свързването на заскриптови драйвери с компоненти на ядрото на Linux, експортирани само за модули с лиценз GPLv2, но успешно се заобикаля чрез създаването на модулни плътности, които трансформират достъпа на заскриптовия драйвер до необходимите API на ядрото. В случая с драйверите Tuxedo, ситуацията е обратна — въпреки че драйверите Tuxedo се развиват независимо от ядрото, те се предоставят под лиценз GPLv3, който от една страна не е съвместим с GPLv2, но от друга страна защитава повече свободи, например, предотвратява тивоизацията.
Отбелязва се, че компаниите Tuxedo отдавна предлагат смяна на лиценза за своите драйвери, но продължават да предоставят код под лиценз GPLv3 и в същото време посочват в кода на драйвера макроса 'MODULE_LICENSE("GPL")' вместо 'MODULE_LICENSE("GPL v3")' за получаване на достъп до всички подсистеми на ядрото. Компанията Tuxedo прие критиката и промени лиценза на GPLv2+ за част от своите драйвери. Промяната е приложена за драйверите gxtp7380, ite_8291, ite_8291_lb, ite_8297, ite_8297, stk8321, tuxedo_compatibility_check, tuxedo_nb02_nvidia_power_ctrl и tuxedo_tuxi. Повече от десет драйвера все още не са прелицензирани, тъй като за смяната на лиценза им е необходимо получаването на съгласие от външни разработчици.
Използването в кода на ‘MODULE_LICENSE(«GPL»)’ вместо ‘MODULE_LICENSE(«GPL v3»)’ беше обяснено от представител на Tuxedo с отсъствието на ясно обяснение в документацията на ядрото, че маркерът «GPL» не може да се използва за лицензия GPLv3. Той също така сподели, че компанията има намерение да предаде своите драйвери в основната част на ядрото на Linux и за целта работи върху тяхното пълно пренаписване под лицензия GPLv2, като взема предвид изискванията за компонентите на ядрото.
- Разработчиците на ядрото обсъждат инициативата за добавяне на флага X86_BUG_OLD_MICROCODE, който сигнализира, че в системата се използва не най-новата версия на CPU микрокода. При активиране на този флаг, системата се предлага да се разглежда като притежаваща потенциални неотстранени уязвимости. Опитите да се изравни състоянието на системата с неактуализиран микрокод с ситуацията на наличието на реални неотстранени уязвимости в кода предизвикаха критика от един от поддръжниците на проекта Linux-libre.
Според поддръжника на Linux-libre, ядрото не трябва да ограничава правото на потребителите да не инсталират непроверени собствени прошивки и микрокод на своето собствено устройство. Дискусията за наличието на уязвимости трябва да се свързва с конкретни корекции в определени версии на прошивките, а не да се наричат уязвими всички системи, на които не е инсталиран най-новият микрокод, без да се анализира дали в конкретната система се проявяват уязвимости и дали новата прошивка съдържа корекции на уязвимости.
Източник: opennet.ru
