Ляликсы и дебугга.

Discussion in 'Песочница' started by DartPhoenix, 25 Jul 2020.

  1. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    601
    Likes Received:
    6,266
    Reputations:
    15
    Вопрос сформулировать не так просто, поэтому не обессудьте. Выглядит как-то так:
    Допустим я в xresources куда-нибудь добавил "xset -dpms". Чтобы монитор не отключался.
    Но он вот назло взял и отключился.

    Я такой не долго думая проверяю отключен он или нет - оказывается, например, нет. Он опять включен. Где-то в жопе мира в каком-то из скриптов (где угодно, вообще говоря, хоть при запуске миднайткоммандер) он включается обратно.

    Возникает вопрос: где-то в Линухе есть нечто, что позволит мне поставить какую-то бряку или каким-либо иным образом узнать, где мать его это происходит ? Где в скрипте включается этот dpms ?
     
  2. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    601
    Likes Received:
    6,266
    Reputations:
    15
    Если нужно подключить gdb чтобы узнать - это тоже подойдет. Вопрос глобальный. Можно-ли это сделать вообще (вообще конечно можно, сам знаю) и как ? Желательно малой кровью.
     
  3. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,527
    Likes Received:
    2,876
    Reputations:
    231
    That depends.

    Если изначально не запускать X-Windows, закомментировав exec-[Desktop Environment] и остаться в голой command line + midnight commander,
    то и в этом случае, монитор станет отключаться спустя 10-15 минут. Как и где это правится на иное - не интересовался.

    Code:
    [email protected] ~ % cat .xinitrc
    #!/bin/sh
    
    userresources=$HOME/.Xresources
    usermodmap=$HOME/.Xmodmap
    sysresources=/etc/X11/xinit/.Xresources
    sysmodmap=/etc/X11/xinit/.Xmodmap
    
    ...
    
    numlockx &
    exec cinnamon-session
    
    #export XDG_CURRENT_DESKTOP=Budgie:GNOME
    #exec budgie-desktop
    #exec gnome-session
    #exec graphene-session
    #exec mutter --wayland --display-server -r
    #exec openbox-session
    #exec start-lumina-desktop
    #exec startlxqt
    #exec i3 -V >> ~/i3log-$(date +'%F-%k-%M-%S') 2>&1
    #exec vos-session
    #exec weston-launch
    В [Desktop Environment], как-то Cinnamon, для этого есть скрипт /usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py с опцией power.
    Решение в лоб - отключить time-outs. В иных [Desktop Environment] полагается, что должно присутствовать аналогичной бледной тенью того, чем силён Cinnamon.

    [​IMG]

    В целях эксперимента, дозволяется открыть ctrl-alt-F2 ещё одну сессию, с чистой command line и увидеть, как погаснет монитор.
     
    DartPhoenix likes this.
  4. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    601
    Likes Received:
    6,266
    Reputations:
    15
    Дык в том - то и дело что хер поймешь.
    Делаю "xset q" - пишет что заставка и dpms отключены.
    Через 15 минут экран потухает.

    Делаю последовательно
    xset -dpms
    xset s off
    Все работает как положено.
    Вывод xset q - выдает то же самое что и было.

    Странно...
    ====================
    Но вопрос даже не в этом. Тоесть есть некие негласные предписания что допустим эти настройки я должен делать в xresources. Но ничто же мне не мешает сделать их где угодно, хоть при загрузке фаерфокса.
    Но если я так сделаю и забуду - хер потом найдешь ! :) И собссно вопрос в том, можно-ли в ляликсе как-то найти тот скрипт, который производит некие изменения в системе ?

    Если я правильно понимаю - админскими методами никак. Если я правильно понимаю - можно впарить юзеру набор скриптов, каждый из которых по отдельности ничего особого не делает но все вместе - они могут просто сформировать не то что бэкдор, оно еще будет бекконнектиться и умолять злоумышленника принять рутовые привилегии :)
     
  5. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,527
    Likes Received:
    2,876
    Reputations:
    231
    В принципе, управление монитором происходит непосредственно в user space.
    Пример тому - световая температура монитора, разная.

    С восходом до захода Солнца, и с заходом до рассвета в данной геолокации - температура световая монитора - разная она.
    Так удобно и эргономично глазам, в длительной работе у экрана.

    Code:
    [email protected] ~/.config/redshift % cat redshift.conf
    ; Global settings for redshift
    [redshift]
    ; Set the day and night screen temperatures
    temp-day=6000
    temp-night=4500
    
    ; Disable the smooth fade between temperatures when Redshift starts and stops.
    ; 0 will cause an immediate change between screen temperatures.
    ; 1 will gradually apply the new screen temperature over a couple of seconds.
    fade=1
    ...
    
    ; Set the adjustment-method: 'randr', 'vidmode'
    ; type 'redshift -m list' to see all possible values.
    ; 'randr' is the preferred method, 'vidmode' is an older API.
    ; but works in some cases when 'randr' does not.
    ; The adjustment method settings are in a different section.
    ; adjustment-method=drm
    adjustment-method=randr
    
    [email protected] ~/.config/redshift % cat randr.conf
    screen=0
    
    И теперь, исполнение комманд xset +/- dpms с проверкой статуса xset -q, ясно показывает, что оное - не оказывает по сути никакого влияния на требуемую функциональность DPMS.

    Code:
    [email protected] ~/.config/redshift % xset -dpms
    [email protected] ~/.config/redshift % xset -q 
    Screen Saver:
      prefer blanking:  yes    allow exposures:  yes
      timeout:  0    cycle:  0
    Colors:
      default colormap:  0x22    BlackPixel:  0x0    WhitePixel:  0xffffff
    DPMS (Energy Star):
      Standby: 0    Suspend: 0    Off: 0
      DPMS is Disabled
    
    
    [email protected] ~/.config/redshift % xset +dpms
    [email protected] ~/.config/redshift % xset -q 
    Screen Saver:
      prefer blanking:  yes    allow exposures:  yes
      timeout:  0    cycle:  0
    Colors:
      default colormap:  0x22    BlackPixel:  0x0    WhitePixel:  0xffffff
    DPMS (Energy Star):
      Standby: 0    Suspend: 0    Off: 0
      DPMS is Enabled
      Monitor is On
    Either DPMS is enabled or disabled, in any case:
    Standby: 0 Suspend: 0 Off: 0
     
    DartPhoenix likes this.
  6. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    601
    Likes Received:
    6,266
    Reputations:
    15
    Я шаманил с gtk - оказалось Лис Огненный подхватывает системные настройки. Шаманил я прямо в ~/.config/gtk3.0 поэтому хрен его отучишь так делать.
    Вследствие этого если кто использует стили по умолчанию говно получается...
    upload_2020-7-26_19-11-18.png

    Я ушь думал опечалиться - но такая херня редко вылезает, быстро фиксится - зато
    все остальное - прямо шикарно. Все сайты так и норовят выглядеть как Adwaita:dark. Менюшки чОрные, скроллы тонкие. Весьма премило получайцо.
    Вот думаю так и оставить... :)

    upload_2020-7-26_19-14-35.png
     
  7. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    601
    Likes Received:
    6,266
    Reputations:
    15
    Кстати с цветовой температурой х/з.
    Мне 4500 чот. не очень заходит. Достаточно темной темы.

    ЭЙ !!! Я вообще не об этом кстати ! :) Я грю это... можно как-то врубить дебугга и отладить/получить трейс скриптов, которые выполняются ?
     
  8. fandor9

    fandor9 Well-Known Member

    Joined:
    16 Nov 2018
    Messages:
    441
    Likes Received:
    676
    Reputations:
    19
    я сам не пробовал, но возможно как идея, вот способ отслеживать системные вызовы. Можно сначала с помощью
    Code:
    strace xset q
    посмотреть вызовы и потом уже поставить бряк на вызов.
     
    DartPhoenix likes this.
  9. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    601
    Likes Received:
    6,266
    Reputations:
    15
    Ну это не совсем легальный механизм сисадминов... но да. Видимо так и придется делать (если так уже не сделано до нас).
     
  10. fandor9

    fandor9 Well-Known Member

    Joined:
    16 Nov 2018
    Messages:
    441
    Likes Received:
    676
    Reputations:
    19
    а что надо ещё что-бы легально было? :D
     
  11. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    601
    Likes Received:
    6,266
    Reputations:
    15
    Чтоб такая херня где-то врубалась методом "logging on"... или не знаю... :)
    Откудо я знаю ? Я всего-лишь йуный ляликсоид :)
     
  12. altblitz

    altblitz Elder - Старейшина

    Joined:
    5 Jun 2009
    Messages:
    3,527
    Likes Received:
    2,876
    Reputations:
    231
    [​IMG]

    Два пути:
    - установить трассирование по вызову /usr/lib/cinnamon-settings-диавол/csd-power,
    с помощью systemd и journalctl, как делаю у себя, до и во время запуска OS, после прохода initramfs.

    Code:
    [email protected] ~ % journalctl -xb | grep -Ein "alsa|bad|couldn't|crash|disable|doesn't support|error|fail|filtered out|ignoring|invalid|line takes no |no |not found|not supported|unable|unset|warning|was not"
    
    События, беспристрастно должны отображаться в журнале journalctl, при условии что OS настроена на работу с ней.

    И опять же, в случае непоняток, просто посылается SIGTERM / SIGKILL процессу csd-power, из того же htop.
    Тогда, монитор не станет (не должен) отключаться.
     
  13. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    601
    Likes Received:
    6,266
    Reputations:
    15
    Блитц, ты иностранный шпион.
    usr/lib/cinnamon-settings-диавол/csd-power.
    Зойчем ты шпионишь за нами, говнюк ! :)
     
    altblitz likes this.
  14. DartPhoenix

    DartPhoenix Elder - Старейшина

    Joined:
    15 Sep 2013
    Messages:
    601
    Likes Received:
    6,266
    Reputations:
    15
    А так - не вкурил, буду думать.