+7 499 990-10-21

[РЕШЕНО]Сборка из исходников

Re: Сборка из исходников

Сообщение Alexander » 24 апр 2012, 16:02

Ок, принято
Alexander
 
Постов: 4959
Зарегистрирован: 16 авг 2009, 23:34
Откуда: Техподдержка ГК ДЭНСИ

Re: Сборка из исходников

Сообщение oldbay » 27 апр 2012, 15:24

oldbay писал(а):И потом выложу образ виртуального диска vdi в public на dropbox - откуда его можно будет скачать.


Сделал как обещал:
Выкладываю готовый образ системы в 2-х вариантах:

архив vdi диска системы из virtualbox:
http://content.wuala.com/contents/oldbay/pub/dnc-st-vdi.7z
установка стандартная - разархивировать и просто скормить образ диска dnc_kassa.vdi виртуальной машине.

bzip архив файловой системы:
http://content.wuala.com/contents/oldbay/pub/dnc-st-0.1.tar.bz2
Образ применим для установки на жесткий диск и в качестве бездисковой станции для загрузки по сети.

установка на жесткий диск(можно USB - но не твердотел):
на машине для установки запускается LiveCD(все что само может грузится) произвольного линукса(лучше конечно посвежее..я использую arch)
1) Создаются разделы и форматируется жесткий диск для установки, если памяти достаточно от 256(правда тут не уверен,так как на станции пускается postgres)-512 мб и более, то swap раздел можно не создавать. Создаются файловые системы - мы делали один раздел основной для для / и форматировали в ext3
Для операции применяются либо графические средства - скажем gparteg или qtpart. - либо консольные: fdisk или cfdisk - для разметки и mkfs.ext3 для создания файловой системы.
2) Созданный раздел с файловой системой монтируется к LiveCD (предположим что раздел /dev/sda1) и распаковываем ФС из архива.
создаем точку монтирования будущей ФС
Код: Выделить всё
#mkdir /mnt/sys

монтируем подготовленный раздел жесткого диска к точке монтирования
Код: Выделить всё
#mount /dev/sda1 /mnt/sys

копируем скаченный архив файловой системы в каталог /mnt/sys
распаковываем файловую систему из архива на диск
Код: Выделить всё
#tar xvjpf dnc-st-0.1.tar.bz2

по окончанию разархивации удаляем архив ФС(он теперь просто занимает место)
Код: Выделить всё
#rm /dev/sys/dnc-st-0.1.tar.bz2

3) Исправляем конфиг загрузчика grub
на образе ФС конфиг занрузчика grub /mnt/sys/boot/grub/menu.lst выглядит следующим образом:
Код: Выделить всё
# (0) Arch Linux
title  Arch Linux
root   (hd0,0)
kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/e5fcb65d-1cca-4ae6-bc29-ee8a8e801547 ro
initrd /boot/kernel26.img

# (1) Arch Linux
title  Arch Linux Fallback
root   (hd0,0)
kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/e5fcb65d-1cca-4ae6-bc29-ee8a8e801547 ro
initrd /boot/kernel26-fallback.img


редактируем строку:
Код: Выделить всё
kernel /boot/vmlinuz26 root=/dev/disk/by-uuid/e5fcb65d-1cca-4ae6-bc29-ee8a8e801547 ro


это путь загрузчика до корня файловой системы - в простейшем (нашем) случае следует заменить стоку таким образом(с учетом что root будет все таки располагаться на /dev/sda1):
Код: Выделить всё
kernel /boot/vmlinuz26 root=/dev/sda1 ro


4) Указываем системе правильный видеодрайвер.
В сборку установлен весь спектр видеодрайверов из репозитория(отсутствую закрытые fglrx и nvidia - но в нашем случае их прекрасно заменяет открытые ati и nouveau). В принципе можно убрать из
/mnt/sys/etc/X11/xorg.conf.d - правила для настройки xorg:
Код: Выделить всё
#cd /mnt/sys/etc/X11/xorg.conf.d
#rm 20-device.conf
#rm 20-monitor.conf
#rm 20-screen.conf

тогда видеодрайвер и пр настройки будут udev-ом определятся автоматически. Но я не люблю так делать...а делаю следующее:
определяю видеоадаптер:
* если на LiveCD подняты X-ы то можно запустить команду:
Код: Выделить всё
$cat /var/log/Xorg.0.log|grep -i driver

следующий вывод:
Код: Выделить всё
$ cat /var/log/Xorg.0.log|grep -i driver
[    29.506]    X.Org Video Driver: 12.0
[    29.506]    X.Org XInput driver : 16.0
[    29.788] (II) Loading /usr/lib/xorg/modules/drivers/intel_drv.so
[    29.893]    Module class: X.Org Video Driver
[    29.893]    ABI class: X.Org Video Driver, version 12.0
[    29.893] (II) intel: Driver for Intel Integrated Graphics Chipsets: i810,
[    30.067] (II) intel(0): [DRI2]   DRI driver: i965
[    30.092] (II) UXA(0): Driver registered support for the following operations:
[    30.100] (II) intel(0): [XvMC] xvmc_vld driver initialized.
[    33.051]    Module class: X.Org XInput Driver
[    33.051]    ABI class: X.Org XInput driver, version 16.0
................

сообщает что, в данном случае, в системе запущен видеодрайвер intel

* если Х-ы не запущены, определяем видеокарту как оборудование = запускаем команду:
Код: Выделить всё
#lspci | grep VGA

получаем следующий выдод:
Код: Выделить всё
00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 09)

и ищем драйвер соответсвующий установленной железке, найти можно из описаний к пакету драйвера - можно просмотреть следующим образом:
Код: Выделить всё
#chroot /mnt/sys
#pacman -Qs xf86-video-

смотрим список - выбираем что нужно, потом
Код: Выделить всё
#exit


найденный дидеодравер записываем в /mnt/sys/etc/X11/xorg.conf.d/20-device.conf
Код: Выделить всё
Section "Device"
        Identifier "MyDevice"
        Driver "vesa"
EndSection

в секцию Driver вместо "vesa"

5) Устанавливаем загрузчик на жесткий диск
отмонтируем жесткий диск от LiveCD
Код: Выделить всё
#cd /
#unount /dev/sda1

запускаем консоль grub:
Код: Выделить всё
#grub

получаем следующий вид консоли:
Код: Выделить всё
    GNU GRUB  version 0.97  (640K lower / 3072K upper memory)

[ Minimal BASH-like line editing is supported.  For the first word, TAB
   lists possible command completions.  Anywhere else TAB lists the possible
   completions of a device/filename. ]

grub>

производим поиск загрузчика:
Код: Выделить всё
find /boot/grub/stage2

скорее всего будет получен следующий вывод:
Код: Выделить всё
grub> find /boot/grub/stage2
(hd0,0)

поле чего следует выполнить подряд 2 команды - которые установят зарузчик:
Код: Выделить всё
root (hd0,0)
setup (hd0)

после чего выйти из меню grub - коммандой quit

все - загрузчик установлен, можно перезагружать компьютер и стартовать со свевжеустановленной системы.

установку в качестве бездисковой станции - сейчас описывать не буду = там много получится, по сути нужно писать начиная с настройки сервера tftp и уже потом что делать со станцией(на самом деле со станцией - немонго), лучше опишу саму станцию.....

Станция:
Решил не изобретать велосипеда - а адаптировать для ДЭНСИ образ нашей кассовой станции. Имеется следующая специфика:
загрузка станции происходит стандартно (/etc/rc.conf - секция DAEMONS) до скрипта localstart - он перенаправляет загрузку в скрипт-селектор /opt/scr-conf/select в котором производится выбор варианта загрузки графической оболочки: либо стандартный рабочий стол LXDE(по умолчанию - скрипт /opt/scr-conf/lxde) либо openbox с запущенной сверху ДЭНСИ:Касса (скрипт /opt/scr-conf/dnc).
Чтобы не искать конфиги по системе симлинки на основные из них собраны в /opt/scr-conf/etc, там же есть набор правил для xorg(/opt/scr-conf/etc/xorg-duo) - если необходимо подключать 2 монитора.
В системе заведен 1 пользователь(помимо системных) - user, пароль:qazwsx. В каталоге ~/BUILD пользователя user находятся исходники денси, а в ~/BUILD/dnc_sources_1.2.6.patch5 распакованные и частично собранные исходники(до момента возникновения ошибки), измененный скрипт сборки make_all и лог этой самой сборки make.log.
oldbay
 
Постов: 28
Зарегистрирован: 10 апр 2012, 04:05

Re: Сборка из исходников

Сообщение oldbay » 02 май 2012, 02:38

свершилось, финита ля комедия
пересобирать libhwsrv.so не нужно - собрал под арчем с тем файлом что есть на диске.
разобрался в ошибке:
Код: Выделить всё
/usr/bin/ld: /usr/lib/gcc/i686-pc-linux-gnu/4.3.4/../../../libhwsrv.so: undefined reference to symbol 'pthread_cancel@@GLIBC_2.0'
/usr/bin/ld: note: 'pthread_cancel@@GLIBC_2.0' is defined in DSO /lib/libpthread.so.0 so try adding it to the linker command line

просто не происходила линковка с динамической библиотекой libhwsrv.so = требовалось дополнительно указать флаг pthread в CFLAGS и CXXFLAGS при конфигурировании makefile некоторых программ.
посему:
требуется модифицировать в src/Interfaces/DevicesConf, src/Interfaces/RMK, src/Interfaces/WareProject сборочный скрипт makeprog:
добавить нужные инструкции к qmake
Код: Выделить всё
qmake QMAKE_CFLAGS=-pthread QMAKE_CXXFLAGS=-pthread QMAKE_LIBS=-lpthread

после чего сборка прошла до конца.

п.с:
В ближайшее время выложу в AUR еще один пакет ДЭНСИ собранный из исходников - скорее всего именно его и буду в дальнейшем поддерживать(если конечно все будет нормально работать)... ну а на данный момент вопрос со сборкой можно считать закрытым.
oldbay
 
Постов: 28
Зарегистрирован: 10 апр 2012, 04:05

Пред.

Вернуться в Установка ДЭНСИ: КАССы на разные дистрибутивы Linux

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


cron

Кто сейчас на конференции

Сейчас посетителей на конференции: 3, из них зарегистрированных: 0, скрытых: 0 и гостей: 3 (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (180) здесь было 29 апр 2024, 13:15

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3