การเปิดตัวเคอร์เนล Linux 6.7

หลังจากสองเดือนของการพัฒนา Linus Torvalds ได้เปิดตัว Linux kernel 6.7 การเปลี่ยนแปลงที่โดดเด่นที่สุด: การรวมระบบไฟล์ Bcachefs, การหยุดรองรับสถาปัตยกรรม Itanium, ความสามารถของ Nouvea ในการทำงานกับเฟิร์มแวร์ GSP-R, รองรับการเข้ารหัส TLS ใน NVMe-TCP, ความสามารถในการใช้ข้อยกเว้นใน BPF รองรับ futex ใน io_uring การเพิ่มประสิทธิภาพตัวกำหนดเวลา fq (Fair Queuing) การสนับสนุนส่วนขยาย TCP-AO (ตัวเลือกการตรวจสอบ TCP) และความสามารถในการ จำกัด การเชื่อมต่อเครือข่ายในกลไกความปลอดภัยของ Landlock เพิ่มการควบคุมการเข้าถึงไปยังเนมสเปซผู้ใช้และ io_uring ผ่านทาง AppArmor

เวอร์ชันใหม่ประกอบด้วยการแก้ไข 18405 รายการจากนักพัฒนา 2066 ราย ขนาดแพตช์คือ 72 MB (การเปลี่ยนแปลงส่งผลกระทบต่อไฟล์ 13467 ไฟล์ เพิ่มโค้ด 906147 บรรทัด และลบ 341048 บรรทัด) รุ่นล่าสุดมีการแก้ไข 15291 รายการจากนักพัฒนา 2058 ราย ขนาดแพตช์คือ 39 MB ประมาณ 45% ของการเปลี่ยนแปลงทั้งหมดที่นำมาใช้ใน 6.7 เกี่ยวข้องกับไดรเวอร์อุปกรณ์ ประมาณ 14% ของการเปลี่ยนแปลงเกี่ยวข้องกับการอัปเดตโค้ดเฉพาะสำหรับสถาปัตยกรรมฮาร์ดแวร์ 13% เกี่ยวข้องกับสแต็กเครือข่าย 5% เกี่ยวข้องกับระบบไฟล์ และ 3% เกี่ยวข้องกับระบบย่อยเคอร์เนลภายใน

นวัตกรรมที่สำคัญในเคอร์เนล 6.7:

  • ระบบย่อยของดิสก์ I/O และระบบไฟล์
    • เคอร์เนลใช้โค้ดระบบไฟล์ Bcachefs ซึ่งพยายามเพื่อให้ได้ประสิทธิภาพ ความน่าเชื่อถือ และความสามารถในการปรับขนาดของ XFS รวมกับองค์ประกอบของฟังก์ชันการทำงานขั้นสูงที่พบใน Btrfs และ ZFS ตัวอย่างเช่น Bcachefs รองรับคุณสมบัติต่างๆ เช่น การรวมอุปกรณ์หลายตัวไว้ในพาร์ติชัน เค้าโครงไดรฟ์หลายเลเยอร์ (ชั้นล่างสุดที่มีข้อมูลที่ใช้บ่อยตาม SSD ที่รวดเร็ว และชั้นบนสุดที่มีข้อมูลที่ใช้งานน้อยจากฮาร์ดไดรฟ์) การจำลองแบบ (RAID 1/10), การแคช, การบีบอัดข้อมูลแบบโปร่งใส (โหมด LZ4, gzip และ ZSTD), ส่วนสถานะ (สแนปชอต), การตรวจสอบความสมบูรณ์โดยใช้เช็คซัม, ความสามารถในการจัดเก็บรหัสแก้ไขข้อผิดพลาด Reed-Solomon (RAID 5/6), การจัดเก็บข้อมูลใน รูปแบบการเข้ารหัส (ใช้ ChaCha20 และ Poly1305) ในแง่ของประสิทธิภาพ Bcachefs นำหน้า Btrfs และระบบไฟล์อื่นๆ ที่ใช้กลไก Copy-on-Write และแสดงให้เห็นความเร็วในการทำงานใกล้เคียงกับ Ext4 และ XFS
    • ระบบไฟล์ Btrfs แนะนำโหมดโควต้าแบบง่ายที่ช่วยให้คุณได้รับประสิทธิภาพที่สูงขึ้นโดยการติดตามขอบเขตเฉพาะในพาร์ติชั่นย่อยที่สร้างขึ้นซึ่งช่วยลดความยุ่งยากในการคำนวณและปรับปรุงประสิทธิภาพอย่างมาก แต่ไม่อนุญาตให้คุณคำนึงถึงขอบเขตของบัญชีที่แชร์ในหลาย ๆ พาร์ติชั่นย่อย
    • Btrfs ได้เพิ่มโครงสร้างข้อมูล "stripe tree" ใหม่ ซึ่งเหมาะสำหรับการแมปขอบเขตลอจิคัลในสถานการณ์ที่การแมปทางกายภาพไม่ตรงกันในอุปกรณ์ต่างๆ ปัจจุบันโครงสร้างนี้ใช้ในการใช้งาน RAID0 และ RAID1 สำหรับอุปกรณ์บล็อกแบบแบ่งโซน ในอนาคต พวกเขาวางแผนที่จะใช้โครงสร้างนี้ใน RAID ระดับที่สูงกว่า ซึ่งจะแก้ไขปัญหาหลายประการที่มีอยู่ในการใช้งานปัจจุบัน
    • ระบบไฟล์ Ceph ใช้การสนับสนุนการจับคู่ ID ผู้ใช้ของระบบไฟล์ที่เมาท์ ซึ่งใช้เพื่อจับคู่ไฟล์ของผู้ใช้เฉพาะบนพาร์ติชันต่างประเทศที่เมาท์กับผู้ใช้รายอื่นในระบบปัจจุบัน
    • เพิ่มความสามารถในการระบุ uid และ gid เมื่อเมานต์ไปยัง efivarfs เพื่ออนุญาตให้กระบวนการที่ไม่ใช่รูทเปลี่ยนตัวแปร UEFI
    • เพิ่มการเรียก ioctl ไปยัง exFAT เพื่ออ่านและเปลี่ยนแอตทริบิวต์ FS เพิ่มการจัดการไดเร็กทอรีขนาดศูนย์
    • F2FS ใช้ความสามารถในการใช้บล็อก 16K
    • กลไกการติดตั้งอัตโนมัติ autofs ได้รับการสลับไปใช้ API การติดตั้งพาร์ติชันใหม่
    • OverlayFS เสนอตัวเลือกการเมานต์ "lowerdir+" และ "datadir+" เพิ่มการรองรับสำหรับการติดตั้ง OverlayFS แบบซ้อนด้วย xattrs
    • XFS ได้ปรับโหลด CPU ให้เหมาะสมในโค้ดการจัดสรรบล็อกแบบเรียลไทม์ มีความสามารถในการดำเนินการอ่านและการดำเนินการ FICLONE พร้อมกัน
    • รหัส EXT2 ได้รับการแปลงเพื่อใช้โฟลิโอหน้า
  • บริการหน่วยความจำและระบบ
    • การสนับสนุนสถาปัตยกรรม ia64 ที่ใช้ในโปรเซสเซอร์ Intel Itanium ซึ่งถูกยกเลิกโดยสิ้นเชิงในปี 2021 ได้ถูกยกเลิกแล้ว Intel เปิดตัวโปรเซสเซอร์ Itanium ในปี 2001 แต่สถาปัตยกรรม ia64 ไม่สามารถแข่งขันกับ AMD64 ได้ สาเหตุหลักมาจากประสิทธิภาพที่สูงขึ้นของ AMD64 และการเปลี่ยนจากโปรเซสเซอร์ 32 บิต x86 ที่ราบรื่นยิ่งขึ้น เป็นผลให้ความสนใจของ Intel เปลี่ยนมาสนับสนุนโปรเซสเซอร์ x86-64 และล็อตของ Itanium ยังคงเป็นเซิร์ฟเวอร์ HP Integrity ซึ่งคำสั่งซื้อดังกล่าวหยุดลงเมื่อสามปีที่แล้ว รหัสสำหรับการรองรับ ia64 ถูกลบออกจากเคอร์เนลสาเหตุหลักมาจากการขาดการสนับสนุนสำหรับแพลตฟอร์มนี้ในระยะยาว ในขณะที่ Linus Torvalds แสดงความเต็มใจที่จะคืนการรองรับ ia64 ให้กับเคอร์เนล แต่เฉพาะในกรณีที่มีผู้ดูแลที่สามารถแสดงให้เห็นถึงคุณภาพสูง รองรับแพลตฟอร์มนี้นอกเคอร์เนลหลักเป็นเวลาอย่างน้อยหนึ่งปี
    • เพิ่มพารามิเตอร์คำสั่งบรรทัดเคอร์เนล "ia32_emulation" ซึ่งช่วยให้คุณสามารถเปิดใช้งานหรือปิดใช้งานการสนับสนุนสำหรับการจำลองโหมด 32 บิตในเคอร์เนลที่สร้างขึ้นสำหรับสถาปัตยกรรม x86-64 ที่ขั้นตอนการบูต ในทางปฏิบัติ ตัวเลือกใหม่ช่วยให้คุณสร้างเคอร์เนลที่รองรับความเข้ากันได้กับแอปพลิเคชัน 32 บิต แต่ปิดใช้งานโหมดนี้ตามค่าเริ่มต้นเพื่อลดเวกเตอร์การโจมตีบนเคอร์เนล เนื่องจาก API ความเข้ากันได้ได้รับการทดสอบน้อยกว่าเคอร์เนลหลัก อินเทอร์เฟซ
    • การโยกย้ายการเปลี่ยนแปลงอย่างต่อเนื่องจากสาขา Rust-for-Linux ที่เกี่ยวข้องกับการใช้ภาษา Rust เป็นภาษาที่สองสำหรับการพัฒนาไดรเวอร์และโมดูลเคอร์เนล (การสนับสนุน Rust จะไม่ทำงานตามค่าเริ่มต้น และไม่นำไปสู่การรวม Rust ไว้ใน การพึ่งพาแอสเซมบลีที่จำเป็นสำหรับเคอร์เนล) เวอร์ชันใหม่ทำให้เกิดการเปลี่ยนไปใช้รุ่น Rust 1.73 และมีชุดการเชื่อมโยงสำหรับการทำงานกับคิวงาน
    • คุณสามารถใช้กลไก binfmt_misc เพื่อเพิ่มการรองรับรูปแบบไฟล์ปฏิบัติการใหม่ (เช่น เพื่อรันแอปพลิเคชัน Java หรือ Python ที่คอมไพล์แล้ว) ภายในเนมสเปซที่ไม่มีสิทธิ์แยกกัน
    • cpuset ตัวควบคุม cgroup ซึ่งช่วยให้คุณควบคุมการใช้แกน CPU เมื่อดำเนินการงาน จัดให้มีการแบ่งพาร์ติชันภายในและการแบ่งพาร์ติชันระยะไกล ซึ่งแตกต่างจากว่า cgroup หลักคือส่วนรูทที่ถูกต้องหรือไม่ การตั้งค่าใหม่ “cpuset.cpus.exclusion” และ “cpuset.cpus.excluisve.efficient” ได้ถูกเพิ่มไปยัง cpuset สำหรับ CPU Binding แบบเอกสิทธิ์เฉพาะบุคคลด้วย
    • ระบบย่อย BPF ใช้การสนับสนุนข้อยกเว้น ซึ่งถูกประมวลผลเป็นทางออกฉุกเฉินจากโปรแกรม BPF ที่มีความสามารถในการคลายสแต็กเฟรมได้อย่างปลอดภัย นอกจากนี้ โปรแกรม BPF ยังอนุญาตให้ใช้ตัวชี้ kptr ในการเชื่อมต่อกับ CPU
    • มีการเพิ่มการสนับสนุนสำหรับการดำเนินการกับ futex ในระบบย่อย io_uring และการดำเนินการใหม่ได้ถูกนำไปใช้: IORING_OP_WAITID (waitid เวอร์ชันอะซิงโครนัส), SOCKET_URING_OP_GETSOCKOPT (ตัวเลือก getsockoptand), SOCKET_URING_OP_SETSOCKOPT (ตัวเลือก setsockopt) และ IORING_OP_READ_MULTISHOT (การดำเนินการอ่านหลายรายการที่ไม่หยุดในขณะที่ มีข้อมูลหรือบัฟเฟอร์ไม่เต็ม)
    • เพิ่มการใช้งานคิว FIFO ที่เชื่อมต่อเดี่ยวแบบน้ำหนักเบาซึ่งต้องใช้ Spinlock สำหรับการแยกคิวในบริบทของกระบวนการเท่านั้น และจ่ายด้วย Spinlock เพื่อเพิ่มอะตอมมิกให้กับคิวในทุกบริบท
    • เพิ่มบัฟเฟอร์วงแหวน "objpool" พร้อมการใช้งานที่ปรับขนาดได้ของคิวประสิทธิภาพสูงสำหรับการจัดสรรและส่งคืนวัตถุ
    • ส่วนเริ่มต้นของการเปลี่ยนแปลงได้รับการเพิ่มเพื่อใช้ futex2 API ใหม่ ซึ่งมีประสิทธิภาพที่ดีกว่าบนระบบ NUMA รองรับขนาดอื่นที่ไม่ใช่ 32 บิต และสามารถใช้แทนการเรียกระบบ futex() แบบมัลติเพล็กซ์
    • สำหรับสถาปัตยกรรม ARM32 และ S390x มีการเพิ่มการรองรับชุดคำสั่ง BPF ชุดปัจจุบัน (cpuv4)
    • สำหรับสถาปัตยกรรม RISC-V คุณสามารถใช้โหมดตรวจสอบ Shadow-Call Stack ที่มีอยู่ใน Clang 17 ซึ่งได้รับการออกแบบมาเพื่อป้องกันการเขียนทับที่อยู่ผู้ส่งจากฟังก์ชันในกรณีที่บัฟเฟอร์ล้นบนสแต็ก สาระสำคัญของการป้องกันคือการบันทึกที่อยู่ผู้ส่งไว้ในสแต็ก "เงา" แยกต่างหากหลังจากถ่ายโอนการควบคุมไปยังฟังก์ชันและรับที่อยู่นี้ก่อนออกจากฟังก์ชัน
    • มีการเพิ่มโหมดการสแกนหน้าหน่วยความจำอัจฉริยะใหม่ให้กับกลไกสำหรับการรวมหน้าหน่วยความจำที่เหมือนกัน (KSM: Kernel Samepage Merging) ซึ่งจะติดตามหน้าที่สแกนไม่สำเร็จ และลดความเข้มของการสแกนซ้ำ หากต้องการเปิดใช้งานโหมดใหม่ การตั้งค่า /sys/kernel/mm/ksm/smart_scan ได้ถูกเพิ่มเข้าไปแล้ว
    • เพิ่มคำสั่ง ioctl ใหม่ PAGEMAP_SCAN ซึ่งเมื่อใช้ร่วมกับ userfaultfd() ช่วยให้คุณสามารถกำหนดข้อเท็จจริงของการเขียนไปยังช่วงหน่วยความจำเฉพาะได้ ตัวอย่างเช่น คุณสมบัติใหม่นี้สามารถนำไปใช้ในระบบเพื่อบันทึกและกู้คืนสถานะของกระบวนการ CRIU หรือในระบบป้องกันการโกงเกม
    • ในระบบแอสเซมบลี หากมีคอมไพลเลอร์ Clang แอสเซมบลีของตัวอย่างของการใช้ระบบย่อย perf ที่เขียนเป็นโปรแกรม BPF จะถูกเปิดใช้งานตามค่าเริ่มต้น
    • เลเยอร์ videobuf แบบเก่าซึ่งใช้ในการจัดการ framebuffer ในระบบย่อยสื่อและถูกแทนที่ด้วยการใช้งาน videobuf10 ใหม่เมื่อกว่า 2 ปีที่แล้วได้ถูกลบออกแล้ว
  • การจำลองเสมือนและความปลอดภัย
    • เพิ่มความสามารถในการเข้ารหัสข้อมูลในบล็อกที่มีขนาดเล็กกว่าขนาดบล็อกในระบบไฟล์ลงในระบบย่อย fscrypt อาจจำเป็นต้องเปิดใช้งานกลไกการเข้ารหัสฮาร์ดแวร์ที่รองรับเฉพาะบล็อกขนาดเล็ก (เช่น ตัวควบคุม UFS ที่รองรับขนาดบล็อก 4096 เท่านั้น สามารถใช้ได้กับระบบไฟล์ที่มีขนาดบล็อก 16K)
    • ระบบย่อย “iommufd” ซึ่งช่วยให้คุณจัดการตารางเพจหน่วยความจำ IOMMU (I/O Memory-Management Unit) ผ่านตัวอธิบายไฟล์จากพื้นที่ผู้ใช้ ได้เพิ่มการติดตามข้อมูลที่ยังไม่ได้ถูกล้างออกจากแคช (สกปรก) สำหรับ DMA การดำเนินการซึ่งจำเป็นสำหรับการกำหนดหน่วยความจำด้วยข้อมูลที่ไม่ถูกล้างระหว่างการย้ายกระบวนการ
    • เพิ่มการสนับสนุนการกำหนดกฎการควบคุมการเข้าถึงสำหรับซ็อกเก็ต TCP ลงในกลไก Landlock ซึ่งช่วยให้คุณสามารถจำกัดการโต้ตอบของกลุ่มกระบวนการกับสภาพแวดล้อมภายนอกได้ ตัวอย่างเช่น คุณสามารถสร้างกฎที่อนุญาตเฉพาะการเข้าถึงพอร์ตเครือข่าย 443 เพื่อสร้างการเชื่อมต่อ HTTPS
    • ระบบย่อย AppArmor ได้เพิ่มความสามารถในการควบคุมการเข้าถึงกลไก io_uring และสร้างเนมสเปซของผู้ใช้ ซึ่งช่วยให้คุณสามารถเลือกอนุญาตให้เข้าถึงความสามารถเหล่านี้เฉพาะบางกระบวนการเท่านั้น
    • เพิ่ม API การรับรองเครื่องเสมือนเพื่อตรวจสอบความสมบูรณ์ของกระบวนการบูตเครื่องเสมือน
    • ระบบ LoongArch รองรับการจำลองเสมือนโดยใช้ไฮเปอร์ไวเซอร์ KVM
    • เมื่อใช้ไฮเปอร์ไวเซอร์ KVM บนระบบ RISC-V การสนับสนุนส่วนขยาย Smstateen ได้ปรากฏขึ้น ซึ่งจะบล็อกเครื่องเสมือนไม่ให้เข้าถึงการลงทะเบียน CPU ที่ไฮเปอร์ไวเซอร์ไม่รองรับอย่างชัดเจน เพิ่มการรองรับสำหรับการใช้ส่วนขยาย Zicond ในระบบเกสต์ด้วย ซึ่งอนุญาตให้ใช้การดำเนินการจำนวนเต็มตามเงื่อนไขบางอย่างได้
    • ในระบบเกสต์ที่ใช้ x86 ที่ทำงานภายใต้ KVM อนุญาตให้มี CPU เสมือนได้สูงสุด 4096 ตัว
  • ระบบย่อยของเครือข่าย
    • ไดรเวอร์ NVMe-TCP (NVMe บน TCP) ซึ่งช่วยให้คุณเข้าถึงไดรฟ์ NVMe ผ่านเครือข่าย (NVM Express บน Fabrics) โดยใช้โปรโตคอล TCP ได้เพิ่มการรองรับสำหรับการเข้ารหัสช่องทางการส่งข้อมูลโดยใช้ TLS (โดยใช้ KTLS และกระบวนการเบื้องหลัง ในพื้นที่ผู้ใช้ tlshd สำหรับการเจรจาการเชื่อมต่อ)
    • ประสิทธิภาพของตัวกำหนดเวลาแพ็กเก็ต fq (Fair Queuing) ได้รับการปรับให้เหมาะสม ซึ่งทำให้สามารถเพิ่มปริมาณงานได้ 5% ภายใต้โหลดจำนวนมากในการทดสอบ tcp_rr (คำขอ/ตอบกลับ TCP) และเพิ่มขึ้น 13% ด้วยโฟลว์แพ็กเก็ต UDP แบบไม่จำกัด
    • TCP เพิ่มความสามารถการประทับเวลาความแม่นยำระดับไมโครวินาที (TCP TS) (RFC 7323) ซึ่งเป็นตัวเลือก ซึ่งช่วยให้สามารถประมาณค่าเวลาแฝงที่แม่นยำยิ่งขึ้นและโมดูลควบคุมความแออัดขั้นสูงยิ่งขึ้น หากต้องการเปิดใช้งานคุณสามารถใช้คำสั่ง "เส้นทาง ip เพิ่ม 10/8 ... คุณสมบัติ tcp_usec_ts"
    • TCP stack ได้เพิ่มการรองรับสำหรับส่วนขยาย TCP-AO (ตัวเลือกการตรวจสอบสิทธิ์ TCP, RFC 5925) ซึ่งทำให้สามารถตรวจสอบส่วนหัว TCP โดยใช้รหัส MAC (รหัสการตรวจสอบข้อความ) โดยใช้อัลกอริธึมที่ทันสมัยกว่า HMAC-SHA1 และ CMAC-AES- 128 แทนตัวเลือก TCP-MD5 ที่ใช้งานได้ก่อนหน้านี้โดยอิงตามอัลกอริธึม MD5 ดั้งเดิม
    • มีการเพิ่มอุปกรณ์เครือข่ายเสมือนประเภทใหม่ "netkit" ซึ่งเป็นตรรกะการถ่ายโอนข้อมูลซึ่งตั้งค่าโดยใช้โปรแกรม BPF
    • KSMBD ซึ่งเป็นการใช้งานระดับเคอร์เนลของเซิร์ฟเวอร์ SMB ได้เพิ่มการรองรับสำหรับการแก้ไขชื่อไฟล์ที่มีคู่อักขระตัวแทนแทน
    • NFS ได้ปรับปรุงการใช้งานเธรดด้วยบริการ RPC เพิ่มการสนับสนุนสำหรับการมอบหมายการเขียน (สำหรับ NFSv4.1+) NFSD ได้เพิ่มการสนับสนุนสำหรับตัวจัดการ rpc_status netlink ปรับปรุงการสนับสนุนสำหรับไคลเอ็นต์ NFSv4.x เมื่อส่งออกไปยัง knfsd อีกครั้ง
  • Оборудование
    • มีการเพิ่มการรองรับเบื้องต้นสำหรับเฟิร์มแวร์ GSP-RM ให้กับโมดูลเคอร์เนล Nouveau ซึ่งใช้ใน NVIDIA RTX 20+ GPU เพื่อย้ายการเริ่มต้นและการดำเนินการควบคุม GPU ไปที่ด้านข้างของไมโครคอนโทรลเลอร์ GSP (ตัวประมวลผลระบบ GPU) ที่แยกต่างหาก การรองรับ GSP-RM ช่วยให้ไดรเวอร์ Nouveau ทำงานผ่านการเรียกเฟิร์มแวร์ แทนที่จะตั้งโปรแกรมการโต้ตอบกับฮาร์ดแวร์โดยตรง ทำให้เพิ่มการรองรับ NVIDIA GPU ใหม่ได้ง่ายขึ้นมากโดยใช้การเรียกที่สร้างไว้ล่วงหน้าสำหรับการเริ่มต้นและการจัดการพลังงาน
    • ไดรเวอร์ AMDGPU รองรับ GC 11.5, NBIO 7.11, SMU 14, SMU 13.0 OD, DCN 3.5, VPE 6.1 และ DML2 ปรับปรุงการรองรับการโหลดที่ราบรื่น (ไม่กะพริบเมื่อเปลี่ยนโหมดวิดีโอ)
    • ไดรเวอร์ i915 เพิ่มการรองรับชิป Intel Meteor Lake และเพิ่มการใช้งานเบื้องต้นของ Intel LunarLake (Xe 2)
    • เพิ่มการรองรับช่องส่งสัญญาณแบบอสมมาตรที่เพิ่มในข้อกำหนด USB4 v2 (120/40G)
    • เพิ่มการรองรับ ARM SoC: Qualcomm Snapdragon 720G (ใช้ในสมาร์ทโฟน Xiaomi), AMD Pensando Elba, Renesas, R8A779F4 (R-Car S4-8), USRobotics USR8200 (ใช้ในเราเตอร์และ NAS)
    • เพิ่มการรองรับสมาร์ทโฟน Fairphone 5 และบอร์ด ARM Orange Pi 5, QuartzPro64, Turing RK1, Variscite MX6, BigTreeTech CB1, Freescale LX2162, Google Spherion, Google Hayato, Genio 1200 EVK, RK3566 Powkiddy RGB30
    • เพิ่มการรองรับบอร์ด RISC-V Milk-V Pioneer และ Milk-V Duo
    • เพิ่มการรองรับอินเทอร์เฟซเสียงของแล็ปท็อป Huawei ที่มาพร้อมกับซีพียู AMD เพิ่มการรองรับลำโพงเพิ่มเติมที่ติดตั้งบนแล็ปท็อป Dell Oasis 13/14/16 เพิ่มการรองรับลำโพงในตัว ASUS K6500ZC เพิ่มการรองรับตัวบ่งชี้การปิดเสียงบนแล็ปท็อป HP 255 G8 และ G10 เพิ่มการรองรับไดรเวอร์เสียง acp6.3 เพิ่มการรองรับอินเทอร์เฟซการบันทึกระดับมืออาชีพ Focusrite Clarett+ 2Pre และ 4Pre

ในเวลาเดียวกันมูลนิธิซอฟต์แวร์เสรีลาตินอเมริกาได้ก่อตั้งเวอร์ชันของเคอร์เนลฟรี 6.7 - Linux-libre 6.7-gnu ซึ่งล้างองค์ประกอบของเฟิร์มแวร์และไดรเวอร์ที่มีส่วนประกอบหรือส่วนโค้ดที่ไม่ฟรีซึ่งมีขอบเขตจำกัด โดยผู้ผลิต ในรุ่น 6.7 รหัสการทำความสะอาด Blob ได้รับการอัพเดตในไดรเวอร์และระบบย่อยต่างๆ เช่น ในไดรเวอร์ amdgpu, nouveau, adreno, mwifiex, mt7988, ath11k, avs และ btqca รหัสสำหรับทำความสะอาดไดรเวอร์ localtalk และ rtl8192u ถูกลบออกเนื่องจากการแยกออกจากเคอร์เนล ลบส่วนประกอบที่ไม่จำเป็นออกเพื่อทำความสะอาดไดรเวอร์ xhci-pci, rtl8xxxu และ rtw8822b ซึ่งเพิ่มไว้ก่อนหน้านี้โดยไม่ได้ตั้งใจ ทำความสะอาดชื่อ blob ในไฟล์ dts สำหรับสถาปัตยกรรม Aarch64 ลบ blobs ในไดรเวอร์ใหม่ mt7925, tps6598x, aw87390 และ aw88399

ที่มา: opennet.ru

เพิ่มความคิดเห็น