LINUX.ORG.RU

Сообщения steemandlinux

 

Можно ли ещё лучше оптимизировать данную функцию?

Форум — Development

Запилил тут сильно оптимизированную функцию поиска строки и штампа времени в базе данных sqlite. В данный момент эта функция расходует 75% процессорного времени. Вопрос, эта функция является оптимизированной в плане того, что сначала идёт выборка по time_t, а потом только по char?

int has_been_used(sqlite3 *db, const char *l_path, time_t epoch)
{
	const char *sql = "SELECT 1 FROM files WHERE path = ? AND mtime = ?;";
	sqlite3_stmt *stmt;
	int rc, exists = 0;

	rc = sqlite3_prepare_v2(db, sql, -1, &stmt, NULL);
	if (rc != SQLITE_OK)
	{
		fprintf(stderr, "Failed to prepare statement: %s\n", sqlite3_errmsg(db));
		return 0;
	}

	sqlite3_bind_text(stmt, 1, l_path, -1, SQLITE_STATIC);
	sqlite3_bind_int64(stmt, 2, (sqlite3_int64)epoch);

	rc = sqlite3_step(stmt);

	sqlite3_finalize(stmt);
	return rc;
}

 ,

steemandlinux
()

Как до блеклиста модуля запустить скрипт?

Форум — Linux-hardware

Есть файл с чёрным списком:

blacklist dwc2

Надо до его чтения запустить скрипт modinfo dwc2_dkms && echo "blacklist dwc2" > /etc/modprobe.d/blacklist_dwc2.conf

А потом уже прочитать blacklist_dwc2.conf

Как это можно сделать?

Или другой вопрос, как настроить приоритет модулей?

 

steemandlinux
()

Максимально прозрачный контейнер.

Форум — Desktop

Как можно сделать контейнер с Alpine, чтобы я мог перейти в любой каталог своей хостовой ОС и запустить в нём команду из контейнера? Типа cd ~/projects/opcua_method_poc && gcc_alpine -lopen62541 client_method_async.c и в нём оказалась сборка под Alpine, а не хостовую систему?

 

steemandlinux
()

Какой быдлокод лучше для замены шаблона в словаре?

Форум — Development

С точки зрения разработки, как лучше заменить шаблон:

  1. пройти рекурсивной функцией по словарю и заменить значение

  2. Завернуть в JSON, заменить, развернуть обратно в словарь?

 

steemandlinux
()

Питон полюбил ржавого и родили NULL pointer deference.

Форум — Development

 ,

steemandlinux
()

Привязать раскладку к устройству.

Форум — Desktop

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

 

steemandlinux
()

Git restore и git stash не убирают Changes not staged for commit:

Форум — Development

Не могу убрать сообщение про сабрепозиторий:

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
  (commit or discard the untracked or modified content in submodules)
	modified:   modules/dclua/configs (modified content, untracked content)

Пробовал restore, stash, commit. Бесполезно :(

Из-за чего не могу выполнить stash apply.

 

steemandlinux
()

Робот пылесос без майора с зонтом.

Форум — Talks

Потыкал тут три приложения: mi, roborock и dreame. Все требуют соединение с интернетом и регистрацию. Зная количество датчиков на роботах пылесосах, задумался, бывают ли пылесосы без товарищей из компартии или АНБ?

Гипотетическую ситуацию ESP32 на пылесосе + роутер ZTE/HUAWEI у соседей не учитываем.

 

steemandlinux
()

Чем грозит использование asyncio.Queue.put_nowait в синхронном коде?

Форум — Development

Есть такой оверрайд для подсистемы логов:

    def emit(self, record):
        """Overwrite emit method to publish logs to MQTT."""
        msg = self.format(record)
        try:
            self.logs_bridge_queue.put_nowait(msg)
        except asyncio.QueueFull:
            self.logs_bridge_queue.get_nowait()
            self.logs_bridge_queue.put_nowait(msg)

C другой стороны приёмник:

        while True:
            msg = await self.logs_bridge_queue.get()

В документации написано:

Although asyncio queues are not thread-safe, they are designed to be used specifically in async/await code.

Я не могу понять, что они имеют в виду под thread-safe. Все функции вне асинхронного контекста или только threading?

И чем может грозить использование asyncio.Queue вне асинхронного контекста?

 ,

steemandlinux
()

Софт для кассового оборудования в баре под Linux в РФ

Форум — Desktop

Подскажите, а существует адекватное ПО, которое работает под линуксом, для российского рынка, для кассы общепита?

Ну или хотя бы Android.

 

steemandlinux
()

Забрать hid устройство у системы, сохранив к нему доступ через hidapi

Форум — Linux-hardware

Есть устройство, как запретить иксы обращаться к нему, сохранив доступ к нему через hipapi.

Я пробовал:

echo "0003:0EB8:EA00.0049" | sudo tee /sys/bus/hid/drivers/hid-generic/unbind

и

SUBSYSTEM=="usb", DRIVER=="usbhid", ATTRS{idVendor}=="0eb8", ATTRS{idProduct}=="ea00", ATTR{authorized}="0"

В обоих случаях терял доступ через hidapi.

[680907.803898] usb 3-1.2: new high-speed USB device number 86 using xhci_hcd
[680907.895167] usb 3-1.2: New USB device found, idVendor=0eb8, idProduct=ea00, bcdDevice= 1.00
[680907.895171] usb 3-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[680907.895174] usb 3-1.2: Product: SevenCompact pH/Ion S220
[680907.895176] usb 3-1.2: Manufacturer: METTLER TOLEDO
[680907.895177] usb 3-1.2: SerialNumber: XXXXXX
[680907.898125] input: METTLER TOLEDO SevenCompact pH/Ion S220 as /devices/pci0000:00/0000:00:01.3/0000:02:00.2/0000:03:00.0/0000:04:00.0/usb3/3-1/3-1.2/3-1.2:1
==> /sys/bus/hid/drivers/hid-generic/0003:0EB8:EA00.0049/input/input81/name <==
METTLER TOLEDO SevenCompact pH/Ion S220
Bus 003 Device 086: ID 0eb8:ea00 Mettler Toledo SevenCompact pH/Ion S220
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0eb8 Mettler Toledo
  idProduct          0xea00 
  bcdDevice            1.00
  iManufacturer           1 METTLER TOLEDO
  iProduct                2 SevenCompact pH/Ion S220
  iSerial                 3
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x0029
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          4 Full Speed Configuration
    bmAttributes         0x80
      (Self Powered)
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      1 Keyboard
      iInterface              5 HID Interface
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.01
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      63
         Report Descriptors: 
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               4
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               4
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  bNumConfigurations      1
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0000
  (Self Powered)

 

steemandlinux
()

Нужен ли flash для заливки кода в ESP32-S2?

Форум — Talks

Вот интересно, скачал я ESP-IDF SDK. Собрал образец, который в конце мне выдал сообщение:

esptool.py -p (PORT) -b 460800 --before default_reset --after hard_reset --chip esp32  write_flash --flash_mode dio --flash_size 2MB --flash_freq 40m 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin 0x10000 build/oneshot_read.bin

А для чего ему параметры?

--flash_size 2MB --flash_freq 40m

Неужели оно исполнение на месте не поддерживает как те же stm32?

 

steemandlinux
()

Кто знаком с simcom A7682E или 868E?

Форум — Linux-hardware

Кто-нибудь знаком с китайскими модемами SIM A7682E и SIM 868E?

Вопрос, как они видятся при подключении через USB интерфейс? Можно ли через него слать AT команды или придется дополнительно UART подключать?

 

steemandlinux
()

PCB prototype + production + assembly в 2023

Форум — Talks

Где в 2023 году можно заказать PCB платы, закупку и монтаж деталей на них? Раньше под ключ работал pcbway, но сейчас они всё.

Интересуют прототипы 10 штук + 10000 производство.

Платы от 1 до 6 слоев.

 

steemandlinux
()

Подскажите, а modbus может определять наличие и отсутствие напряжения в линии?

Форум — Talks

Есть обычный сигнализатор, который имеет постоянно 12 вольт на линии, питание сигнализатора внешнее.

Может ли modbus контроллер определить, приходит ли питание на него или нет?

Линукс тут притом, что на компьютере, который считывает состояние стоит малиновый дебиан.

 

steemandlinux
()

Получить tax residency без миллионов и пол года ожидания

Форум — Talks

В какой стране можно сделать без большой сложности tax residency/id? В данный момент нашел Уругвай, Парагвай, Nomad Visa в Бразилии (не катит платежи зарубежом работают хуже чем у union pay). У остальных требования или 183 дня ожидания, или большие вложения в «бизнес».

Я тупанул, кроме tax id еще требуется residency address.

Всё я понял, мне нужен не personal tax id, а корпоративный.

 

steemandlinux
()

Как записать в sysfs из ядра?

Форум — Development

Манулов как вызывать sysfs колбеки целая куча в интернетах.

Но вот как писать в sysfs из ядра абсолютная тишина.

Кто-нибудь может объяснить как это делается? Есть тестовый файл: /sys/kernel/myclass/myfile.

Присылаю приветы из userspace, все нормально работает. Но как это работает в обратную сторону, совершенно непонятно.

Использовал вот этих манулов:

https://embetronicx.com/tutorials/linux/device-drivers/sysfs-in-linux-kernel/

https://github.com/Johannes4Linux/Linux_Driver_Tutorial/blob/main/19_sysfs/sysfs_test.c

 

steemandlinux
()

Как актировать DDEBUG в модуле ядра?

Форум — Development

Есть такая dwc2/Makefile инструкция:

# SPDX-License-Identifier: GPL-2.0
ccflags-$(CONFIG_USB_DWC2_DEBUG)        += -DDEBUG
ccflags-$(CONFIG_USB_DWC2_VERBOSE)      += -DVERBOSE_DEBUG

obj-$(CONFIG_USB_DWC2)                  += dwc2.o
dwc2-y                                  := core.o core_intr.o platform.o drd.o
dwc2-y                                  += params.o

ifneq ($(filter y,$(CONFIG_USB_DWC2_HOST) $(CONFIG_USB_DWC2_DUAL_ROLE)),)
        dwc2-y                          += hcd.o hcd_intr.o
        dwc2-y                          += hcd_queue.o hcd_ddma.o
endif

ifneq ($(filter y,$(CONFIG_USB_DWC2_PERIPHERAL) $(CONFIG_USB_DWC2_DUAL_ROLE)),)
        dwc2-y                          += gadget.o
endif

ifneq ($(CONFIG_DEBUG_FS),)
        dwc2-y                          += debugfs.o
endif

# NOTE: The previous s3c-hsotg peripheral mode only driver has been moved to
# this location and renamed gadget.c. When building for dynamically linked
# modules, dwc2.ko will get built for host mode, peripheral mode, and dual-role
# mode. The PCI bus interface module will called dwc2_pci.ko and the platform
# interface module will be called dwc2_platform.ko.

obj-$(CONFIG_USB_DWC2_PCI)              += dwc2_pci.o
dwc2_pci-y                              := pci.o

Вроде как в начале есть DDEBUG, но не похоже что он активирован. Как с дебаг принтами собрать модуль?

А линукс тут притом, что линукс это тоже линукс.

 ,

steemandlinux
()

Как отключить WPA3 probing и кто виноват в косяке?

Форум — Linux-hardware

Есть ноутбук с карточкой BCM43142 802.11b/g/n, она нормально работает с wl и b43 драйверами, но есть одно но, когда на роутере активен wpa2/3 mixed, она выдаёт:

[ 1868.647452] ERROR @wl_set_key_mgmt : 
[ 1868.647458] invalid cipher group (1027076)

В NM нельзя убрать WPA3, iwctl выдаёт ту же самую ошибку. Кто виноват в том, что вафля пытается делать то, что не умеет (кому писать багрепорт) и как это отрубить?

 

steemandlinux
()

Может ли FTDI232 проверить наличие земли?

Форум — Development

Есть возможность через FTDI232 проверить наличие физически подключенного устройства?

 

steemandlinux
()

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