Вопрос или проблема
Похожие на этот вопрос, мой аудиодрайвер не инициализируется на ThinkPad X1 Gen 12 при загрузке свежей установки рабочего стола Ubuntu 24.04:
[ 6.818752] sof-audio-pci-intel-mtl 0000:00:1f.3: Обнаружен DSP с информацией о классе/подклассе/программе PCI 0x040380
[ 6.821741] sof-audio-pci-intel-mtl 0000:00:1f.3: Цифровые микрофоны обнаружены на платформе Skylake+, используется драйвер SOF
[ 6.823542] sof-audio-pci-intel-mtl 0000:00:1f.3: Обнаружен DSP с информацией о классе/подклассе/программе PCI 0x040380
[ 6.823788] sof-audio-pci-intel-mtl 0000:00:1f.3: связан с 0000:00:02.0 (операции i915_audio_component_bind_ops [i915])
[ 6.831774] sof-audio-pci-intel-mtl 0000:00:1f.3: используется режим прерывания msi
[ 6.950382] sof-audio-pci-intel-mtl 0000:00:1f.3: обнаружены кодеки hda, маска 5
[ 6.950394] sof-audio-pci-intel-mtl 0000:00:1f.3: сейчас используется драйвер HDA machine skl_hda_dsp_generic
[ 6.950401] sof-audio-pci-intel-mtl 0000:00:1f.3: Обнаружены DMIC в таблицах NHLT: 2
[ 6.950935] sof-audio-pci-intel-mtl 0000:00:1f.3: прошивка SOF и/или файл топологии не найдены.
[ 6.951827] sof-audio-pci-intel-mtl 0000:00:1f.3: Поддерживаемые профили по умолчанию
[ 6.951832] sof-audio-pci-intel-mtl 0000:00:1f.3: - тип ipc 1 (Запрашиваемый):
[ 6.951836] sof-audio-pci-intel-mtl 0000:00:1f.3: Файл прошивки: intel/sof-ipc4/mtl/sof-mtl.ri
[ 6.951838] sof-audio-pci-intel-mtl 0000:00:1f.3: Файл топологии: intel/sof-ace-tplg/sof-hda-generic-2ch.tplg
[ 6.951840] sof-audio-pci-intel-mtl 0000:00:1f.3: Проверьте, установлен ли пакет 'sof-firmware'.
[ 6.951841] sof-audio-pci-intel-mtl 0000:00:1f.3: При желании его можно загрузить вручную с:
[ 6.951843] sof-audio-pci-intel-mtl 0000:00:1f.3: https://github.com/thesofproject/sof-bin/
[ 6.957860] sof-audio-pci-intel-mtl 0000:00:1f.3: ошибка: sof_probe_work завершился ошибкой err: -2
И я не могу установить apt-пакет для этого, хотя с немного другой ошибкой, чем возникла в предыдущем вопросе об этом:
$ sudo apt install firmware-sof-signed
Чтение списков пакетов… Готово
Формирование дерева зависимостей… Готово
Чтение информации о состоянии… Готово
Следующие пакеты будут обновлены:
firmware-sof-signed
1 обновленный, 0 новых установлено, 0 подлежат удалению и 3 не обновлены.
1 не полностью установлен или удален.
Необходимо получить 0 B/3,906 kB архивов.
После этой операции будет использовано 5,410 kB дополнительного дискового пространства.
(Чтение базы данных ... 110399 файлов и каталогов в настоящее время установлено.)
Подготовка к распаковке .../firmware-sof-signed_2023.12.1-1ubuntu1_all.deb ...
Распаковка firmware-sof-signed (2023.12.1-1ubuntu1) поверх (2023.12.1-1ubuntu1) ...
dpkg: ошибка при обработке архива /var/cache/apt/archives/firmware-sof-signed_2023.12.1-1ubuntu1_all.deb (--unpack):
невозможно создать '/lib/firmware/intel/sof/community/sof-apl.ri.zst.dpkg-new' (при обработке './lib/firmware/intel/sof
/community/sof-apl.ri.zst'): Файловая система только для чтения
dpkg: ошибка во время очистки:
невозможно удалить вновь извлеченную версию '/lib/firmware/intel/sof/community/sof-apl.ri.zst': Файловая система только для чтения
dpkg-deb: ошибка: подпроцесс вставки был убит сигналом (Разбитый канал)
Во время обработки возникли ошибки:
/var/cache/apt/archives/firmware-sof-signed_2023.12.1-1ubuntu1_all.deb
E: Подпроцесс /usr/bin/dpkg вернул код ошибки (1)
Я сталкиваюсь с той же проблемой только для чтения, когда пытаюсь непосредственно извлечь архив из проекта sof-bin на github. Это происходит, потому что ядро поступает из пакета snap, который сам по себе необходим, так как это машина с безопасной загрузкой и шифрованием диска с поддержкой TPM.
Я смог переключиться с ядра 6.8 по умолчанию на 6.11 (из 24.10) с помощью следующей команды — просто нужно было использовать snap changes
и snap abort #
для завершения изменения в процессе:
$ sudo snap refresh pc-kernel --channel 24.10/stable
ошибка: snap "pc-kernel" имеет "авто-обновление" изменения в процессе
Однако после перезагрузки с 6.11 я все еще получаю проблему отсутствия прошивки SOF, так что, похоже, прошивка для DSP все еще отсутствует.
Какой путь вперед в данной ситуации? Я вижу некоторые обсуждения в интернете о создании собственного пакета snap ядра или, возможно, дополнительного (“гаджет”) пакета snap? Или, даже более хакерски, я мог бы сделать привязку конкретных файлов, которые он ищет. Но вряд ли такие вещи необходимы для самодельной настройки Thinkpad, который должен поддерживать Ubuntu “из коробки”? Обратите внимание, что предустановленная версия была 22.04 и не имела настроенного шифрования диска — шифрование диска было причиной, по которой я все стер и начал заново.
Здесь есть какое-то простое решение, которое я упускаю?
Ответ или решение
Устранение проблемы с установкой прошивки SOF на Ubuntu 24.04
Введение
Проблемы с установкой прошивки Sound Open Firmware (SOF) на системе Ubuntu 24.04 могут возникнуть по многим причинам. В данном случае мы столкнулись с ошибкой инициализации аудиодрайвера на ноутбуке ThinkPad X1 Gen 12 после установки свежей версии операционной системы. Сообщение об ошибке указывает на отсутствие необходимых файлов прошивки и проблемах с файловой системой.
Описание проблемы
Система выдаёт сообщение об ошибках, в частности:
-
Ошибка поиска прошивки:
sof-audio-pci-intel-mtl 0000:00:1f.3: SOF firmware and/or topology file not found.
-
Проблемы с установкой пакета:
При попытке установки пакетаfirmware-sof-signed
возникает ошибка "Read-only file system".
Возможные причины
-
Файловая система в режиме "только для чтения". Это может быть связано с настроенным шифрованием диска (FDE) и использованием безопасной загрузки (Secure Boot).
-
Отсутствие необходимых файлов прошивки в каталоге
/lib/firmware/intel/sof
. -
Конфликты при используемом ядре. Хотя вы уже обновили ядро до версии 6.11, может потребоваться обновление поддержки драйверов.
Шаги для решения проблемы
1. Проверка файловой системы
Сначала необходимо проверить состояние файловой системы. Выполните следующую команду, чтобы проверить, не заблокирована ли файловая система в режиме "только для чтения":
mount | grep 'on / '
Если вы видите ro
, это значит, что файловая система заблокирована в режиме "только для чтения". Чтобы исправить это, попробуйте перезагрузить систему и при загрузке ввести команду:
sudo mount -o remount,rw /
Если это не поможет, вам, возможно, потребуется загрузиться из среды восстановления и запустить fsck
для исправления ошибок файловой системы.
2. Установка прошивки SOF
Если файловая система работает в нормальном режиме, перейдите к установке прошивки SOF:
- Убедитесь, что у вас установлен пакет
firmware-sof-signed
:
sudo apt update
sudo apt install firmware-sof-signed
Если установка не удалась, можно попробовать установить файлы прошивки вручную:
- Загрузите файлы прошивки из репозитория SOF на GitHub:
git clone https://github.com/thesofproject/sof-bin.git
- Скопируйте прошивку в каталог
/lib/firmware/intel/sof
:
sudo cp -r sof-bin/intel/* /lib/firmware/intel/sof/
3. Обновление конфигурации snap
Если вы используете загрузку через snap, проблемы могут возникать из-за конфигурации, блокирующей доступ к определённым папкам. Чтобы продолжить, возможно, придется создать указанные директории в snap:
sudo snap remove pc-kernel
sudo snap install pc-kernel --channel=24.10/stable
4. Изменение конфигурации Secure Boot
Если ваша система использует Secure Boot, также проверьте настройки:
- Отключите Secure Boot в BIOS (если это возможно) и проверьте, решает ли это проблему. Если это позволяет системе загрузиться, вы можете снова включить Secure Boot и добавить необходимые подписи для файлов.
Заключение
Проблема с установкой прошивки SOF на Ubuntu 24.04 может быть вызвана множеством факторов, включая режим доступа к файловой системе, отсутствие необходимых файлов и конфликты конфигурации snap. Выполнение предложенных шагов должно помочь вам в устранении проблемы. Если проблема будет сохраняться, рекомендуется обратиться к сообществу Ubuntu или разработчикам SOF для получения дополнительной поддержки.