LINUX.ORG.RU

Сообщения question4

 

Итераторы в lxml

Есть сохранённые файлы HTML, в которых много ненужного: джаваскрипты, стили, SVG… Пытаюсь удалить.

Я попробовал так:

import lxml.html
h = lxml.html.parse('page001.html')
root = h.getroot()
for e in root.iter():
    if type(e.tag) != str:
        e.drop_tree()
    if e.tag in ('link', 'script', 'svg', 'footer', 'style') and ... e.attrib ... :
        e.drop_tree()

И затем посмотрел результат print(lxml.etree.tostring(root, pretty_print=True).decode())

В результате удалились линки и скрипты из секции head (например, root[0][12]), но не удалился SVG из глубин body (root[1][0][1][3][0][0][0][2][0][0][0]).

Немного покопавшись, понял: нельзя удалять элементы массива, по которому идёт for от начала к концу (в обратном направлении — можно). Но тогда почему это работало для первых элементов?

 , ,

question4
()

Сжатие сжатых файлов

Лет 20 назад архиватор StuffIt внедрил интересный метод упаковки в формат .sitx: для хорошо известных форматов, использующих сжатие, например, JPEG, исходный файл перед упаковкой разжимался, затем архиватор сжимал его методом PPMd. При распаковке те же данные распаковывались из PPMd, и затем упаковывались в JPEG методом Хаффмана. За счёт большей эффективности PPMd, обещали сжатие JPEG-ов на треть. (Википедия пишет, что на четверть.) Вроде бы то же делалось для PNG, GIF, ZIP, TIFF, PDF, адоубовских форматов… Но под Линукс для этого формата не было даже распаковщика.

Идея интересная. Кто-нибудь пытался реализовать что-то подобное в свободных архиваторах?

Сейчас наткнулся на информацию, что владельцы StuffIt прекратили его развитие и поддержку в 2019-м. Сайт https://stuffit.com/ пока жив, но сертификат истёк 1 октября.

 ,

question4
()

Можете опознать программу?

https://upload.wikimedia.org/wikipedia/commons/e/e1/Mass_Spectrometer_Analysis_Results_(4687970545).jpg — кто-нибудь может опознать программу на мониторе?

Когда-то давно в Дуолинго наткнулся на фото экрана монитора с масс-хроматограммой в качестве иллюстрации «анализа». Сделал скриншот, чтобы поискать, но нашлись более срочные проблемы. Сейчас наткнулся на него, поискал, нашёл в Википедии: https://es.wikipedia.org/wiki/Archivo:Mass_Spectrometer_Analysis_Results_(4687970545).jpg Фотографией иллюстрировали анализ проб воды после аварии Deepwater Horizon (точнее, подготовку эталонов для сравнения). LC/MS или, скорее, GC/MS.

Кто-нибудь может опознать использованную программу?

P.S. Расширения файлов и директорий похожи на Agilent, но Agilent ChemStation, с которыми я имел дело, выглядели иначе.

 , ,

question4
()

diff zip-архивов

  1. Существует ли готовая программа, способная сравнивать архивы, как diff сравнивает директории? То есть выводить список различий текстовых файлов в тех же форматах, понятных patch. Всё, что я нашёл — предельно примитивные zipcmp и folderdiff, которые только выводят имена различающихся файлов. И советы, как сделать подобный скрипт. Выглядит несложно.

  2. Форматы документов ODT и DOCX — набор файлов XML в архиве ZIP. Подобный diff мог бы помочь сравнивать офисные документы. Почему его до сих пор не сделали? Содержимое XML при многократных сохранениях слишком сильно преобразуется? Много случайного мусора? Элементы тасуются в произвольном порядке?

  3. А что если обобщить? Пусть архив будет форматом-контейнером (OLE, RIFF, PNG, что ещё можете предложить…), а сравниваемое содержимое — любыми данными, для которых текстовый diff или побайтное сравнение несёт какую-то человекочитаемую информацию, и патч можно легко наложить/откатить. Так кто-нибудь делал?

Никакую практическую задачу не решаю. Просто в очередной раз столкнулся со сравнением бинарных документов, стало любопытно.

ОТВЕТ: Судя по скриншотам, это умеет diffoscope: https://diffoscope.org https://try.diffoscope.org
Хотя в комментариях пишут, что его подход может не быть оптимальным для сравнения XML. Попробую как-нибудь.

 , ,

question4
()

Как быстрее?

Не спится. Мучает вопрос. Мешают ли флешки друг другу?

Есть несколько флешек. Разного размера, с разными характеристиками. Нужно сохранить на них много файлов. С машины у которой все гнёзда USB одинаковые — 2.0 для определённости. Как быстрее: воткнуть самую быструю и сохранять на неё, или воткнуть все имеющиеся флешки, разбить файлы на группы, и одновременно сохранять на все флешки? (Разумеется, во 2-м случае возможна переброска из группы в группу, если какая-то флешка заметно быстрее и управится раньше.) Считаем, что скорость жёсткого диска больше суммарной скорости флешек.

Ответ: Коллективный разум считает, что быстрее распараллелить.

 ,

question4
()

Копирование HTML с картинками

Делаю на веб-странице (для определённости — в firefox) Ctrl-A, переключаюсь в LibreOffice Writer, кликаю средней кнопкой мыши — вставляется красиво отформатированный текст и картинки. Можно даже сохранить как HTML с картинками.

А как сделать то же автоматически, не задействуя LibreOffice? В идеале — скриптом, который автоматически определяет, что буфер изменился, и тут же сохраняет содержимое.

Пробовал читать буфер скриптами на питоне средствами Qt6 и GTK4. Большая часть нагугленных скриптов устарели и или не работают, или крэшат интерпретатор. Методом тыка сумел найти отображение в виде HTML или текста для Qt6. Но не primary selection, а clipboard.

from PyQt6.QtWidgets import QAbstractItemView, QApplication, QTableView
from PyQt6.QtGui import QStandardItem, QStandardItemModel
app = QApplication([])
c = app.clipboard()

Далее c.mimeData().formats() выдаёт тот же список, что и xclip -t TARGETS, HTML можно получить c.mimeData().html(), текст — c.mimeData().text() или c.text(). Как я понял из хэлпа, c.Mode(1) должно переключить на selection вместо clipboard, но это не происходит.

Как в PyQt6 обращаться к primary selection?
Как в PyQt6 детектировать изменение primary selection?
Как LibreOffice извлекает картинки из скопированного с веб-страницы? — Ответ: похоже, парсит HTML и скачивает содержимое <img ...>. В таком случае, удалю простыни исследования xclip. чтобы не отвлекали.

 , , ,

question4
()

Вставить скопированный HTML в редактор

Выделяю в браузере на веб-странице текст, копирую. Переключаюсь в Kate/mcedit/VIm, вставляю — получаю текст без форматирования. Вся раскраска текста, все гиперссылки потерялись. (Обычно так и нужно.) Переключаюсь в Офис, вставляю — форматирование вставилось. Но извлекать гиперссылки из этого текста — та ещё задача.

А можно в консоли набрать xclip -out -selection clipboard -target text/html > page.htm, открыть файл в Kate/mcedit/VIm и получить искомые гиперссылки.

А сразу вставить HTML в Kate как-нибудь можно?

Про пункты меню «Исходный текст страницы» и «Исходный текст выделенного фрагмента» знаю, но они не всегда работают с динамическими страницами. Про инспектора DOM знаю, но он менее удобен, чем просто выделить мышью на странице.

Можно ли задавать mime-тип вставляемого в Kate и vim?

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

 , , ,

question4
()

Тестовый вебсайт для воспроизведения проблем с curl-ом

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

Вопрос: какой самый простой способ поднять локальный HTTP-сервер с урезанной до предела скоростью скачивания (GET) и поддержкой докачки? Например, умеет ли так идущий в комплекте с Python http.server? Или есть реальный сайт, который удовлетворяет этим требованиям?

P.S. Poorconn не поддерживает докачку.

 

question4
()

jpegtran -crop теряет край

Есть 2 файла JPEG. 800х600 и 800х494. Я хочу объединить их по вертикали в один без потери качества. Горизонтальные серые полосы не мешают.

В сети рекомендуют увеличить один файл до суммарного размера -crop-ом и вставить туда другой -drop-ом. Но когда я делаю 1-му файлу jpegtran -crop 800x1104+0+0 -outfile tmp1.jpg 1.jpg, в нём изображение обрезается на высоте 592. -perfectничего не даёт, -verbose и -report ничего интересного не показывают. Как я понимаю, изображение разбито на квадраты 16x16, и нижний ряд квадратов (заполненных наполовину) отбрасывается. Как его сохранить?

 , jpegtran

question4
()

В Python 3.13 перестают работать стрелки

Регулярно сталкиваюсь с проблемой в интерактивном режиме в новом Питоне. После каких-то действий перестают работать кнопки курсора: стрелки, Home, End. И серые, и на цифровой клавиатуре. Ctrl-стрелки иногда работают, иногда тоже перестают. Ввод с клавиатуры обычно работает, Backspace работает. После нажатия на Enter или Ctrl-C стрелки начинают работать. Можно нажать F2 и q, тогда заработает и в текущей строке.

Когда это начинается, сказать затрудняюсь, но смог устойчиво воспроизводить следующим образом:
запустить в консоли Midnight Commander,
запустить в нём python3.13,
набрать что-нибудь в интерактивном режиме,
открыть панели MC по Ctrl-O, затем закрыть Ctrl-O,
после этого стрелки игнорируются.

В bash такой проблемы с MC не возникает.

В чём дело? Исправить это можно? Или как сбросить помимо F2, q?

Gentoo, KDE6, X.org-21.1.16, Konsole-24.12.3, Python-3.13.3, MC-4.8.33

 , ,

question4
()

Учебная задача: оптимизировать работу с очередью

Учебная задача. Симулятор обработки сетевых пакетов. Дан буфер размера size и набор Npac пар чисел Ti-Di. В моменты Ti приходят пакеты, на обработку которых нужно Di времени. Di может быть 0. Несколько Ti подряд могут совпадать, но они гарантированно не убывают. Пришедший пакет добавляется в хвост буфера. Обрабатывается только пакет в голове, на 0-м месте, остальные ждут. Если подряд идут несколько пакетов длительностью 0, они обрабатываются в одном такте, в том же, когда первый из них дошёл до головы, и этот же такт засчитывается и в обработку следующего за ними ненулевого пакета. Когда буфер заполнен, приходящие пакеты сбрасываются.

Требуется выдать массив времён, когда началась обработка каждого пакета. Или «-1», если пакет был сброшен.

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

Попробовал ускорить, двигать время не по 1 такту, а определять дельты до прихода ближайшего пакета или окончания обработки головы очереди, что раньше. Выигрыш получился несущественный. Оптимизации с заменой list на collections.deque и хранением длин массивов в отдельных переменных дали прирост 10-20%

Почитал советы — говорят, надо избавиться от цикла со счётчиком времени и работать с событиями. Какая принципиальная разница с дельтами? Попробовал, запутался в алгоритме, постоянно что-то теряется. Получилось гораздо быстрее, но возможно, потому, что неправильно.

Вариант с дельтами:

import time, sys, collections
ar = list(map(int, sys.stdin.read().split()))
size, npac = ar[0:2]
packets = [ar[lcv*2+2:lcv*2+4] for lcv in range(npac)]
packets = [{'arrival':arrival, 'duration':duration, 'start':-1, 'time':duration} for arrival, duration in packets]
maxtime = 1 + sum(p['arrival'] + p['duration'] for p in packets)
queue = collections.deque()
curp = 0 # номер первого необработанного пакета
t = 0
nextarrival = 0
nextqueue = 0
delta = 1

while t < maxtime:
    # обработать очередь
    if queue:
        queue[0]['time'] -= 1
        if queue[0]['time'] <= 0:
            queue.popleft()
            while queue and queue[0]['time'] <= 0:
                queue[0]['start'] = t
                queue.popleft()
            if queue:
                queue[0]['start'] = t
                nextqueue = queue[0]['time']
    # проверить прибытие пакетов
    for i in range(curp, npac):
        p = packets[i]
        if t < p['arrival']:
            nextarrival = p['arrival']
            break
        curp = i+1
        if t == p['arrival']:
            if not queue:
                    p['start'] = t
                    if p['duration'] > 0:
                        queue.append(p)
            elif len(queue) < size:
                    queue.append(p)
            else:
                p['start'] = -1
    # выход, всё закончилось
    if len(queue) < 2 and curp >= npac:
        break
    # время следующего события
    tlast = t
    t = max(min(nextarrival, nextqueue), t+1)
    delta = t - tlast

for p in packets:
    print(p['start'])

Что и как здесь можно ускорить?

Или как делать иначе? Цикл по массиву пакетов, где в ожидании очередного прибытия прокручивается очередь, у меня получился слишком запутанным. Другие варианты есть?

Ответ: Свёл к следующему:

import sys, collections
ar = list(map(int, sys.stdin.read().split()))
size, npac = ar[0:2]
packets = [ar[lcv*2+2:lcv*2+4] for lcv in range(npac)]
queue = collections.deque()
log = [-1 for _ in range(npac)]
t0 = 0 # tc = 0
for pn in range(npac):
    cparrival, cpduration = packets[pn]
    # tc <= cparrival
    while len(queue) > 0 and t0 + queue[0][0] <= cparrival :
        d0, pn0 = queue.popleft()
        t0 = t0 + d0 #tc
        if queue: 
            log[queue[0][1]] = t0
            #t0 = tc
    #tc = cparrival
    if len(queue) < size:
        queue.append([cpduration, pn])
        if len(queue) == 1:
            log[pn] = cparrival
            t0 = cparrival
#tc = t0
while queue:
    d0, pn0 = queue.popleft()
print(log)

Вычислительная часть работает вдвое быстрее.

 

question4
()

Выбор нового роутера и ремонт старого

После грозы с миганием света стал глючить интернет. ping 8.8.8.8 стал терять 20-40% пакетов, ping по имени домена вдобавок стал отказываться ресолвить домен (примерно 1 раз из 3). На звонки к провайдеру трое суток отвечал робот «в вашем районе ведутся ремонтные работы». Подключился через сотовый телефон. По окончании работ лучше не стало. По совету техподдержки перезагружал роутер и компьютер и шатал штекера в разъёмах — не помогло. Попробовал подключить кабель напрямую — те же потери 30%, и опять «в вашем районе ведутся ремонтные работы» на двое суток.

Когда сотрудник провайдера наконец до меня добрался, он смог меня убедить попробовать напрямую ещё раз. Почему-то в этот раз не заработало без подмены MAC-адреса, зато с подменой связь стала отличной. То есть, виноват роутер. По его мнению — помирает от старости (MikroTik hAP ac lite, куплен в 2019).

Собственно вопросы:

  1. Что сейчас стоит брать в Подмосковье? Требуются 3 выхода Ethernet и WiFi. Искать устройства с «OpenWRT» в описании?

  2. Что могло случиться со старым? Как определить, ремонтопригоден ли он, и что можно сделать? Если это надолго, возиться не буду, просто интересно.

 , ,

question4
()

Не извлекается символ из строки при генерации списка

Требовалось произвести кое-какие преобразования строк в списке. Обнаружил, что при использовании list comprehension не могу взять i-й символ из строки, пишет «string index out of range». Вне генератора выражение работает нормально.

>>> ls1[0]
"#mkdir '1236'"
>>> line = ls1[0]
>>> line[0]
'#'
>>> [line[0] for line in ls1]
Traceback (most recent call last):
  File "<python-input-49>", line 1, in <module>
    [line[0] for line in ls1]
     ~~~~^^^
IndexError: string index out of range

Для других индексов — то же. В итоге сделал через регулярные выражения, но в чём проблема?
Python 3.13.3

P.S. Гуглить не получается, интернет в доме почти не работает, все ремонтники в отпуске. ЛОР кое-как грузится, с более навороченными сайтами — швах.

Ответ: Пустая строка в конце после str.split(‘\n’)

 

question4
()

Игнорировать разрывы строк при сравнении текстовых файлов

Есть 9-мегабайтный текстовый файл. Я в него добавил в разные места несколько килобайт, затем неправильно применил в FAR-е скрипт EditWrap.lua и по ошибке сохранил. Бэкап, сделанный до всех правок, есть.

Нужно сравнить этот файл с оригиналом, игнорируя разрывы строк, и перенести отличия из нового в старый. То есть при сравнении должны считаться одинаковыми фрагменты:

a bc d

и

a b
c d

Если при этом фрагменты окажутся одинаковыми с a b c d или abcd — значения не имеет, не проблема.

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

wdiff и dwdiff работают на уровне слов, поэтому разрывы строк, разрывающие слова, они игнорировать не смогут. Так?

Что ещё есть?

UPD: Сравнил их скриптом на Питоне в полуручном режиме, но вопрос о более универсальном решении остался.

 ,

question4
()

Кто-нибудь следит, что с Флибустой?

Знаю, что предыдущий владелец в прошлом году умер, но сайт кому-то передал, и сайт продолжил работу. И всё стихло.

Последние несколько дней сайт не открывается даже через адрес *.onion. Кто-нибудь что-нибудь знает, что там?

 

question4
()

USB-tethering работает на старом телефоне, но не работает на новом

Сабж. Куда копать?

Gentoo, AMD64, ядро 5.15.32, OpenRC.

Со старым телефоном:

$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 018: ID 17ef:7ad6 Lenovo Android
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 002: ID 0665:5161 Cypress Semiconductor USB to Serial
...
Bus 008 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 009 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

С новым то же, но

Bus 001 Device 010: ID 12d1:108a Huawei Technologies Co., Ltd. MNA-LX9

вместо Lenovo Android.

dmesg для старого:

[95942.121950] usb 1-4: new high-speed USB device number 18 using ehci-pci
[95942.251558] usb 1-4: New USB device found, idVendor=17ef, idProduct=7ad6, bcdDevice= 3.18
[95942.251570] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[95942.251576] usb 1-4: Product: Android
[95942.251580] usb 1-4: Manufacturer: Android
[95942.251584] usb 1-4: SerialNumber: 29f25081
[95942.253897] rndis_host 1-4:1.0 usb0: register 'rndis_host' at usb-0000:00:12.2-4, RNDIS device, 06:7d:55:2f:03:af
[95942.289292] rndis_host 1-4:1.0 enp0s18f2u4: renamed from usb0

для нового:

[48479.493890] usb 1-4: new high-speed USB device number 6 using ehci-pci
[48479.624851] usb 1-4: New USB device found, idVendor=12d1, idProduct=108a, bcdDevice= 5.10
[48479.624863] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[48479.624868] usb 1-4: Product: MNA-LX9
[48479.624872] usb 1-4: Manufacturer: HUAWEI
[48479.624875] usb 1-4: SerialNumber: JUP0224109002027
[48479.676635] usbcore: registered new interface driver cdc_ether
[48479.679944] rndis_host 1-4:1.0 usb0: register 'rndis_host' at usb-0000:00:12.2-4, RNDIS device, 66:8d:69:17:13:74
[48479.680007] usbcore: registered new interface driver rndis_host
[48479.711297] rndis_host 1-4:1.0 enp0s18f2u4: renamed from usb0
[48877.717711] usb 1-4: USB disconnect, device number 6
[48877.717794] rndis_host 1-4:1.0 enp0s18f2u4: unregister 'rndis_host' usb-0000:00:12.2-4, RNDIS device

(дополнение: последние 2 строки могут не появиться, но модем всё равно не работает)

Автоматическое подключение USB-модема не настроено. Я каждый раз беру имя из dmesg и создаю соответствующий линк на /etc/init.d/net.lo, в данном случае — /etc/init.d/net.enp0s18f2u4 и запускаю net.enp0s18f2u4 start. Для старого этого хватает, для нового — ничего не ресолвится и не пингуется.

При запуске net.enp0s18f2u4 с новым пишет:

# /etc/init.d/net.enp0s18f2u4 -v start
net.enp0s18f2u4           |net.enp0s18f2u4           | * Executing: /usr/libexec/rc/sh/openrc-run.sh /usr/libexec/rc/sh/openrc-run.sh /etc/init.d/net.enp0s18f2u4 start
net.enp0s18f2u4           | * Bringing up interface enp0s18f2u4
net.enp0s18f2u4           | *   Skipping module adsl due to missing program: adsl-start pppoe-start
net.enp0s18f2u4           | *   Skipping module br2684ctl due to missing program: br2684ctl
net.enp0s18f2u4           | *   Skipping module clip due to missing program: atmsigd
net.enp0s18f2u4           | *   Skipping module netplugd due to missing program: netplugd
net.enp0s18f2u4           | *   Skipping module ifplugd due to missing program: ifplugd
net.enp0s18f2u4           | *   Skipping module ipppd due to missing program: ipppd
net.enp0s18f2u4           | *   Skipping module iwconfig due to missing program: iwconfig
net.enp0s18f2u4           | *   Skipping module iwd due to missing program: /usr/libexec/iwd
net.enp0s18f2u4           | *   Skipping module iw due to missing program: iw
net.enp0s18f2u4           | *   Skipping module firewalld due to missing program: firewall-cmd
net.enp0s18f2u4           | *   Skipping module udhcpc due to missing program: busybox
net.enp0s18f2u4           | *   Skipping module dhclient due to missing program: dhclient
net.enp0s18f2u4           | *   Skipping module dhclientv6 due to missing program: dhclient
net.enp0s18f2u4           | *   Skipping module wireguard due to missing program: wg
net.enp0s18f2u4           | *   Loaded modules: apipa arping bonding l2tp tuntap bridge ccwgroup ethtool dummy hsr macvlan macchanger macnet qmi wpa_supplicant ssidnet iproute2 pppd system vlan dhcpcd ip6rd ip6to4 veth
net.enp0s18f2u4           | *   ip link set dev enp0s18f2u4 up
net.enp0s18f2u4           | *   Configuring enp0s18f2u4 for MAC address 9A:AF:12:F5:CB:8E ...                                                                         [ ok ]
net.enp0s18f2u4           | *   config_enp0s18f2u4 not specified; defaulting to DHCP
net.enp0s18f2u4           | *   dhcp ...
net.enp0s18f2u4           | *     Running dhcpcd ...
net.enp0s18f2u4           |dhcpcd-10.2.2 starting
net.enp0s18f2u4           |DUID 00:01:00:01:1a:ee:99:27:f4:6d:04:45:83:c4
net.enp0s18f2u4           |enp0s18f2u4: IAID 12:f5:cb:8e
net.enp0s18f2u4           |enp0s18f2u4: adding address fe80::387c:bdb6:1a53:efe9
net.enp0s18f2u4           |enp0s18f2u4: soliciting a DHCP lease
net.enp0s18f2u4           |enp0s18f2u4: soliciting an IPv6 router
net.enp0s18f2u4           |enp0s18f2u4: probing for an IPv4LL address
net.enp0s18f2u4           |enp0s18f2u4: using IPv4LL address 169.254.201.93
net.enp0s18f2u4           |enp0s18f2u4: adding route to 169.254.0.0/16
net.enp0s18f2u4           |enp0s18f2u4: adding default route                                                                                                          [ ok ]
net.enp0s18f2u4           | *     received address 169.254.201.93/16                                                                                                  [ ok ]
net.enp0s18f2u4           | *   ip -4 route flush table cache dev enp0s18f2u4
net.enp0s18f2u4           | *   ip -6 route flush table cache dev enp0s18f2u4

со старым:

# /etc/init.d/net.enp0s18f2u4 -v start
net.enp0s18f2u4           |net.enp0s18f2u4           | * Executing: /usr/libexec/rc/sh/openrc-run.sh /usr/libexec/rc/sh/openrc-run.sh /etc/init.d/net.enp0s18f2u4 start
net.enp0s18f2u4           | * Bringing up interface enp0s18f2u4
net.enp0s18f2u4           | *   Skipping module adsl due to missing program: adsl-start pppoe-start
net.enp0s18f2u4           | *   Skipping module br2684ctl due to missing program: br2684ctl
net.enp0s18f2u4           | *   Skipping module clip due to missing program: atmsigd
net.enp0s18f2u4           | *   Skipping module netplugd due to missing program: netplugd
net.enp0s18f2u4           | *   Skipping module ifplugd due to missing program: ifplugd
net.enp0s18f2u4           | *   Skipping module ipppd due to missing program: ipppd
net.enp0s18f2u4           | *   Skipping module iwconfig due to missing program: iwconfig
net.enp0s18f2u4           | *   Skipping module iwd due to missing program: /usr/libexec/iwd
net.enp0s18f2u4           | *   Skipping module iw due to missing program: iw
net.enp0s18f2u4           | *   Skipping module firewalld due to missing program: firewall-cmd
net.enp0s18f2u4           | *   Skipping module udhcpc due to missing program: busybox
net.enp0s18f2u4           | *   Skipping module dhclient due to missing program: dhclient
net.enp0s18f2u4           | *   Skipping module dhclientv6 due to missing program: dhclient
net.enp0s18f2u4           | *   Skipping module wireguard due to missing program: wg
net.enp0s18f2u4           | *   Loaded modules: apipa arping bonding l2tp tuntap bridge ccwgroup ethtool dummy hsr macvlan macchanger macnet qmi wpa_supplicant ssidnet iproute2 pppd system vlan dhcpcd ip6rd ip6to4 veth
net.enp0s18f2u4           | *   ip link set dev enp0s18f2u4 up
net.enp0s18f2u4           | *   Configuring enp0s18f2u4 for MAC address 9A:AF:12:F5:CB:8E ...                                                                         [ ok ]
net.enp0s18f2u4           | *   config_enp0s18f2u4 not specified; defaulting to DHCP
net.enp0s18f2u4           | *   dhcp ...
net.enp0s18f2u4           | *     Running dhcpcd ...
net.enp0s18f2u4           |dhcpcd-10.2.2 starting
net.enp0s18f2u4           |DUID 00:01:00:01:1a:ee:99:27:f4:6d:04:45:83:c4
net.enp0s18f2u4           |enp0s18f2u4: IAID 12:f5:cb:8e
net.enp0s18f2u4           |enp0s18f2u4: soliciting an IPv6 router
net.enp0s18f2u4           |enp0s18f2u4: soliciting a DHCP lease
net.enp0s18f2u4           |enp0s18f2u4: offered 192.168.42.39 from 192.168.42.129
net.enp0s18f2u4           |enp0s18f2u4: probing address 192.168.42.39/24
net.enp0s18f2u4           |enp0s18f2u4: leased 192.168.42.39 for 3600 seconds
net.enp0s18f2u4           |enp0s18f2u4: adding route to 192.168.42.0/24
net.enp0s18f2u4           |enp0s18f2u4: adding default route via 192.168.42.129                                                                                       [ ok ]
net.enp0s18f2u4           | *     received address 192.168.42.39/24                                                                                                   [ ok ]
net.enp0s18f2u4           | *   ip -4 route flush table cache dev enp0s18f2u4
net.enp0s18f2u4           | *   ip -6 route flush table cache dev enp0s18f2u4

В старом телефоне при подключении кабеля tethering не предлагает, нужно искать в настройках. В новом настройки RNDIS спрятали ещё глубже — «только для разработчиков».

Специально для анонимного параноика, у которого власти воруют DNS: до ресолвинга имён дело не доходит. Ничего не пингуется. При подключении не задаётся гейт. На старом телефоне всё работает, поэтому твоя бредовая конструкция о саботаже неприменима.

UPD: Не связана ли причина с usb 1-4: USB disconnect, device number 6 через 400с после подключения нового телефона? Что с этим делать? Самопроизвольное отключение прекратило воспроизводиться.

 , , , ,

question4
()

Глюк? Или новый инструмент модераторов?

Мне пришло уведомление, что мой пост в теме X11Libre -- свободный и независимый форк X.Org Server удалили по 7.1. Но в режиме просмотра удалённых я не вижу, чтобы мои посты удаляли.

Глюк движка? Или модераторы теперь могут удалять посты бесследно?

 

question4
()

Знатоки ушераздирающего металла с тошнотворными текстами есть?

Есть один музыкальный фрагмент, который любят ставить в несерьёзные видеоролики. Не столь известный, как Yakety Sax, но узнаваемый. Наткнулся на него в N+1-й раз, под рукой был Шазам, который выдал несколько неожиданный результат, но я полистал дорожку вперёд и обнаружил резкую смену стиля. https://nullum1.bandcamp.com/track/--10

Вопрос: что в «Черной оспе» из «Лоботомии» авторства «Nullum» делает фрагмент с 1:20 и до конца, и откуда он изначально взялся?

P.S. Также натыкался на варианты «Чёрной оспы» длиной всего 1:20, то есть без этого фрагмента.

Oтвет: Happy Tree Friends.

P.P.S. Но всё ещё интересно, что они хотели этим сказать?

 

question4
()

Порядок переключения окон в KDE 6

По какому принципу определяется этот порядок? У меня открыто несколько окон Firefox и Kate, Переключаюсь из Kate в Firefox, открываю ещё одно окно Firefox (информацию о странице), закрываю — переключает в Kate вместо предыдущего окна. Воспроизводится нестабильно: то несколько десятков раз подряд, то прекращает. Выключение и перезагрузка не помогли.

Gentoo; пакеты KDE и Plasma версий 6.3.4 или 24.12.3. В «Window Management > Task Switcher» выбрал «Sort order» = «Recently used» и отключил все чекбоксы в «Content» и «Filter».

Как заставить всегда переключаться на предыдущее окно?

 ,

question4
()

Загрузиться со старого диска через UEFI

Диск размечен в GPT, но использовался на машине без UEFI. 2 раздела: ext4 и загрузочный GRUB2. Материнская плата в новой машине не имеет legacy-режима. UEFI shell видит на этом диске 3 раздела BLK0:, BLK1: и BLK2:. Есть ли простой способ загрузитсься с этого диска?

 ,

question4
()

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