LINUX.ORG.RU

Случайно выдернул видеокарту из слота, как починить без ребута?

 , ,


1

1

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

Видеокарта PCI (вроде S3 Trio какое-то, не помню), вылезли из слота те контакты которые ближе к задней стенки (передняя часть прижата к материнке конструкцией корпуса, а вот сзади должен был быть болт но его нет).

Можно ли как-то переинициализировать видеокарту не ребутая комп целиком? ОС FreeBSD, набирать что-то можно только вслепую т.к. сетевого доступа к руту нет.

upd: Таки ребутнул - лучше сейчас планово чем возиться потом когда срочно консоль потребуется. Видео ожило. В практическом плане проблема решена, но вопрос «как починить без ребута» так и не отвечен, так что пусть тема не будет помечена решённой.

★★★★★

Последнее исправление: firkax (всего исправлений: 3)
Ответ на: комментарий от firkax

Але там слоте сигналы rst и trst которые скорее всего запаралелены. Их надо подать в определенной последовательности.

А вообще я при таком событии сразу сервак гасил отрубом питания. Сгореть тут как два пальца обоссать

ckotctvo
()
Ответ на: комментарий от James_Holden

Забавно, да. Но технически переходники pcie -> pci существуют. И судя по отзывам на вб людям удается запустить через них аудиокарты и платы видеозахвата. Вот про видеокарты отзывов не нашел. Подводных камней конечно порядочно: под вопросом корректная работа старинного vbios на современной материнке, сможет ли мост замапить нужные адреса, получится ли собрать драйверы. Но если взять какой-нибудь кора дуба и 11-й debian, кажется что шансы есть

cobold ★★★★★
()

Видеокарта PCI (вроде S3 Trio какое-то, не помню)

У PCI hotplug, по идее, мог существовать. Но точно не в десктопных материнках. Какой-нибудь сервер ALR может быть...

AS ★★★★★
()
Ответ на: комментарий от AS

S3! Какой PCIe? :-)

Ну если на то пошло, что S3 Chrome были (а может и есть) на PCIe.
Но когда была возможность пощупать такую - какой же это хлам оказался :D

// А так - были у меня и Vision868, и Trio64V+, и недолго какая-то Trio3D.

devl547 ★★★★★
()
Последнее исправление: devl547 (всего исправлений: 1)
Ответ на: комментарий от devl547

Ну если на то пошло, что S3 Chrome были (а может и есть) на PCIe.

Почитал. И правда были. VIA перепродала активы S3 в HTC, на этом всё. Пишут, что HTC их купили только ради патентов.

AS ★★★★★
()
Ответ на: комментарий от yars068

В какой спеке наркоман? Хватит жрать нейрослоп. Это видяха которая в моем компе стояла в 1998м году

ckotctvo
()
Последнее исправление: ckotctvo (всего исправлений: 1)

Hotplug видеокарты по сути состоит из 3х этапов:

  • воткнуть так чтоб видеочип смог установить PCI-соединение с CPU. Всех нюансов тут не знаю, по идее вначале GND, потом сигнальные лини, потом питанря, потом сигнал ENable. У современных PCIe-карт это с переменным успехом, но получается, про PCI не знаю.
  • Дальше, прежде чем начнётся инициализация специфичная для устройства - идет ассоциирование адресного пространства CPU с пространством(и) на видеокарте (PCI iospace и memory BAR), в соответствии с тем что операционка считала из пространства конфигурационных регистров PCI. Вот тут более сильный затык - так как обычно выделением этого всего рулит материнка при старте, а ОС хоть и увидит устройство на шине после рескана, но выделять эти ресурсы без тонкого тюнинга параметров хотплага, притом передаваемых на старте ОМ - обычно не может, так как не понимает из какого диапазона это может делать чтоб это соответствовало механизму работы шины конкретной платформы
  • И если этот этап будет успешен - дальше вылезвет третий уровень - устройству надо пройти инициализацию (как минимум осознать что такую-то область внутреннней памяти выводить на такой-то разъём с таким-то рпзрешением и таймингами). Если под видеочип есть драйвер в ОС - то он обычно это умеет. А вот если нет, и ОС использует устройство в том виде в котором оно осталось после загрузки ПК (VGA-совместимый или EFI-драйвер) - то появляется ещё одна принципиальная проблема: код инициализации написан для работы без ОС. Лет 15 назад в линуксе вроде даже была библиотека, позволяющая эмулировать 16битную среду исполнения для запуска в ней загрузочного кода видеокарты, если её по каким-то причинам типа спящего режима надо переинициализировать.

В общем ОЧЕНЬ много плясок с бубном

GPFault ★★★★
()
Последнее исправление: GPFault (всего исправлений: 1)

В сети можно найти примеры как старые видеокарты подключали к современным микроконтроллерам. Иногда даже успешно. И вот там оказывалось, что в процессе инициализации требовалась в том числе и запись недокументированных констант в недокументированные регистры. Раскапывали это дизассемблированием собственного bios видеокарты, того что исполняется при старте компа. Очевидно, что линуксовый драйвер и драйвер в любой другой ОС предполагает что вышеупомянутые действия уже были выполнены при штатном включении и их не повторяет. Так что шансов запустить видео без копания в его биосе (либо исполнения этого bios в специально созданной среде) весьма не много.

watchcat382 ★★
()
Ответ на: комментарий от firkax

пардон, вот только долез до скрипта переинициализации усб. вдруг кому пригодится…

#! /bin/bash

#echo 0000:00:1a.2  | sudo tee /sys/bus/pci/drivers/uhci_hcd/unbind
#echo 0000:00:1a.2  | sudo tee /sys/bus/pci/drivers/uhci_hcd/bind

for i in /sys/bus/pci/drivers/[uoex]hci_hcd/*:*; do
#    echo "${i}"
    echo -n "${i##*/}  " ; echo "tee ${i%/*}/unbind"
    echo -n "${i##*/}  " ; echo "tee ${i%/*}/bind"
done

намертво зависала мышка на интегрированом усб, запуск скрипта через клаву (на пс/2) восстаналвивала ее работу.
в сислог летело огромное количество ошибок по усб, програмный драйвер как и остальная ос полноценно работало, зависала аппаратная часть, все чисто мои предположения…

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

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 2)
Ответ на: комментарий от watchcat382

биос инициализирует видюху только на тот режим, кторый ему нужно - сиречъ текстовый режим для вывод лога загрузки, ткну пальцем в небо и скаж у что лишнего в биос не впихнут, не тот объем, да и не нужно это никому. да и текстовый режим очень стандартный и очень древний.
да, в современных биосах инициализируется граф.режим, но на мой взгляд тоже не самый крутой из доступных.
а потом уж операционка имея неимоверно большие ресурсы чем встроенные в биос, переинициализирует видюхуу так как ей нужно. еще и прошивку поновее впихивает из /lib/firmware
так что переинициализровать видюшку с нуля удев уметь должон (опять же лишь мое предположение).

pfg ★★★★★
()
Ответ на: комментарий от pfg

лишнего в биос не впихнут, не тот объем, да и не нужно это никому

Переключатели режимов там как есть есть все, т.к. это часть int10. Да и не занимают они объём. Чего там нет, так это драйверов opengl и подобного, но такое от видеобиоса никто и правда не ждёт.

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

firkax ★★★★★
() автор топика
Последнее исправление: firkax (всего исправлений: 1)

И эти люди ещё что-то рассуждают про хецнеры.

anonymous
()
Ответ на: комментарий от pfg

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

переинициализровать видюшку с нуля удев уметь должон

Упомянутые карточки S3 Trio в качестве второй и даже третьей я в Иксах запускал в середине двухтысячных. Первой стояла Matrox. Ну увлекался я тогда многомониторными конфигурациями. То есть с инициализацией в этом случае драйвер справлялся. Но это на x86 и естественно после того как отрабатывал как минимум системный bios платы, если принять как гипотезу что видео-биос дополнительных карточек при старте не исполняется. Тем не менее, еще не запущенная вторая/третья карточка уже была видна в lspci, то есть конфигурировать ее начинал еще системный биос по всей видимости, а линуксовая подсистема pci лишь «продолжала». Так что надо бы внимательно разобраться получает ли карточка нужные ей ресурсы на шине pci и правильно ли получает. Посравнивать вывод lspci -vv на x86 и на одноплатнике. Почитать содержимое PCI configuration space для видеокарты, тщательно изучив man setpci. То, что видеокарточка «увиделась» на шине - еще не означает что правильно выставились все значения этих конфигурационных регистров, их там много.

watchcat382 ★★
()
Ответ на: комментарий от gagarin0

кста о пользе иишниц которые модели с большим языком (и ведь доставляют)

Чем, по вашему мнению, является язык программирования Rust в 2026 году? (комментарий)

зы" интерес к infero(64) выдаёт как парашут волочившийся за ним

qulinxao3 ★☆
()
Ответ на: комментарий от firkax

какой ещё контроллер? PCI адаптер потерял все свои настройки, в первую очередь - согласования по PCI шине, адрес BAR и прочие порты и т.д.

у HS PCI - это отдельно предусмотрено. и скажи спасибо, что ничего не сгорело

mumpster ★★★★★
()
Ответ на: комментарий от mumpster

Контроллер - большой чип на плате. PCI-адаптер вероятно тоже внутри него, или он отдельно?

Насчёт сгореть - сомнительно, задняя часть платы всё-таки оставалась прижатой (над платами сверху шасси), съехать в продольном направлении ей было бы очень сложно (ну, чтобы 5V с заземлением перепутались где-нить или ещё что-нить похожее случилось), а от разрыва части контактов (при том что заземление, я почти уверен, осталось, оно же на многих контактах там резервировано) сгорание всё-таки маловероятно. Вот на двухэтажных разъёмах как AGP можно было бы ожидать такого.

firkax ★★★★★
() автор топика
Последнее исправление: firkax (всего исправлений: 4)
Ответ на: комментарий от firkax

если ты контроллером обзываешь S3 86C764-P, то официально оно называется Graphics Engine/Accelerator.

на плате там ещё есть RAMDAC, ОЗУ, ПЗУ или ЭСППЗУ, несколько регистров (может не быть) и ещё чутка не столь важных компонент

mumpster ★★★★★
()
Ответ на: комментарий от mumpster

официально оно называется Graphics Engine/Accelerator

Это не мешает обобщённо эту микросхему назвать (видео)контроллером. Особенно тогда, когда от неё требуется только вывод 80х25 текста в VGA-порт.

firkax ★★★★★
() автор топика
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от mumpster

на плате там ещё есть RAMDAC

Не, его на плате быть не должно, это же Trio:

Чипы S3 серии Trio получили такое название, потому что содержали в себе необходимое трио элементов: графическое ядро, RAMDAC и тактовый генератор

И, вроде, Graphics Engine к этим чипам в документации не применяется, уже просто Integrated Graphics Accelerator, так как Engine стал частью чипа.

Но, с терминологией в IT всегда путанициа, то же IBM, когда выпустил System/23, платы расширения назвали «feature card» и никак иначе, а когда эта же шина перехала в IBM PC, то там всё стало адаптерами «Color Graph. Adapter», «Printer Adapter» и т.д. Слово card вобще исчезло из документации :)

mky ★★★★★
()
Ответ на: комментарий от firkax

задняя часть платы всё-таки оставалась прижатой

Но она всё равно немного сдвинуласть, поэтому лотерея. Хорошие переменные резисторы — смазанные, иначе там треск при регулировке. Да, земля на многих контактах и маловероятно, что видеокарта бы сгорела, но если бы сгорела, все бы написали «не удивительно» :)

mky ★★★★★
()
  • Markdown
Пустая строка (два раза Enter) начинает новый абзац. Знак '>' в начале абзаца выделяет абзац курсивом цитирования.
Внимание: прочитайте описание разметки Markdown.
Используйте Ctrl-Enter для размещения комментария