LINUX.ORG.RU

Сообщения vel

 

Странный баг при сборке модуля ядра

Если добавить опцию "-O0" в ccflags в Makefile

ccflags-y += -g -O0 
То не собирается с руганью
ERROR: modpost: "__show_free_areas" [/usr/src/kts2/tmp/test.ko] undefined!

Если убрать "-О0" или поставить "-О2", то все замечательно собирается.

Воспроизводится на ядрах 6.1 и 6.6 и компиляторах gcc-11.4.0,gcc-13.2

__show_free_areas объявлена в linux/mm.h как extern void

Что за хрень?!

Сборка модуля без оптимизации нужна для понимания где происходит утечка памяти (kmemleak).

Update: Проблема исчезла. Непонятно что было причиной проблемы.

 ,

vel
()

intel X710-DA2 и DAC

kernel: [ 1333.630807] i40e 0000:01:00.1: Rx/Tx is disabled on this device because an unsupported SFP module type was detected.

kernel: [ 1333.641387] i40e 0000:01:00.1: Refer to the Intel(R) Ethernet Adapters and Devices User Guide for a list of supported modules.

Есть ли рецепт по подключению через DAC?

По оптике - работает.

https://github.com/bibigon812/xl710-unlocker - не помогает.

 ,

vel
()

Странности с usb wifi

Есть девайс comfast CF-953AX.

Опознаётся как MediaTek mt7921u (3574:6211)

# lsusb.py
usb6              1d6b:0003 09 1IF  [USB 3.10, 10000 Mbps,   0mA] (xhci-hcd 0000:07:00.4) hub
  6-2               2109:0813 09 1IF  [USB 3.00,  5000 Mbps,   0mA] (VIA Labs, Inc. USB3.0 Hub) hub
    6-2.4             3574:6211 00 1IF  [USB 3.20,  5000 Mbps, 160mA] (MediaTek Inc. Wireless_Device 000000000)
...
usb1              1d6b:0002 09 1IF  [USB 2.00,   480 Mbps,   0mA] (xhci-hcd 0000:02:00.0) hub
  1-8               0e8d:0608 ef 3IFs [USB 2.10,   480 Mbps, 100mA] (MediaTek Inc. Wireless_Device 000000000)

В машине якобы 2 usb-сетевушки, хотя интегрированая сетевушка - pcie

lspci

05:00.0 Network controller: MEDIATEK Corp. MT7921K (RZ608) Wi-Fi 6E 80MHz 
Kernel driver in use: mt7921e

При подключении usb-сетевушки в dmesg

[Чт фев 29 22:12:48 2024] usb 6-2.4: new SuperSpeed USB device number 27 using xhci_hcd
[Чт фев 29 22:12:48 2024] usb 6-2.4: New USB device found, idVendor=3574, idProduct=6211, bcdDevice= 1.00
[Чт фев 29 22:12:48 2024] usb 6-2.4: New USB device strings: Mfr=2, Product=3, SerialNumber=4
[Чт фев 29 22:12:48 2024] usb 6-2.4: Product: Wireless_Device
[Чт фев 29 22:12:48 2024] usb 6-2.4: Manufacturer: MediaTek Inc.
[Чт фев 29 22:12:48 2024] usb 6-2.4: SerialNumber: 000000000
[Чт фев 29 22:12:48 2024] usb 6-2.4: reset SuperSpeed USB device number 27 using xhci_hcd
[Чт фев 29 22:12:48 2024] mt7921u 6-2.4:1.0: HW/SW Version: 0x8a108a10, Build Time: 20220110230855a

[Чт фев 29 22:12:48 2024] mt7921u 6-2.4:1.0: WM Firmware Version: ____010000, Build Time: 20220110230951

Если его включаю через usb-3.0 удлинитель (1м), то при любой попытке поднять интерфей с помощью wpa_supplicant получаю

[Чт фев 29 19:50:50 2024] mt7921u 6-2:1.0: Message 000008ed (seq 5) timeout
[Чт фев 29 19:50:51 2024] mt7921u 6-2:1.0: chip reset failed
[Чт фев 29 19:50:51 2024] usb 6-2: reset SuperSpeed USB device number 7 using xhci_hcd
[Чт фев 29 19:50:51 2024] mt7921u 6-2:1.0: HW/SW Version: 0x8a108a10, Build Time: 20220110230855a

[Чт фев 29 19:50:51 2024] mt7921u 6-2:1.0: WM Firmware Version: ____010000, Build Time: 20220110230951
и нифига не работает.

Но если к этому удлинителю подключить usb-3.0 хаб и в него включить сетевушку, то всё замеччательно работает!

Правда такой фокус проходит только с одним хабом "Orico W9PH4 Black" (из 3-х доступных). Этот хаб интересен тем, что у него можно отключать порт и программно (uhubctl) и аппаратно (кнопка рядом с каждым портом).

Через usb-хаб со своим блоком питания сетевушка тоже не работает.

iperf3 показывает в одну сторону до 460 МБит/с, а в другую сторону (-R) до 630 Мбит/с. Результат достаточно стабильный.

Другое интересное наблюдение - такой же эффект (работоспособность) получается если сетевушку включить через usb-тестер UNI-T UT658DUAL

В ленововском ноуте (V130-15IKB) картинка абсолютно такая же (только там нет удлинителя). Включаем в порт - не работает. Включам через хаб - все работает.

iperf3 показывает в одну сторону до 570 МБит/с, а в другую сторону (-R) до 630 Мбит/с. Результат достаточно стабильный.

Может кто знает, что это за эффект?

 ,

vel
()

git заменить подкаталог

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

Как это сделать чтобы при очередном merge не огрести проблем?

Точнее так: хотелось бы чтобы при merge все что в этом каталоге было конфликтом.

про git submodule слышал, но пока небыло нужды использовать.

 

vel
()

nmap broadcast-dhcp-discover не работает на интерфейсе без адреса?

Nmap version 7.94

nmap -sU -p 67 nmap -e vlan0003 --script broadcast-dhcp-discover --script-args "mac=00:11:22:33:44:55, opt=1:3:6, timeout=1"

Не хочет работать если на vlan0003 нет ipv4 адреса.

nmap --iflist

vlan0003 (vlan0003) (none)/0 ethernet up 1500 54:04:A6:8A:D1:2D

Или я слишком много хочу?

Результат:

7.92 - последняя версия, где оно работает без адреса на интерфейсе.

 , ,

vel
()

xorg периодически не может погасить экран.

Есть десктоп с xorg & xfce.

Включен Display power management. Blank/Sleep/Switch off - 7/12/15 минут. xlock/xscreensaver отключены.

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

Вопрос: как получить причину просыпания?

 , ,

vel
()

php 8.1 слишком медленный curl

Столкнулся со странностью в php 8.1 (ubuntu 22.04.3 LTS)

Время выполнения запроса через curl в 10 раз дольше чем в php 7.4 (18.04.6 LTS)

$start_tm = 0;
function xhrtime() {
  global $start_tm;
  $t = hrtime(false);
  if(!$start_tm) $start_tm = $t[0] * 1000 + intval($t[1]/1000000);
  $r = $t[0] * 1000 + intval($t[1]/1000000) - $start_tm;
  echo $r,"\n";
}

$server_url = 'https://local.server.ru';
xhrtime();
for($i=0; $i < 10; $i++) {
  $ch = curl_init($server_url.'/index.html');
  curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-type: text/html']);
  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, isset($argv[1]) ? true:false);
  curl_setopt($ch, CURLOPT_TIMEOUT , 1);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT , 1);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER , true);
  $ret = curl_exec($ch);
  $code =  curl_getinfo($ch,CURLINFO_HTTP_CODE);
  curl_close($ch);
  echo "result $code length ",strlen($ret),"\n";
}
xhrtime();

на 7.4 без CURLOPT_SSL_VERIFYPEER 110-200мс

на 7.4 с CURLOPT_SSL_VERIFYPEER 230-300мс

на 8.1 без CURLOPT_SSL_VERIFYPEER 350-360мс

на 8.1 с CURLOPT_SSL_VERIFYPEER 3120-3145мс

Вопрос - как с этим бороться?

Понизить версию php нельзя.

Менять версию php на отличную от дистрибутива тоже не очень хочется.

strace показал огромную разницу в скорости чтения файла «/etc/ssl/certs/ca-certificates.crt». В 8.1 он читается 200 мс.

Сама операция чтения (read()) выполняется примерно за одинаковое время, а вот между вызовами read() время отличается в 10 раз.

8.1

     0.000262 openat(AT_FDCWD, "/etc/ssl/certs/ca-certificates.crt", O_RDONLY) = 7 <0.000039>
     0.000120 newfstatat(7, "", {st_mode=S_IFREG|0644, st_size=208567, ...}, AT_EMPTY_PATH) = 0 <0.000027>
     0.000100 read(7, "-----BEGIN CERTIFICATE-----\nMIIH"..., 4096) = 4096 <0.000028>
     0.001503 read(7, "8B1\nRXxlDPiyN8+sD8+Nb/kZ94/sHvJw"..., 4096) = 4096 <0.000031>
     0.006284 read(7, "BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC"..., 4096) = 4096 <0.000047>
     0.006165 read(7, "oZIhvcNAQEMBQAwQTELMAkGA1UE\nBhMC"..., 4096) = 4096 <0.000046>
     0.006119 read(7, "DCCAgoCggIBAK2Wny2cSkxK\ngXlRmeyK"..., 4096) = 4096 <0.000047>
     0.006043 read(7, "aAjMaZ7snkGeRDImeuKHCnE96+RapNLb"..., 4096) = 4096 <0.000046>
     0.006165 read(7, "r1QGbNgGE41b/+EmGVnAJLqBcXmQRFBo"..., 4096) = 4096 <0.000050>
     0.004232 read(7, "TYltxhh5EF5EQIM8HauQhl1K6yNg3ruj"..., 4096) = 4096 <0.000050>

7.4

     0.000097 openat(AT_FDCWD, "/etc/ssl/certs/ca-certificates.crt", O_RDONLY) = 6 <0.000039>
     0.000110 fstat(6, {st_mode=S_IFREG|0644, st_size=208567, ...}) = 0 <0.000029>
     0.000094 read(6, "-----BEGIN CERTIFICATE-----\nMIIH"..., 4096) = 4096 <0.000031>
     0.000312 read(6, "8B1\nRXxlDPiyN8+sD8+Nb/kZ94/sHvJw"..., 4096) = 4096 <0.000032>
     0.000455 read(6, "FoXDTMwMTIzMTE0MDgyNFowRDEL\nMAkG"..., 4096) = 4096 <0.000032>
     0.000528 read(6, "jgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcm"..., 4096) = 4096 <0.000032>
     0.000430 read(6, "LBQAwPDEeMBwGA1UE\nAwwVQXRvcyBUcn"..., 4096) = 4096 <0.000032>
     0.000327 read(6, "jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYD"..., 4096) = 4096 <0.000031>
     0.000327 read(6, "BDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbc"..., 4096) = 4096 <0.000033>
     0.000422 read(6, "hVECe5uUFoC2EyP+YbNDrihqECB63aCP"..., 4096) = 4096 <0.000031>

длина файла /etc/ssl/certs/ca-certificates.crt совпадает на обоих системах.

 php curl

vel
()

проверка raid1

Вопрос: Можно ли как-то объяснить ubuntu 20.04, что не надо запускать не проверку все рейды сразу?

Настройка этого события выглядит так:

[Timer]
OnCalendar=Sun *-*-1..7 1:00:00
RandomizedDelaySec=24h
Интересно, кто автор этого идиотизма RandomizedDelaySec=24h ?

IMHO Запуск проверки всего с середине дня - плохая идея.

 , , , ,

vel
()

haproxy и nginx вместе на одном хосте.

Сколько по производительности стоит такая конструкция:

https haproxy --> http nginx (127.0.0.1:81) ?

Огород городили для того, чтобы разрулить запросы к turn-серверу на 443 порту(?)

    <!--  Also, in 2.5, we previously defined turn:$HOST:443?transport=tcp (not 'turns')
         to workaround a bug in Safari's handling of Let's Encrypt. This bug is now fixed
         https://bugs.webkit.org/show_bug.cgi?id=219274, so we omit the 'turn' protocol over
         port 443.  -->

Баг в сафари 2020 года отмечен как «RESOLVED FIXED»

Может выкинуть этот костыль?

 ,

vel
()

тестирование мониторинга: читать диск с заданной скоростью

Хочу убедиться в адекватности мониторинга активности дисков. Читаем /proc/diskstats и скармливаем в nagios/pnp4nagios.

Чем читать диск с заданной скоростью (заведомо ниже максимальной скорости).

Есть готовое простое решение?

 ,

vel
()

apache htaccess в nginx

php-шный проект.

Для апача есть вот такой .htaccess

RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

Есть такой код

if (isset($_SERVER['HTTP_AUTHORIZATION'])) {

Будет ли аналогом строка для nginx

fastcgi_param HTTP_AUTHORIZATION $http_authorization
или это не нужно?

 , ,

vel
()

Firefox и userChrome.css

После обновления с FF-102esr до 115esr резко изменились размеры шрифтов интерфейса.

Нашел, что это можно подправить через userChrome.css и большую часть подправил.

Но осталось несколько мелких проблем:

размер Title (при наведении курсора на элемент с Title) и других диалогов (типа добавить закладку)

Как называются селекторы для этих элементов?

 ,

vel
()

Keepass2Android и файлы

Есть такая возможность - добавить файл к записи.

Есть маленький файл с 10 строками текста (коды восстановления). Его можно загрузить в запись, но при попытке посмотреть он показывает пустой экран.

Вопрос: какие форматы поддерживает встроенный просматриватель?

PS Версия 1.09e-r7

 

vel
()

Странность при обновлении thunderbird

В какой-то момент после любого обновления thunderbird создает новый профиль.

Как от этого избавится?

Используется esr ветка.

Профиль достаточно старый. Самые старые файлы в профиле 2011 года.

 ,

vel
()

nvme вешает систему при загрузке модуля amdgpu

Есть Gigabyte B550I AORUS PRO AX с Ryzen 7 5700G. На борту платы есть 2 nvme слота и в одном из них есть nvme ssd.

Второй nvme слот расположен под первым и если туда поставить диск, то он не охлаждается.

В пустой слот PCI-E(x16) поставлена noname плата pci-e(x4) -> nvme

Биос видит новый nvme ssd и от настройки PCIe bifurcation (auto/2*8X/1*4X + 1*8X) никак не зависит.

Система (ядро 6.1) не загружается с nvme (черный экран) и не реагирует на magic-rq.

Система (ядро 5.10) загружается с sata-ssd и виснет после сообщения

«switching to amdgpudrmfb from efi vga»

видимо из-за отсутствия фирмвари (amdgpu/picasso_ta.bin), и при этом magic-rq работает.

Я смог загрузиться ядро 5.10 с nomodeset с sata-nvme. Дополнительный nvme виден.

Куда смотреть? Есть какие-то конструктивные идеи?

 , , ,

vel
()

Резолвинг доменов неподдерживающие edns

isc bind 9.16 умеет при получении ошибки FormErr перезапрашивать без edns.

В 9.18 это не происходит.

Есть ли способ попросить bind выполнять запрос повторно без куков?

Да, для борьбы с этим можно явно указывать адреса серверов с опцией «send-cookie no», но это ручная работа.

 , edns,

vel
()

firefox совместимость профилей между версиями

У FF есть 2 ветки: esr и обычный.

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

Или нужно городить огород с синхронизацией закладок/паролей?

 ,

vel
()

sas raid DELL PERC H700 ошибка при старте

Есть сервер DELL R710 (2011 года) c sas raid PERC H700

В dmesg он был виден так

[    0.798580] megaraid_sas 0000:03:00.0: FW now in Ready state
[    0.798738] megaraid_sas 0000:03:00.0: firmware supports msix        : (0)
[    0.798848] megaraid_sas 0000:03:00.0: current msix/online cpus      : (1/16)
[    0.798959] megaraid_sas 0000:03:00.0: RDPQ mode     : (disabled)
[    0.843112] megaraid_sas 0000:03:00.0: controller type       : MR(512MB)
[    0.843227] megaraid_sas 0000:03:00.0: Online Controller Reset(OCR)  : Enabled
[    0.843343] megaraid_sas 0000:03:00.0: Secure JBOD support   : No
[    0.843457] megaraid_sas 0000:03:00.0: megasas_init_mfi: fw_support_ieee=67108864
[    0.843586] megaraid_sas 0000:03:00.0: INIT adapter done
[    0.843698] megaraid_sas 0000:03:00.0: Jbod map is not supported megasas_setup_jbod_map 5111
[    0.887115] megaraid_sas 0000:03:00.0: pci id                : (0x1000)/(0x0079)/(0x1028)/(0x1f17)
[    0.887231] megaraid_sas 0000:03:00.0: unevenspan support    : no
[    0.887341] megaraid_sas 0000:03:00.0: firmware crash dump   : no
[    0.887449] megaraid_sas 0000:03:00.0: jbod sync map         : no
[    0.887557] scsi host0: Avago SAS based MegaRAID driver
[    0.952780] scsi 0:2:0:0: Direct-Access     DELL     PERC H700        2.10 PQ: 0 ANSI: 5
[    0.953646] scsi 0:2:1:0: Direct-Access     DELL     PERC H700        2.10 PQ: 0 ANSI: 5
[    0.954468] scsi 0:2:2:0: Direct-Access     DELL     PERC H700        2.10 PQ: 0 ANSI: 5
[    0.955285] scsi 0:2:3:0: Direct-Access     DELL     PERC H700        2.10 PQ: 0 ANSI: 5

на данный момент при запуске сервера оно говорит

RAID Adapter
Unrecoverable Error!!!
Please check the SDRAM connection.
If problems persist contact Tech Support.

На плате с памятью (в слоте на этом контроллере) горит зелёный светодиод и проводок идет к батарейке.

Есть ли шанс, что без этой памяти оно запуститься ?

 ,

vel
()

Искусственный интеллект @#$%^&*()!

Жил был сервер dell r710. Вдруг, неожиданно, после 12 лет работы умирает raid-контроллер (типа lsi 9208). При старте сервак говорит - иди к саппорту.

Ну и хрен с ним!

Достаем из двух зеркал (которые были в одном VG) по одному диску и цепляем к машинке. На каждом диске есть раздел с типом 8E Linux LVM.

pvs не хочет их видеть :(

Первый звоночек, что что-то не так - в /proc/partitions нет для диска партиций :-/

Но мы умные! Запускаем blockdev --rereadpt ... и вуаля, в /proc/partitions есть инфа.

pvs показывает, что все есть!

vgs говорит что все есть!

lvs говорит, что все LV есть, но не активые.

vgchange говорит «а вот хрен тебе»!

dmesg на каждый LV по паре строк

[   84.016907] device-mapper: table: 253:9: linear: Device lookup failed
[   84.029914] device-mapper: ioctl: error adding target to table
Охренеть как информативно.

bc + losetup и доступ к одному LV получен.

Но вопрос «какого хрена оно не активирует LV», все равно остался.

И тут я вспомнил про полезнейшую утиль lsblk.

А она говорит: чувак, у тебя тут на этих дисках есть 3 рейда (md124-md126)! 2 вроде живых, а один странный.

Малёха охренев, я взглянул в /proc/mdstat и нашел там 3 рейда! Все 3 были «деградате».

Откуда? В dmseg нет никаких сообщений о создании этих рейдов!

В какой момент эта братская щука захапала диски в рейд ?!

Выполняем «mdadm --stop» для всех этих огрызков и vgchange радостно сообщил, что все 7 LV доступны!

Убита куча времени.

Какая падла молча создала эти рейды: pvscan/pvchange/vgscan/vgchange ?

 ,

vel
()

Как реагировать на письма не от DSN с mail from <> ?

Может что-то поменялось в стандартах за последние 10 лет? Или это криворукость админов?

Заметил, что приходят письма у которых mail from: <>. В теле письма есть вполне нормальный From: xxx <ddd@yyy>"

На сколько я помню, такая конструкция применяется для доставки служебных сообщений (от Mail Delivery Subsystem) ну и спамеры одно время этим промышляли.

RoundCoubeMail по умолчанию при отсылке оповещений о прочтении тоже использут пустой from. Лечится $config['mdn_use_from'] = true;

 

vel
()

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