Титла: Липсващи опции в menuconfig Публикувано от: g0shet0 в Aug 29, 2013, 19:54 Здравейте,
искам да ползвам една от видеокартите си на виртуална машина. За целта ще ползвам KVM, като в долния линк е описано как да си сетна нещата за да мога да ползвам видеокартата. How to assign devices with VT-d in KVM ($2) Трябва да активирам VT-d, като съм стигнал до точка 1. След като пусна "make menuconfig" в "Bus options (PCI etc.)" намирам само "PCI Stub driver", другите две опции ги няма - "Support for DMA Remapping Devices" и "Enable DMA Remapping Devices". Доколкото разбрах, за да се появят трябва да са активирани "Message Signaled Interrupts (MSI and MSI-X)", ACPI (Advanced Configuration and Power Interface) Support и ( CONFIG_X86 || CONFIG_IA64_GENERIC ). Първите две ги намерих и активирах, но CONFIG_X86 и CONFIG_IA64_GENERIC не успявам да открия. Бихте ли ме насочили къде да прочета как да реша този проблем? Ползвам linux-headers-3.8.0-29-generic на Ubuntu 13.04. Предварително благодаря! Титла: Re: Липсващи опции в menuconfig Публикувано от: neter в Aug 30, 2013, 00:23 1. Уверил ли си се, че и процесорът ти, и дъното ти, поддържат VT-d? Ако не си, първо се увери, защото иначе активирането на съответните опции в ядрото няма да има ефект и само ще си загубиш времето. Ако не успяваш да се ориентираш поддържат ли VT-d, кажи какви са точните модели на дъното и процесора, за да проверим и ние;
2. Ако процесорът ти не е от серията Itanium на Intel, а изглежда, че не е, не гледай опциите, съдържащи ia64 в името си - те не са за твоя процесор; 3. Ново ядро ли компилираш или прекомпилираш настоящото? Титла: Re: Липсващи опции в menuconfig Публикувано от: g0shet0 в Aug 30, 2013, 09:23 Привет,
1. Процесора със сигурност поддържа VT-d -> Q9550 ($2), дъното е с чипсет X48, което теоритично също поддържа VT-d справка -> Core 2 chipsets ($2), като в BIOS-a нямам настройка за enable/disable на VT-d и се надявам от ASUS (дъното е Rampage Extreme) да не са го забранили, но пък от този PDF Intel® X48 Express Chipset ($2) на страница 88 пише, че по подразбиране е разрешен. 2. Процесора както казах по-горе е Q9550 ... 3. Доста неща пробвах, но все някъде зацепвам и не стават нещата. Последно пробвам да компилирам ново ядро, но не откривам тези липсващи опции в настройките. Титла: Re: Липсващи опции в menuconfig Публикувано от: Odido в Aug 30, 2013, 17:18 Привет,хич не съм наясно с виртуалките ,но пробва ли да компилираш с опция localmodconfig? Тя автоматично разпознава хардуера ,с който си.
Титла: Re: Липсващи опции в menuconfig Публикувано от: g0shet0 в Aug 30, 2013, 21:57 Привет,
не съм прекомпилирал ядрото защото опциите които трябва да са активирани просто липсват и не мога да ги активирам. Както казах по-горе ползвам ядро 3.8.0-29, а там липсват нужните: Support for DMA Remapping Devices .. и Enable DMA Remapping Devices. Тъй като не съм навътре с Linux, се допитах и ми казаха, че трябва да гледам тук: http://cateee.net/lkddb/web-lkddb/DMAR.html ($2) http://cateee.net/lkddb/web-lkddb/DMAR_DEFAULT_ON.html ($2) http://cateee.net/lkddb/web-lkddb/PCI_STUB.html ($2) И въпреки, че активирах всичко по "depends on", тези опции не се появиха. Може аз да бъркам някъде ... След близо едноседмично лутане съм склонен да мисля, че ASUS са забранили VT-d на чипсета и това е причината да не мога да успея. Незная на къде да поема от тук натаък .. ако някой е прочел темата до тук и има идеи ще съм му благодарен да ме насочи! Титла: Re: Липсващи опции в menuconfig Публикувано от: neter в Aug 30, 2013, 22:26 CONFIG_DMAR (Support for DMA Remapping Devices) и CONFIG_DMAR_DEFAULT_ON (Enable DMA Remapping Devices) са били налични за последно в 3.0 ядрата, както пише и в линковете, които си пуснал сега. Всъщност, второто не го намирам и в 3.0 ядрата, но както и да е.
От ядра 3.6 по въпроса с прехвърлянето на видео карти към виртуалните машини е започнало добавянето на VFIO ($2) към ядрото. Изглежда, че пълнофункционално заработва от ядра 3.9 нагоре, така че, ако се решиш да продължиш с опитите, е добре да опитваш с ядра от 3.9 нагоре. Тук ($2) изрових една тема във форума на Arch Linux с ръководство по твоя случай. Разгледай го! П.П.: Забравих да ти кажа, че не е нужно да търсиш CONFIG_X86 из конфигурацията - обикновено си е включено по подразбиране, а и лесно можеш да го провериш още в първите редове на .config файла за ядрото. Файлът .config съдържа настройките, които виждаш визуално и с по-говорими имена в menuconfig. При компилиране на ново ядро можеш да намериш .config файла в папката с изходния код на ядрото, след първото изпълнение на menuconfig и избор да се запази конфигурацията при излизане (дори и да не е променяно нищо). За вече инсталирани ядра можеш да намериш съответния им .config файл в /usr/src/ядро/ папката. Титла: Re: Липсващи опции в menuconfig Публикувано от: g0shet0 в Sep 02, 2013, 09:37 neter,
доста полезна информация .. благодаря ти! Долу-горе ми се изясниха доста от нещата. Днес продължавам с опитите и ще пиша като има нещо ново. Титла: Re: Липсващи опции в menuconfig Публикувано от: g0shet0 в Sep 15, 2013, 22:16 Здравейте,
намерих хардуер който поддържа VT-d и имам доста голям напредък. Вървя стъпка по стъпка от темата която ми изпрати neter https://bbs.archlinux.org/viewtopic.php?id=162768 ($2) Проблема ми е, че всички видео карти са в една IOMMU група, а трябва да са в различни за да мога да ги биндна към VFIO. От същата тема във форума на Arch Linux има описание как да се справя с това. Трябва да приложа следния пач - http://www.spinics.net/lists/kvm/msg92163.html ($2) Някой може ли да ми обясни как да приложа този пач? Предварително балгодаря! Титла: Re: Липсващи опции в menuconfig Публикувано от: neter в Sep 16, 2013, 21:23 А! Нещо съм пропуснал, че си писал, покрай екзистенциални занимавки :)
Ако не се ориентираш, patch-ът в страницата, която си дал, е от "Signed-off-by" включително до преди "-- To unsubscribe from this list". Копираш си patch-а и го запазваш цялото в един файл. След това в конзолата отиваш в папката, където ти е изходният код на ядрото, и изпълняваш командата Цитат patch -p1 < /път/до/файла/с/patchВ резултат на което описаните промени в patch-а ще бъдат приложени към файловете в папката, в която се намираш (в случая, тази с изходния код на ядрото). Командата за patch-ване ще си каже, ако нещо не сполучи, но все пак е хубаво преди това да метнеш едно око дали patch-ът съответства на ядрото, към което го прилагаш. Точно кое ядро реши да ползваш? Ако се загледаш по-внимателно в текста на patch-а ще установиш, че той не е нищо повече от описания кои файлове трябва да се променят, на кои редове и какъв код трябва да се добави, премахне или замени там. В случая ще се прави промяна в два файла. Единият е част от документацията на ядрото (Documentation/kernel-parameters.txt), там няма да се променя код, просто ти се добавя помощна информация за параметрите, които ще се добавят като код в другия файл. Другият файл е drivers/pci/quirks.c и при него вече се променя код. Преди да си приложил patch-а, отвори този файл, иди на ред 3292 и провери имаш ли такъв код там Код
Това е кодът, между който (след първите два реда и друго парче преди последните два) ще бъде добавен допълнителният код от patch-а. В patch-а редовете, които ще се добавят, са отбелязани с "+" отпред. Тези, които ще се махат (в случая няма такива) се отбелязват с "-", а тези, които ще си останат същите и служат само като указател (като редовете от кода по-горе) не се отбелязват с някакъв знак. Та, ако имаш въпросния код на ред 3292 и той изглежда по същия начин, значи patch-ът ще го намери и ще направи промените там успешно. Както вероятно и сам се усещаш, след като така и така си отворил файла, който трябва да се промени, намерил си къде ще се прилага промяната и знаеш каква промяна трябва да се направи от прочетеното в patch-а, нищо не ти пречи и ръчно да си копираш промените на указаните места и да не минаваш през patch командата, но това сега е твърде частен случай. Често patch-овете съдържат огромен брой промени, които никак не върви да ги правиш на ръка, така че е хубаво да си знаеш за patch командата и да можеш да се ориентираш в текста на patch-а. И когато patch-ваш, ако не стигнеш да направиш поне някакво сравнение между вписаното в patch-а и наличното във файловете, които ще patch-ваш, то поне винаги проверявай дали версията на твоя изходен код съвпада с версиите, за които patch-ът се отнася - случвало ми се е от недоглеждане да приложа patch за несъответстваща версия, указателите да са се оказали недостатъчни, за да се хване несъответствието, patch-ването да мине успешно и след това да се чудя защо ми се чупи нещо :) Та... провери си пак версията на ядрото! Титла: Re: Липсващи опции в menuconfig Публикувано от: g0shet0 в Sep 17, 2013, 09:17 Отново ти благодаря!
Доста ми помагаш .. имам да черпя много. Успях да приложа кръпката и успешно да компилирам ядро 3.11.0. След рестарт всичко работеше както трябва и видео картите вече са в различни IOMMU групи. Успешно си бинднах тази която ще е за guest-a към VFIO. Сега продължавам напред .. ще пиша довечера най-вероятно. Надявам се вече да съм към края на сагата :) |