Linux как узнать звуковую карту

Обновлено: 03.07.2024

На странице собраны команды терминала, которые позволяют получить различную информацию о системных компонентах и оборудовании, для использования при их настройке или решения аппаратных проблем.
Цель статьи дать более полный список команд для быстрого получения информации в "Одном окне" без прочтения руководств man.

Каждый процесс в Linux имеет свой идентификатор, называемый PID. Перед тем, как выполнить остановку процесса, нужно определить его PID.

WHDD — консольная Ncurses утилита для диагностики жёстких дисков и восстановления данных с них.

WHDD позволяет протестировать жёсткие диски или другое блочное устройство на скорость чтения и записи (определение времени доступа). Утилита имеет псевдографический интерфейс и визуализирует процесс выполнения (подобно DOS-утилите MHDD).

Одним из основных достоинств WHDD является возможность выявления сбойных участков (бэд-секторов) на поверхности жёсткого диска. Утилита работает с тестируемыми дисками непосредственно через порты ввода-вывода, то есть на самом низком уровне, что позволяет получить наиболее достоверные результаты.

WHDD во время сканирования помечает бэд-сектора (bad sector / bad block), остальные блоки упорядочиваются по времени доступа к ним. В утилите присутствует функция копирования носителя, оптимизированная для максимально быстрого извлечения данных.

1. Для запуска утилиты введите в консоли:

2. Выберите диск, с которым хотите работать

Whdd.jpg

3. Выберите действие, которое хотите выполнить с диском:

Whdd2.jpg

  • Show SMART attributes — просмотр атрибутов S.M.A.R.T.
  • Read test — тест на читаемость диска
  • Device copying — копирование жёсткого диска
  • Write zeros — заполнить жёсткий диск нулями
  • Setup Host Protected Area (HPA) — настройки защищённой области пользователя

Команда Show SMART attributes отобразит данные о диске.

Whdd3.jpg

a. Выбираем параметр API (ata / posix). Например, для SATA-диска набираем ata, для внешнего носителя - подключенного по USB - posix[1].

Whdd4.jpg

b.Выбираем начальный сектор (по умолчанию 0)

Whdd5.jpg

Whdd6.jpg

a.Соглашаемся с тем, что "данная операция может сделать все наши данные недоступными или даже полностью уничтожить"

Whdd7.jpg

Whdd8.jpg

Hardware Detection Tool (HDT) - утилита для представления различной информации об аппаратном обеспечении любой x86-совместимой системы. С помощью псевдографисеского интерфейса вы легко можете получить подробную информацию о процессоре, PCI-устройствах, памяти, дисках и пр.

Для запуска HDT, в меню syslinux, вместо Rescue LiveCD выберите Hardware Info.

Hardinfo.jpg

С помощью навигационных клавиш и клавиши ввода вы можете переключаться между пунктами меню и просматривать информацию об устройствах.

Smartmontools - утилита для проверки состояния жестких дисков при помощи SMART.

    Определение дисков в системе:

Отобразится список дисков в вашем компьютере:

Ключевое значение имеет содержимое 3-х столбцов:

  • VALUE - текущее значение параметра
  • WORST - наихудшее значение, которого когда-либо достигало значение Value
  • THRESH - значение, которого должен достигнуть Value этого же атрибута, чтобы состояние атрибута было признано критическим.

Критичным является поле WHEN_FAILED, если оно имеет значение FAIL, то высока вероятность выхода жесткого диска из строя в ближайшее время.

Если результат не PASSED, то диск следует заменить.

Для просмотра результатов выполнения тестов используется команда вывода внутреннего журнала после завершения теста:

Для прерывания теста нужно ввести:

Для запуска Memtest в меню syslinux вместо Rescue LiveCD выберите соответствующий пункт.

Последующий процесс диагностики заключается в проведении нескольких этапов тестирования каждого отдельного модуля ОЗУ.

Данный процесс будет выполнятся бесконечно, пока вы не остановите его. Вам нужно дождаться окончания хотя бы одного цикла проверки. (значение Pass должно быть >= 1).

Memtest.jpg

В случае обнаружения ошибки отобразятся в списке.

Для ПК на UEFI в образе содержится memtest86.efi по соглашению с PassMark.

Если при тестировании появляются ошибки, значит, оперативная память (устройство) битая/разогнанная/запылилась и ее надо заменить/согнать/пропылесосить (возможны также проблемы с охлаждением или системной шиной).

Искомый адрес 192.168.3.1, в малых сетях это как правило адрес роутера или сервера выполняющего роль шлюза в интернет.

Информация по ссылкам:

Рассмотрим несколько полезных команд и утилит с помощью которых можно получить информацию об оборудовании в Linux. Такая потребность возникает, например, тогда, когда вам нужно установить драйвер для какого-нибудь устройства компьютера и вам нужно знать его точное название. Или, например, вы хотите получить информацию о занимаемой памяти или ресурсах компьютера.

Информация о процессоре (CPU)

Получить всю необходимую информацию о центральном процессоре в Linux можно выполнив в терминале команду:

Чтобы определить является ли ваш процессор 32-х или 64-битным нужно просмотреть флаги, которые указаны в выводе команды. Если среди флагов присутствует lm (long mode), это означает, что ваш процессор 64-битный. Например, при выполнении команды cat /proc/cpuinfo мы можем получить следующие флаги:

Информация о PCI устройствах (информация о видео-карте)

С помощью команды lspci можно вывести всю информацию о PCI устройствах:

Эту команду часто используют, чтобы получить информацию о видео-карте. Так как вывод команды lspci достаточно большой, то можно воспользоваться командой grep, чтобы задать условие поиска. Например, если мы знаем, что у нас видео-карта от Nvidia, тогда можно воспользоваться командой:

И в результате получить что-нибудь вроде:

Обратите внимание на то, что команда grep чувствительна к регистру символов и поэтому, если вы с первого раза не нашли то, что искали, то стоит попробовать другое написание, например, nvidia, NVIDIA или просто idia. Аналогично можно искать информацию в выводе любых других команд, добавляя к команде: "| grep строка-поиска.

Информацию о версии драйвера для видео-карт Nvidia в Linux можно получить выполнив:

Информация об оперативной памяти (ОЗУ)

Чтобы получить информацию об объеме, а также о количестве свободной и занятой оперативной памяти можно воспользоваться командой:

Информацию о виртуальной памяти можно получить командой vmstat:

Если вам нужна более детальная информация о процессах, занимающих оперативную память, о загруженности процессора (CPU), тогда можно использовать утилиты Top или htop. Утилита top как правило всегда присутствует в Linux. Для ее запуска просто выполните:

Информация о жестких дисках

Информация о разделах жесткого диска в Linux:

Информация о монтированных разделах, количество свободной и занятой памяти:

Есть еще одна полезная команда du, которая выводит информацию о размере каждого файла в текущей и во вложенных директориях. Если вы хотите получить информацию обо всех файлах в текущей директории выполните команду без параметров:

В качестве параметра можно задать имя файла, например, чтобы узнать размер файла abc.bin выполните:

Информация о USB устройствах и шинах USB

Для вывода информации о шинах USB и о подключенных USB устройствах используется команда lsusb:

Неконсольные программы

Рассмотрим несколько графических программ, которые помогут при работе с оборудованием.

В среде рабочего стола Gnome есть графическая утилита System monitor (Системный монитор). Она выводит информацию об использовании процессора, о запущенных процессах (приложениях), информацию о жестких дисках, а также выводит графики, включая использование сети. Из командой строки ее можно запустить выполнив:

Системный монитор Gnome в Linux

Программа Gparted

Для работы с жесткими можно воспользоваться программой GParted.

Дополнительная информация

Напоследок обязательно стоит упомянуть об очень важной команде lshw, которая выводит практически всю информацию о вашем компьютере. Команду lshw нужно запускать под пользователем root:

Чтобы вывести краткую информацию используется ключ -short:

Получить более подробную информацию о командах, описанных в статье, можно используя справочную систему Linux. Для этого в консоли нужно выполнить:

Например, чтобы получить всю информацию о команде du, выполните команду:

Изображение пользователя Lang.

Хотелось бы поподробней рассмотреть организацию вывода звука в Linux, а в частности в Kubuntu.
В Linux существует две звуковые подсистемы — OSS (старая) и ALSA (Advanced Linux Sound Architecture), это набор драйверов для звуковых карт. Так получилось, потому что раньше OSS была закрытой, и нужен был открытый аналог, чем и стала ALSA.
ALSA поддерживает все звуковые карты, которые поддерживает OSS. Также, благодаря существованию OSS-эмуляции в подсистеме ALSA, старые программы, рассчитанные на использование с OSS можно использовать и с ALSA. Для этой цели был разработан пакет ALSA-OSS.

Узнать какая звуковая карта можно с помощью команды в терминале
lspci -v |grep -i audio
00:1f.5 Multimedia audio controller: Intel Corporation 82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller (rev 02)

Список поддерживаемых звуковых карт можно найти - здесь

В Kubuntu пересобирать ядро для включения ALSA не требуется. Проблема может возникнуть, если у вас новейшая или очень экзотическая звуковая карта.

Проверка работоспособности ALSA:
cat /proc/asound/cards
0 [ICH5 ]: ICH4 - Intel ICH5
Intel ICH5 with ALC658D at irq 20
1 [UART ]: MPU-401 UART - MPU-401 UART
MPU-401 UART at 0x330, irq 10

cat /proc/asound/version
Advanced Linux Sound Architecture Driver Version 1.0.16.
Compiled on Jan 29 2009 for kernel 2.6.24-23-generic (SMP)

Также существует мультимедийные фреймворки (универсальные библиотеки для работы с аудио- и видеоданными) Xine и GStreamer.
Xine поддерживает для вывода звука и видео множество проигрывателей (фронт-эндов): Kaffeine, Amarok (использующий xine-lib как один из движков для воспроизведения), Xine-ui, Totem итд
В KDE 4 разработчики заменили aRts новой мультимедийной системой, известной как Phonon. Phonon является фронт-эндом (интерфейсом) поверх других систем, таких как GStreamer или Xine. Phonon является прослойкой для различных звуковых систем: на Linux он может использовать для воспроизведения звука тот же GStreamer или Xine, на Windows — DirectShow, на Mac OS X — QuickTime.
В Kubuntu с версии 8.10 пользователь получает следующую цепочку:
Допустим Amarok → Phonon → Xine (GStreamer) → PulseAudio (опционально) → ALSA → колонки или другое устройство вывода звука. Но некоторые проигрыватели звуковых и видеофайлов в настройках позволяют пользователю выбирать, через какой звуковой сервер воспроизводить звук. Если отсутствует звук и не известно в чём проблема, то лучше идти от последнего. Проверить в начале колонки, далее ALSA итд.


Для начала более подробно о сути задачи: есть ноутбук Asus N55 с Kubuntu 17.10 на борту. Нужно добиться той же конфигурации, которую можно получить на Windows:

  • Без подключения сабвуфера драйвер работает в режиме 2.0
  • При подключении сабвуфера драйвер переключается в режим 2.1. При этом переключении к каналам применяются частотные фильтры — НЧ для сабвуфера и ВЧ для колонок
  • При подключении наушников, вывод звука переключается на них, вывод на колонки/сабвуфер приостанавливается
  • При необходимости низких задержек можно с помощью выбора другого драйвера перейти в режим, обеспечивающий монопольный захват звуковой карты

Сразу после установки получаем нерабочий сабвуфер и нерабочие наушники.
В результате моих опытов мне удалось добиться следующего состояния системы:

  • Драйвер работает в режиме 2.1
  • При подключении сабвуфера ничего не изменяется
  • При подключении наушников, вывод звука переключается на них, вывод на колонки/сабвуфер приостанавливается, но фильтры продолжают работать и в наушники идут только ВЧ
  • При необходимости низких задержек можно адресоваться к карте через ALSA, но в этом режиме не работает сабвуфер, фильтры. Но работает переключение на наушники

Для знакомства с LMMS(с которой как оказалось нормально работать нельзя, но это отдельная тема) этого в общем-то хватает.
Если вы тоже добрались до этого состояния, то ничего нового этой статьей я вам не расскажу.

Вы когда-нибудь задумывались о том, как устроена звуковая система Linux? Вот и я нет — обычно звук либо был не нужен, либо как-то работал, колонки играли — ни о каких фокусах подключения сабвуфера или наушников речи не было.
Похоже, теперь самое время узнать об этом немного больше. Гугление показало следующую картину:


    — это компонент, обеспечивающий взаимодействие звуковых железок с ядром. Обеспечивает самый прямой доступ к устройству из разумных вариантов, но при этом доступ этот монопольный — включить песню в VLC и открыть видео в браузере, увы, не получится.
  • Для этих целей как раз и нужен PulseAudio — это sound-сервер, занимающийся маршрутизацией звуковых потоков. Именно он будет отвечать за микширование потоков звука из разных приложений при одновременном использовании. Ценой за такое удобство является дополнительная задержка звукового потока.
  • Существует еще JACK — аналог PulseAudio, позиционирующийся как "профессиональный" sound-сервер. Обещает крутые возможности по маршрутизации и минимальную задержку при диспетчеризации потоков.

Мало кто говорит, что PulseAudio де-факто является стандартом для интеграции звука, по крайней мере в Ubuntu. Практически любой софт, который издает звуки, будет с большой долей вероятности пользоваться PulseAudio API. FF, например, для поддержки JACK надо отдельно собирать.
Поэтому удалять PulseAudio не стоит, если вы не уверены, что все чем вы будете пользоваться, умеет работать с JACK. Видимо, поэтому существует еще вариант интеграции Jack-PulseAudio. Но от этого варианта я отказался, т.к. для работы в том софте, где требуются низкие задержки, меня устраивает монопольный доступ через ALSA(под Windows это работает так же — там, где нужна низкая задержка, запрашивается монопольный доступ). Возможно, когда дело дойдет до установки какого-нибудь Ardour, мне придется вернуться к этому варианту.

Так, ну хорошо, JACK не нужен. Выходит, чтобы все заработало, мне надо настроить ALSA-компонент для своей карточки и интеграцию его с PulseAudio

PulseAudio

Тут нам из коробки предлагают вот такую UI консоль


Мне кажется, к такому инструменту пояснения излишни. После применения настроек вы сразу сможете слышать изменения, так что пробуйте.
Еще amarao советует обратить внимание на pactl /pacmd. Если я доберусь — напишу, что там к чему с этими утилитами

Диагностика ALSA

Первым делом понадобятся хоть какие-то инструменты для диагностики — это пакет alsa-utils
sudo apt install alsa-utils
Теперь посмотрим, как видит наше оборудование система
aplay -l


Кроме того, настройки надо проверять. Для этих целей обнаружилась утилита speaker-test


вызов speaker-test --help покажет, что умеет утилита, но мне особенно интересна конфигурация
speaker-test -Dplughw:1,0 -c4

  • -D — id устройства. 1,0 — это индексы устройства и подустройства, их мы видели выше в выводе aplay
    а вот структура текстовой части описана тут
  • -c — количество каналов на которые будет выведен тест
    В моем случае первые 2 канала работают хорошо, а вот дальше интересно — 3й канал LFO не звучит, но зато звучит 4й канал. Такое ощущение, что LFO настроен как… стерео. Мне кажется, это часть моей проблемы.

Настройка ALSA

Тут и тут советуют поизучать dmix — это модуль микшера каналов в ALSA — буду смотреть

alsamixer

alsamixer — псевдографический интерфейс микшера. Половина советов по настройке ограничивается этой утилитой. И действительно, именно эта утилита часто покажет, когда канал неожиданно замьютился или у него сбросился уровень громкости.


Но настройка в микшере результата не дала.

hdajacksensetest

Следующая полезная утилита — hdajacksensetest. Показывает какие разъемы детектируют подключение внешних устройств.


Ок, я вижу, что мой внешний сабвуфер подключен на порт 0x1a.
Давайте попробуем найти как можно объяснить карте, куда выводить LFO.

hdajackretask

Большинство советов по настройке маппинга указывают на утилиту hdajackretask:


Тут вроде бы все понятно — есть порты, есть маппинг. К сожалению, никакие манипуляции с портом 0x1a к успеху не привели.
Может, после настройки надо явно перезагружать сервисы?
sudo alsa force-reload
Нет, смотрим дальше.

HDAAnalyzer

Для настройки маппинга есть еще одна утилита:
скачать ее можно в виде python-скрипта(. ) вот тут.


Выглядит эта штука как прокачанный вариант hdajackretask — она даже умеет строить схему маршрутизации портов графически. Но эксперименты с этой штукой тоже не привели ни к чему, кроме полной потери звука.
Никакого гайда по настройке я не нашел, поэтому пробовал методом проб и ошибок.

Правка конфигов

PulseAudio

/usr/share/pulseaudio
в папке alsa-mixer тут лежат конфиги. Т.к. Pulseaudio более-менее работает тут я ничего трогать не стал.
/etc/pulse/daemon.conf
Как я понял, это настройки службы pulseaudio — один из немногих конфигов, изменения в котором на что-то влияют. именно тут настройками:
enable-lfe-remixing = yes
lfe-crossover-freq = 200
я заставил звучать свой сабвуфер из Pulseaudio так, как он должен. Для lfe-crossover-freq 200 — это очевидно частота среза в герцах.
Но тут же становится очевидно, что настроить нечто более сложное(при подключении наушников прекращать отправлять бас на сабвуфер) в этом конфиге возможности нет.

/usr/share/alsa/*
Тут лежит несколько shell-скриптов, в т.ч. alsa-info.sh, который может быть полезен при подготовке дефекта в трекере и т.д.
а в папке pcm какие-то конфиги, разобраться в которых мне не удалось:

Трогать их я пока не решился.
/etc/modprobe.d/alsa-base.conf — второй доказанно полезный конфиг. Вот эта строчка, дописанная в низ конфига, реально заставила работать наушники под ALSA:
options snd-hda-intel model=auto,auto probe_mask=1
Про настройку этого конфига написано довольно много. Одна из его целей, как я понял — сопоставить устройствам кодеки(model). Кодеки это… какой-то пресет маппингов… Есть табличка (копия есть тут). Думаю, в большинстве случаев для стандартных конфигураций этого действительно достаточно.
Там описаны модели для разных контроллеров. Но если для вас они не срабатывают, то вам рекомендуют добавить свою конфигурацию.
Звучит классно, но тут я должен сделать 2 ремарки:

  • гайда как сделать свою конфигурацию — что конфигурить, куда сохранять, коммитить и т.д. я не нашел.
  • После изменения настроек в alsa-base.conf нужно перезагружать ОС. Без перезагрузки никакие sudo alsa force-reload и даже хардкорный echo 1 | sudo tee /sys/class/sound/hwC1D0/reconfig не заставляют ALSA перечитать кодек устройства.

Кстати, в /sys/class/sound/hwC1D0/ — лежат файлы уже непосредственно устройства, т.е. как я понял hdajackretask работает именно с этими файлами. Тут тоже, наверное, можно сделать что-то полезное, если знать куда что писать.

Общий вывод, который я могу сделать по результатам проделанной работы: в целом видно, что если GUI, например, сообщество более-менее занимается, то звуковая подсистема явно остается за бортом.
На сегодняшний день возможности использования этой подсистемы не выдерживают никакой конкуренции с аналогами в других популярных ОС.
Такие досадные проблемы, как неработающий сабвуфер или наушники, или отсутствие НЧ-фильтра для сабвуфера, заставляют еще раз подумать, прежде чем отказываться от предустановленного софта. Ведь никому не хочется получать от своей железки меньше отдачи из-за кривостей ОС.

Читайте также: