Как перейти с Gnome/XFCE4 на Plasma не сломав хромого?
Несколько раз запускал для теста плазму, но каждый раз профиль хрома гробился из kwallet. Как правильно настроить kwallet до запуска хрома, чтобы он подхватил хранилище, а не стёр его?
Несколько раз запускал для теста плазму, но каждый раз профиль хрома гробился из kwallet. Как правильно настроить kwallet до запуска хрома, чтобы он подхватил хранилище, а не стёр его?
Запилил тут сильно оптимизированную функцию поиска строки и штампа времени в базе данных 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;
}
Есть файл с чёрным списком:
blacklist dwc2
Надо до его чтения запустить скрипт modinfo dwc2_dkms && echo "blacklist dwc2" > /etc/modprobe.d/blacklist_dwc2.conf
А потом уже прочитать blacklist_dwc2.conf
Как это можно сделать?
Или другой вопрос, как настроить приоритет модулей?
Как можно сделать контейнер с Alpine, чтобы я мог перейти в любой каталог своей хостовой ОС и запустить в нём команду из контейнера? Типа cd ~/projects/opcua_method_poc && gcc_alpine -lopen62541 client_method_async.c
и в нём оказалась сборка под Alpine, а не хостовую систему?
С точки зрения разработки, как лучше заменить шаблон:
пройти рекурсивной функцией по словарю и заменить значение
Завернуть в JSON, заменить, развернуть обратно в словарь?
По-любому cython виноват.
https://github.com/pyca/cryptography/security/advisories/GHSA-6vqw-3v5j-54x4
Под иксами или в вейланде есть возможность привязать раскладку клавиатуры к устройству, чтобы при вводе с него был всегда английский язык?
Не могу убрать сообщение про сабрепозиторий:
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.
Потыкал тут три приложения: mi, roborock и dreame. Все требуют соединение с интернетом и регистрацию. Зная количество датчиков на роботах пылесосах, задумался, бывают ли пылесосы без товарищей из компартии или АНБ?
Гипотетическую ситуацию ESP32 на пылесосе + роутер ZTE/HUAWEI у соседей не учитываем.
Есть такой оверрайд для подсистемы логов:
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 вне асинхронного контекста?
Подскажите, а существует адекватное ПО, которое работает под линуксом, для российского рынка, для кассы общепита?
Ну или хотя бы Android.
Есть устройство, как запретить иксы обращаться к нему, сохранив доступ к нему через 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)
Вот интересно, скачал я 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?
Кто-нибудь знаком с китайскими модемами SIM A7682E и SIM 868E?
Вопрос, как они видятся при подключении через USB интерфейс? Можно ли через него слать AT команды или придется дополнительно UART подключать?
Где в 2023 году можно заказать PCB платы, закупку и монтаж деталей на них? Раньше под ключ работал pcbway, но сейчас они всё.
Интересуют прототипы 10 штук + 10000 производство.
Платы от 1 до 6 слоев.
Есть обычный сигнализатор, который имеет постоянно 12 вольт на линии, питание сигнализатора внешнее.
Может ли modbus контроллер определить, приходит ли питание на него или нет?
Линукс тут притом, что на компьютере, который считывает состояние стоит малиновый дебиан.
В какой стране можно сделать без большой сложности tax residency/id? В данный момент нашел Уругвай, Парагвай, Nomad Visa в Бразилии (не катит платежи зарубежом работают хуже чем у union pay). У остальных требования или 183 дня ожидания, или большие вложения в «бизнес».
Я тупанул, кроме tax id еще требуется residency address.
Всё я понял, мне нужен не personal tax id, а корпоративный.
Манулов как вызывать 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
Есть такая 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, но не похоже что он активирован. Как с дебаг принтами собрать модуль?
А линукс тут притом, что линукс это тоже линукс.
Есть ноутбук с карточкой 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 выдаёт ту же самую ошибку. Кто виноват в том, что вафля пытается делать то, что не умеет (кому писать багрепорт) и как это отрубить?
следующие → |