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

หลังจากสองเดือนของการพัฒนา Linus Torvalds ได้เปิดตัว Linux kernel 5.11 การเปลี่ยนแปลงที่โดดเด่นที่สุด: การสนับสนุน Intel SGX enclaves, กลไกใหม่สำหรับการสกัดกั้นการเรียกของระบบ, บัสเสริมเสมือน, การห้ามการประกอบโมดูลโดยไม่มี MODULE_LICENSE(), โหมดการกรองที่รวดเร็วสำหรับการเรียกระบบใน seccomp, การยกเลิกการสนับสนุนสำหรับ สถาปัตยกรรม ia64 การถ่ายโอนเทคโนโลยี WiMAX ไปยังสาขา "การจัดเตรียม" ความสามารถในการห่อหุ้ม SCTP ใน UDP

เวอร์ชันใหม่ประกอบด้วยการแก้ไข 15480 รายการจากนักพัฒนา 1991 ราย ขนาดแพตช์คือ 72 MB (การเปลี่ยนแปลงส่งผลกระทบต่อไฟล์ 12090 ไฟล์ มีการเพิ่มโค้ด 868025 บรรทัด และลบ 261456 บรรทัด) ประมาณ 46% ของการเปลี่ยนแปลงทั้งหมดที่นำมาใช้ใน 5.11 เกี่ยวข้องกับไดรเวอร์อุปกรณ์ ประมาณ 16% ของการเปลี่ยนแปลงเกี่ยวข้องกับการอัพเดตโค้ดเฉพาะสำหรับสถาปัตยกรรมฮาร์ดแวร์ 13% เกี่ยวข้องกับสแต็กเครือข่าย 3% เกี่ยวข้องกับระบบไฟล์ และ 4% เกี่ยวข้องกับระบบย่อยเคอร์เนลภายใน

นวัตกรรมหลัก:

  • ระบบย่อยของดิสก์ I/O และระบบไฟล์
    • มีการเพิ่มตัวเลือกการติดตั้งหลายตัวใน Btrfs เพื่อใช้ในการกู้คืนข้อมูลจากระบบไฟล์ที่เสียหาย: “rescue=ignorebadroots” สำหรับการติดตั้ง แม้ว่ารากต้นไม้บางส่วนจะเสียหายก็ตาม (ขอบเขต, uuid, การย้ายข้อมูล, อุปกรณ์, csum, พื้นที่ว่าง) “ Rescue=ignoredatacsums” เพื่อปิดใช้งานการตรวจสอบข้อมูลรวมตรวจสอบ และ "rescue=all" เพื่อเปิดใช้งานโหมด 'ignorebadroots', 'ignoredatacsums' และ 'nologreplay' พร้อมกัน ตัวเลือกการเมานต์ "inode_cache" ซึ่งเลิกใช้แล้วก่อนหน้านี้ได้ถูกยกเลิกแล้ว รหัสนี้ได้รับการจัดเตรียมเพื่อใช้การสนับสนุนสำหรับบล็อกที่มีข้อมูลเมตาและข้อมูลที่เล็กกว่าขนาดหน้า (PAGE_SIZE) รวมถึงการสนับสนุนโหมดการจัดสรรพื้นที่แบบโซน คำขอแบบไม่มีบัฟเฟอร์ (Direct IO) ถูกย้ายไปยังโครงสร้างพื้นฐาน iomap ประสิทธิภาพการดำเนินงานจำนวนหนึ่งได้รับการปรับให้เหมาะสม ในบางกรณี การเร่งความเร็วอาจสูงถึงสิบเปอร์เซ็นต์
    • XFS ใช้แฟล็ก "needsrepair" ซึ่งส่งสัญญาณถึงความจำเป็นในการซ่อมแซม เมื่อตั้งค่าแฟล็กนี้ ระบบไฟล์จะไม่สามารถเมานต์ได้จนกว่าแฟล็กจะถูกรีเซ็ตโดยยูทิลิตี้ xfs_repair
    • Ext4 นำเสนอเฉพาะการแก้ไขข้อบกพร่องและการเพิ่มประสิทธิภาพ รวมถึงการล้างโค้ด
    • อนุญาตให้ส่งออกระบบไฟล์ที่ติดตั้งบน NFS ซ้ำได้ (เช่น พาร์ติชันที่ติดตั้งผ่าน NFS สามารถส่งออกผ่าน NFS ได้แล้ว และใช้เป็นแคชระดับกลาง)
    • การเรียกของระบบ close_range() ซึ่งช่วยให้กระบวนการปิดช่วงของตัวอธิบายไฟล์ที่เปิดทั้งหมดในคราวเดียว ได้เพิ่มตัวเลือก CLOSE_RANGE_CLOEXEC เพื่อปิดตัวอธิบายในโหมด close-on-exec
    • ระบบไฟล์ F2FS เพิ่มการเรียก ioctl() ใหม่เพื่อให้ผู้ใช้ควบคุมพื้นที่ว่าไฟล์ใดจะถูกจัดเก็บในรูปแบบบีบอัด เพิ่มตัวเลือกการเมานต์ "compress_mode=" เพื่อเลือกว่าจะวางตัวจัดการการบีบอัดไว้ที่ฝั่งเคอร์เนลหรือในพื้นที่ผู้ใช้
    • ให้ความสามารถในการเมานต์ Overlayfs โดยกระบวนการที่ไม่มีสิทธิพิเศษโดยใช้เนมสเปซผู้ใช้แยกต่างหาก เพื่อตรวจสอบการปฏิบัติตามการนำโมเดลความปลอดภัยไปใช้ จึงมีการดำเนินการตรวจสอบโค้ดแบบเต็ม Overlayfs ยังเพิ่มความสามารถในการรันโดยใช้สำเนาของอิมเมจระบบไฟล์โดยเลือกที่จะปิดการใช้งานการตรวจสอบ UUID
    • ระบบไฟล์ Ceph ได้เพิ่มการรองรับโปรโตคอล msgr2.1 ซึ่งอนุญาตให้ใช้อัลกอริทึม AES-GCM เมื่อส่งข้อมูลในรูปแบบที่เข้ารหัส
    • โมดูล dm-multipath ใช้ความสามารถในการคำนึงถึง CPU affinity (“IO affinity”) เมื่อเลือกเส้นทางสำหรับคำขอ I/O
  • บริการหน่วยความจำและระบบ
    • มีการเพิ่มกลไกการสกัดกั้นการเรียกของระบบใหม่ตาม prctl() ซึ่งช่วยให้คุณสามารถสร้างข้อยกเว้นจากพื้นที่ผู้ใช้เมื่อเข้าถึงการเรียกของระบบเฉพาะและจำลองการทำงานของการเรียกนั้น ฟังก์ชันนี้จำเป็นใน Wine และ Proton เพื่อจำลองการเรียกของระบบ Windows ซึ่งจำเป็นเพื่อให้แน่ใจว่าเข้ากันได้กับเกมและโปรแกรมที่ดำเนินการเรียกของระบบโดยตรงผ่าน Windows API (เช่น เพื่อป้องกันการใช้งานโดยไม่ได้รับอนุญาต)
    • การเรียกของระบบ userfaultfd() ซึ่งออกแบบมาเพื่อจัดการกับข้อบกพร่องของเพจ (การเข้าถึงเพจหน่วยความจำที่ไม่ได้จัดสรร) ในพื้นที่ผู้ใช้ ขณะนี้มีความสามารถในการปิดใช้งานการจัดการข้อยกเว้นที่เกิดขึ้นในระดับเคอร์เนล เพื่อทำให้ยากขึ้นในการใช้ประโยชน์จากช่องโหว่บางอย่าง
    • ระบบย่อย BPF ได้เพิ่มการสนับสนุนสำหรับหน่วยเก็บข้อมูลภายในงาน ซึ่งจัดให้มีการเชื่อมโยงข้อมูลกับตัวจัดการ BPF เฉพาะ
    • การบัญชีการใช้หน่วยความจำโดยโปรแกรม BPF ได้รับการออกแบบใหม่ทั้งหมด - มีการเสนอตัวควบคุม cgroup แทน memlock rlimit เพื่อจัดการการใช้หน่วยความจำในวัตถุ BPF
    • กลไก BTF (รูปแบบ BPF) ซึ่งให้ข้อมูลการตรวจสอบประเภทในรหัสเทียม BPF ให้การสนับสนุนโมดูลเคอร์เนล
    • เพิ่มการสนับสนุนสำหรับการเรียกระบบปิดเครื่อง (), เปลี่ยนชื่อ () และยกเลิกการเชื่อมโยง () ไปยังอินเทอร์เฟซ I / O แบบอะซิงโครนัส io_uring เมื่อเรียก io_uring_enter() ความสามารถในการระบุการหมดเวลาได้ถูกเพิ่มเข้ามา (คุณสามารถตรวจสอบการสนับสนุนสำหรับอาร์กิวเมนต์เพื่อระบุการหมดเวลาได้โดยใช้แฟล็ก IORING_FEAT_EXT_ARG)
    • สถาปัตยกรรม ia64 ที่ใช้ในโปรเซสเซอร์ Intel Itanium ถูกย้ายไปยังหมวดหมู่ที่ถูกละเลย ซึ่งหมายความว่าการทดสอบได้หยุดลงแล้ว Hewlett Packard Enterprise หยุดรับคำสั่งซื้ออุปกรณ์ Itanium ใหม่และ Intel ก็ทำเช่นนั้นเมื่อปีที่แล้ว
    • การสนับสนุนระบบที่ใช้สถาปัตยกรรม MicroBlaze ที่ไม่มีหน่วยการจัดการหน่วยความจำ (MMU) ได้ถูกยกเลิกแล้ว ระบบดังกล่าวไม่ได้เห็นในชีวิตประจำวันมานานแล้ว
    • สำหรับสถาปัตยกรรม MIPS มีการเพิ่มการรองรับการทดสอบการครอบคลุมโค้ดโดยใช้ยูทิลิตี้ gcov
    • เพิ่มการรองรับบัสเสริมเสมือนสำหรับการเชื่อมต่อกับอุปกรณ์มัลติฟังก์ชั่นที่รวมฟังก์ชันการทำงานที่ต้องใช้ไดรเวอร์ที่แตกต่างกัน (เช่น การ์ดเครือข่ายที่รองรับ Ethernet และ RDMA) สามารถใช้บัสเพื่อกำหนดไดรเวอร์หลักและรองให้กับอุปกรณ์ ในกรณีที่การใช้ระบบย่อย MFD (อุปกรณ์มัลติฟังก์ชั่น) เกิดปัญหา
    • สำหรับสถาปัตยกรรม RISC-V มีการเพิ่มการรองรับสำหรับระบบการจัดสรรหน่วยความจำ CMA (Contiguous Memory Allocator) ซึ่งได้รับการปรับให้เหมาะสมสำหรับการจัดสรรพื้นที่หน่วยความจำขนาดใหญ่ที่อยู่ติดกันโดยใช้เทคนิคการย้ายหน้าหน่วยความจำ สำหรับ RISC-V ยังมีการใช้เครื่องมือเพื่อจำกัดการเข้าถึง /dev/mem และคำนึงถึงเวลาในการประมวลผลที่ขัดจังหวะด้วย
    • สำหรับระบบ ARM 32 บิต มีการเพิ่มการสนับสนุนสำหรับเครื่องมือดีบัก KASan (Kernel address sanitizer) ซึ่งช่วยระบุข้อผิดพลาดเมื่อทำงานกับหน่วยความจำ สำหรับ ARM 64 บิต การใช้งาน KASan ได้ถูกแปลงไปใช้แท็ก MTE (MemTag)
    • เพิ่มการเรียกระบบ epoll_pwait2() เพื่ออนุญาตการหมดเวลาด้วยความแม่นยำระดับนาโนวินาที (การเรียก epoll_wait จัดการมิลลิวินาที)
    • ขณะนี้ระบบบิลด์แสดงข้อผิดพลาดเมื่อพยายามสร้างโมดูลเคอร์เนลที่โหลดได้ โดยไม่ได้กำหนดสิทธิ์การใช้งานโค้ดโดยใช้มาโคร MODULE_LICENSE() จากนี้ไป การใช้มาโคร EXPORT_SYMBOL() สำหรับฟังก์ชันคงที่จะทำให้เกิดข้อผิดพลาดในการสร้างด้วย
    • เพิ่มการรองรับสำหรับการแมปวัตถุ GEM จากหน่วยความจำที่ใช้สำหรับ I/O ซึ่งทำให้สามารถเร่งความเร็วการทำงานกับ framebuffer บนสถาปัตยกรรมบางตัวได้
    • Kconfig ได้ยกเลิกการรองรับ Qt4 (ในขณะที่ยังคงรองรับ Qt5, GTK และ Ncurses)
  • การจำลองเสมือนและความปลอดภัย
    • มีการเพิ่มการสนับสนุนสำหรับโหมดตอบสนองด่วนในการเรียกของระบบ seccomp() ซึ่งช่วยให้คุณระบุได้อย่างรวดเร็วว่าการเรียกของระบบบางอย่างได้รับอนุญาตหรือถูกห้ามโดยยึดตามบิตแมปการดำเนินการคงที่ที่แนบมากับกระบวนการ ซึ่งไม่จำเป็นต้องมีการรัน ตัวจัดการ BPF
    • ส่วนประกอบเคอร์เนลแบบรวมสำหรับการสร้างและการจัดการเครือข่ายที่ใช้เทคโนโลยี Intel SGX (Software Guard eXtensions) ซึ่งช่วยให้แอปพลิเคชันสามารถรันโค้ดในพื้นที่หน่วยความจำที่เข้ารหัสแบบแยกส่วน ซึ่งส่วนที่เหลือของระบบมีการเข้าถึงอย่างจำกัด
    • เป็นส่วนหนึ่งของความคิดริเริ่มในการจำกัดการเข้าถึงจากพื้นที่ผู้ใช้ไปยัง MSR (การลงทะเบียนเฉพาะรุ่น) โดยเขียนไปที่การลงทะเบียน MSR_IA32_ENERGY_PERF_BIAS ซึ่งช่วยให้คุณเปลี่ยนโหมดประสิทธิภาพการใช้พลังงานของโปรเซสเซอร์ (“ปกติ”, “ประสิทธิภาพ”, “ประหยัดพลังงาน”) เป็นสิ่งต้องห้าม
    • ความสามารถในการปิดใช้งานการย้ายงานที่มีลำดับความสำคัญสูงระหว่าง CPU ได้ถูกย้ายจากสาขา kernel-rt สำหรับระบบเรียลไทม์
    • สำหรับระบบ ARM64 ได้มีการเพิ่มความสามารถในการใช้แท็ก MTE (MemTag, Memory Tagging Extension) สำหรับที่อยู่หน่วยความจำของตัวจัดการสัญญาณแล้ว การใช้งาน MTE ถูกเปิดใช้งานโดยการระบุตัวเลือก SA_EXPOSE_TAGBITS ใน sigaction() และอนุญาตให้คุณตรวจสอบการใช้พอยน์เตอร์ที่ถูกต้องเพื่อป้องกันการหาประโยชน์จากช่องโหว่ที่เกิดจากการเข้าถึงบล็อกหน่วยความจำที่ว่างแล้ว บัฟเฟอร์ล้น การเข้าถึงก่อนการเริ่มต้น และใช้ภายนอก บริบทปัจจุบัน
    • เพิ่มพารามิเตอร์ "DM_VERITY_VERIFY_ROOTHASH_SIG_SECONDARY_KEYRING" ซึ่งอนุญาตให้ระบบย่อย dm-verity สามารถตรวจสอบลายเซ็นแฮชของใบรับรองที่วางอยู่ในพวงกุญแจรอง ในทางปฏิบัติ การตั้งค่าช่วยให้คุณตรวจสอบได้ไม่เพียงแต่ใบรับรองที่สร้างไว้ในเคอร์เนลเท่านั้น แต่ยังรวมถึงใบรับรองที่โหลดระหว่างการดำเนินการด้วย ซึ่งทำให้สามารถอัปเดตใบรับรองได้โดยไม่ต้องอัปเดตเคอร์เนลทั้งหมด
    • โหมดผู้ใช้ Linux ได้เพิ่มการสนับสนุนสำหรับโหมด Suspend-to-Idle ซึ่งช่วยให้คุณสามารถหยุดสภาพแวดล้อมและใช้สัญญาณ SIGUSR1 เพื่อปลุกจากโหมดสลีป
    • กลไก virtio-mem ซึ่งช่วยให้คุณสามารถเสียบปลั๊กและตัดการเชื่อมต่อหน่วยความจำกับเครื่องเสมือนได้เพิ่มการรองรับสำหรับโหมด Big Block (BBM) ซึ่งทำให้สามารถถ่ายโอนหรือใช้หน่วยความจำในบล็อกที่มีขนาดใหญ่กว่าขนาดของหน่วยความจำเคอร์เนล บล็อกซึ่งจำเป็นในการเพิ่มประสิทธิภาพ VFIO ใน QEMU
    • เพิ่มการรองรับการเข้ารหัส CHACHA20-POLY1305 ในการใช้งานเคอร์เนลของ TLS แล้ว
  • ระบบย่อยของเครือข่าย
    • สำหรับ 802.1Q (VLAN) มีการใช้กลไกการจัดการความล้มเหลวในการเชื่อมต่อ (CFM, การจัดการข้อผิดพลาดในการเชื่อมต่อ) ซึ่งช่วยให้คุณสามารถระบุ ตรวจสอบ และแยกความล้มเหลวในเครือข่ายด้วยบริดจ์เสมือน (Virtual Bridged Networks) ตัวอย่างเช่น CFM สามารถใช้เพื่อแยกปัญหาในเครือข่ายที่ครอบคลุมองค์กรอิสระหลายแห่งซึ่งพนักงานสามารถเข้าถึงเฉพาะอุปกรณ์ของตนเองเท่านั้น
    • เพิ่มการรองรับสำหรับการห่อหุ้มแพ็กเก็ตโปรโตคอล SCTP ในแพ็กเก็ต UDP (RFC 6951) ซึ่งช่วยให้คุณใช้ SCTP บนเครือข่ายที่มีตัวแปลที่อยู่รุ่นเก่าที่ไม่รองรับ SCTP โดยตรง รวมถึงปรับใช้ SCTP บนระบบที่ไม่ได้ให้การเข้าถึงโดยตรงไปยัง IP ชั้น.
    • การนำเทคโนโลยี WiMAX ไปใช้ได้ถูกย้ายไปสู่การจัดเตรียมและมีกำหนดถอดออกในอนาคต หากไม่มีผู้ใช้ที่ต้องการ WiMAX WiMAX ไม่ได้ใช้ในเครือข่ายสาธารณะอีกต่อไป และในเคอร์เนล ไดรเวอร์เดียวที่สามารถใช้ WiMAX ได้คือไดรเวอร์ Intel 2400m ที่ล้าสมัย การสนับสนุน WiMAX ถูกยกเลิกในตัวกำหนดค่าเครือข่าย NetworkManager ในปี 2015 ปัจจุบัน WiMax เกือบจะถูกแทนที่ด้วยเทคโนโลยีต่างๆ เช่น LTE, HSPA+ และ Wi-Fi 802.11n เกือบทั้งหมด
    • งานได้ดำเนินการเพื่อเพิ่มประสิทธิภาพการประมวลผลการรับส่งข้อมูล TCP ขาเข้าในโหมด Zerocopy เช่น โดยไม่ต้องคัดลอกเพิ่มเติมไปยังบัฟเฟอร์ใหม่ สำหรับการรับส่งข้อมูลขนาดกลาง ซึ่งครอบคลุมข้อมูลหลายสิบหรือหลายร้อยกิโลไบต์ การใช้ Zerocopy แทน recvmsg() จะมีประสิทธิภาพมากกว่าอย่างเห็นได้ชัด ตัวอย่างเช่น การเปลี่ยนแปลงที่นำไปใช้ทำให้สามารถเพิ่มประสิทธิภาพในการประมวลผลการรับส่งข้อมูลสไตล์ RPC ด้วยข้อความขนาด 32 KB เมื่อใช้ Zerocopy 60-70%
    • เพิ่มการเรียก ioctl() ใหม่เพื่อสร้างบริดจ์เครือข่ายที่ครอบคลุมลิงก์ PPP หลายรายการ ความสามารถที่นำเสนอช่วยให้เฟรมสามารถย้ายจากช่องหนึ่งไปยังอีกช่องหนึ่งได้ เช่น จากเซสชัน PPPoE ไปยังเซสชัน PPPoL2TP
    • การบูรณาการเข้ากับแกนหลักของ MPTCP (MultiPath TCP) ซึ่งเป็นส่วนขยายของโปรโตคอล TCP สำหรับการจัดระเบียบการดำเนินการของการเชื่อมต่อ TCP พร้อมการส่งแพ็กเก็ตพร้อมกันไปตามหลายเส้นทางผ่านอินเทอร์เฟซเครือข่ายที่แตกต่างกันที่เกี่ยวข้องกับที่อยู่ IP ที่แตกต่างกัน รุ่นใหม่แนะนำการสนับสนุนสำหรับตัวเลือก ADD_ADDR เพื่อโฆษณาที่อยู่ IP ที่มีอยู่ซึ่งสามารถเชื่อมต่อได้เมื่อเพิ่มโฟลว์ใหม่ให้กับการเชื่อมต่อ MPTCP ที่มีอยู่
    • เพิ่มความสามารถในการกำหนดค่าการดำเนินการเมื่อเกินงบประมาณการโพลการเชื่อมต่อ (การโพลไม่ว่าง) โหมด SO_BUSY_POLL ที่มีอยู่ก่อนหน้านี้หมายถึงการเปลี่ยนไปใช้ softirq เมื่องบประมาณหมด สำหรับแอปพลิเคชันที่จำเป็นต้องใช้การโพลต่อไป จะมีการเสนอตัวเลือกใหม่ SO_PREFER_BUSY_POLL
    • IPv6 ใช้การสนับสนุนสำหรับโหมด SRv6 End.DT4 และ End.DT6 ซึ่งใช้เพื่อสร้าง IPv4 L3 VPN ที่มีผู้ใช้หลายรายและอุปกรณ์ VRF (การกำหนดเส้นทางและการส่งต่อเสมือน)
    • Netfilter ได้รวมการใช้งานชุดนิพจน์ซึ่งทำให้สามารถระบุหลายนิพจน์สำหรับแต่ละองค์ประกอบของรายการชุดได้
    • มีการเพิ่ม API ลงในสแต็กไร้สาย 802.11 เพื่อกำหนดค่าขีดจำกัดพลังงาน SAR รวมถึงพารามิเตอร์ AE PWE และ HE MCS เพิ่มการรองรับช่วง 6GHz (Ultra High Band) ให้กับไดรเวอร์ Intel iwlwifi ไดรเวอร์ Qualcomm Ath11k ได้เพิ่มการรองรับเทคโนโลยี FILS (การตั้งค่าลิงก์เริ่มต้นอย่างรวดเร็ว ซึ่งเป็นมาตรฐานของ IEEE 802.11ai) ซึ่งช่วยให้คุณกำจัดความล่าช้าในการโรมมิ่งระหว่างการโยกย้ายจากจุดเชื่อมต่อหนึ่งไปยังอีกจุดหนึ่ง
  • Оборудование
    • ไดรเวอร์ amdgpu ให้การสนับสนุน AMD "Green Sardine" APU (Ryzen 5000) และ GPU "Dimgrey Cavefish" (Navi 2) รวมถึงการรองรับเบื้องต้นสำหรับ AMD Van Gogh APU พร้อม Zen 2 core และ RDNA 2 GPU (Navi 2) เพิ่มการรองรับตัวระบุ Renoir APU ใหม่ (ขึ้นอยู่กับ Zen 2 CPU และ Vega GPU)
    • ไดรเวอร์ i915 สำหรับการ์ดแสดงผล Intel รองรับเทคโนโลยี IS (Integer scaling) พร้อมการใช้ตัวกรองเพื่อเพิ่มขนาดโดยคำนึงถึงสถานะของพิกเซลข้างเคียง (การแก้ไขใกล้เคียงที่สุด) เพื่อกำหนดสีของพิกเซลที่หายไป การสนับสนุนการ์ด Intel DG1 แบบแยกได้รับการขยายแล้ว มีการรองรับเทคโนโลยี "Big Joiner" ซึ่งมีมาตั้งแต่ชิป Ice Lake / Gen11 และอนุญาตให้ใช้ตัวแปลงรหัสตัวเดียวในการประมวลผลสองสตรีม ตัวอย่างเช่น สำหรับเอาต์พุตไปยังหน้าจอ 8K ผ่าน DisplayPort หนึ่งอัน เพิ่มโหมดสำหรับการสลับแบบอะซิงโครนัสระหว่างบัฟเฟอร์สองตัวในหน่วยความจำวิดีโอ (พลิกแบบอะซิงโครนัส)
    • ไดรเวอร์ Nouveau ได้เพิ่มการรองรับเบื้องต้นสำหรับ NVIDIA GPU โดยใช้สถาปัตยกรรมไมโคร Ampere (GA100, GeForce RTX 30xx) จนถึงขณะนี้จำกัดอยู่เพียงเครื่องมือสำหรับการควบคุมโหมดวิดีโอ
    • เพิ่มการรองรับโปรโตคอล 3WIRE ที่ใช้ในแผง LCD เพิ่มการรองรับแผง novatek nt36672a, TDO tl070wsh30, Innolux N125HCE-GN1 และ ABT Y030XX067A 3.0 แยกกันเราสามารถสังเกตการรองรับแผงของสมาร์ทโฟน OnePlus 6 และ 6T ซึ่งทำให้สามารถจัดระเบียบการโหลดเคอร์เนลที่ไม่ได้แก้ไขบนอุปกรณ์ได้
    • เพิ่มการรองรับสำหรับคอนโทรลเลอร์โฮสต์ USB4 แบบแยกตัวแรกของ Intel, Maple Ridge
    • เพิ่มการรองรับ Allwinner H6 I2S, อุปกรณ์อะนาล็อก ADAU1372, Intel Alderlake-S, GMediatek MT8192, NXP i.MX HDMI และ XCVR, Realtek RT715 และตัวแปลงสัญญาณเสียง Qualcomm SM8250
    • เพิ่มการรองรับบอร์ด อุปกรณ์ และแพลตฟอร์ม ARM: Galaxy Note 10.1, Microsoft Lumia 950 XL, NanoPi R1, FriendlyArm ZeroPi, Elimo Initium SBC, Broadcom BCM4908, Mediatek MT8192/MT6779/MT8167, MStar Infinity2M, Nuvoton NPCM730, Marvell Armada 382, ​​​​Mikrotik อิงจาก Marvell Prestera 98DX3236, เซิร์ฟเวอร์ที่มี Nuvoton NPCM750 BMC, Kontron i.MX8M Mini, Espressobin Ultra, “Trogdor” Chromebook, Kobol Helios64, Engicam PX30.Core
    • การสนับสนุนในตัวสำหรับคอนโซลเกม Ouya ที่ใช้ NVIDIA Tegra 3

ในเวลาเดียวกัน Latin American Free Software Foundation ได้ก่อตั้งเวอร์ชันของเคอร์เนล 5.11 ฟรีโดยสมบูรณ์ - Linux-libre 5.11-gnu ซึ่งล้างองค์ประกอบของเฟิร์มแวร์และไดรเวอร์ที่มีส่วนประกอบหรือส่วนโค้ดที่ไม่ฟรีซึ่งมีขอบเขตจำกัด โดยผู้ผลิต รุ่นใหม่จะล้างไดรเวอร์สำหรับ qat_4xxx (crypto), lt9611uxcm (dsi/hdmi bridge), ccs/smia++ (sensor), ath11k_pci, ตัวรับส่งสัญญาณเสียง nxp และตัวควบคุม mhi pci อัปเดตรหัสการทำความสะอาด Blob ในไดรเวอร์และระบบย่อย amdgpu, btqca, btrtl, btusb, i915 csr ปิดการใช้งาน blobs ใหม่ใน m3 rproc, idt82p33 ptp clock และ qualcomm arm64

ที่มา: opennet.ru

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