LINUX.ORG.RU

Две Видеокарты

 , ,


1

2

итак имеем:

01:00.0 AMD/ATI radeon 6900 дискретная

02:00.0 NVIDIA 7300 дискретная

биос считает основной Radeon линь считает что биос прав и выводит все на Радеон

необходимо чтобы линь начиная уже с тектового этапа загрузки считал что Нвидиа основная и выводил все на неё, ибо Радеон у меня на проброс в виртуалку

каким образом это можно сделать? если невозможно на этапе загрузки то хотя бы в консоли после загрузки - если и это не возможно то хотябы в иксах

сразу предупреждаю заумных: переставить местами невозможно ибо Радеон 2ух слотовый и будет упираться в псай фаерваер который переставить просто некуда

ОС или Ubuntu 12.04 или Debian wheezy (testing) ядра с Xen Domain-0 v3.3 и выше

пробывал поменять местами на время установки, затем вернуть обратно, результата не дало, pciback.hide=(01:00.0) тоже не помогает линь упорно пытается вывести видео на 1ю видяху



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

Текстовые не знаю, а через фреймбуфер должно получится.

Elyas ★★★★★
()

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

А в иксах с загруженным драйвером все просто. Там все как обычно только в секции Device с нужным драйвером и BusID «PCI:2:0:0» или какой тебе нужен. Далее в ServerLayout соответствующий Screen (в котором нужный Device).

Можно даже одновременно, запихав в Layout два Screen или сделав два Layout с разными Screen и запуском отдельных иксов, выводить изображение с двух видеокарт. Только я не совсем в курсе нюансов, как nvidia и fglrx уживаются. Никогда не пробовал, но стало жутко интересно. Как-нибудь обязательно попробую.

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

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

hackroute
() автор топика
Ответ на: комментарий от hackroute

в системе cat /sys/bus/pci/devices/0000:01:00.0/boot_vga выодит 1 cat /sys/bus/pci/devices/0000:02:00.0/boot_vga выводит 0

уже после определения девайсов(до иксов) знает к кому обращаться, но может его можно обмануть?

hackroute
() автор топика
Ответ на: комментарий от hackroute

ну хорошо поставим вопрос немного иначе можно ли сказать линуксу чтоб он вообще забыл про /sys/bus/pci/devices/0000:01:00.0 мол нету там ничего, или самого псай 01:00.0 нету

ну или выполнить скрипт отключения этого девайса сразу после его определения, каким образом такое можно сделать?

hackroute
() автор топика
Ответ на: комментарий от hackroute

http://www.linux-kvm.org/page/How_to_assign_devices_with_VT-d_in_KVM

4. unbind device from host kernel driver (example PCI device 01:00.0)

Load the PCI Stub Driver if it is compiled as a module modprobe pci_stub lspci -n locate the entry for device 01:00.0 and note down the vendor & device ID 8086:10b9 ... 01:00.0 0200: 8086:10b9 (rev 06) ... echo «8086 10b9» > /sys/bus/pci/drivers/pci-stub/new_id echo 0000:01:00.0 > /sys/bus/pci/devices/0000:01:00.0/driver/unbind echo 0000:01:00.0 > /sys/bus/pci/drivers/pci-stub/bind

anonymous
()

Не знаю, сработает ли способ для ATI. На интел+нвидиа помогает добавить параметр nomodeset при загрузке.

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

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

Мысль такая, что без загрузки драйвера видеокарты ничего сделать нельзя. К сожалению с трудом представляю что можно сделать до запуска иксов. Возможно с fb-драйвером твоей видеокарты можно как-то ее запустить, но как - не знаю.

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

поменяй карты местами , делов то :)

это для тебя в первом посте:

сразу предупреждаю заумных: переставить местами невозможно ибо Радеон 2ух слотовый и будет упираться в псай фаерваер который переставить просто некуда

От себя добавлю, что можно сделать удлинитель. Развести платку под разъем, сдуть разъем с какой-нибудь старой платы и припаять шлейфы. А на втором конце платка для разъема материнки с контактами, как на видеокарте (можно срезать с какой-нибудь дохлой pci-e видеокарты).

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

Сейчас конфигю fb, по крайней мере консоль у меня уже на 2ой видюхе и первая пробрасывается в виртуалку, проблема осталось с xorg`ом, пытаюсь сделать конф чтобы и иксы подхватили видяху...

глючная убунту блин дебиан-тестинг сам все подхватил а убунту сразу предлагает повесится, какая же она все таки User-friendly за ногу её, лад пойду я её доламыать :)

hackroute
() автор топика
Ответ на: комментарий от hackroute

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

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

hackroute

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

сейчас имею венду с фаерваер портом видяхой сеткой юсбишками и т д снижения производительности незаметно тесты синебенк супер_пи фритчез показывают те же результат что и в хосте (конечно с погрешностью расчетов до 3% взависимости от программы)

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

sudo apt-get install -y xen-hypervisor-amd64
sudo apt-get install -y aria2

cd aria2c -x 5 http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.4.tar.bz2 
tar xfvj linux-3.4.tar.bz2 
cd linux-3.4

cp /boot/config-$(uname -r) .config 
#press key Enter to answer all questions
make oldconfig

sed -e 's/\(CONFIG_XEN_DEV_EVTCHN=\)./\1y/g' -e 's/\(CONFIG_XENFS=\)./\1y/g' -e 's/\(CONFIG_XEN_GNTDEV=\)./\1y/g' -e 's/\(CONFIG_XEN_PCIDEV_BACKEND=\)./\1y/g' -e 's/\(CONFIG_XEN_FBDEV_FRONTEND=\)./\1y/g' -e 's/\(CONFIG_XEN_PCIDEV_FRONTEND=\)./\1y/g' -e 's/\(CONFIG_INPUT_XEN_KBDDEV_FRONTEND=\)./\1y/g' .config > k.config

echo 'CONFIG_FRONTSWAP=y' >> k.config 
rm .config 
mv k.config .config

sudo apt-get install -y git-core kernel-package fakeroot build-essential libncurses5-dev sed -rie 's/echo "\+"/#echo "\+"/' scripts/setlocalversion

make-kpkg clean 
CONCURRENCY_LEVEL=3 fakeroot make-kpkg --initrd --append-to-version=-xen --revision=2012 kernel_image kernel_headers 
cd .. 
sudo dpkg -i linux-image-3.4.0-xen_2012_amd64.deb 
sudo dpkg -i linux-headers-3.4.0-xen_2012_amd64.deb

sudo update-initramfs -ck 3.4.0-xen 
sudo update-grub

sudo apt-get install -y xen-tools

echo "# Added lines for xen" >> /etc/modules 
echo xen-evtchn >> /etc/modules 
echo xen-gntdev >> /etc/modules 
echo xen-netback >> /etc/modules 
echo xen-blkback >> /etc/modules 
echo xenfs >> /etc/modules 
echo blktap >> /etc/modules

#for test passthrough use disk image and install win7x64, next manual set driver to radeon6950, next reboot and install amd catalyst: 
#dd if=/dev/zero of=/home/$USER/disk.img count=0 seek=40000 bs=1M

#creating win7 config file in /etc/xen 
sudo echo 'name="win7"

kernel="hvmloader"
builder="hvm"

vcpus=10 
memory=4096

#for test passthrough use disk image and install win7x64, next manual set driver to radeon6950, next reboot and install amd catalyst: 
#disk=[ 'file:/home/$USER/disk.img,hda,w', 'file:/home/$USER/cdrom.iso,hdd:cdrom,r' ] 
disk=[ 'phy:/dev/sda,hda,w', 'phy:/dev/sdb1,hdb,w', 'phy:/dev/sdc,hdc,w', 'file:/home/$USER/cdrom.iso,hdd:cdrom,r' ]

#vif=[ 'bridge=xenbr0,type=ioemu,model=e1000' ] 
#vfb = ['type=vnc, vncunused=0, vncdisplay=0, vncpasswd=']

boot="dc"

acpi=1 
apic=1

xen_platform_pci=1 
#viridian=1 
#stdvga=1 
device_model="qemu-dm"

vnc=1 
sdl=0

# Enable Xen VGA Passthrough #gfx_passthru=1

# VGA Passthrough Radeon HD 6950 / FireWire PCI / USB hub 0,3,4 
pci = [ '00:1a.0' , '07:00.0', '06:00.0','02:00.0', '02:00.1', '0a:01.0' ]

#usb=1 
#usbdevice="host:04d9:1603"

on_poweroff="destroy" 
on_reboot="restart" 
on_crash="destroy" ' > /etc/xen/win7

#add xen-pciback.hide=(02:00.0) to /boot/grub/grub.cfg
#module	/boot/vmlinuz-3.4.0-xen (...) ro  xen-pciback.hide=(02:00.0)(02:00.1)(06:00.0)(07:00.0)(00:1a.0)(0a:01.0)  

fbcon тоже можно указать при загрузке в грабе таким параметром: fbcon=map:1 где число это: cat /proc/fb

hackroute
() автор топика
Ответ на: комментарий от hackroute

в скрипте выше опечатка
внутри последнего еха: sudo echo '
все одинарные кавычки надо заменить на \x27

hackroute
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.