LINUX.ORG.RU

Сообщения wolverin

 

Отдать RTSP из Си библиотек FFMPEG

Форум — Development

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

Буду благодарен подсказке направления или примеру куда двигаться.

Скачал git исходники, собрал, подключил к своему Сишному проекту библиотеки, получаю в нем кадры с usb камеры и пишу их на диск - как бы теперь не изобретая велосипед самими библиотеками организовать и слушающий сокет и запись в него SDP и RTP потока.

Просто в море информации не могу найти то что нужно для решения задачи. Вроде бы ffmpeg умеет стримить в rtsp

 ,

wolverin
()

fread/fwrite

Форум — Development

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

Продолжаю мучать тему С++ vs прямая запись на флешку

Как я понял эти методы буферные и фактическая запись осуществляется либо по fflush, либо где то задан системный размер кеша? как его менять? а «померить» можно текущий размер буфера? например, делать ффлуш через заданный размер, а не количество циклов записи или держать кеш выравненной длины относительно размера сектора

актуально для ubuntu/debian

 ,

wolverin
()

_FILE_OFFSET_BITS вкуда?

Форум — Development

Приветствую, опять мучения с GCC ))

Вроде уже запихал во все места этот дефайн, не указывал только при компиляции

#define _FILE_OFFSET_BITS 64

один фиг ftell вываливается на больше 2гб с

Value too large for defined data type

 

wolverin
()

GCC как прочитать и задать частоту ЦПУ?

Форум — Development

Так чтоб без отличий по архитектуре и желательно ядер (хотя бы в пределах ветки) на ubuntu/debian

Так понимаю надо что надо в каких то файлах здесь читать-писать?

/sys/devices/system/cpu

или еще лучше governor=ondemand менять с ondemand на турбабуст

 ,

wolverin
()

C++ вызвать указатель на метод класса внутри метода класса?

Форум — Development

Приветствую

Объявил внутри класса «переменную» как void (CJpgFrame::*Write)();

Внутри метода класса присваиваю этой «переменно» функцию как Write = &CJpgFrame::WritePckWithTime;

Понятно, что вне класса вызов

CJpgFrame jpg();
(jpg.*jpg.Write)();

но как вызвать ВНУТРИ метода самого класса? или это не поддерживается?

валится ошибка

Recoder.cpp:85:11: error: must use ‘.*’ or ‘->*’ to call pointer-to-member function in ‘((CJpgFrame*)this)->CJpgFrame::Write (...)’, e.g. ‘(... ->* ((CJpgFrame*)this)->CJpgFrame::Write) (...)’
     Write();
           ^

Переопределять не хочется, т.к. там всего лишь ветвление в if чтобы не повторять.

 ,

wolverin
()

Как make C vs C++

Форум — Development

Подскажите, как правильно сделать make?

Есть мейкфайл с содержимым

gcc -c RecoderFDisk.c -I./util-linux/ -Wall -pedantic -O3
gcc -c RecoderFFmpeg.c -I./FFmpeg/ -Wall -pedantic -O3
gcc -o Recoder Recoder.c RecoderFDisk.o RecoderFFmpeg.o                         \
    ./util-linux/libblkid/src/libblkid_la-probe.o                               \
    ./util-linux/libuuid/src/libuuid_la-parse.o                                 \
    ./util-linux/libuuid/src/libuuid_la-unparse.o                               \
    ./util-linux/libuuid/src/libuuid_la-gen_uuid.o                              \
    ./util-linux/disk-utils/fdisk-fdisk-list.o                                  \
    ./util-linux/.libs/libcommon.a                                              \
    ./util-linux/.libs/libsmartcols.a                                           \
    ./util-linux/.libs/libtcolors.a                                             \
    ./util-linux/.libs/libblkid.a                                               \
    ./util-linux/.libs/libuuid.a                                                \
    ./util-linux/.libs/libfdisk.a                                               \
    ./FFmpeg/libavdevice/libavdevice.a                                          \
    ./FFmpeg/libavfilter/libavfilter.a                                          \
    ./FFmpeg/libavformat/libavformat.a                                          \
    ./FFmpeg/libavcodec/libavcodec.a                                            \
    ./FFmpeg/libswscale/libswscale.a                                            \
    ./FFmpeg/libswresample/libswresample.a                                      \
    ./FFmpeg/libavutil/libavutil.a                                              \
    -ltinfo -lpthread -lm -lx264 -lv4l2 -lpostproc -lasound -lvdpau -lX11 -Wall -pedantic -O3

все прекрасно компилится, как только просто меняю расширение Recoder.c на Recoder.cpp (векторами захотелось побаловаться в main), получаю
Recoder.cpp:(.text.startup+0x9a): undefined reference to
на то, что лежит в RecoderFDisk.o RecoderFFmpeg.o

 ,

wolverin
()

Си hex to file

Форум — Development

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

еще бы в 4-5 байты записать длину time(NULL)+2байта и после само это значение

uint8_t * buf = malloc(1024 * sizeof(uint8_t));

buf[0] = strtol("FF", NULL, 16);
buf[1] = strtol("D8", NULL, 16);
buf[2] = strtol("FF", NULL, 16);
buf[3] = strtol("FE", NULL, 16);
buf[4] = strtol("00", NULL, 16);
buf[5] = strtol("04", NULL, 16);

buf[10] = '\0';

FILE * pf = fopen("./test.jpg", "wb");
fwrite(buf, 1, 11, pf);
fclose(pf);

free(buf);

 , ,

wolverin
()

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

Форум — Development

Продолжаю вникать вопрос записи MJPEG на флешку без файловой системы С++ vs прямая запись на флешку

Удалось прикрутить fdisk и ffmpeg, имею такую тестовую приблуду

root@NanoPi-NEO-Core:/home/pi# head -c 200 /dev/mmcblk1 | xxd
00000000: fab8 0010 8ed0 bc00 b0b8 0000 8ed8 8ec0  ................
00000010: fbbe 007c bf00 06b9 0002 f3a4 ea21 0600  ...|.........!..
00000020: 00be be07 3804 750b 83c6 1081 fefe 0775  ....8.u........u
00000030: f3eb 16b4 02b0 01bb 007c b280 8a74 018b  .........|...t..
00000040: 4c02 cd13 ea00 7c00 00eb fe00 0000 0000  L.....|.........
00000050: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000060: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000070: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000080: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000090: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000c0: 0000 0000 0000 0000                      ........
root@NanoPi-NEO-Core:/home/pi# ./Recoder /dev/mmcblk1 /dev/video0
Device: /dev/mmcblk1 Physical sector size: 512 bytes First unpartitioned space: 29.14 GiB LBA begin: 2048 end: 61120511
Input #0, video4linux2,v4l2, from '/dev/video0':
  Duration: N/A, start: 959002.771778, bitrate: N/A
  Stream #0:0: Video: mjpeg (Baseline), yuvj422p(pc, bt470bg/unknown/unknown), 640x480, 15 fps, 15 tbr, 1000k tbn
Packet 901l size 57940 bytes Total capture 52918224l bytes
root@NanoPi-NEO-Core:/home/pi# head -c 200 /dev/mmcblk1 | xxd
00000000: ffd8 ffdb 0043 0002 0202 0202 0202 0202  .....C..........
00000010: 0202 0202 0203 0604 0303 0303 0705 0504  ................
00000020: 0609 0709 0908 0708 080a 0b0e 0c0a 0a0d  ................
00000030: 0a08 080c 100c 0d0e 0f0f 100f 090b 1112  ................
00000040: 110f 120e 0f0f 0fff db00 4301 0202 0203  ..........C.....
00000050: 0303 0704 0407 0f0a 080a 0f0f 0f0f 0f0f  ................
00000060: 0f0f 0f0f 0f0f 0f0f 0f0f 0f0f 0f0f 0f0f  ................
00000070: 0f0f 0f0f 0f0f 0f0f 0f0f 0f0f 0f0f 0f0f  ................
00000080: 0f0f 0f0f 0f0f 0f0f 0f0f 0f0f ffc0 0011  ................
00000090: 0801 e002 8003 0121 0002 1101 0311 01ff  .......!........
000000a0: c400 1f00 0001 0501 0101 0101 0100 0000  ................
000000b0: 0000 0000 0001 0203 0405 0607 0809 0a0b  ................
000000c0: ffc4 00b5 1000 0201                      ........

В целом что то пишется, пока не понятно кратно сектору в 512 байт такая кривота пишет или нет?

    pf = fopen(dev_disk, "wb");
    if (!pf)
    {
        fprintf(stderr, "Open frame data %s failed\n", dev_disk);
        rt = -1;
        goto END;
    }

unsigned int i = 0, l = 0;
    while ((rt = av_read_frame(pFormatCtx, packet)) >= 0)
    {
        l += packet->size;
        fprintf(stdout, "Packet %ul size %d bytes Total capture %ul bytes\r", i, packet->size, l);
        fwrite(packet->data, 1, packet->size, pf);
        av_packet_unref(packet);
if (i++ > 15*60) break;
    }

Вопрос больше в другом - наблюдаю что при avformat_find_stream_info(pFormatCtx, NULL) появляется как я понимаю временная метка start: 959002.771778, как я понимаю штатно в мжпег кадре нет временной метки и она появляется только в заголовке «пакета» из ффмпег? а где бы ее надыбать теперь на сыром диске? т.е. какая структура это «пакета» от ффмпег с мжпег кадром???

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

 , ,

wolverin
()

c.h как без ошибки подключить?

Форум — Development

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

Нужен некий функционал из fdisk (проблема не в нем), взял его с git, собрал, все работает, пытаюсь тянуть инклуды в свой проект простым

#include "./util-linux/include/c.h"

после чего получаю ошибку

In file included from Recoder.cpp:30:0:
./util-linux/include/c.h:402:3: error: #error "System with usleep() or nanosleep() required!"
 # error "System with usleep() or nanosleep() required!"
   ^~~~~
./util-linux/include/c.h: In function ‘void errmsg(char, int, char, const char*, ...)’:
./util-linux/include/c.h:222:39: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
   prog_inv_sh_nm_from_file(__FILE__, 1)
                                       ^
./util-linux/include/c.h:251:26: note: in expansion of macro ‘program_invocation_short_name’
  fprintf(stderr, "%s: ", program_invocation_short_name);
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
makefile:37: ошибка выполнения рецепта для цели «Recoder»
make: *** [Recoder] Ошибка 1

Сам c.h понимаю стандартный, но что нужно компилятору не понимаю в этом месте, подскажите???

static inline int xusleep(useconds_t usec)
{
#ifdef HAVE_NANOSLEEP
        struct timespec waittime = {
                .tv_sec   =  usec / 1000000L,
                .tv_nsec  = (usec % 1000000L) * 1000
        };
        return nanosleep(&waittime, NULL);
#elif defined(HAVE_USLEEP)
        return usleep(usec);
#else
# error "System with usleep() or nanosleep() required!"
#endif
}

 ,

wolverin
()

Падает «сеть» на ядре 4.14.111

Форум — Admin

Есть железка в хозяйстве Нанопи Нео Коре, там убунта 16.04 ЛТС, поднял на ней для теста v4l2rtspserver на усб uvc камеру, смотрю rtsp с нее в максималках mjpeg 1920х1080 на 30 кадрах в VLC

На некоторых железках на одном потоке, на других только на 3х клиентах vlc отваливается сеть с таким вот dmeg

[  260.070727] INFO: rcu_sched self-detected stall on CPU
[  260.076830]  0-...: (4190 ticks this GP) idle=70e/140000000000002/0 softirq=17072/17072 fqs=1976
[  260.079968] INFO: rcu_sched detected stalls on CPUs/tasks:
[  260.085937]
[  260.091905]  (t=4204 jiffies g=8837 c=8836 q=1672)
[  260.093825]  0-...: (4190 ticks this GP) idle=70e/140000000000002/0 softirq=17072/17072 fqs=1978
[  260.102957]
[  260.103041] NMI backtrace for cpu 0
[  260.103318] CPU: 0 PID: 29 Comm: kworker/0:1 Tainted: G         C O    4.14.111 #126
[  260.104951] (detected by 1, t=4206 jiffies, g=8837, c=8836, q=1672)
[  260.105020] Hardware name: sun8i
[  260.105412] Workqueue: events dbs_work_handler
.......................
[  260.125393] Sending NMI from CPU 1 to CPUs 0:
[  270.155454] rcu_sched kthread starved for 2000 jiffies! g8837 c8836 f0x0 RCU_GP_DOING_FQS(4) ->state=0x0 ->cpu=2
[  270.165927] rcu_sched       R  running task        0     8      2 0x00000000
[  270.166732] [<c0a2f9b8>] (__schedule) from [<c0a300d8>] (preempt_schedule_common+0x1c/0x2c)
[  270.167133] [<c0a300d8>] (preempt_schedule_common) from [<c0a30124>] (_cond_resched+0x3c/0x44)
[  270.167538] [<c0a30124>] (_cond_resched) from [<c0292824>] (rcu_gp_kthread+0x57c/0x928)
[  270.167960] [<c0292824>] (rcu_gp_kthread) from [<c025d020>] (kthread+0x128/0x158)
[  270.168347] [<c025d020>] (kthread) from [<c0222058>] (ret_from_fork+0x14/0x3c)
[  270.173442] NMI backtrace for cpu 0
[  270.173601] CPU: 0 PID: 29 Comm: kworker/0:1 Tainted: G         C O    4.14.111 #126
[  270.173668] Hardware name: sun8i
[  270.173743] Workqueue: events dbs_work_handler
[  270.173881] task: db1c0000 task.stack: db1ba000
[  270.173968] PC is at __usb_hcd_giveback_urb+0x80/0x148
[  270.174044] LR is at ehci_urb_enqueue+0xa3c/0xd98
[  270.174136] pc : [<c06d9da0>]    lr : [<c06f39d8>]    psr: 60010113
[  270.174216] sp : db1bbc60  ip : db001a80  fp : 40000000
[  270.174295] r10: c1202080  r9 : c1061520  r8 : c9ff9ce8
[  270.174390] r7 : 00000000  r6 : c9ff9c00  r5 : 60010113  r4 : d98cc000
[  270.174483] r3 : bf544f8c  r2 : 00000003  r1 : 00000000  r0 : 00000000
[  270.174582] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[  270.174666] Control: 30c5387d  Table: 5a761240  DAC: fffffffd
[  270.174780] CPU: 0 PID: 29 Comm: kworker/0:1 Tainted: G         C O    4.14.111 #126
[  270.174845] Hardware name: sun8i
[  270.174912] Workqueue: events dbs_work_handler

предполагаю, что одно ядро не успевает отрабовать прерывания ИСХОДЯЩЕГО трафика, умозаключения сделал на основе темы Расшифровка краха

Судя по предложенным там к просмотру счетчикам, у меня занимается отправкой пакетов NET_TX только 1 ядро, как бы починить-сбалансировать???

Every 2.0s: cat /proc/softirqs               Fri Jun 10 07:52:46 2022

                    CPU0       CPU1       CPU2       CPU3
          HI:    4241341          8          0          7
       TIMER:    1051360     966099     993020     922395
      NET_TX:      40438       8454       5959       6224
      NET_RX:      36476        317        374        123
       BLOCK:          0          0          0          0
    IRQ_POLL:          0          0          0          0
     TASKLET:       1371        149         21         20
       SCHED:     736057     759687     765668     686260
     HRTIMER:          0          0          0          0
         RCU:     702873     605518     618290     591059

Every 2.0s: cat /proc/interrupts                                          Fri Jun 10 07:52:47 2022

           CPU0       CPU1       CPU2       CPU3
 16:          0          0          0          0     GICv2  25 Level     vgic
 17:          0          0          0          0     GICv2  50 Level     /soc/timer@01c20c00
 18:          0          0          0          0     GICv2  29 Level     arch_timer
 19:    4656560    6907099    7007158    7089333     GICv2  30 Level     arch_timer
 20:          0          0          0          0     GICv2  27 Level     kvm guest timer
 22:          0          0          0          0     GICv2 120 Level     1ee0000.hdmi, dw-hdmi-cec
 24:          0          0          0          0     GICv2 118 Level     1c0c000.lcd-controller
 25:          0          0          0          0     GICv2  82 Level     1c02000.dma-controller
 26:         25          0          0          0     GICv2  92 Level     sunxi-mmc
 27:      32580          0          0          0     GICv2  94 Level     sunxi-mmc
 28:          1          0          0          0     GICv2 103 Level     musb-hdrc.4.auto
 29:          0          0          0          0     GICv2 104 Level     ehci_hcd:usb1
 30:          0          0          0          0     GICv2 105 Level     ohci_hcd:usb2
 31:          0          0          0          0     GICv2 106 Level     ehci_hcd:usb3
 32:          0          0          0          0     GICv2 107 Level     ohci_hcd:usb6
 33:          0          0          0          0     GICv2 108 Level     ehci_hcd:usb4
 34:          0          0          0          0     GICv2 109 Level     ohci_hcd:usb7
 35:    4316809          0          0          0     GICv2 110 Level     ehci_hcd:usb5
 36:          0          0          0          0     GICv2 111 Level     ohci_hcd:usb8
 39:      31658          0          0          0     GICv2  63 Level     1c25000.ths
 41:      35715          0          0          0     GICv2 114 Level     eth0
 42: 1373870485          0          0          0     GICv2  97 Level     sun6i-spi
 45:        462          0          0          0     GICv2  32 Level     ttyS0
 46:       8732          0          0          0     GICv2  33 Level     ttyS1
 49:          0          0          0          0     GICv2  38 Level     mv64xxx_i2c
 50:          0          0          0          0     GICv2  39 Level     mv64xxx_i2c
 51:          0          0          0          0     GICv2  40 Level     mv64xxx_i2c
 52:          0          0          0          0     GICv2  72 Level     1f00000.rtc
106:          1          0          0          0  sunxi_pio_edge  44 Edge      usb0-id-det
129:          1          0          0          0  sunxi_pio_edge   3 Edge      k1
IPI0:          0          0          0          0  CPU wakeup interrupts
IPI1:          0          0          0          0  Timer broadcast interrupts
IPI2:    3920333   14075889   14485381   14792281  Rescheduling interrupts
IPI3:         56        280        309         68  Function call interrupts
IPI4:          0          0          0          0  CPU stop interrupts
IPI5:       4367       1341       1399       1418  IRQ work interrupts
IPI6:          0          0          0          0  completion interrupts
Err:          0

 ,

wolverin
()

RTSP через ffserver

Форум — Admin

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

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

Нужно стримануть усб камеру через 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

Форум — Admin

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

Как бы включить аппаратную поддежку кодирования 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 файла как?

Форум — Admin

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

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

mount: mount(2) failed: Not a directory

 

wolverin
()

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

Форум — Admin

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

Есть у меня 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 прямая запись на флешку

Форум — Development

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

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

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

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

 

wolverin
()

С++ vs RTSP proxy/server

Форум — Development

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

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

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

 , ,

wolverin
()

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

Форум — General

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

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

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

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

 ,

wolverin
()

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

Форум — Admin

Есть 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 и пара серверов

Форум — Admin

Есть 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

Форум — Development

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

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

 , ,

wolverin
()

RSS подписка на новые темы