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

หลังจากสองเดือนของการพัฒนา Linus Torvalds ได้เปิดตัว Linux kernel 5.12 การเปลี่ยนแปลงที่โดดเด่นที่สุด ได้แก่ การรองรับอุปกรณ์บล็อกแบบแบ่งโซนใน Btrfs ความสามารถในการแมป ID ผู้ใช้สำหรับระบบไฟล์ การล้างสถาปัตยกรรม ARM รุ่นเก่า โหมดการเขียน "กระตือรือร้น" ใน NFS กลไก LOOKUP_CACHED สำหรับการกำหนดเส้นทางไฟล์จากแคช , รองรับคำสั่งอะตอมมิกใน BPF, ระบบดีบัก KFENCE สำหรับระบุข้อผิดพลาดเมื่อทำงานกับหน่วยความจำ, โหมดการโพล NAPI ที่ทำงานอยู่ในเธรดเคอร์เนลแยกต่างหากในสแต็กเครือข่าย, ไฮเปอร์ไวเซอร์ ACRN, ความสามารถในการเปลี่ยนโมเดลยึดล่วงหน้าได้ทันทีในงาน ตัวกำหนดเวลาและการสนับสนุนสำหรับการเพิ่มประสิทธิภาพ LTO เมื่อสร้างใน Clang

เวอร์ชันใหม่ประกอบด้วยการแก้ไข 14170 (ในรุ่นก่อนหน้า 15480) จากนักพัฒนาปี 1946 (1991) ขนาดแพตช์คือ 38 MB (การเปลี่ยนแปลงส่งผลกระทบต่อไฟล์ 12102 (12090) เพิ่มบรรทัดโค้ด 538599 (868025) บรรทัด 333377 (261456) เส้นถูกลบไปแล้ว) ประมาณ 43% ของการเปลี่ยนแปลงทั้งหมดที่นำมาใช้ใน 5.12 เกี่ยวข้องกับไดรเวอร์อุปกรณ์ ประมาณ 17% ของการเปลี่ยนแปลงเกี่ยวข้องกับการอัพเดตโค้ดเฉพาะสำหรับสถาปัตยกรรมฮาร์ดแวร์ 12% เกี่ยวข้องกับสแต็กเครือข่าย 5% เกี่ยวข้องกับระบบไฟล์ และ 4% เกี่ยวข้องกับระบบย่อยเคอร์เนลภายใน

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

  • ระบบย่อยของดิสก์ I/O และระบบไฟล์
    • ความสามารถในการแมป ID ผู้ใช้สำหรับระบบไฟล์ที่เมาท์ได้ถูกนำไปใช้แล้ว (คุณสามารถแมปไฟล์ของผู้ใช้รายหนึ่งบนพาร์ติชันต่างประเทศที่เมาท์กับผู้ใช้อื่นบนระบบปัจจุบัน) การแมปได้รับการสนับสนุนสำหรับระบบไฟล์ FAT, ext4 และ XFS ฟังก์ชันการทำงานที่นำเสนอทำให้สามารถลดความซับซ้อนในการแชร์ไฟล์ระหว่างผู้ใช้ที่แตกต่างกันและบนคอมพิวเตอร์ที่แตกต่างกัน รวมถึงการแมปจะถูกใช้ในกลไกโฮมไดเร็กทอรีแบบพกพา systemd-homed ทำให้ผู้ใช้สามารถย้ายโฮมไดเร็กทอรีของตนไปยังสื่อภายนอกและใช้งานในที่อื่น คอมพิวเตอร์ซึ่งแมป ID ผู้ใช้ที่ไม่ตรงกัน แอปพลิเคชั่นที่มีประโยชน์อีกตัวหนึ่งคือการจัดระเบียบการให้สิทธิ์การเข้าถึงไฟล์ร่วมกันจากโฮสต์ภายนอก โดยไม่ต้องเปลี่ยนแปลงข้อมูลเกี่ยวกับเจ้าของไฟล์ในระบบไฟล์
    • แพตช์ LOOKUP_CACHED ถูกนำมาใช้ในเคอร์เนล ซึ่งช่วยให้การดำเนินการระบุพาธของไฟล์จากพื้นที่ผู้ใช้โดยไม่ต้องบล็อก โดยอิงตามข้อมูลที่มีอยู่ในแคชเท่านั้น โหมด LOOKUP_CACHED ถูกเปิดใช้งานในการเรียก openat2() โดยการส่งแฟล็ก RESOLVE_CACHED ซึ่งข้อมูลจะให้บริการจากแคชเท่านั้น และหากการกำหนดเส้นทางจำเป็นต้องเข้าถึงไดรฟ์ ข้อผิดพลาด EAGAIN จะถูกส่งกลับ
    • ระบบไฟล์ Btrfs ได้เพิ่มการรองรับเบื้องต้นสำหรับอุปกรณ์บล็อกแบบแบ่งโซน (อุปกรณ์บนดิสก์แม่เหล็กแข็งหรือ NVMe SSD ซึ่งเป็นพื้นที่เก็บข้อมูลซึ่งแบ่งออกเป็นโซนที่ประกอบเป็นกลุ่มของบล็อกหรือเซกเตอร์ ซึ่งอนุญาตให้เพิ่มข้อมูลตามลำดับเท่านั้น อัปเดตกลุ่มบล็อกทั้งหมด) ในโหมดอ่านอย่างเดียว จะมีการรองรับบล็อกที่มีข้อมูลเมตาและข้อมูลที่เล็กกว่าหน้า (หน้าย่อย)
    • ในระบบไฟล์ F2FS มีการเพิ่มความสามารถในการเลือกอัลกอริธึมและระดับการบีบอัด เพิ่มการรองรับการบีบอัดระดับสูงสำหรับอัลกอริธึม LZ4 ใช้งานตัวเลือกการติดตั้ง checkpoint_merge
    • คำสั่ง ioctl ใหม่ FS_IOC_READ_VERITY_METADATA ถูกนำมาใช้เพื่ออ่านข้อมูลเมตาจากไฟล์ที่ได้รับการป้องกันด้วย fs-verity
    • ไคลเอ็นต์ NFS ใช้โหมดการเขียน "กระตือรือร้น" (writes=eager) เมื่อเปิดใช้งาน การดำเนินการเขียนไปยังไฟล์จะถูกถ่ายโอนไปยังเซิร์ฟเวอร์ทันที โดยข้ามแคชของเพจ โหมดนี้ช่วยให้คุณลดการใช้หน่วยความจำ ให้การรับข้อมูลเกี่ยวกับจุดสิ้นสุดของพื้นที่ว่างในระบบไฟล์ทันที และในบางสถานการณ์ทำให้สามารถบรรลุประสิทธิภาพที่เพิ่มขึ้นได้
    • มีการเพิ่มตัวเลือกการเมานต์ใหม่ให้กับ CIFS (SMB): acregmax เพื่อควบคุมการแคชไฟล์ และ acdirmax เพื่อควบคุมการแคชข้อมูลเมตาของไดเรกทอรี
    • ใน XFS มีการเปิดใช้งานโหมดการตรวจสอบโควต้าแบบมัลติเธรด การดำเนินการ fsync ได้รับการเร่ง และโค้ด Growfs ได้รับการจัดเตรียมเพื่อใช้ฟังก์ชันในการลดขนาดของระบบไฟล์
  • บริการหน่วยความจำและระบบ
    • เพิ่มระบบย่อย DTMP (Dynamic Thermal Power Management) แล้ว ช่วยให้คุณสามารถควบคุมการใช้พลังงานของอุปกรณ์ต่างๆ แบบไดนามิกตามขีดจำกัดอุณหภูมิทั่วไปที่ตั้งไว้
    • ความสามารถในการสร้างเคอร์เนลโดยใช้คอมไพเลอร์ Clang พร้อมการรวมการปรับให้เหมาะสมในขั้นตอนการเชื่อมโยง (LTO, การเพิ่มประสิทธิภาพเวลาลิงก์) ได้ถูกนำมาใช้แล้ว การปรับให้เหมาะสม LTO จะแตกต่างกันไปโดยคำนึงถึงสถานะของไฟล์ทั้งหมดที่เกี่ยวข้องกับกระบวนการสร้าง ในขณะที่โหมดการปรับให้เหมาะสมแบบดั้งเดิมจะปรับให้เหมาะสมแต่ละไฟล์แยกจากกัน และไม่คำนึงถึงเงื่อนไขสำหรับการเรียกใช้ฟังก์ชันที่กำหนดไว้ในไฟล์อื่น ตัวอย่างเช่น ด้วย LTO การใช้งานแบบอินไลน์เป็นไปได้สำหรับฟังก์ชันจากไฟล์อื่น รหัสที่ไม่ได้ใช้จะไม่รวมอยู่ในไฟล์ปฏิบัติการ การตรวจสอบประเภทและการเพิ่มประสิทธิภาพทั่วไปจะดำเนินการในระดับโครงการโดยรวม ปัจจุบันการสนับสนุน LTO จำกัด อยู่ที่สถาปัตยกรรม x86 และ ARM64
    • เป็นไปได้ที่จะเลือกโหมดการจองล่วงหน้า (PREMPT) ในตัวกำหนดเวลางานที่ขั้นตอนการบูต (preempt=none/voluntary/full) หรือในขณะที่ทำงานผ่าน debugfs (/debug/sched_debug) หากมีการระบุการตั้งค่า PREEMPT_DYNAMIC เมื่อสร้างเคอร์เนล ก่อนหน้านี้ โหมดการอัดขึ้นรูปสามารถตั้งค่าได้ที่ระดับพารามิเตอร์การประกอบเท่านั้น การเปลี่ยนแปลงนี้ช่วยให้การกระจายสามารถจัดส่งเคอร์เนลโดยเปิดใช้งานโหมด PREEMPT ซึ่งให้เวลาแฝงน้อยที่สุดสำหรับเดสก์ท็อปโดยเสียค่าปรับปริมาณงานเล็กน้อย และหากจำเป็นให้ถอยกลับไปเป็น PREEMPT_VOLUNTARY (โหมดกลางสำหรับเดสก์ท็อป) หรือ PREEMPT_NONE (ให้ปริมาณงานสูงสุดสำหรับเซิร์ฟเวอร์) .
    • เพิ่มการสนับสนุนสำหรับการดำเนินการอะตอมมิก BPF_ADD, BPF_AND, BPF_OR, BPF_XOR, BPF_XCHG และ BPF_CMPXCHG ให้กับระบบย่อย BPF
    • โปรแกรม BPF ได้รับความสามารถในการเข้าถึงข้อมูลบนสแต็กโดยใช้พอยน์เตอร์ที่มีการออฟเซ็ตตัวแปร ตัวอย่างเช่น หากก่อนหน้านี้คุณสามารถใช้เพียงดัชนีองค์ประกอบคงที่ในการเข้าถึงอาร์เรย์บนสแต็ก ตอนนี้คุณสามารถใช้ดัชนีที่เปลี่ยนแปลงได้แล้ว การควบคุมการเข้าถึงภายในขอบเขตที่มีอยู่เท่านั้นที่ดำเนินการโดยผู้ตรวจสอบ BPF คุณลักษณะนี้มีให้ใช้งานเฉพาะกับโปรแกรมที่ได้รับสิทธิพิเศษเท่านั้น เนื่องจากมีความกังวลเกี่ยวกับการใช้ประโยชน์จากช่องโหว่ของการเรียกใช้โค้ดแบบเก็งกำไร
    • เพิ่มความสามารถในการแนบโปรแกรม BPF เข้ากับจุดติดตามเปล่าที่ไม่เกี่ยวข้องกับเหตุการณ์การติดตามที่มองเห็นได้ในพื้นที่ผู้ใช้ (ไม่รับประกันการเก็บรักษา ABI สำหรับจุดติดตามดังกล่าว)
    • มีการรองรับบัส CXL 2.0 (Compute Express Link) ซึ่งใช้เพื่อจัดระเบียบการโต้ตอบความเร็วสูงระหว่าง CPU และอุปกรณ์หน่วยความจำ (อนุญาตให้คุณใช้อุปกรณ์หน่วยความจำภายนอกเป็นส่วนหนึ่งของ RAM หรือหน่วยความจำถาวรราวกับว่าหน่วยความจำนี้ เชื่อมต่อผ่านตัวควบคุมหน่วยความจำมาตรฐานใน CPU)
    • เพิ่มไดรเวอร์ nvmem เพื่อดึงข้อมูลจากพื้นที่หน่วยความจำที่จองเฟิร์มแวร์ไว้ซึ่ง Linux ไม่สามารถเข้าถึงได้โดยตรง (เช่น หน่วยความจำ EEPROM ที่สามารถเข้าถึงได้ทางกายภาพด้วยเฟิร์มแวร์เท่านั้น หรือข้อมูลที่สามารถเข้าถึงได้เฉพาะในช่วงการบูตช่วงต้นเท่านั้น)
    • การสนับสนุนระบบโปรไฟล์ "oprofile" ได้ถูกลบออกไปแล้ว ซึ่งไม่ได้ใช้อย่างแพร่หลายและถูกแทนที่ด้วยกลไกการทำงานที่ทันสมัยกว่า
    • อินเทอร์เฟซ I/O แบบอะซิงโครนัส io_uring จัดให้มีการรวมเข้ากับกลุ่ม c ที่ควบคุมการใช้หน่วยความจำ
    • สถาปัตยกรรม RISC-V รองรับระบบ NUMA รวมถึงกลไก kprobes และ uprobes
    • เพิ่มความสามารถในการใช้การเรียกของระบบ kcmp() โดยไม่คำนึงถึงการทำงานของสแนปช็อตสถานะกระบวนการ (จุดตรวจ/กู้คืน)
    • แมโคร EXPORT_UNUSED_SYMBOL() และ EXPORT_SYMBOL_GPL_FUTURE() ซึ่งไม่ได้ใช้ในทางปฏิบัติมานานหลายปี ได้ถูกลบออกไปแล้ว
  • การจำลองเสมือนและความปลอดภัย
    • เพิ่มกลไกการป้องกัน KFence (Kernel Electric Fence) ซึ่งตรวจจับข้อผิดพลาดเมื่อทำงานกับหน่วยความจำ เช่น บัฟเฟอร์โอเวอร์รัน และการเข้าถึงหลังจากเพิ่มหน่วยความจำ ต่างจากกลไกการดีบัก KASAN ระบบย่อย KFence มีลักษณะเฉพาะด้วยความเร็วในการทำงานสูงและโอเวอร์เฮดต่ำ ซึ่งช่วยให้คุณตรวจจับข้อผิดพลาดของหน่วยความจำที่ปรากฏเฉพาะบนระบบการทำงานหรือระหว่างการทำงานระยะยาว
    • เพิ่มการรองรับไฮเปอร์ไวเซอร์ ACRN ซึ่งเขียนขึ้นโดยคำนึงถึงความพร้อมสำหรับงานแบบเรียลไทม์และความเหมาะสมสำหรับใช้ในระบบที่มีความสำคัญต่อภารกิจ ACRN ให้ค่าใช้จ่ายน้อยที่สุด รับประกันเวลาแฝงต่ำ และการตอบสนองที่เพียงพอเมื่อโต้ตอบกับอุปกรณ์ รองรับการจำลองเสมือนของทรัพยากร CPU, I/O, ระบบย่อยเครือข่าย, การทำงานของกราฟิกและเสียง ACRN สามารถใช้รันเครื่องเสมือนแบบแยกหลายเครื่องในหน่วยควบคุมอิเล็กทรอนิกส์ แผงหน้าปัด ระบบข้อมูลยานยนต์ อุปกรณ์ IoT สำหรับผู้บริโภค และเทคโนโลยีฝังตัวอื่นๆ ACRN รองรับระบบเกสต์สองประเภท ได้แก่ Service VM ที่มีสิทธิพิเศษ ซึ่งใช้เพื่อจัดการทรัพยากรระบบ (CPU, หน่วยความจำ, I/O ฯลฯ) และ VM ผู้ใช้แบบกำหนดเอง ซึ่งสามารถรัน Linux, Android และ Windows ได้
    • ในระบบย่อย IMA (Integrity Measuring Architecture) ซึ่งเก็บรักษาฐานข้อมูลแฮชสำหรับตรวจสอบความสมบูรณ์ของไฟล์และข้อมูลเมตาที่เกี่ยวข้อง ขณะนี้คุณสามารถตรวจสอบความสมบูรณ์ของข้อมูลของเคอร์เนลได้ เช่น เพื่อติดตามการเปลี่ยนแปลงในกฎ SELinux .
    • ความสามารถในการสกัดกั้นไฮเปอร์คอลของ Xen และส่งต่อไปยังโปรแกรมจำลองที่ทำงานในพื้นที่ผู้ใช้ได้ถูกเพิ่มไปยังไฮเปอร์ไวเซอร์ KVM
    • เพิ่มความสามารถในการใช้ Linux เป็นสภาพแวดล้อมรูทสำหรับไฮเปอร์ไวเซอร์ Hyper-V สภาพแวดล้อมรูทสามารถเข้าถึงฮาร์ดแวร์ได้โดยตรงและใช้เพื่อรันระบบเกสต์ (คล้ายกับ Dom0 ใน Xen) จนถึงขณะนี้ Hyper-V (Microsoft Hypervisor) รองรับ Linux ในสภาพแวดล้อมแบบเกสต์เท่านั้น แต่ไฮเปอร์ไวเซอร์เองก็ถูกควบคุมจากสภาพแวดล้อมที่ใช้ Windows
    • เพิ่มการรองรับการเข้ารหัสแบบอินไลน์สำหรับการ์ด eMMC ซึ่งช่วยให้คุณสามารถใช้กลไกการเข้ารหัสที่สร้างไว้ในตัวควบคุมไดรฟ์ที่เข้ารหัสและถอดรหัส I/O อย่างโปร่งใส
    • การสนับสนุนแฮช RIPE-MD 128/256/320 และ Tiger 128/160/192 ซึ่งไม่ได้ใช้ในแกนกลาง เช่นเดียวกับรหัสสตรีม Salsa20 ซึ่งถูกแทนที่ด้วยอัลกอริธึม ChaCha20 ได้ถูกลบออกจาก ระบบย่อยการเข้ารหัสลับ อัลกอริธึม blake2 ได้รับการอัปเดตเพื่อใช้ blake2s
  • ระบบย่อยของเครือข่าย
    • เพิ่มความสามารถในการย้ายตัวจัดการการโพล NAPI สำหรับอุปกรณ์เครือข่ายไปยังเคอร์เนลเธรดที่แยกจากกัน ซึ่งช่วยให้ปรับปรุงประสิทธิภาพสำหรับปริมาณงานบางประเภท ก่อนหน้านี้ การโพลดำเนินการในบริบทของ softirq และไม่ได้ครอบคลุมอยู่ในตัวกำหนดเวลางาน ซึ่งทำให้ยากต่อการดำเนินการปรับให้เหมาะสมแบบละเอียดเพื่อให้ได้ประสิทธิภาพสูงสุด การดำเนินการในเคอร์เนลเธรดที่แยกต่างหากทำให้สามารถสังเกตตัวจัดการการโพลจากพื้นที่ผู้ใช้ แนบกับคอร์ CPU แต่ละตัว และนำมาพิจารณาเมื่อกำหนดเวลาการสลับงาน หากต้องการเปิดใช้งานโหมดใหม่ใน sysfs จะมีการเสนอพารามิเตอร์ /sys/class/net//threaded
    • การบูรณาการเข้ากับแกนหลักของ MPTCP (MultiPath TCP) ซึ่งเป็นส่วนขยายของโปรโตคอล TCP สำหรับการจัดระเบียบการดำเนินการของการเชื่อมต่อ TCP พร้อมการส่งแพ็กเก็ตพร้อมกันไปตามหลายเส้นทางผ่านอินเทอร์เฟซเครือข่ายที่แตกต่างกันที่เกี่ยวข้องกับที่อยู่ IP ที่แตกต่างกัน รุ่นใหม่เพิ่มความสามารถในการกำหนดลำดับความสำคัญให้กับเธรดบางเธรด ซึ่งช่วยให้สามารถจัดระเบียบงานของเธรดสำรองที่เปิดเฉพาะเมื่อมีปัญหากับเธรดหลักเท่านั้น
    • IGMPv3 เพิ่มการรองรับกลไก EHT (การติดตามโฮสต์ที่ชัดเจน)
    • กลไกการกรองแพ็กเก็ตของ Netfilter มอบความสามารถในการเป็นเจ้าของตารางบางตัวเพื่อให้ได้รับการควบคุมพิเศษ (เช่น กระบวนการไฟร์วอลล์พื้นหลังสามารถเป็นเจ้าของตารางบางตารางได้ เพื่อป้องกันไม่ให้บุคคลอื่นรบกวนตารางเหล่านั้น)
  • Оборудование
    • เราทำความสะอาดแพลตฟอร์ม ARM ที่ล้าสมัยและไม่มีการดูแลรักษา รหัสสำหรับแพลตฟอร์ม efm32, picoxcell, prima2, tango, u300, zx และ c6x รวมถึงไดรเวอร์ที่เกี่ยวข้องได้ถูกลบออกแล้ว
    • ไดรเวอร์ amdgpu ให้ความสามารถในการโอเวอร์คล็อกการ์ด (OverDrive) โดยใช้ Sienna Cichlid GPU (Navi 22, Radeon RX 6xxx) เพิ่มการรองรับรูปแบบพิกเซล FP16 สำหรับ DCE (เอ็นจิ้นตัวควบคุมการแสดงผล) ตั้งแต่รุ่นที่ 8 ถึงรุ่นที่ 11 สำหรับ GPU Navy Flounder (Navi 21) และ APU Van Gogh ความสามารถในการรีเซ็ต GPU ได้ถูกนำมาใช้แล้ว
    • ไดรเวอร์ i915 สำหรับกราฟิกการ์ด Intel ใช้พารามิเตอร์ i915.mitigations เพื่อปิดใช้งานกลไกการแยกและการป้องกันเพื่อปรับปรุงประสิทธิภาพ สำหรับชิปที่เริ่มต้นจาก Tiger Lake จะรวมการรองรับกลไก VRR (Variable Rate Refresh) ไว้ด้วย ซึ่งช่วยให้คุณปรับเปลี่ยนอัตรารีเฟรชจอภาพได้แบบปรับเปลี่ยนได้เพื่อให้แน่ใจว่ามีความราบรื่นและไม่มีช่องว่างระหว่างเกม มีการรองรับเทคโนโลยี Intel Clear Color เพื่อปรับปรุงความแม่นยำของสี เพิ่มการรองรับ DP-HDMI 2.1 ความสามารถในการควบคุมแบ็คไลท์ของแผง eDP ได้ถูกนำมาใช้แล้ว สำหรับ GPU Gen9 ที่รองรับ LSPCON (Level Shifter และ Protocol Converter) การสนับสนุน HDR จะเปิดใช้งานอยู่
    • ไดรเวอร์ Nouveau เพิ่มการรองรับเบื้องต้นสำหรับ NVIDIA GPU ตามสถาปัตยกรรม GA100 (Ampere)
    • ไดรเวอร์ msm เพิ่มการรองรับ Adreno 508, 509 และ 512 GPU ที่ใช้ในชิป SDM (Snapdragon) 630, 636 และ 660
    • เพิ่มการรองรับการ์ดเสียง Sound BlasterX AE-5 Plus, Lexicon I-ONIX FW810s และ Pioneer DJM-750 เพิ่มการรองรับระบบย่อยเสียง Intel Alder Lake PCH-P มีการรองรับการจำลองซอฟต์แวร์สำหรับการเชื่อมต่อและการถอดตัวเชื่อมต่อเสียงสำหรับตัวจัดการการดีบักในพื้นที่ผู้ใช้
    • เพิ่มการรองรับสำหรับคอนโซลเกม Nintendo 64 ที่ผลิตระหว่างปี 1996 ถึง 2003 (ความพยายามในอดีตในการพอร์ต Linux ไปยัง Nintendo 64 ยังไม่เสร็จสมบูรณ์และถูกจัดประเภทเป็น Vaporware) แรงจูงใจในการสร้างพอร์ตใหม่สำหรับแพลตฟอร์มที่ล้าสมัยซึ่งไม่ได้เปิดตัวมาเกือบยี่สิบปีแล้วคือความปรารถนาที่จะกระตุ้นการพัฒนาโปรแกรมจำลองและทำให้การพอร์ตเกมง่ายขึ้น
    • เพิ่มไดรเวอร์สำหรับคอนโทรลเลอร์เกม Sony PlayStation 5 DualSense
    • เพิ่มการรองรับบอร์ด อุปกรณ์ และแพลตฟอร์ม ARM: PineTab, Snapdragon 888 / SM8350, Snapdragon MTP, Two Beacon EmbeddedWorks, Intel eASIC N5X, Netgear R8000P, Plymovent M2M, Beacon i.MX8M Nano, NanoPi M4B
    • เพิ่มการรองรับ Purism Librem5 Evergreen, Xperia Z3+/Z4/Z5, ASUS Zenfone 2 Laser, BQ Aquaris X5, OnePlus6, OnePlus6T, สมาร์ทโฟน Samsung GT-I9070
    • เพิ่มไดรเวอร์ bcm-vk สำหรับบอร์ดเร่งความเร็ว Broadcom VK (เช่น บอร์ด Valkyrie และ Viper PCIe) ซึ่งสามารถใช้ในการถ่ายโอนการดำเนินการประมวลผลเสียง วิดีโอ และภาพ ตลอดจนการดำเนินการที่เกี่ยวข้องกับการเข้ารหัส ไปยังอุปกรณ์แยกต่างหาก
    • เพิ่มการรองรับแพลตฟอร์ม Lenovo IdeaPad พร้อมความสามารถในการควบคุมการชาร์จอย่างต่อเนื่องและไฟแบ็คไลท์ของคีย์บอร์ด นอกจากนี้ยังรองรับโปรไฟล์ ACPI ของแพลตฟอร์ม ThinkPad พร้อมความสามารถในการควบคุมโหมดการใช้พลังงาน เพิ่มไดรเวอร์สำหรับระบบย่อย Lenovo ThinkPad X1 Tablet Gen 2 HID
    • เพิ่มไดรเวอร์ ov5647 ที่รองรับโมดูลกล้องสำหรับ Raspberry Pi
    • เพิ่มการรองรับสำหรับบอร์ด RISC-V SoC FU740 และ HiFive Unleashed มีการเพิ่มไดรเวอร์ใหม่สำหรับชิป Kendryte K210 ด้วย

ที่มา: opennet.ru

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