Рэліз ядра Linux 6.12 з падтрымкай Realtime-рэжыму

Пасля двух месяцаў распрацоўкі Лінус Торвальдс прадставіў рэліз ядра Linux 6.12. Сярод найболей прыкметных змен: магчымасць уключэння Realtime-рэжыму, sched_ext для стварэння планавальнікаў CPU праз eBPF, выснова QR-кода пры аварыйных станах, механізм Device Memory TCP, механізм рэзервавання рэсурсаў SCHED_DEADLINE server, паляпшэнне планавальніка задач EEVDF, модуль IPE для задання палітык забеспячэння цэласнасці.

У новую версію прынята 14607 выпраўленняў ад 2167 распрацоўшчыкаў, памер патча – 37 МБ (змены закранулі 13087 файлаў, дададзена 507913 радкоў кода, выдалена 234083 радкоў). У мінулым выпуску было 15130 выпраўленняў ад 2078 распрацоўшчыкаў, памер патча – 85 МБ (у ядры 6.10 патч быў памерам 41 МБ). Каля 45% усіх прадстаўленых у 6.12 змен злучаны з драйверамі прылад, прыкладна 12% змен маюць дачыненне да абнаўлення кода, спецыфічнага для апаратных архітэктур, 13% злучана з сеткавым стэкам, 6% - з файлавымі сістэмамі і 3% c унутранымі падсістэмамі ядра.

Асноўныя навіны ў ядры 6.12:

  • Памяць і сістэмныя сэрвісы
    • Прадастаўлена магчымасць зборкі ядра з опцыяй PREEMPT_RT без дадатковых патчаў для працы ў рэжыме рэальнага часу. Апошняй адсутнай у ядры магчымасцю, не дазвалялай актываваць рэжым PREEMPT_RT, была падтрымка неблакавальнага атамарнага высновы праз функцыю printk, якая таксама прынята ў склад ядра. Падтрымка PREEMPT_RT даступная для архітэктур x86, x86_64, ARM64 і RISC-V. Да гэтага часу рэалізацыя рэжыму PREEMPT_RT пастаўлялася ў форме знешніх патчаў, на аснове якіх некаторыя дыстрыбутывы, такія як RHEL, SUSE і Ubuntu, Стваралі асобныя Realtime-рэдакцыі сваіх прадуктаў, запатрабаваныя ў такіх галінах, як фінансавыя сістэмы, прылады апрацоўкі гуку і відэа, авіяцыя, медыцына, робататэхніка, тэлекамунікацыйныя і прамысловыя сістэмы, у якіх неабходна забяспечыць прадказальны час апрацоўкі падзей.
    • Дададзены механізм "sched_ext" (SCX), які дазваляе выкарыстоўваць eBPF для стварэння планавальнікаў CPU, якія ахопліваюць практычна ўсе аспекты планавання выканання задач і размеркавання рэсурсаў CPU. Падобныя планавальнікі могуць загружацца дынамічна і выконвацца ўсярэдзіне ядраў. Linux в віртуальная машына eBPF. Механізм sched_ext спрашчае стварэнне спецыфічных для вызначаных задач планавальнікаў, дае магчымасць эксперыментаваць з рознымі тэхнікамі і стратэгіямі планавання, а таксама дазваляе хутка ствараць працоўныя прататыпы і замяняць планавальнікі на лета ў працоўных інфраструктурах. Напрыклад, пры дапамозе sched_ext можна стварыць планавальнік, які ўлічвае спецыфіку вызначанага прыкладання і дынамічна які змяняе стратэгію планавання яго выканання ў залежнасці ад стану сістэмы і нейкіх дадатковых фактараў.
    • У склад уключаная пакінутая частка патчаў, неабходных для працы механізму SCHED_DEADLINE server, вырашальнага праблему з недаатрыманнем рэсурсаў CPU звычайнымі задачамі ва ўмовах манапалізацыі CPU высокапрыярытэтнымі (realtime) задачамі. Для прадухілення манапалізацыі CPU у ядры раней выкарыстоўваўся механізм Realtime throttling, які спрабаваў рэзерваваць 5% для нізкапрыярытэтных задач, пакідаючы 95% часу realtime-задачам. Дадзены механізм пакідаў жадаць лепшага бо звычайныя задачы ў шматлікіх сітуацыях недаатрымлівалі працэсарны час. SCHED_DEADLINE server рэалізуе больш эфектыўны механізм рэзервавання рэсурсаў.
    • Завершана інтэграцыя планавальніка задач EEVDF (Earliest Eligible Virtual Deadline First), які прыйшоў на змену планавальніку CFS (Completely Fair Scheduler), які пастаўляўся пачынальна з ядра 2.6.23. Новы планавальнік пры выбары наступнага працэсу для перадачы выканання ўлічвае працэсы, якія недаатрымалі працэсарных рэсурсаў ці атрымалі незаслужана шмат працэсарнага часу. У першым выпадку фарсіруецца перадача кіравання працэсу, а ў другім, наадварот, адкладаецца. Стары планавальнік CFS выкарыстоўваў для вызначэння працэсаў, якія патрабуюць асобнай увагі, эўрыстыкі і тонкія налады, у той час як новы планавальнік адсочвае іх больш відавочна і не патрабуе тонкай наладкі. Мяркуецца, што EEVDF дазволіць зменшыць затрымкі пры выкананні задач, з якімі ў CFS узнікалі праблемы з планаваннем.
    • У апрацоўшчык аварыйных сітуацый у ядры - DRM Panic, які выкарыстоўвае падсістэму DRM (Direct Rendering Manager) для адлюстравання нагляднай справаздачы ў стылі "сіняга экрана смерці", дададзеная магчымасць паказу на экране лагатыпа і QR-кода са справаздачай kmsg пры ўзнікненні аварыйнага стану. Так як у QR-код змяшчаецца толькі 2953 байт, прадугледжана опцыя DRM_PANIC_SCREEN_QR_CODE_URL, пры якой справаздача kmsg сціскаецца пры дапамозе zlib і прымацоўваецца ў якасці параметра да URL, што дазваляе перадаць праз QR-код V40 каля 7500 байтаў. Пры зборцы пакетаў з ядром дыстрыбутывы могуць задаць базавую спасылку для URL, што дазволіць арганізаваць пераход на старонку для адпраўкі паведамлення аб праблеме. Для выбару фармату QR-кода прадугледжана настройка DRM_PANIC_SCREEN_QR_VERSION.
    • Дададзена падтрымка пашырэння ARM POE (Permission Overlay Extension), які дазваляе задаваць правы доступу да абласцей памяці. Пры дапамозе дадзенага пашырэння на сістэмах з працэсарамі ARM64 можа быць рэалізаваны механізм Memory Protection Keys, які ўжываецца для абмежавання доступу да старонак памяці без змены табліцы старонак памяці.
    • Для архітэктур Loongarch, ARM64, PowerPC і s390 перанесена рэалізацыя сістэмнага выкліку getrandom(), аптымізаваная пры дапамозе механізму vDSO (virtual dynamic shared object), які дае магчымасць перанесці апрацоўшчык сістэмнага выкліку з ядра ў прастору карыстальніка і пазбегнуць пераключэнняў кантэксту. Аптымізацыя дазваляе да 15 разоў паскорыць атрыманне выпадковых лікаў.
    • У падсістэму асінхроннага ўводу/высновы io_uring дададзеная магчымасць выкарыстання абсалютных таймаўтаў, якія спрацоўваюць пры дасягненні вызначанага часу на сістэмных гадзінах (раней маглі выстаўляцца толькі адносныя таймаўты, у якіх паказвалася працягласць з пачатку аперацыі).
    • Дададзеныя файлы для генерацыі біндзінгаў для бібліятэкі libcpupower пры дапамозе інструментара SWIG, які дазваляе фармаваць біндынгі з кода на C/C++ для розных моў праграмавання. Біндзінгі дазваляюць ствараць скрыпты на Python і іншых мовах, і выкарыстоўваць іх для пашырэння функцыянальнасці бібліятэкі libcpupower, якая прадстаўляе API для кіравання cpufreq і драйверамі з прасторы карыстача.
    • Ва ўтыліце cpuidle рэалізавана адлюстраванне значэння стану прастою «residency», ужывальнага для realtime-сістэм і які ўлічвае мінімальнае час, якое працэсар павінен знаходзіцца ў стане прастою, каб апраўдаць выдаткі энергіі на пераход у гэты стан і вынахад з яго.
    • Дададзена магчымасць выкарыстання кампілятара Clang для зборкі стандартнай Сі-бібліятэкі nolibc, якая ўваходзіць у склад зыходных тэкстаў ядра. Linux і якая прадстаўляе абвязку над базавымі сістэмнымі выклікамі. Пры зборцы nolibc у Clang дапушчаецца выкарыстанне аптымізацыі на этапе звязвання (LTO).
    • Абвешчаныя састарэлымі некаторыя інтэрфейсы cgroup1, такія як акаўнтынг TCP, першая версія мяккіх абмежаванняў (soft limit) і кіраванне вычарпаннем вольнай памяці. Падтрымка названых функцый пакуль захоўваецца ў поўным аб'ёме, а папярэджанне зроблена для вывучэння колькасці карыстальнікаў, якія працягваюць выкарыстоўваць дадзеныя магчымасці.
    • Дададзена магчымасць налады колцавага буфера трасіроўкі для захавання назапашаных дадзеных пасля перазагрузкі, што дазволіць не губляць назапашаную адладкавую інфармацыю ў выпадку аварыйнага завяршэння працы ядра. Дадзеныя захоўваюцца ў памяці. Уключэнне ажыццяўляецца праз параметр каманднага радка ядра trace_instance, напрыклад, выстаўленне "trace_instance=boot_map@0x285400000:12M" зарэзервуе 12 МБ памяці па адрасе 0x285400000 для буфера "boot_map", які будзе даступны праз файл /sys.
    • Працягнуты перанос змен з галінкі Rust-for-Linux, звязаных з выкарыстаннем мовы Rust у якасці другой мовы для распрацоўкі драйвераў і модуляў ядра (падтрымка Rust не актыўная па змаўчанні, і не прыводзіць да ўключэння Rust у лік абавязковых зборачных залежнасцяў да ядра). Дададзеныя модулі 'list' і 'rbtree' для працы з двунакіраванымі сувязнымі спісамі і чырвона-чорнымі дрэвамі пошуку (red-black tree). Пашыраны магчымасці модуляў 'init', 'sync', 'types' і 'error'. Дадзеная магчымасць выкарыстання кода на Rust пры зборцы ядра з абаронай ад нападаў Spectre (опцыі MITIGATION_{RETHUNK,RETPOLINE,SLS}), выкарыстанні адладкавай сістэмы KASAN, механізмаў абароны kCFI (kernel Control Flow Integrity) і Shadow Call, а таксама пры выкарыстанні дадатковых убудоў GCC. Дададзены драйвер для Ethernet-кантролера Applied Micro QT2025 PHY, напісаны на Rust. Падрыхтаваны асобны сайт з дакументацыяй - rust.docs.kernel.org.
    • У склад зыходных тэкстаў ядра дададзена ўтыліта xdrgen для пераўтварэння XDR-спецыфікацый (eXternal Data Representation) у функцыі кадавання і дэкадаванні XDR, напісаныя з выкарыстаннем Сі-стылю, прынятага ў ядры Linux.
    • У ядро ​​прынята змена з рэалізацыяй механізму маскіравання паказальнікаў для паніжэння ліку павольных выклікаў barrier_nospec() у 64-бітнай функцыі copy_from_user(), ужывальнай для капіявання дадзеных у ядро ​​з прасторы карыстача. Ужыванне маскіравання паскарае на 2.6% мінанне тэсту "per_thread_ops", які ацэньвае колькасць аперацый, якія могуць быць выкананы ў адным струмені.
    • Дададзены новы USB-драйвер, які дазваляе выкарыстоўваць пратакол 9pfs у якасці транспарта для перадачы і прыёму дадзеных з USB-прылады, пры мантаванні ФС 9p па-над USB (напрыклад, "mount -t 9p -o trans=usbg,aname=/path/to/ fs /mnt/9»). У якасці прыкладу ўжывання новага драйвера завецца выкарыстанне замест NFS для арганізацыя загрузкі каранёвай часткі пры распрацоўцы ўбудавальных прылад.
  • Дыскавая падсістэма, увод/выснова і файлавыя сістэмы
    • У падсістэму VFS дададзена магчымасць працы c прыладамі захоўвання, памер блокаў у якіх больш, чым памер старонкі памяці ў сістэме. У файлавых сістэмах дадзеная магчымасць пакуль падтрымліваецца толькі ў XFS.
    • У падсістэму FUSE, якая дазваляе ствараць рэалізацыі файлавых сістэм, якія працуюць у прасторы карыстача, дададзеная падтрымка мапінга ідэнтыфікатараў карыстачоў прымантаваных файлавых сістэм, ужывальнага для супастаўлення файлаў вызначанага карыстача на прымантаванай чужой частцы з іншым карыстачом у бягучай сістэме.
    • Рэалізавана новая fcntl-аперацыя F_CREATED_QUERY, якая дае з дадаткам магчымасць вызначыць ці быў створаны файл, адкрыты з выкарыстаннем сцяга O_CREAT, ці ён ужо існаваў да гэтага.
    • У сістэмны выклік name_to_handle_at() дададзена магчымасць выкарыстання ўнікальных 64-разрадных ідэнтыфікатараў кропак мантавання для выключэння стану гонкі пры разборы /proc/mountinfo.
    • Памер структуры "file" у ядры скарочаны з 232 да 184 байт, што дазваляе скараціць спажыванне памяці на сістэмах, актыўна якія працуюць з файламі.
    • Забаронена мантаванне файлавых сістэм да кропак мантавання ўсярэдзіне іерархіі /proc, напрыклад, у /proc/PID/fd, што стварала патэнцыйныя праблемы з бяспекай.
    • У псеўда-ФС NSFS (NameSpace FS), выкарыстоўванай для працы з прасторамі імёнаў, рэалізавана падаванне дадатковай інфармацыі аб прасторах імёнаў кропак мантавання.
    • У файлавай сістэме EROFS (Extendable Read-Only File System), прызначанай для выкарыстання на частках, даступных у рэжыме толькі для чытання, з'явілася падтрымка мантавання файлавых сістэм напроста з дыскавых выяў, захаваных у выглядзе файлаў.
    • У XFS дададзены новыя ioctl-каманды XFS_IOC_START_COMMIT і XFS_IOC_COMMIT_RANGE для абмену змесцівам паміж двума файламі.
    • У NFS дададзена падтрымка пратакола «LOCALIO», які дазваляе вызначыць ці знаходзяцца кліент і сервер NFS на адным і тым жа хасце, для задзейнічання адпаведных аптымізацый.
    • У файлавай сістэме Btrfs прапанаваны аптымізацыі прадукцыйнасці, праведзены рэфактарынг кода, скарочана вобласць блакавання экстэнтаў пры аперацыях чытання, працягнута праца па перакладзе на выкарыстанне фаліянтаў старонак памяці (page folios), рэалізавана аўтаматычнае вызваленне памяці для структуры btrfs_path.
    • У файлавай сістэме Ext4 ухіленыя памылкі, злучаныя з вылучэннем блокаў, кіраваннем экстэнтамі, механізмам «fast commit» і часопісаваннем.
  • Віртуалізацыя і бяспека
    • Дададзены LSM-модуль IPE (Integrity Policy Enforcement), распрацаваны кампаніяй Microsoft для пашырэння існуючай сістэмы мандатнага кіравання доступам. Модуль дазваляе вызначыць агульную палітыку забеспячэння цэласнасці для ўсёй сістэмы, якая паказвае якія аперацыі дапушчальныя і якім спосабам варта верыфікаваць сапраўднасць кампанентаў. Напрыклад, пры дапамозе IPE можна паказаць якія выкананыя файлы дазволена запускаць з улікам праверкі іх адпаведнасці эталоннай версіі пры дапамозе крыптаграфічных хэшаў, якія прадстаўляюцца сістэмай dm-verity.
    • На этапе кампіляцыі ядра прадстаўлена магчымасць паасобнага ўключэння даступных метадаў абароны ад розных уразлівасцяў класа Spectre у CPU. У Kconfig прапанаваны новыя параметры: MITIGATE_MDS (абарона ад уразлівасці Microarchitectural Data Sampling), MITIGATE_TAA (абарона ад уразлівасці TSX Asynchronous Abort), MITIGATE_MMIO_STALE_DATA (абарона ад уразлівасці MMIO Fault), MITIGATE_RETBLEED (абарона ад уразлівасці Retbleed), MITIGATE_SPECTRE_V1, MITIGATE_SPECTRE_V1 (абарона ад уразлівасцяў Spectre), MITIGATE_SRBDS (абарона ад уразлівасці Special Register Buffer Data Sampling), MITIGATE_SSB (абарона ад уразлівасці).
    • Дададзены параметр каманднага радка proc_mem.force_override і набор зборачных налад у Kconfig (PROC_MEM_FORCE_ALWAYS, PROC_MEM_FORCE_PTRACE і PROC_MEM_FORCE_NEVER), якія дазваляюць забараніць змену памяці праз /proc/pid/mem.
    • Падсістэма LSM (Linux security module) пераведзена на выкарыстанне статычных выклікаў, што дазволіла ўзмацніць бяспекі і павысіць прадукцыйнасць.
    • Забяспечана магчымасць выкарыстання штатных ядраў для архітэктуры ARM64 у гасцявых асяродках, выкананых на Android-сістэмах з мадыфікаваным гіпервізарам KVM (protected KVM).
    • У LSM-модулі Landlock, які дазваляе абмежаваць узаемадзеянне групы працэсаў з вонкавым асяроддзем, рэалізаваная канцэпцыя «IPC scoping» для выбарачнага абмежавання ўзаемадзеяння з sandbox-акружэннямі, выкарыстоўваючы Unix-сокеты і сігналы. Напрыклад, можна забараніць усталёўку злучэнняў з выкарыстаннем Unix-сокетаў з sandbox-асяроддзі да працэсаў, у якіх не ўжываецца ізаляцыя, але дазволіць злучэнні з працэсамі ў той жа scope-вобласці.
    • У гіпервізоры KVM у CPUID для гасцявых сістэм дададзены сцяг, які сігналізуе аб падтрымцы пашырэнняў AVX10.1.
  • Сеткавая падсістэма
    • Дададзены механізм Device Memory TCP, які дазваляе выкарыстоўваць сеткавыя сокеты для прамой адпраўкі змесціва памяці перыферыйных прылад па сетцы (рэжым zero-copy) і прамога размяшчэння змесціва сеткавых пакетаў у вобласці памяці прылады на боку атрымальніка. Перадаваныя ў пакетах дадзеныя перадаюцца ад сеткавай карты ў памяць перыферыйнай прылады або з памяці прылады ў сеткавую карту напроста, абыходзячы CPU, а загалоўкі пакетаў пападаюць у звычайныя буферы ядра.
    • Пашыраныя магчымасці шматлікіх Ethernet і бесправадных драйвераў. Например, в драйвере Intel iwlwifi добавлена ​​поддержка выноса операций RLC/SMPS на сторону прошивки, в драйвере RealTek rtw89 повышена производительность и добавлена ​​поддержка чипов RTL8852BT/8852BE-VT (WiFi 6), в Ethernet-драйвере microchip добавлена ​​поддержка спецификаций IEEE 802.3bw (100BASE -T1) і IEEE 802.3bp, палепшаны рэалізацыі віртуальных Ethernet Microsoft vNIC і IBM veth. Дададзены новыя драйверы для Ethernet-чыпаў Realtek RTL9054, RTL9068, RTL9072, RTL9075, RTL9068, RTL9071 і Microchip LAN8650/1 10BASE-T1S MAC-PHY.
    • У MPTCP (MultiPath TCP), пашырэнні пратаколу TCP для арганізацыі дастаўкі TCP-пакетаў адначасова па некалькіх маршрутах праз розныя сеткавыя інтэрфейсы, памер выкарыстоўваных пры маршрутызацыі важніц каэфіцыентаў павялічаны з 8 да 16 біт. Рэалізавана вызначэнне які губляецца (blackhole) трафіку і прыпыненні на некаторы час спроб усталёўкі злучэнняў з сістэмамі, якія прыводзяць да страты трафіку.
    • Для IPv6 рэалізаваная падтрымка сцяга «p» у PIO (Prefix Information Option), які ўжываецца ў анонсах RA (IPv6 Router Advertisements) для выбару мадэлі разгортвання кліентаў праз DHCPv6-PD (DHCPv6 Prefix Delegation, RFC9663) замест прысваення асобных адрасоў на базе. SLAAC (Stateless Address Autoconfiguration). У IPv6 IOAM6 дададзеная падтрымка новага рэжыму інкапсуляцыі tunsrc, які дазваляе дамагчыся больш высокай прадукцыйнасці.
    • Падвышаная прадукцыйнасць апрацоўкі кіравальных пакетаў IPsec.
    • Падвышаная прадукцыйнасць скіду (flush) вялікіх набораў правіл nftables. У nfnetlink_queue палепшана падтрымка пратаколу SCTP.
    • У API ethtool дададзеная падтрымка прывязкі некалькіх сеткавых карт да аднаго сеткавага інтэрфейсу.
  • Абсталяванне
    • У драйверы AMDGPU працягнута праца па рэалізацыі падтрымкі GPU AMD RDNA4 ("GFX12"). Дададзена магчымасць скіду асобных чэргаў задач без скіду стану ўсяго GPU.
    • Прадоўжана праца над drm-драйверам (Direct Rendering Manager) Xe для GPU на базе архітэктуры Intel Xe, якая выкарыстоўваецца ў відэакартах Intel сямейства Arc і інтэграванай графіцы, пачынаючы з працэсараў Tiger Lake. У новай версіі ўключана падтрымка GPU на базе мікраархітэктур Battlemage і Lunar Lake. Прадстаўлена падтрымка CCS-мадыфікатараў (Color Control Surface) Xe2 для кіравання параметрамі убудаваных і дыскрэтных GPU.
    • У драйверы i915 рэалізавана магчымасць вываду праз інтэрфейс HWMON або sysfs (атрыбут "fan1_input") інфармацыі аб хуткасці кручэння кулера. Аб'яўлены састарэлым параметр "i915.modeset", замест "i915.modeset=0" варта выкарыстоўваць параметр "i915.nomodeset".
    • У DRM-драйвер msm (GPU Qualcomm Adreno) дададзена падтрымка GPU A615, A306 і A621.
    • У драйверы Nouveau праведзена перапрацоўка і чыстка ўнутраных структур.
    • У драйвер intel_pstate, які кіруе параметрамі энергаспажывання (P-state) на сістэмах з працэсарамі Intel, дададзеная падтрымка гібрыдных сістэм з асіметрычнымі (адрознымі па характарыстыках) CPU, а таксама падтрымка кіравання сілкаваннем працэсараў на базе мікраархітэктур Granite Rapids і Sierra Forest. У драйвер intel_idle дададзена падтрымка CPU Xeon Granite Rapids. У драйверы intel_rapl забяспечана распазнанне працэсаў AMD сямейства 1Ah і працэсараў Intel ArrowLake-U.
    • Прадоўжана ўключэнне змен для падтрымкі ARM SoC Snapdragon X Elite, у якім выкарыстоўваецца ўласны 12-ядзерны CPU Qualcomm Oryon і GPU Qualcomm Adreno. Чып накіраваны на выкарыстанне ў наўтбуках і ПК, і апярэджвае ў шматлікіх тэстах прадукцыйнасці чыпы Apple M3 і Intel Core Ultra 155H.
    • Дададзена падтрымка ARM-плат, SoC і прылад: Broadcom bcm2712 (Raspberry Pi 5), Renesas R9A09G057 (RZ/V2H), Qualcomm Snapdragon 414 (MSM8929), Lenovo ThinkPad T14s Gen 6, Lenovo A6000 XSP , Firefly Core-PX6010-JD7, Lunzn Fastrhino R35S, Aspeed Riser, AGX Orin, Rockchip Qnap-TS30, Huashan Pi, Meta Catalina, Beagle-AI, NanoPi R4S Plus, ExynosAuto v68, SOPHGO SG433 ), Cool Pi CM2 GenBook, Anbernic RG920XXSP, GameForce Ace, IBM P2002, Kontron i.MX5332 OSM-S, NanoPC-T4
    • Дададзена падтрымка экранных панэляў Anbernic RG28XX, On Tat Industrial Company KD50G21-40NT-A1, Innolux G070ACE-LH3, Melfas lmfbx101117480, Densitron DMT028VGHMCMI-1D, Microchip AC40 08, AOU B116XAT02.3, BOE TV116WUM -LL06.1, BOE NV116WUM-N04.1, BOE NV101WUM-N2, BOE NV140WHM-A41D, BOE NE133WUM-N63G, CMN N116BCA-EA4, CMN N140BCP-EA6, CSW MNB116
    • У гукавой падсістэме дададзеная падтрымка чыпаў і кодэкаў RME Digiface USB, AMD ACP 7.1, Mediatek MT6367, MT8365, Realtek RTL1320, C-Media CM9825. Абвешчаныя састарэлымі старыя гукавыя драйверы для ASoC Intel, замест якіх рэкамендавана выкарыстоўваць драйверы AVS. Унесена шмат паляпшэнняў у драйвер SoundWire.

Крыніца: opennet.ru

Купіць надзейны хостынг для сайтаў з абаронай ад DDoS, VPS VDS серверы 🔥 Купіць надзейны хостынг для сайтаў з абаронай ад DDoS, VPS VDS серверы | ProHoster