ЗАО «ЗЭО»

Техническая поддержка пользователей => Тион-Про28, Орион28 => Тема начата: Александр Глухов от 17 Октября, 2014, 15:07:19

Название: БД
Отправлено: Александр Глухов от 17 Октября, 2014, 15:07:19
Здравствуйте, нужно на Тион28 поставить базу данных, в которую приложение будет делать записи. Как это можно сделать и какую версию? Желательно с PostgreSQL. Скачал postgresql-9.3.5.tar.bz2 с их сайта, установил на виртуалке с ltib, путь прописал в rootfs/pgsql. По руководствам создал там БД, сделал пару записей. Но на самом тионе ничего не могу получить от базы, только подобного вида сообщения:
./psql: line 1: syntax error: unexpected "("
root@freescale /pgsql/bin$ ./postgres
./postgres: line 1: syntax error: unexpected "("
Из приложения также не получается соединиться, хотя на Windows ставил PostgreSQL, с той базой все ок.
Я так понимаю там нужно запустить сервер командой postgres, после чего устанавливать коннект с базой, но postgres не запускается. Также для него на виртуалке потребовалось создать пользователя без привилегий, так как под root запускать нельзя. Его тоже как то нужно перенести на Тион?
Название: Re: БД
Отправлено: btolfa от 19 Октября, 2014, 21:24:40
Во-первых, чтобы приложение запускалось на Тион28, оно должно быть скомпилировано для него. Скорее всего вы не найдёте сборок postgresql для Тион28, т.е. нужно будет выполнить кросс компиляцию postgresql, что с ltib будет не тривиальной задачей.
Во-вторых, вам действительно нужна такая мощная СУБД? Может быть вам хватит возможностей http://www.sqlite.org/
Название: Re: БД
Отправлено: Александр Глухов от 20 Октября, 2014, 07:10:47
Возможно и хватит, не могу сказать, не я один это решаю, но хотел бы узнать :
С установкой на тион sqllite дела будут проще, чем с postgresql?
И что понадобится для кросс компиляции postgresql?
Название: Re: БД
Отправлено: Ziminets от 20 Октября, 2014, 18:53:53
Александр, зачем Вам БД на встраиваемом компьютере? Странная постановка задачи. Я не специалист по БД, но мне кажется, что система должна выглядеть следующим образом: удаленный сервер с базой данных и клиент на Тионе, реализующий GUI и отправляющий запросы к БД.
Название: Re: БД
Отправлено: asv от 20 Октября, 2014, 19:05:32
postgresql есть в Buildroot, при запуске занимает 50MB.
Название: Re: БД
Отправлено: Александр Глухов от 21 Октября, 2014, 07:55:07
Задача такая: Тион записывает данные в свою БД, а потом с неё удаленно будут считываться данные.

Скачал Buildroot, но не нашел postgresql, можно по-подробнее пожалуйста
Название: Re: БД
Отправлено: asv от 21 Октября, 2014, 08:04:54
> Скачал Buildroot

Buildroot с сайта buildroot.org (postgresql была добалвлена в мае 2014),
настраиваете:
target options / target arch variant arm920t и
toolchain / C library = glibc
Название: Re: БД
Отправлено: Александр Глухов от 21 Октября, 2014, 08:51:39
О, я с вашего качал. Скачал, вижу, что есть, но не работал с этим, поэтому много вопросов. Скажите пожалуйста, я могу перетащить оттуда в текущую rootfs LTIB'а или нужно вторую КФС собрать, затем уже переносить?
Название: Re: БД
Отправлено: asv от 21 Октября, 2014, 09:42:11
Вы можете посмотреть параметры сборки сохранив лог сборки Buildroot и
packages/postgresql. Оценить работу на собранной Buildroot КФС. А потом
решайте так ли вам нужен LTIB.
Название: Re: БД
Отправлено: btolfa от 21 Октября, 2014, 12:00:17
Цитировать
С установкой на тион sqlite дела будут проще, чем с postgresql?
Проще, sqlite есть в ltib. Как обычно версия не первой свежести.
Название: Re: БД
Отправлено: asv от 21 Октября, 2014, 13:01:49
К sqlite можно соединяться удалённо?
Название: Re: БД
Отправлено: Александр Глухов от 23 Октября, 2014, 07:28:31
Не совсем понятно, как из buildroot получить нужную сборку PostgreSQL. Можно же в LTIB собрать? Нужно только для этого postgresql.spec создать, можете подсказать, где его взять или как написать?
Название: Re: БД
Отправлено: asv от 23 Октября, 2014, 09:07:41
> как из buildroot получить

   make menuconfig

1.
target options / target arch variant arm920t и
toolchain / C library = glibc

2. Дополняете нужными вам элементами (postgresql).

3. Указываете порт для консоли.

4. Выбираете udev (eudev, mdev или udev) или статическую /dev
   (BR2_ROOTFS_DEVICE_CREATION_STATIC и device_table.txt)

5. Может быть, используете BR2_ROOTFS_OVERLAY для дополнения своими файлами.
   Может быть, по правилам Buildroot добавляете в каталог package сборку
   своих программ.

   make

6. Полученный output/images/rootfs.tar распаковываете в раздел с ФС ext на
   SD или USB Flash и загружаетесь с соответствующим указанием root=


> как написать?

Смотрите на существующие в LTIB, смотрите на лог сборки postgresql в
Buildroot, пишите, отлаживаете, отлаживаете, отлаживаете...
Название: Re: БД
Отправлено: Александр Глухов от 23 Октября, 2014, 14:37:15
Тупой вопрос: Где найти этот лог сборки?
Название: Re: БД
Отправлено: asv от 23 Октября, 2014, 14:57:06
Получить при сборке. Могу сделать, если хотите.
Название: Re: БД
Отправлено: Александр Глухов от 23 Октября, 2014, 14:58:51
Я вот что получил, что имеет отношение к PostgreSQL. Это оно?

echo "/home/ubuntu/Desktop/buildroot/output/host/usr/bin/makedevs -d /home/ubuntu/Desktop/buildroot/output/build/_device_table.txt /home/ubuntu/Desktop/buildroot/output/target" >> /home/ubuntu/Desktop/buildroot/output/build/_fakeroot.fs
printf '   postgres -1 postgres -1 * /var/lib/pgsql /bin/sh - PostgreSQL Server\n' >> /home/ubuntu/Desktop/buildroot/output/build/_users_table.txt
PATH="/home/ubuntu/Desktop/buildroot/output/host/bin:/home/ubuntu/Desktop/buildroot/output/host/sbin:/home/ubuntu/Desktop/buildroot/output/host/usr/bin:/home/ubuntu/Desktop/buildroot/output/host/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" /home/ubuntu/Desktop/buildroot/support/scripts/mkusers /home/ubuntu/Desktop/buildroot/output/build/_users_table.txt /home/ubuntu/Desktop/buildroot/output/target >> /home/ubuntu/Desktop/buildroot/output/build/_fakeroot.fs
echo " tar -cf /home/ubuntu/Desktop/buildroot/output/images/rootfs.tar -C /home/ubuntu/Desktop/buildroot/output/target ." >> /home/ubuntu/Desktop/buildroot/output/build/_fakeroot.fs
Название: Re: БД
Отправлено: asv от 23 Октября, 2014, 15:04:11
Лучше всего собрать Buldroot с отключенным postrgesql, после этого включить сборку в один поток и собрать postgresql сохраняя лог.
Название: Re: БД
Отправлено: asv от 23 Октября, 2014, 15:10:03
Вот лог, что вас держит на LTIB?
Название: Re: БД
Отправлено: Александр Глухов от 23 Октября, 2014, 16:27:27
С ltib'ом вроде хоть в чём-то разобрался, да и она настроена уже, libXtst и libXi для Java на ней собирается, скрипт mk_mx28_sd_v2 на SD записывает, все устраивает, только PostgreSQL остался. А как в buildroot libXtst и libXi собирать и как загрузочную SD создавать даже понятия не имею. Хотя если в buildroot уже есть PostgreSQL и если на Java возможно запускать графические приложения, то может и имеет смысл взять buildroot, как вы считаете?

Посмотрел сейчас в menuconfig, похоже там и libXtst libXi уже есть в составе X.org сервера. Какие настройки необходимы для запуска на Тионе с тачскрином? Кроме arm920t и glibc
Название: Re: БД
Отправлено: asv от 23 Октября, 2014, 16:54:52
Я X.org не пробовал запускать.
Название: Re: БД
Отправлено: Александр Глухов от 23 Октября, 2014, 18:53:52
А тачскрин? Я имею ввиду, что я скачивал LTIB в виртуалке, а в ней уже минимум необходимых библиотек выбран, как я понял. Завтра попробую собрать с buildroot.

И я так понял на выходе я получаю архив rootfs. Как сделать SD с этой КФС и U-bootом? То есть может существует аналог скрипта mk_mx28_sd или вы можете помочь с его созданием?
Название: Re: БД
Отправлено: asv от 24 Октября, 2014, 11:28:57
Покажите ваш mk_mx28_sd
Название: Re: БД
Отправлено: asv от 24 Октября, 2014, 11:37:18
Почему не удалить всё что есть на разделе ext2 SD-карты (может быть, кроме boot) и распаковать туда архив rootfs из Buildroot?
Название: Re: БД
Отправлено: Александр Глухов от 24 Октября, 2014, 14:06:35
Скрипт mk_mx28_sd_v2, нашел на вашем форуме.

#!/bin/bash

# Copyright (c) 2010 Freescale Semiconductor, Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without modification,
# are permitted provided that the following conditions are met:
#
# o Redistributions of source code must retain the above copyright notice, this list
#   of conditions and the following disclaimer.
#     
# o Redistributions in binary form must reproduce the above copyright notice, this
#   list of conditions and the following disclaimer in the documentation and/or
#   other materials provided with the distribution.
#   
# o Neither the name of Freescale Semiconductor, Inc. nor the names of its
#   contributors may be used to endorse or promote products derived from this
#   software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# This script prepares a SD card with a boot image for the i.MX28 EVK
# Requires the root file system with a valid imx28 boot stream
#
# Modification History
#
# 1.0.0  23Apr2010  Chris S.    Original version.
#
# 1.0.1  04Aug2010  Franz W.    Modified to avoid already-mounted sdX drives.
#               This will help you to avoid trashing your
#               hard drive.
#
# 1.0.2  20Aug2010 Franz W.     This version now uses "dd" to copy the binary image of rootfs
#                               onto the SD card.
#
# 1.0.3  26Aug2010  Brad B. Sometimes Linux hosts will automount /dev/sdX3
#               after MBR is written and before the filesystem
#               is transferred. Added check for this and appropriate
#               umount command.
#
# 1.0.4  15Sep2010  creed       Added -d -u -x options.
#
# 1.0.5  16Sep2010  Franz W     Fixed -x option, which was not working with
#                               inserted un-mountable media.
# 1.1    27Sep2010  Rob L       Added -b -r options.
#                               Fixed the grep/if issue that was causing the script to fail on some
#                               machines.
#                               Script can now be called from anywhere as long as mk_hdr.sh
#                               is pathed or in the local directory that mk_mx28_sd is being called from.

set -e
opt=''

function print_usage() {
    echo -e "\nUsage: $0 [-hndux] /dev/sd# \nwhere /dev/sd# is a valid devnode for the SD card."
    echo "         -h        Help.  (This information.)"
    echo "         -n        Do nothing. Just echo intended actions."
    echo "         -d        Use HAB disabled boot images."
    echo "         -u        Place U-boot on the SD card instead of Linux."
    echo "         -x        Enable expert mode (see below)."
    echo "         -b        Do not install the rootfs (bootstream only)."
    echo "         -r        Do not install the bootstream (rootfs only)."
    echo -e ""
    echo -e "Run this script in the ltib directory."
    echo -e "The ./rootfs/boot directory contains the kernel and boot stream files to be installed."
    echo -e ""
    echo -e "This utility uses sudo to: "
    echo -e "  1. erase the MBR on the given /dev/sd#"
    echo -e "  2. repartitions the device as required to boot the imx28 from sd media"
    echo -e "  3. installs the boot stream, kernel, and root filesystem to the sd card"
    echo -e ""
    echo -e "Notes:"
    echo -e "This script will refuse to work on /dev/sda, which is usually a hard disk."
    echo -e "This script will refuse to work on any medium which is ALREADY MOUNTED"
    echo -e "when the script starts.  Therefore, start the script, then insert the card"
    echo -e "when asked if you want to continue."
    echo -e "\nExpert mode causes the script to run even if the device is already"
    echo -e "mounted, and will not ask if you want to continue."
    echo -e ""
    exit 1
}

DEBUG=
put_uboot=0
use_hab=1
require_unmounted=1
dont_ask=0
no_rootfs=0
no_bootstream=0
while getopts "hnduxbr" Option
do
  case $Option in
    h ) print_usage
        exit 0
        ;;
    n ) DEBUG="echo"
        echo "*** DEBUG mode. No changes will be applied. ***"
        ;;
    d ) use_hab=0
    ;;
    u ) put_uboot=1
    ;;
    x ) require_unmounted=0
        dont_ask=1
    ;;
    b ) no_rootfs=1
    ;;
    r ) no_bootstream=1
    ;;   
  esac
done
# Shift out the used-up command-line arguments.
shift $(($OPTIND - 1))

if [[ ! $1 ]]
then
    print_usage
    exit 1
fi

# The disk-name is in $1.
# Disallow the use of sda

if [[ $1 == *sda* ]]
then
    echo -e "This script will not work on /dev/sda, which is usually a hard disk."
    echo -e "Exiting."
    exit 1
fi

# Remember the device name
p0=$1
# Construct three volume-names
p1=$1"1"
p2=$1"2"
p3=$1"3"


# This function tests to see if the given device $1 is
# mounted, as shown in /etc/mtab.
# Return value $bMounted==1 if mounted, zero otherwise.
function is_mounted() {
    if grep -q -e "^$1.*" /etc/mtab; then
        # mounted
        bMounted=1     
    else
        # not mounted
        bMounted=0
    fi
}


# This function partitions uses "sudo fdisk" to partition device "/dev/sdX"
# named by parameter $1 as follows:
#        Device           Size          Id      System
#     /dev/sdX1           32 Mbytes     b   W95 FAT32
#     /dev/sdX2           32 Mbytes     53      OnTrack DM6 Aux3
#     /dev/sdX3           All remaining 83      Linux
#
# $1 contains the name of the device to partition.
function make_nominal_partition() {
    if [[ $DEBUG ]] ;
    then
        WRITE=q
    else
        WRITE=w
    fi
echo "o
n
p
1
1
+32M
t
b
n
p
2

+32M
t
2
53
n
p
3


t
3
83
p
$WRITE" | sudo fdisk $1
}

# This function installs the boot stream named in $1
# into the device named in $2 in partition number $3.
function install_boot_stream() {
    echo -e "\nInstalling boot stream $1 on $2$3..."
    if [ -f ./mk_hdr.sh ]
    then
        mk_hdr="./mk_hdr.sh"
    else
        mk_hdr="mk_hdr.sh"
    fi
    $DEBUG $mk_hdr `sudo fdisk -lu $2 | awk '$5==53 {print $2}'` 1  > temp.bin
    $DEBUG sudo dd if=temp.bin of=$2$3 ibs=512 conv=sync
    $DEBUG sudo dd if=$1 of=$2$3 ibs=512 obs=512 seek=1 conv=sync   
# place uImage to first partition if using uboot
    if [[ $put_uboot -eq 1 ]] ;
    then
   if grep -q -e "^$p1.*" /etc/mtab; then
      $DEBUG sudo umount $p1   
   fi
        $DEBUG sudo dd if=./rootfs/boot/uImage of=$2 ibs=512 obs=512 seek=256 conv=sync
    fi
    $DEBUG sync
    rm temp.bin
    echo -e "...finished installing boot stream on $2$3.\n"
}

# This function installs the rootfs directory named in $1
# into the device named in $2 in partition number $3.
function install_ext2_rootfs() {
    $DEBUG sudo mkdir ./zzzsdcard
    echo -e "\nFormatting rootfs partition...\n"
    $DEBUG sudo mkfs.ext2 $2$3
    $DEBUG sudo mount -t ext2 $2$3 ./zzzsdcard
    echo -e "\nInstalling rootfs on $2$3..."
    $DEBUG sudo cp -ar $1 ./zzzsdcard
    $DEBUG sudo umount ./zzzsdcard   # This may take some time to sync the files before unmounting.
    echo -e "\nCleaning up..."
    $DEBUG sudo rmdir  ./zzzsdcard
    echo -e "...finished installing rootfs on $2$3.\n"
}

#############################################
# OK, here it goes.
#############################################

is_mounted $p0

if [[ $require_unmounted -eq 1 ]]; then
    # This script is not running in "expert" mode.
    # We care if the target volume is already mounted.  We don't
    # want to clobber the contents accidentally.
    if [[ $bMounted -eq 1 ]]; then
        # The target volume is indeed already mounted.
        echo
        echo "The requested volume $p0 is already mounted."
        echo "Possibly this volume is a hard disk or some other important medium."
        echo "Therefore, this script will exit and not touch it."
        echo "Please make sure your sd card is unmounted before running this script."
        exit 1
    fi
else
    # This script is running in "expert" mode.
    # We will clobber any contents of the target volume.
    echo
fi
# If we got to here, then we are ready to process the target volume.
echo -e "\nInsert the specified device ($p0) now, if you have not already done so.\n"

# Ask the user if they want to make changes unless they said to skip this.
if [[ $dont_ask -eq 0 ]]; then
    echo -e "\nThis script requires the use of 'sudo' and erases the content of the specified device ($p0)"
    echo -e "Are you sure you want to continue? (yes/no): "
    read opt

    if [ ! "$opt" = "yes" ]; then
        echo -e "\nAborting..., nothing was altered!"
        exit 1
    fi
fi

# Pick boot stream based on whether to use HAB and whether to write uboot or linux.
if [[ $no_bootstream -ne 1 ]]; then
    ivt=""
    if [[ $use_hab -eq 1 ]]; then
        ivt="ivt_"
    fi

    if [[ $put_uboot -eq 1 ]]; then
        app_name="uboot"
    else
        app_name="linux"
    fi

    sb_name="imx28_${ivt}${app_name}.sb"

    $DEBUG make_nominal_partition $p0
    $DEBUG install_boot_stream ./rootfs/boot/$sb_name $p0 2
fi

if [[ $no_rootfs -ne 1 ]]; then
# Linux may automount /dev/sdX3 at this point, check and unmount if so...
    is_mounted $p3
    if [[ $bMounted -eq 1 ]] ;
    then
        echo
        echo "$p3 was automounted, unmounting..."
        sudo umount $p3
    fi

    install_ext2_rootfs "./rootfs/*" $p0 3
fi

echo -e "\nDone! Plug the SD/MMC card into the i.MX board and power-on."

#End
Название: Re: БД
Отправлено: Александр Глухов от 24 Октября, 2014, 17:06:18
Удалил папки, кроме boot, разархивировал tar.bz, при загрузке, после U-boot выдает ошибку
can't open /dev/ttyS0: No such file or directory
Название: Re: БД
Отправлено: asv от 24 Октября, 2014, 17:08:23
> /dev/ttyS0

Вы не указали порт для консоли в Buildroot.
Название: Re: БД
Отправлено: Александр Глухов от 24 Октября, 2014, 17:18:31
Стоял ttyS0, поменял ttyAM0, как в ltib было, та же ошибка, только уже с ttyAM0
Название: Re: БД
Отправлено: asv от 24 Октября, 2014, 17:24:44
ttyAM0 или ttyAMA0?
/dev статическая? Если да, то есть ли там файл устройства ttyAMA0?
Название: Re: БД
Отправлено: Александр Глухов от 24 Октября, 2014, 17:31:00
Вот строка в LTIB которая была

Название: Re: БД
Отправлено: Александр Глухов от 24 Октября, 2014, 17:33:25
Вот в Buildroot
Название: Re: БД
Отправлено: Александр Глухов от 24 Октября, 2014, 17:36:21
Насчет dev видимо это
Название: Re: БД
Отправлено: asv от 24 Октября, 2014, 17:38:20
Вряд ли у вас в ядре есть такая.
Название: Re: БД
Отправлено: asv от 24 Октября, 2014, 17:45:13
Выберите статическую. С портом консоли в system/device_table_dev.txt
minor-номер у AM и AMA разные, у меня используется AMA, но ядро 3.x, какой minor номер в 2.6.35 не хочу смотреть, попробуйте и AM и AMA (с   BR2_ROOTFS_DEVICE_CREATION_STATIC)

# <name>        <type>  <mode>  <uid>   <gid>   <major> <minor> <start> <inc>   <count>
/dev/ttyAM   c   666   0   0   204   16   0   1   3
/dev/ttyAMA   c   666   0   0   204   64   0   1   4
Название: Re: БД
Отправлено: Александр Глухов от 25 Октября, 2014, 13:23:24
Со статической получилось загрузиться, запросил пользователя, ввел root, вроде вошел. Но не могу войти ни в какую директорию, вначале строки просто # и всё, и сыпятся ошибки типа повреждена файловая система, не помню уже точную формулировку. Думаю нужно создать флешку от buildroot, не прибегая к ltib и его mk_mx28_sd скрипту. Я так понимаю, нужно сделать на флешке разделы и в них записывать образ ядра, U-boot и КФС. Так вот, как сделать разделы и каких размеров?
Название: Re: БД
Отправлено: asv от 25 Октября, 2014, 13:53:01
Какие именно ошибки?
Название: Re: БД
Отправлено: Александр Глухов от 27 Октября, 2014, 08:29:19
Сейчас попробовал ещё раз, ошибки нет, но не понимаю вот что
Welcome to Buildroot
buildroot login: root
# cd /home/
# cd /bin/
#

не могу никуда зайти, и help ничего не дает, чего-то не установил?
Название: Re: БД
Отправлено: asv от 27 Октября, 2014, 09:10:20
Как заменяли файлы КФС? Не потеряли права и пользователей файлов?
Название: Re: БД
Отправлено: Александр Глухов от 27 Октября, 2014, 09:30:36
Удалил все, кроме boot, распаковал архив rootfs
Название: Re: БД
Отправлено: Александр Глухов от 27 Октября, 2014, 13:25:05
Тачскрин не хочет работать, ввел ts_calibrate, выдал:
tslib: Selected device uses a different version of the event protocol than tslib was compiled for
Took 3 samples...
Top left : X = 1073910527 Y =    0
Took 3 samples...
Top right : X = 1073910527 Y =    0
Took 3 samples...
Bot right : X = 1073910527 Y =    0
Took 3 samples...
Bot left : X = 1073910527 Y =    0
Took 3 samples...
Center : X = 1073910527 Y =    0
ts_calibrate: determinant is too small -- 0.000000
Calibration failed.
Название: Re: БД
Отправлено: asv от 27 Октября, 2014, 13:39:11
> tslib: Selected device uses a different version of the event protocol than tslib was compiled for

Вам нужна более старая версия tslib, вероятно той же, что и в ltib.
Название: Re: БД
Отправлено: Александр Глухов от 27 Октября, 2014, 14:25:59
Посмотрел в /home/ubuntu/Desktop/Link to ltib/dist/lfs-5.1/tslib/tslib.spec стоит версия 1.0
В /home/ubuntu/Desktop/buildroot/package/tslib/tslib.mk стояла 1.1. Изменил на 1.0. Теперь получаю при make
checking whether the C++ compiler works... no
configure: error: in `/home/ubuntu/Desktop/buildroot/output/build/tslib-1.0':
configure: error: C++ compiler cannot create executables
See `config.log' for more details
make: *** [/home/ubuntu/Desktop/buildroot/output/build/tslib-1.0/.stamp_configured] Error 77
Название: Re: БД
Отправлено: asv от 27 Октября, 2014, 14:45:16
Не всё так просто
Название: Re: БД
Отправлено: Александр Глухов от 27 Октября, 2014, 15:01:48
Можете рассказать, как это сделать?
Название: Re: БД
Отправлено: asv от 27 Октября, 2014, 15:49:04
Расскажу, если сделаю.
Название: Re: БД
Отправлено: asv от 27 Октября, 2014, 16:32:55
У вас C++ в Buldroot не используется?
В .config есть
BR2_TOOLCHAIN_BUILDROOT_CXX=y
Название: Re: БД
Отправлено: asv от 27 Октября, 2014, 16:43:50
В Buldroot включаете C++
mv dl dl_
cp .config config.prev
make distclean
mv dl_ dl
mv config.prev .config

Прилагаемый tslib-1.0_linux-2.6.35.patch копируете в package/tslib
в packages/tslib/tslib.mk меняете версию на 1.0

Собираете, перед запуском export TSLIB_TSDEVICE=/dev/input/event0
Название: Re: БД
Отправлено: Александр Глухов от 29 Октября, 2014, 09:55:07
Во, отлично, заработал! Спасибо большое!)
Название: Re: БД
Отправлено: Александр Глухов от 29 Октября, 2014, 09:59:03
А теперь собственно о БД. Выбрал в packages postgresql, во время загрузки даже вижу, что база что-то делает, но где она хранит конфиги о расположении базы данных, о её названии, пароле и имени пользователя? Никак не найду. Они ведь в уже готовой кфс или где то в файлах buildroot'а могут ещё лежать?
Название: Re: БД
Отправлено: asv от 29 Октября, 2014, 10:23:48
> названии, пароле и имени пользователя

С postgresql вы как нибудь сами, см. /etc/init.d/S50postgresql
Название: Re: БД
Отправлено: Александр Глухов от 29 Октября, 2014, 12:17:00
Да, я видел этот файл, но он мне не очень помог. Когда запускается тион, я вижу такие сообщения:

Initializing postgresql data base...
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
 
 
The database cluster will be initialized with locale "C".
The default database encoding has accordingly been set to "SQL_ASCII".
The default text search configuration will be set to "english".
 
 
Data page checksums are disabled.
 
 
fixing permissions on existing directory /var/lib/pgsql ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 64MB
creating configuration files ... ok
creating template1 database in /var/lib/pgsql/base/1 ... ok
initializing pg_authid ... ok
initializing dependencies ... ok
creating system views ... ok
loading system objects' descriptions ... ok
creating collations ... sh: locale: not found
ok
No usable system locales were found.
Use the option "--debug" to see details.
creating conversions ... ok
creating dictionaries ... ok
setting privileges on built-in objects ... ok
creating information schema ... ok
loading PL/pgSQL server-side language ... ok
vacuuming database template1 ... ok
copying template1 to template0 ... ok
copying template1 to postgres ... ok
syncing data to disk ... ok
 
 
WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.
 
 
Success. You can now start the database server using:
 
 
    /usr/bin/postgres -D /var/lib/pgsql
or
    /usr/bin/pg_ctl -D /var/lib/pgsql -l logfile start
 
 
done
Starting postgresql: server starting
OK

Похоже, что оно работает, создает базу template и пользователя postgres. Ладно, спасибо, буду дальше пытаться)
Название: Re: БД
Отправлено: Александр Глухов от 29 Октября, 2014, 15:13:04
Кстати можете подсказать, где в Buildroot можно прописать команды, которые будут выполняться при запуске автоматически? Например те же самые exportы и запуск своего приложения?
Название: Re: БД
Отправлено: asv от 29 Октября, 2014, 17:05:38
Переменные окружения можно установить перед запуском программы в скрипте запуска расположенном в /etc/init.d/ (см. уже имеющиеся там для образца) или в файле /etc/profile (если переменные нужны для всех, например для tslib).

Для своих файлов и изменений, чтобы они попали в архив КФС, используйте rootfs overlay.
Название: Re: БД
Отправлено: Александр Глухов от 17 Ноября, 2014, 14:31:04
Спасибо, overlay настроил, с profile тоже получилось
А насчет БД, файлы желательно редактировать изначально в package/postgresql: S50postgresql, postgresql.mk и config.in, можно сразу настроить пользователя и папку, где будет БД
Название: Re: БД
Отправлено: Александр Глухов от 17 Ноября, 2014, 15:40:38
Чтобы новую тему ради одного вопроса не создавать, тем более об этом речь уже зашла, дайте пожалуйста ответ на такой вопрос:

записал в profile
Xfbdev -mouse tslib,2,device=/dev/input/event0 &

Но выполнится он после входа в систему (т.е. после ввода имени/пароля). Возможно ли настроить так, чтобы эта команда выполнилась либо до этого приглашения, либо сделать вход автоматическим? То есть я хочу включать питание и через какое то время увидеть запущенное приложение без лишних телодвижений, таких как подключение к com порту/ telnet/ ssh и ввод пароля. Как это возможно?
Название: Re: БД
Отправлено: asv от 17 Ноября, 2014, 16:44:38
> Как это возможно?

Также как и ssh, в /etc/init.d
Название: Re: БД
Отправлено: Александр Глухов от 18 Ноября, 2014, 07:04:07
/etc/init.d/rcS: line 23: /etc/init.d/S100new~: Permission denied

Напишите пожалуйста подробнее
Название: Re: БД
Отправлено: asv от 18 Ноября, 2014, 09:21:01
Смотрите существующие, делаете по примеру.
Название: Re: БД
Отправлено: asv от 18 Ноября, 2014, 09:24:55
И, надеюсь, вы заметили, что у них у всех права на исполнение:

-rwxr-xr-x 1 root root  281 Май 20 15:38 S40network
Название: Re: БД
Отправлено: Александр Глухов от 18 Ноября, 2014, 10:34:08
Спасибо, удалось! Думал, галка Allow executing file as a program даёт такие права, оказалось, что нет.