1. Описание дистрибутива Set10Cash

Описание дистрибутива Set10Cash (TinyCore Linux)

Set Retail X Linux — адаптированный компанией Кристалл Сервис дистрибутив для кассовых терминалов, основанный на TinyCore Linux.

Установка Set10Cash

1. Установочный образ

Дистрибутив Set10Cash представляет собой установочный гибридный iso-образ, пригодный для записи как на флеш-накопитель, так и на cd/dvd-диск. Для записи в Linux можно воспользоваться программами dd или cdrecord, а в Microsoft® Windows™ — Win32DiskImager.

tc@box:~$ dd if=storage/set-retail-10.NNN-linux.img of=/dev/sdb
tc@box:~$ cdrecord dev=/dev/cdrom storage/set-retail-10.NNN-linux.img

(Здесь /dev/sdb и /dev/cdrom — названия устройств USB-флешки и CD-ROM соответственно.)

2. Установка системы

Установка на кассы производится с компакт-дисков или с USB-флеш. При загрузке носитель будет автоматически обнаружен, и предложит меню.
Внимание! Перед началом установки убедитесь, что основной жёсткий диск подключен как Primary Master.

Клавиша Tab выводит список вариантов загрузки, клавиша Enter подтверждает текущий выбор (setretail), который загружается автоматически через 1 секунду



После загрузки ядра операционной системы оценивается соответствие системным требованям (процессор — 500 МГц, ОЗУ — 256 Мб, жёсткий диск — 4000 Мб, скорость диска — 10 Мб/сек). В случае успеха проверяется контрольная сумма (MD5) дистрибутива, диск разбивается на разделы : 500 Мб для swap, всё остальное пространство отводится под раздел с данными (база postgres, crystal-cash, настройки ос в mydata.tgz). Перед форматированием диска проверяется наличие на нем разделов, и, если диск размечен, нужно подтвердить его форматирование трехкратным нажатием любой клавиши (вся старая информация будет утрачена, о чём выдаётся предупреждение). Через 5 секунд происходит автоматическая перезагрузка.

Администрирование Set10Cash

1. Основные используемые файлы и каталоги

В примерах ниже, предполагается что раздел диска, на котором находятся файлы кассы называется sda1.

  1. /home/tc/storage/ - в этом каталоге размещены файлы кассового модуля и модуля управления конфигурацией.
  2. /home/tc/storage/Backup - Бэкапы старых версий
  3. /home/tc/storage/BackupDB - Бэкапы баз данных
  4. /home/tc/storage/config/plugins - Настройки плагинов, файлы раскладок, меню
  5. /home/tc/storage/lib -  java-библиотеки, необходимые для работы
  6. /home/tc/storage/log -  Кассовые логи
  7. /home/tc/storage/modules -  Исполняемые «*.jar»-файлы модулей и их системные настройки.
  8. /home/tc/storage/restore - Папка со скриптами обновления и файлами клавиатур
  9. /home/tc/storage/updates - Патчи для обновления
  10. /home/tc/storage/config/modules - Пользовательские настройки модулей.
  11. /home/tc/storage/config/localization - Файлы локализации.
  12. /home/tc/storage/config - Папка настроек
  13. /home/tc/storage/banks - Папки по банкам с файлами для работы терминала 
  14. /mnt/sda1/pgsql - каталог в котором хранятся рабочие файлы СУБД postgresql - база данных, настройки, логи.
  15. /mnt/sda1/tce/optional - локальное хранилище расширений дистрибутива tinycore. Описание поставляемых с дистрибутивом расширений находится в разделе «Репозитарий TinyCore»
  16. /mnt/sda1/tce/mydata.tgz - архив с настройками системы.
  17. /opt/ - каталог с настройками ОС. После внесения изменений в любой из файлов, необходимо выполнить команду cash save, чтобы изменения сохранились после перезагрузки ОС.

2. Удаленный текстовый вход в систему

Для удаленного доступа к командной оболочке системы можно воспользоваться командой ssh в linux-системах, или приложением putty (найти можно по адресу -http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html) в windows-системах. По умолчанию пользователю tc задан пароль 324012.

3. Удаленный графический вход в систему

Чтобы получить удаленный графический доступ к работающей кассе, нужно залогиниться по ssh на кассу под пользователем tc (пароль 324012), и выполнить команду:

x11vnc -desktop cash

После выполнения данной команды, можно подключиться к кассе по протоколу vnc используя любой доступный клиент VNC, например tightvnc - http://www.tightvnc.com/download.php.

4. Управление и изменение параметров системы

Все команды приведенные ниже запускаются от пользователя tc. Команды могут вводиться из сессии ssh или из локальной консоли ОС, попасть в которую можно нажав комбинацию клавиш: ctrl+f1 
Чтобы сохранить изменения внесенные в файлы, выполняется команда

cash save

Вывести основную информацию о работе кассы:

tc@box:~$ cash status
*** SetX Cash status ***

POS Loaded       : YES

OS Release       : 3.0.417
IP address       : 172.16.1.16
Gateway          : 172.16.0.1
DB Size          : 32.2M
TCE Path         : /mnt/hda1
Disk free        : 480M

Server IP        : 172.16.2.63
Server status    : Available

Данная команда показывает статус кассы: 
1. Загружен или нет кассовый модуль 
2. Ревизию ОС кассы 
3. ip-адрес кассы 
4. Шлюз по умолчанию 
5. Размер базы данных 
6. Путь по которому установлена система 
7. Свободное дисковое пространство в килобайтах 

Перезагрузить систему полностью:

cash reboot

Выключить систему:

cash off

Перезагрузить систему:

cash reboot

Перезагрузить только кассовый модуль:

cash restart

Остановить кассовый модуль:

cash stop

Запустить кассовый модуль:

cash start

Выбрать используемое на кассе оборудование

cash hwselect

На данный момент конфигурации могут быть следующие:
1. Generic POS without touchscreen - Касса без тач-монитора, разрешение 640×480.
2. Wincor/Nixdorf POS with serial elo touchscreen - Касса с тач-скрином ELO.
3. Wincor/Nixdorf POS with serial 3M touchscreen - Касса с тач-скрином 3М подключенным по com-порту.
4. Wincor/Nixdorf POS with usb 3M touchscreen - Касса с тач-скрином 3M подключенным по usb.

Сделать бэкап кассы

cash backup

После завершения, архивы базы данных и каталога crystal-cash будут лежать в /home/tc/storage/postgres-db.tar и /home/tc/storage/crystal-cash.tar Доступ к этим файлам возможен через windows-шару по адресу: \\172.16.1.16\storage\. Вместо 172.16.1.16 нужно подставить соотвествующий адрес. Имя пользователя на шару: tc, пароль: 324012. 

Восстановить кассу из бэкапа

cash restore

Для восстановления базы данных и каталога crystal-cash из архивов, файлы с архивом базы данных и каталога crystal-cash должны лежать в /home/tc/storage/ 

Установка часового пояса:

sudo ln -sf /usr/local/share/zoneinfo/Europe/Moscow /etc/localtime

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

cash save

Временно установить ип-адрес на сетевой интерфейс:

sudo ifconfig eth0 172.16.1.100

Добавить сетевой маршрут к сети:

sudo route add -net 10.0.0.0 netmask 255.0.0.0 gw 172.16.1.1

Если нужно чтобы маршрут сохранился после перезагрузки системы, нужно добавить команду установки маршрута в файл /opt/eth0.sh после строки содержащей ifconfig.

Проверить наличие com-портов на кассе:

dmesg | grep serial
tc@box:~$ dmesg | grep serial
serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
serial8250: ttyS2 at I/O 0x3e8 (irq = 4) is a 16550A
serial8250: ttyS3 at I/O 0x2e8 (irq = 3) is a 16550A
tc@box:~$ 

Ручное обновление ОС кассы (не актуально):

tc@box:~$ cash update 3.0.422 172.16.1.20
Start updating cash OS to release 3.0.422
Current OS Version: 3.0.422

1. Mounting server update directory... Done
2. Copying new kernel images ... Done
3. Copying new rootfs image ... Done
4. Copying updated extensions ... Done
5. Copying updated mydata.tgz ... Done
6. Unpacking new files from mydata.tgz ... Done
7. Change grub menu.lst file ... Done
8. Save new mydata files to  mydata.tgz ... Done

All updating processes finished. Good luck

Данная команда принимает два обязательных параметра, номер нового релиза кассовой ОС, и ип-адрес сервера, с которого можно обновиться. На сервере CentOS Set10 обновление должно быть выложено в каталог /var/lib/updates/{НомерРелиза}/

Репозитарий TinyCore

1. Стандартные пакеты Tinycore

В базой версии, дистрибутив tinycore представляет собой урезанную версию linux, предоставляющий минимальную функциональность. Для расширения функциональности системы используются расширения, содержащие в себе файлы конфигурации, дополнительное ПО и системные библиотеки. Краткое описание поставляемых с дистрибутивом расширений представлено ниже.

  1. acpid - Поддержка событий нажатия на кнопку питания системного блока.
  2. bash - Шелл, командная оболочка. Позволяет запускать команды системы.
  3. bsddb - Интерфейс для доступа к файлам базы данных беркли. Необходим для Linux-PAM
  4. busybox - Основные утилиты командной строки linux, такие как ifconfig, route, free и т.д.
  5. cracklib - Проверка стойкости устанавливаемого пользователем пароля. Необходим для Linux-PAM
  6. cyrus-sasl - Поддержка протокола SASL (Simple Authentication and Security Layer). Необходим для openldap.
  7. dejavu-fonts-ttf - Шрифты для X сервера.
  8. diffutils - Утилита для сравнения текстовых файлов.
  9. dmidecode - Позволяет получить информацию об аппаратном обеспечении ПК.
  10. dropbear - ssh сервер, обеспечивает удаленное управление кассовой ОС.
  11. exii-tool - утилиты для калибровки тач-устройств 3M.
  12. expat2 - Библиотека функций парсинга xml-файлов.
  13. file - Утилита для определения типа файла по его содержимому.
  14. fontconfig - Утилита для управления шрифтами X сервера.
  15. gawk - GNU awk - поточный редактор.
  16. glib2 - Библиотека дополнительных функция языка C.
  17. glibc-ru-gconv - Файлы таблиц кодировки cp1251, koi8-r, utf.
  18. gnutls - Библиотека функций поддержки протокола TLS. Необходим для OpenLDAP.
  19. gpm - Поддержка мыши в консольном окружении. Необходим для midnight commander.
  20. graphics-libs-1 - Библиотека функций поддержки основных форматов изображений.
  21. hibernate-script - Скрипт для включения режима suspend-to-disk.
  22. ibm-javapos - Поддержка IBM JavaPOS.
  23. javax-usb-ri-linux - Библиотека функций для Java для работы с оборудованием usb.
  24. javax-usb-ri - Библиотека функций для Java для работы с оборудованием usb.
  25. javax-usb - Библиотека функций для Java для работы с оборудованием usb.
  26. jre - Среда запуска приложений Java.
  27. kexec-tools - Утилита для замены ядра системы на лету.
  28. krb5 - Библиотека поддержки протокола аутентификации kerberos.
  29. libcups - Поддержка принтеров. Необходим для samba.
  30. libgcrypt - Библиотека функций поддержки различных алгоритмов шифрования.
  31. libgpg-error - Библиотека кодов ошибок для gnupg.
  32. libiconv - Библиотека функций перекодировки текста из разных кодировок.
  33. libpci - Библиотека функция для доступа к pci устройствам.
  34. libtasn1 - Поддержка ASN.1. Необходим для gnutls.
  35. libusb - Библиотека функций для доступа к usb устройствам.
  36. libx86 - Необходим для vbetool.
  37. libxft - Библиотека функция поддержки шрифтов для X сервера.
  38. libxml2 - Библиотека функций парсинга xml-файлов. Необходима для postgresql.
  39. libxslt - Библиотека поддержки xslt. Необходима для postgresql.
  40. Linux-PAM - Системные библиотеки для поддержки аутентификации пользователей.
  41. lsof - Позволяет вывести список открытых процессами файлов.
  42. mc - Двухпанельный файловый менеджер. Аналог Norton Commander.
  43. mylocale - Файлы локализации.
  44. nagios-plugins - Плагины для агента системы мониторинга nagios.
  45. ncurses-common - Библиотека функций управления экраном терминала. Необходима для midnight commander.
  46. ncurses - Библиотека функций управления экраном терминала. Необходима для midnight commander.
  47. ncursesw - Библиотека функций управления экраном терминала. Необходима для midnight commander.
  48. nrpe - Агент системы мониторинга nagios.
  49. ntpclient - Клиент сервер времени. Используется для периодической синхронизации времени с сервером.
  50. openldap - Библотека функций для доступа к серверу ldap. Необходима для postgresql.
  51. openssl-0.9.8 - Поддержка SSL. Необходим для postgresql, x11vnc, cyrus-sasl.
  52. patch - Утилита для накладывания патчей на текстовые файлы, скрипты, конфиги и т.д.
  53. popt - Библиотека функций для разбора параметров командой строки.
  54. postgresql - Сервер СУБД postgresql.
  55. pppd - Служба pppd для поддержки сетевых соединений точка-точка. Используется для gprs-модемов.
  56. readline - Библиотека функций поддержки функционала командной строки. Необходим для postgresql.
  57. rma - Агент системы мониторинга Host Monitor.
  58. samba3 - Поддержка windows-сетей, расшаривание папок кассы.
  59. sensors - Утилита для получения значений температурных датчиков.
  60. splashutils - Утилиты для контроля заставки при загрузке ПК.
  61. tuxonice-userui - Интерфейс пользователя для настройки режима suspend-to-disk.
  62. tzdata - Файлы временных зон. Необходим для настройки часового пояса.
  63. urxvt - Эмулятор терминала для графического окружения пользователя.
  64. usb-modeswitch - Поддержка составных usb-устройств.
  65. vbetool - Утилита для манипуляции видеокартой. Включение/выключение
  66. x11vnc - vnc-сервер, необходим для удаленного графического доступа к кассе.
  67. xfonts-koi8-r - Шрифты для X сервера.
  68. Xlibs_support - Библиотека функций X сервера.
  69. Xorg-7.5-lib - Библиотека функций X сервера.
  70. Xvesa - X server для видеокарт с поддержкой vesa.
  71. xvtouch - Поддержка usb тач-устройств.

2. Дополнительные пакеты

При наличие с кассы доступа к интернету, возможно скачать и установить дополнительные пакеты из основного репозитария tinycore. Полезными могут быть пакеты:

  1. usb-utils - предоставляет команду lsusb - вывод списка usb устройств.
  2. pci-utils - предоставляет команду lspci - вывод списка pci устройств.
  3. htop - аналог команды top, но более удобный для использования.