انتشار هسته لینوکس 5.15


پس از دو ماه توسعه، لینوس توروالدز هسته لینوکس 5.15 را منتشر کرد. تغییرات قابل توجه شامل یک درایور جدید NTFS قابل نوشتن، یک ماژول ksmbd با اجرای سرور SMB، یک زیرسیستم DAMON برای نظارت بر دسترسی به حافظه، قفل اولیه در زمان واقعی، پشتیبانی از fs-verity در Btrfs، فراخوان سیستم process_mrelease برای حافظه سیستم های پاسخ به کمبود، کنترل از راه دور. ماژول تصدیق dm-ima.

13499 تصحیح از 1888 توسعه دهندگان در نسخه جدید پذیرفته شد،
اندازه پچ – 42 مگابایت (تغییرات روی 10895 فایل تأثیر گذاشت، 632522 خط کد اضافه شد، 299966 خط حذف شد). حدود 45 درصد از کل تغییرات معرفی شده در 5.15 مربوط به درایورهای دستگاه، تقریبا 14 درصد تغییرات مربوط به به روز رسانی کدهای خاص معماری سخت افزاری، 14 درصد مربوط به پشته شبکه، 6 درصد مربوط به سیستم های فایل و 3 درصد مربوط می شود. مربوط به زیرسیستم های هسته داخلی

نوآوری های اصلی:

  • زیرسیستم دیسک، I/O و سیستم‌های فایل
    • پیاده‌سازی جدیدی از سیستم فایل NTFS که توسط نرم‌افزار Paragon باز شده است، در هسته به کار گرفته شده است. درایور جدید می‌تواند در حالت نوشتن کار کند و از تمام ویژگی‌های نسخه فعلی NTFS 3.1 پشتیبانی می‌کند، از جمله ویژگی‌های فایل توسعه‌یافته، لیست‌های دسترسی (ACL)، حالت فشرده‌سازی داده‌ها، کار کارآمد با فضاهای خالی در فایل‌ها (sparse) و پخش مجدد تغییرات از گزارش برای بازیابی یکپارچگی پس از شکست …
    • سیستم فایل Btrfs از مکانیزم fs-verity پشتیبانی می‌کند، که برای کنترل شفاف یکپارچگی و اعتبار فایل‌های فردی بر اساس هش‌های رمزنگاری مرتبط با فایل‌ها یا کلیدهای ذخیره‌شده در ناحیه ابرداده استفاده می‌شود. قبلاً fs-verity فقط برای FS Ext4 و F2fs در دسترس بود.

      Btrfs همچنین برای نگاشت شناسه کاربر برای سیستم های فایل نصب شده (که قبلا برای فایل سیستم های FAT، ext4 و XFS پشتیبانی می شد) پشتیبانی می کند. این ویژگی به شما امکان می دهد فایل های یک کاربر خاص را در یک پارتیشن خارجی نصب شده با کاربر دیگری در سیستم فعلی مرتبط کنید.

      تغییرات دیگر در Btrfs عبارتند از: افزایش سرعت افزودن کلیدها به فهرست دایرکتوری برای بهبود عملکرد ایجاد فایل. توانایی کار با raid0 با یک دستگاه و raid10 با دو (به عنوان مثال، در فرآیند پیکربندی مجدد یک آرایه)؛ گزینه "rescue = ibadroots" برای نادیده گرفتن درخت مقدار نامعتبر. تسریع عملیات "ارسال"؛ کاهش تضاد قفل در طول عملیات تغییر نام؛ امکان استفاده از بخش های 4K در سیستم هایی با اندازه صفحه حافظه 64K.

    • توانایی استفاده از تاریخ های FS بعد از 2038 را در XFS تثبیت کرد. مکانیسم غیرفعال سازی inode معوق و پشتیبانی از نصب و حذف معوق و ویژگی های فایل پیاده سازی شده است. به منظور جلوگیری از بروز مشکل، امکان غیرفعال کردن سهمیه دیسک برای پارتیشن‌های نصب‌شده از قبل حذف شده است (می‌توانید به اجبار سهمیه‌ها را غیرفعال کنید، اما شمارش مرتبط با آنها ادامه خواهد داشت، بنابراین برای خاموش شدن کامل، نصب مجدد لازم است).
    • در EXT4، کار برای افزایش عملکرد نوشتن بافرهای delalloc و پردازش فایل‌های یتیمی انجام شده است که به وجود خود ادامه می‌دهند، زیرا باز باقی می‌مانند، اما خود را بدون اتصال دایرکتوری می‌بینند. پردازش عملیات دور انداختن از kthread jbd2-stream حذف شده است تا قفل‌ها برای عملیات با ابرداده حذف شوند.
    • گزینه «discard_unit = block | segment | بخش» را به F2FS اضافه کرد تا عملیات کنار گذاشتن (علامت گذاری بلوک های آزاد شده که دیگر نمی توانند به صورت فیزیکی ذخیره شوند) به بلوک، بخش، بخش یا تراز بخش. پشتیبانی برای ردیابی تغییرات تاخیر I/O اضافه شده است.
    • EROFS (سیستم فایل فقط خواندنی قابل توسعه) پشتیبانی از I/O مستقیم برای فایل های ذخیره شده بدون فشرده سازی و همچنین پشتیبانی از fiemap را اضافه کرد.
    • OverlayFS مدیریت صحیح پرچم‌های مانت "غیرقابل تغییر"، "فقط پیوست"، "همگام‌سازی" و "noatime" را پیاده‌سازی می‌کند.
    • NFS مدیریت شرایطی را که سرور NFS پاسخگو نمی‌شود، بهبود بخشیده است. قابلیت نصب از سروری که قبلا استفاده شده است، اما از طریق یک آدرس شبکه دیگر قابل دسترسی است، اضافه شده است.
    • آماده سازی برای بازنویسی زیرسیستم FSCACHE آغاز شده است.
    • اضافه شدن پشتیبانی از پارتیشن های EFI با طرح بندی جدول GPT غیر استاندارد.
    • یک پرچم جدید FAN_REPORT_PIDFD در fanotify پیاده‌سازی شده است که باعث می‌شود pidfd به‌عنوان ابرداده برگردانده شده مشخص شود. Pidfd به مدیریت موقعیت‌های استفاده مجدد از PID برای شناسایی دقیق‌تر فرآیندهایی که به فایل‌های نظارت شده دسترسی دارند کمک می‌کند (pidfd با یک فرآیند خاص مرتبط است و تغییر نمی‌کند، در حالی که یک PID می‌تواند پس از پایان فرآیند فعلی مرتبط با آن PID با فرآیند دیگری مرتبط شود).
    • فراخوانی سیستم move_mount () امکان افزودن نقاط اتصال به گروه‌های مشترک موجود را اضافه کرد، که مشکلات مربوط به ذخیره و بازیابی وضعیت فرآیندها در جعبه ابزار CRIU را هنگامی که فضاهای نصب متعدد در کانتینرهای جدا شده به اشتراک گذاشته شده است، حل می‌کند.
    • محافظت در برابر شرایط مسابقه پنهان که به طور بالقوه می تواند منجر به خراب شدن پرونده هنگام خواندن از حافظه پنهان هنگام مدیریت حفره های یک فایل شود، اضافه شد.
    • پشتیبانی از قفل‌های فایل اجباری که با مسدود کردن تماس‌های سیستمی که منجر به تغییر فایل می‌شوند، اجرا می‌شوند، قطع شد. به دلیل شرایط مسابقه احتمالی، این قفل ها غیرقابل اعتماد تلقی می شدند و سال ها پیش منسوخ شده بودند.
    • زیرسیستم LightNVM حذف شده است، که امکان دسترسی مستقیم به درایو SSD، دور زدن لایه شبیه‌سازی را فراهم می‌کند. LightNVM پس از ظهور استانداردهای NVMe که امکان منطقه بندی (ZNS، Zoned Namespace) را فراهم می کند، معنای خود را از دست داد.
  • خدمات حافظه و سیستم
    • زیرسیستم DAMON (مانیتور دسترسی به داده) پیاده‌سازی شده، که اجازه می‌دهد فعالیت‌های مربوط به دسترسی به داده‌ها در RAM را در رابطه با یک فرآیند انتخاب شده در حال اجرا در فضای کاربر ردیابی کند. این زیرسیستم به شما امکان می دهد تا تجزیه و تحلیل کنید که فرآیند در تمام مدت عملیات به چه مناطق حافظه دسترسی داشته است و کدام مناطق حافظه بدون ادعا باقی مانده است. DAMON دارای استفاده کم از CPU، استفاده از حافظه کم، دقت بالا و سربار ثابت قابل پیش بینی بدون در نظر گرفتن اندازه است. این زیرسیستم را می‌توان هم توسط هسته برای بهینه‌سازی مدیریت حافظه و هم توسط ابزارهای فضای کاربر برای درک آنچه که فرآیند انجام می‌دهد و بهینه‌سازی استفاده از حافظه، مانند آزاد کردن حافظه اضافی برای سیستم، استفاده کرد.
    • فراخوانی سیستم process_mrelease برای سرعت بخشیدن به فرآیند آزادسازی حافظه فرآیندی که اجرای آن را پایان می دهد، پیاده سازی شده است. در شرایط عادی، انتشار منبع و خاتمه فرآیند آنی نیست و می‌تواند به دلایل مختلف به تعویق بیفتد، که در عملکرد سیستم‌های پاسخ اولیه برای عملکرد حافظه کم در فضای کاربر، مانند oomd (ارائه شده در systemd) و lmkd (استفاده شده در) اختلال ایجاد می‌کند. اندروید). با فراخوانی process_mrelease، چنین سیستم هایی می توانند به طور قابل پیش بینی بیشتری احیای حافظه را از فرآیندهای به اجبار خاتمه داده شده آغاز کنند.
    • انواع بدوی برای سازماندهی قفل های mutex، ww_mutex، rw_semaphore، spinlock و rwlock بر اساس زیرسیستم RT-Mutex از شاخه هسته PREEMPT_RT، که در حال توسعه پشتیبانی برای کار در زمان واقعی است، منتقل شده است. برای بهبود عملکرد در حالت PREEMPT_RT و کاهش تاثیر بر وقفه ها، تغییراتی به تخصیص دهنده دال SLUB اضافه شده است.
    • پشتیبانی از ویژگی زمانبندی وظیفه SCHED_IDLE به cgroup اضافه شده است، که به شما امکان می دهد این ویژگی را به همه فرآیندهای یک گروه که اعضای یک cgroup خاص هستند به طور همزمان اختصاص دهید. آن ها این فرآیندها تنها زمانی شروع می شوند که هیچ کار معلق دیگری در سیستم وجود نداشته باشد. برخلاف تنظیم ویژگی SCHED_IDLE برای هر فرآیند به طور جداگانه، هنگام اتصال SCHED_IDLE به یک گروه c، هنگام انتخاب یک کار برای اجرا، وزن نسبی وظایف درون گروه در نظر گرفته می‌شود.
    • مکانیسم برای محاسبه مصرف حافظه در cgroup با توانایی ردیابی ساختارهای داده هسته اضافی، از جمله ساختارهایی که برای نظرسنجی، پردازش سیگنال و فضاهای نام ایجاد شده اند، گسترش یافته است.
    • پشتیبانی از برنامه‌ریزی نامتقارن اتصالات وظایف به هسته‌های پردازنده در معماری‌هایی اضافه شد که در آن برخی از پردازنده‌ها اجازه انجام وظایف 32 بیتی را می‌دهند و برخی فقط در حالت 64 بیتی اجرا می‌شوند (مانند ARM). حالت جدید به CPUهایی که از وظایف 32 بیتی پشتیبانی می کنند اجازه می دهد تا هنگام برنامه ریزی وظایف 32 بیتی در نظر گرفته شوند.
    • رابط I/O ناهمزمان io_uring اکنون از باز کردن فایل‌ها بلافاصله در جدول فهرست فایل ثابت، بدون استفاده از توصیفگرهای فایل پشتیبانی می‌کند، که سرعت بخشیدن به برخی از انواع عملیات را ممکن می‌سازد، اما برخلاف فرآیند سنتی استفاده از یونیکس است. توصیف کننده فایل برای باز کردن فایل ها

      یک مکانیسم جدید "بازیافت BIO" در io_uring برای زیرسیستم BIO (Block I / O Layer) پیاده سازی شده است، که به شما امکان می دهد هزینه های سربار را در فرآیند مدیریت حافظه داخلی کاهش دهید و تعداد عملیات I / O پردازش شده را افزایش دهید. دوم با حدود 10 درصد …
      Io_uring همچنین برای فراخوانی های سیستم mkdirat ()، symlinkat () و linkat () پشتیبانی می کند.

    • قابلیت درخواست و پردازش رویدادهای تایمر برای برنامه‌های BPF را پیاده‌سازی کرد. یک تکرار کننده برای سوکت های یونیکس اضافه کرد و توانایی دریافت و تنظیم گزینه های سوکت برای setsockopt را پیاده سازی کرد. پشتیبانی از داده های تایپ شده به دامپر BTF اضافه شده است.
    • در سیستم‌های NUMA با انواع مختلف حافظه که از نظر عملکرد متفاوت هستند، وقتی فضای خالی تمام می‌شود، صفحات حافظه از قبل به جای حذف این صفحات، از DRAM به حافظه دائمی کندتر منتقل می‌شوند. آزمایش نشان داده است که این تاکتیک به طور کلی عملکرد سیستم های مشابه را بهبود می بخشد. برای NUMA، توانایی تخصیص صفحات حافظه برای یک فرآیند از مجموعه انتخاب شده ای از گره های NUMA نیز اجرا شده است.
    • پشتیبانی از جداول صفحه حافظه سه و چهار سطح برای معماری ARC پیاده سازی شده است، که بیشتر پشتیبانی از پردازنده های ARC 64 بیتی را ممکن می کند.
    • برای معماری s390، قابلیت استفاده از مکانیسم KFENCE برای شناسایی خطاها در هنگام کار با حافظه، و همچنین پشتیبانی از آشکارساز وضعیت مسابقه KCSAN را اضافه کرد.
    • پشتیبانی برای فهرست کردن لیست پیام‌های خروجی از طریق printk () اضافه شد که به شما امکان می‌دهد همه این پیام‌ها را یکجا بازیابی کنید و تغییرات فضای کاربر را دنبال کنید.
    • در mmap ()، پشتیبانی از گزینه VM_DENYWRITE حذف شده است، و کد هسته از حالت MAP_DENYWRITE حذف شده است، که تعداد موقعیت هایی را که منجر به مسدود شدن نوشتن فایل با ETXTBSY می شود کاهش می دهد. خطاها
    • نوع جدیدی از "کاوشگر رویداد" به زیرسیستم ردیابی اضافه شده است که می تواند با تعریف قالب خروجی خود به رویدادهای ردیابی موجود متصل شود.
    • هنگام ساختن یک هسته با استفاده از کامپایلر Clang، اسمبلر درون خطی پروژه LLVM اکنون به طور پیش فرض فعال است.
    • به عنوان بخشی از یک پروژه برای خلاص شدن از شر کد هسته که باعث می شود کامپایلر هشدارها را نمایش دهد، آزمایشی با حالت "-خطا" به طور پیش فرض فعال شده بود، که در آن هشدارهای کامپایلر به عنوان خطا در نظر گرفته می شود، انجام شد. در روند آماده سازی نسخه 5.15، لینوس شروع به پذیرش تنها تغییراتی کرد که منجر به هشدار در هنگام ساختن هسته نمی شد و بیلد را با "-Werror" فعال کرد، اما سپس با این نظر که چنین تصمیمی زودرس است موافقت کرد و گنجاندن آن را به تعویق انداخت. از "-Werror" به طور پیش فرض. کنترل گنجاندن پرچم "-Werror" در هنگام مونتاژ با استفاده از پارامتر WERROR انجام می شود که به طور پیش فرض روی مقدار COMPILE_TEST تنظیم شده است. در حالی که فقط در هنگام ساخت های آزمایشی روشن می شود.
  • مجازی‌سازی و امنیت
    • یک کنترل‌کننده dm-ima جدید به Device Mapper (DM) با پیاده‌سازی مکانیزم تأیید از راه دور بر اساس زیرسیستم معماری اندازه‌گیری یکپارچگی (IMA) اضافه شده است، که اجازه می‌دهد تا یک دستگاه خارجی سرویس برای تأیید وضعیت زیرسیستم های هسته به منظور تأیید صحت آنها. در عمل، dm-ima به استفاده از Device Mapper اجازه می‌دهد تا فضای ذخیره‌سازی مرتبط با سیستم‌های ابری خارجی ایجاد کند، که در آن اعتبار پیکربندی هدف DM راه‌اندازی شده با استفاده از IMA بررسی می‌شود.
    • یک گزینه جدید PR_SPEC_L1D_FLUSH در prctl () پیاده‌سازی می‌شود، وقتی فعال باشد، هر بار که یک سوئیچ زمینه ایجاد می‌شود، هسته شروع به شستشوی محتویات حافظه پنهان سطح اول (L1D) می‌کند. این حالت به طور انتخابی برای مهم ترین فرآیندها اجازه می دهد تا حفاظت اضافی در برابر استفاده از حملات کانال جانبی را اجرا کنند، که برای تعیین داده هایی که در حافظه پنهان در نتیجه آسیب پذیری های ناشی از اجرای گمانه زنی دستورالعمل ها در CPU انجام می شود، انجام می شود. هزینه فعال کردن PR_SPEC_L1D_FLUSH (به طور پیش فرض فعال نیست) جریمه عملکرد قابل توجهی است.
    • توانایی ساخت هسته را با افزودن پرچم "-fzero-call-used-regs = used-gpr" به GCC برای پاک کردن همه رجیسترها قبل از بازگرداندن کنترل از تابع، اجرا کرد. این گزینه در برابر نشت اطلاعات از توابع محافظت می کند و تعداد بلوک های مناسب برای ساخت ابزارهای ROP (برنامه نویسی بازگشت گرا) در اکسپلویت ها را تا 20% کاهش می دهد.
    • توانایی ساخت هسته‌ها را برای معماری ARM64 به عنوان مشتری برای Hyper-V Hypervisor پیاده‌سازی کرد.
    • یک چارچوب جدید برای توسعه درایور "VDUSE" پیشنهاد شده است که امکان پیاده سازی دستگاه های بلوک مجازی در فضای کاربر و استفاده از Virtio را به عنوان یک انتقال برای دسترسی از سیستم های مهمان فراهم می کند.
    • یک درایور Virtio برای گذرگاه I2C اضافه کرد که امکان تقلید کنترل‌کننده‌های I2C را در حالت paravirtualization با استفاده از باطن‌های جداگانه فراهم می‌کند.
    • درایور gpio-virtio Virtio اضافه شد تا به سیستم‌های مهمان اجازه دسترسی به خطوط GPIO ارائه‌شده توسط میزبان را بدهد.
    • قابلیت محدود کردن دسترسی به صفحات حافظه برای دستگاه‌های دارای پشتیبانی DMA در سیستم‌های بدون I/O MMU (واحد مدیریت حافظه) اضافه شد.
    • هایپروایزر KVM توانایی نمایش آمار در قالب هیستوگرام های خطی و لگاریتمی را پیاده سازی می کند.
  • زیرسیستم شبکه
    • ماژول ksmbd به هسته اضافه شده است که یک سرور فایل را با استفاده از پروتکل SMB3 پیاده سازی می کند. این ماژول تکمیل کننده اجرای کلاینت SMB موجود در هسته است و برخلاف سرور SMB فضای کاربر، از نظر عملکرد، مصرف حافظه و ادغام با قابلیت های پیشرفته هسته کارآمدتر است. Ksmbd به عنوان یک برنامه افزودنی با کارایی بالا و آماده برای دستگاه جاسازی شده برای Samba معرفی می شود که در صورت نیاز با ابزارها و کتابخانه های Samba ادغام می شود.
      آنچه از ksmbd متمایز است، پشتیبانی بهبود یافته برای ذخیره فایل های توزیع شده (اجاره های SMB) در سیستم های محلی است که می تواند ترافیک را به میزان قابل توجهی کاهش دهد. در آینده، آنها قصد دارند پشتیبانی از RDMA ("smbdirect") و پسوندهای پروتکل مربوط به افزایش قابلیت اطمینان رمزگذاری و تأیید توسط امضای دیجیتال را اضافه کنند.
    • مشتری CIFS پشتیبانی از NTLM و الگوریتم‌های احراز هویت کمتر امن را کنار گذاشته است.
    • پشتیبانی چندپخشی در اجرای پل‌سازی vlan اجرا می‌شود.
    • درایور پیوند برای تجمع رابط شبکه، پشتیبانی از زیرسیستم XDP (مسیر داده eXpress) را اضافه می کند، که امکان دستکاری بسته های شبکه را قبل از پردازش آنها توسط پشته شبکه هسته لینوکس فراهم می کند.
    • پشته بی سیم mac80211 از 6 گیگاهرتز STA (مجوز موقت ویژه) در حالت های LPI، SP و VLP و همچنین توانایی تنظیم TWT های جداگانه (Target Wake Time) در حالت AP پشتیبانی می کند.
    • پشتیبانی از پروتکل حمل و نقل اجزای مدیریت (MCTP) اضافه شد، که برای برقراری ارتباط بین کنترل‌کننده‌ها و دستگاه‌های مرتبط (پردازنده‌های میزبان، تجهیزات جانبی و غیره) استفاده می‌شود.
    • ادغام مداوم در هسته MPTCP (MultiPath TCP)، توسعه پروتکل TCP برای سازماندهی اتصال TCP با تحویل بسته ها به طور همزمان در طول چندین مسیر از طریق رابط های شبکه مختلف که به آدرس های IP مختلف متصل شده اند. نسخه جدید پشتیبانی از آدرس های fullmesh را اضافه می کند.
    • کنترل‌کننده‌هایی برای جریان‌های شبکه محصور شده در SRv6 (Segment Routing IPv6) به فیلتر شبکه اضافه شد.
    • پشتیبانی sockmap برای سوکت های جریان یونیکس اضافه شد.
  • سخت افزار
    • درایور amdgpu از APU های Cyan Skillfish (مجهز به پردازنده های گرافیکی Navi 1x) پشتیبانی می کند. پشتیبانی از کدک ویدیویی برای APU Yellow Carp پیاده سازی شده است. پشتیبانی از GPU Aldebaran بهبود یافته است. شناسه‌های نقشه جدید بر اساس GPU Navi 24 "Beige Goby" و RDNA2 اضافه شد. یک پیاده سازی بهبود یافته از صفحه نمایش مجازی (VKMS) پیشنهاد شده است. اضافه شدن پشتیبانی برای نظارت بر دمای تراشه های AMD Zen 3.
    • درایور amdkfd (برای پردازنده‌های گرافیکی گسسته مانند Polaris) یک مدیر حافظه مجازی مشترک (SVM) را بر اساس زیرسیستم مدیریت حافظه ناهمگن (HMM) پیاده‌سازی می‌کند، که به دستگاه‌هایی با واحد مدیریت حافظه (MMU) خود اجازه می‌دهد تا بتوانند دسترسی به حافظه اصلی از جمله با کمک HMM، می توانید یک فضای آدرس مشترک بین GPU و CPU سازماندهی کنید که در آن GPU می تواند به حافظه اصلی فرآیند دسترسی داشته باشد.
    • درایور i915 برای گرافیک اینتل استفاده از مدیر حافظه ویدیویی TTM را گسترش می دهد و شامل توانایی مدیریت مصرف انرژی بر اساس GuC (گرافیک میکرو کنترلر) است. آماده سازی برای اجرای پشتیبانی از گرافیک Intel ARC Alchemist و پردازنده های گرافیکی Intel Xe-HP آغاز شده است.
    • В драйвере nouveau реализовано управление подсветкой панелей eDP при помощи DPCD (DisplayPort Configuration Data).
    • В драйвер msm добавлена поддержка GPU Adreno 7c Gen 3 и Adreno 680.
    • Для чипа Apple M1 реализован драйвер IOMMU.
    • Добавлен звуковой драйвер для систем на базе APU AMD Van Gogh.
    • В ветку staging добавлен драйвер Realtek R8188EU, который заменил собой старый вариант драйвера (rtl8188eu) для беспроводных чипов Realtek RTL8188EU 802.11 b/g/n.
    • В состав принят драйвер ocp_pt для развиваемой компанией Meta (Facebook) PCIe-платы с реализацией миниатюрных атомных часов и GNSS-ресивера, которые могут применяться для организации работы обособленных серверов синхронизации точного времени.
    • Добавлена поддержка смартфонов
      Sony Xperia 10II (Snapdragon 665), Xiaomi Redmi 2 (Snapdragon MSM8916), Samsung Galaxy S3 (Snapdragon MSM8226), Samsung Gavini/Codina/Kyle.
    • Добавлена поддержка ARM SoС и плат NVIDIA Jetson TX2 NX Developer Kit, Sancloud BBE Lite, PicoITX, DRC02, SolidRun SolidSense, SKOV i.MX6, Nitrogen8, Traverse Ten64, GW7902, Microchip SAMA7, ualcomm Snapdragon SDM636/SM8150, Renesas R-Car H3e-2G/M3e-2G, Marvell CN913x,
      ASpeed AST2600 (серверные платы Facebook Cloudripper, Elbert и Fuji), 4KOpen STiH418-b2264.
    • Добавлена поддержка LCD-панелей Gopher 2b, EDT ETM0350G0DH6/ETMV570G2DHU, LOGIC Technologies LTTD800480070-L6WH-RT, Multi-Innotechnology MI1010AIT-1CP1, Innolux EJ030NA 3.0, ilitek ili9341, E Ink VB3300-KCA, Samsung ATNA33XC20, Samsung DB7430, WideChips WS2401.
    • Добавлен драйвер LiteETH с поддержкой Ethernet-контроллеров, используемых в программных SoC LiteX (для FPGA).
    • В драйвер usb-audio добавлена опция lowlatency для управления включением работы в режиме минимальных задержек. Также добавлена опция quirk_flags для передачи специфичных для устройства настроек.

Одновременно латиноамериканский Фонд свободного ПО сформировал
вариант полностью свободного ядра 5.15 – Linux-libre 5.15-gnu, очищенного от элементов прошивок и драйверов, содержащих несвободные компоненты или участки кода, область применения которых ограничена производителем. В новом выпуске реализован вывод сообщения в лог о завершении чистки. Устранены проблемы при формирования пакетов с использованием mkspec, улучшена поддержка пакетов snap. Убраны некоторые предупреждения, выводимые при обработке
заголовочного файла firmware.h. Разрешён вывод некоторых видов предупреждений ("format-extra-args", комментарии, неиспользуемые функции и переменные) при сборке в режиме "-Werror". Добавлена чистка драйвера gehc-achc. Обновлён код чистки блобов в драйверах и подсистемах adreno, btusb, btintel, brcmfmac, aarch64 qcom. Прекращена чистка драйверов prism54 (удалён) и rtl8188eu (заменён на r8188eu).

OpenNET


Комментарии

Ваш комментарий