Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: Nik123 в Jan 11, 2020, 20:07



Титла: компилиране на ядро
Публикувано от: Nik123 в Jan 11, 2020, 20:07
Здравейте и честита Нова година на всички!  Не бях влизал в този форум отдавна, всъщност дори си бях забравил и паролата, с малко зор си я припомних. Ползвам вкъщи и в работата си дистрибуцията Mageia, версията е 6. От години просто ползвам тая диструбиция, или предходните- Mandriva, openMandriva, без да ми се налага да "човъркам" системата. Проблемът ми е следния- реших да компилирам ядро от kernel.org. Преди години съм го правил, поне 6-7 г. назад във времето, но са ми излезли от паметта някои детайли. Доколкото се сещам, make xconfig и make се правеха като юзър, make modules_install, make install, /sbin/ldconfig и update-grub  като root. Само че, някои пакети (като този на нвидия например) търсят сорса на ядрото в /usr/src/linux-(версия), а като юзър в тая директория няма да ми се получат нито конфига, нито мейк. Като юзър мога например в /home/user/src/linux-(версия) да направя конфига и мейк, а после като руут make modules_install и т.н., но тогава сорса на ядрото ще остане в /home/user/src/linux-(версия) и може да направи проблем, например ако инсталирам драйвъра за нвидията. Единият вариант, за който се сетих, е да направя конфига и мейк като юзър в /home/user/src/linux-(версия) и после да копирам цялата директория в /usr/src/linux-(версия) и оттам вече като root маке modules_install, make install и т.н. - ще се получи ли? Другият вариант е сорса в /usr/src/linux-(версия) и там всичко като руут- от конфига до край - проблем ли ще бъде, ако всичко съм направил като root ? Ползвах търсачката на форума, не намерих отговор на тези въпроси, поразтърсих се и в нета, освен това, което знам отпреди- че не е добре конфига и мейк да се правят от руута, поради съображения за сигурност, друго не намерих. Третото, което евентуално би причинило неприятности- ще има ли проблем с ъпдейта на GRUB, при положение, че при мен не е в MBR, а в /dev/sda6 (/boot партишъна), там съм го преместил, заради друг буутлоудър, който си иска непременно да е в MBR?
Благодаря предварително!

П.п. дистрибуцията е Mageia 6, x86_64, графичната среда Plasma, ядрото 4.14.119-desktop-1.mga6 #1 SMP, 8 GB РАМ, процесора Intel, двуядрен


Титла: Re: компилиране на ядро
Публикувано от: Nik123 в Jan 11, 2020, 23:16
С много ровене в търсачката тук, намерих стара своя тема отпреди няколко години-
https://www.linux-bg.org/forum/index.php?topic=44353.msg259198#msg259198 ($2)

И проблемът си намери решението-  "Единият вариант, за който се сетих, е да направя конфига и мейк като юзър в /home/user/src/linux-(версия) и после да копирам цялата директория в /usr/src/linux-(версия) и оттам вече като root маке modules_install, make install и т.н."

Поздрави!  [_]3

Едит: Ще пиша като приключа с ядрото, дали се е получило всичко нормално и с GRUB, който не е на дефолт мястото си в MBR.


Титла: Re: компилиране на ядро
Публикувано от: Naka в Jan 12, 2020, 13:09
Едит: Ще пиша като приключа с ядрото, дали се е получило всичко нормално и с GRUB, който не е на дефолт мястото си в MBR.

То така или иначе кодът който е в MBR 512байта (че и по малко) е не достатъчен да прочете файловаta система т.е. да се обърне към /boot.

Обаче този код зарежда еще един код който се намира в секторите след MBR-то и то преди първият дял. Наричат го stage2 (или stage1.5 според груб). Е та този код вече е достаъчно голям за да прочете файлова система /boot.
В онази тема, дето пуснах - как е направил инсталацията центос7
https://www.linux-bg.org/forum/index.php?topic=48679.msg312709#msg312709
/boot дяла започва от 2048 LBA сектор. Това са 2048x512=1Мb свободни сектори. Какво се намира между МБР-то началото на първата партиция?


Та по тази логика ако /dev/sda6 ти е някаква extended parttition би трябвало вторият код да има достатъчно 'капацитет' и да може да се обърне към /dev/sda6 и да бутне.
Какво ти е разделението на диска - MSDOS partition table или GPT? Аз щото винаги си правя MSDOS partition table (с максимум 4 дяла).
И на мен ми е интересно.

https://en.wikipedia.org/wiki/GNU_GRUB#/media/File:GNU_GRUB_components.svg


Титла: Re: компилиране на ядро
Публикувано от: Nik123 в Jan 12, 2020, 17:36
Здравей! Харддискът е един, sda. С две операционни системи- уин 7 (заради игрите и някои други неща) и Mageia 6.

Device: sda2 (Ц-то на уина)
DOS drive letter: C (just a guess)
Type: NTFS-3G (0x7)
Start: sector 206848
Size: 50GB (5% of disk), 106291200 sectors
Cylinder 12 to 6629

Device: sda3 (Д-то на уина)
DOS drive letter: D (just a guess)
Type: NTFS-3G (0x7)
Start: sector 106498048
Size: 683GB (73% of disk), 1433600000 sectors
Cylinder 6629 to 95866

Mount point: swap (Суапа на магеята)
Device: sda5
UUID: 8ba5b8bc-b241-46fd-adc2-ab51160c5bb5
Type: Linux swap (0x82)
Start: sector 1540100096
Size: 11GB (1% of disk), 25128919 sectors
Cylinder 95866 to 97430

Mount point: /boot (Тук е преместен и GRUB2 след доста четене в нета)
Device: sda6
UUID: f15af457-6db9-48f8-9543-f85be4ec8827
Type: Journalised FS: ext3 (0x83)
Start: sector 1565231104
Size: 5.4GB (0% of disk), 11364352 sectors
Cylinder 97431 to 98138

Device: mapper/luks-bd9be322-f0af-4a6e-b585-34cc369fe9ff
UUID: cd7aef9b-2e08-4ed7-8b19-ceb781b55c10
Type: Journalised FS: ext3 (0x83)
Start: sector
Size: 179GB (19% of disk), 376918465 sectors
Cylinder 0 to 23462
Formatted
Mounted
Encrypted- Това е / на магеята, криптирана е (sda7).

/boot не е криптирана

Двата уински дяла са криптирани с Truecrypt и заради буутлоудъра на Truecrypt, който иска непременно да е в MBR и затрива всичко друго там, се наложи да изчета доста и да преместя GRUB2 в /boot преди 2 години някъде, как точно го направих, не си спомням, май във форума на Suse намерих инфо, но беше голям зор - това го запомних.

sda1 са някакви 100 мб system reserved на уина.

При инсталация на по-ново ядро от хранилищата на магеята GRUB си се ъпдейтва. Ще видя как ще се получи с ванила ядрото, на теория не би трябвало да има проблем. Но първо да пачна сорса с някои неща и да го прекомпилирам на служебния комп, че той е с процесор i5, а лаптопа, за който ще е ядрото, е обикновен двуядрен интел и не ми се чака на него девет дена, осем часа make. Като го инсталирам на лаптопа, ще напиша резултата.


Едит: При старта на лаптопа зарежда буутлоудъра на Truecrypt и си иска ключа- ако го въведа, стартира уина. Ако му чукна искейп, ми вади меню коя от всичките партишъни да избера, избирам тая, дето е /boot и стартира GRUB2. Оттам буутвам магеята и иска ключа за нейната криптировка и тръгва.


Титла: Re: компилиране на ядро
Публикувано от: Nik123 в Jan 12, 2020, 18:20
Освен това, се сещам, след като прегледах стари публикации тук, че преди (поне 6-7 години), ванила ядрата, преди да се прекомпилират, за мандрива, още преди да стане магея, трябваше да се пачват със Supermount - http://supermount-ng.sourceforge.net/ ($2) - за да се маунтват автоматично сидиромите и флопитата, и netfilter (за да върви и манди демона)- http://ipset.netfilter.org/install.html ($2)

Само че, в страницата на Supermaunt пише в момента "Availability

Current version for kernel 2.4  is 1.2.11a. Patches are available for the following kernel versions (not all of them have been tested by me)
 Current version for kernel 2.6 is 2.0.4. Patches are available for the following kernel versions:

    kernel 2.6.1 gzipped and md5sum

    kernel 2.6.2 gzipped and md5sum

А ядрата отдавна прехвърлиха версия 2.6 - аз го разбирам, че супермаунта не е бил развиван след ядро 2.6, а за нетфилтър-

"In order to use IP sets, you need the following sources

    For the new branch
        linux kernel source code (version >= 2.6.32)
        source of ipset: ipset-7.5.tar.bz2 (md5sum)
    For the old branch
        linux kernel source code (version >= 2.6.16 or >= 2.4.36)
        source of ipset: ipset-4.5.tar.bz2 (md5sum) "

- пак доста стари версии ядра.

 Та, преди да почна компилацията на current version kernel-a от сорс- 5.4.10, имам две неизяснени въпросчета- това в сайтовете на супермаунта и нетфилтъра означава ли, че вече тези "неща" не се поддържат/развиват и дали са вкарани вече в сорса на самото ядро и няма нужда от пачване?


Титла: Re: компилиране на ядро
Публикувано от: Naka в Jan 12, 2020, 18:59
Ти с тоя супермаунт ме хвърли в джаза. :o Това нещо не съм го виждал от времето на Мандрейк. След това преминах на редхат и федорите, а там нямаше такова нещо а сд - ромите се монтираха авоматично и от тогава престанах да си задавам въпроса как аджеба става това нещо.  [_]3

Сега xfce то много услужливо ги монтира и се появават на иконки и пак не си задавам въпроса как става. Вероятно има някакъв друг механизъм.


Титла: Re: компилиране на ядро
Публикувано от: Nik123 в Jan 12, 2020, 19:18
Ами аз с прекомпилиране на ядро от бая години не съм се бъзикал  ;D Сега си припомням някои неща. Ще пиша какво е станало, като приключа и инсталирам 5.4.10 на магеята.


Титла: Re: компилиране на ядро
Публикувано от: ray в Jan 12, 2020, 19:41
Последно компилирах ядро преди 4-5 години, но си беше и баш custom-kernel.
Повечето неща бяха вградени в ядрото (не като модули) и се поддържаше само хардуера на машината (по-малко по обем ядро).
Плюс оптимизации за процесора (не че има особена полза, дават около 5-10 процента ускорение).
Но можеш да пачваш с много неща, за какво ли не (тогава например ползвах reiser4 и разни ядра с повишена сигурност, RSBAC etc.)

В този период (6-7 години) ползвах основно Gentoo, там нямаше бинарни ядра, само от сорс (сега не знам как е).

Може да погледнеш в документацията на Gentoo (според мен е доста добра) как се компилира там ядро.
Успех !


Титла: Re: компилиране на ядро
Публикувано от: jet в Jan 12, 2020, 20:06
Ако дистрото което ползваш вече не се поддържа, по-добре помисли да минеш на нещо по-съвременно. Проблемите със сигурността нама да ти се решат само с по-ново ядро- системните библиотеки също трябва да се обновяват, както и графичната среда.


Титла: Re: компилиране на ядро
Публикувано от: Nik123 в Jan 14, 2020, 00:18
Омаза се всичко. Прекомпилирах ядрото, инсталирах го, при make install ми каза, че не открива GRUB и само initrd щяло да оправи (нещо тако ва, на инглиш). След инстала му дадох update-grub, намери си го и направи, каквото трябва. И почнаха проблемите- след старт в новото ядро, dkms започна да компилира модулите за нвидия и broadcom-wl за безжичния адаптер и умря. Чаках го три часа и нещо. Рестарт в recovery mode, махнах дкмс-броадкома и дкмс-нвидията. В инит 3, като руут, инсталирах директно драйвъра от сайта на нвидия. Пита ме искам ли с дкмс, при инстала, направих грешката да чукна Y и всичко заби. Писна ми, накрая се върнах в старото ядро на магеята, в recovery mode- root - init 3 - сложих пак dkms-broadcom-wl и dkms-nvidia304 и зависимостите им, уж всичко окей, startx- и плазмата ми извади съобщение, че не може да зареди, защото нямало proprietary GL, да съм си преконфигурирал X-a. Добре, FXdrake като руут в инит 3- лаптопа е с две карти, задавам му нвидията- не му харесва при тест, нещо да съм променял. ОК, пак FXdrake, задавам му интелската карта- драйвъра- уж всичко ок, тест- ок, казва ми да рестартна- рестартвам. И пак плазмата не зарежда заради нещо си GL и ми казва да си променя конфигурацията на X-a. И се отказах, сега пиша от уина. Всичко работи под линукса, без графичната среда. Има нет, маунтва, декриптира. Ама Х няма. Някакви идеи как да "зануля" Х-а и да го подкарам пак? В старото ядро на магеята? Благодаря предварително!


Титла: Re: компилиране на ядро
Публикувано от: Naka в Jan 14, 2020, 01:08
Цитат
Някакви идеи как да "зануля" Х-а и да го подкарам пак? В старото ядро на магеята?

Аз винаги саъм слагал драйверите на nvida от сайта н nvidia и винаги е ставало. Това е един много добре напрвен скрипт който се опитва да компилира кърнелският модул и качва GL библиотеките. Изобщо всичко пачосва и оправя по системата. Оправя и xorg.conf Навсякъде се съгласяваш.

Трабват ти обаче dev пакетите за кърнела с който ще работиш и dev-a на X-а. Ама ти сигурно ги имаш.

Преди много пъти съм се отзовавал в тази ситуация да нямам X. Омотват се нещо кърнелския модул на nvidia и Gl библиотеките. Пуска се скрипта от init 3 а след това след инит 5 всичко заработва.


Също алтернатива, но за по-нататък, ако всичко мине успешно е с опцията --add-this-kernel да си направиш собствен бинарен пакет за кърнела  и ако нещо пак замаже само го стартираш вече готовия пакет и (без да компилираш) инсталира.
https://www.linux-bg.org/forum/index.php?topic=48202.msg306259#msg306259


Титла: Re: компилиране на ядро
Публикувано от: jet в Jan 14, 2020, 02:15
Или пробваш скрипта от smxi.org

wget -Nc smxi.org/sgfxi && chmod +x sgfxi && sgfxi

И той е като Панасоник - натискаш копчето и прави всичко.


Титла: Re: компилиране на ядро
Публикувано от: Nik123 в Jan 14, 2020, 14:00
Благодаря за инфото! Предполагам, преди да инсталирам (или да опитам отново, по-скоро) драйвъра на нвидия от сайта им, трябва пак да премахна dkms-nvidia304 (моя драйвър в момента)? И още нещо, не ми е ясно как Х-а включва някоя от двете карти (лаптопа има и вградената интелска, и нвидия 705м)? На интелската уж след FXdrake всичко ок, ама.. GL.

Едит: Да, девел пакетите на Х-а и кернела ги имам, тоя на магеята.


Титла: Re: компилиране на ядро
Публикувано от: Naka в Jan 14, 2020, 15:31
Предполагам, преди да инсталирам (или да опитам отново, по-скоро) драйвъра на нвидия от сайта им, трябва пак да премахна dkms-nvidia304 (моя драйвър в момента)?
Вероятно.
Но инсталиращият скрипт на nvidia някъде по средата усеща, че има друг кърнелси модул и услужливо те пита дали да го blacklist-ва. поне това го прави за свободният драйвер nouveau.
в  /etc/modprobe.d/ имам файл nvidia-installer-disable-nouveau.conf
със следното съдържание:

# generated by nvidia-installer
blacklist nouveau
options nouveau modeset=0



Цитат
И още нещо, не ми е ясно как Х-а включва някоя от двете карти (лаптопа има и вградената интелска, и нвидия 705м)? На интелската уж след FXdrake всичко ок, ама.. GL.
ами инстал скрипта също те пита дали да направи xorg.conf
# nvidia-xconfig: X configuration file generated by nvidia-xconfig
# nvidia-xconfig:  version 440.44

...

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
EndSection

....


А как се оправят с GL билиотеките, MESA и т.н. не ми е ясно. най-вероятно интел-ползва свободната mesa а nvidia-та качва собствени затворени библиотеки - ама тя затова и е по-бърза.

Просто пробвай. Само да не си с Nvidia Optimus..Че там с превключването ми е пълна мъгла.



Титла: Re: компилиране на ядро
Публикувано от: makeme в Jan 14, 2020, 16:01

Просто пробвай. Само да не си с Nvidia Optimus..Че там с превключването ми е пълна мъгла.

До колкото разбрах покрай тая ($2) тема, нвидия драйвера не поддържа автоматично превключване под линукс. Така че или ползваш нвидията, или интела. Не става като под уиндоуса. Също така, както написах и там бъмбъла при мен само скапа нещата :) Даже не знам дали въобще работи с нвидия драйвера, или е направен само за свободния.
В темата съм дал и картинка от gui-то на нвидията за превключване, ма иска рестарт.


Титла: Re: компилиране на ядро
Публикувано от: Nik123 в Jan 14, 2020, 19:49
Омаза се всичко и то здраво. Стартирах рикавъри мода в последното налично ядро на магея 6- 4.14.145. Руут, инит 3. Махнах дкмс-нвидия. Инсталирах драйвъра за картата ми на нвидия (GF705M). Install completed, без грешки. Инит 5 > Plasma is ulnable to start as it could not correctly use OpenGL 2. Please check that your graphics drivers are set up correctly. И блокаж. Няма ctrl-alt-del, няма ctrl-alt-backspace. Хард шътдаун от копчето. Аз обаче не се отказвам. Риковъри мод на същото ядро, руут, инит 3. XFDrake, от менюто му избрах Nvidia GF 6100 to GF7950 - другите нямаха дори и нещо близко до 705М. Извади ми "There is a proprietary driver.... do you wan to use it?" Това щеше да докара пак дкмс-нвидия, избрах No, после тест- "Fatal error- try to change some parameters". Чейндж на какво ли не- дръжки. Пак отначало, след рестарт. Руут, инит 3, XFdrake и "Proprietary driver.. " избрах Yes. Инсталира дкмс-нвидия. Пoчна да компилира модула и някакви грешки при компилацията.. вероятно защото се омазаха нвидията от сайта им и дкмс. Доста псувни, пак "Plasma is unable..". рестарт в най-стария кернел, с който си инсталирах магея 6- 4.14.35. urpme dkms-nvidia304 и всичките й зависимости. Инит 3, руут. sh NVIDIA.. драйвъра от сайта на нвидия. Error - драйвъра на нвидия бил компилиран с по-нова версия gcc, отколкото кернела, "continue anyway?" > "Yes"- и естествено, мазало. Restart.  Не си спомних как се деинсталира драйвъра от сайта на нвидия- беше нещо като NVIDIA -- uninstall, но преди 6-7 години. Теглих една майна и ударих още една ракия. Рестарт > рикавъри мод в най-стария кернел 4.14.35- руут, инит 3- XFdrake - за видеокартата избирам Intel 810 and later- test- всичко ок, вади оная графика на вертикални линии, като на телевизор "Велико Търново" от едно време- всичко ок уж. Инит 5- "Plasma is unable to start.... GL 2" дрън-дрън. Накрая ми писна. Root в същото ядро, recovery, init 3- urpme всичките кернели, сорсове и девел пакетите им, плюс make clean на тоя, който компилирах ръчно. Сега съм с първоначалното ядро на магеята, от инсталацията, 4.14.35, сорса му и хедърите, девел пакета. Нямам Х, защото и в това ядро го омазах с нвидиите. Но има нет, криптографията, маунта, всичко бачка. Сега пиша от уина. Отпуснах се с приказки, защото оценявам усилията за помощ на писалите в тази тема колеги и смятам за нормално да опиша резултата от темата. Преди да взема крайното решение за преинсталация (по-скоро за инсталация на следващата версия- магея 7)- има ли начин да изчистя тотално Х-а и да го инсталирам наново, "девствен" и да му направя настройката, както при първоначална инсталация? Идеята ми е, нов Х, после инсталл на последното ядро заедно със сорса и девела от репосите на магея 6, и после инсталл на драйвърите за видеото в чисто ново ядро и чисто нов Х? Може ли да се получи, и как? Конкретно, за ядрото ясно, но има ли начин да разкарам целия Х и да го сложа наново? Благодаря предварително!


Титла: Re: компилиране на ядро
Публикувано от: 4096bits в Jan 14, 2020, 21:55
Нямал съм проблем с Optimus под Linux - включително Bamblebee. Intel 4600 + nVidia GT 755M. А и всички карти с nVidia след определн модел чип ( не помня, кой беше ), са с Optimus.
Просто, каквото трябва да се пусне с втората карта, се пуска с optirun <axecutable>.


Титла: Re: компилиране на ядро
Публикувано от: ray в Jan 15, 2020, 06:05
Доколкото разбрах от прочетеното при компилиране на ново ядро ползваш дефолт конфига от сорса на ядрото, така ли е?

Много по-добре би било да ползваш конфига на някое ядро на Мегейа (/proc/config | /proc/config.gz) някои дистрибуции записват конфига и в /boot или /boot/grub (не помня точно).

dkms си има опции за премахване или билдване и инсталиране на модули според ядрото.
Например при мен (най-често ползвам EndeavourOS, Arch-based) при инсталация на ново ядро или нещо което ползва dkms процеса си пуска сам hooks за премахване на старите модули и после билдване и инсталиране на новите (напр.Virtualbox).
Та виж/потърси как беше синтаксиса на dkms, ако не стане или не намериш пиши ще ги изровя  8)

Друго за което се сещам е че можеш да компилираш ядрото и в /usr/src/linux-X.X.X, виж каква е групата собственик на папките и или се добави към нея (твоя потребител) или ако е root я смени с друга, някаква където си и ти (wheel, sudo или нова някаква).

PS: тъй като току-що приключи компилирането на обновено ядро и след това dkms ребилдва модулите ето какво излиза в конзолата:
(2/2) Remove DKMS modules
==> dkms remove broadcom-wl/6.30.223.271 -k 5.4.10-rt5-1-rt-bfq
==> dkms remove vboxsf/6.1.2_OSE -k 5.4.10-rt5-1-rt-bfq
==> dkms remove xtables-addons/3.7 -k 5.4.10-rt5-1-rt-bfq
==> dkms remove vboxhost/6.1.2_OSE -k 5.4.10-rt5-1-rt-bfq
:: Обработване на промените в пакета...
(1/2) актуализиранe linux-rt-bfq                                                                                                                                                                [########################################################################################################################] 100%
(2/2) актуализиранe linux-rt-bfq-headers                                                                                                                                                        [########################################################################################################################] 100%
:: Пускане на след-транзакционни куки...
(1/4) Arming ConditionNeedsUpdate...
(2/4) Updating module dependencies...
(3/4) Install DKMS modules
==> dkms install vboxsf/6.1.2_OSE -k 5.4.10-rt5-2-rt-bfq
==> dkms install vboxhost/6.1.2_OSE -k 5.4.10-rt5-2-rt-bfq
==> dkms install xtables-addons/3.7 -k 5.4.10-rt5-2-rt-bfq
==> dkms install broadcom-wl/6.30.223.271 -k 5.4.10-rt5-2-rt-bfq
(4/4) Updating linux initcpios...

Това го пускам само като пример и информация, иначе почти сигурно ремо е прав за версиите на компилатора (при Арч нямам подобни проблеми).


Титла: Re: компилиране на ядро
Публикувано от: remotexx в Jan 15, 2020, 08:15
и моите 5 ст.
Error - драйвъра на нвидия бил компилиран с по-нова версия gcc, отколкото кернела, "continue anyway?" > "Yes" - това е груба грешка! Не съм експерт по Магеята... даже и начинаещ не съм, но съм се борил с това... и впоследствие минах на готови ядра от пакетния мениджър (не помня вече под Дебиян или Федора беше) щото там ти е гарантирано че ядрото (от пакета) е баш компилирано с инсталираното gcc (от пакета) като са му резолванти всички зависимости.
Явно след компилиране на ядрото е обновил gcc колегата, и то с по-нова версия и то с breaking changes... (и пак няма гаранция че ако съвпадаха щеше да му тръгне де - да не давам напразни надежди)

и второто нещо - със толкова стари ядра, ти трябва не само стар (модел) драйвер, ами и за съответното ядро. Проблемът е че има само по един пакет на модел/версия и (особено по дъртите) поддържат ограничен  бр. ядра т.е. напр. совен че гледаш да 705-хх ами и вътре четеш поддъражани ядра и се молиш твойто да е вътре щото напр. няма да намериш 705-хх за ядро 1.х ..за 2.х не съм сигурен за 705 ама за последната версия нВидия със сигурност няма да намериш пакет за ядро 2.х може би и за 3.х

Защото kernel API се променя и оттам и хедърите.. аз както вече казах отдавна не се боря с прекомпилиране на ядра и/ли драйвери но... (прав е бил Омуртаг навремето - човек и добре да живее - се жени...тъй де вие ме разбрахте) та ща не ща имам виртуалки с ВиртуалБокс и там с почти всяко ново ядро (с Федора съм там) гърми по нещо (най-вече vboxfs) щото ядрото е бая по-напред и се чакам ВБокс да наваксат ..и то с некви смешни пачове едноредови (някой път и малко по-големшки) колкото само да прекръстят една структурка или само са преименували едно поле вътре и това счупва всичко - и това при положение че версията на gcc съвпада м/у ядрото и драйвъра, само дето ядрото е (все още) неподдържана версия от тоя драйвър (обик. ВБокс назадва)

та в тоя ред на мисли - сугирен ли си че баш тая версия ядро за което компилираш е поддържана?
..мисля тия старите поддържат ограничен брой ядра от-до и се дънят на всичко извън интервала т.е. както на по стари така и на по-нови но неподдържани /дори и от стара серия - напр. поддържат 2.4 до 2.6.0 то 2.2 и 2.6.4 са кофти, неподдържани/ (нямам представа 705-хх коя по ред е - нВидията ги отбих още докато бяха само 1-2 версии е айде 3 ама отначало имаше само една, поддържаща ядра 2.х и нагоре, после станаха legacy & current и тамън като ги отбих станаха вече 3 и по номера, та сега ми  е трудно да се ориентирам 705 къде е долу/горе/средата и от колко версии/модела 5-10-..., но ако е бая старо и са казали че  напр. ядро 2.6.0 е макс поддържано и няма повече да го поддържат 705-хх драйвера а напр. в момента най-новото ядро от 2.6 серията е 2.6.8 то това последното никога няма да бъде поддържано вече от стария драйвър)
Е, тя обик. разликата не е някоя от по-главните цифрите след ядрото ами само в патч номера, ама то и това стига да ти провали билда ..и чакаш докато пачнат драйвера (ако още се поддържа) ...до едно време старите помня ги поддържаха но рилийзи само при излизане на по-главна версия т.е. не със всеки патч на ядрото (старите ядра и карти де)


Титла: Re: компилиране на ядро
Публикувано от: makeme в Jan 15, 2020, 09:24
Нямал съм проблем с Optimus под Linux - включително Bamblebee. Intel 4600 + nVidia GT 755M. А и всички карти с nVidia след определн модел чип ( не помня, кой беше ), са с Optimus.
Просто, каквото трябва да се пусне с втората карта, се пуска с optirun <axecutable>.
На теория това е така, но при мен на леновото (intel 630 + 1550ti) не се получиха нещата. Със свободния драйвер (nouveau/mesa) плазмата почти не работеше. Крашваше, циклише и в момента когато дадеш от UI-а рестарт-шътдаун и прочие, всичко свършваше. За това и по-горе попитах дали работи с драйвера от нвидия или само със свободния. Отделно, май на новите лаптопи вече не става (мое съмнение).

Накрая решението беше (както и ремо каза) да си оставя системата да си го инсталира коректно (kUbuntu 18.04):
Код:
sudo ubuntu-drivers autoinstall

Ето и тема със същия казус:
https://askubuntu.com/questions/1042057/nvidia-drivers-problem-on-kubuntu-18-04

Принципно нямаше да я дам, понеже колегата не е с Ubuntu, но гледам че проблемът е подобен.


Титла: Re: компилиране на ядро
Публикувано от: 4096bits в Jan 15, 2020, 12:42
Искаш да кажеш, че чисто новият ми лаптоп няма да може да ползва и двете карти по едно и също време?
Тъкмо мислех да се охарча за още едно ssd, че не ми се цепеше диска с Windows - вече инсталирана система.


Титла: Re: компилиране на ядро
Публикувано от: makeme в Jan 15, 2020, 22:57
Искаш да кажеш, че чисто новият ми лаптоп няма да може да ползва и двете карти по едно и също време?
Тъкмо мислех да се охарча за още едно ssd, че не ми се цепеше диска с Windows - вече инсталирана система.
Ми не мога да кажа със сигурност, но на такова ми мирише  ::) Не знам друг човек с RTX и да е надъхан за линукс и чакам да се пробваш ти, че да кажеш  ;)


Титла: Re: компилиране на ядро
Публикувано от: Nik123 в Jan 17, 2020, 20:49
Гледам, че доста се разви темата :) И аз да я доразвия малко - имам известен напредък, не с компилирането на последното ванила ядро, тая идея я изоставих.  Това, което направих е, да махна Х-а (urpme x11-server-common x11-server-xorg), всичко, що съдържа в себе си "dkms-nvidia" и абсолютно всички ядра със сорсовете им, хедърите (-devel пакетите), освен най-старото ядро, с което си идва магея 6. Това под най-старото ядро го направих, recovery mode, root, init 3. Reboot за всеки случай, recovery mode в най-старото ядро, root, init 3. Инсталирах наново X-a, последното налично ядро в репосите на магея 6 (4.14.145-2) със сорса му и хедърите. Reboot в това последното ядро, XFdrake, пробвах да му задам нвидията като видеокарта, пита ме There is a proprietary driver, do you want to use it.. Yes/No - избрах този път No - и не става, Try to change some parameters. Пак XFdrake, от менюто за видеокарта- Intel 810 and later- Test- уж всичко ОК. Init 5- Plasma is ulnable to start as it could not correctly use OpenGL 2. Please check that your graphics drivers are set up correctly. И блокаж. Изключих с твърд шътдаун, от копчето. Старт, реших да експериментирам - направо нормален буут в последното ядро- 4.14.145-2. Изненада- графиката тръгна (настройката на Х-а е с интелската видеокарта - 810 and later, вади дисплей мениджъра с юзъра ми. Избрах си юзъра, обаче вместо Plasma за сесията избрах LXDE. Графиката стартира, всичко работи, даже не ми се вярваше. Аз по принцип си харесвам LXDE заради лекотата му на работа, настроих си го, кирилица, аплети по панела, които ползвам, лаунчъри на програми. Графичната среда работи, нет има, криптография има, маунтва флашки и оптични дискове. Пробвах обаче да пусна вайбъра и крашва (преди тия омазвания на плазмата и ванила ядрото работеше). Пуснах го през терминал и ето резултата:
[nik@localhost ~]$ viber
WebEngineContext used before QtWebEngine::initialize() or OpenGL context creation failed.
Qt WebEngine ICU data not found at /opt/viber/resources. Trying parent directory...
Qt WebEngine resources not found at /opt/viber/resources. Trying parent directory...
Qt WebEngine ICU data not found at /opt/viber/resources. Trying parent directory...
Qt WebEngine resources not found at /opt/viber/resources. Trying parent directory...
QGLXContext: Failed to create dummy context
qml: type=""
qml: type=""
failed to acquire GL context to resolve capabilities, using defaults..
qml: type=""
Failed to create OpenGL context for format QSurfaceFormat(version 2.0, options QFlags<QSurfaceFormat::FormatOption>(), depthBufferSize 24, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize 8, stencilBufferSize 8, samples -1, swapBehavior QSurfaceFormat::SwapBehavior(DoubleBuffer), swapInterval 1, profile  QSurfaceFormat::OpenGLContextProfile(NoProfile))
/bin/viber: line 3: 25320 Aborted                 (core dumped) LD_LIBRARY_PATH=/opt/viber/lib QT_AUTO_SCREEN_SCALE_FACTOR=0 /opt/viber/Viber
[nik@localhost ~]$

От което ми се наби в очите "Failed to create OpenGL context for format.." "failed to acquire GL context to resolve capabilities, using defaults..".. а на плазмата проблема й беше  "Plasma is ulnable to start as it could not correctly use OpenGL 2."
Проблемът явно е в тия Open GL библиотеки. Въобще не съм специалист по линукс и видеодрайвъри, просто ми се набива на очи това OpenGL. Явно прави някакъв проблем с него. И тоя проблем стана след като се пробвах с компилацията на ядро от кернел.орг и dkms-nvidia. Стартирах контрол центъра на LXDE и поразгледах опциите да пусна нвидията (очевидно в момента съм с драйвъра intel810 and later). В секцията Hardware- после Setup your videocard and monitor поразгледах нещата. NVIDIA секцията я пропуснах, отидох на Xorg и там има nouveau и nv, които, от общата ми култура и тая тема също, знам, че подкарват видеокартите на нвидия. Мога ли да избера някое от тия двете- nouveau, или nv и какъв е варианта пак да се върна на началното ниво- без X ?

Едит: Не че с intel810 or later както е сега LXDE, не работи компа с графика, но вайбъра ми е удобство на лаптопа и ми е необходим. Изглежда и неговия проблем е с Open GL, затова ми се ще да оправя нвидията, а покрай нея и вайбъра да тръгне, че и плазмата  [_]3


Титла: Re: компилиране на ядро
Публикувано от: Nik123 в Jan 17, 2020, 21:31
Вече пробвах и двата варианта. При nouveau приключва след тест с Try to change some parameters.. и да ги сменям параметрите, не тръгва, а след nv- no package named x11-driver-video-nv. И наистина няма такъв пакет в хранилищата

Edit: Пробвах и с dkms-nvidia отново (от репосите на магеята), не става, Try to change some parameters след Test (това след конфигуриране на картата ми с нвидия драйвър през LXDE контрол центъра). Сега графиката работи с LXDE и с интелския драйвър. Някакви идеи как да оправя вайбъра и проблема му с OpenGL?


Титла: Re: компилиране на ядро
Публикувано от: makeme в Jan 17, 2020, 22:44
Ники, някой горе спомена Mesa. Това е реално драйвера/апито/библиотеката за opengl. Честно да ти кажа и аз съм объркан кое, как работи и мислих че е вградено в nouveau, но явно не е. Та може да провериш и там как стоят нещата с пакети mesa* или нещо такова.

За проверка, при мен има един пакет mesa-utils. В него има glxinfo и glxgears. Може да го инсталираш и да видиш как стоят нещата с :
Код
GeSHi (Bash):
  1. $ glxinfo | grep "OpenGL version"
  2. OpenGL version string: 4.6.0 NVIDIA 440.48.02

Щом не ползваш драйвера от нвидия при теб това "NVIDIA 440.48.02" трябва да изглежда нещо от рода на "(2.1 Mesa 7.7.1)". Ако пък даде грешка или не може да разпознае драйвера за опенгл, значи ти липсва :)





Титла: Re: компилиране на ядро
Публикувано от: Nik123 в Jan 17, 2020, 23:05
С още малко зор.. резултата е този :

[root@localhost ~]# urpmq -y mesa
lib64mesaegl1
lib64mesaegl1-devel
lib64mesagl1
lib64mesagl1-devel
lib64mesaglesv1_1
lib64mesaglesv1_1-devel
lib64mesaglesv2_2
lib64mesaglesv2_2-devel
lib64mesaglu1
lib64mesaglu1-devel
lib64osmesa-devel
lib64osmesa8
mesa
mesa-common-devel
mesa-demos
[root@localhost ~]# urpmi mesa
Package mesa-17.3.9-1.mga6.x86_64 is already installed
[root@localhost ~]# urpmi libmesagl1 libmesagl1-devel
No package named libmesagl1
No package named libmesagl1-devel
[root@localhost ~]# urpmq -y mesa
lib64mesaegl1
lib64mesaegl1-devel
lib64mesagl1
lib64mesagl1-devel
lib64mesaglesv1_1
lib64mesaglesv1_1-devel
lib64mesaglesv2_2
lib64mesaglesv2_2-devel
lib64mesaglu1
lib64mesaglu1-devel
lib64osmesa-devel
lib64osmesa8
mesa
mesa-common-devel
mesa-demos
[root@localhost ~]# urpmi mesa
Package mesa-17.3.9-1.mga6.x86_64 is already installed
[root@localhost ~]# urpmi lib64mesagl1 lib64mesagl1-devel
Packages lib64mesagl1-devel-17.3.9-1.mga6.x86_64, lib64mesagl1-17.3.9-1.mga6.x86_64 are already installed
Marking lib64mesagl1-devel as manually installed, it won't be auto-orphaned
writing /var/lib/rpm/installed-through-deps.list
[root@localhost ~]# glxinfo
name of display: :0.0
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  153 (GLX)
  Minor opcode of failed request:  24 (X_GLXCreateNewContext)
  Value in failed request:  0x0
  Serial number of failed request:  38
  Current serial number in output stream:  39
[root@localhost ~]# urpmq -y glx
glxinfo
lib64qt5glxsupport-static-devel
lib64xcb-glx0
nexuiz-glx
[root@localhost ~]# urpmi glxinfo
Package glxinfo-8.3.0-1.mga6.x86_64 is already installed
Marking glxinfo as manually installed, it won't be auto-orphaned
writing /var/lib/rpm/installed-through-deps.list
[root@localhost ~]# urpmi lib64xcb-glx0
Package lib64xcb-glx0-1.12-2.mga6.x86_64 is already installed

А след опит през графиката (контрол центъра на LXDE) да настроя видеото с драйвъра nouveau (Xorg-video-driver-nouveau)- вади това -
An error occurred:
(EE)
Fatal server error:

Try to change some parameters

И никакви чейнджове на параметри не изчейнджват тоя резултат.
[nik@localhost ~]$ glxinfo | grep "OpenGL version"
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  153 (GLX)
  Minor opcode of failed request:  24 (X_GLXCreateNewContext)
  Value in failed request:  0x0
  Serial number of failed request:  38
  Current serial number in output stream:  39
[nik@localhost ~]$ glxinfo | grep "OpenGL version"
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  153 (GLX)
  Minor opcode of failed request:  24 (X_GLXCreateNewContext)
  Value in failed request:  0x0
  Serial number of failed request:  38
  Current serial number in output stream:  39
[nik@localhost ~]$ glxinfo
name of display: :0.0
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  153 (GLX)
  Minor opcode of failed request:  24 (X_GLXCreateNewContext)
  Value in failed request:  0x0
  Serial number of failed request:  38
  Current serial number in output stream:  39
[nik@localhost ~]$

Edit: Без да искам, съм копирал два пъти едно и също нещо по-горе. Ще пробвам за последно с дкмс-нвидия304, която работеше, преди да оцапам всичко с опита за прекомпилиране на ярдото от кернел.орг и ако не стане, мисля за преинсталация.


Титла: Re: компилиране на ядро
Публикувано от: Nik123 в Jan 17, 2020, 23:18
И в крайна сметка :

To satisfy dependencies, the following packages are going to be installed:
=> ok(auto)


retrieving rpm files from medium "Nonfree Updates (distrib13)"...
    $MIRRORLIST: media/nonfree/updates/nvidia304-doc-html-304.137-2.mga6.nonfree.x86_64.rpm
    $MIRRORLIST: media/nonfree/updates/x11-driver-video-nvidia304-304.137-2.mga6.nonfree.x86_64.rpm
    $MIRRORLIST: media/nonfree/updates/dkms-nvidia304-304.137-2.mga6.nonfree.x86_64.rpm
retrieved $MIRRORLIST media/nonfree/updates nvidia304-doc-html-304.137-2.mga6.nonfree.x86_64.rpm x11-driver-video-nvidia304-304.137-2.mga6.nonfree.x86_64.rpm dkms-nvidia304-304.137-2.mga6.nonfree.x86_64.rpm
...retrieving done
installing nvidia304-doc-html-304.137-2.mga6.nonfree.x86_64.rpm dkms-nvidia304-304.137-2.mga6.nonfree.x86_64.rpm x11-driver-video-nvidia304-304.137-2.mga6.nonfree.x86_64.rpm from /var/cache/urpmi/rpms
starting installing packages
created transaction for installing on / (remove=0, install=0, upgrade=3)

Creating symlink /var/lib/dkms/nvidia304/304.137-2.mga6.nonfree/source ->
                 /usr/src/nvidia304-304.137-2.mga6.nonfree

DKMS: add Completed.

Preparing kernel 4.14.145-desktop-2.mga6 for module build:
(This is not compiling a kernel, just preparing kernel symbols)
Storing current .config to be restored when complete
Running Generic preparation routine
make mrproper.....
using /proc/config.gz
make oldconfig.....
make prepare....

Building module:
cleaning build area....
'make' -j2 SYSSRC=/lib/modules/4.14.145-desktop-2.mga6/build module............
cleaning build area....
cleaning kernel tree (make mrproper).....

DKMS: build Completed.

nvidia304.ko.xz:
 - Installation
   - Installing to /lib/modules/4.14.145-desktop-2.mga6/dkms/drivers/char/drm/

depmod......

DKMS: install Completed.
removing installed rpms (nvidia304-doc-html-304.137-2.mga6.nonfree.x86_64.rpm dkms-nvidia304-304.137-2.mga6.nonfree.x86_64.rpm x11-driver-video-nvidia304-304.137-2.mga6.nonfree.x86_64.rpm) from /var/cache/urpmi/rpms
----------------------------------------------------------------------
More information on package x11-driver-video-nvidia304-304.137-2.mga6.nonfree.x86_64
This driver is for GeForce 6xxx and GeForce 7xxx cards.

Use XFdrake to configure X to use the correct NVIDIA driver. Any needed
packages will be automatically installed if not already present.
1. Run XFdrake as root.
2. Go to the Graphics Card list.
3. Select your card (it is usually already autoselected).
4. Answer any questions asked and then quit.

If you do not want to use XFdrake, see README.manual-setup.

----------------------------------------------------------------------
unlocking urpmi database
unlocking rpm database

Изглежда ОК. И след TEST
An error occurred:
(EE)
Fatal server error:

Try to change some parameters
Това го вади в прозорец, бях пуснал lxde-control-center като руут през терминала. Не ще и това е.


Титла: Re: компилиране на ядро
Публикувано от: Naka в Jan 18, 2020, 09:47
Цитат
отидох на Xorg и там има nouveau и nv, които, от общата ми култура и тая тема също, знам, че подкарват видеокартите на нвидия. Мога ли да избера някое от тия двете- nouveau, или nv и какъв е варианта пак да се върна на началното ниво- без X ?

В xorg.conf за драйвер може да имаш 3 варянта: nv, nouveau и nvidia.
nv и nouveau са свободните. nv беше първият свободеден драйвер (разбира се reverse engineered). след това казаха ами ще правим по нов и съвършен и направиха nouveau. Само че дето nouveau не винаги работи както трябва, аз много често връщам на nv.

А nvidia е за затвореният официален драйвер. Като слагаш nonfree free пакет променяш ли в xorg.conf

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
EndSection


Също можеш да изтриеш (или да го преимуваш) xorg.conf и да видиш как ще се държи. Справят се отлично и автоматично и без xorg.conf.

Но това за оптимус май не трябва да е така и там да си остане intel.  ??? ??? ???при оптимус 2д графиката и елементарната 3д трябва да се прекарва през интела. ???

Цитат
Изключих с твърд шътдаун, от копчето. Старт, реших да експериментирам - направо нормален буут в последното ядро- 4.14.145-2. Изненада- графиката тръгна

Рестарт, reset и shutdown не винаги са еквивалентни. Точно такова поведение съм ги наблюдавал при нвидиите. затова хубаво е да се минава през гасене на захранването.

Представи си че от поредното неуспешно нагласяне накой (грешен) драйвер е иницилизирал регистри в чипа на nvidia по негов си (неправилен) начин. След рестарт тези регистри не се нулират, а картата си остава неправилно инициализирана. А след рестарт новият правилен драйвер, ползва предната хардуерна инициализация и се 'подвежда' - в резулта на което имаме направилна работа. Това може да се случи със всеки хардуер.

А дали reset и shutdown са еквивалентни. Много ми се ще да изпофилософствам. >:D Би трябвало да са 99.9% еквивалентни. Само че Ако някои части на чипа не са свързани с глобалният  reset и за тях чипа си изработва собствен reset при power down? Това е често срещан подход в електрониката. 




Титла: Re: компилиране на ядро
Публикувано от: Nik123 в Jan 18, 2020, 10:12

В xorg.conf за драйвер може да имаш 3 варянта: nv, nouveau и nvidia.
nv и nouveau са свободните. nv беше първият свободеден драйвер (разбира се reverse engineered). след това казаха ами ще правим по нов и съвършен и направиха nouveau. Само че дето nouveau не винаги работи както трябва, аз много често връщам на nv.

А nvidia е за затвореният официален драйвер. Като слагаш nonfree free пакет променяш ли в xorg.conf



Не съм променял ръчно xorg.conf от времето на мандрива 2006. Магеята сама си прави промените, досега (до версия 6 вкл., преди да се връщам към забравени занимания с ядро от сорс) след XFdrake - избирам- тест- работи. А този драйвър nv изглежда са го разкарали от магеята, защото го няма в хранилищата. Има само dkms-nouveau, но и с него не работи. Почнах да си мисля, че изобщо никога не е ползвана картата на нвидия при мен под линукс, защото се сещам, че при инстала на магеята преди 2 г. и нещо пак имах някакви проблеми с настройките й и забих просто intel810 and later - както и в момента. Но вайбъра си работеше.


Титла: Re: компилиране на ядро
Публикувано от: Naka в Jan 18, 2020, 10:18
Цитат
Магеята сама си прави промените, досега (до версия 6 вкл., преди да се връщам към забравени занимания с ядро от сорс)

То хубаво, ама хвърляй по едно око в xorg.conf да видиш кое е пуснато.

Цитат
Има само dkms-nouveau, но и с него не работи

за nouveau не се учудвам. Много е бъгъв. спасението ти е в само в затворения (и/или скрипта от нвидиа)

Цитат
Почнах да си мисля, че изобщо никога не е ползвана картата на нвидия при мен под линукс, защото се сещам, че при инстала на магеята преди 2 г. и нещо пак имах някакви проблеми с настройките й и забих просто intel810
виж първо дали си оптимус. Че там нещата са много по-различни и изобщо не можеш да имаш 2д графика от nvidia. При оптимус можеш да пуснеш нвидиата в 3д само за няккоя игра, но не и за десктоп.

Виж тази тема.
https://www.linux-bg.org/forum/index.php?topic=47467.0


Титла: Re: компилиране на ядро
Публикувано от: Nik123 в Jan 18, 2020, 11:02
Изглежда е с това Optimus, което до вчера изобщо не бях чувал.
В  сайта за тая карта- GeForce 705 M -  https://www.geforce.com/hardware/notebook-gpus/geforce-705m пише Supported technologies- Cuda, Optimus, DirectX12. Явно до пробема с прекомпилацията си е работил само с интела. Но нямаше грешки с opengl нито с плазмата, нито с вайбъра. Ще видя и тази тема, благодаря


Титла: Re: компилиране на ядро
Публикувано от: Naka в Jan 18, 2020, 12:09
Империята отвръща на удара.

То не е толкова от чипа, че подържал оптимус, колкото от лаптопа и от това как са го вързали.
В онази тема има един линк от леново. Ако си някой щастливец  в биоса може да имаш опция хардуерно да пуснеш само нвидията. Обаче най-вероятно ще духаш супата.

Едно време имаше едни карти voodoo2. Те бяха първите укорителни 3д карти. Но не можеха да работят самостоятелно. Трябваше им отделна стандартна 2д карта. Та те имаха отвънка един rgb кабел дето свързваше нормалната с ускорителната карта. Та това сега много ми прилича на онoва от преди 100 години. . Само дето сега "кабелчето" е скрито вътре в чипа. >:D

https://static.techspot.com/images2/trivia/bigimage/2017/2017-03-19-image-25.jpg


Титла: Re: компилиране на ядро
Публикувано от: Nik123 в Jan 18, 2020, 12:22
Ще почета още малко инфо. А за супата, аз я духам цяла седмица и все гореща стои  ;D  Имам лек напредък, по-скоро случаен. Инсталирах от репосите на ROSA 2016.1 (магеята няма пакет на вайбър, а този от официалния сайт не тръгва) viber-10.3.0.37-2-rosa2016.1.x86_64 пакета и вайбъра взе, че тръгна, въпреки това, което вади в терминала :
[nik@localhost ~]$ viber
QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled
WebEngineContext used before QtWebEngine::initialize() or OpenGL context creation failed.
QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled
failed to acquire GL context to resolve capabilities, using defaults..
qrc:/QML/Feed/FeedView.qml:98:5: QML ListViewEx: Binding loop detected for property "bottomMargin"

Ама работи!

По тоя проблем - QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled - досега четох в нета и инсталирах какви ли не либс, но проблема остава. Аз нямам и толкова големи познания, за да разбера същността на проблема. Вайбъра работи иначе. Но плазмата не тръгва. Склонен съм да я прежаля и да си остана в LXDE. А колкото до /etc/x11/xorg.conf, то в момента секцията му за видеокартата изглежда така:

Section "Device"
    Identifier "device1"
    VendorName "Intel Corporation"
    BoardName "Intel 810 and later"
    Driver "intel"
    Option "DPMS"
EndSection

изходът от glxinfo е този:

[nik@localhost ~]$ glxinfo
name of display: :0.0
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Error: couldn't find RGB GLX visual or fbconfig
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".

Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".
Xlib:  extension "GLX" missing on display ":0.0".




Титла: Re: компилиране на ядро
Публикувано от: Naka в Jan 18, 2020, 12:33
Инсталирай mesa
Тя ти е 3д opengl библиотеките


Титла: Re: компилиране на ядро
Публикувано от: Nik123 в Jan 18, 2020, 12:47
Всичко, що съдържа в себе си mesa, libmesa, libmesagl +всякакви -devel, е инсталирано (от репосите). Изчетох темата за двете видеокарти. Сега проверих и биоса, в секцията Display > Graphics Device > две опции, Switchable graphics и Integrated graphics. При мен е Switchable. Другата опция там е OS Detection for switchable graphics > Enabled/Disabled- при мен е Enabled.
Предполагам, че ако го сложа Integrated и махна ОС детекшъна, ще работи само интела, но това за уина не ме устройва. Досега си е било на Switchable и OS- enabled. Явно с моите експерименти с прекомпилацията на ядро от сорс се е омазало здраво нещо по тоя OpenGL и оттам плазмата се срина, защото допреди това работеше, нещо, което ми е извън познанията да хвана. Ще почета още малко, но май нещата отиват да си оставам с LXDE. Не искам да преинсталирам в по-новата магея, или да преинсталирам тази, защото е един малък ад пак да местя GRUB на друго място, след като го плясне в МБР и да оправям пак буутлоудъра на Truecrypt.


Титла: Re: компилиране на ядро
Публикувано от: Naka в Jan 18, 2020, 13:19
 Я виж това. Явно темата се върти около динамичният лоадер и към това как се зареждат gl библиотеките или омотани линкове. Ако се опиташ да преинсталираш меса това няма ли да оправи конфиговете и или линковете към библиотеките.?

https://bbs.archlinux.org/viewtopic.php?id=209230


Титла: Re: компилиране на ядро
Публикувано от: Nik123 в Jan 18, 2020, 14:08


https://bbs.archlinux.org/viewtopic.php?id=209230

Това помогна! Изчетох много внимателно. Въпреки, че не ползвам в момента нвидията, драйвъра й си стои (от техния сайт, уж точно за моята GF705M и не работеше де).

Доколкото разбрах, при мен се опитва да търси тоя glx тука - /usr/lib/nvidia/libGL.so.1 и т.н., вместо където е на месата- /usr/lib/xorg/modules/extensions/libglx.so

Вместо да редактирам ръчно /etc/ld.so.conf с голяма степен на вероятност да осера нещо, избрах по-лесния вариант:
su -l root, init 3
#cd /където е нвидията от сайта им
#sh /NVIDIA-нещо си-.run --uninstall ... uninstal completed
#/sbin/ldconfig
init 5
Не съм пипал mesa-та, защото за нейния ънинстал ми поиска да махне поне стотина зависимости, между които и целия Х, а не исках да рискувам с rpm -e --force --nodeps и такива.
И алелуя. Плазмата тръгна, няма вече никакви Unable to load OpenGL и такива, вайбъра не вади грешки. Благодаря на всички отзовали се. Оставам обаче с LXDE, не го бях позлвал отдавна, но лекотата му ме впечатли. И без нвидия. На магеята не играя, така че не ми трябва тук.  [_]3

Сега всичко работи с интелската карта

[nik@localhost ~]$ glxgears
Running synchronized to the vertical refresh.  The framerate should be
approximately the same as the monitor refresh rate.
304 frames in 5.0 seconds = 60.608 FPS
301 frames in 5.0 seconds = 60.020 FPS
301 frames in 5.0 seconds = 60.023 FPS
301 frames in 5.0 seconds = 60.021 FPS
[nik@localhost ~]$ glxinfo | grep "direct"
direct rendering: Yes
    GL_ARB_depth_clamp, GL_ARB_derivative_control, GL_ARB_direct_state_access,
    GL_ARB_draw_elements_base_vertex, GL_ARB_draw_indirect,
    GL_ARB_half_float_vertex, GL_ARB_indirect_parameters,
    GL_ARB_multi_draw_indirect, GL_ARB_occlusion_query2,
[nik@localhost ~]$


ЕДИТ: И повече никакви експерименти няма да си правя с ядра от кернел.орг

Още веднъж благодаря!


Титла: Re: компилиране на ядро
Публикувано от: Naka в Jan 18, 2020, 14:55
Я за протокола пусни едно
ldd /usr/bin/glxinfo

Че ми стана интересно.


Титла: Re: компилиране на ядро
Публикувано от: Nik123 в Jan 18, 2020, 15:12
Като руут, предполагам. Ето :

[root@localhost ~]# ldd /usr/bin/glxinfo
   linux-vdso.so.1 (0x00007ffe3a5ac000)
   libGL.so.1 => /lib64/libGL.so.1 (0x00007f6a68c4c000)
   libX11.so.6 => /lib64/libX11.so.6 (0x00007f6a6890f000)
   libc.so.6 => /lib64/libc.so.6 (0x00007f6a6855c000)
   libz.so.1 => /lib64/libz.so.1 (0x00007f6a68340000)
   libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f6a68116000)
   libxcb-dri3.so.0 => /lib64/libxcb-dri3.so.0 (0x00007f6a67f13000)
   libxcb-present.so.0 => /lib64/libxcb-present.so.0 (0x00007f6a67d10000)
   libxcb-sync.so.1 => /lib64/libxcb-sync.so.1 (0x00007f6a67b09000)
   libxshmfence.so.1 => /lib64/libxshmfence.so.1 (0x00007f6a67906000)
   libglapi.so.0 => /lib64/libglapi.so.0 (0x00007f6a676d5000)
   libXext.so.6 => /lib64/libXext.so.6 (0x00007f6a674c3000)
   libXdamage.so.1 => /lib64/libXdamage.so.1 (0x00007f6a672c0000)
   libXfixes.so.3 => /lib64/libXfixes.so.3 (0x00007f6a670ba000)
   libX11-xcb.so.1 => /lib64/libX11-xcb.so.1 (0x00007f6a66eb8000)
   libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f6a66c92000)
   libxcb-glx.so.0 => /lib64/libxcb-glx.so.0 (0x00007f6a66a79000)
   libxcb-dri2.so.0 => /lib64/libxcb-dri2.so.0 (0x00007f6a66874000)
   libXxf86vm.so.1 => /lib64/libXxf86vm.so.1 (0x00007f6a6666e000)
   libdrm.so.2 => /lib64/libdrm.so.2 (0x00007f6a6645d000)
   libm.so.6 => /lib64/libm.so.6 (0x00007f6a6615d000)
   libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f6a65f40000)
   libdl.so.2 => /lib64/libdl.so.2 (0x00007f6a65d3c000)
   /lib64/ld-linux-x86-64.so.2 (0x00007f6a68eb7000)
   libXau.so.6 => /lib64/libXau.so.6 (0x00007f6a65b38000)
   libXdmcp.so.6 => /lib64/libXdmcp.so.6 (0x00007f6a65932000)
   libbsd.so.0 => /lib64/libbsd.so.0 (0x00007f6a6571d000)
   librt.so.1 => /lib64/librt.so.1 (0x00007f6a65515000)


Титла: Re: компилиране на ядро
Публикувано от: Naka в Jan 18, 2020, 15:22
A libGL.so.1 от кой пакет е?

rpm -qif  /lib64/libGL.so.1


Титла: Re: компилиране на ядро
Публикувано от: Nik123 в Jan 18, 2020, 15:24
[root@localhost ~]# rpm -qif  /lib64/libGL.so.1
Name        : lib64mesagl1
Version     : 17.3.9
Release     : 1.mga6
Architecture: x86_64
Install Date: Tue 11 Dec 2018 02:16:47 PM EET
Group       : System/Libraries
Size        : 905488
License     : MIT
Signature   : RSA/SHA256, Thu 19 Apr 2018 10:29:03 AM EEST, Key ID b742fa8b80420f66
Source RPM  : mesa-17.3.9-1.mga6.src.rpm
Build Date  : Thu 19 Apr 2018 10:16:51 AM EEST
Build Host  : localhost
Relocations : (not relocatable)
Packager    : tmb <tmb>
Vendor      : Mageia.Org
URL         : http://www.mesa3d.org
Summary     : Files for Mesa (GL and GLX libs)
Description :
Mesa is an OpenGL 4.5 compatible 3D graphics library.
GL and GLX parts.


Титла: Re: компилиране на ядро
Публикувано от: Naka в Jan 18, 2020, 15:33
Ха. А при мен Центос7 e от някаква междинна билиотека libglvnd - диспечер, дето както разбирам тя зареждала vendor specific библиотеките. Нещата са се промененили.

rpm -qif  /lib64/libGL.so.1
[naka@sabi ~]$ rpm -qif  /lib64/libGL.so.1
Name        : libglvnd-glx
Epoch       : 1
Version     : 1.0.1
Release     : 0.8.git5baa1e5.el7
Architecture: x86_64
Install Date: Tue 24 Dec 2019 10:47:04 AM EET
Group       : Unspecified
Size        : 657304
License     : MIT
Signature   : RSA/SHA256, Mon 12 Nov 2018 04:32:23 PM EET, Key ID 24c6a8a7f4a80eb5
Source RPM  : libglvnd-1.0.1-0.8.git5baa1e5.el7.src.rpm
Build Date  : Tue 30 Oct 2018 11:24:04 PM EET
Build Host  : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>                                                                                                                                     
Vendor      : CentOS                                                                                                                                                                         
URL         : https://github.com/NVIDIA/libglvnd                                                                                                                                             
Summary     : GLX support for libglvnd                                                                                                                                                       
Description :                                                                                                                                                                                 
libGL and libGLX are the common dispatch interface for the GLX API.                                                                                                                           
[naka@sabi ~]$



А това е с работеща, десктоп nvidia:
[root@sabi ~]# ldd /usr/bin/glxinfo
        linux-vdso.so.1 =>  (0x00007ffe0212b000)
        libGL.so.1 => /lib64/libGL.so.1 (0x00007f43d60be000)
        libX11.so.6 => /lib64/libX11.so.6 (0x00007f43d5d80000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f43d59b2000)
        libGLX.so.0 => /lib64/libGLX.so.0 (0x00007f43d5780000)
        libXext.so.6 => /lib64/libXext.so.6 (0x00007f43d556e000)
        libGLdispatch.so.0 => /lib64/libGLdispatch.so.0 (0x00007f43d52b8000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f43d50b4000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f43d4e98000)
        libxcb.so.1 => /lib64/libxcb.so.1 (0x00007f43d4c70000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f43d634a000)
        libXau.so.6 => /lib64/libXau.so.6 (0x00007f43d4a6c000)
[root@sabi ~]#



Титла: Re: компилиране на ядро
Публикувано от: Nik123 в Jan 18, 2020, 15:38
Ами доколкото разбирам от инфото в поста ти, и конкретно това :

URL         : https://github.com/NVIDIA/libglvnd 

и факта, че имаш инсталиран драйвър на нвидия, при теб това libglvnd пак си е на нвидия. то и при мен сочеше към libgl.so.1 на нвидия, но като махнах нвидията, и му дадох ldconfig-a, явно сега при мен ползва на mesa-та, с интелската карта. Нвидията при мен изобщо няма да се опитвам да я подкарвам, стига ми толкова главоболие.

Едит: Моя грешка, сега видях тоя линк за libglvnd, да, в твоята дистрибуция май е някаква междинна стъпка към OpenGL - дали на нвидия, дали на месата, каквото имаш инсталирано. Аз поне така го разбирам- libglvnd is a vendor-neutral dispatch layer for arbitrating OpenGL API calls between multiple vendors. It allows multiple drivers from different vendors to coexist on the same filesystem, and determines which vendor to dispatch each API call to at runtime.

Both GLX and EGL are supported, in any combination with OpenGL and OpenGL ES.

libglvnd was originally described in Andy Ritger's OpenGL ABI proposal [1]. При мен явно са се омазали нещата, защото и нвидията има opengl и mesa а ги имам и двете и е нормално с карта нвидия и инсталиран драйвър, да ползва на нвидията. Да, ама нвидията не бачка, картата не тръгва, обаче и интелската карта като настройвах, то си търсеше на нвидия opengl-a и ставаше мазало. Сега, като изчистих нвидията, остана само месата и нещата на лаптопа са ок с интелската карта.


Едит 2 : libglvnd contains code from the Mesa project. Source code from the Mesa project is available from:

http://cgit.freedesktop.org/mesa/mesa
 И това го пише в https://github.com/NVIDIA/libglvnd Явно във всяка дистрибуция си решават нещата с opengl различно


Титла: Re: компилиране на ядро
Публикувано от: makeme в Jan 18, 2020, 22:49

виж първо дали си оптимус. Че там нещата са много по-различни и изобщо не можеш да имаш 2д графика от nvidia. При оптимус можеш да пуснеш нвидиата в 3д само за няккоя игра, но не и за десктоп.


Мисля че това е най-подходящата тема, да напиша за тоя оптимус, как стоят нещата:

Какво е оптимус (накратко)? Това е технология, която автоматично преценява и превключва Intel към Nvidia (и обратно) според нуждите на системата.

  • При Linux няма работещ оптимус (това че картата ти поддържа оптимус, не значи че имаш оптимус : ) ).
  • Ако си с драйверите от нвидия има да си избираш или Intel, или Nvidiа за постоянно (изисква се рестарт, за да се превключи)
  • За да се превключва от Intel към Nvidia без рестарт, се използва bumblebee. При него обаче винаги изпозлваш Intel и ръчно пускаш Nvidiа за съответното приложение (с optirun)


Титла: Re: компилиране на ядро
Публикувано от: Nik123 в Jan 18, 2020, 23:27
Мейкми, вече схванах и аз за какво иде реч с тоя оптимус на нвидията, благодарение на тая тема и включилите се в нея. Стартира интел, а ако ще ти трябва 3д графика, за да тръгне нвидията (и то не автоматично), а с такава гимнастика- "За да се превключва от Intel към Nvidia без рестарт, се използва bumblebee" под линукс. При него обаче винаги използваш Intel и ръчно пускаш Nvidiа за съответното приложение (с optirun)"- най-малко си правиш някакъв шел скрипт от сорта на /bin/bash
./optirun нещо си
T.e. използваш допълнителна програма - бамбълби в случая, както разбирам, че и ръчно. Щом няма работещ оптимус за линукс, в моя случай си оставам на интела. Игрите и без това са под уина. Но ми е интересно, защо няма работещ оптимус под линукс- производителя на хардуера не го е*е за потребителите на нещо извън уиндоус?


Титла: Re: компилиране на ядро
Публикувано от: makeme в Jan 19, 2020, 00:09
...производителя на хардуера не го е*е за потребителите на нещо извън уиндоус?
Виж как знаеш :)

Не случайно това клипче е толкова известно: https://www.youtube.com/watch?v=_36yNWw_07g :)


Титла: Re: компилиране на ядро
Публикувано от: Naka в Jan 19, 2020, 10:39
Ако си с драйверите от нвидия има да си избираш или Intel, или Nvidiа за постоянно (изисква се рестарт, за да се превключи)
Аз така и не разбрах. Има или няма собствен кадров буфер nvidia-та?

Досега не съм успял да видя десктопски екран от нвидиата (при оптимус лаптопите), независмо дали рестартирам или не.

Цитат
Optimus avoids usage of a hardware multiplexer and prevents glitches associated with changing the display driver from IGP to GPU by transferring the display surface from the GPU frame buffer over the PCI Express bus to the main memory-based framebuffer used by the IGP. The Optimus Copy Engine is a new alternative to traditional DMA transfers between the GPU framebuffer memory and main memory used by the IGP.
Това какво означва? Че ползва кадровият буфер на интел-а през dma?


Но ми е интересно, защо няма работещ оптимус под линукс- производителя на хардуера не го е*е за потребителите на нещо извън уиндоус?
Май е нещо лицензно:
Цитат
An attempt by Nvidia to support Optimus through DMA BUF, a Linux kernel-mechanism for sharing buffers across hardware (potentially GPUs), was rebuffed by kernel developers in January 2012 due to license incompatibility between the GPL-licensed kernel-code and the proprietary-licensed Nvidia blob.[8]

Каквото и да умуваме, нищо няма да разберем. Аз поне до сега не успявам да разбера как точно работи.

А цялата работа с този оптимус ми прилича на меринджерско споразумение между интел и нвидия да си продават чиповете, облечено по формата на супер, дупер мега яка еко технология.

В този век на технологии, когато всеки чип подържа сума ти power management технологии, може да си намаляват честотите динамично, да изключват цели части от чиповете ако не се ползват и т.н. и да дажеш че един 2д режим харчи ток или че един прост 3д режим харчи ток е меко казано несериозно.


Титла: Re: компилиране на ядро
Публикувано от: makeme в Jan 19, 2020, 13:11
Ми сигурно има буфер, но пак казвам това е за оптимус а при линукс е прайм :) . От тук идва и името на bumblebee:

https://github.com/Bumblebee-Project/Bumblebee/wiki/FAQ

:)

За монитора не схванах.



Титла: Re: компилиране на ядро
Публикувано от: 4096bits в Jan 19, 2020, 17:11
Не разбирам, какъв е проблема с Optimus.
Слагаш с в стартера на която програма искаш optirun <прорамата> и всеки път ще се пуска с втората карта.
Не е такава болка.


Титла: Re: компилиране на ядро
Публикувано от: Nik123 в Jan 19, 2020, 17:22
Аз чисто от спортна злоба, ще се пробвам пак с прекомпилиране на ядро от сорса на кернел.орг. Щом преди години някак съм успявал, и е работило, и сега ще стане, с малко зор. Но си взех бележките- никакви нвидии и никакви дкмс - като писах в началото на темата, след прекомпилирането и рестарта в новото ядро, на стъпките с дкмс умря всичко (и не беше само нвидията, а и broadcom-wl на магеята, който ми трябва за уайърлеса). Сорса ще го компилирам на машината си в офиса, че е с по-мощен процесор (интел и5) от тоя на лаптопа- интел 2030м, двуядрен. Ще трябва да разкарам и dkms-broadcom-wl от лаптопа, което значи, че няма да имам уайърлес в ядрата на магея, но предполагам, че тоя модул може да се инсталира и без дкмс, ще потърся инфо из нета. Като се получи (или осере качествено), ще постна тук  ;D ;D


Титла: Re: компилиране на ядро
Публикувано от: jet в Jan 19, 2020, 19:32
Пак ти казвам, като омажеш всичко, пробвай скрипта дето ти дадох.


Титла: Re: компилиране на ядро
Публикувано от: Nik123 в Jan 28, 2020, 16:18
Прекомпилирах сорса наново, 5.4.10. Make, make modules_install, make install, всичко ок, без грешки. Рестарт, в новото ядро, всичко уж тръгва и като ми извади логин скрийна на LXDE, на дисплей мениджъра му по-точно, всичко замръзна- няма мишка, няма бутони. Само часовника върти. Няма ctrl-alt-del, ctrl-alt-backspace, нищо. Нито тъчпада работи, нито мишката през USB. Не съм си играл с нвидията, за графиката си ползвам интела. След твърд рестарт с копчето- recovery mode- init 3- мишката бачка, мести се по текста в черния екран, върху буквите. Инит 5- cannot open display.. съвсем ми писна, рестарт в последното налично ядро на магеята, make clean на това, което аз компилирах и толкова. Оставам си на магейското ярдо. Благодаря на отзовалите се в тази тема!

Едит: @jet - благодаря и на теб, просто нямам повече нерви да се занимавам с ядра и прекомпилации.


Титла: Re: компилиране на ядро
Публикувано от: ray в Jan 28, 2020, 19:00
Nik123, виж не съм особено добре запознат с компилирането на ядра, ще споделя основните неща които знам (за които се сещам). Особено последните 5-6 години, не съм компилирал ядра.

Преди това писах, че е важно при компилация на ядро първо да се види какъв е хардуера на конкретната машина, това за да може да активираш опциите в ядрото които го поддържат (хардуера).
Лично аз гледам да включа тази поддържка като вградена в ядрото, не като модули (за съжаление не всичко може да се активира вградено в самото ядро).

Тук малко ще се отклоня за да спомена, че изключвам нещата които явно няма а ползвам (така ядрото става по-малко и се компилира по-бързо).

При мен основните проблеми и губи-време беша при първите компилации и настройки на новото ядро (по памет мисля че ровичках опциите поне час, два) докато разбера какво и как да включа.

Сега за модулите, те могат да се зареждат на два етапа, първите се зареждат преди ядрото (initrd), така важните при стартиране модули (хардуеарна поддръжка) вече са заредени и осигуряват работата на хардуера които е компилиран като модули.

Другите модули могат да се зареждат по обичайния начин и след стартиране на машината.

При мен след като вече имах добра конфигурация на ядрото за моята машина, при излизане на ново ядро само ползвах старата конфигурация (плюс някои нови опции за новите ядра, почти винаги има такива, понякога са доста на брой, но рядко са необходими).
Следва компилация, инсталация и работа (ако всичко е наред).

Не претендирам за изчерпателност или особена точност, просто това е моя опит с къстъм-ядра.
Това ми позволяваше да ползвам някои неща които ги няма в официалните ядра, reiser4-fs, L7-layer, някои мрежови неща (вече не помня точно какво беше).

PS: препоръчвам да не опитваш отново компилиране, писах по-скоро за информация.


Титла: Re: компилиране на ядро
Публикувано от: Nik123 в Jan 28, 2020, 19:16

При мен след като вече имах добра конфигурация на ядрото за моята машина, при излизане на ново ядро само ползвах старата конфигурация (плюс някои нови опции за новите ядра, почти винаги има такива, понякога са доста на брой, но рядко са необходими).
Следва компилация, инсталация и работа (ако всичко е наред).


Аз до тая стъпка не мога да стигна. Прекомпилирал съм преди 5-6 години поне и бяха по-прости нещата (може би). "Правил" съм ядра за предишния си лаптоп,  за стара пентиумска машина на 333 мхз, но беше отдавна. Тогава, след като вече имам едно "мое" ядро, което бачка- зареждам стария конфиг, добавям това-онова, от новите опции и готово. Но беше преди, сега не успявам да стигна до работещо прекомпилирано от мен ядро. С това ядро доста си играх, да изключа поддръжка за това, което не ми трябва и няма да ползвам - изгубих доста време и аз да чета кое какво е и когато не знаех, а в конфига има опция "If unsure, say N", или "If you do not know what is this- say N"- така постъпвах. Не са ми познанията на високо ниво. Целия конфиг (make xconfig) ми отне 2-3 дена, основно четене в нета, кое какво значи, и накрая пак не станаха нещата и просто изгубих интерес. Идеята ми да съм с ново ядро беше, защото в старото, последното на магея 6, телефона ми през USB прави проблеми (mtp protocol died unexpectedely) и не ми разпознава един принтер/копир/скенер (3в1), на който на всичкото отгоре съм и сложил драйвъра (има поддръжка за линукс). А на жена ми на лаптопа, който е по-стар и от моя, с последната магея- 7, и принтера, и телефона си работят ок. И някои други неща, които при мен не бачкат. Затова реших, че с по-ново ядро, в по-старата ми дистрибуция има шанс да пробачкат нещата. Но наистина не ми се занимава, а по ред причини не искам и да преинсталирам, и оставям така нещата.  [_]3


Титла: Re: компилиране на ядро
Публикувано от: jet в Jan 29, 2020, 03:41
Едно време като ползвах Мандрейк (2000г.), не слагах ъпдейти (то нямаше и много де) с месеци. Когато минах на Дебиан се научих да слагам последните версии и софтуера си се подобрява. Това отличава дистрата които се развиват и тези които са умряли на някакъв етап от живота си.
Едно време и аз бях голям компилировач, но разбрах, че каквото и да правя с конфига не мога да бия Дебианци нито по размер, нито по скорост и се отказах.


Титла: Re: компилиране на ядро
Публикувано от: go_fire в Jan 29, 2020, 11:14
...
Преди това писах, че е важно при компилация на ядро първо да се види какъв е хардуера на конкретната машина, това за да може да активираш опциите в ядрото които го поддържат (хардуера).
Лично аз гледам да включа тази поддържка като вградена в ядрото, не като модули (за съжаление не всичко може да се активира вградено в самото ядро).
...

Съвета да се изключат нещата, които няма да се ползват е перфектен. Но с това, което съм цитирал, изобщо не съм съгласен. Това е против добрите практики. Колкото е по-малко едно ядро, толкова е по-бързо. Това се отнася за точно всеки вид програма, чак до bash scripts.

Единственото, което се губи са милисекундите за зараждане на приставките. Но това е важно единствено в извънредно критични системи, най-вече вградени такива. А там ядрото е толкова орязано, че е още по-малко. Почти става с размера на микро-ядро.


Титла: Re: компилиране на ядро
Публикувано от: ray в Jan 29, 2020, 12:20
...
Преди това писах, че е важно при компилация на ядро първо да се види какъв е хардуера на конкретната машина, това за да може да активираш опциите в ядрото които го поддържат (хардуера).
Лично аз гледам да включа тази поддържка като вградена в ядрото, не като модули (за съжаление не всичко може да се активира вградено в самото ядро).
...

Съвета да се изключат нещата, които няма да се ползват е перфектен. Но с това, което съм цитирал, изобщо не съм съгласен. Това е против добрите практики. Колкото е по-малко едно ядро, толкова е по-бързо. Това се отнася за точно всеки вид програма, чак до bash scripts.

Единственото, което се губи са милисекундите за зараждане на приставките. Но това е важно единствено в извънредно критични системи, най-вече вградени такива. А там ядрото е толкова орязано, че е още по-малко. Почти става с размера на микро-ядро.

Това което лично аз включвам в ядрата (когато ги компилирах за конкретна машина) е само необходимото за нейната периферия и хардуер, тоест дали нещо ще е в самото ядро или ще се зарежда като модул не влияе особено на размера.
Пропуснах това разяснение когато писах преди това.

А после се сетих и че initrd/initramfs е да зареди неща без които ядрото няма как да инициализира наличния хардуер, например графика, мишка, клавиатура, LVM, RAID, фирмуеар и други подобни които сега не помня/знам.

А това да включвам поддъръжката в самото ядро бе по-скоро като гаранция че дадената опция със сигурност ще е налична/активна и няма да се счупи нещо при и след зареждането (тоест по-скоро от мързел и незнание как точно работи всичко).

Всъщност и сега компилирам ядра, но такива с готова конфигурация - linux-ck, linux-rt-bfq (вероятно затова гледам/предпочитам да ползвам дистрибуции които освен бинарни пакети имат възможност за компилиране и от сорс, за неща които не са толкова разпространени) - EndeavourOS/Arch-based & Void-linux, напоследък !

PS: а микроядрата са доста по-малки (12-15000 хиляди реда само/по памет) това е за Minix  :o с които съм си играл преди време