LINUX.ORG.RU

Сообщения steemandlinux

 

Кто-нибудь под линуксом пользовался платами Asus ProArt?

Форум — Linux-hardware

У неё есть порт DP IN. Как оно будет работать и видеться в системе, если я внешнюю видеокарту, установленную в эту же материнскую плату воткну в DP IN, а монитор в HDMI OUT?

 , , ,

steemandlinux
()

Нужна версия питона в обновленном RHEL 8.

Форум — Admin

Кто может показать версию питона в 8-й шапке? Интересует, обновляют ли они минорные версии или он также уходит в EoS.

В общем патчи они завозят после EoS:

3.6.8-39.module+el8.10.0+20784+edafcd43|

Только я не понял, это в Альма:

platform-python-3.6.8-62.el8_10.alma.1.x86_64.rpm

Перемещено hobbit из general

 ,

steemandlinux
()

Как энкапсулировать объект?

Форум — Development

Как в pyo3 rust завернуть несовместимый с python объект и вернуть его в пайтон? Мне надо вернуть client_channels не используя pyclass (просто представьте что я его использовал с внешнего моделя). sleep тут здесь для теста GIL.

use pyo3::{prelude::*, wrap_pyfunction};
use tokio;

struct ClientChannels {
    vendor_id: u16,
    product_id: u16,
}

#[pyfunction]
fn sleep(py: Python) -> PyResult<Bound<PyAny>> {
    let client_channels = ClientChannels {
        vendor_id: 1,
        product_id: 2,
    };

    pyo3_async_runtimes::tokio::future_into_py(py, async move {
        tokio::time::sleep(tokio::time::Duration::from_secs(3)).await;
        Ok(client_channels)
    })
}

#[pymodule]
fn libhidproxy(_py: Python, m: &Bound<'_, PyModule>) -> PyResult<()> {
    m.add_function(wrap_pyfunction!(sleep, m)?)?;
    Ok(())
}

Всё оказалось проще, достаточно указатель в виде целого вернуть.

use pyo3::{prelude::*, wrap_pyfunction};
use std::boxed::Box;

#[pyfunction]
fn create_client_channels() -> usize {
    let client_channels = ClientChannels {
        vendor_id: 1,
        product_id: 2,
    };

    let boxed = Box::new(client_channels);
    Box::into_raw(boxed) as usize
}

#[pyfunction]
fn get_vendor_id(ptr: usize) -> PyResult<u16> {
    let channels = unsafe { &*(ptr as *const ClientChannels) };
    Ok(channels.vendor_id)
}

#[pyfunction]
fn get_product_id(ptr: usize) -> PyResult<u16> {
    let channels = unsafe { &*(ptr as *const ClientChannels) };
    Ok(channels.product_id)
}

#[pyfunction]
fn free_client_channels(ptr: usize) -> PyResult<()> {
    unsafe {
        drop(Box::from_raw(ptr as *mut ClientChannels));
    }
    Ok(())
}

#[pymodule]
fn libhidproxy(_py: Python, m: &Bound<'_, PyModule>) -> PyResult<()> {
    m.add_function(wrap_pyfunction!(create_client_channels, m)?)?;
    m.add_function(wrap_pyfunction!(get_vendor_id, m)?)?;
    m.add_function(wrap_pyfunction!(get_product_id, m)?)?;
    m.add_function(wrap_pyfunction!(free_client_channels, m)?)?;
    Ok(())
}

 ,

steemandlinux
()

Выловил последний глюк wayland на kwin, который был у меня.

Форум — Desktop

Был странный глюк с мисфокусом (misfocus, misclick), когда после закрытия приложения xwayland внезапно по клику открывалось другое окно.

Это проблема electron, но не chromium. Исправляется через добавление аргументов --ozone-platform=wayland

Был ещё другой глюк, курсор в gtk приложениях менял размер. Это баг gtk, который упорно не желали исправлять. Исправляется либо обновлением на 4.18 или выше, либо export GDK_BACKEND=x11

 

steemandlinux
()

Как зависит поведение планировщика от приоритета?

Форум — General

Вот есть ассиметричные процессоры: 12 и 16 ядерные Ryzen X3D, Intel Core начиная с 12ххх и новее, ARM big.LITTLE based.

Влияет ли приоритет на распределение нагрузки по ядрам планировщиком? Например процесс с повышенным приоритетом будет выполняться на нормальных ядрах. Потому что я так понимаю, ядро об открытых окнах не знает ничего.

 

steemandlinux
()

А как посмотреть первые сообщения пользователя? Или less then 10000 error.

Форум — Linux-org-ru

 

steemandlinux
()

Увеличить размер вывода konsole/yakuake

Форум — Desktop

Все настройки облазил, вроде такая очевидная функция, а найти как увеличить размер вывода логов в konsole не могу.

 , , ,

steemandlinux
()

Как перейти с Gnome/XFCE4 на Plasma не сломав хромого?

Форум — Desktop

Несколько раз запускал для теста плазму, но каждый раз профиль хрома гробился из kwallet. Как правильно настроить kwallet до запуска хрома, чтобы он подхватил хранилище, а не стёр его?

 , ,

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
()

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