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

หลังจากสองเดือนของการพัฒนา Linus Torvalds ส่ง การปล่อยเคอร์เนล Linux 5.2. ท่ามกลางการเปลี่ยนแปลงที่เห็นได้ชัดเจนที่สุด: โหมดการทำงานของ Ext4 ไม่คำนึงถึงขนาดตัวพิมพ์, การเรียกระบบแยกต่างหากสำหรับการติดตั้งระบบไฟล์, ไดรเวอร์สำหรับ GPU Mali 4xx/ 6xx/7xx, ความสามารถในการจัดการการเปลี่ยนแปลงค่า sysctl ในโปรแกรม BPF, อุปกรณ์-ตัวทำแผนที่ โมดูล dm-dust, การป้องกันการโจมตี MDS, รองรับ Sound Open Firmware สำหรับ DSP, การเพิ่มประสิทธิภาพ BFQ, นำระบบย่อย PSI (Pressure Stall Information) มาสู่ความเป็นไปได้ในการใช้งานใน Android

เวอร์ชันใหม่ประกอบด้วยการแก้ไข 15100 รายการจากนักพัฒนา 1882 ราย
ขนาดแพตช์ - 62 MB (การเปลี่ยนแปลงได้รับผลกระทบ 30889 ไฟล์, เพิ่มโค้ด 625094 บรรทัด, ลบ 531864 บรรทัด) ประมาณ 45% ของทั้งหมดที่นำเสนอใน 5.2
การเปลี่ยนแปลงเกี่ยวข้องกับไดรเวอร์อุปกรณ์ ประมาณ 21% ของการเปลี่ยนแปลงคือ
ทัศนคติต่อการอัปเดตโค้ดเฉพาะสำหรับสถาปัตยกรรมฮาร์ดแวร์ 12%
เกี่ยวข้องกับสแต็กเครือข่าย 3% สำหรับระบบไฟล์ และ 3% สำหรับภายใน
ระบบย่อยเคอร์เนล 12.4% ของการเปลี่ยนแปลงทั้งหมดจัดทำโดย Intel, 6.3% โดย Red Hat, 5.4% โดย Google, 4.0% โดย AMD, 3.1% โดย SUSE, 3% โดย IBM, 2.7% โดย Huawei, 2.7% โดย Linaro, 2.2% โดย ARM , 1.6 % - ออราเคิล

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

  • ระบบย่อยของดิสก์ I/O และระบบไฟล์
    • เพิ่มสำหรับ Ext4 สนับสนุน ทำงานโดยไม่แยกความแตกต่างตัวพิมพ์ของอักขระในชื่อไฟล์ซึ่งเปิดใช้งานเฉพาะกับไดเร็กทอรีว่างแต่ละรายการโดยใช้แอตทริบิวต์ใหม่ "+F" (EXT4_CASEFOLD_FL) เมื่อตั้งค่าคุณลักษณะนี้ในไดเร็กทอรี การดำเนินการทั้งหมดที่มีไฟล์และไดเร็กทอรีย่อยภายในจะถูกดำเนินการโดยไม่คำนึงถึงตัวพิมพ์เล็กและใหญ่ รวมถึงตัวพิมพ์จะถูกละเว้นเมื่อค้นหาและเปิดไฟล์ (เช่น ไฟล์ Test.txt test.txt และ test.TXT ในไดเร็กทอรีดังกล่าวจะถือว่าเหมือนกัน) ตามค่าเริ่มต้น ระบบไฟล์จะยังคงคำนึงถึงขนาดตัวพิมพ์ ยกเว้นไดเร็กทอรีที่มีแอตทริบิวต์ "chattr +F"
    • ฟังก์ชันสำหรับการประมวลผลอักขระ UTF-8 ในชื่อไฟล์ซึ่งใช้ในการเปรียบเทียบสตริงและการดำเนินการทำให้เป็นมาตรฐานได้รับการรวมเป็นหนึ่งเดียว
    • XFS เพิ่มโครงสร้างพื้นฐานสำหรับการตรวจสอบความสมบูรณ์ของระบบไฟล์และ ioctl ใหม่สำหรับการสืบค้นสถานะความสมบูรณ์ มีการใช้งานคุณลักษณะทดลองเพื่อตรวจสอบตัวนับ superblock ออนไลน์
    • เพิ่มอุปกรณ์โมดูลใหม่ - mapper "dm-ฝุ่น“ ซึ่งช่วยให้คุณจำลองลักษณะที่ปรากฏของบล็อกเสียบนสื่อหรือข้อผิดพลาดเมื่ออ่านจากดิสก์ โมดูลนี้ช่วยให้คุณลดความยุ่งยากในการดีบักและการทดสอบแอปพลิเคชันและระบบจัดเก็บข้อมูลต่างๆ เมื่อเผชิญกับความล้มเหลวที่อาจเกิดขึ้น
    • ดำเนินการ การปรับปรุงประสิทธิภาพที่สำคัญสำหรับตัวกำหนดเวลา BFQ I/O ในสภาวะที่มีโหลด I/O สูง จะมีการเพิ่มประสิทธิภาพ อนุญาต ลดเวลาการดำเนินการ เช่น การเปิดแอปพลิเคชั่นได้ถึง 80%
    • เพิ่มชุดของการเรียกระบบสำหรับการติดตั้งระบบไฟล์: เอฟโซเพน(), open_tree(), เอฟสพิค(), fsmount(), fsconfig() и move_mount(). การเรียกของระบบเหล่านี้ช่วยให้คุณสามารถประมวลผลขั้นตอนต่างๆ ของการติดตั้งแยกกันได้ (ประมวลผลซูเปอร์บล็อก รับข้อมูลเกี่ยวกับระบบไฟล์ เมาท์ แนบกับจุดเมานท์) ซึ่งก่อนหน้านี้ดำเนินการโดยใช้การเรียกระบบ mount() ทั่วไป การเรียกแบบแยกกันทำให้สามารถดำเนินการสถานการณ์การเมานท์ที่ซับซ้อนมากขึ้นและดำเนินการแยกกัน เช่น การกำหนดค่าซูเปอร์บล็อกใหม่ การเปิดใช้งานตัวเลือก การเปลี่ยนจุดเมานท์ และการย้ายไปยังเนมสเปซอื่น นอกจากนี้ การประมวลผลแบบแยกส่วนยังช่วยให้คุณระบุสาเหตุของผลลัพธ์ของรหัสข้อผิดพลาดได้อย่างแม่นยำ และตั้งค่าแหล่งที่มาหลายแหล่งสำหรับระบบไฟล์แบบหลายเลเยอร์ เช่น การซ้อนทับ
    • มีการเพิ่มการดำเนินการใหม่ IORING_OP_SYNC_FILE_RANGE ในอินเทอร์เฟซสำหรับ I/O แบบอะซิงโครนัส io_uring ซึ่งดำเนินการเทียบเท่ากับการเรียกของระบบ sync_file_range()และยังปรับใช้ความสามารถในการลงทะเบียน eventfd กับ io_uring และรับการแจ้งเตือนเกี่ยวกับการดำเนินการที่เสร็จสมบูรณ์
    • สำหรับระบบไฟล์ CIFS นั้น FIEMAP ioctl ได้ถูกเพิ่มเข้ามา ซึ่งจัดให้มีการแมปขอบเขตที่มีประสิทธิภาพ ตลอดจนการสนับสนุนสำหรับโหมด SEEK_DATA และ SEEK_HOLE
    • ในระบบย่อย FUSE เสนอ API สำหรับจัดการการแคชข้อมูล
    • Btrfs ได้ปรับการใช้งาน qgroups ให้เหมาะสมและปรับปรุงความเร็วในการดำเนินการ fsync สำหรับไฟล์ที่มีฮาร์ดลิงก์หลายตัว รหัสตรวจสอบความสมบูรณ์ของข้อมูลได้รับการปรับปรุง ซึ่งขณะนี้คำนึงถึงความเสียหายที่อาจเกิดขึ้นกับข้อมูลใน RAM ก่อนที่จะล้างข้อมูลลงดิสก์
    • CEPH เพิ่มการสนับสนุนสำหรับการส่งออกสแน็ปช็อตผ่าน NFS
    • การใช้งานการติดตั้ง NFSv4 ในโหมด "soft" ได้รับการปรับปรุง (หากเกิดข้อผิดพลาดในการเข้าถึงเซิร์ฟเวอร์ในโหมด "soft" การเรียกเพื่อส่งคืนรหัสข้อผิดพลาดทันทีและไม่ได้รับการควบคุมในโหมด "hard" จนกว่า FS ความพร้อมใช้งานหรือการหมดเวลาจะถูกเรียกคืน) รุ่นใหม่ให้การจัดการการหมดเวลาที่แม่นยำยิ่งขึ้น การกู้คืนข้อขัดข้องที่เร็วขึ้น และตัวเลือกการเมานต์ “softerr” ใหม่ที่ช่วยให้คุณเปลี่ยนรหัสข้อผิดพลาด (ETIMEDOUT) ที่ส่งคืนเมื่อเกิดการหมดเวลา
    • nfsdcld API ได้รับการออกแบบมาเพื่อติดตามสถานะของไคลเอนต์ NFS ช่วยให้เซิร์ฟเวอร์ NFS ติดตามสถานะของไคลเอนต์ได้อย่างถูกต้องเมื่อรีบูต ดังนั้น ขณะนี้ nfsdcld daemon สามารถทำหน้าที่เป็นตัวจัดการ nfsdcltrack ได้
    • สำหรับเอเอฟเอส เพิ่ม การจำลองการล็อคช่วงไบต์ในไฟล์ (การล็อคช่วงไบต์);
  • การจำลองเสมือนและความปลอดภัย
    • มีการทำงานเพื่อกำจัดตำแหน่งในเคอร์เนลที่อนุญาตให้มีการเรียกใช้โค้ดจากพื้นที่หน่วยความจำที่สะท้อนและเขียนได้ ซึ่งช่วยให้สามารถบล็อกช่องโหว่ที่อาจเกิดขึ้นระหว่างการโจมตี
    • มีการเพิ่มพารามิเตอร์บรรทัดคำสั่งเคอร์เนลใหม่ "mitigations=" ซึ่งเป็นวิธีที่ง่ายขึ้นในการควบคุมการเปิดใช้งานเทคนิคบางอย่างเพื่อป้องกันช่องโหว่ที่เกี่ยวข้องกับการดำเนินการตามคำสั่งแบบเก็งกำไรบน CPU การส่งผ่าน "mitigations=off" จะปิดใช้งานวิธีการที่มีอยู่ทั้งหมด และโหมดเริ่มต้น "mitigations=auto" จะเปิดใช้งานการป้องกัน แต่ไม่ส่งผลต่อการใช้ Hyper Threading โหมด "mitigations=auto,nosmt" จะปิดใช้งาน Hyper Threading เพิ่มเติมหากจำเป็นโดยวิธีการป้องกัน
    • เพิ่ม รองรับลายเซ็นดิจิทัลอิเล็กทรอนิกส์ตาม GOST R 34.10-2012 (RFC 7091, ISO/IEC 14888-3) ที่พัฒนา Vitaly Chikunov จาก Basalt SPO เพิ่มการรองรับ AES128-CCM ในการใช้งาน TLS ดั้งเดิม เพิ่มการรองรับอัลกอริธึม AEAD ให้กับโมดูล crypto_simd
    • ใน Kconfig เพิ่ม ส่วน "การแข็งตัวของเคอร์เนล" แยกต่างหากพร้อมตัวเลือกเพื่อปรับปรุงการป้องกันเคอร์เนล ในปัจจุบัน ส่วนใหม่จะมีเฉพาะการตั้งค่าสำหรับเปิดใช้งานปลั๊กอินเสริมการตรวจสอบ GCC เท่านั้น
    • รหัสเคอร์เนลเกือบแล้ว ส่ง จากคำสั่ง non-breaking case ใน switch (โดยไม่ return หรือ break หลังจากแต่ละ case block) ยังคงต้องแก้ไข 32 กรณีจาก 2311 กรณีของการใช้สวิตช์ดังกล่าว หลังจากนั้นจะสามารถใช้โหมด "-Wimplicit-fallthrough" เมื่อสร้างเคอร์เนล
    • สำหรับสถาปัตยกรรม PowerPC มีการใช้การสนับสนุนกลไกฮาร์ดแวร์สำหรับการจำกัดเส้นทางการเข้าถึงเคอร์เนลที่ไม่ต้องการไปยังข้อมูลในพื้นที่ผู้ใช้
    • เพิ่มรหัสการบล็อก การโจมตี คลาส MDS (Microarchitectural Data Sampling) ในโปรเซสเซอร์ Intel คุณสามารถตรวจสอบว่าระบบเสี่ยงต่อช่องโหว่หรือไม่ผ่านตัวแปร SysFS “/sys/devices/system/cpu/vulnerabilities/mds” ใช้ได้ โหมดการป้องกันสองโหมด: เต็มซึ่งต้องใช้ไมโครโค้ดที่อัปเดต และบายพาสซึ่งไม่รับประกันการล้างบัฟเฟอร์ CPU อย่างสมบูรณ์เมื่อควบคุมถูกถ่ายโอนไปยังพื้นที่ผู้ใช้หรือระบบแขก ในการควบคุมโหมดการป้องกันได้มีการเพิ่มพารามิเตอร์ "mds=" ลงในเคอร์เนลซึ่งสามารถรับค่า "เต็ม", "เต็ม, nosmt" (+ ปิดการใช้งาน Hyper-Threads) และ "ปิด";
    • ในระบบ x86-64 มีการเพิ่มการป้องกัน "stack guard-page" สำหรับ IRQ กลไกการดีบักและตัวจัดการข้อยกเว้น สาระสำคัญคือการแทนที่เพจหน่วยความจำที่ขอบด้วยสแต็ก การเข้าถึงซึ่งนำไปสู่การสร้าง ข้อยกเว้น (เพจฟอลต์);
    • เพิ่มการตั้งค่า sysctl vm.unprivileged_userfaultfd ซึ่งควบคุมความสามารถของกระบวนการที่ไม่มีสิทธิพิเศษเพื่อใช้การเรียกระบบ userfaultfd()
  • ระบบย่อยของเครือข่าย
    • เพิ่ม รองรับเกตเวย์ IPv6 สำหรับเส้นทาง IPv4 ตัวอย่างเช่น ตอนนี้คุณสามารถระบุกฎการกำหนดเส้นทางเช่น “ip ro add 172.16.1.0/24 via inet6 2001:db8::1 dev eth0”;
    • สำหรับ ICMPv6 การเรียก ioctl icmp_echo_ignore_anycast และ icmp_echo_ignore_multicast จะถูกนำไปใช้เพื่อละเว้น ICMP ECHO สำหรับ anycast และ
      ที่อยู่แบบหลายผู้รับ เพิ่ม ความสามารถในการจำกัดความเข้มของการประมวลผลแพ็กเก็ต ICMPv6

    • สำหรับโปรโตคอล BATMAN (Better Approach To Mobile Adhoc Networking) ซึ่งอนุญาตให้สร้างเครือข่ายแบบกระจายอำนาจซึ่งแต่ละโหนดเชื่อมต่อผ่านโหนดข้างเคียง เพิ่ม รองรับการออกอากาศจากมัลติคาสต์ถึงยูนิคาสต์รวมถึงความสามารถในการควบคุมผ่าน sysfs
    • ในเอททูล เพิ่ม พารามิเตอร์ Fast Link Down ใหม่ ซึ่งช่วยให้คุณลดเวลาที่ใช้ในการรับข้อมูลเกี่ยวกับเหตุการณ์การลิงก์ดาวน์สำหรับ 1000BaseT (ภายใต้สภาวะปกติ ความล่าช้าจะสูงถึง 750ms)
    • ปรากฏขึ้น โอกาส การเชื่อมโยงอุโมงค์ Foo-Over-UDP กับที่อยู่เฉพาะ อินเทอร์เฟซเครือข่าย หรือซ็อกเก็ต (ก่อนหน้านี้การเชื่อมโยงทำได้โดยมาสก์ทั่วไปเท่านั้น)
    • ในสแต็กไร้สาย ที่ให้ไว้ ความเป็นไปได้ในการดำเนินการจัดการ
      OWE (การเข้ารหัสไร้สายแบบฉวยโอกาส) ในพื้นที่ผู้ใช้

    • ใน Netfilter มีการเพิ่มการรองรับตระกูลที่อยู่ inet ให้กับ nat chains (ตัวอย่างเช่น ตอนนี้คุณสามารถใช้กฎการแปลหนึ่งกฎเพื่อประมวลผล ipv4 และ ipv6 โดยไม่ต้องแยกกฎสำหรับ ipv4 และ ipv6)
    • ในเน็ตลิงค์ เพิ่ม ระบบการปกครอง เข้มงวดในการตรวจสอบความถูกต้องของข้อความและแอตทริบิวต์ทั้งหมดอย่างเข้มงวด โดยไม่อนุญาตให้เกินขนาดที่คาดหวังของแอตทริบิวต์และห้ามไม่ให้เพิ่มข้อมูลเพิ่มเติมในตอนท้ายของข้อความ
  • บริการหน่วยความจำและระบบ
    • มีการเพิ่มการตั้งค่าสถานะ CLONE_PIDFD ในการเรียกของระบบ clone() เมื่อระบุ ตัวอธิบายไฟล์ "pidfd" ที่ระบุด้วยกระบวนการลูกที่สร้างขึ้นจะถูกส่งกลับไปยังกระบวนการหลัก ตัวอย่างเช่น ตัวอธิบายไฟล์นี้สามารถใช้เพื่อส่งสัญญาณโดยไม่ต้องกลัวว่าจะเข้าสู่สภาวะการแข่งขัน (ทันทีหลังจากส่งสัญญาณ PID ​​เป้าหมายอาจถูกปล่อยเนื่องจากกระบวนการยุติและถูกครอบครองโดยกระบวนการอื่น)
    • สำหรับ cgroups เวอร์ชันที่สอง มีการเพิ่มฟังก์ชันการทำงานของตัวควบคุมช่องแช่แข็ง ซึ่งคุณสามารถหยุดการทำงานในกลุ่ม cgroup และเพิ่มทรัพยากรบางส่วนชั่วคราว (CPU, I/O และแม้แต่หน่วยความจำ) เพื่อทำงานอื่นๆ ได้ การจัดการเสร็จสิ้นผ่านไฟล์ควบคุม cgroup.freeze และ cgroup.events ในแผนผัง cgroup รายการที่ 1 ใน cgroup.freeze หยุดกระบวนการใน cgroup ปัจจุบันและกลุ่มย่อยทั้งหมด เนื่องจากการแช่แข็งต้องใช้เวลาระยะหนึ่ง จึงมีการจัดเตรียมไฟล์ cgroup.events เพิ่มเติม ซึ่งคุณสามารถดูข้อมูลเกี่ยวกับความสมบูรณ์ของการดำเนินการได้
    • ปลอดภัย การส่งออกคุณลักษณะหน่วยความจำที่แนบมากับแต่ละโหนดใน sysfs ซึ่งช่วยให้คุณสามารถกำหนดจากพื้นที่ผู้ใช้ถึงลักษณะของการประมวลผลธนาคารหน่วยความจำในระบบที่มีหน่วยความจำต่างกัน
    • ระบบย่อย PSI (Pressure Stall Information) ได้รับการปรับปรุง ซึ่งช่วยให้คุณสามารถวิเคราะห์ข้อมูลเกี่ยวกับเวลารอในการรับทรัพยากรต่างๆ (CPU, หน่วยความจำ, I/O) สำหรับงานบางอย่างหรือชุดของกระบวนการในกลุ่ม cgroup เมื่อใช้ PSI ตัวจัดการพื้นที่ผู้ใช้สามารถประมาณระดับโหลดของระบบและรูปแบบการชะลอตัวได้แม่นยำยิ่งขึ้นเมื่อเปรียบเทียบกับค่าเฉลี่ยโหลด เวอร์ชันใหม่ให้การสนับสนุนการตั้งค่าเกณฑ์ความไวและความสามารถในการใช้การเรียกแบบสำรวจความคิดเห็น () เพื่อรับการแจ้งเตือนว่าเกณฑ์ที่ตั้งไว้ได้รับการกระตุ้นในช่วงระยะเวลาหนึ่ง คุณสมบัตินี้ช่วยให้ Android สามารถตรวจสอบการขาดแคลนหน่วยความจำได้ตั้งแต่ระยะแรก ระบุสาเหตุของปัญหา และยุติแอปพลิเคชันที่ไม่สำคัญโดยไม่ทำให้เกิดปัญหาที่ผู้ใช้สังเกตเห็นได้ เมื่อทำการทดสอบภาวะวิกฤต เครื่องมือตรวจสอบการใช้หน่วยความจำที่ใช้ PSI แสดงให้เห็นผลบวกลวงน้อยลง 10 เท่าเมื่อเทียบกับสถิติ vmpressure
    • รหัสสำหรับตรวจสอบโปรแกรม BPF ได้รับการปรับให้เหมาะสม ซึ่งช่วยให้ตรวจสอบโปรแกรมขนาดใหญ่ได้เร็วขึ้นถึง 20 เท่า การเพิ่มประสิทธิภาพทำให้สามารถเพิ่มขีดจำกัดขนาดของโปรแกรม BPF จาก 4096 เป็นล้านคำสั่งได้
    • สำหรับโปรแกรม BPF ได้รับ ความสามารถในการเข้าถึงข้อมูลทั่วโลกซึ่งช่วยให้คุณกำหนดตัวแปรทั่วโลกและค่าคงที่ในโปรแกรม
    • เพิ่ม APIซึ่งช่วยให้คุณควบคุมการเปลี่ยนแปลงพารามิเตอร์ sysctl จากโปรแกรม BPF
    • สำหรับสถาปัตยกรรม MIPS32 มีการใช้คอมไพเลอร์ JIT สำหรับเครื่องเสมือน eBPF
    • สำหรับสถาปัตยกรรม PowerPC แบบ 32 บิต ได้มีการเพิ่มการสนับสนุนเครื่องมือดีบัก KASan (Kernel address sanitizer) ซึ่งช่วยระบุข้อผิดพลาดเมื่อทำงานกับหน่วยความจำ
    • บนระบบ x86-64 ข้อจำกัดในการวางดัมพ์สถานะระหว่างเคอร์เนลเสียหาย (ดัมพ์เสียหาย) ในพื้นที่หน่วยความจำที่สูงกว่า 896MB ได้ถูกลบออกแล้ว
    • สำหรับสถาปัตยกรรม s390 จะมีการรองรับการสุ่มพื้นที่ที่อยู่เคอร์เนล (KASLR) และความสามารถในการตรวจสอบลายเซ็นดิจิทัลเมื่อโหลดเคอร์เนลผ่าน kexec_file_load()
    • สำหรับสถาปัตยกรรม PA-RISC เพิ่มการรองรับเคอร์เนลดีบักเกอร์ (KGDB) เครื่องหมายข้ามและ kprobes
  • Оборудование
    • รวมคนขับแล้ว ลิมา สำหรับ GPU Mali 400/450 ซึ่งใช้ในชิปรุ่นเก่าหลายตัวที่ใช้สถาปัตยกรรม ARM สำหรับ GPU Mali รุ่นใหม่ มีการเพิ่มไดรเวอร์ Panfrost ซึ่งรองรับชิปที่ใช้สถาปัตยกรรมไมโคร Midgard (Mali-T6xx, Mali-T7xx, Mali-T8xx) และ Bifrost (Mali G3x, G5x, G7x)
    • เพิ่มการรองรับอุปกรณ์เสียงที่ใช้เฟิร์มแวร์แบบเปิด เฟิร์มแวร์เปิดเสียง (SOF). แม้จะมีไดรเวอร์แบบเปิดให้ใช้งาน แต่รหัสเฟิร์มแวร์สำหรับชิปเสียงยังคงปิดอยู่และส่งมาในรูปแบบไบนารี โครงการ Sound Open Firmware ได้รับการพัฒนาโดย Intel เพื่อสร้างเฟิร์มแวร์แบบเปิดสำหรับชิป DSP ที่เกี่ยวข้องกับการประมวลผลเสียง (Google ก็เข้าร่วมการพัฒนาในภายหลังด้วย) ปัจจุบันโครงการได้เตรียมการค้นพบเฟิร์มแวร์สำหรับชิปเสียงของแพลตฟอร์ม Intel Baytrail, CherryTrail, Broadwell, ApolloLake, GeminiLake, CannonLake และ IceLake แล้ว
    • ไดรเวอร์ Intel DRM (i915) เพิ่มการรองรับชิป
      เอลคาร์ตเลค (Gen11) เพิ่ม PCI ID สำหรับชิป Comet Lake (Gen9) การรองรับชิป Icelake มีเสถียรภาพ โดยมีการเพิ่มตัวระบุอุปกรณ์ PCI เพิ่มเติมด้วย
      เปิด
      โหมดการสลับแบบอะซิงโครนัสระหว่างบัฟเฟอร์สองตัวในหน่วยความจำวิดีโอ (พลิกแบบอะซิงก์) เมื่อดำเนินการเขียนผ่าน mmio ซึ่งเพิ่มประสิทธิภาพของแอปพลิเคชัน 3D บางตัวอย่างมีนัยสำคัญ (ตัวอย่างเช่นประสิทธิภาพในการทดสอบ 3DMark Ice Storm เพิ่มขึ้น 300-400%) เพิ่มการสนับสนุนเทคโนโลยี HDCP2.2 (การป้องกันเนื้อหาดิจิทัลแบนด์วิธสูง) สำหรับการเข้ารหัสสัญญาณวิดีโอที่ส่งผ่าน HDMI;

    • ไดรเวอร์ amdgpu สำหรับ Vega20 GPU เพิ่ม การสนับสนุน RAS (ความน่าเชื่อถือ ความพร้อมใช้งาน ความสามารถในการให้บริการ) และการสนับสนุนการทดลองสำหรับระบบย่อย SMU 11 ซึ่งมาแทนที่เทคโนโลยี Powerplay สำหรับ GPU Vega12 เพิ่ม รองรับโหมด BACO (Bus Active, Chip Off) เพิ่มการรองรับเบื้องต้นสำหรับ XGMI ซึ่งเป็นบัสความเร็วสูง (PCIe 4.0) สำหรับการเชื่อมต่อระหว่าง GPU เพิ่มตัวระบุที่ขาดหายไปสำหรับการ์ดที่ใช้ Polaris10 GPU ไปยังไดรเวอร์ amdkfd
    • ไดรเวอร์ Nouveau ได้เพิ่มการรองรับบอร์ดที่ใช้ชิปเซ็ต NVIDIA Turing 117 (TU117 ที่ใช้ใน GeForce GTX 1650) ใน
      kconfig เพิ่ม การตั้งค่าเพื่อปิดการใช้งานฟังก์ชั่นที่ล้าสมัยซึ่งไม่ได้ใช้อีกต่อไปใน libdrm รุ่นปัจจุบัน

    • เพิ่มการรองรับออบเจ็กต์การซิงโครไนซ์ "ไทม์ไลน์" ให้กับ DRM API และไดรเวอร์ amdgpu แล้ว ซึ่งช่วยให้คุณดำเนินการได้โดยไม่ต้องบล็อกแบบคลาสสิก
    • ไดรเวอร์ vboxvideo สำหรับ GPU เสมือน VirtualBox ถูกย้ายจากสาขาการแสดงละครไปยังโครงสร้างหลัก
    • เพิ่มไดรเวอร์ aspeed สำหรับชิป GFX SoC ASPEED;
    • เพิ่มการรองรับ ARM SoC และ Intel Agilex (SoCFPGA), NXP i.MX8MM, Allwinner (RerVision H3-DVK (H3), Oceanic 5205 5inMFD, ,Beelink GS2 (H6), Orange Pi 3 (H6)), Rockchip (Orange Pi ) บอร์ด RK3399, Nanopi NEO4, Veyron-Mighty Chromebook), Amlogic: SEI Robotics SEI510,
      ST ไมโคร (stm32mp157a, stm32mp157c), NXP (
      เอคเคลมันน์ ci4x10 (i.MX6DL),

      i.MX8MM EVK (i.MX8MM)

      ZII i.MX7 RPU2 (i.MX7)

      ซีไอไอ เอสพีบี4 (VF610),

      ซีไอ อัลตร้า (i.MX8M)

      TQ TQMa7S (i.MX7Solo),

      TQ TQMa7D (i.MX7Dual),

      โคโบ ออร่า (i.MX50),

      Menlosystems M53 (i.MX53)), NVIDIA Jetson Nano (Tegra T210)

ในเวลาเดียวกัน มูลนิธิซอฟต์แวร์เสรีลาตินอเมริกา เกิดขึ้น
การเลือก เคอร์เนลฟรี 5.2 - Linux-libre 5.2-gnuปราศจากองค์ประกอบของเฟิร์มแวร์และไดรเวอร์ที่มีส่วนประกอบหรือส่วนของโค้ดที่ไม่ฟรี ซึ่งขอบเขตดังกล่าวถูกจำกัดโดยผู้ผลิต รุ่นใหม่รวมถึงการอัพโหลดไฟล์
เสียงเปิดเฟิร์มแวร์ การโหลด blobs ในไดรเวอร์ถูกปิดใช้งาน
mt7615, rtw88, rtw8822b, rtw8822c, btmtksdio, iqs5xx, ishtp และ ucsi_ccg รหัสการทำความสะอาดหยดในไดรเวอร์และระบบย่อย ixp4xx, imx-sdma, amdgpu, nouveau และ goya รวมถึงในเอกสารประกอบไมโครโค้ดได้รับการอัปเดตแล้ว หยุดการทำความสะอาด blobs ในไดรเวอร์ r8822be เนื่องจากการถอดออก

ที่มา: opennet.ru

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