Debian Stretch 9 нет звука без его "ручного" включения [РЕШЕНО]

Автор frvladimir, 19 мая 2019, 19:40:34

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

frvladimir

Установил Debian 9.9 XFCE на Asus eec pc 1015p. Все более менее нормально, однако по умолчанию нет звука, ни в браузере ни в плеере. Если от root в терминале прописать "alsactl init 0", то он включается, однако после перезагрузки это надо делать заного, что очень неудобно. Как включить звук раз и навсегда? Вывод каких команд стоит посмотреть?

ferum

Звук в наушниках, вставить вынуть Джек.включается и через alsamixer, но только до перезагрузки. У меня вылечить не получается,да и пользуюсь в основном наушниками.
Русские дебианщики против цифрового слабоумия !

ecc83

Цитата: ferum от 19 мая 2019, 20:27:37У меня вылечить не получается

Там systemd юнит при каждой загрузке должен восстанавливать конфигурацию.
Если он по какой то причине отсутствует, то создать его вручную.

frvladimir

А можно ли написать както скрипт и поставить его на автозапуск? Где будет прописанна команда "alsactl init 0" (с учетом того что она работает только от root).

ecc83

Для этого скрипт не обязателен.

Выполни в терминале:

echo "@reboot  root  /bin/sh -c 'sleep 5 && /usr/sbin/alsactl init 0'" | sudo tee -a /etc/crontab

frvladimir

#5
Цитата: ecc83 от 19 мая 2019, 21:42:51
Для этого скрипт не обязателен.

Выполни в терминале:

echo "@reboot  root  /bin/sh -c 'sleep 5 && /usr/sbin/alsactl init 0'" | sudo tee -a /etc/crontab

Идею я понял. Так действительно рациональней чем скрипт. Но к сожалению все осталось на своих местах. "sudo alsactl init 0" работает, а задача планировщика cron нет.

frvladimir

#6
Я сделал элементарнейший скрипт. 

#!/bin/sh
sudo alsactl init 0

Поместил этот скрипт в "/home/username/.config/autostart/". И... не работает при загрузке. Тоже самое если воспользоватся настройками xfce "Сеансы и запуск" и указать на скрипт в автозакгрузке. При этом сам я его запустить могу все нормально. Почему скрипт может не срабатывать в таком случае? И конечно остается непонятным как всетаки alsa заставить запомнить конфигурацию без скрипта.



ecc83

Цитата: frvladimir от 19 мая 2019, 22:33:11Но к сожалению все осталось на своих местах. "sudo alsactl init 0" работает, а задача планировщика cron нет.

Тогда открой crontab:

sudo nano /etc/crontab

В самом низу последняя строка будет такой:

@reboot  root  /bin/sh -c 'sleep 5 && /usr/sbin/alsactl init 0'

измени время задержки, установи sleep 15 вместо sleep 5


Цитата: frvladimir от 20 мая 2019, 00:35:25Поместил этот скрипт в "/home/username/.config/autostart/". И... не работает при загрузке. Тоже самое если воспользоватся настройками xfce "Сеансы и запуск" и указать на скрипт в автозакгрузке. При этом сам я его запустить могу все нормально. Почему скрипт может не срабатывать в таком случае?

Ну неужели не очевидно, что когда ты запускаешь свою команду в терминале:

sudo alsactl init 0

то появляется запрос о вводе пароля.
Кто, то твоему, будет вводить твой пароль при автозагрузке этой команды?

frvladimir

#8
Цитата: ecc83 от 20 мая 2019, 09:18:13
Цитата: frvladimir от 19 мая 2019, 22:33:11Но к сожалению все осталось на своих местах. "sudo alsactl init 0" работает, а задача планировщика cron нет.

Тогда открой crontab:

sudo nano /etc/crontab

В самом низу последняя строка будет такой:

@reboot  root  /bin/sh -c 'sleep 5 && /usr/sbin/alsactl init 0'

измени время задержки, установи sleep 15 вместо sleep 5


Цитата: frvladimir от 20 мая 2019, 00:35:25Поместил этот скрипт в "/home/username/.config/autostart/". И... не работает при загрузке. Тоже самое если воспользоватся настройками xfce "Сеансы и запуск" и указать на скрипт в автозакгрузке. При этом сам я его запустить могу все нормально. Почему скрипт может не срабатывать в таком случае?

Ну неужели не очевидно, что когда ты запускаешь свою команду в терминале:

sudo alsactl init 0

то появляется запрос о вводе пароля.
Кто, то твоему, будет вводить твой пароль при автозагрузке этой команды?

Запроса пароля нет. Сам скрипт работает я же сказал. Запроса нет т.к. visudo настроен соответствующим образом. Я конечно не шипко разбираюсь но не на столько)
Поправка "sleep" не работает. В том виде что ты написал. Но... тут еще одна интерестная тема обнаружилась...если поставить несколько одинаковых скриптов на автозагрузку описанным мной способом (или просто поставить там команды от sudo) то магическим образом он работает... Так вот... если в /etc/crontab прописать

* * * * * root  alsactl init 0
* * * * * root ( sleep 20 ; alsactl init 0 )


То все тоже работает! Это чуть менее магический способ чем одинаковые скрипты) Объяснить не могу что сбивает процесс в 1 раз, но факт есть факт... Спасибо! В любом случае без советов я бы еще долго это не написал. Не знаю стоит ли считать тему закрытой...ведь способ то явно сверхкостылен) Однако он не требует снимать пароль с sudo и потому явно более корректен.


ecc83

#9
Покажи вывод:

sudo cat /etc/crontab

which alsactl

frvladimir

Цитата: ecc83 от 20 мая 2019, 10:32:32which alsactl
Цитата: ecc83 от 20 мая 2019, 10:32:32Покажи вывод:

Код: [Выделить]

sudo cat /etc/crontab


Код: [Выделить]

which alsactl

crontab


0# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root    cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#
* * * * * root  alsactl init 0
* * * * * root ( sleep 20 ; alsactl init 0 )
#@reboot  root  /bin/sh -c 'sleep 20 && /usr/sbin/alsactl init 0'


which alsactl


/usr/sbin/alsactl

ecc83

#11
Настройка cron таким образом:

* * * * * root  alsactl init 0

Означает срабатывание каждую минуту.

Убери всё то, что ты вставил, исправь так, как я давал ранее, но только последняя строка должна быть с символом '#'

То есть вот так:


@reboot  root  /bin/sh -c 'sleep 20 && /usr/sbin/alsactl init 0'
#


Ещё, внимательно смотри ЧТО ты редактируешь.
Что за первая строка в файле crontab ???
Откуда там НОЛЬ?


ChubaDuba

#13

frvladimir

#14
Цитата: ecc83 от 20 мая 2019, 10:51:50
Настройка cron таким образом:

* * * * * root  alsactl init 0

Означает срабатывание каждую минуту.

Убери всё то, что ты вставил, исправь так, как я давал ранее, но только последняя строка должна быть с символом '#'

То есть вот так:


@reboot  root  /bin/sh -c 'sleep 20 && /usr/sbin/alsactl init 0'
#


Ещё, внимательно смотри ЧТО ты редактируешь.
Что за первая строка в файле crontab ???
Откуда там НОЛЬ?

Ноль случайно написал (нажал случайно) ) # я поставил перед "@reboot" уже потом) после того как он не сработал и я написал две первые строки, ту  закомментировал) Но ты знаешь...я сейчас убрал закомментирование... и он тоже заработал... не буду выяснять что за гадость я сделал в 1 раз) вообщем такая команда (которую ты написал) пашет все норм. Извиняюсь за невнимательность)