Нестатья - интернет-киоск на базе Debian/Webconverger

Есть и такой ОС.

Модератор: weec

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
терминус_
проходил мимо

Нестатья - интернет-киоск на базе Debian/Webconverger

Непрочитанное сообщение терминус_ » 2011-02-15 20:08:14

Собственно был проект - надо было протестировать работу интернет-киоска на базе какого-нить линукса. Выход в интернет через HSDPA/GPRS/GSM USB модем Huawei E182E. Такая вот загагулина :smile:

Проект благополучно накрылся медным тазом по ряду не зависящих от меня причин, но в его ходе была получена рабочая конфигурация + опыт. Напишу тут как это все делается чтобы не забыть, если потом еще раз надо будет (все же день убил на это - зря что ли?).

В качестве дистрибутива был выбран свежий Debian 6, а вернее его официальный субпроект под названием Webconverger. Фишка этого дистрибутива в том, что там все что только можно уже залоченно и отгрызано. Есть только firefox который нельзя закрыть, adobe flash и adobe acrobat. Короче готовый киоск - бери и пользуйся! На сайте webconverger.org есть ISO имиджы - их можно записать на CD или на флешку или сразу на жард.

Но мне надо было добавить в дефолтную инсталяцию sshd, zabbix-agent и x11vnc и еще разного, а так же поменять картинки вылезаюзщие при загрузке. Кроме тога надо было обеспечить работу USB модема так как дефолтная ISO инсталяция умеет работать только с ethernet и wi-fi сетями (никаких NetworkManager нет). Таким образом мне надо было создать свой кастомизированный ISO.

Шаги создания такие:

- Устанавливаем себе свежий Debian. Выпроняем apt-get update.

- После создаем файл /etc/apt/preferences.d/live-helper:

Код: Выделить всё

Package: live-helper
Pin: release a=squeeze
Pin-Priority: 900

Package: live-build
Pin: release a=squeeze
Pin-Priority: 900
- Редактируем файл (добавляем) /etc/apt/sources.list:

Код: Выделить всё

deb http://live.debian.net/ sid-snapshots main contrib non-free
deb-src http://live.debian.net/ sid-snapshots main contrib non-free
- ставим live-helper

Код: Выделить всё

apt-get install live-helper
отказываемся от предложения установить live-build

- Вручную скачиваем и устанавлеваем старый live-build из второй версии от сюда:

Код: Выделить всё

http://live.debian.net/archive/packages/live-build/2.0~a29-1/live-build_2.0~a29-1_all.deb
Это надо из-за того что весь процесс сборки заточен на 2ю версию.

- Скачиваем дерево исходников

Код: Выделить всё

mkdir /home/temp
cd /home/temp
git clone git://git.debian.org/git/debian-live/config-webc.git

После того как исходники скачаются мы можем приступать к кастомизации инсталяции. Есть несколько мест которые надо настроить:

- файл ./config-webc/webconverger/auto/config там самое главное это строка

Код: Выделить всё

--bootappend-live "homepage=http://www.homepage.com nonetworking nopersistent quickreboot nomodeset noroot splash" \
homepage - страница которую наш терминал будет открывать сразу после запуска
noroot - отключение возможности нажать Shift+Alt+Enter для вызова консольки (я его убирал пока игрался - для дебага)
остальные параметры см на сайте разработчиков.

- файл ./config-webc/webconverger/config/chroot_local-packageslists/webconverger.list

Код: Выделить всё

# MY CUSTOM
zabbix-agent
openssh-server
mc
x11vnc
ppp
usb-modeswitch
wvdial
##


# Webconverger's main configuration hendry@webconverger.com
# Minimal
eject file sudo wget netbase ifupdown

# Standard
console-common kbd locales
dhcp3-client

# X11
xorg
собственно здесь прописываются имена пакетов которые надо включить в инсталяцию! Я там надобавлял что мне надо было.


- Директория ./config-webc/webconverger/config/chroot_local-includes/etc

Код: Выделить всё

# ls -la
total 32
drwxr-xr-x 4 root root 4096 Feb 15 15:56 .
drwxr-xr-x 3 root root 4096 Feb 14 12:30 ..
-rw-r--r-- 1 root root  765 Feb 15 16:35 crontab
drwxr-xr-x 3 root root 4096 Feb 14 12:30 iceweasel
-rw-r--r-- 1 root root  401 Feb 14 11:08 iptables.conf
-rw-r--r-- 1 root root  161 Feb 14 12:30 mozpluggerrc
drwxr-xr-x 3 root root 4096 Feb 14 12:30 network
-rw-r--r-- 1 root root  120 Feb 14 12:30 sysctl.conf
Это натуральный /etc - можно добавть что-то свое или добавить системный файл со своим наполнением (файлы от сюда имеют больший приоритет и будут перезаписывать дефолные при создании образа).

- файл crontab

Код: Выделить всё

@reboot root ( /live/image/TEST/START )

После того как сделаны все кастомизации и настройки можно начинать строить имидж
Идем в /home/temp/config-webc/webconverger/ и выполняем:

- для построемня ISO имиджа

Код: Выделить всё

lh lh config
- для построемня IMG имиджа

Код: Выделить всё

lh lh config-b usb-hdd 
разница в том, что ISO когда он записан на жесткий диск или флешку уже не поменять так как файловая система iso9600, а вот IMG это FAT раздел который при желании можно подмонтировать и что-то потом там делать. Мне надо было IMG чтобы иметь возможность писать свои файлы после инсталяции...

-Далее выполняем

Код: Выделить всё

lh build
и ждем примерно 30-40 минут. В конце в /home/temp/config-webc/webconverger/ появится binary.img - этот файл можно записать на флешку или сразу на жесткий диск.

Мне надо было писать на жесткий диск. Это делается так - загружаемся с какого-нить Live CD, и через dd просто в тупую копируем сектора из имиджа на диск:

Код: Выделить всё

dd if=/mnt/flashdisk/webconwerger/binary.img of=/dev/sda
после перезапуска с диска веб-киоск загрузится.


Как я уже сказал, мне надо было добиться работы с USB модемом. Для этого перед созданием образа я поместил в crontab:

Код: Выделить всё

@reboot root ( /live/image/TEST/START )
А так же установил пакеты:
ppp - ппп демон.
usb-modeswitch - тулза которая на лету переключает USB модем из режима USB storage в режим USB modem.
wvdial - тулза для отсылки AT команд на модем (PIN, инициализация, etc) и дял запуска ppp демона.

После того как образ через dd был записан на жеский диск киоска, я подмонтировал /dev/sda1 в /mnt и создал директорию /mnt/TEST/

Туда я поместил файлы:

- скрипт START

Код: Выделить всё

#!/bin/sh

DROOT="/live/image/TEST"
/usr/bin/wvdial --config $DROOT/WVDIAL.CON pin
sleep 5
/usr/bin/wvdial --config $DROOT/WVDIAL.CON provider

- крнфигурационный файл WVDIAL.CON

Код: Выделить всё

[Dialer Defaults]
Modem = /dev/ttyUSB0

[Dialer provider]
Modem = /dev/ttyUSB0
Baud = 115200
Init2 = AT+CGDCONT=1,"IP","mobileinternet.provider.com"
Phone = *99#
Username = *
Password = *
New PPPD = yes
Auto DNS = 1

[Dialer pin]
Modem = /dev/ttyUSB0
Baud = 115200
Init1 = AT+CPIN=0000]
параметры wvdial специфичны для конкретного провайдера. Init1 = AT+CPIN=0000 - 0000 это PIN модема.

Таким образом получается схема: киоск стартует и разворачивает в память live файловую систему с корнем и всеми делами которые уже нельзя менять без полной пересборки имиджа. Директория с FAT раздела /mnt/TEST/ (то что я монтировал руками сразу после записи имиджа и куда скоадывал конфиги) автоматически монтиреутся как /live/image/TEST. При старте cron запускает мой скрипт который скармлевает модему PIN и запускает pppd.

Так как конфиг WVDIAL.CON лежит на FAT разделе, то при жедании можно будет менять что надо без пересборки имиджа.
Если бы я выбрал построение не IMG а ISO то менять уже ничего не смог бы.

Такие дела, да :smile:



Если понадобится пересобрать имидж по новой, то:

Код: Выделить всё

lh clean --all
lh clean --purge
lh config -b usb-hdd
lh build
без --purge он у меня не хотел пересобираться (--purge удаляет все ранее скачанные пакеты).

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
terminus
майор
Сообщения: 2305
Зарегистрирован: 2007-10-29 11:27:35
Откуда: Рига

Re: Нестатья - интернет-киоск на базе Debian/Webconverger

Непрочитанное сообщение terminus » 2011-02-15 21:28:37

че то конфиг WVDIAL.CON криво вставился... У кого есть модераторские права на Linux? Поправьте пожалуйста шоб оно красивее было... Спасибо.
Модель: AST-PM-105/0044; Тип: Универсальный, ремонтный; Название: Терминус; Род повреждения: Распад функций; Выводы: Сдать на слом.

терминус_
проходил мимо

Re: Нестатья - интернет-киоск на базе Debian/Webconverger

Непрочитанное сообщение терминус_ » 2011-07-11 16:31:33

нашел у себя ошибки
Идем в /home/temp/config-webc/


- для построемня ISO имиджа

lh config

- для построемня IMG имиджа

lh config-b usb-hdd

терминус_
проходил мимо

Re: Нестатья - интернет-киоск на базе Debian/Webconverger

Непрочитанное сообщение терминус_ » 2011-07-12 13:31:58

!@#$ как мне надоел этот линукс! ничего невозможно повторить даже по собственному мануалу. все время что-то там меняется или ломают!

короче:
Идем в /home/temp/config-webc/webconverger


- для построемня ISO имиджа

lh config

- для построемня IMG имиджа

lh config -b usb-hdd
версия пакета live-helper 2.0.11-1 (важно чтобы была именно эта)
версия пакета live-build 3.0-a14 (самая последняя на момент сборки)

cactys
проходил мимо
Сообщения: 3
Зарегистрирован: 2012-02-29 9:51:55

Re: Нестатья - интернет-киоск на базе Debian/Webconverger

Непрочитанное сообщение cactys » 2012-02-29 9:56:01

Эх, надеюсь автор не забросил свою тему ).
На пункте с git немного не понятно, он вроде что-то качает, но в итоге получается на выходе ~/.git и ~/config-webc/README, видимо исходники припрятали куда-то, ибо проект на сколько я погляжу, в данный момент платный.

xra
проходил мимо

Re: Нестатья - интернет-киоск на базе Debian/Webconverger

Непрочитанное сообщение xra » 2012-03-15 5:12:20

перепрятали
git clone git://github.com/Webconverger/Debian-Live-config.git

fasgen
проходил мимо

Re: Нестатья - интернет-киоск на базе Debian/Webconverger

Непрочитанное сообщение fasgen » 2012-04-19 7:56:51

Ребят подскажите как в этом webconverger уже в собранном настроить локальный IP адрес например 192.168...... , напишите кто знает буду очень благодарен