Category: компьютеры

Category was added automatically. Read all entries about "компьютеры".

Самые интересные факты, "секта хороших" не рассказывет из каждого утюга.

... Альпы из моего дома видны, с законностью в нэньке сложнее

Если кто-то говорит, что хочет вас убить, — поверьте ему!



Завод, трех поколений нашей семьи, не спасет даже золотой дождь.

Als die Nazis die Kommunisten holten, habe ich geschwiegen; ich war ja kein Kommunist.
Als sie die Sozialdemokraten einsperrten, habe ich geschwiegen; ich war ja kein Sozialdemokrat.
Als sie die Gewerkschafter holten, habe ich geschwiegen; ich war ja kein Gewerkschafter.
Als sie mich holten, gab es keinen mehr, der protestieren konnte

[Spoiler (click to open)]

Ленин: «Люди всегда были и всегда будут глупенькими жертвами обмана и самообмана в политике, пока они не научатся за любыми нравственными, религиозными, политическими, социальными фразами, заявлениями, обещаниями разыскивать интересы тех или иных классов.»

RKMP.jpg



Using SR-IOV

В раздумьях, публиковать ли это на Хабре.

[Черновик для Хабра] SR-IOV для начинающих

Виртуализация,
Компьютерное железо

Черновик


Иногда требуется, не вдаваясь глубоко в теоретические в дебри, выяснить работают ли, как заявлено, Термальные зоны в ACPI(пример не мой). Пробрасывается ли RAMDISK, и в каком обьеме, из UEFI в OS. И насколько успешно с него можно инсталлировать OS. Как это все прощупывается и на коленке тестируется.

В этой статье будем пробовать, на PCI зуб, наличие в железе поддержки SR-IOV.

История написана по мотивам FedoraDocumentations и попытки повторения оного под Ubuntu Server 18.04.5. Не то что бы я сильный любитель Линукса, но под виндовс "оно не взлетело" как я ни старался, а тратить годы на эту тему, не было запланировано.

Потребовалось, как то, показать что Виртуальные функции(SR-IOV) поддерживаются на моем железе(Naples/Rome), потому как были у клиента большие и обоснованные сомнения в этом. Виртуальные устройства в итоге нашлись, но время прошло и все опять забылось. При очередном случае, снова пришлось все восстанавливать в памяти, вот тут и пригодились сохраненные ссылки на иноземной мове. Что бы в последующем не бегать по интернету, запишем как все было.

В основном все совпадает с вышеупомянутой ссылкой, но дьявол как обычно в деталях.

И так, была найдена сетевая карта поддерживающая то самое SR-IOV, ей оказалась 82576

Для ее успешной работы, в оном режиме, рекомендовалось включить поддержку Intel VT-d в БИОСе и Линукс ядре, для Интела. Но у меня АМД, а ему требовались AMD-Vi и IOMMU. Для этого в параметрах старта ядра дописывает необходимые параметры.

[Но у вас все это уже может быть, например я этого не делал)))]
для AMD CPU
amd_iommu=on iommu=pt

для Интел
intel_iommu=on iommu=pt

Можно это дописать и в файл конфигурации
/etc/default/grub, в параметре GRUB_CMDLINE_LINUX_DEFAULT, добавить после quiet

После этого прийдется проапгрейдить grub
# update-grub

и добавить vfio модули в /etc/modules

vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

В конце обновить initramfs

update-initramfs -u -k all

И перезагрузить хост.

Проверка IOMMU
После перезагрузки нужно проверить активен ли IOMMU.

dmesg | grep -e DMAR -e IOMMU -e AMD-Vi



Наличие устройства с поддержкой SR-IOV.
Воспользуемся командой lspci для проверки оного.

# sudo lspci -s 82:0.0 -v
82:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
Subsystem: Intel Corporation Gigabit ET Dual Port Server Adapter
Flags: bus master, fast devsel, latency 0, IRQ 96, NUMA node 0
Memory at f7420000 (32-bit, non-prefetchable) [size=128K]
Memory at f7000000 (32-bit, non-prefetchable) [size=4M]
I/O ports at b020 [disabled] [size=32]
Memory at f74c4000 (32-bit, non-prefetchable) [size=16K]
Expansion ROM at f6c00000 [disabled] [size=4M]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+
Capabilities: [70] MSI-X: Enable+ Count=10 Masked-
Capabilities: [a0] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Device Serial Number 00-1b-21-ff-ff-4f-bb-e0
Capabilities: [150] Alternative Routing-ID Interpretation (ARI)
Capabilities: [160] Single Root I/O Virtualization (SR-IOV)
Kernel driver in use: igb
Kernel modules: igb


Нас интересуют Capabilities: [50] [70] и [160]. Без них говорят бяда и случается. Здесь по ссылке разьясняется насколько важны MSI-X.
Но, как выяснилось, без ARI Forwarding тоже ничего хорошего не случается, а именно он и был у меня на железе по умолчанию не активен. Мало того, он в БИОСе на Rome, вообще спрятан и недеступен для установки.((((

Запуск SR-IOV в модуле ядра.
Для того чтобы устройство работало в нужной конфигурации его как минимум требуется запустить в оной. Для начала попробуем запусить в ручном режиме командой modprobe . В последующем эта функциональность будет прописана в сценарии запуска драйвера при старте системы. Сетевая карта Intel 82576 использует igb драйвер в режиме ядра.

формат запуска драйвера с опциями

# modprobe igb [option=VAL1,VAL2,]

проверим, что там с текущим состоянием
# lsmod |grep igb
igb 87592 0
dca 6708 1 igb
ptp 20480 1 igb
i2c_algp_bit 16384 2 igb, ast


Активация виртуальных функций
Параметр max_vfs модуля igb указывает максимальное количество запускаемых Виртуальных учтройств. Моя карта поддерживает в частности от 0 до 7.
Выгрузим уже загруженный модуль.

# modprobe -r igb

Перезапустим с параметром max_vfs установленным в 1 или любым, не превосходящим максимальное величину, для этого устройства.

# modprobe igb max_vfs=1

Проверим наличие Виртуальных Функций.
Командой lspci поверим список добавленных Виртуальных Функций активированных у подопытной сетевой карты Intel 82576.

# lspci | grep 82576
03:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
03:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
03:10.0 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
03:10.1 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)


Проверим DevID у появившихся PCI устройств, запустив с опцией -n команды lspci.

# lspci -n | grep 03:00.0
03:00.0 0200: 8086:10c9 (rev 01)
# lspci -n | grep 03:10.0
03:10.0 0200: 8086:10ca (rev 01)


У физического устройства он останется как и раньше 8086:10c9, а вот у нового Виртуального он станет уже 8086:10ca.

Отыщем эти устройства в virsh
Сервис libvirt должен видеть все интересующие нас устройства и в гостевой сессии. Команда virsh nodedev-list покажет нам устройства на хосте.

# virsh nodedev-list | grep 8086
pci_8086_10c9
pci_8086_10c9_0
pci_8086_10ca
pci_8086_10ca_0
...


Тут, у меня, случился первый облом. libvirt был у меня не установлен. Устанавливаем.

# sudo apt-get install libvirt-clients

Не сразу,
E: Could not get lock /var/lib/dpkg/lock – open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

… но в итоге он установился. Были предложены решения этой проблемы, но у меня она рассосалась сама, по прошествии 5-10 минут.

Но и после установки libvirt ругался на отсутствие чегото…

$ virsh nodedev-list | grep 8086
error: failed to connect to the hypervisor
error: Failed to connect socket to '/var/run/libvirt/libvirt-sock':
No such file or directory


Решением оказалось установка qemu, qemu-kvm и virt-manager.
# sudo aptßget install qemu qemu-kvm virt-manager


В итоге искомые устройства нашлись, но, у меня, они были обозначены без VenID_DevID, а с упрминанием адреса на PCI шине. Это не принципиально, главное что нашлись.

# virsh nodedev-list | grep 8086
pci_0000_82_00_0
pci_0000_82_00_1
pci_0000_82_10_0
pci_0000_82_10_1
...


Проверим состояние устройств в virsh
Это pci_0000_82_00_0 как понимаю PF, а and pci_0000_82_10_0 первая из Виртуальных(VF) ассоциированных с PF. Проверим с помощью команды virsh nodedev-dumpxml, что там присутствует и доступно.

# virsh nodedev-dumpxml pci_0000_82_10_0
# virsh nodedev-dumpxml pci_0000_82_10_1

< name>pci_0000_82_10_1 </ name>
< parent>pci_0000_80_03_2 </ parent>
< driver>
< name>igbvf< /name>
< /driver>
< capability type='pci'>
< domain>0< /domain>
< bus>130< /bus>
< slot>16< /slot>
< function>1< /function>
< product id='0x10ca'>82576 Virtual Function< /product>
< vendor id='0x8086'>Intel Corporation</ vendor>
< /capability>
< /device>



В этом примере добавлена Виртуальное функция на устройство pci_0000_82_10_1 . Запомним параметры bus, slot и function , они потребуются нам для добавления в гостевой сессии, если нам с ней прийдется работать.

Деактивировать виртуальные устройства/функции в virsh
Устройства подсоедененные к хосту не могут быть присоеденены к гостевой сессии. Linux автоматически присоединяет новые устройства к хосту. Отсоединение виртуальных устройств/функций от хоста, позволяет коннектить их к гостевой сессии.

# virsh nodedev-dettach pci_0000_82_10_0
Device pci_0000_82_10_0 dettached
# virsh nodedev-dettach pci_0000_82_10_1
Device pci_0000_82_10_1 dettached


К тем кто не загрузил своевременно модули vfio, vfio_iommu_type1, vfio_pci, vfio_virqfd обязательно на этом этапе прийдет ошибка

error: internal error: Failed to load PCI stub module vfio-pci


она лечится запуском тех самых модулей

# sudo modprobe vfio
# sudo modprobe vfio_pci


Дальнейшая часть уже не входила в мою сферу тестирования. Главное что виртуальные устройства найдены, активированы и видны, везде где могут быть в дальнейшем использованы.

Теги:

sr-iov
ubuntu

Хабы:

Виртуализация
Компьютерное железо



Вы, все еще, меряете FSB сотнями?

https://habr.com/ru/post/517832/

Очень многие именно так и поступают последние 15-20 лет. Сотня или больше.

Что есть, Front Side Bus (FSB, системная шина)?
Шина, обеспечивающая соединение между x86/x86-64-совместимым центральным процессором и внутренними устройствами. Её опроная частота используется, с мультипликатором, процессором.

Весь инструментарий(я знаком с HwInfo64 и CPU-Z) именно на это (сотни) и заточен. Но вот, появился у меня процессор на котором я вижу частоту шины 25МГц.

[Spoiler (click to open)]25MHz.png

HwInfo64-25MHz.png

И вроде все по честному, пару лет назад именно на них и перешли в АМД(Precision Boost), удобнее более точно выставлять верхнюю границу рабочей частоты для ЦПУ. Но, тем не менее все (HwInfo64 и CPU-Z) продалжают показывать рабочую частоту исходя из 100МГц!? Поэтому мы видем очень подозрительную рабочую частоту ЦПУ. При заявленной 1500-1000МГц, процессор странным образом работает на 400-600МГц. Прокольчик.

HwInfo64-25MHz-2.png
25MHz-2.png

Причем этот множитель влияет и на частоту работы памяти, по крайней мере на её ототражаемые в тулсах параметры.

25MHz-3.png

Само собой мысли сразу полетели в сторону ProcHot и ThermalThrottling. Но нет, с ними все было в порядке.
Вот тут я и обратил внимание, что множитель какой то подозрительно дробный. Видим и .2, и .3, и .4. В регистр управления такое не поместится. Значит этот множитеь не настоящий, а "синтетический". Не из железа читается, а магическим образом высчитывается и подгоняется под нам всем любые 100МГц. Печально. И действительно, все значения у АМД целые, и опираются на 25МГц. И множетели там куда выше, чем привязанные к сотке. Там и 90, и 130 встречаются. И это совсем не потолок.

[Желающим нырнуть в ЦПУ]Что очень не плохо можно проверить в регистрах MSR
- C001006[4-B] биты [7:0]
- C0010063 биты [2:0]
- C0010293 биты [7:0] и [13:8]


Ладно бы, эти "фальшивые" цифры , были только на моем "железе". Но нет, они же вылазят и на референсных платах(Bilby) от АМД. А датой выхода этих процессоров на рынок,был первый квартал 2020го.

Причем тесты на производительность, не показывают проседания. Рабочая частота как и заявлено 1500-1000МГц.

Бардак с частотами дополняется тем, что в документации присутствуют все цифры частот . И даже немного больше))). Так, например, для REFCLK существует еще и частота 27 МГц. Причем она заявлена как присутствующая на момент после RESET. Все время в течении выполнения UEFI, активна частота 25МГц. Но фокус, в Виндовс, мы снова видим в регистрах ... 27МГц!

Хотя, документация от АМД, это совсем другая история. У АМД на нее никогда времени не хватало. Имеем, что имеем. И тому радуемся.

Так о чем же была статья? А не поверите, хочу инструментарий показывающий правду о железе. Вот и на жизнь жалуюсь. Хотя с такой документацией, которой радуют процессоростроители ждать его прийдется еще не один год. Или вы знаете такой? Тогда делитесь ссылками в комментариях!

P.S.: и кстати, может кто знает, а почему частота шины показывается как «плавающая»? В каком месте ее читают или на основе чего «синтетически считают». Ведь она не стоит 100 или 25 МГц, а плавает до -3%, но это и не SpreadSpectrum. SpreadSpectrum, ответственнен исключительно за «внешние» устройства.

Миллион маленьких шагов.

Когда маленьких, когда не очень.

Моя жена все удивляется, как это компьютеры работают. Как это интернет и мобильники, фурычат. Это же просто песок, изначально.

Миллион маленьких шагов, и ни чего волшебного.

К чему это я? А к миллиону маленьких и не очень, шагов лжи и обывательских страхов, которыми оболгали коммунизм.

Страх самый лучший манипулятор для обывателей. Чем больше лжи, тем больше ужаса у обывателя.

Это работает, работает на ура. Увы, ничего волшебного.
Но, нас не загнать в угол, "неудобными" вопросами. У нас есть ответы на всю "правдивую" ложь(С) Движ.57

Связь драйвера и устройства по _HID методу ACPI на примере GPIO контроллера Lynxpoint

AMD Dibbler Platform

AMD Great Horned Owl: Ryzen Embedded V1000

Для Embedded рынка представлена CRB на "потрогать".

15208524214131147391082.jpg

[Spoiler (click to open)]Берешь/покупаешь схему у АМД, корректируешь под свои/клиента потребности. Разводишь под нее многослойную плату с позиционированием всей рассыпухи. Покупаешь для адоптации БИОС у АМИ. Заменяешь ЕС на свой, обеспечивающий провильную последовательность подачи напряжения на процессор и чипсет. Получив готовую плату, распаиваешь на ней все что заготовил. Железячники "оживляют" первые пару плат, добиваясь снятия RESET. Откорректированный БИОС настраивает процессор, чипсет и PCIе устройства. Вот и получился встраиваемый компьютер "Made in Germany".

Ну Гейтс хоть не оказался шарлатаном, в отличие от Маска. И талантлив.

Оригинал взят у matveychev_oleg в Ну Гейтс хоть не оказался шарлатаном, в отличие от Маска. И талантлив.
Оригинал взят у bulochnikov

Настоящая история успеха Билла Гейтса

Снимок

Опять пошла волна… Билл Гейтс — гений.. Гейтс — великий.. Из поста в пост видео «Подумай о себе…» «Почти с нуля создал корпорацию… в 31 год стал миллиардером…». Как все было на самом деле?

Из официальной биографии на сайте Microsoft:

«Билл Гейтс родился 28 октября 1955 г. Он и две его сестры выросли в Сиэтле. Их отец, Уилльям Гейтс II, — адвокат. Мать г-на Гейтса, Мэри Гейтс, была школьной учительницей…»

Родился малыш в семье скромного юриста и школьной учительницы… Много учился и трудился… Благодаря своей гениальности стал самым богатым человеком планеты Земля, преобразил мир.

Collapse )


Windows 10 IoT Core: GPIO, Lightning и RemoteClient





Существует огромное количество примеров и статей про Windows 10 IoT Core, рассказывающих о том, как легко и удобно делать с его помощью разнообразные устройства. Однако в реальности работа с любым "железом" всегда связана со множеством не самых очевидных нюансов, знание которых приходит только с практикой. Я расскажу о некоторых особенностях работы c GPIO на Raspberry Pi2 и Windows 10 IoT Core и заодно о новой функции Remote Client, доступной в версии Insider Preview.

Началось все с того, что мне нужно было получить номер карты со считывателя системы СКУД (контроля доступа). Почти все считыватели умеют передавать эти данные по интерфейсу Wiegand. Он представляет собой 3 провода: сигнальный для передачи единиц, сигнальный для передачи нулей и земля. В режиме ожидания на каждом сигнальном проводе устанавливается 5В. Данные передаются "обратными" импульсами. Ширина импульсов от 50 до 200 мкс, период от 300 до 3000 мкс:



далее см оригинал ..... статья утащена с хабра на память