Автор Тема: компилиране на ядро  (Прочетена 6392 пъти)

makeme

  • Напреднали
  • *****
  • Публикации: 895
  • Distribution: Many
  • Window Manager: KDE
    • Профил
Re: компилиране на ядро
« Отговор #45 -: Jan 19, 2020, 00:09 »
...производителя на хардуера не го е*е за потребителите на нещо извън уиндоус?
Виж как знаеш :)

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

Distributions:  UbuntuMate; Kubuntu; CentOS; Kali; Raspberry Pi OS ...

Naka

  • Напреднали
  • *****
  • Публикации: 3395
    • Профил
Re: компилиране на ядро
« Отговор #46 -: 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д режим харчи ток е меко казано несериозно.
« Последна редакция: Jan 19, 2020, 12:06 от Naka »
Активен

Perl - the only language that looks the same before and after encryption.

makeme

  • Напреднали
  • *****
  • Публикации: 895
  • Distribution: Many
  • Window Manager: KDE
    • Профил
Re: компилиране на ядро
« Отговор #47 -: Jan 19, 2020, 13:11 »
Ми сигурно има буфер, но пак казвам това е за оптимус а при линукс е прайм :) . От тук идва и името на bumblebee:

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

:)

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

Активен

Distributions:  UbuntuMate; Kubuntu; CentOS; Kali; Raspberry Pi OS ...

4096bits

  • Напреднали
  • *****
  • Публикации: 6152
    • Профил
Re: компилиране на ядро
« Отговор #48 -: Jan 19, 2020, 17:11 »
Не разбирам, какъв е проблема с Optimus.
Слагаш с в стартера на която програма искаш optirun <прорамата> и всеки път ще се пуска с втората карта.
Не е такава болка.
Активен

As they say in Mexico, "Dasvidaniya!" Down there, that's two vidaniyas.

Nik123

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

jet

  • Напреднали
  • *****
  • Публикации: 3472
  • Distribution: debian
  • Window Manager: kde
    • Профил
Re: компилиране на ядро
« Отговор #50 -: Jan 19, 2020, 19:32 »
Пак ти казвам, като омажеш всичко, пробвай скрипта дето ти дадох.
Активен

..⢀⣴⠾⠻⢶⣦⠀
  ⣾⠁⢠⠒⠀⣿⡁
  ⢿⡄⠘⠷⠚⠋
  ⠈⠳⣄⠀⠀⠀⠀  Debian, the universal operating system.

Nik123

  • Напреднали
  • *****
  • Публикации: 3090
  • Distribution: Mageia, Q4OS
    • Профил
Re: компилиране на ядро
« Отговор #51 -: 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 - благодаря и на теб, просто нямам повече нерви да се занимавам с ядра и прекомпилации.
Активен

ray

  • Напреднали
  • *****
  • Публикации: 1447
    • Профил
Re: компилиране на ядро
« Отговор #52 -: Jan 28, 2020, 19:00 »
Nik123, виж не съм особено добре запознат с компилирането на ядра, ще споделя основните неща които знам (за които се сещам). Особено последните 5-6 години, не съм компилирал ядра.

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

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

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

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

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

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

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

PS: препоръчвам да не опитваш отново компилиране, писах по-скоро за информация.
« Последна редакция: Jan 28, 2020, 19:02 от ray »
Активен

Nik123

  • Напреднали
  • *****
  • Публикации: 3090
  • Distribution: Mageia, Q4OS
    • Профил
Re: компилиране на ядро
« Отговор #53 -: 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
Активен

jet

  • Напреднали
  • *****
  • Публикации: 3472
  • Distribution: debian
  • Window Manager: kde
    • Профил
Re: компилиране на ядро
« Отговор #54 -: Jan 29, 2020, 03:41 »
Едно време като ползвах Мандрейк (2000г.), не слагах ъпдейти (то нямаше и много де) с месеци. Когато минах на Дебиан се научих да слагам последните версии и софтуера си се подобрява. Това отличава дистрата които се развиват и тези които са умряли на някакъв етап от живота си.
Едно време и аз бях голям компилировач, но разбрах, че каквото и да правя с конфига не мога да бия Дебианци нито по размер, нито по скорост и се отказах.
Активен

..⢀⣴⠾⠻⢶⣦⠀
  ⣾⠁⢠⠒⠀⣿⡁
  ⢿⡄⠘⠷⠚⠋
  ⠈⠳⣄⠀⠀⠀⠀  Debian, the universal operating system.

go_fire

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 8780
  • Distribution: Дебиан Сид
  • Window Manager: ROX-Desktop / е17
  • кашик с гранатомет в танково поделение
    • Профил
    • WWW
Re: компилиране на ядро
« Отговор #55 -: Jan 29, 2020, 11:14 »
...
Преди това писах, че е важно при компилация на ядро първо да се види какъв е хардуера на конкретната машина, това за да може да активираш опциите в ядрото които го поддържат (хардуера).
Лично аз гледам да включа тази поддържка като вградена в ядрото, не като модули (за съжаление не всичко може да се активира вградено в самото ядро).
...

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

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

В $por4e2 e истината  ;)

***

Aко даваха стипендия за най-глупави, щях да съм човека с най-много Mини Kупъри

***

Reborn since 1998 || 15.09.2007 totally М$ free && conscience clear

ray

  • Напреднали
  • *****
  • Публикации: 1447
    • Профил
Re: компилиране на ядро
« Отговор #56 -: 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 с които съм си играл преди време
Активен