суббота, 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?

суббота, 1 августа 2020 г.

Меняем порядок загрузки через ipmitool

Как таковой, как поменять порядок загрузки я пока не нашёл. Есть возможность у supermicro просто сдампить текущий конфиг в текстовом виде (через supermicro update manager), потом его поменять, потом залить обратно.

Но я нашёл интересную штуку - можно загрузить сервер в нужный пункт единожды, типа как bootnext в efibootmgr. При этом это должно работать также и для legacy режима загрузки.
Есть нюансы - непонятно пока как выбрать конкретный диск для загрузки, например. Ну и то что это работает только на серверах, потому что на десктопах нет ipmi.

В мануале ipmitool нашёл про эту возможность аж в нескольких местах.

1) ipmitool chassis bootdev
2) ipmitool chassis bootparam - отличается от предыдущей только тем, что параметры с префиксом force_, типа как force_bios, тогда как в предыдущей - просто bios

3) ipmitool mc chassis bootdev <device> опции. Можно например посмотреть ipmitool mc или bmc chassis bootdev
4) ipmitool mc chassis bootparam set <device> опции. Здесь девайсы с префиксом force_, в отличие от предыдущей команды. А ещё есть опции, ассоциированные с  очисткой BMC Boot Valid Bit. можно очищать valid bit при перезагрузке по питанию, по кнопке reset или мягкой перезагрузке, по таймауту, по какому-то PEF. Но и вообще, кто и где смотрит этот value bit не совсем понятно пока. Догадываюсь, что его смотрит прошивка системы при загрузке, и если выставить устройство в bootnext, и наступит какое-то условие, например, перезагрузка по кнопке, то если bootnext был выставлен с соответствующим параметром сброса, то система не будет учитывать это устройство в качестве приоритетной прогрузки. Но я это не проверял.




При выполнении вариантов 3 и 4 было написано  Invalid mc/bmc command: chassis
Видимо, там поехало форматирование. Либо я скосил. Но параметры описаны действительно в четырёх местах. Возможно второй раз - это более подробное уточнение первого. В общем, посмотреть повнимательнее.

Кстати, вот что выдало bootdev none options=help
Legal options settings are:
       help:   print this message
       valid:  Boot flags valid
       persistent:     Changes are persistent for all future boots
       efiboot:        Extensible Firmware Interface Boot (EFI)
       clear-cmos:     CMOS clear
       lockkbd:        Lock Keyboard
       screenblank:    Screen Blank
       lockoutreset:   Lock out Resetbuttons
       lockout_power:  Lock out (power off/sleep request) via Power Button
       verbose=default:        Request quiet BIOS display
       verbose=no:     Request quiet BIOS display
       verbose=yes:    Request verbose BIOS display
       force_pet:      Force progress event traps
       upw_bypass:     User password bypass
       lockout_sleep:  Log Out Sleep Button
       cons_redirect=default:  Console redirection occurs per BIOS configuration setting
       cons_redirect=skip:     Suppress (skip) console redirection if enabled
       cons_redirect=enable:   Suppress (skip) console redirection if enabled

Интересно. Так можно ли всё-таки задать на постоянку свой boot order с опцией persistent?
И в режиме uefi можно загрузиться с опцией efiboot? Попробовал
 chassis bootdev disk options=efiboot
Но эффекта не дало. Всё равно грузится в legacy. Возможно, надо в bios включить uefi.

Еще кстати непонятно, что за request Safe Mode и Force boot from Diagnostic Partition.
Вот тут в комментах https://ma.ttwagner.com/ipmi-trick-set-the-boot-device/ нашёл что можно использовать такие команды: chassis bootparam get 5
В мануале есть вот это:
get <param #>

                                  Get boot parameter. Currently supported values for <param #> are:

                                  0 - Set In Progress

                                  1 - Service Partition Selector

                                  2 - Service Partition Scan

                                  3 - BMC Boot Flag Valid Bit Clearing

                                  4 - Boot Info Acknowledge

                                  5 - Boot Flags

                                  6 - Boot Initiator Info

                                  7 - Boot Initiator Mailbox
Но команда get 2 и get 1 мне ничего про service partition не выдали на supermicro серваке. Unknown было.


понедельник, 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/