fwupd, інструмент par excellence для керування оновленнями прошивки в Linux

Логотип Fwupd.

Нещодавно це було оголошено випуск інструменту fwupd 2.0 з відкритим кодом використовується для керування та оновлення мікропрограми різних пристроїв у Linux. Його мета — полегшити встановлення та оновлення мікропрограми на апаратному забезпеченні без необхідності доступу до спеціальних інструментів виробника або перезавантаження в іншу операційну систему.

fwupd використовує службу оновлення прошивки LVFS (Linux Vendor Firmware Service), куди виробники завантажують свої оновлення мікропрограм. На даний момент каталог LVFS містить прошивки для більш ніж 1,600 пристроїв від 160 виробників.

Використання Цей централізований каталог позбавляє виробників необхідності створювати окремі пакети для кожного дистрибутива, дозволяючи їм передавати мікропрограми у файлі ".cab", який містить додаткові метадані, подібно до того, що робиться під час публікації мікропрограм для Windows.

L Користувачі можуть завантажити та встановити ці оновлення безпосередньо зі свого дистрибутива Linux, що полегшує велику кількість процесів, оскільки підтримує як режим автоматичного оновлення прошивки, так і можливість виконання операції після підтвердження.

Серед основних особливостей які відрізняються від fwupd, ми можемо знайти наступне:

  • Підтримка широкого спектру пристроїв (UEFI, USB, Thunderbolt, дисплеї тощо).
  • Установка та оновлення прошивки без перезавантаження та виходу з робочого середовища.
  • Інтеграція з менеджером пакетів і системними оновленнями.
  • Сумісний з багатьма дистрибутивами Linux
  • Це зручне та безпечне рішення для підтримки оновлення прошивки
  • Він сумісний із програмним забезпеченням GNOME та менеджерами програм KDE Discover.
  • Не лише для настільних систем, він також підходить для оновлення мікропрограми на таких пристроях, як смартфони, планшети, сервери та пристрої Інтернету речей.

Що нового у fwupd 2.0?

У цій новій версії fwupd 2.0, фоновий процес перенесено з використання хука GObject з GUsb на прямий доступ до libusb і sysfs. Ця зміна дозволила перемістити емуляцію пристрою до бібліотеки libfwupdplugin і реалізувати емуляцію оновлень мікропрограми на фіктивних пристроях hidraw і nvme, подібно до емуляції, що виконується з фіктивними пристроями USB. Завдяки цій функції ми змогли виконати додаткові тести для виявлення проблем з оновленнями, які можуть виникнути після внесення певних змін у fwupd.

Крім того, бібліотека GUdev, який забезпечує прив’язки GObject до libudev, було видалено з приміщення. Натомість процес fwupd тепер створює сокет netlink аналізувати події udev, що передаються через нього. Ця зміна призвело до значного зменшення споживання пам’яті та навантаження на ЦП як під час запуску, так і під час роботи, окрім спрощення включення підтримки ueventd, яка в майбутньому дозволить fwupd бути сумісним із платформою Android.

Було зроблено оптимізацію, щоб зменшити споживання пам’яті при перенесенні прошивки з файлів на пристрої; Замість копіювання мікропрограми в пам'ять тепер використовується передача через файловий дескриптор. Також Додано підтримку для низки нових пристроїв.

Крім того, Підтримку застарілих метаданих і форматів перевірки мікропрограми припинено, і раніше застарілі утиліти командного рядка були видалені. Також додано API для завантаження звітів у мікропрограмі gnome а система збірки тепер включає підтримку платформи Darwin.

Нарешті, ми додали можливість відображати список файлів ESP у форматі JSON (за допомогою команди fwupdtool esp-list –json) і додали опцію вказувати емульовані пристрої в конфігурації.

Нарешті, якщо ви зацікавлені в тому, щоб дізнатися більше про це, ви можете ознайомитися з деталями в наступне посилання.

Як встановити fwupd на Linux?

Для тих, хто зацікавлений у можливості встановити fwupd, ви повинні знати, що в більшості дистрибутивів він уже попередньо встановлений. Однак, якщо у вас його не встановлено, ви можете зробити це за допомогою наступної команди залежно від вашого дистрибутива:

Ubuntu і похідні:

sudo apt install fwupd

Fedora:

sudo dnf install fwupd

Arch Linux і на його основі:

sudo pacman -S fwupd

Як користуватися fwupd?

Спосіб використання fwupd досить простий і заснований на виконанні команд і правильний спосіб зробити це - завжди оновлювати базу даних доступної мікропрограми, перш ніж перейти до оновлення мікропрограми пристрою. Ми можемо зробити це, ввівши:

sudo fwupdmgr refresh

в подивіться, які пристрої підтримують fwupd, а також їх поточний статус і якщо вони мають доступні оновлення, вони можуть зробити це за допомогою такої команди:

fwupdmgr get-devices

Після того, як ви перерахували пристрої, вони можуть перевірте наявність оновлень прошивки доступний, запустивши:

fwupdmgr get-updates

Якщо доступні оновлення мікропрограми, ви можете застосувати їх, запустивши:

sudo fwupdmgr update

в відобразити список встановлених оновлень мікропрограми через fwupd, ви можете зробити це за допомогою такої команди:

fwupdmgr history