Итак задача:
Из старого компа соорудить нечто с браузером на весь экран, что позволяло бы любому человеку выходить в интернет и что-то делать...
Типа стоит в офисе, а хулиганов нет :)
Так как задача "однозадачная" и, боле того, от браузера требуется работать в "однозакладочном" режиме, то, ИМХО, потянуть это должен списанный компьютер начала века...
Есть монитор, старый системник 15-16 летней давности, клава и мышка...
Выбор упал на регулярку (
https://www.altlinux.org/Regular) c icewm , но может лучше был стартеркит...
Шаг 1
Ставим на старый системник дистрибутив c icewm для i586.
Шаг 2
Ставим нужные пакеты (если используется регулярка/стартеркит с icewm большая часть из требуемых пакетов уже есть в системе)
su -
apt-get install -y nodm icewm xxkb numlockx tk tcl sudo
apt-get install -y chromium
Шаг 3
Создаем юзера с паролем
useradd -m kiosk
passwd kiosk
Шаг 4
Настраиваем наш киоск
Файлы в архиве kiosk.tar
Соответственно в каталоге
/etc/X11
создаем каталог kiosk и складываем все содержимое архива...
Получается типа
/etc/X11/
|--kiosk
| |--.xxkbrc
| |--kiosk_run
| |--img.gif
| |--reboot.sh
| |--button.sh
| |--workend.sh
| |--.icewm
| | |--themes
| | | |--default -> ib-kiosk
| | | |--ib-kiosk
| | | | |--restoreI.xpm -> maximizeI.xpm
| | | | |--titleAT.xpm
| | | | |--maximizeI.xpm
| | | | |--titleAB.xpm
| | | | |--titleIM.xpm -> titleAM.xpm
| | | | |--minimizeA.xpm
| | | | |--maximizeA.xpm
| | | | |--titleIB.xpm -> titleAB.xpm
| | | | |--closeI.xpm
| | | | |--default.theme
| | | | |--closeA.xpm
| | | | |--restoreA.xpm -> maximizeA.xpm
| | | | |--minimizeI.xpm
| | | | |--titleIT.xpm -> titleAT.xpm
| | | | `--titleAM.xpm
| | |--keys
| | |--preferences
| | |--theme
| | |--winoptions
| |--poweroff.sh
Шаг 5
Настраиваем nodm
для этого создаем файл
nano /etc/sysconfig/nodm# nodm configuration
NODM_ENABLED=true
NODM_USER=kiosk
NODM_FIRST_VT=7
NODM_XSESSION=/etc/X11/kiosk/kiosk_run
NODM_OPTIONS=
NODM_X_OPTIONS='-nolisten tcp'
NODM_MIN_SESSION_TIME=60
NODM_X_TIMEOUT=300
Что разрешит автологин юзеру kiosk с сессией /etc/X11/kiosk/kiosk_run
Перегружаемся и все должно работать...
Но в моем случае получилось "авотфиг" - грузило мне в root
Файл
/etc/X11/prefdm
не отработал как надо на сизифной сборке.
пришлось править файл /etc/X11/prefdm
вписывая строчку
export NODM_ENABLED NODM_USER NODM_FIRST_VT NODM_XSESSION NODM_OPTIONS NODM_X_OPTIONS NODM_MIN_SESSION_TIME NODM_X_TIMEOUT
чтоб prefdm запустил nodm не абы как а с моими настройками...
Получилось в prefdm типа так
бла-бла-бла
# Try nodm and autologin first if configured.
for name in nodm autologin; do
AUTOLOGIN_EXE="/usr/sbin/$name"
AUTOLOGIN_CFG="/etc/sysconfig/$name"
if [ -x "$AUTOLOGIN_EXE" -a -s "$AUTOLOGIN_CFG" ]; then
echo "$AUTOLOGIN_EXE $AUTOLOGIN_CFG" >>/tmp/123.txt
EXEC_ARGS=
. "$AUTOLOGIN_CFG"
export NODM_ENABLED NODM_USER NODM_FIRST_VT NODM_XSESSION NODM_OPTIONS NODM_X_OPTIONS NODM_MIN_SESSION_TIME NODM_X_TIMEOUT
trap 'kill -TERM $!; exit 143' HUP INT TERM
echo "$AUTOLOGIN_EXE $EXEC_ARGS" >>/tmp/123.txt
"$AUTOLOGIN_EXE" $EXEC_ARGS &
wait $!
trap - HUP INT TERM
break
fi
done
бла-бла-бла
После чего все сработало как надо....
Багу повесил, но вдруг не починят...
Шаг 6
Настраиваем интернет-киоск в файле
/etc/X11/kiosk/kiosk_run
Вначале принудительно устанавливаем настройки окружения и отключаем функции скринсервера и сохранения энергии
Строка
setxkbmap -layout "ru,us" -option "grp:ctrl_shift_toggle,grp_led:scroll"
ставит раскладку RU по умолчанию
Строка
(sleep 3; xxkb & ) &
позволяет показать индикатор раскладки клавиатуры по щелчку на котором раскладка меняется или на клаве (ктрл+шифт)
именно по-этому для русскоязычного киоска мне не подошли тайловые WM и был выбрал IceWM. Кроме IceWM пробовал blackbox - тоже неплохо получается, но там свои заморочки...
Строка
(sleep 3; /etc/X11/kiosk/button.sh & ) &
отображает кнопку выключения компьютера в правом верхнем углу.
Если не нужна, то надо закомментировать, т.е. поставить # перед строкой...
С выключением/перезагрузкой тоже есть свои заморочки
За это отвечают файлы
/etc/X11/kiosk/poweroff.sh
/etc/X11/kiosk/reboot.sh
На примере выключения в файле /etc/X11/kiosk/poweroff.sh прописана команда
sudo /sbin/poweroff
т.е. выключение с использованием sudo
что является более универсальным и не зависит от WM и DM, однако требует настроек файла sudoers
Для этого через
visudoдобавляем в конце строки
kiosk ALL=NOPASSWD:/sbin/reboot
kiosk ALL=NOPASSWD:/sbin/poweroff
Так как в Альте используется vi, который имеет два режима - бибикать и портить строки, то, если нет опыта с vi, лучше прочитать перед этим действом
https://docs.altlinux.org/ru-RU/archive/2.3/html-single/junior/alt-docs-extras-linuxnovice/ch02s10.html:)
Далее в цикле идет запуск браузера хромиум с веб-страницей по-умолчанию (но перед запускам грохаем настройки браузера с возможными куками и паролями от других запусков киоска)...
Цикл для надежности - вдруг браузер упадет или пользователь его закроет... на самом деле цикл был для мидори - так как он падучий :)
rm -rf ~/.config/chromium/
LANG=ru_RU.UTF-8 chromium --kiosk --no-first-run forum.altlinux.ru
Если убрать ключ --kiosk то у пользователей будет намного больше возможностей и удобств как хождения по интернетам, так и порчи киоска :)
Но выбор есть, что хорошо...
Как-то так...
Предварительные замеры на виртуалке показали что свежий сизифный альт с icewm даже в таком обрезаном виде достаточно жирный....
до запуска chromium
70 метров система + 150 метров буфер-и-кэш
после запуска chromium с форумом альта
130 метров система + 310 метров буфер-и-кэш
т.е. с 512 озу даже не заползет в своп, что очень неплохо...
Но если ОЗУ 256 тут могут быть вопросы, особенно если сайт более жирный чем форум альта...
Что можно еще поковырять для облегчения:
а) отказаться от network-manager'a и перейти на
etcnet Это даст метров 10 выигрыша
б) использовать страртеркит (
https://www.altlinux.org/Starterkits/About) - он должен быть легче, а если сайты не последней свежести, а компьютер очень старый и оперативки мало, то использовать дистры на p7 или даже p6, ИМХО...
в) использовать легкий браузер, например, midori, но в сизифе его удалили и он есть только на p8-репе и стартеркитах на p8/p7
https://packages.altlinux.org/ru/search?utf8=%E2%9C%93&branch=p8&query=midoriЧто еще....
Можно отключить виргуальные консоли (переключения по alt+ctrl+fX) - ибо нефиг....
Поставить пароль на grub
Каждый раз при загрузе полностью удалять содержимое профиля юзера kiosk
Может еще что :)