Két hónap fejlesztés után Linus Torvalds kiadta a kernelt. Linux 6.12. A legjelentősebb változások közé tartozik a valós idejű mód engedélyezésének lehetősége, a sched_ext a CPU-ütemezők eBPF-en keresztüli létrehozásához, QR-kód kimenet vészhelyzet esetén, az Eszközmemória TCP mechanizmusa, a SCHED_DEADLINE szerver erőforrás-foglalási mechanizmusa, az EEVDF feladatütemező fejlesztése, az IPE modul az integritási szabályzatok beállításához.
Az új verzió 14607 2167 javítást tartalmaz 37 13087 fejlesztőtől, a patch mérete 507913 MB (a változtatások 234083 15130 fájlt érintettek, 2078 85 kódsor került hozzáadásra, 6.10 41 sor törölve lett). Az utolsó kiadás 45 6.12 javítást tartalmazott 12 13 fejlesztőtől, a javítás mérete 6 MB (a 3-es kernelben a javítás XNUMX MB volt). A XNUMX-ben bevezetett változtatások körülbelül XNUMX%-a az eszközillesztőkkel kapcsolatos, a változtatások körülbelül XNUMX%-a a hardverarchitektúrák kódjának frissítéséhez, XNUMX%-a a hálózati veremhez, XNUMX%-a a fájlrendszerekhez és XNUMX%-a. belső kernel alrendszerekhez kapcsolódnak.
Főbb újítások a 6.12-as kernelben:
- Memória- és rendszerszolgáltatások
- Mostantól elérhető a kernel PREEMPT_RT opcióval történő fordításának lehetősége további, valós idejű működéshez szükséges javítások nélkül. Az utolsó hiányzó kernelfunkció, amely megakadályozta a PREEMPT_RT mód engedélyezését, a nem blokkoló atomi kimenet támogatása volt a printk függvényen keresztül, amely szintén szerepel a kernelben. A PREEMPT_RT támogatás az x86, x86_64, ARM64 és RISC-V architektúrákhoz érhető el. Eddig a PREEMPT_RT mód implementációja külső javítások formájában volt biztosított, amelyeket egyes disztribúciók, például az RHEL, a SUSE és a ... Ubuntu, különálló valós idejű kiadásokat készített termékeikből, amelyekre olyan területeken van kereslet, mint a pénzügyi rendszerek, az audio- és videofeldolgozó eszközök, a repülés, az orvostudomány, a robotika, a telekommunikáció és az ipari rendszerek, ahol szükséges a kiszámítható eseményfeldolgozási idő biztosítása.
- Hozzáadtuk a „sched_ext” (SCX) mechanizmust, amely lehetővé teszi az eBPF használatát CPU-ütemezők létrehozására, amelyek gyakorlatilag a feladatütemezés és a CPU-erőforrás-elosztás minden aspektusát lefedik. Az ilyen ütemezők dinamikusan betölthetők és végrehajthatók a kernelen belül. Linux в virtuális gép eBPF. A sched_ext mechanizmus leegyszerűsíti a feladatspecifikus ütemezők létrehozását, lehetővé teszi a különféle ütemezési technikákkal és stratégiákkal való kísérletezést, valamint lehetővé teszi működő prototípusok gyors létrehozását és az ütemezők menet közbeni cseréjét az éles infrastruktúrákban. A sched_ext használatával például létrehozhat egy olyan ütemezőt, amely figyelembe veszi egy adott alkalmazás sajátosságait, és dinamikusan módosítja ütemezési stratégiáját a rendszerállapottól és egyéb tényezőktől függően.
- A kompozíció tartalmazza a SCHED_DEADLINE szervermechanizmus működéséhez szükséges javítások fennmaradó részét, amely megoldja a CPU erőforrások kihasználatlanságának problémáját a hétköznapi feladatok során, amikor a CPU-t magas prioritású (valós idejű) feladatok monopolizálják. A CPU monopolizálásának megakadályozására a kernel korábban a Realtime throttling mechanizmust használta, amely 5%-ot próbált lefoglalni alacsony prioritású feladatokra, így az idő 95%-a a valós idejű feladatokra maradt. Ez a mechanizmus sok kívánnivalót hagyott maga után, mivel a hétköznapi feladatok sok esetben nem kaptak elegendő processzoridőt. A SCHED_DEADLINE szerver hatékonyabb erőforrás-foglalási mechanizmust valósít meg.
- Befejeződött az EEVDF (Earliest Eligible Virtual Deadline First) feladatütemező integrációja, amely felváltotta a 2.6.23-as kerneltől kezdve a CFS (Completely Fair Scheduler) ütemezőt. Amikor kiválasztja a következő folyamatot a végrehajtás átviteléhez, az új ütemező figyelembe veszi azokat a folyamatokat, amelyek nem kaptak elegendő processzorerőforrást, vagy méltatlanul sok processzoridőt kaptak. Az első esetben az irányítást a folyamatra kényszerítik, a másodikban pedig éppen ellenkezőleg, elhalasztják. A régi CFS ütemező heurisztikát és finomhangolást használt a különös figyelmet igénylő folyamatok azonosítására, míg az új ütemező pontosabban követi őket, és nem igényel finomhangolást. Az EEVDF várhatóan csökkenti az olyan feladatok késését, amelyekkel kapcsolatban a CFS-nek ütemezési problémái voltak.
- A kernel vészhelyzeti kezelőjében - DRM Panic, amely a DRM (Direct Rendering Manager) alrendszer segítségével vizuális jelentést jelenít meg a „halál kék képernyőjének” stílusában, képes logót és QR-kódot megjeleníteni kmsg jelentéssel. vészhelyzet esetén a képernyőn látható. Mivel csak 2953 bájt fér bele egy QR-kódba, a DRM_PANIC_SCREEN_QR_CODE_URL opció biztosított, amelyben a kmsg jelentést a zlib segítségével tömörítik, és paraméterként csatolják az URL-hez, ami körülbelül 40 bájt átvitelét teszi lehetővé a V7500 QR-kódon keresztül. Amikor csomagokat készítünk a kernellel, a disztribúciók beállíthatnak egy alap URL-t az URL-hez, amely lehetővé teszi számukra, hogy egy oldalra navigáljanak a probléma jelentésére. A QR-kód formátumának kiválasztásához a DRM_PANIC_SCREEN_QR_VERSION beállítás áll rendelkezésre.
- Támogatás hozzáadva az ARM POE-hez (Permission Overlay Extension), amely lehetővé teszi a memóriaterületekhez való hozzáférési jogok beállítását. Ezzel a kiterjesztéssel az ARM64 processzorokkal rendelkező rendszereken megvalósítható a Memóriavédelmi kulcsok mechanizmus, amely a memórialapokhoz való hozzáférés korlátozására szolgál a memórialaptábla megváltoztatása nélkül.
- A Loongarch, ARM64, PowerPC és s390 architektúrák esetében a getrandom() rendszerhívás megvalósítását áthelyezték, a vDSO (virtuális dinamikus megosztott objektum) mechanizmussal optimalizálva, ami lehetővé teszi a rendszerhíváskezelő áthelyezését a kernelből a rendszermagba. felhasználói teret, és kerülje a kontextusváltást. Az optimalizálás lehetővé teszi, hogy akár 15-szörösére is felgyorsítsa a véletlen számok generálását.
- Az io_uring aszinkron bemeneti/kimeneti alrendszerhez hozzáadták az abszolút időtúllépések használatának lehetőségét, amelyek akkor válthatók ki, amikor a rendszeróra elér egy bizonyos időt (korábban csak relatív időtúllépéseket lehetett beállítani, amelyek a művelet kezdetétől számított időtartamot jelezték ).
- Hozzáadott fájlok a libcpupower könyvtár kötéseinek generálásához a SWIG eszközkészlet segítségével, amely lehetővé teszi kötések létrehozását C/C++ kódból különböző programozási nyelvekhez. A kötések lehetővé teszik szkriptek létrehozását Pythonban és más nyelveken, és ezek segítségével a libcpupower könyvtár funkcióinak kiterjesztésére szolgál, amely API-t biztosít a cpufreq és az illesztőprogramok felhasználói területről történő kezeléséhez.
- A cpuidle segédprogram megjeleníti az üresjárati állapot „rezidens” értékét, amelyet valós idejű rendszerekben használnak, és figyelembe veszi azt a minimális időt, ameddig a processzornak tétlennek kell lennie ahhoz, hogy igazolja az ebbe az állapotba való átmenet energiaköltségét.
- Hozzáadva a Clang fordító használatának lehetősége a nolibc szabványos C könyvtár felépítéséhez, amely a kernel forráskódjában található. Linux és egy burkolatot biztosít az alapvető rendszerhívások köré. A nolibc Clangban történő fordításakor a linkidő-optimalizálás (LTO) engedélyezve van.
- Néhány cgroup1 interfész elavult, mint például a TCP elszámolás, a soft limit XNUMX-es verziója és a memóriakimerülés kezelése. Ezeknek a funkcióknak a támogatása egyelőre teljes, és a figyelmeztetés célja, hogy tanulmányozzuk azon felhasználók számát, akik továbbra is használják ezeket a szolgáltatásokat.
- Hozzáadtuk a gyűrűkövetési puffer beállításának lehetőségét az újraindítás után felhalmozott adatok mentéséhez, ami lehetővé teszi, hogy ne veszítse el a felhalmozott hibakeresési információkat a kernel összeomlása esetén. Az adatok a memóriában tárolódnak. Az engedélyezés a trace_instance kernel parancssori paraméterén keresztül történik, például a „trace_instance=boot_map@0x285400000:12M” beállítása 12 MB memóriát foglal le 0x285400000 helyen a „boot_map” puffer számára, amely a /sys/kernel fájlon keresztül lesz elérhető. /tracing/instances/boot_map.
- A Rust-for- ágból folytatott migrációs változtatásokLinux, amely a Rust második nyelvként való használatához kapcsolódik illesztőprogramok és kernel modulok fejlesztéséhez (a Rust támogatás alapértelmezés szerint nem aktív, és a Rust nem tartalmazza a kernel kötelező építési függőségei között). Hozzáadva a 'list' és az 'rbtree' modulok a duplán linkelt listák és a piros-fekete keresőfák kezeléséhez. Kibővítve az 'init', 'sync', 'types' és 'error' modulok képességei. Hozzáadva a Rust kód használatának lehetősége Spectre támadások elleni védelemmel ellátott kernel építésekor (MITIGATION_{RETHUNK,RETPOLINE,SLS} opciók), a KASAN hibakereső rendszer, a kCFI (kernel Control Flow Integrity) és a Shadow Call védelmi mechanizmusok használatakor, valamint további GCC bővítmények használatakor. Hozzáadva egy illesztőprogram az Applied Micro QT2025 PHY Ethernet vezérlőhöz, Rust nyelven írva. Elkészült egy külön weboldal a dokumentációval: rust.docs.kernel.org.
- Az xdrgen segédprogramot hozzáadták a kernel forráskódjához, hogy az XDR (eXternal Data Representation) specifikációkat a kernel által elfogadott C stílusban írt XDR kódoló és dekódoló függvényekké konvertálja. Linux.
- A kernel olyan változtatást fogadott el, amely egy mutatómaszkolási mechanizmust valósított meg, amely csökkenti a barrier_nospec() lassú hívásainak számát a 64 bites copy_from_user() függvényben, amely az adatok felhasználói térből történő másolására szolgál a kernelbe. A maszkolás használata 2.6%-kal gyorsítja fel a „per_thread_ops” tesztet, amely az egy szálban végrehajtható műveletek számát értékeli.
- Új USB-illesztőprogram került hozzáadásra, amely lehetővé teszi, hogy a 9pfs protokollt adatátvitelként használja az USB-eszközről történő adatok küldéséhez és fogadásához, amikor a 9p fájlrendszert USB-n keresztül csatlakoztatja (például „mount -t 9p -o trans=usbg, aname=/útvonal/hoz/ fs /mnt/9"). Az új illesztőprogram használatára példa az NFS helyett a gyökérpartíció rendszerindításának megszervezése beágyazott eszközök fejlesztésekor.
- Lemez alrendszer, I/O és fájlrendszerek
- A VFS alrendszerbe bekerült az a képesség, hogy olyan tárolóeszközökkel dolgozzon, amelyek blokkmérete nagyobb, mint a rendszerben lévő memórialap mérete. Fájlrendszerekben ez a funkció jelenleg csak XFS-ben támogatott.
- A FUSE alrendszer, amely lehetővé teszi a felhasználói térben működő fájlrendszerek megvalósítását, támogatja a csatlakoztatott fájlrendszerek felhasználói azonosítóinak leképezését, amelyek segítségével egy adott felhasználó fájljait egy felcsatolt idegen partíción egy másik felhasználóval egyeztetheti az aktuálisan. rendszer.
- Egy új fcntl-művelet, az F_CREATED_QUERY implementációra került, amely lehetővé teszi az alkalmazás számára, hogy megállapítsa, hogy az O_CREAT jelzővel megnyitott fájl létrejött-e, vagy már korábban is létezett.
- A name_to_handle_at() rendszerhíváshoz hozzáadtuk az egyedi 64 bites csatolási pont azonosítók használatának lehetőségét, hogy elkerüljük a versenyfeltételeket a /proc/mountinfo elemzésekor.
- A kernel „fájl” szerkezetének mérete 232-ről 184 bájtra csökkent, ami csökkenti a memóriafelhasználást azokon a rendszereken, amelyek aktívan dolgoznak fájlokkal.
- Fájlrendszerek csatlakoztatása a /proc hierarchián belüli csatolási pontokhoz, például a /proc/PID/fd, tilos volt, ami potenciális biztonsági problémákat okozott.
- A névterekkel való munkavégzéshez használt pszeudo-FS NSFS (NameSpace FS) további információkat nyújt a csatolási pontok névtereiről.
- Az EROFS (Extendable Read-Only File System) fájlrendszer, amelyet csak olvasható partíciókon való használatra terveztek, mostantól támogatja a fájlrendszerek közvetlenül a fájlként mentett lemezképekből történő csatlakoztatását.
- Az XFS_IOC_START_COMMIT és XFS_IOC_COMMIT_RANGE új ioctl-parancsok hozzáadva az XFS-hez a két fájl közötti tartalomcseréhez.
- Az NFS támogatást adott a "LOCALIO" protokollhoz, amely lehetővé teszi annak meghatározását, hogy a kliens és a szerveren NFS ugyanazon a gépen a megfelelő optimalizálások engedélyezéséhez.
- A Btrfs fájlrendszerben teljesítményoptimalizálást javasoltak, a kódot újrafaktorálták, csökkentették az olvasási műveletek alatti zárolási területet, folytatódott a munka a memórialapok oldalfóliók használatára való átalakításán, valamint az automatikus memóriafelszabadítás. a btrfs_path struktúrához implementálva.
- Az Ext4 fájlrendszerben a blokkkiosztással, a kiterjedéskezeléssel, a gyors véglegesítéssel és a naplózással kapcsolatos hibákat javították.
- Virtualizáció és biztonság
- Bekerült az IPE (Integrity Policy Enforcement) LSM modul, amelyet a Microsoft fejlesztett ki a meglévő kötelező beléptetőrendszer bővítésére. A modul lehetővé teszi egy általános integritási szabályzat meghatározását a teljes rendszerre vonatkozóan, jelezve, hogy mely műveletek engedélyezettek, és hogyan kell ellenőrizni az összetevők hitelességét. Például az IPE használatával megadhatja, hogy mely végrehajtható fájlok futhatnak, figyelembe véve azok megfelelését a referenciaverziónak a dm-verity rendszer által biztosított kriptográfiai kivonatokkal.
- A kernel fordítási szakaszában lehetőség van a CPU különböző Spectre osztályú sérülékenységei elleni védelmi módszerek külön engedélyezésére. A Kconfig új paramétereket kínál: MITIGATE_MDS (védelem a Microarchitectural Data Sampling sebezhetősége ellen), MITIGATE_TAA (védelem a TSX Asynchronous Abort sebezhetősége ellen), MITIGATE_MMIO_STALE_DATA (védelem az MMIO Stale Data sebezhetősége ellen), L1 Terminteal (FMITIG_Sebezhetőség), IGATE_RETBLEED ( elleni védelem Retbleed sebezhetőségek), MITIGATE_SPECTRE_V1, MITIGATE_SPECTRE_V1 (védelem a Spectre sebezhetőségei ellen), MITIGATE_SRBDS (védelem a speciális regiszterpuffer adatmintavételezési sebezhetősége ellen), MITIGATE_SSB (védelem a spekulatív tároló megkerülése ellen).
- Hozzáadtuk a proc_mem.force_override parancssori paramétert és a Kconfig összeállítási beállításait (PROC_MEM_FORCE_ALWAYS, PROC_MEM_FORCE_PTRACE és PROC_MEM_FORCE_NEVER), hogy megakadályozzuk a /proc/pid/mem-en keresztüli memóriamódosításokat.
- LSM alrendszer (Linux biztonsági modul) statikus hívások használatára váltott, ami javította a biztonságot és a teljesítményt.
- Lehetőség szabványos magok használatára az ARM64 architektúrához vendégkörnyezetekben, amelyek a következőn futnak: Android-módosított KVM hipervizorral (védett KVM) rendelkező rendszerek.
- A Landlock LSM modul, amely lehetővé teszi egy folyamatcsoport és a külső környezet kölcsönhatásának korlátozását, megvalósítja az „IPC hatókör” koncepciót, hogy szelektíven korlátozza a sandbox környezetekkel való interakciót Unix aljzatok és jelek használatával. Például letilthatja a Unix socketeket használó kapcsolatokat a sandbox környezetből olyan folyamatokhoz, amelyekre nincs alkalmazva az elkülönítés, de engedélyezi a kapcsolatokat az azonos hatókörű folyamatokhoz.
- A KVM hypervisorban egy jelző került hozzáadásra a vendégrendszerek CPUID-jához, amely jelzi az AVX10.1 bővítmények támogatását.
- Hálózati alrendszer
- Bekerült az Eszközmemória TCP mechanizmus, amely lehetővé teszi a hálózati socketek használatával a perifériás eszközök memóriájának tartalmának közvetlen elküldését a hálózaton keresztül (nulla másolási mód), és a hálózati csomagok tartalmának közvetlen elhelyezését a készülék memóriaterületén. címzett oldalon. A csomagokban továbbított adatok a hálózati kártyáról egy periféria memóriájába, vagy a készülék memóriájából a CPU megkerülésével közvetlenül a hálózati kártyára kerülnek átvitelre, és a csomagfejlécek rendes kernelpufferekbe kerülnek.
- Számos Ethernet és vezeték nélküli meghajtó képessége bővült. Például az Intel iwlwifi meghajtó támogatja az RLC/SMPS műveletek áthelyezését a firmware oldalon, a RealTek rtw89 illesztőprogram növelte a teljesítményt és hozzáadta az RTL8852BT/8852BE-VT (WiFi 6) chipek támogatását, a microchip Ethernet illesztőprogram pedig az IEEE 802.3 támogatását adta. bw (100BASE) specifikációk -T1) és IEEE 802.3bp, továbbfejlesztett virtuális Ethernet megvalósítások Microsoft vNIC és IBM veth. Új illesztőprogramok hozzáadva a Realtek RTL9054, RTL9068, RTL9072, RTL9075, RTL9068, RTL9071 és Microchip LAN8650/1 10BASE-T1S MAC-PHY Ethernet chipekhez.
- Az MPTCP-ben (MultiPath TCP), a TCP-csomagok egyidejű, több útvonalon, különböző hálózati interfészeken keresztül történő kézbesítésének megszervezésére szolgáló TCP-protokoll kiterjesztésében az útválasztásnál használt súlyok mérete 8-ról 16 bitre nő. Az elveszett (fekete lyuk) forgalom észlelése és a rendszerekkel való kapcsolatteremtési kísérletek bizonyos időre történő felfüggesztése, ami forgalomkiesést eredményez.
- Az IPv6 esetében a PIO-ban (Prefix Information Option) a „p” jelző támogatása, amelyet az RA-hirdetésekben (IPv6 Router Advertisements) használnak a kliens telepítési modelljének DHCPv6-PD-n (DHCPv6 Prefix Delegation, RFC9663) keresztüli kiválasztásához a hozzárendelés helyett. egyedi címek előtagok alapján a SLAAC (Stateles Address Autoconfiguration) segítségével. Az IPv6 Az IOAM6 támogatja az új tunsrc beágyazási módot, amely jobb teljesítményt tesz lehetővé.
- Jobb teljesítmény az IPsec vezérlőcsomagok feldolgozásához.
- A nagy nftables szabálykészletek kiürítésének jobb teljesítménye. Az nfnetlink_queue továbbfejlesztette az SCTP protokoll támogatását.
- Az ethtool API több hálózati kártya egy hálózati interfészhez való kötését is támogatja.
- Оборудование
- Az AMDGPU-illesztőprogramban folytatódik a munka az AMD RDNA4 („GFX12”) GPU-k támogatásának megvalósításán. Hozzáadtuk az egyes feladatsorok visszaállításának lehetőségét a teljes GPU visszaállítása nélkül.
- Folytatódott a munka az Intel Xe architektúrán alapuló GPU-k Xe drm-illesztőprogramján (Direct Rendering Manager), amelyet az Intel Arc család videokártyáiban és integrált grafikában használnak, kezdve a Tiger Lake processzorokkal. Az új verzió támogatja a Battlemage és Lunar Lake mikroarchitektúrán alapuló GPU-kat. Bevezetésre került a CCS (Color Control Surface) Xe2 módosítók támogatása az integrált és különálló GPU-k paramétereinek szabályozására.
- Az i915 illesztőprogram lehetőséget ad a ventilátor sebességére vonatkozó információk kiadására a HWMON vagy a sysfs interfészen keresztül (a „fan1_input” attribútum). Az "i915.modeset" paraméter elavult; az "i915.nomodeset" paramétert kell használni az "i0.modeset=915" helyett.
- Az A615, A306 és A621 GPU-k támogatása hozzáadva az msm DRM-illesztőprogramhoz (Qualcomm Adreno GPU).
- A Nouveau driver belső szerkezeteit átdolgozták és megtisztították.
- Az Intel processzorokkal rendelkező rendszerek energiafogyasztási paramétereit (P-state) vezérlő intel_pstate illesztőprogram kiegészítette az aszimmetrikus (különböző tulajdonságú) CPU-kkal rendelkező hibrid rendszereket, valamint a Granite Rapids és Sierra Forest alapú processzorok energiagazdálkodásának támogatását. mikroarchitektúrák. A Xeon Granite Rapids CPU támogatása hozzáadva az intel_idle illesztőprogramhoz. Az intel_rapl illesztőprogram felismeri az AMD 1Ah család folyamatait és az Intel ArrowLake-U processzorokat.
- Továbbra is bekerültek a változtatások az ARM SoC Snapdragon X Elite támogatására, amely a Qualcomm saját 12 magos Oryon CPU-ját és Qualcomm Adreno GPU-ját használja. A chipet laptopokban és PC-ken való használatra tervezték, és számos teljesítménytesztben megelőzi az Apple M3 és Intel Core Ultra 155H chipeket.
- Hozzáadott támogatás az ARM kártyákhoz, SoC-okhoz és eszközökhöz: Broadcom bcm2712 (Raspberry Pi 5), Renesas R9A09G057 (RZ/V2H), Qualcomm Snapdragon 414 (MSM8929), Lenovo ThinkPad T14s Gen 6, Lenovo A6000/AXX Laptop 6010, Surface A7/A35SP30 , Firefly Core-PX4-JD68, Lunzn Fastrhino R433S, Aspeed Riser, AGX Orin, Rockchip Qnap-TS2, Huashan Pi, Meta Catalina, BeagleY-AI, NanoPi R920S Plus, ExynosAuto v2002, SOPHGO SGl5332, LGQ4, SGl815, LG5 Cool Pi CM35 GenBook, Anbernic RG11XXSP, GameForce Ace, IBM P93, Kontron i.MX6 OSM-S, NanoPC-TXNUMX
- Támogatás hozzáadva: Anbernic RG28XX, On Tat Industrial Company KD50G21-40NT-A1, Innolux G070ACE-LH3, Melfas lmfbx101117480, Densitron DMT028VGHMCMI-1D, Microchip A40T08A, AXTOU B116s panel. B02.3XAN116, AOU B06.1XAT116, BOE TV04.1WUM-LL101, BOE NV2WUM-N140, BOE NV41WUM-N133, BOE NV63WHM-A116D, BOE NE4WHM-N-140 , CSW MNB6LS116-2, Csillagos er116.
- Az audio alrendszer kiegészítette az RME Digiface USB, AMD ACP 7.1, Mediatek MT6367, MT8365, Realtek RTL1320, C-Media CM9825 chipek és kodekek támogatását. Az Intel ASoC régi hang-illesztőprogramjait elavulttá nyilvánították, és helyettük AVS-illesztőprogramokat javasolt használni. Számos fejlesztés történt a SoundWire illesztőprogramon.
Forrás: opennet.ru
