LINUX.ORG.RU

Сообщения normann

 

Можно ли как-то, и как, в C++ получить std::locale UTF-8 без указания языка_региона?

Форум — Development

Допустим мне нужен UTF-8, но без разницы какой язык и регион, например, для того, что бы конвертировать текст между UTF-8 и wchar_t. Мой код не знает и не хочет знать какие там язык и регион, просто получить UTF-8, а остальные параметры по умолчанию. На офтопике, к примеру, можно позвать std::locale(«.UTF-8»), и это работает, но мне нужно кроссплатформенно, или хотя бы для GNU/Linux. Такое возможно?

 , ,

normann
()

Сбоит wifi на Федоре

Форум — Desktop

Доброго времени. Время от времени начинает отваливаться весь вайфай, пропадает не просто сигнал, а он весь перестаёт работать, исчезают списки беспроводных соединений. Через 2-15 секунд он пытается завестить заново, списки появляются на четверть секунды и всё отваливается снова, и так несколько раз пока не восстановится. dmesg при этом почти весь красный. Время появления таких симптомов хаотичное, чаще всего это проявляется при интенсивном трафике. Что бы отмести предположение о том, что это аппаратные проблемы, я загружался с флешки с той же федорой, и вайфай там работал нормально. Проверял ютубом на протяжении полтора-двух часов. Очевидно, что дело в каких-то конфигах.

Прошу помощи разобраться и исправить, очень не хочется переустанавливать ось, это у меня рабочий комп, на восстановление всех инструментов уйдёт неделя человекочасов. Может быть достаточно какие-то конфиги удалить, что бы оно стало как после переустановки, только я не знаю какие.

Начало появляться ещё когда версия федоры была 40 (проблема по ощущениям с каким-то обновлением появилось), сейчас у меня 41. В обоих случаях, что со на сбойной системе, что на live-cd, подключение производилось к wifi 5g. Пробовал удалять пересоздавать подключение по wifi, не помогло.

lspci -k

00:14.3 Network controller: Intel Corporation Alder Lake-S PCH CNVi WiFi (rev 11)
        DeviceName: Onboard - Ethernet
        Subsystem: Intel Corporation Device 0074
        Kernel driver in use: iwlwifi
        Kernel modules: iwlwifi

dmesg

[  595.192335] usb 1-10: reset high-speed USB device number 3 using xhci_hcd
[  601.051269] wlo1: authenticate with 70:f8:2b:73:52:bc (local address=0a:8f:a4:84:28:33)
[  601.051950] wlo1: send auth to 70:f8:2b:73:52:bc (try 1/3)
[  601.181434] wlo1: send auth to 70:f8:2b:73:52:bc (try 2/3)
[  601.184236] wlo1: authenticated
[  601.186195] wlo1: associate with 70:f8:2b:73:52:bc (try 1/3)
[  601.191868] wlo1: RX AssocResp from 70:f8:2b:73:52:bc (capab=0x431 status=0 aid=1)
[  601.195334] wlo1: associated
[  606.995381] usb 1-10: reset high-speed USB device number 3 using xhci_hcd
[  610.971937] usb 1-10: reset high-speed USB device number 3 using xhci_hcd
[  843.790617] wlo1: deauthenticating from 70:f8:2b:73:52:bc by local choice (Reason: 3=DEAUTH_LEAVING)
[  843.904817] wlo1: authenticate with 70:f8:2b:73:52:bd (local address=5a:34:c2:a4:62:8f)
[  843.905523] wlo1: send auth to 70:f8:2b:73:52:bd (try 1/3)
[  843.978207] iwlwifi 0000:00:14.3: Microcode SW error detected. Restarting 0x0.
[  843.978325] iwlwifi 0000:00:14.3: Start IWL Error Log Dump:
[  843.978326] iwlwifi 0000:00:14.3: Transport status: 0x0000004A, valid: 6
[  843.978327] iwlwifi 0000:00:14.3: Loaded firmware version: 89.4d42c933.0 so-a0-hr-b0-89.ucode
[  843.978329] iwlwifi 0000:00:14.3: 0x00000071 | NMI_INTERRUPT_UMAC_FATAL    
[  843.978330] iwlwifi 0000:00:14.3: 0x00A002F0 | trm_hw_status0
[  843.978331] iwlwifi 0000:00:14.3: 0x00000000 | trm_hw_status1
[  843.978332] iwlwifi 0000:00:14.3: 0x004D7374 | branchlink2
[  843.978333] iwlwifi 0000:00:14.3: 0x000133CA | interruptlink1
[  843.978334] iwlwifi 0000:00:14.3: 0x000133CA | interruptlink2
[  843.978334] iwlwifi 0000:00:14.3: 0x00015092 | data1
[  843.978335] iwlwifi 0000:00:14.3: 0x00000010 | data2
[  843.978336] iwlwifi 0000:00:14.3: 0x00000000 | data3
[  843.978336] iwlwifi 0000:00:14.3: 0x50C15800 | beacon time
[  843.978337] iwlwifi 0000:00:14.3: 0x31D85729 | tsf low
[  843.978338] iwlwifi 0000:00:14.3: 0x00000000 | tsf hi
[  843.978339] iwlwifi 0000:00:14.3: 0x00000000 | time gp1
[  843.978339] iwlwifi 0000:00:14.3: 0x31D91C40 | time gp2
[  843.978340] iwlwifi 0000:00:14.3: 0x00000001 | uCode revision type
[  843.978341] iwlwifi 0000:00:14.3: 0x00000059 | uCode version major
[  843.978342] iwlwifi 0000:00:14.3: 0x4D42C933 | uCode version minor
[  843.978342] iwlwifi 0000:00:14.3: 0x00000430 | hw version
[  843.978343] iwlwifi 0000:00:14.3: 0x58C80002 | board version
[  843.978344] iwlwifi 0000:00:14.3: 0x0100001C | hcmd
[  843.978345] iwlwifi 0000:00:14.3: 0x00020000 | isr0
[  843.978345] iwlwifi 0000:00:14.3: 0x00000000 | isr1
[  843.978346] iwlwifi 0000:00:14.3: 0x48F00002 | isr2
[  843.978347] iwlwifi 0000:00:14.3: 0x00C0000D | isr3
[  843.978347] iwlwifi 0000:00:14.3: 0x00000000 | isr4
[  843.978348] iwlwifi 0000:00:14.3: 0x00670103 | last cmd Id
[  843.978349] iwlwifi 0000:00:14.3: 0x00015092 | wait_event
[  843.978350] iwlwifi 0000:00:14.3: 0x00000000 | l2p_control
[  843.978350] iwlwifi 0000:00:14.3: 0x00000020 | l2p_duration
[  843.978351] iwlwifi 0000:00:14.3: 0x00000000 | l2p_mhvalid
[  843.978352] iwlwifi 0000:00:14.3: 0x00000000 | l2p_addr_match
[  843.978352] iwlwifi 0000:00:14.3: 0x00000009 | lmpm_pmg_sel
[  843.978353] iwlwifi 0000:00:14.3: 0x00000000 | timestamp
[  843.978354] iwlwifi 0000:00:14.3: 0x00008874 | flow_handler
[  843.978395] iwlwifi 0000:00:14.3: Start IWL Error Log Dump:
[  843.978396] iwlwifi 0000:00:14.3: Transport status: 0x0000004A, valid: 7
[  843.978397] iwlwifi 0000:00:14.3: 0x2010120E | ADVANCED_SYSASSERT
[  843.978398] iwlwifi 0000:00:14.3: 0x00000000 | umac branchlink1
[  843.978399] iwlwifi 0000:00:14.3: 0x804824F0 | umac branchlink2
[  843.978399] iwlwifi 0000:00:14.3: 0xC00814F0 | umac interruptlink1
[  843.978400] iwlwifi 0000:00:14.3: 0x00000000 | umac interruptlink2
[  843.978401] iwlwifi 0000:00:14.3: 0x00000002 | umac data1
[  843.978402] iwlwifi 0000:00:14.3: 0x00000004 | umac data2
[  843.978402] iwlwifi 0000:00:14.3: 0x00000000 | umac data3
[  843.978403] iwlwifi 0000:00:14.3: 0x00000059 | umac major
[  843.978404] iwlwifi 0000:00:14.3: 0x4D42C933 | umac minor
[  843.978404] iwlwifi 0000:00:14.3: 0x31D965DF | frame pointer
[  843.978405] iwlwifi 0000:00:14.3: 0xC08875CC | stack pointer
[  843.978406] iwlwifi 0000:00:14.3: 0x00740517 | last host cmd
[  843.978406] iwlwifi 0000:00:14.3: 0x00000000 | isr status reg
[  843.978438] iwlwifi 0000:00:14.3: IML/ROM dump:
[  843.978438] iwlwifi 0000:00:14.3: 0x00000B03 | IML/ROM error/state
[  843.978446] iwlwifi 0000:00:14.3: 0x00005147 | IML/ROM data1
[  843.978455] iwlwifi 0000:00:14.3: 0x00000090 | IML/ROM WFPM_AUTH_KEY_0
[  843.978460] iwlwifi 0000:00:14.3: Fseq Registers:
[  843.978463] iwlwifi 0000:00:14.3: 0x60000000 | FSEQ_ERROR_CODE
[  843.978465] iwlwifi 0000:00:14.3: 0x80340002 | FSEQ_TOP_INIT_VERSION
[  843.978468] iwlwifi 0000:00:14.3: 0x00150002 | FSEQ_CNVIO_INIT_VERSION
[  843.978470] iwlwifi 0000:00:14.3: 0x0000A482 | FSEQ_OTP_VERSION
[  843.978473] iwlwifi 0000:00:14.3: 0x00000003 | FSEQ_TOP_CONTENT_VERSION
[  843.978475] iwlwifi 0000:00:14.3: 0x4552414E | FSEQ_ALIVE_TOKEN
[  843.978478] iwlwifi 0000:00:14.3: 0x00080401 | FSEQ_CNVI_ID
[  843.978480] iwlwifi 0000:00:14.3: 0x01300504 | FSEQ_CNVR_ID
[  843.978483] iwlwifi 0000:00:14.3: 0x00080401 | CNVI_AUX_MISC_CHIP
[  843.978487] iwlwifi 0000:00:14.3: 0x01300504 | CNVR_AUX_MISC_CHIP
[  843.978492] iwlwifi 0000:00:14.3: 0x05B0905B | CNVR_SCU_SD_REGS_SD_REG_DIG_DCDC_VTRIM
[  843.978497] iwlwifi 0000:00:14.3: 0x0000025B | CNVR_SCU_SD_REGS_SD_REG_ACTIVE_VDIG_MIRROR
[  843.978499] iwlwifi 0000:00:14.3: 0x00150002 | FSEQ_PREV_CNVIO_INIT_VERSION
[  843.978502] iwlwifi 0000:00:14.3: 0x00340002 | FSEQ_WIFI_FSEQ_VERSION
[  843.978504] iwlwifi 0000:00:14.3: 0x00340002 | FSEQ_BT_FSEQ_VERSION
[  843.978507] iwlwifi 0000:00:14.3: 0x000001AE | FSEQ_CLASS_TP_VERSION
[  843.978515] iwlwifi 0000:00:14.3: UMAC CURRENT PC: 0x804a22d8
[  843.978517] iwlwifi 0000:00:14.3: LMAC1 CURRENT PC: 0xd0
[  843.978526] iwlwifi 0000:00:14.3: WRT: Collecting data: ini trigger 4 fired (delay=0ms).
[  844.453972] iwlwifi 0000:00:14.3: Device error - SW reset
[  844.454539] ieee80211 phy0: Hardware restart was requested

Вывод dmesg тут не весь. В полном выводе какие-то сообщения повторяются, какие-то новые, всего набралось почти тыс. строк. Если в этом есть необходимость, вот ссылка на текстовый файл с полным выводом с сохранёнными цветами терминала dmesg.txt.

Спасибо.

 ,

normann
()

Можно ли опираться на порядок объявления переменных в пресетах CMake?

Форум — Development

Пресеты (предустановки, presets) cmake. Речь о поле «cacheVariables» пресета конфигурации. Существует ли в объявлении этих переменных стабильная последовательность их объявления, такая что бы на неё можно было опереться при последующем объявлении следующих переменных, используя значения первых для определения значения последних (как в императивных языках программирования)? Допустим в одной строчке я определил переменную VAR1 с каким-то значением, и хочу прочитать её значение в другой последующей строчке, где, например, определяю другую переменную VAR2, для задания её значения, например как «value»: «${VAR1}»:

"cacheVariables": {
    "VAR1": "linux.org.ru",
    "VAR2": "${VAR1}"
},

Могу ли я использовать этот подход для определения входных переменных в CMakeUserPresets.json и их чтения в CMakePresets.json?

 

normann
()

У меня одного выпилился ksysguard из Fedora40?

Форум — Desktop

Обновил федору (39) до 40й версии. Всё конечно глючное стало, plasma 6, но не об этом. У меня был ksysguard, я им пользовался, а как обновился, его не стало. В репозитории его тоже нет, есть какой-то ksysguardd и всё. Это у всех так? А куда, а зачем, а как быть?

 fedora40,

normann
()

Увеличение раздела программой «Управление разделами KDE» уничтожает данные на нём?

Форум — General

Раздел в формате ext3 на диске ssd. Если я увеличу его размер программой «Управление разделами KDE» (partitionmanager) без перемещения, предполагает ли это потерю данных на разделе, или программа рассчитана на изменение без потерь?

 , ,

normann
()

Допускают ли протокол X11 и какие-либо реализации выбор кастомного TCP-порта вместо 6000+?

Форум — General

Иными словами, возможно ли при запуске сервера X11 и его клиентов указывать, что бы сервер слушал не 6000, а допустим 7000 или какой-либо другой, а клиенты, подключались тоже не на 6000, а на тот самый, который выбран при запуске сервера? Может ключи какие для этого есть?

 

normann
()

Можно ли на этом форуме постить темы по вопросам, возникающим в среде Mac OS?

Форум — Linux-org-ru

Собственно и весь вопрос.

 ,

normann
()

Посоветуйте годную книгу по HTTP

Форум — Development

Посоветуйте пожалуйста годную актуальную самодостаточную, но без фанатизма, книгу по HTTP, только такую, чтоб там не было перемешано со всяким джавами растами, чисто сабж (сам я, если что, на плюсах пишу). Смотрю во всех вакансиях только и дело, что rest, rest, restful, rest, а я далёк от этой темы, по этому такие вакансии для меня закрыты. Хочется понимать достаточно для работы с протоколом, но не мусолить до уровня битов-байтов протокола, своих сериализаторов писать не собираюсь.

 ,

normann
()

O_NONBLOCK + write(сокет). Почему EWOULDBLOCK?

Форум — Development

Я не слабо разбираюсь во внутреннем устройстве ОС, системному программированию не обучен, по этому адресую свой вопрос грамотным людям.

Допустим у меня сетевой сокет с флагом O_NONBLOCK. Для более широкого охвата примера возьмём два разных случая, пусть в одном из них записываемые в сокет данные отправляются получателю в виде датаграмм, а в другом в виде гарантированных TCP пакетов.

Собственно вопрос, что должно произойти под капотом write() на этом сокете там, на стороне операционной системы и/или библиотеки, что бы он вернул мне EWOULDBLOCK? Меня интересует конкретные вещи, не абстрактное типа «что-нибудь, что не позволит запись», а конкретно что там происходит и в каком виде это может явиться причиной EWOULDBLOCK.

Может быть ещё найдутся ссылки на литературу или иные источники, о которых вы знаете, что там эти вещи хорошо описываются, желательно не для создателей операционных систем, а для прикладных программистов.

Спасибо.

 ,

normann
()

Как прервать бустовый asio acceptor::accept() из другого потока?

Форум — Development

Пытаюсь немного освоить Boost.Asio, и при написании серверной части возник вопрос. Вот допустим у меня отдельный рабочий поток и в нём в цикле крутится tcp::acceptor::accept(…), вопрос, как мне из другого потока прервать ожидание на вызове accept(), что бы завершить работу цикла?

 ,

normann
()

thunderbird как служба

Форум — Desktop

Товарищи, существует ли средство для или в thunderbird, позволяющее отслеживать наличие новых входящих писем без запуска самого приложения thunderbird, которое при обнаружении нового письма уведомляло бы пользователя и предлагало запустить основной клиент? Интересует в первую очередь возможность отслеживать письма без загрузки в память всего относительно тяжеловесного функционала приложения в угоду постоянно работающей легковесной службы. Что можете посоветовать в этом направлении? Спасибо.

 

normann
()

Веб-камера под Linux

Форум — Linux-hardware

Имеет ли на сегодняшний день значение, какую веб-камеру выбирать для полноценной работы под линукс, или сегодня все камеры имеют полную совместимость с этой ОС? Если имеет значение, то поделитесь, будьте добры, кто разбирается, какую лучше выбрать?

 

normann
()

Btrfs на домашний компьютер, стоит ли?

Форум — Desktop

Друзья, кто-нибудь ставит на домашний компьютер Btrfs? Если есть такие, расскажите, какие преимущества (а так же недостатки) даёт эта система на домашнем ПК. Собираюсь стаить ОС, но пришёл в замешательство при выборе ФС. Знаю, что Btrfs чуть медленнее чем Ext4. У меня свежий ssd (nvme) на терабайт, собираюсь разбить его отдельно на корень и домашний каталог. Похоже что ФС ставлю на диск очень на долго, по этому не хочу ошибиться с выбором на долгосрочную перспективу и хочу понять, есть ли смысл стаить Btrfs, или сегодня можно оставить Ext4. В перспективе ещё хочу приобрести жёсткий диск тоже на терабайт.

UPD. А вот вопрос, можно ли как-то осуществить миграцию диска с Ext4 на Btfs без переустановки ОС?

UPD. По итогу обсуждения: Вот что, парни, я решил. Почитав вас, почитав тред, по ссылке приведённой товарищем @cocucka, почитав интервью небезызвестного Эдуарда Шишкина, я пришёл к выводу, что для пользования Btrfs мне потребуется А - выучить всю теорию по этой ФС и полное руководство по её обслуживанию на разные случаи, Б - изучить негативные опыты пользователей и истории успеха по выходу из плохих ситуаций. И как минимум А я должен выполнить до установки ФС и на это требуется время, а я хочу всё-таки уже установить операционную систему на свой новый долгожданный компьютер (который, к слову, был куплен как распоследняя модель распоследнего поколения и валялся у меня в виде комплектующих полтора года и уже успел устареть :D). Так, что я понимаю, что прямо сейчас я не готов к Btrfs, но не говорю ей прощай, а только до свидания. Возможно набью шишек в виде потерянных данных из-за невозможности отката, и тогда с воодушевлением скажу - всё, хочу Btrfs. Парни, большое вам спасибо за отзывчивость и советы.

 , ,

normann
()

Кто-нибудь встречал книгу Скотта Мейерса в цветном формате?

Форум — Development

Речь идёт о книге Скотта Мейерса «Эффективный и современный С++. 42 рекомендации по использованию C++11 и C++14» на русском языке. Видел PDF-ку на языке оригинала, там были разноцветные текст, разметка и подсветка синтаксиса. Как по мне, ну очень приятно выглядит, и читать приятно. Мне вот интересно, существует ли эта книга (бумажная) на раусском языке в таком же цветном формате. Ни кому такое не попадалось?

 , ,

normann
()

Как отвязаться от std::future, что бы не ждать завершения потока.

Форум — Development

C++. Есть объект std::future на стэке, полученный от std::async(), функция завершается, и при возврате из функции деструктор объекта std::future ждёт, пока завершится, отслеживаемый им поток, что вызывает неприемлемые задержки. Как можно отвязать этот объект от потока, что бы при его уничтожении не ждать, когда завершится поток?

 , , ,

normann
()

Thread local storage в cgo (на Си из Go)

Форум — Development

Есть необоходимость использовать thread local storage в функциях написанных на Си и вызываемых из кода на языке Го. Я ни в го, ни в thread local storage не умею (последнее предстоит освоить). Есть ли знатоки темы, возможно ли вообще применение локалных для потока данных для функций вызываемых из го, и какие средства для этого подходят? Могу ошибаться, но кажется для применения такого хранения данных требуется pthread, однако собранная программа на Го не импортирует pthread, в зависимостях такая не значится, будет ли работать TLS, если явно подключить эту библиотеку?

 , ,

normann
()

Странное поведение sscanf()

Форум — Development

В коде на Си спользую sscanf(), что бы распарсить строку вида «<0x7fb2a00010a0|1779>» (два числа, шестнадцатеричное и десятичное) шаблоном «<%p|%zu>», и оно то работает, то не работает. Может в форме входной строки или шаблоне что-то не так, но что интересно, что sscanf всегда работает по разному, сегодня он данные принимает и распознаёт, а завтра уже говорит «ничего не вижу», а после завтра видит только одно из двух чисел, и от чего его настроение зависит мне не понятно. Вызов выглядит вот так:

int atk_memfile_from_specresid( const char *residual,
                                char const **bufpp,
                                size_t *szp )
{
    int result = sscanf(residual, "<%p|%zu>", bufpp, szp);
    if( result == EOF )
    {
        return 0;
    }
    if( *bufpp < (const char*)0x100 )
    {
        return 0;
    }
    if( result )
    {
        return 1;
    }
    return 0;
}
Передаётся аргументом residual строка, допустим (из реального примера) «<0x7fb2a00010a0|1779>». Сегодня на моих глазах на одной машине находит, а на другой машине этот текст не принимается, функция возвращает 0. У меня два вопроса:

  • Что не так с входными данными и шаблоном?
  • И почему поведение каждый раз меняется?

 ,

normann
()

Отладчик указывает позиции в коде, не соответствующие действительности.

Форум — Development
  • GNU gdb (GDB) Fedora 12.1-1.fc35
  • g++ (GCC) 11.3.1 20220421 (Red Hat 11.3.1-3)
  • cmake version 3.24.2 (by Kitware)
  • Qt Creator 9.0.0 based on Qt 6.4.1
  • Проект на C++, собирается c со строкой в симейклисте set(CMAKE_CXX_FLAGS «-std=c++17 -O0 -Wall -fmessage-length=0»)

Проект полностью очищен, cmake с нуля, сборка с нуля. Во время отладки среда тычет не в те строки в тексте, в стэке вызовов одно, а курсор (номер строки в том же стэке вызовов) указывает в другое. Из под самостоятельного запуска gdb пишет, что «Missing separate debuginfos …». За день до этого всё работало отлично, сегодня включил машину и такое. Не знаю как исправить эти отладочные символы, куда смотреть.

 , ,

normann
()

Линковка при сборке, линковка при запуске. Всё сложно.

Форум — Development

Есть библиотека, которая может собираться в двух исполнениях, статической или динамической. Назову её условно libseveral. libseveral.so установлена в операционной системе. Есть разделяемые библиотеки (.so), установленные в операционной системе, они ссылаются прямо или косвенно на libseveral.so в динамическом исполнении и тянут её в память за собой, назову их - libanother1.so, libanother2.so и libanother3.so. Есть мой проект разделяемой биллиотеки (назову libroot.so), которая: а) линкует libseveral.a в статическом исполнении, б) линкует системные libanother1.so, libanother2.so и libanother3.so. В результате, libseveral.a в бинарник не попадает, а тот оказывается слинкован с libseveral.so через остальные библиотеки. Я приблизительно понимаю почему, но не уверен.

libseveral.a
libseveral.so

libanother1 -> libseveral.so
libanother2 -> libanother3.so
libanother3 -> libseveral.so

libroot.so -> libseveral.a
libroot.so -> libanother1.so
libroot.so -> libanother2.so

Вопрос. Существует ли способ сделать так, что бы к libroot.so было прилинковано всё содержимое libseveral.a, а остальные библиотеки, libanother… которые линкуются в рантайме не загружали за собой libseveral.so, а вызывали вместо этого libseveral.a, слинкованный в libroot.so? Менять библиотеки, лежащие в операционной системе нельзя, так же как и устанавливать в систему ничего, кроме libroot.so - требование. Мне необходимо, что бы всё прилинкованное к libroot.so вызывало исключительно libseveral.a, т.к. libseveral.a это мой форк. Как-то так.

 , ,

normann
()

Предекларация функции в анонимном пространстве имён C++

Форум — Development

Доброго времени, коллеги.

namespace abc
{
	void f1(void);
}

void abc::f1(void)
{
	wprintf(L"abc::f1()\n");
}

namespace
{
	void f2(void);
}
Видим, что abc::f1() реализована вне тела пространства имён abc, с предварительным объявлением в теле пространства.

Как сделать то же самое для f2() так же вне границ пространства имён?

 ,

normann
()

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