Как сделать Ubuntu 14.04 в киоске

Я сделал чистую установку Ubuntu 14.04 LTS Desktop и теперь хочу превратить его в киоск с полноэкранным браузером.

Ранее это было сделано в 10.04 и работало отлично, но из-за аппаратных изменений (графика) мы вынуждены использовать версию 14.04.

Я создал киоск.desktop в /usr/share/xsessions и сценарий оболочки под названием kiosk.sh который запускает Firefox с r-kiosk установлены. Сценарий оболочки является исполняемым. Пользователь с именем "киоск" настроен на автологин (в /etc/lightdm/lightdm.conf).

Но сейчас я застрял. Я хочу kiosk.sh запускаться при запуске сеанса пользователя киоска.

В предыдущих версиях это можно было сделать в инструменте GUI "Настройки экрана входа" или в /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf,

я изменился 50-ubuntu.conf в "user-session=kiosk" но это не начинается. Инструмент "Настройки экрана входа" не найден. Была ли она заменена другой утилитой в 14.04?

Размещение kiosk.sh.desktop в ~/kiosk/.config/autostart works, но рабочий стол gnome отображается до запуска firefox в полноэкранном режиме, что позволяет пользователям взаимодействовать с рабочим столом.

Что исправить / лучший способ запустить Firefox в полноэкранном режиме после пользовательской автологин?

Спасибо

Томас

1 ответ

Решение

Я бы лично обошел все lightdm а также Xsession вещи и просто запустить свой собственный экземпляр X, который только что запустил Firefox. Звучит кошмарно, но это действительно просто с небольшим сценарием Upstart

start on (filesystem and stopped udevtrigger)
stop on runlevel [06]

console output
emits starting-x

respawn

exec sudo -u thomas startx /etc/X11/Xsession /path/to/kiosk.sh --

Очевидно, измените имя пользователя на любого пользователя, от которого вы хотите его запустить, но это в значительной степени так. Сохранить как /etc/init/x.conf и тогда ты сможешь sudo start x и вы ушли (он загрузится при загрузке). Если Firefox падает, он перезагрузит X с новым экземпляром.

Если у вас есть полноценная установка Ubuntu, вам, возможно, придется сначала отключить LightDM с помощью:

sudo stop lightdm
echo manual | sudo tee /etc/init/lightdm.override

И ваш профиль Firefox полностью зависит от вас. Возможно, вы даже захотите создать сценарий для восстановления профиля, так что если кто-то нарушит ваш профиль, вам просто нужно перезапустить x сервис, и он будет снова использовать чистую копию. Просто идея.

С тех пор я написал пост в блоге о создании киоска с нуля с 14.04 и Chrome.


Для вашей проблемы с настройкой беспроводной сети, я бы посоветовал хранить как можно больше этого от случайных пользователей. Вы можете установить соединение с помощью TTY довольно просто:

sudo nmcli dev wifi con <SSID> password <password>

Это должно добавить подключение к системе и подключиться (и автоматическое подключение в будущем), но я не проверял это. Это может даже не понадобиться sudo но все зависит от того, какими привилегиями обладает ваш основной пользователь.

Простое преимущество по сравнению с загрузкой чего-то другого в фоновом режиме заключается в том, что у случайных прохожих не будет доступа к графическому диалогу настроек сети. Это требует от оператора возможности следовать инструкциям.

Если они не могут справиться с этим, вы можете довольно легко изменить свой kiosk.sh искать существующие соединения и спросить некоторые zenity-вопросы, которые подпитывают предыдущий nmcli команда:

if [[ $(nmcli con | wc -l) == 1 ]]; then
    SSID=$(zenity ...)
    PASS=$(zenity ...)
    nmcli dev wifi con $SSID password $PASS
fi

Это просто грубая идея. Вам нужно будет поработать над этим. Там может быть лучшее автономное графическое приложение конфигурации сетевого менеджера.

Другие вопросы по тегам