Raspberry pi автозапуск LXDE не работает


16

Я обновил установку Raspberry Pi с помощью Pi 2. Но так как я обновил все пакеты, автозапуск больше не работает:

ни это, кажется, не работает:

sudo nano /etc/xdg/lxsession/LXDE/autostart

ни это

sudo nano /etc/xdg/lxsession/LXDE-pi/autostart

содержимое файла автозапуска:

@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
#@xscreensaver -no-splash
# Auto run the browser
@xset s off
@xset -dpms
@xset s noblank
@/usr/bin/epiphany-browser -a --profile ~/.config http://google.de
@sleep 5s # give it time to start
@echo key F11 | xte # simulate pressing the full screen key

Как я могу настроить autostartвыполнение?


Тупой вопрос / проверка работоспособности: подтвердили ли вы, что файл автозапуска не запускается, заменив ваши команды чем-то действительно базовым? Например, удалите все, что ниже «#Auto run the browser», и протестируйте «@midori».
goobering

Да, я сделал это. Это просто не раскрыто.
S.Spieker

Ответы:


14

В этой теме на форумах raspberrypi.org есть достаточно правдоподобное объяснение вашей проблемы .

/etc/xdg/lxsession/LXDE-pi/autostart

Это глобальный файл автозапуска, который работает для всех пользователей ... если только у них нет автозапуска пользователя. Если у пользователя есть файл автозапуска, глобальный файл игнорируется и используется персональный автозапуск. Пользовательские настройки применяются последними и имеют приоритет над глобальными настройками. Джесси создает файл автозапуска пользователя во время установки, поэтому изменение настроек в глобальном файле больше не оказывает никакого влияния.

/etc/xdg/lxsession/LXDE/autostart

Это «старое» местоположение, новое местоположение использует «/ LXDE-pi /». Каталог "/ LXDE /" может существовать, но он будет игнорироваться.

Правильное расположение для добавления элементов автозапуска должно быть ~/.config/lxsession/LXDE-pi/autostart. Рекомендуется не использовать sudo для редактирования.


Спасибо за указание на это, но я сменил владельца на pi: pi, но это тоже не работает.
S.Spieker

1
Извините, не могли бы вы подтвердить, что вы сменили владельца? Это не должно быть необходимо здесь.
goobering

-rw-r--r-- 1 pi pi 414 Mar 18 06:55 /etc/xdg/lxsession/LXDE-pi/autostart
S.Spieker

Здесь это не поможет - настройки уровня пользователя по-прежнему будут иметь приоритет над этими настройками. Вам нужно скопировать / вставить ваши команды в ~ / .config / lxsession / LXDE-pi / autostart.
goobering

1
Я боюсь, что это делает меня практически без предложений. Там в пошаговом руководстве здесь , что может включать в себя что - то я пропустил, но, насколько я могу сказать , это то , как конфигурация автозапуска обрабатывается.
goobering

10

Испытал ту же проблему. Вот мои выводы:

Проверьте, существует ли /home/pi/.config/lxsession/LXDE-pi/autostartфайл. Если он существует, он будет использоваться вместо /etc/xdg/lxsession/LXDE-pi/autostart.

Просмотр логов (после перезагрузки) в /home/pi/.xsession-errors:

$ cat .xsession-errors
Xsession: X session started for pi at Sat 30 Jul 23:14:04 UTC 2016
localuser:pi being added to access control list
** Message: main.vala:99: Session is LXDE-pi
** Message: main.vala:100: DE is LXDE
** Message: main.vala:131: log directory: /home/pi/.cache/lxsession/LXDE-pi
** Message: main.vala:132: log path: /home/pi/.cache/lxsession/LXDE-pi/run.log

Это предлагает посмотреть на /home/pi/.cache/lxsession/LXDE-pi/run.log:

$ tail -n30 /home/pi/.cache/lxsession/LXDE-pi/run.log
...

** (epiphany-browser:874): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files
--profile must be an existing directory when --application-mode is requested
** Message: app.vala:130: /usr/bin/epiphany-browser exit with this type of exit: 256

...

Поэтому я тестировал команду вручную в терминале (в графическом интерфейсе). Я получил несколько ошибок:

$ /usr/bin/epiphany-browser -a --profile ~/.config https~://google.de

** (epiphany-browser:1218): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files
** Message: Remote error from secret service: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.secrets was not provided by any .service files

** (epiphany-browser:1218): WARNING **: Error caching form data: The name org.freedesktop.secrets was not provided by any .service files

Но браузер все равно запустился ...

Поиграл с /usr/bin/epiphany-browserкомандой и уменьшил ее до /usr/bin/epiphany-browser --profile ~/.config https://google.de.

Затем изменили /home/pi/.config/lxsession/LXDE-pi/autostartстроки на:

@/usr/bin/epiphany-browser --profile ~/.config https://google.de

И это сработало - браузер запустился.

Проверено на:

  • Raspberry Pi 3
  • Debian Джесси

    $ lsb_release -a
    No LSB modules are available.
    Distributor ID: Raspbian
    Description:    Raspbian GNU/Linux 8.0 (jessie)
    Release:    8.0
    Codename:   jessie
    

«Проверьте, существует ли файл /home/pi/.config/lxsession/LXDE-pi/autostart. Если он существует, он будет использован» - это спасло мой день!
Михаил Сенютович

2

Вчера я скачал NOOBS и создал новый установщик micro SD. После установки Raspian сначала все выглядело нормально, пока я не посмотрел на автозапуск. Я обнаружил, что папка /home/pi/.config/lxsession не существует, поэтому я создал ее и папку /home/pi/.config/lxsession/LXDE-pi. Затем я создал автозапуск файла как пустой файл и добавил команду автозапуска. После перезагрузки у меня появился черный экран. У меня есть другие рабочие Pis, и я проверил их файлы автозапуска. У них есть эти строки

@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash
@point-rpi

Добавление этих строк в новую установку решило проблему.

Я добавляю этот ответ для кого-то вроде меня, который ищет решение той же проблемы.


1

Я смог решить проблему с помощью задачи cron.

Сначала я установил пакеты:

sudo apt-get install gnome-schedule

Я редактировал crontab через:

crontab -e

После каждой перезагрузки я добавлял задачу, в которую помещал запуск браузера:

@reboot /home/pi/startupscript &

0

напиши по этим путям автозапуск - /home/pi/.config/lxsession/LXDE-pi/

@lxpanel --profile LXDE-pi
@pcmanfm --desktop --profile LXDE-pi
@xscreensaver -no-splash
@/usr/bin/chromium-browser --start-fullscreen --incognito "USE URL¨S HERE, IF YOU WANT TO USE MORE THAN ONE USE A SPACE FOR EACH URL"
@/usr/bin/xdotool x y

Также вы можете изменить --start-fullscreenfor киоск, но киоск должен убить процесс вашего приложения.

Команда: pkill chromium


0

Я столкнулся с этой ошибкой:

[1216:1216:0128/120813.940515:ERROR:browser_main_loop.cc(582)] Failed to put Xlib into threaded mode.

(chromium-browser:1216): Gtk-WARNING **: cannot open display:

Мне удалось преодолеть это с помощью этого урока .

Я установил оконный менеджер

$ sudo apt-get install matchbox-window-manager

Затем я включил это до .config/lxsession/LXDE-pi/autostartначала Chromium.

@matchbox-window-Manager -use_cursor no&

Затем команда запуска chromium-browser с моими настройками.


0

Три вещи, которые сбили меня с толку:

  • автозапуск пользователя переопределяет глобальный; если вы хотите запустить все как обычно, а также свои собственные команды, скопируйте настройки по умолчанию и добавьте свои команды в конец:

    cp / etc / xdg / lxsession / LXDE-pi / автозапуск $ HOME / .config / lxsession / LXDE-pi / editor $ HOME / .config / lxsession / LXDE-pi / autostart

  • в $HOME/.config/lxsession/LXDE-pi/desktop.conf, есть эта часть - если disable_autostart=yesона не будет работать (очевидно, задним числом):

    [Session] disable_autostart = нет

  • Автозапуск не является сценарием оболочки. Если вам нужно что-то помимо простого запуска программ, лучше сделайте сценарий оболочки и вызовите его из автозапуска (например foo && bar, здесь не будет работать)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.