Автор Тема: Липсващи опции в menuconfig  (Прочетена 4268 пъти)

g0shet0

  • Участници
  • ***
  • Публикации: 9
    • Профил
Липсващи опции в menuconfig
« -: Aug 29, 2013, 19:54 »
Здравейте,

искам да ползвам една от видеокартите си на виртуална машина.
За целта ще ползвам KVM, като в долния линк е описано как да си сетна нещата за да мога да ползвам видеокартата.
How to assign devices with VT-d in KVM
Трябва да активирам 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.

Предварително благодаря!
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: Липсващи опции в menuconfig
« Отговор #1 -: Aug 30, 2013, 00:23 »
1. Уверил ли си се, че и процесорът ти, и дъното ти, поддържат VT-d? Ако не си, първо се увери, защото иначе активирането на съответните опции в ядрото няма да има ефект и само ще си загубиш времето. Ако не успяваш да се ориентираш поддържат ли VT-d, кажи какви са точните модели на дъното и процесора, за да проверим и ние;

2. Ако процесорът ти не е от серията Itanium на Intel, а изглежда, че не е, не гледай опциите, съдържащи ia64 в името си - те не са за твоя процесор;

3. Ново ядро ли компилираш или прекомпилираш настоящото?
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

g0shet0

  • Участници
  • ***
  • Публикации: 9
    • Профил
Re: Липсващи опции в menuconfig
« Отговор #2 -: Aug 30, 2013, 09:23 »
Привет,

1. Процесора със сигурност поддържа VT-d -> Q9550, дъното е с чипсет X48, което теоритично също поддържа VT-d  справка -> Core 2 chipsets, като в BIOS-a нямам настройка за enable/disable на VT-d и се надявам от ASUS (дъното е Rampage Extreme) да не са го забранили, но пък от този PDF Intel® X48 Express Chipset на страница 88 пише, че по подразбиране е разрешен.

2. Процесора както казах по-горе е Q9550 ...

3. Доста неща пробвах, но все някъде зацепвам и не стават нещата. Последно пробвам да компилирам ново ядро, но не откривам тези липсващи опции в настройките.
Активен

Odido

  • Напреднали
  • *****
  • Публикации: 627
  • Distribution: Arch Linux
  • Window Manager: Gnome
    • Профил
Re: Липсващи опции в menuconfig
« Отговор #3 -: Aug 30, 2013, 17:18 »
Привет,хич не съм наясно с виртуалките ,но пробва ли да компилираш с опция localmodconfig? Тя автоматично разпознава хардуера ,с който си.
Активен

"Congratulations, you broke the Internet
Look at what you did! Are you happy now?"

g0shet0

  • Участници
  • ***
  • Публикации: 9
    • Профил
Re: Липсващи опции в menuconfig
« Отговор #4 -: 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
http://cateee.net/lkddb/web-lkddb/DMAR_DEFAULT_ON.html
http://cateee.net/lkddb/web-lkddb/PCI_STUB.html
И въпреки, че активирах всичко по "depends on", тези опции не се появиха.
Може аз да бъркам някъде ...
След близо едноседмично лутане съм склонен да мисля, че ASUS са забранили VT-d на чипсета и това е причината да не мога да успея.
Незная на къде да поема от тук натаък .. ако някой е прочел темата до тук и има идеи ще съм му благодарен да ме насочи!
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: Липсващи опции в menuconfig
« Отговор #5 -: 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 към ядрото. Изглежда, че пълнофункционално заработва от ядра 3.9 нагоре, така че, ако се решиш да продължиш с опитите, е добре да опитваш с ядра от 3.9 нагоре. Тук изрових една тема във форума на Arch Linux с ръководство по твоя случай. Разгледай го!

П.П.: Забравих да ти кажа, че не е нужно да търсиш CONFIG_X86 из конфигурацията - обикновено си е включено по подразбиране, а и лесно можеш да го провериш още в първите редове на .config файла за ядрото. Файлът .config съдържа настройките, които виждаш визуално и с по-говорими имена в menuconfig. При компилиране на ново ядро можеш да намериш .config файла в папката с изходния код на ядрото, след първото изпълнение на menuconfig и избор да се запази конфигурацията при излизане (дори и да не е променяно нищо). За вече инсталирани ядра можеш да намериш съответния им .config файл в /usr/src/ядро/ папката.
« Последна редакция: Aug 30, 2013, 22:48 от neter »
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

g0shet0

  • Участници
  • ***
  • Публикации: 9
    • Профил
Re: Липсващи опции в menuconfig
« Отговор #6 -: Sep 02, 2013, 09:37 »
neter,

доста полезна информация .. благодаря ти!
Долу-горе ми се изясниха доста от нещата.
Днес продължавам с опитите и ще пиша като има нещо ново.
Активен

g0shet0

  • Участници
  • ***
  • Публикации: 9
    • Профил
Re: Липсващи опции в menuconfig
« Отговор #7 -: Sep 15, 2013, 22:16 »
Здравейте,

намерих хардуер който поддържа VT-d и имам доста голям напредък.
Вървя стъпка по стъпка от темата която ми изпрати neter https://bbs.archlinux.org/viewtopic.php?id=162768
Проблема ми е, че всички видео карти са в една IOMMU група, а трябва да са в различни за да мога да ги биндна към VFIO.
От същата тема във форума на Arch Linux има описание как да се справя с това.
Трябва да приложа следния пач - http://www.spinics.net/lists/kvm/msg92163.html
Някой може ли да ми обясни как да приложа този пач?

Предварително балгодаря!
Активен

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: Липсващи опции в menuconfig
« Отговор #8 -: 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 и провери имаш ли такъв код там
Код
GeSHi (C):
  1. return pci_dev_get(dev);
  2. }
  3.  
  4. static const struct pci_dev_acs_enabled {
  5. u16 vendor;
  6. u16 device;
  7. int (*acs_enabled)(struct pci_dev *dev, u16 acs_flags);
  8. } pci_dev_acs_enabled[] = {
  9. { 0 }
  10. };

Това е кодът, между който (след първите два реда и друго парче преди последните два) ще бъде добавен допълнителният код от patch-а. В patch-а редовете, които ще се добавят, са отбелязани с "+" отпред. Тези, които ще се махат (в случая няма такива) се отбелязват с "-", а тези, които ще си останат същите и служат само като указател (като редовете от кода по-горе) не се отбелязват с някакъв знак.
Та, ако имаш въпросния код на ред 3292 и той изглежда по същия начин, значи patch-ът ще го намери и ще направи промените там успешно.

Както вероятно и сам се усещаш, след като така и така си отворил файла, който трябва да се промени, намерил си къде ще се прилага промяната и знаеш каква промяна трябва да се направи от прочетеното в patch-а, нищо не ти пречи и ръчно да си копираш промените на указаните места и да не минаваш през patch командата, но това сега е твърде частен случай. Често patch-овете съдържат огромен брой промени, които никак не върви да ги правиш на ръка, така че е хубаво да си знаеш за patch командата и да можеш да се ориентираш в текста на patch-а.
И когато patch-ваш, ако не стигнеш да направиш поне някакво сравнение между вписаното в patch-а и наличното във файловете, които ще patch-ваш, то поне винаги проверявай дали версията на твоя изходен код съвпада с версиите, за които patch-ът се отнася - случвало ми се е от недоглеждане да приложа patch за несъответстваща версия, указателите да са се оказали недостатъчни, за да се хване несъответствието, patch-ването да мине успешно и след това да се чудя защо ми се чупи нещо :) Та... провери си пак версията на ядрото!
« Последна редакция: Sep 16, 2013, 21:25 от neter »
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

g0shet0

  • Участници
  • ***
  • Публикации: 9
    • Профил
Re: Липсващи опции в menuconfig
« Отговор #9 -: Sep 17, 2013, 09:17 »
Отново ти благодаря!
Доста ми помагаш .. имам да черпя много.
Успях да приложа кръпката и успешно да компилирам ядро 3.11.0.
След рестарт всичко работеше както трябва и видео картите вече са в различни IOMMU групи.
Успешно си бинднах тази която ще е за guest-a към VFIO.
Сега продължавам напред .. ще пиша довечера най-вероятно.
Надявам се вече да съм към края на сагата :)
Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
как да модул в make menuconfig
Настройка на хардуер
power 0 1554 Последна публикация Aug 29, 2004, 00:00
от power
ПРЕМЕСТЕНО: Липсващи опции в menuconfig
Системни настройки
neter 0 1353 Последна публикация Aug 29, 2013, 23:55
от neter