суббота, 26 сентября 2020 г.

Заметки по виртуалке с пробросом видюхи

Моя аппаратная конфа была на видео.



0000:00:14:0 Intel Corporation 200 Series/Z370 Chipset Family USB 3.0 xHCI Controller
Intel'овский usb контроллер без проблем пробросился. При этом на хосте остаётся Asmedia'вский usb контроллер (к которому можно подключить хаб монитора и таким образом "размножить" кол-во оставшихся портов usb на хосте.

0000:04:00:0 ASMedia Technology Inc. ASM2142 USB 3.1 Host Controller
А вот Asmedia'вский usb контроллер не пробрасывается. Как только запускаю машину, она сразу паузится. И можно только выключить её через Force OFF.

Длинный pcie и втрой длинный pcie к сожалению в одной группе. В третий длинный вставить ничего не могу, т.к. не влезает туда видюха (из-за дна корпуса).



вторник, 22 сентября 2020 г.

USB 3.0 скорость как у USB 2.0

Странный hdd от ADATA. Подключал в порт usb 3.0 на компе - вообще не распозновался. Ковырялся в настройках bios в поисках xhci handoff - такой опции не нашёл на десктопе.

Потом обнаружил, что если вставить и подождать секунд 20-30, то он распознаётся.

Провёл тест скорости записи вот такой командой

 dd if=/dev/zero of=tempfile bs=1M count=1024 conv=fdatasync,notrunc status=progress

когда диск был в usb 2.0 и в usb 3.0. Забавно, но в usb 2.0 он показал скорость чуть выше чем даже в 3.0 (37,8 MB/s против 34,4 MB/s).

Очевидно, что диск в usb3.0 работает на скорости 2.0. Так и есть, в lsusb --tree
можно увидеть, что он распознался со скоростью 480M в обоих случаях:
    |__ Port 3: Dev 8, If 0, Class=Mass Storage, Driver=usb-storage, 480M

Переключил в asmedia порт, в lsusb --tree распознался как 5000M

Это, конечно, лучше. Но скорость выросла только до 66,4 MB/s. Т.е. где-то всего в два раза, а не в 10.

вторник, 15 сентября 2020 г.

Logitech F710 не работает вибрация в игре

 В linux в oddworld new and tasty на геймпаде Logitech Wireless Gamepad F710 не работает вибрация. Пробовал по-разному: геймпад переключал в DirectInput, в Xinput. В настройках игры как отключал вибрацию и галочку XInput, так и включал. Не работало никак.

При этом на винде в этой игре на этом геймпаде вибрации тоже нет, но на Dualshock 3 (через SCP toolkit) вибрация есть! Чтобы включить вибрацию, достаточно начать медитириовать.

Подозреваю, что в игре просто захардкодили поддержку именно на xbox360 геймпад. Потому что ds3 под него мимикрирует, и он работает на винде.

Значит надо проверить на Linux через xboxdrv чтобы F710 прикинулся контроллером от бокса360. И проверить, заработает ли вибрация.

А есть ли хоть одна игра, которая бы доказывала что вибрация на F710 вообще работает? Да. Например, Hitman 2, когда геймпад находится в режиме XInput.

xboxdrv на arch linux чего-то не собирается из aur пока.
После того как разберусь с установкой xboxdrv, продолжу по этой инструкции: https://steamcommunity.com/app/221410/discussions/0/558748653738497361/

Но как вариант, можно проверить то же самое на винде. Т. е. надо найти прпограммку, которая позволяет эмулировать настоящий ге1мпад от бокса 360. Думаю, это сработает.


На Linux в режиме эмуляции бокс контроллера в Big picture (https://steamcommunity.com/app/221410/discussions/0/558748822569010381/) вибрации нет всё равно ни на ds3, ни на f710, хотя в настройках контроллера в стиме такая опция присутствует. Странно.

Что интересно, игра воспринимает в этом режими виртуальный бокс360 контроллер как реальный, и настройка раскладки недоступна (серенькая). Это значит, что когда стим биг пикча не эмулирует бокс360, игра видит что геймпад не боксовый. Ну и правильно, он и не должен быть боксовым, он же логитеч. Просто с поддержкой xinput. P.S. А в стим биг пикчер он как раз и воспринимается как xbox360, а не как логитеч. Ну почему везде такая кривота?

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

Вот здесь: https://overclockers.ru/blog/ZAMHome/show/21167/emuljacija_xboxkontrollera_dlja_gejmpadov_bez_apparatnoj_podderzhki_xinput_i_vsjo_chto_s_etim_svjazano прочитал что на unity играх метод x360ce работать не будет. И конкретно oddworld там в списке неподдерживаемых игр есть.

x360ce - это похожий вариант на xboxdrv, только для винды.

Чтобы запустить игру на русском, как на винде, надо просто в библиотеке стим пкм по игре, вкладка язык - выбрать русский.

https://youtu.be/F9waA67lDcc - тут чувак играл со стим контроллером на линуксе на nvidia. Тоже серенький пункт меню настроек раскладки геймпада (т.е. стим пад в стим биг пикча представляется игре всё также как бокс360 контроллер), глюки с непрорисовынными бегущими строками такие же. Т.е. это даже не от языка зависит - у него на английском игра. И скорее всего дело не в производителе видеокарт (т.к. думал что может это амд что намудрили).

В виндовой версии в настройках раскладки геймпада есть пункт "тип геймпада" сверху. Так вот, там работает везде вибрация, какой бы пункт не выбирал. А на линукс версии доступен только вариант Индивидуальный, и там вибрация не работает.

Если подключены два геймпада, то колдуя на одном геймпаде, вибрация на другой передаётся.

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

https://steamcommunity.com/app/314660/discussions/0/405691147603894239/ - тут написано, что F710 официально поддерживается.


https://steamcommunity.com/games/314660/announcements/detail/234522998930417128 - тут написано что XInput - чекбокс, позволяющий поддерживать официальные XINput устройства. Всё равно не очень понятно, т.к. она ни на что не влияет.

https://steamcommunity.com/app/314660/discussions/1/2950377478181689884/ - создал тему

А будет ли работать вибрация на linux ести ds3 через xboxdrv сделать mimick 360?

понедельник, 27 апреля 2020 г.

Заметки по FreeSync мониторам для Linux

Чтобы включить freesync, монитор должен быть подключен либо к amd карте (интегрированной или встроенной, но поддерживающей этот режим), либо к nvidia серии 10+. Intel пока не поддерживает Freesync.

Свежее сообщение об intel: https://www.dell.com/community/XPS-Desktops/FreeSync-G-Sync-monitors-compatible-with-Intel-UHD-630-video/td-p/7486449 - февраль 2020
https://www.quora.com/What-is-AMD-free-sync-on-monitors-and-does-it-work-with-Intel-NVIDIA - декабрь 2019

> AMDs own workaround for Adaptive Sync over HDMI
Это FreeSync via HDMI. Используется проприетарный протокол AMD. Работает только на windows. В linux в open source драйвер включать не будут. В linux в amdgpu-pro libgl может быть и включат потом. Как отличить эту технологию? Наверное по спецификации монитора: если он заявляет поддержку FreeSync, при этом версия hdmi ниже 1.2, значит это оно.
В общем, непонятно, стоит ли полагаться на будущее этого варианта. Если покупать моник с нуля, то лучше оттклкиваться сразу с hdmi версией 1.2.

>With HDMI 2.1 there will be an official Adaptive Sync alternative over HDMI, called VRR (Variable Refresh Rate).
Это HDMI VRR. Официално пока нет, ждём когда утвердят стандарт.
https://www.phoronix.com/scan.php?page=news_item&px=AMD-FreeSync-2019-Update
But as for the formal HDMI Variable Rate Refresh (VRR) support, they note it's "pending" but held up by a HDMI VRR conformance test suite being released. So hopefully once that CTS is available, HDMI VRR will be flipped on for Linux users wishing to enjoy Adaptive-Sync/VRR functionality for HDMI displays.
Так что пока ждём. На Linux поддерживаться будет.

Что по Display Port VRR?
Как я понял, так же как и в случае с hdmi. Есть решение через проприетарный протокол, а есть стандарт DP supported via Adaptive Sync spec. Как отличить? По идее, версия DP должна быть определённой.

Какие продукты поддерживают технологию AMD FreeSync™?
К совместимым графическим процессорам относятся все видеокарты AMD Radeon™, начиная с серии Radeon™ HD 7000, выпущенной в 2012 году, и все более новые потребительские видеокарты Radeon.

Можно ли использовать технологию AMD FreeSync™ при подключении через HDMI®?
Да, технология FreeSync поддерживает интерфейс HDMI с самого начала. Многие дисплеи с сертификацией FreeSync поддерживали технологии использования переменной частоты обновления экрана по HDMI задолго до появления HDMI 2.1 и принятия стандарта HDMI VRR.  Покупка дисплея с сертификацией FreeSync, поддерживающего FreeSync по HDMI, позволяет использовать преимущества переменной частоты обновления экрана, даже если дисплей не поддерживает стандарт HDMI 2.1.

А также на этой странице https://wiki.archlinux.org/index.php/Variable_refresh_rate есть интересная инфа по редактированию EDID. Там для разгона монитора применяется, но может пригодиться и в других случаях.

четверг, 23 апреля 2020 г.

I have published my script here:
https://github.com/Ashark/supermicro-oob-activate/blob/master/supermicro-oob-activate

But just in case of DMCA takedown, I will publish the code here as a backup:
#!/bin/bash
# supermicro-oob-activate
#
# This script will autogenerate and activate a SFT-OOB-LIC key for your SuperMicro server,
# so you can perform out-of-band bios update with supermicro-update-manager.

# You should get a BMC mac. You can go to the ipmi web page, but it is inconvenient, because you want to make all things in place via your terminal.
# supermicro-update-manager has a function CheckAssetInfo, which will show you the IPMI mac. But unfortunately, you need OOB node product key to be
# already activated for using this function. However, there is another way how you can get it - via ipmitool.

IPMI_HOST=$1
IPMI_USER="ADMIN"
IPMI_PASSWORD_FILE="$HOME/.private/ipmi-pw.txt"

BMC_MAC=$(ipmitool -I lanplus -H $IPMI_HOST -U $IPMI_USER -f $IPMI_PASSWORD_FILE lan print | grep "MAC Address" | sed "s/MAC Address             : //")
# -I lanplus is required for some motherboards. See https://www.supermicro.com/support/faqs/faq.cfm?faq=23196

LIC_KEY=$(echo -n $BMC_MAC | xxd -r -p | openssl dgst -sha1 -mac HMAC -macopt hexkey:8544E3B47ECA58F9583043F8 | awk '{print $2}' | cut -c 1-24  | fold -w4 | paste -sd'-' -)

# echo Checking licence keys before setting licence key:
# supermicro-update-manager --no_banner -i $IPMI_HOST -u $IPMI_USER -f $IPMI_PASSWORD_FILE -c QueryProductKey
echo Setting licence key:
supermicro-update-manager --no_banner -i $IPMI_HOST -u $IPMI_USER -f $IPMI_PASSWORD_FILE -c ActivateProductKey --key $LIC_KEY
# echo Checking licence keys after setting licence key:
# supermicro-update-manager --no_banner -i $IPMI_HOST -u $IPMI_USER -f $IPMI_PASSWORD_FILE -c QueryProductKey


# Usage:
# $ ./supermicro-oob-activate ipmi.yourdomain.com
# Checking licence keys before setting licence key:
# Number of product keys: 0
# Setting licence key:
# Node product key (OOB) is activated for ipmi.yourdomain.com.
# Checking licence keys after setting licence key:
# [0] OOB
# Number of product keys: 1

# Legality:
# This is not explicitly allowed by SuperMicro, but in reality, nobody cares, because nowadays REDFISH allows much of the functionality of SuperMicro update manager for free,
# (including bios update). This thing is only useful for the old generation of servers without REDFISH.
# The algorithm was kindly provided by white hat hacker Peter Kleissner.
# See this if you are interested: https://peterkleissner.com/2018/05/27/reverse-engineering-supermicro-ipmi/