У меня есть устройство FireWire, подключенное к машине, работающей с аркой.Как заставить этот скрипт systemd работать в ArchLinux?
Я получил FFADO работать, и после того, как я исполняю ffado-dbus-server
я могу начать использовать сверхбыстрой устройство с Джеком и PulseAudio (что свертка совершенно не связан с моим вопросом здесь)
я в основном приходится работать 3 различных этапов, каждый раз Я загружаюсь, чтобы заставить мой звук работать. Я пытаюсь, чтобы все это волшебство произошло автоматически при загрузке.
Я читал около /etc/rc.local
, но кажется, что такого файла не существует в моей установке linux linux. Я прочитал о процессе загрузки на Arch Linux и, кажется, что дуга не использует rc.local
и вместо этого использует systemd
Я прошел через arch wiki page on systemd и попытался создать простой ffado-dbus.service
блок файл в /usr/lib/systemd/system
Я начал пробовать для использования единицы измерения dbus
, затем попробовал oneshot
и, наконец, simple
Независимо от того, что я делаю, результаты в значительной степени согласованы. Служба не работает.
Я также попытался поставить службу в usr/lib/systemd/user
и попытался запустить это как systemctl --user start
, но это также привело к той же ошибке.
Простейший пример единичного файла у меня есть это:
[Unit]
Description=FFADO DBus startup
[Service]
Type=simple
ExecStart=/usr/sbin/ffado-dbus-server
Это производит следующий статус:
[[email protected] system]$ sudo systemctl status ffado-dbus -l
● ffado-dbus.service - FFADO DBus Service
Loaded: loaded (/usr/lib/systemd/system/ffado-dbus.service; static; vendor preset: disabled)
Active: failed (Result: core-dump) since Sun 2015-03-01 04:31:59 MST; 5s ago
Process: 3934 ExecStart=/usr/bin/ffado-dbus-server (code=dumped, signal=ABRT)
Main PID: 3934 (code=dumped, signal=ABRT)
Mar 01 04:31:59 livingroom ffado-dbus-server[3934]: FFADO Control DBUS service
Mar 01 04:31:59 livingroom ffado-dbus-server[3934]: Part of the FFADO project -- www.ffado.org
Mar 01 04:31:59 livingroom ffado-dbus-server[3934]: Version: 2.2.1-Unversioned directory
Mar 01 04:31:59 livingroom ffado-dbus-server[3934]: (C) 2008, Pieter Palmers
Mar 01 04:31:59 livingroom ffado-dbus-server[3934]: This program comes with ABSOLUTELY NO WARRANTY.
Mar 01 04:31:59 livingroom ffado-dbus-server[3934]: -----------------------------------------------
Mar 01 04:31:59 livingroom systemd[1]: ffado-dbus.service: main process exited, code=dumped, status=6/ABRT
Mar 01 04:31:59 livingroom systemd[1]: Unit ffado-dbus.service entered failed state.
Mar 01 04:31:59 livingroom systemd[1]: ffado-dbus.service failed.
Mar 01 04:32:00 livingroom systemd-coredump[3944]: Process 3934 (ffado-dbus-serv) of user 0 dumped core.
Существует какой-то таинственный код 6/ABRTthat происходит в основном процессе ffado-dbus-server
Я предполагаю, что это связано с тем, что «среда», в которой работает systemd
, не содержит процессов или чего-то, что ffado nee ds для запуска. Что я не понимаю, так это то, как я определяю, чего не хватает, и как я могу предоставить это в systemd environmentemnt.
В качестве альтернативы, мне бы хотелось, чтобы окружение systemd
соответствовало среде пользователя «pigdog», из которой я только что выполнил вызов systemctl
. Я подумал, что это то, что я буду делать, перемещая файл ffado-dbus.service
в /usr/lib/systemd/user
, а затем вызывая systemctl, например systemctl --user
, но это вызывает ту же ошибку.
Я также попытался добавить директиву User=pigdog
в раздел файла [Service]
файла блока без успеха.
Я могу запустить /usr/bin/ffado-dbus-server
из bash, но зарегистрировался как свиноферм без проблем. Я получаю следующий результат, когда сценарий успешно:
[[email protected] system]$ /usr/bin/ffado-dbus-server
-----------------------------------------------
FFADO Control DBUS service
Part of the FFADO project -- www.ffado.org
Version: 2.2.1-Unversioned directory
(C) 2008, Pieter Palmers
This program comes with ABSOLUTELY NO WARRANTY.
-----------------------------------------------
1425209640984446: (ffado-dbus-server.cpp)[ 270] main: Discovering devices...
00973362057: Debug (devicemanager.cpp)[ 354] discover: Starting discovery...
00973405357: Debug (devicemanager.cpp)[ 616] discover: driver found for device 0
00973405880: Debug (devicemanager.cpp)[ 653] discover: discovery of node 0 on port 0 done...
00973405944: Debug (devicemanager.cpp)[ 661] discover: Discovery finished...
00973405980: Debug (devicemanager.cpp)[1258] showDeviceInfo: ===== Device Manager =====
00973406020: Debug (Element.cpp)[ 121] show: Element DeviceManager
00973406047: Debug (devicemanager.cpp)[1266] showDeviceInfo: --- IEEE1394 Service 0 ---
00973406085: Debug (devicemanager.cpp)[1276] showDeviceInfo: --- Device 0 ---
00973406113: Debug (devicemanager.cpp)[1279] showDeviceInfo: Clock sync sources:
00973406165: Debug (devicemanager.cpp)[1288] showDeviceInfo: Type: Internal , Id: 0, Valid: 1, Active: 1, Locked 1, Slipping: 0, Description: Internal sync
00973406199: Debug (devicemanager.cpp)[1288] showDeviceInfo: Type: ADAT , Id: 1, Valid: 1, Active: 1, Locked 1, Slipping: 0, Description: ADAT optical
00973406237: Debug (devicemanager.cpp)[1288] showDeviceInfo: Type: SPDIF , Id: 2, Valid: 1, Active: 1, Locked 1, Slipping: 0, Description: SPDIF/Toslink
00973406266: Debug (devicemanager.cpp)[1288] showDeviceInfo: Type: Erratic type , Id: 3, Valid: 0, Active: 0, Locked 0, Slipping: 0, Description: SMPTE
00973406303: Debug (devicemanager.cpp)[1288] showDeviceInfo: Type: WordClock , Id: 4, Valid: 1, Active: 1, Locked 1, Slipping: 0, Description: Wordclock
00973409421: (ffado-dbus-server.cpp)[ 329] main: DBUS service running
00973409433: (ffado-dbus-server.cpp)[ 330] main: press ctrl-c to stop it & exit
00973409436: Debug (ffado-dbus-server.cpp)[ 333] main: dispatching...