Инструменты пользователя

Инструменты сайта



// Manjaro: ядро 4.16 и bluetooth мышка

После обновления и установки ядра 4.16 обнаружилась неприятная и странная вещь, проявляющаяся в том, что мышка временами подвисает.

// Totalphase Data Center на Manjaro

С недавнего времени сия софтина перестала запускаться с сетованием на следующуют проблему:

 error: unable to execute application

Что-то подсказывает, что дело в библиотеках: основные (как и само ядро в виде libruntime.so) лежат в каталоге /lib/ дистрибутива. Но что-то, судя по всему, пытается браться из системы и там оно перестало существовать, что не удивительно для быстроменяющихся дистрибутивов типа Arch, Manjaro или Solus.

// USB 3.0, USB 3.1 Gen1 и USB 3.1 Gen2

Возникает путаница иногда что где и когда. Коротко:

  1. USB 3.0 == USB 3.1 Gen1 (SuperSpeed), скорость до 5 ГБит/с. По сути - ребрендинг и переименование.
  2. USB 3.1 == USB 3.1 Gen2 (SuperSpeed+), скорость до 10 ГБит/с.

По поводу коннектора Type-C: его появление связывают с появлением USB 3.1 Gen2. Но! Этим коннектором вполне может быть осуществлено подключение в устройствах, которые поддерживают только USB 3.1 Gen1, USB 2.x или даже USB 1.x (для 1.x и 2.x используются одинаковые дифпары независимые от режима 3.x). Иными словами, наличие Type-C коннектора не говорит о поддержки USB 3.1 Gen2, особенно, когда данный разъём используется на устройстве, а не на хосте, хотя в последнем случае тоже нужно проверять внимательно спеки на материнку или лаптоп.

По поводу коннектора Type-A: провода для USB 3.1 Gen2 никак не изменились, поэтому применение коннектора Type-A вполне себе возможно на хостах. Правда в текущем виде обычно наблюдается такая картина:

  1. чёрные коннекторы - USB 2.x
  2. синие коннекторы - USB 3.1 Gen1
  3. Type-C коннекторы - USB 3.1 Gen2

Но есть платы расширения, которые использую коннектор Type-A для USB 3.1. Gen2. Т.е. снова - нужно смотреть спецификации.

Вообще, появление Type-C это очень хорошая работа над ошибками для устранения идиотских варианта Micro Type-B (Micro-B, Mini-B выполнен вполне сносно) в варианте USB 3.1 Gen1: они отличаются большими габаритами и низкой механической прочностью: usb-connector-types.jpg

Правда установка данного типа коннектора на хост… Мне не по душе. Да, решаются две проблемы:

  1. симметричность кабеля с обеих сторон: можно подключать устройство как к хосту, так и к другому устройству, если поддерживается OTG и использовать для этого один кабель,
  2. симметричность самого коннектора как такового,

но вот его прочность (хоть маркетинговый булшит вещает иначе) значительно ниже Type-A.

Моё мнение (на которое всем, ессесно, пофиг):

  1. Type-A - оставить для хоста
  2. Type-B - оставить для устройств, где необходима повышенная механическая прочность
  3. Type-C - оставить для всех остальных устройств

// Онлайн парсер для USB дескрипторов и запросов

Собственно полезно при отладке и разборе:

Запросов - подразумевается SETUP. Разбирает только стандартные запросы. Специфичные для интерфейсов, даже стандартных функций - нет.

Умеет:

  • разбор дескрипторов
  • разбор SETUP запросов
  • разбор HID дескрипторов (не проверял)

Чумовой особенностью этого парсера является:

The page uses Javascript, so it must be enabled. This page can be downloaded and used offline, because it does not depend on any external or online resources.

Так что…

// Идея для BadUSB

Если создать USB-устройство, которое реализует интерфейс пера или тачскрина с абсолютными координатами, задать для осей X и Y значения:

  • min = 0
  • max = 65535

и сделать (эмуляция) хотя бы одно перемещение, то, как минимум, Windows 8, 8.1 и 10 реагируют BSOD и перезагрузкой. Linux работает нормально.

// Переключение входов в UAC

В спеке USB Audio Class есть описание чудного компонента - «Selector Unit (SU)», который позволяет переключать несколько входов на один выход. Терминах USB спецификации: несколько Input Terminals (IT) к одному Output Terminal (OT). Сразу отмечу, что к каждому юниту может быть прикреплён строковый дескриптор, который его описывает. Если такое поведение не нужно, то ставится ноль и используется имя соответствующей USB функции (UAC в нашем случае) или устройства как такового, если дескриптор для функции тоже не задан, в общем - иерархия.

Но самый смак, как он обслуживается в разных операционных системах. Рассмотрим триаду: Windows (конкретно Win8), Linux (Ubuntu 14.04), MacOSX (TBD).

Windows

У вас 16 входов, между которыми нужно переключаться без потери стрима? Получите 16 отдельных устройств для записи с одинаковыми именами к которым система сама добавит #1, #2 и так далее, начиная со второго! Основой для имени будет выбран тип терминала (Микрофон, к примеру) и имя функции (ну или устройства)! Причём переключаться можно путём выбора дефолтного устройства для записи. Остальные устройства помечаются при этом как временно недоступные. Windows лучше знает, что показывать пользователю: вдруг производитель железки какую каку в имени написал!

UAA появилась ещё в XP, а воз почти и не тронулся. Прекрасный UI.

Linux

Стандартный контрол звука в Юнити входы не увидел. Но показал честно одно устройство. Откуда будет идти звук - гадай (привет pulseaudio!). GNOME Alsa Mixer - вообще какую-то муть вывел. А вот консольный alsamixer, правильно отобразил карту, а при выборе её - селектор для входов. При этом корректно отобразились строковые описания входов. Как обычно для Linux: UI отстрой, консоль рулит!

Возможно - это кривые настройки у убунты. Сегодня проверю на Mint. Но универсальный и самый дружественный способ один: выбрать в alsamixer.

Mac OS X

Версию уточню. Сам не любитель маков. НО! Это единственная система в которой это сделано для человеков: устройство отображается одно, к нему подписывается сколько у него есть входов и выходов и даётся возможность выбрать вход, если он переключается через Selector Unit. Блеск.

Завтра уточню по поводу имён, но, вроде как, аналогично alsamixer, отображает корректно.

Послесловие

А не будет его. Сами выводы делайте. Лучше ссылок чуток накидаю: