Фейковый вывод и отсутствие устройств ввода на iMac Pro 2017 года

Вопрос или проблема

Я новичок в Linux и пытаюсь начать использовать его на своем iMac Pro 2017 года с процессором Intel Xeon W. Мне удалось успешно установить Ubuntu 22.04.4 и настроить двойную загрузку, однако, похоже, что моя звуковая карта не распознается. В разделе вывода я вижу только Dummy Output и никаких опций ввода. Я пробовал подключать наушники, но они тоже не распознаются. Я попробовал множество рекомендаций, найденных в Google, но успеха не добился. Если это поможет, я выполнил эту команду и вот ее вывод:

sudo lspci -vv | grep -i audio

ubuntu@who-iMacPro:~$ sudo lspci -vv | grep -i audio
02:00.3 Multimedia audio controller: Apple Inc. Apple Audio Device (rev 01)
Subsystem: Apple Inc. Apple Audio Device
f3:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Vega 10 HDMI Audio [Radeon Vega 56/64]
Subsystem: Advanced Micro Devices, Inc. [AMD/ATI] Vega 10 HDMI Audio [Radeon Vega 56/64]

Alsamixer также видит только Vega 10 HDMI Audio.

EDIT: Спасибо за ответ, guiverc, я постараюсь добавлять больше деталей в будущем. Я использую десктопную версию, и вот вывод, который вы запрашивали:

ubuntu@who-iMacPro:~$ sudo lshw -C sound

*-multimedia UNCLAIMED    
   description: Multimedia audio controller
   product: Apple Audio Device
   vendor: Apple Inc.
   physical id: 0.3
   bus info: pci@0000:02:00.3
   version: 01
   width: 64 bits
   clock: 33MHz
   capabilities: pm msi pciexpress bus_master cap_list
   configuration: latency=0
   resources: memory:7f800000-7fbfffff memory:7fd80000-7fdfffff memory:7fe30000-7fe3ffff
*-multimedia
   description: Audio device
   product: Vega 10 HDMI Audio [Radeon Vega 56/64]
   vendor: Advanced Micro Devices, Inc. [AMD/ATI]
   physical id: 0.1
   bus info: pci@0000:f3:00.1
   logical name: card0
   logical name: /dev/snd/controlC0
   logical name: /dev/snd/hwC0D0
   logical name: /dev/snd/pcmC0D10p
   logical name: /dev/snd/pcmC0D11p
   logical name: /dev/snd/pcmC0D3p
   logical name: /dev/snd/pcmC0D7p
   logical name: /dev/snd/pcmC0D8p
   logical name: /dev/snd/pcmC0D9p
   version: 00
   width: 32 bits
   clock: 33MHz
   capabilities: pm pciexpress msi bus_master cap_list
   configuration: driver=snd_hda_intel latency=0
   resources: irq:98 memory:f02a0000-f02a3fff

EDIT2: Добавляю вывод для команды, рекомендованной Archisman Panigrahi.

 ubuntu@who-iMacPro:~$ cd snd_hda_macbookpro && sudo ./install.cirrus.driver.sh

 linux-source-6.5.0/sound/pci/hda/
 linux-source-6.5.0/sound/pci/hda/hda_jack.h
 linux-source-6.5.0/sound/pci/hda/hda_beep.c
 linux-source-6.5.0/sound/pci/hda/hda_local.h
 linux-source-6.5.0/sound/pci/hda/hda_generic.c
 linux-source-6.5.0/sound/pci/hda/ca0132_regs.h
 linux-source-6.5.0/sound/pci/hda/hp_x360_helper.c
 linux-source-6.5.0/sound/pci/hda/hda_beep.h
 linux-source-6.5.0/sound/pci/hda/patch_analog.c
 linux-source-6.5.0/sound/pci/hda/cs35l41_hda.c
 linux-source-6.5.0/sound/pci/hda/patch_si3054.c
 linux-source-6.5.0/sound/pci/hda/hda_tegra.c
 linux-source-6.5.0/sound/pci/hda/patch_ca0110.c
 linux-source-6.5.0/sound/pci/hda/patch_cs8409-tables.c
 linux-source-6.5.0/sound/pci/hda/hda_controller.c
 linux-source-6.5.0/sound/pci/hda/patch_conexant.c
 linux-source-6.5.0/sound/pci/hda/patch_cs8409.h
 linux-source-6.5.0/sound/pci/hda/hda_eld.c
 linux-source-6.5.0/sound/pci/hda/cs35l41_hda_i2c.c
 linux-source-6.5.0/sound/pci/hda/patch_ca0132.c
 linux-source-6.5.0/sound/pci/hda/hda_controller.h
 linux-source-6.5.0/sound/pci/hda/hda_cs_dsp_ctl.c
 linux-source-6.5.0/sound/pci/hda/hda_codec.c
 linux-source-6.5.0/sound/pci/hda/thinkpad_helper.c
 linux-source-6.5.0/sound/pci/hda/hda_generic.h
 linux-source-6.5.0/sound/pci/hda/patch_sigmatel.c
 linux-source-6.5.0/sound/pci/hda/cs35l41_hda_property.c
 linux-source-6.5.0/sound/pci/hda/hda_intel.c
 linux-source-6.5.0/sound/pci/hda/hda_auto_parser.c
 linux-source-6.5.0/sound/pci/hda/hda_sysfs.c
 linux-source-6.5.0/sound/pci/hda/Kconfig
 linux-source-6.5.0/sound/pci/hda/hda_intel_trace.h
 linux-source-6.5.0/sound/pci/hda/cs35l41_hda_spi.c
 linux-source-6.5.0/sound/pci/hda/hda_intel.h
 linux-source-6.5.0/sound/pci/hda/patch_cirrus.c
 linux-source-6.5.0/sound/pci/hda/hda_hwdep.c
 linux-source-6.5.0/sound/pci/hda/hda_bind.c
 linux-source-6.5.0/sound/pci/hda/hda_jack.c
 linux-source-6.5.0/sound/pci/hda/ideapad_s740_helper.c
 linux-source-6.5.0/sound/pci/hda/patch_hdmi.c
 linux-source-6.5.0/sound/pci/hda/hda_component.h
 linux-source-6.5.0/sound/pci/hda/hda_proc.c
 linux-source-6.5.0/sound/pci/hda/patch_cmedia.c
 linux-source-6.5.0/sound/pci/hda/cs35l41_hda.h
 linux-source-6.5.0/sound/pci/hda/Makefile
 linux-source-6.5.0/sound/pci/hda/patch_via.c
 linux-source-6.5.0/sound/pci/hda/patch_realtek.c
 linux-source-6.5.0/sound/pci/hda/hda_controller_trace.h
 linux-source-6.5.0/sound/pci/hda/hda_auto_parser.h
 linux-source-6.5.0/sound/pci/hda/cs35l41_hda_property.h
 linux-source-6.5.0/sound/pci/hda/hda_cs_dsp_ctl.h
 linux-source-6.5.0/sound/pci/hda/patch_cs8409.c
Kernel version later than implemented version - there may be build problems
patching file patch_cs8409.c
Hunk #1 succeeded at 1445 (offset 175 lines).
Hunk #2 succeeded at 1454 (offset 175 lines).
Hunk #3 succeeded at 1483 (offset 175 lines).
patching file patch_cs8409.h
Hunk #2 succeeded at 304 (offset 2 lines).
Hunk #3 succeeded at 331 (offset 2 lines).
Hunk #4 succeeded at 367 (offset 2 lines).
patching file patch_cirrus_apple.h
make -C /lib/modules/6.5.0-27-generic/build CFLAGS_MODULE="-DAPPLE_PINSENSE_FIXUP -DAPPLE_CODECS -DCONFIG_SND_HDA_RECONFIG=1 -Wno-unused-variable -Wno-unused-function" M=/home/cd/snd_hda_macbookpro/build/hda modules
make[1]: Entering directory '/usr/src/linux-headers-6.5.0-27-generic'
warning: the compiler differs from the one used to build the kernel
The kernel was built by: x86_64-linux-gnu-gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
You are using:           
CC [M]  /home/cd/snd_hda_macbookpro/build/hda/patch_cs8409.o
/bin/sh: 1: gcc-12: not found
make[3]: *** [scripts/Makefile.build:251: /home/cd/snd_hda_macbookpro/build/hda/patch_cs8409.o] Error 127
make[2]: *** [/usr/src/linux-headers-6.5.0-27-generic/Makefile:2039: /home/cd/snd_hda_macbookpro/build/hda] Error 2
make[1]: *** [Makefile:234: __sub-make] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-6.5.0-27-generic'
make: *** [Makefile:16: all] Error 2

EDIT 3: Вывод для команд

ubuntu@who-iMacPro:~/snd-hda-codec-cs8409$ make
make -C /lib/modules/6.5.0-27-generic/build CFLAGS_MODULE="-DAPPLE_PINSENSE_FIXUP -DAPPLE_CODECS -DCONFIG_SND_HDA_RECONFIG=1 -Wno-unused-variable -Wno-unused-function" M=/home/cd/snd-hda-codec-cs8409 modules
make[1]: Entering directory '/usr/src/linux-headers-6.5.0-27-generic'
warning: the compiler differs from the one used to build the kernel
The kernel was built by: x86_64-linux-gnu-gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
You are using:           
CC [M]  /home/cd/snd-hda-codec-cs8409/patch_cs8409.o
/bin/sh: 1: gcc-12: not found
make[3]: *** [scripts/Makefile.build:251: /home/cd/snd-hda-codec-cs8409/patch_cs8409.o] Error 127
make[2]: *** [/usr/src/linux-headers-6.5.0-27-generic/Makefile:2039: /home/cd/snd-hda-codec-cs8409] Error 2
make[1]: *** [Makefile:234: __sub-make] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-6.5.0-27-generic'
make: *** [Makefile:16: all] Error 2
ubuntu@who-iMacPro:~/snd-hda-codec-cs8409$ sudo make install
mkdir -p /lib/modules/6.5.0-27-generic/updates/
cp snd-hda-codec-cs8409.ko /lib/modules/6.5.0-27-generic/updates/
cp: cannot stat 'snd-hda-codec-cs8409.ko': No such file or directory
make: *** [Makefile:22: install] Error 1

Edit 4: Вывод после выполнения sudo apt install gcc-12

ubuntu@who-iMacPro:~$ sudo apt install gcc-12
[sudo] пароль для cd: 
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение информации о состоянии... Готово
Будут установлены следующие дополнительные пакеты:
  cpp-12 libasan8 libgcc-12-dev libtsan2
Рекомендуемые пакеты:
  gcc-12-locales cpp-12-doc gcc-12-multilib gcc-12-doc
Будут установлены следующие НОВЫЕ пакеты:
  cpp-12 gcc-12 libasan8 libgcc-12-dev libtsan2
0 обновлено, 5 установлено, 0 удалено и 8 не обновлено.
Необходимо загрузить 40.1 МБ архивов.
После этой операции будет использовано дополнительно 138 МБ дискового пространства.
Продолжить? [Y/n] y
Get:1 http://us.archive.ubuntu.com/ubuntu jammy-updates/main amd64 cpp-12 amd64 12.3.0-1ubuntu1~22.04 [10.8 MB]
Get:2 http://us.archive.ubuntu.com/ubuntu jammy-updates/main amd64 libasan8 amd64 12.3.0-1ubuntu1~22.04 [2,442 kB]
Get:3 http://us.archive.ubuntu.com/ubuntu jammy-updates/main amd64 libtsan2 amd64 12.3.0-1ubuntu1~22.04 [2,477 kB]
Get:4 http://us.archive.ubuntu.com/ubuntu jammy-updates/main amd64 libgcc-12-dev amd64 12.3.0-1ubuntu1~22.04 [2,618 kB]
Get:5 http://us.archive.ubuntu.com/ubuntu jammy-updates/main amd64 gcc-12 amd64 12.3.0-1ubuntu1~22.04 [21.7 MB]
Получено 40.1 МБ за 3с (14.8 МБ/с)  
Выбор ранее не выбранного пакета cpp-12.
(Чтение базы данных ... 241511 файлов и каталогов в данный момент установлены.)
Подготовка к распаковке .../cpp-12_12.3.0-1ubuntu1~22.04_amd64.deb ...
Распаковка cpp-12 (12.3.0-1ubuntu1~22.04) ...
Выбор ранее не выбранного пакета libasan8:amd64.
Подготовка к распаковке .../libasan8_12.3.0-1ubuntu1~22.04_amd64.deb ...
Распаковка libasan8:amd64 (12.3.0-1ubuntu1~22.04) ...
Выбор ранее не выбранного пакета libtsan2:amd64.
Подготовка к распаковке .../libtsan2_12.3.0-1ubuntu1~22.04_amd64.deb ...
Распаковка libtsan2:amd64 (12.3.0-1ubuntu1~22.04) ...
Выбор ранее не выбранного пакета libgcc-12-dev:amd64.
Подготовка к распаковке .../libgcc-12-dev_12.3.0-1ubuntu1~22.04_amd64.deb ...
Распаковка libgcc-12-dev:amd64 (12.3.0-1ubuntu1~22.04) ...
Выбор ранее не выбранного пакета gcc-12.
Подготовка к распаковке .../gcc-12_12.3.0-1ubuntu1~22.04_amd64.deb ...
Распаковка gcc-12 (12.3.0-1ubuntu1~22.04) ...
Настройка cpp-12 (12.3.0-1ubuntu1~22.04) ...
Настройка libasan8:amd64 (12.3.0-1ubuntu1~22.04) ...
Настройка libtsan2:amd64 (12.3.0-1ubuntu1~22.04) ...
Настройка libgcc-12-dev:amd64 (12.3.0-1ubuntu1~22.04) ...
Настройка gcc-12 (12.3.0-1ubuntu1~22.04) ...
Обработка триггеров для man-db (2.10.2-1) ...
Обработка триггеров для libc-bin (2.35-0ubuntu3.6) ...
ubuntu@who-iMacPro:~$ cd snd-hda-codec-cs8409
ubuntu@who-iMacPro:~/snd-hda-codec-cs8409$ make
make -C /lib/modules/6.5.0-27-generic/build CFLAGS_MODULE="-DAPPLE_PINSENSE_FIXUP -DAPPLE_CODECS -DCONFIG_SND_HDA_RECONFIG=1 -Wno-unused-variable -Wno-unused-function" M=/home/cd/snd-hda-codec-cs8409 modules
make[1]: Entering directory '/usr/src/linux-headers-6.5.0-27-generic'
warning: the compiler differs from the one used to build the kernel
  The kernel was built by: x86_64-linux-gnu-gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
  Вы используете:           gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0
  CC [M]  /home/cd/snd-hda-codec-cs8409/patch_cs8409.o
В файле, включенном из /home/cd/snd-hda-codec-cs8409/patch_cs8409.c:1488:
/home/cd/snd-hda-codec-cs8409/patch_cirrus_apple.h: В функции ‘cs_8409_apple_boot_init’:
/home/cd/snd-hda-codec-cs8409/patch_cirrus_apple.h:1191:15: предупреждение: присвоение отбрасывает квалификатор ‘const’ из целевого типа указателя [-Wdiscarded-qualifiers]
 1191 |         hinfo = spec->gen.stream_analog_playback;
      |               ^
  CC [M]  /home/cd/snd-hda-codec-cs8409/patch_cs8409-tables.o
  LD [M]  /home/cd/snd-hda-codec-cs8409/snd-hda-codec-cs8409.o
  MODPOST /home/cd/snd-hda-codec-cs8409/Module.symvers
  CC [M]  /home/cd/snd-hda-codec-cs8409/snd-hda-codec-cs8409.mod.o
  LD [M]  /home/cd/snd-hda-codec-cs8409/snd-hda-codec-cs8409.ko
  BTF [M] /home/cd/snd-hda-codec-cs8409/snd-hda-codec-cs8409.ko
Пропуск генерацию BTF для /home/cd/snd-hda-codec-cs8409/snd-hda-codec-cs8409.ko из-за недоступности vmlinux
make[1]: Leaving directory '/usr/src/linux-headers-6.5.0-27-generic'
ubuntu@who-iMacPro:~/snd-hda-codec-cs8409$ sudo make install
mkdir -p /lib/modules/6.5.0-27-generic/updates/
cp snd-hda-codec-cs8409.ko /lib/modules/6.5.0-27-generic/updates/
depmod -a
ubuntu@who-iMacPro:~/snd-hda-codec-cs8409$

Этот ответ основан на аналогичных решениях, которые работают в Debian.

Сначала установите заголовки ядра и инструменты для компиляции.

sudo apt install linux-headers-generic
sudo apt install build-essential git gcc-12

Скачайте драйвер

git clone https://github.com/egorenar/snd-hda-codec-cs8409

Наконец, скомпилируйте и установите драйвер

cd snd-hda-codec-cs8409
make
sudo make install

Перезагрузите компьютер, и звук должен заработать.

Мне также пришлось установить пакеты git и make на свежей установке Ubuntu 24.04.1.

Это работает:

sudo apt install linux-headers-generic   
sudo apt install build-essential git gcc-13   
git clone https://github.com/egorenar/snd-hda-codec-cs8409   
cd snd-hda-codec-cs8409  
make  
sudo make install

Перезагрузите, и звук будет работать.

Ответ или решение

Проблема отсутствия звука на вашем iMac Pro 2017 года с установленной Ubuntu 22.04.4 связана с несоответствием драйверов звукового устройства. Ваша система не распознает звуковую карту Apple, о чем свидетельствует вывод команды lshw и lspci, где отмечается, что звуковой контроллер Apple не присвоен и не управляется каким-либо драйвером.

Вот шаги, которые вам нужно предпринять, чтобы решить эту проблему:

Шаг 1: Установка необходимых пакетов

Сначала необходимо установить пакет заголовков ядра и инструменты для компиляции:

sudo apt update
sudo apt install linux-headers-generic build-essential git gcc-12

Шаг 2: Загрузка драйвера

Скачайте драйвер для поддержки звуковых устройств Apple:

git clone https://github.com/egorenar/snd-hda-codec-cs8409

Шаг 3: Компиляция и установка драйвера

Перейдите в директорию с загруженным драйвером и выполните следующие команды:

cd snd-hda-codec-cs8409
make
sudo make install

Шаг 4: Обновление зависимостей

После установки драйвера не забудьте обновить зависимости, чтобы система могла обнаружить новый модуль:

sudo depmod -a

Шаг 5: Перезагрузка компьютера

Теперь перезагрузите компьютер, чтобы изменения вступили в силу:

sudo reboot

Шаг 6: Проверка работы звука

После перезагрузки проверьте настройки звука. Для этого откройте настройки звука в Ubuntu и убедитесь, что ваше звуковое устройство отображается верно. Также протестируйте вывод звука через динамики или наушники.

Дополнительные советы

Если звук все еще не работает, убедитесь, что вы используете последнюю версию ядра, совместимую с вашим оборудованием. Иногда проблема может возникать из-за версии пакета ядра, поэтому обновление может помочь.

Если проблемы продолжаются, вы можете рассмотреть возможность обращения за помощью на Linux-форумы или к сообществам, связанным с Ubuntu, где пользователи с аналогичным оборудованием могут предложить дополнительные решения.

Надеюсь, эти шаги помогут вам решить проблему и вы сможете наслаждаться звуком на вашем iMac Pro под управлением Ubuntu.

Оцените материал
Добавить комментарий

Капча загружается...