2015-03-01 2 views
0

У меня есть устройство 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... 

ответ

0

При запуске сценария запуска из командной строки, и он работает, но сценарий запуска терпит неудачу при запуске из Systemd - как это, по-видимому, в вашем случае - - Девяносто девять раз из ста проблемой является окружающая среда.

Я бы исследовал его как первый заказ бизнеса - будет ли пакет ffado устанавливать переменные среды оболочки по умолчанию, которые необходимы его сценарию запуска.

Если это так, то это становится простым вопросом при настройке тех же переменных среды перед выполнением сценария запуска в файле unitd.

Смежные вопросы