Как включить режим реального времени на Linux?

617
xakepp35

У меня есть пример, совершенно бесполезное приложение, которое генерирует сигнал (короткий скачок некоторой частоты, сопровождаемый более длинным периодом молчания, в хвосте), затем должен записать его на звуковую карту. Звуковая карта просто зациклена на себе с помощью кабеля миниджек-миниджек. Поэтому мое приложение записывает только что переданный сигнал, чтобы определить задержку следующего пути:

app-> функции драйвера> dac-> lineout-> linein-> adc-> функции драйвера> приложение

Прежде всего, для моей задачи мне нужно минимизировать задержку, чтобы выйти за пределы миллисекундного диапазона. 0,01-0,1 мс удовлетворит, так как это приложение сонара на платформе ПК.

И во-вторых, я хотел бы иметь возможность перейти от заполнения всего буфера к работе с отдельным образцом. Или, самое большее, минимизировать размер буфера, чтобы сделать его максимально коротким. Я рассчитал, что нужно 16 образцов или меньше при частоте дискретизации 192 кГц. Идеально для работы с отдельными образцами в реальном времени, я слышал, что это возможно.

Итак, как я могу "включить в реальном времени"? и какой вид реального времени мне нужно - жесткий или мягкий?

0
Обратите внимание, что Linux на самом деле не позволяет работать в режиме реального времени, даже в версии "rt". Вам нужна настоящая ОС реального времени для жесткого реального времени. dirkt 6 лет назад 0

2 ответа на вопрос

3
01BTC10

Проверьте в вашем менеджере пакетов «rt» версию вашего linux-образа (ядра). Другой вариант - перекомпилировать ядро ​​с помощью патча "rt".

Очень хорошее объяснение ядра реального времени смотрите по этой ссылке .

1
BeaverValley

как я могу "включить в реальном времени"?

Csound предлагает воспроизведение звука в режиме реального времени через командную строку.
http://csound.github.io/download.html
http://www.csounds.com/manual/html/UsingRealTime.html

Он требует, чтобы вы загрузили и установили Csound и использовали его вместо стандартного аудиоустройства.

и какой вид реального времени мне нужно - жесткий или мягкий?

Csound - это «мягкое» решение.

Похожие вопросы