Как стать автором
Обновить

Ubuntu 9.04 vs. фискальный регистратор (кассовый аппарат)

Время на прочтение4 мин
Количество просмотров4.5K
Доброго времени суток всему хабрасообществу.

Отлично понимаю, что большая часть присутствующих здесь людей давным-давно прошли все стадии становления линуксоида, однако — поделюсь неожиданным опытом, авось сэкономит кому-нибудь время.

Лично я с линуксом связан постольку-поскольку (исключительно убунту, периодически пользуюсь, несколько раз устанавливал и настраивал, в общем — чайник), но самый продвинутый чайник в этой области из работающих в нашей конторе людей.

Посему именно мне было поручено избавиться, наконец, от не совсем легальных копий Windows и поставить на рабочие машины Ubuntu 9.04.

Проблем особых не предвещалось — 1С давным-давно перенесена на терминальный доступ на далеком-далеком сервере с win 2k3 на борту, так что… установка, проверка работоспособности, «обработка напильником» — проприетарные драйвера и плагины, дополнительные драйвера на видео и аудио, сетевые принтеры, серверная smb-шара, терминал. Набор стандартный и отнюдь не пугающий.

А потом я вспомнил про приблизившийся ко мне с тылу геморрой в виде конторского фискального регистратора ПРИМ-07К, работавшего по ком-порту с древней-предревней DOS 'овской оболочкой.

Пришел час Ч, жесткие диски были цинично отформатированы, весело подмигивали лампочками cd-rom'ы, на машины шустро и бесконфликтно устанавливалось свободное ПО, а я сидел и думал…

  • Первая и очевидная мысль — WINE – повлекла за собой провал. WINE напрочь отказался загружать чертову программку. Я, конечно, догадывался, что MS-DOS мало имеет отношения к WinApi и DirectX, но надежда была… (напоминаю, что я чайник).
  • Следующей идеей и шагом был старый добрый DOSbox. Он все замечательно запускал и показывал, однако… функций связи с COM-портом я в нем не обнаружил (плохо искал? ), а потому — опять провал.
  • Третьей по счету, но, по идее, той, что должна была стать самой первой мыслью в голову закралось воспоминание о DOSEMU. Достал, установил, настроил как-никак (с мышкой и портами), но… запущенная в нем программа управления фискальным регистратором намертво висла после нажатия. Что бы я не пытался сделать. Провал. Расстроился. Приуныл.

Тут в голову, наряду с «а пошло оно все», заглянула еще одна идея, чем-то сродни охоте на тушканчиков при помощи ядерного оружия. И она, что характерно, сработала. Пните меня и скажите мне, что это не Ubuntu-Way, но… очень уж домой хотелось.

Итак. С официальных репозиториев был скачан и установлен пакет virtualbox-ose. На просторах дикого интернета найдена загрузоччная дискета ms-dos (с системными файлами от win98, Забрать здесь), с файловым менеджером, поддержкой мыши и русской консолью, а также установочные дискеты MSDOS 6.22 (Забрать здесь), предварительно, при помощи стандартного гномовского CD\DVD-burner'а в .iso записана программа управления фискальным регистратором.

Итак:
Let the lust begin!

$ virtualbox

Откроется, собственно, виртуализатор. В нем создаем новую машину, ставим ей тип Dos, 32mb оперативной памяти, создаем жесткий диск мегабайт на 50.
  • Подключаем флоппи-диском образ скачанной загрузочной дискеты и cd-rom'ом созданный образ .iso,
    Не забываем про подключение нужных портов. У меня это был первый и единственный COM, так что в портах virtualbox'a мне пришлось включить только com1, проассоциировать его с /dev/ttyS0 и не забыть проверить, что режим работы выбран в хост-устройство (это значит, что устройство само по мере надобности будет управлять портом).
  • Включам виртуальную машину, грузимся с дискеты, видим забытое, но до сих пор родное «starting ms-dos», на вопросы диспетчера отвчаем однозначно — ESC.
  • Запускаем fdisk, размечаем наш маленький виртуальный жесткий диск, возвращаемся к консоли.
  • Запускаем файловый менеджер (на этой дискете он в «BLOCK\hc.exe») и копируем нашу программу с подключенного образа в корень диска C: виртуальной машины.
  • Выключаем машину.
  • Монтируем флоппи диском первую дискету MS-DOS, включаем машину, ставим, следуя указаниям, дос, снова выключаем машину.
  • Снова монтируем скачанную загрузочную дискету, загружаемся с нее, запускаем файловый менеджер и при помощи него копируем в C:\ файлы keyrus.com и mouse.com (русификация консоли и драйвер мышки) с дискеты.
  • Делаем A:\SYS C: (копирование обновленных системных файлов с диска A: на C:. Без этого программа периодически уходила в глубокую депрессию и окончательно переставала со мной общаться).
  • Открываем для редактирования C:\autoexec.bat, (в файловом менеджере на F4), дописываем в конец этого файла:

    keyrus.com
    mouse.com
    исполняемый_файл_программы.exe (у меня это был frs.exe)


  • Сохраняем.
В принципе — все. Выключаем, в очередной раз, виртуальную машину, проходимся по опциям, убирая всякую ненужную мишуру, вроде сетевых интерфейсов, ненужных портов, смонтированных в эту гостевую систему устройств и прочая. Включаемся, смотрим на ВНЕЗАПНО промелькнувший бутскрин от windows 98, пускаем скупую слезу, с удовлетворением наблюдаем на загружающуюся консоль, которая сразу разворачивает вашу программу.

Испытываем программу, слышим такой желанный звук открывающего сеанс фискального регистратора… радуемся.

Ну и последний мелкий штришок — совсем уже глупый — создаем на рабочем столе кнопку запуска приложения, в поле «команда» для нее пишем:

virtualbox -startvm имя_машины

ставим имя «Касса» и… совсем все. Манагер работает с кассой почти точно так же, как работал с ней в Windows XP.

Извиняюсь за отсутствие скриншотов — материала под рукой нет, я дома, а он на работе ).

Как-то сумбурно получилось. И, в основном про DOS, но… надеюсь — кому-нибудь пригодится ). И еще — очень хотелось бы услышать справедливую критику в адрес такого решения, а также другие возможные варианты. Спасибо за внимание.

UPD: Спасибо НЛО за приглашение )
UPD1: Обещанные скриншоты:

Дос:
Дос
Запущенная программа:
Сама программа
О Боже! Что это? (:
)
Настроенная виртуальная машина:
Настроенная виртуальная машина
Кнопка запуска:
Настройки кнопки
Теги:
Хабы:
Всего голосов 86: ↑75 и ↓11+64
Комментарии39

Публикации