Автор Тема: Интернет-киоск на коленке из регулярки/стартеркита c icewm  (Прочитано 7022 раз)

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 950
Итак задача:
Из старого компа соорудить нечто с браузером на весь экран, что позволяло бы любому человеку выходить в интернет и что-то делать...
Типа стоит в офисе, а хулиганов нет :)

Так как задача "однозадачная" и, боле того, от браузера требуется работать в "однозакладочном" режиме, то, ИМХО, потянуть это должен списанный компьютер начала века...

Есть монитор, старый системник 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
Может еще что :)



« Последнее редактирование: 29.09.2018 12:39:12 от YYY »

Оффлайн gvy

  • alt linux team
  • ***
  • Сообщений: 1 008
    • Альт на Эльбрусе
    • Email
1) настолько старой машинки может не хватить, чуть только шаг вправо-влево;
2) я когда-то выпускал беты стартеркитов с вебкиосками, но свернул это направление по причине примерно нулевого интереса, выраженного в отзывах (для заинтересованных: могу поделиться записками на манжетах в форме todo);
3) при желании можно пособирать live-webkiosk-* (см. conf.d/live.mk в mkimage-profiles); помнится, наиболее качественными в плане киоска получались варианты seamonkey и qupzilla (который на сизифе понадобится чуть поправить в сторону s/qupzilla/falkon/g).
--
Michael Shigorin | ALT Linux Team | ANNA-News | Сделано у нас | altlinux.org/эльбрус

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 950
1) настолько старой машинки может не хватить, чуть только шаг вправо-влево;
Ну других нет :)
Но вообще они весной этого года еще ползали с 256 озу - одна на tde-t6 и две на runtu-lite-12.04
Вот из них и собирать буду :)
Причем думаю даже оси оставить какие есть, настройки просто скопирую и браузеры обновлю, если получится....
Бинарные сборки вроде есть https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html


2) я когда-то выпускал беты стартеркитов с вебкиосками,
Интересно, я не обращал внимания...

но свернул это направление по причине примерно нулевого интереса, выраженного в отзывах
Видимо больно нишевое решение...

Если честно, мне тоже киоск то не нужен. Можно было и так... Компьютеры планирую ставить в учительской и в кандейке спортзала - обязали школу работать с веб-дневником в этом году... Вот эту задачку и будут решать... Думаю за счет отказа от тяжелого DE/WM, панельки, FM и остальной чепухи выиграть метров 50 в оперативке и браузер на 256 ОЗУ не будет тормозить...
:)

(для заинтересованных: могу поделиться записками на манжетах в форме todo);
Было бы интересно...
Особенно с точки зрения проблем антивандальности и безопасности...
« Последнее редактирование: 29.09.2018 14:33:45 от YYY »

Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 222
Если честно, мне тоже киоск то не нужен. Можно было и так... Компьютеры планирую ставить в учительской и в кандейке спортзала - обязали школу работать с веб-дневником в этом году... Вот эту задачку и будут решать... Думаю за счет отказа от тяжелого DE/WM, панельки, FM и остальной чепухи выиграть метров 50 в оперативке и браузер на 256 ОЗУ не будет тормозить...
проверьте будет ли оно работать с Opera 12... всё остальное слишком для такого малого количества памяти.

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 950
Если честно, мне тоже киоск то не нужен. Можно было и так... Компьютеры планирую ставить в учительской и в кандейке спортзала - обязали школу работать с веб-дневником в этом году... Вот эту задачку и будут решать... Думаю за счет отказа от тяжелого DE/WM, панельки, FM и остальной чепухи выиграть метров 50 в оперативке и браузер на 256 ОЗУ не будет тормозить...
проверьте будет ли оно работать с Opera 12... всё остальное слишком для такого малого количества памяти.

Не... 12 опера уже давно мертва - половина сайтов с косяками.
Мне летом пришлось сбегать с альта p5 в классе информатики в осовном из-за браузеров - в репах старье, на 12ю оперу ругаются и ничего на ней не работает, хромиум из реп продержался дольше всех - но тоже уже все...
Бинарное на p5 тоже только старое идет...
Дошло до смешного - весной в вайне ФФ запускал для одного сайта... :)


Вчера попробовал.... Полгода в кладовой не прошло для старых системников даром...
Тот на котором был альт перестал часы держать - у него каждый раз при включении 2000 год, замена батарейки не помогла....
Один из убунтовских стал перегружаться на пустом месте....
Третий вроде остался жив, но провозился долго.... Хромиум у убунтовцев в репе для 12.04 версии кривой и вылетает, бинарные не работают....
Мидори вешается... ФФ  репах старый...
Завел кое-как симанки :)

Железо
П3 с 256 ОЗУ, винт IDE 5400 оборотов, видяшка АТИ-агп какая-то древняя, кондеры на материнке вспухшие :)
Но еще в строю :)
Работает четко, общибся в скрипте и в цикле запустил симанки каждые 2 секунды :))) Но ничего - железо не вешалась - трещал винтом, тупил адово, правда ООМ киллера так и не дождался, но стресс-тест знатный получился :)))

Итог замеров:
runtu 12.04 LXDE после загрузки  без симанки в "-buffer" 85 метров, своп пуст
runtu 12.04 LXDE после загрузки  с сайтом в симанки в "-buffer" 145 метров, своп тоже в принципе пуст, свободной памяти нет
киоск-мод (все оторвал до чего дотянулся) с сайтом в симанки в "-buffer" 105 метров, своп тоже пуст, свободной памяти нет, но получается около 40 метров выиграл...

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


Оффлайн yaleks

  • Мастер
  • ***
  • Сообщений: 6 222
Не... 12 опера уже давно мертва - половина сайтов с косяками.
насколько я понял вам нужен 1 сайт, вот его и надо проверить. А вообще по КЗоТ у вас должен быть компьютер на каждом рабочем месте, а 2 на школу.
Rujel в opera 12 работал (и сейчас работает, просто тот комп уже не используется)  ;-)

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 950
Не... 12 опера уже давно мертва - половина сайтов с косяками.
насколько я понял вам нужен 1 сайт, вот его и надо проверить. А вообще по КЗоТ у вас должен быть компьютер на каждом рабочем месте, а 2 на школу.
Компы есть, но не на каждое раб. место...
Например, в классах труда или в спортзалах их нет :)
Да и 100% безотказности добиться нельзя - где БП сгорит, где кабель оторвут...


Rujel в opera 12 работал (и сейчас работает, просто тот комп уже не используется)  ;-)
Город стройными рядами погнали на определенный продухт Ж)

Оффлайн YYY

  • Мастер
  • ***
  • Сообщений: 5 950
Да... по следам борьбы с симанки :)

Браузер запускается таким извращенским способом (файл kiosk_run)


rm -rf ~/.mozilla
cp -rf /etc/X11/kiosk/.mozilla ~/
xdotool search --sync --onlyvisible --class "Seamonkey" windowactivate key F11 &
seamonkey -private forum.altlinux.org

Проксю пришлось ставить в профиле браузера т.к. стандартный http_proxy и https_proxy не сработал...

Кнопка выхода получилась висит некрасиво, пришлось подгонять геометрию исправлением строк файла button.sh
wm geometry . 70x30-0+0
frame .main -width 70 -height 30  -bg $bgc
place .main.lab -x 25 -y 7

С удивлением узнал, что простейшее окно на tk/tcl выжирает памяти сравнимо с icewm - аж 4 метра...  o_O 
Ну думал, что так с вишем печально...

Вообще на хороших машинках при использовании гнома/хфце/лхде для таких простеньких задач и оGUIвания скриптов хорошо подходит yad - заметно богаче зенита, но на слабой машике yad тугодумен...