четверг, 26 мая 2011 г.

Интернет-киоск под Linux

Задача: в интернет-киоске есть маленький компьютер, жесткого диска у него нет, загружаться он должен с флешки, подключать к интернету через 3G-модем, и показывать клиенту на мониторе html-страницу, на которой он сможет оформлять заказ.

Ингредиенты: PuppyRus Linux, Opera.

Порядок действий:
1) скачиваем PuppyRus
2) форматируем флэшку в FAT16 или очищаем, если на ней что-то есть
3) записываем скачанный iso на флешку с помощью UnetBootIn
4) правим (или создаем) syslinux.cfg в корне флэшки, главное строки pmedia=cd заменяем на pmedia=usbflash, и остальное до примерно такого состояния:

default menu.c32
prompt 0
menu title UNetbootin
timeout 50

label puppy1
menu label Puppyrus Standart
kernel /vmlinuz pmedia=usbflash max_loop=22
append initrd=/initrd.gz

label unetbootindefault
menu label Default
kernel /vmlinuz
append initrd=/initrd.gz pmedia=usbflash max_loop=22

label ubnentry0
menu label Standart
kernel /vmlinuz
append initrd=/initrd.gz pmedia=usbflash max_loop=22

label ubnentry1
menu label RAM
kernel /vmlinuz
append initrd=/initrd.gz pfix=ram pmedia=usbflash max_loop=22

label ubnentry2
menu label Text
kernel /vmlinuz
append initrd=/initrd.gz pfix=nox pmedia=usbflash max_loop=22

label ubnentry3
menu label ACPI off
kernel /vmlinuz
append initrd=/initrd.gz acpi=off pmedia=usbflash max_loop=22

label ubnentry4
menu label Copy .sfs to RAM
kernel /vmlinuz
append initrd=/initrd.gz pfix=copy pmedia=usbflash max_loop=22

label ubnentry5
menu label Without copy *.sfs to RAM
kernel /vmlinuz
append initrd=/initrd.gz pfix=noram pmedia=usbflash max_loop=22

label ubnentry6
menu label Load with clean
kernel /vmlinuz
append initrd=/initrd.gz pfix=clean pmedia=usbflash max_loop=22

label ubnentry7
menu label Load with correct
kernel /vmlinuz
append initrd=/initrd.gz pfix=purge pmedia=usbflash max_loop=22

label ubnentry8
menu label Load with disk test
kernel /vmlinuz
append initrd=/initrd.gz pfix=fsck pmedia=usbflash max_loop=22

label ubnentry9
menu label Poweroff
kernel /vmlinuz
append initrd=/initrd.gz

5) загружаемся с флешки (выбираем первый пункт), настраиваем 3G-модем
6) запускаем mc идем в каталог /root
7) в каталоге /root по Shift-F4 создаем два shell-файла, один для запуска киоск-приложения kiosk-app:

#!/bin/sh
exec opera -geometry 800x600+0+0 -kioskmode yandex.ru

8) другой - для запуска отдельного дисплея run-kiosk:

#!/bin/sh
xinit /root/kiosk-app -- :1
#xinit /root/kiosk-app -- :1 -nocursor

9) меняем права shell-файлов - помечаем их как запускаемые:

chmod 755 ./kiosk-app
chmod 755 ./run-kiosk

Права также можно менять в mc через меню F9-Файл-Права.

10) пробуем запустить kiosk-app - должен открываться браузер Opera на весь экран

11) пробуем запустить run-kiosk - должно открываться отдельное окно с Opera. Чтобы вернуться обратно нажимаем Ctrl-Alt-F3 или Ctrl-Alt-F4 или т.п. Чтобы прервать скрипт жмем Ctrl-C.

12) если киоск работает как надо, добавляем скрипт run-kiosk в автозагрузку. Для этого просто копируем (по F5) файл run-kiosk из /root в:
/root/Startup
После перезапуска будут открываться два дисплея, рабочий стол на Ctrl-Alt-F3 и опера - на Ctrl-Alt-F4.

Комментариев нет :

Отправить комментарий