LINUX.ORG.RU

Следить за изменением псевдофайла в /proc

 


1

3

Ситуация такая, что есть скрипт на bash, который грепает строчку в псевдофайле в /proc и в зависимости от значения выполняет команду. Проблема в том, что это значение 95% времени одинаковое, а команда все-равно выполняется все время. inotify как выяснилось не может в /proc, может есть способ накостылять что-то с проверкой контрольных сумм? Что подскажете? Вот скрипт:

#!/bin/bash

do_it(){
    RATE="$(grep -E "rate: .*" /proc/asound/card1/pcm0p/sub0/hw_params | awk '{print $2}')"
    case "${RATE}" in
        44100    ) SET="0" ;;
        48000    ) SET="1" ;;
        88200    ) SET="2" ;;
        96000    ) SET="3" ;;
        176400    ) SET="4" ;;
        192000    ) SET="5" ;;
        *        ) SET="0" ;;
    esac
    amixer -c 1 set 'Clock rate Selector' ${SET}
}

while :; do
        do_it && sleep 0.01
done

★★★

Удалось пофиксить проблему в альсовом драйвере. Патч нашел тут. К сожалению, в апстрим видимо по какой-то причине патч не прошел, а багтрекер у альсы закрыт.

--- quirks.c   Fri Jul 18 01:20:16 2014
+++ quirks.c   Sun Jul 20 00:20:49 2014
@@ -723,7 +723,8 @@ static void set_format_emu_quirk(struct
         * by playback substream
         */
        if (subs->direction == SNDRV_PCM_STREAM_PLAYBACK) {
-               if (subs->stream->substream[SNDRV_PCM_STREAM_CAPTURE].interface != -1)
+               if (subs->stream->substream[SNDRV_PCM_STREAM_CAPTURE].interface != -1 &&
+                       subs->stream->substream[SNDRV_PCM_STREAM_CAPTURE].running)
                        return;
        } 

Andrew ★★★
() автор топика
Последнее исправление: Andrew (всего исправлений: 1)
Ответ на: комментарий от crowbar

Зачем ты приплёл сюда разработчиков Plan9?

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.