LINUX.ORG.RU

Сообщения wolverin

 

RTSP через ffserver

 ,

Приветствую.

Подскажите, что не так в моем конфиге?

Нужно стримануть усб камеру через rtsp рабочая команда ffmpeg выглядит так

./ffmpeg -f v4l2 -video_size 640x480 -i /dev/video0 -c:v cedrus264 -r 5 -pix_fmt nv12 -f rtp rtp://127.0.0.1:554/

то что удалось наваять в ffserver.conf

RTSPPort 554

<Feed blabla.ffm>
    File /tmp/blabla.ffm
    FileMaxSize 10M
    Launch ffmpeg -f v4l2 -video_size 640x480 -i /dev/video0 -c:v cedrus264 -r 5 -pix_fmt nv12
</Feed>

<Stream cam>
    Feed blabla.ffm
    Format rtp
    VideoCodec cedrus264
    VideoSize 640x480
    AVOptionVideo flags +global_header

    Noaudio
</Stream>
wolverin
()

Исправить DTS для ffmpeg vs Cedrus H264

 , , ,

Приветствую!

Как бы включить аппаратную поддежку кодирования h264 на железке Nanopi neo core с ядром

# uname -a
Linux NanoPi-NEO-Core 4.14.111 #126 SMP Mon Feb 22 17:04:18 CST 2021 armv7l armv7l armv7l GNU/Linux

Скомпилил и установил ffmpeg с Cedrus H264 и cedar_ve.ko


# dmesg | grep cedar
[    4.982170] cedar_ve: loading out-of-tree module taints kernel.
[    4.988972] sunxi cedar version 0.1

правлю /boot/sun8i-h3-nanopi-neo-core.dts

        reserved-memory {
                #address-cells = <0x01>;
                #size-cells = <0x01>;
                ranges;

                cma@43c00000 {
                        compatible = "shared-dma-pool";
                        reusable;
                        reg = < 0x57c00000 0x6000000 >;
                        linux,cma-default;
                        phandle = < 0x84 >;
                };
        };

..................
                video-engine@01c0e000 {
                        compatible = "allwinner,sunxi-cedar-ve";
                        reg = < 0x1c0e000 0x1000 0x1c00000 0x10 0x1c20000 0x800 >;
                        memory-region = < 0x84 >;
                        syscon = < 0x15 >;
                        clocks = < 0x03 0x29 0x03 0x6c 0x03 0x61 >;
                        clock-names = "ahb", "mod", "ram";
                        resets = < 0x03 0x1a >;
                        interrupts = < 0x00 0x3a 0x04 >;
                        status = "okay";
                };

теперь имеем

# dmesg | grep CMA
[    0.000000] Reserved memory: created CMA memory pool at 0x000000004a000000, size 96 MiB

# dmesg | grep cedar
[    4.944911] cedar_ve: loading out-of-tree module taints kernel.
[    4.951697] sunxi cedar version 0.1
[    4.955629] [cedar]: install start!!!
[    4.959521] cedar_ve: cedar-ve the get irq is 55
[    4.964193] sunxi-cedar 1c0e000.video-engine: assigned reserved memory node cma@43c00000
[    4.972512] sunxi-cedar 1c0e000.video-engine: syscon failed...
[    4.998164] sunxi-cedar 1c0e000.video-engine: failed to get ahb clock

теперь правлю syscon

                syscon@1c00000 {
                        compatible = "allwinner,sun8i-h3-system-controller", "syscon";
                        reg = < 0x1c00000 0x1000 >;
                        #address-cells = < 0x01 >;
                        #size-cells = < 0x01 >;
                        ranges;

                        sram@1d00000 {
                            compatible = "mmio-sram";
                            reg = < 0x1d00000 0x80000 >;
                            #address-cells = < 0x01 >;
                            #size-cells = < 0x01 >;
                            ranges = < 0x00 0x1d00000 0x80000 >;

                            sram-section@0 {
                                compatible = "allwinner,sun8i-h3-sram-c1", "allwinner,sun4i-a10-sram-c1";
                                reg = < 0x00 0x80000 >;
                            };
                        };
                };

и все, больше железка не бутиться ((

wolverin
()

mount файла как?

 

Подскажите, вроде в букваре написано, что можно монтировать файл в другую папку, но что то не выходит каменный цветок, чего ему не хватает? что то нагуглить не удалось, все папки монтируют и iso образы с файловой системой

mount –bind /usr/bin/qemu-arm-static /sandbox/usr/bin/

mount: mount(2) failed: Not a directory

wolverin
()

Как запустить Ubuntu ARMHF ???

 , , , ,

Приветствую!

Есть у меня NanoPi Neo Core, на нем крутится friendlyarm, которая представляет из себя сборку Ubuntu 16.04.7 LTS 4.14.111 с архитектурой ARMHF

Необходимо запустить все это дело под виндой для сборки-компиляции под эту архитектуру.

Попробовал два пути решения проблемы

1. Qemu, поскольку оказалось обычно используемый мной кликабельный VirtualBox просто не поддерживает ARM
- вставил флешку в сд разьем на плате, склонировался на нее через ссш с помощью dd

- переставил флешку на винду, слил с нее IMG образ с помощью win32diskimager

- поставил qemu-w64-setup-20220419.exe и оказалось что поддержки именной этой платы в кему нет, из всего существующего подошел только orangepi-pc, немного подровняв образ до 8Гб удалось запустить

"C:\Program Files\qemu\qemu-system-arm.exe" -M orangepi-pc -no-reboot -serial stdio -drive file=nanopi-neo-core.img,format=raw

НО!!! как не ковырял, ни мост, ни проброс портов попросту не работает, почему не понимаю, какой то интерфейс поднимается если ничего не указывать как написано выше, но через него ничего не работает, если указать явно всякие -netdev - ни интерфейса, ни адреса непонятно откуда берущегося больше нет

2. Песочница
- на VirtualBox поднимаю виртуалку 4.15.0-142-generic #146~16.04.1-Ubuntu x86_64 (которая вопщим то используется мной для других целей)

- качаю в ней debootstrap

debootstrap --arch armhf xenial /sandbox/ http://ports.ubuntu.com/ubuntu-ports/
НО!!! только доходит до chroot /sandbox/

chroot: failed to run command ‘/bin/bash’: Exec format error

что вопщим то говорит, что о невозможности работать из архитектуры amd64 c armhf

Помогите выйти из тупика, по хорошему конечно хватило бы и песочницы для компиляции-сборки под эту архитектуру...

wolverin
()

С++ vs прямая запись на флешку

 

Поругайте или предложите более разумную идею, пожалуйста

Нужно писать (иногда одновременно читать записанное) с камеры видеоархив на USB или SD карты в формате MJPEG, для максимального сохранения ресурса и объема планирую выполнять ЦИКЛИЧЕСКУЮ запись без файловой системы напрямую в физические блоки, выделив в начале область под «журнал» из пары 32 байта временная метка + 32 байта адрес физического блока флешки.

Как я понял физические блоки на дешевых флешках обычные 512 байт, получается нужно зарезервировать под журнал с данными в 64 байта в блоках по 512 байт и писать в кеш кадры кратно тому же объему перед записью.

Поиск для чтения делать по журналу - каждая временная метка через равные сравнительно промежутки времени.

wolverin
()

С++ vs RTSP proxy/server

 , ,

Приветствую!

Посоветуйте, пожалуйста, библиотеку какую нибудь для GCC - необходимо, чтобы обращаясь на железку, она отдавала поток с ip (еще лучше и с usb) камер.

Вообще суть идеи - аля «регистратор» с доступом через NAT (если точнее через NAT с обеих сторон) - пока удалось сделать получение адреса и порта NAT на STUN сервере и передача их через MQTT сервер - тоже хотелось бы услышать советы или просто поругайте идею )

wolverin
()

Как отправить UDP пакеты с определенного порта?

 ,

Не порт куда отправлять, а задать свой исходящий порт? Через NetCat пробую в Debian

cat файл | nc -u IP ПОРТ

пакеты каждый раз с нового порта приходят

туннель не предлагать, NAT симметричный хочу обойти

wolverin
()

Как переименовать интерфейс PPPoE ?

 , ,

Есть PPPoE соединение с провайдером и VPN через PPTP в Debian, у которых pppX

В /etc/network/interfaces пишу

auto pppoe0
iface pppoe0 inet ppp
    pre-up /sbin/ifconfig eth1 up
    provider dsl-provider

поднимается один фиг ppp0

ppp0      Link encap:Point-to-Point Protocol
          inet addr:ИПАДРЕС  P-t-P:10.0.0.1  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
          RX packets:7273 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6426 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:6930631 (6.6 MiB)  TX bytes:987039 (963.9 KiB)

wolverin
()

ИБП APC и пара серверов

 ,

Есть 2 сервера, нужно чтобы их оба ибп выключал, подключил к одному через usb, ко второму через eth настроил, НО тот что через усб - выключается, а через сеть - нет, пишет потеряна связь и все, хотя по хорошему должен начать выключаться ПЕРВЫМ

настройки apcd

USB

APC      : 001,045,1126
DATE     : 2021-07-19 08:30:46 +0500
HOSTNAME : 
VERSION  : 3.14.14 (31 May 2016) debian
UPSNAME  : Smart-UPS_3000_RM
CABLE    : USB Cable
DRIVER   : USB UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2021-07-18 17:52:02 +0500
MODEL    : Smart-UPS 3000 RM
STATUS   : ONLINE
LINEV    : 221.7 Volts
LOADPCT  : 19.5 Percent
BCHARGE  : 100.0 Percent
TIMELEFT : 24.0 Minutes
MBATTCHG : 5 Percent
MINTIMEL : 25 Minutes
MAXTIME  : 0 Seconds
OUTPUTV  : 221.7 Volts
SENSE    : High
DWAKE    : -1 Seconds
DSHUTD   : 90 Seconds
LOTRANS  : 208.0 Volts
HITRANS  : 253.0 Volts
RETPCT   : 0.0 Percent
ITEMP    : 22.9 C
ALARMDEL : 30 Seconds
BATTV    : 55.1 Volts
LINEFREQ : 50.0 Hz
LASTXFER : Automatic or explicit self test
NUMXFERS : 1
XONBATT  : 2021-07-19 07:49:25 +0500
TONBATT  : 0 Seconds
CUMONBATT: 8 Seconds
XOFFBATT : 2021-07-19 07:49:33 +0500
LASTSTEST: 2021-07-19 07:49:25 +0500
SELFTEST : NO
STESTI   : 14 days
STATFLAG : 0x05000008
MANDATE  : 2011-01-14
SERIALNO : JS1103009885
BATTDATE : 2021-02-03
NOMOUTV  : 230 Volts
NOMBATTV : 48.0 Volts
FIRMWARE : 666.6.I USB FW:7.4
END APC  : 2021-07-19 08:30:49 +0500

ETH

APC      : 001,040,1003
DATE     : 2021-07-19 08:29:49 +0500
HOSTNAME : 
VERSION  : 3.14.12 (29 March 2014) debian
UPSNAME  : Smart-UPS_3000_RM
CABLE    : Ethernet Link
DRIVER   : NETWORK UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2021-07-19 08:07:48 +0500
MASTERUPD: 2021-07-19 08:29:49 +0500
MASTER   : 192.168.36.2:3551
MODEL    : Smart-UPS 3000 RM
STATUS   : ONLINE SLAVE
LINEV    : 221.7 Volts
LOADPCT  : 19.5 Percent
BCHARGE  : 100.0 Percent
TIMELEFT : 24.0 Minutes
MBATTCHG : 10 Percent
MINTIMEL : 20 Minutes
MAXTIME  : 0 Seconds
OUTPUTV  : 221.7 Volts
SENSE    : High
LOTRANS  : 208.0 Volts
HITRANS  : 253.0 Volts
RETPCT   : 0.0 Percent
ITEMP    : 22.9 C
BATTV    : 55.1 Volts
LINEFREQ : 50.0 Hz
LASTXFER : Automatic or explicit self test
NUMXFERS : 0
TONBATT  : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
SELFTEST : NO
STATFLAG : 0x05000408
SERIALNO : JS1103009885
BATTDATE : 2021-02-03
NOMOUTV  : 230 Volts
NOMBATTV : 48.0 Volts
FIRMWARE : 666.6.I USB FW:7.4
END APC  : 2021-07-19 08:29:55 +0500
wolverin
()

JAVA и неуловимая линковка библиотеки Firebird в Debian

 , ,

Имею GlassFish 5 + JDK 1.8, нужно подцепить библиотеку клиента Firebird, куда только не сувал libfbclient.so - результат нулевой, ставлю из репозитория libfbclient2 - все начинает работать, PURGE ЭТОТ ПАКЕТ и тоже все работает.

КАК ТАКОЕ ВОЗМОЖНО??? Голову уже сломал что этой стеклянной рыбе нужно??? ГДЕ В ИТОГЕ БИБЛИОТЕКА ЛЕЖИТ??? которая не удалилась, поиском НИЧЕГО НЕТ!!!

wolverin
()

Bind9 трансфер на slave с master по UPD

 , ,

Подскажите, настроил master и slave днс сервера на Bind, но слейв сервер настроен не мной и поэтому хочется чтобы он как все делал трансфер со всем доступного порта 53 по UDP, а он почему то хочет лазить через TCP.

wolverin
()

Посоветуйте для видеозахвата на Bt878

 

Есть пара карт видеозахвата, хочется из Debian 10 сделать аля видеосервер БЕЗ иксов, т.е. смотреть только из сети с него. Посоветуйте в какую сторону искать???

wolverin
()

fastcgi на debian 8 apache2

 ,

Недавно накатил обновления и теперь мое fastcgi приложение отпинывается с ошибкой в apache2

[fastcgi:error] [pid 24120] (111)Connection refused: [client ip:47646] FastCGI: failed to connect to server "/var/www/cgi/WebGet.fcgi": connect() failed
[fastcgi:error] [pid 24120] [client ip:47646] FastCGI: incomplete headers (0 bytes) received from server "/var/www/cgi/WebGet.fcgi"
возможно знает кто, что поменять нужно???

ранее работало без всяких apache2-mpm-prefork и php5-fpm простым статическим запуском

FastCgiExternalServer /var/www/cgi/WebGet.fcgi -host 127.0.0.1:9000

wolverin
()

как победить echo 'aa00bb' | xxd -r -p

 

нули опускаются в бинарнике, а они нужны

wolverin
()

Почему ssh socks proxy не работает?

 , ,

Поднимаю тунель через libssh2, на нескольких серверах все гуд, на других вываливается ошибка

sshd[30476]: error: connect_to ВНЕШНИЙ IP port ВНУТРЕННИЙ ПОРТ: failed.
авторизация по ключу при этом проходит

wolverin
()

как правильно линковать в make?

 

есть пакет в Debian из репозитория libssh2-1 создающий в /usr/lib/x86_64-linux-gnu/
соответственно
libssh2.a
libssh2.so
libssh2.so.1
libssh2.so.1.0.1

он кривой, скачал с исходника последнуюю версию, сделал конфиг и мейк, без мейк инсталл, как прилинковать эту библиотеку при компиляции, т.к. то что делаю ниже все равно почему то тянет старую версию, приходится просто подменять файл libssh2.so.1.0.1 в /usr/lib/x86_64-linux-gnu/

g++ -o AddWork AddWork.cpp -L./ibpp/core -lfbclient -libpp -DIBPP_LINUX -L./libssh2-1.8.2/src -lssh2-1.8.2-ssl-dbg
wolverin
()

libssh2 и LIBSSH2_ERROR_SOCKET_SEND

 ,

Подскажите что делаю не так!?

Вроде все по примеру, а не выходит каменный цветок на libssh2_userauth_publickey_fromfile выпадает с ошибкой -7

при этом libssh2_userauth_list возвращает publickey

    int sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
    if (sock == -1)
    {
        cerr << "Ошибка открытия сокета\n";
        return false;
    }

    struct sockaddr_in sin;
    sin.sin_family = AF_INET;
    sin.sin_port = htons(22);
    sin.sin_addr.s_addr = inet_addr("ip удаленного сервера");
    if(sin.sin_addr.s_addr == INADDR_NONE)
    {
        cerr << "Невервый адрес\n";
        return false;
    }

    if(connect(sock, (struct sockaddr*)(&sin), sizeof(struct sockaddr_in)) != 0)
    {
        cerr << "Ошибка соединения с сокетом\n";
        return false;
    }

    LIBSSH2_SESSION * session = libssh2_session_init();
    if (!session)
    {
        cerr << "Ошибка инициализации SSH сессии\n";
        return false;
    }

    int ret;
    if (ret = libssh2_session_startup(session, sock))
    {
        cerr << "Ошибка запуска SSH сессии " << ret << endl;
        return false;
    }

    cout << libssh2_userauth_list(session, "wolverin", strlen("wolverin")) << endl;

    if(ret = libssh2_userauth_publickey_fromfile(session, "wolverin", "/home/wolverin/.ssh/id_rsa.pub", "/home/wolverin/.ssh/id_rsa", ""))
    {
        cerr << "Ошибка аутентификации " << ret << endl;
        libssh2_session_disconnect(session, "Client disconnecting normally WTF");
        libssh2_session_free(session);
        close(sock);
        return false;
    }

    LIBSSH2_CHANNEL * channel = libssh2_channel_direct_tcpip_ex(session, "ip удаленного сервера", 5550, "127.0.0.1", 5552);
    if (!channel)
    {
        cerr << "Ошибка создания тунеля\n";
        libssh2_session_disconnect(session, "Client disconnecting normally");
        libssh2_session_free(session);
        close(sock);
        return false;
    }

wolverin
()

подскажите как grep по двум условиям В СТРОКУ?

 ,

так конечно работает

grep "бла1\|бла2" ./*.txt
но нужен ответ в строку типа - имя файла:...бла1...:....бла2... а не каждое условие отдельно

wolverin
()

Dovecot не правильно считает квоту

 ,

настроено на работу через imap (хотя pop3 тоже открыто), квоты в mysql, вроде бы все работает правильно, но в какой то момент появляется затуп и квоты не растут, а потом непредсказуемым образом пересчитывается и выходит за границы указанного размера, приходится запускать вручную

doveadm quota recalc -u
как поправить это можно или это нормальное поведение и придется кроном пересчитывать все квоты???

wolverin
()

Что значит эта ошибка grub?

 

что то ничего путнего ненагугливается, система грузится, раид софтовый первый из 3х дисков

/usr/sbin/grub-probe: предупреждение: Невозможно найти физический том «(null)».
возникает хоть update-grub, хоть grub-install

wolverin
()