хорошо я сумел получить туннельный пароль openvpn, введенный автоматически, и также сумел заставить туннель работать на начальной загрузке. надо надеяться, это помогает кому-то еще, кто пытается сделать то же самое - потому что его взятый меня более чем 20 часов для выяснения чего-то, что теперь выглядит довольно основным. код:
$ cat /etc/init.d/ZZcreate_ovpn_tun.sh
#!/bin/bash
# check if the tunnel already exists before trying to create it
proc=$(ps aux | grep openvpn | grep Userxxx)
if [ "$proc" == "" ]; then
echo "ovpn tunnel does not exist yet - will create it now"
else
echo "ovpn tunnel already exists ($proc)"
exit 0
fi
# load the config file into openvpn - has options to request the pkcs12 password through
# telnet
nohup openvpn /etc/init.d/ovpn/Userxxx.ovpn
sleep 1
# enter the password though a telnet session
/etc/init.d/ovpn/telnet_commands.sh
$ cat /etc/init.d/ovpn/telnet_commands.sh
#!/usr/bin/expect
spawn telnet 127.0.0.1 5558
expect ">PASSWORD:Need 'Private Key' password"
send "password 'Private Key' xxxxxxxxxxxxx\r"
expect "SUCCESS: 'Private Key' password entered, but not yet verified"
send "quit\r"
expect eof
$ cat Userxxx.ovpn
#OpenVPN Server conf
tls-client
client
dev tun
proto udp
tun-mtu 1400
remote xxxxxxxxxxxxxxxxxxxxxxxxxxxxx.com.au 1194
pkcs12 /etc/init.d/ovpn/Userxxx.p12
cipher AES-256-CBC
comp-lzo
verb 3
ns-cert-type server
tls-remote xxxxxxxxxxxxxxxxxxxxxxxxxxx.com.au
management 127.0.0.1 5558
management-query-passwords
$ sudo update-rc.d ZZcreate_ovpn_tun.sh defaults
$ sudo shutdown -r 0
$ # wait for system to boot up again
$ ps aux | grep openvpn
root 5279 0.0 0.1 28224 3728 ? S 22:48 0:00 openvpn /etc/init.d/ovpn/Userxxx.ovpn
можно также хотеть перенаправить весь вывод в файл так, чтобы, если он перестал работать, Вы смогли видеть почему. я назвал файл ZZcreate_ovpn_tun.sh, чтобы удостовериться, что он пришелся последним изо всех сценариев в init.d dir идеально, я просто удостоверюсь, что он только работал на уровне приблизительно 6, но это хорошо работает на данный момент.
Я не думаю, что это тривиально, и этот вопрос должен, вероятно, быть перемещен в stackoverflow.
Существует насколько я знаю нет sysfs
или procfs
интерфейс для доступа к финалу (ALSA) [аудио] соединение; даже нет гарантии, что существует такая вещь в программном обеспечении как некоторые аппаратные средства (такой как emu10k1
) выполняет его собственное смешивание, хотя я по общему признанию понятия не имею, как это работает.
Существует также вопрос нескольких аудиовыходов (цифровой (как SPDIF), аналог, headphons или динамики, и т.д.) и несколько конфигураций динамиков на той же карте, не говоря уже о возможности нескольких карт.
Лучший выбор состоит в том, чтобы, по-видимому, попытаться насладиться, какой бы ни устройство ALSA используется (По-видимому, hw0
если смешивание происходит в звуковой подсистеме как pulseaudio, или dmix
если никакая звуковая подсистема не используется), так как это - "последний шаг", прежде чем аудио достигнет аппаратных средств. Однако я понятия не имею, возможно ли это;наверное, нет.
Если можно предположить, что пользователь использует что-то как pulseaudio, то задача становится намного легче. Программное обеспечение, такое как pavucontrol уже реализует это, как замечено под вкладкой Playback, а также этапами pre-final-mix под Устройствами вывода. Технически, это включает получение самого аудиопотока, затем преобразовывая его в частотную область (например, путем выполнения StFt) для визуализации его некоторым способом; все, в чем Вы действительно нуждаетесь для этого, является доступом к аудиопотоку, и pulseaudio может обеспечить, это (как pavucontrol делает) через приемник.
Я не помогаю, не так ли? На вашем месте и просто требуемый это для моего рабочего стола, и если я использовал pulseaudio (который я сам, оказывается, использую), моя первая цель состояла бы в том, чтобы попытаться получить заключительный поток соединения. Парни в этом потоке, кажется, выяснили красноречивый метод выполнения того использования только pactl
и pacmd
, который мог довольно легко быть сделан программно также.
Когда Вы схватили аудиопотока, только математика остается :-)