Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
eigener xf86-video-intel Treiber vs. Emerge [solved]
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
spork
n00b
n00b


Joined: 26 Nov 2012
Posts: 4

PostPosted: Mon Nov 26, 2012 12:43 pm    Post subject: eigener xf86-video-intel Treiber vs. Emerge [solved] Reply with quote

Moin moin,

ich wollte mal fragen, ob es eine Moeglichkeit gibt Pakete als 'emerged' anzunehmen bzw. beim 'emergen' irgendwie zu auszulassen.

Hintergrund: Ich habe einen Laptop mit 2 Grafikkarten (nvidia und intel) und verwende daher Optimus/Bublebee. Nun habe ich einen xf86-video-intel Treiber im Einsatz den ich selber patche und kompiliere - soweit ich das gesehen habe gibt es kein Overlay das mir den Treiber so bietet. Diesen benoetige ich allerdings, da es mir sonst nicht moeglich ist auf einen zweiten Monitor zu erweitern, welcher ueber den VGA-Port (hardwired zur Nvidia-Karte) angeschlossen ist. Das funktioniert mittlerweile auch alles wie gewuenscht aber:

Da ich in meiner make.conf unter 'VIDEO_CARDS' immer noch 'intel' mit eingetragen habe und so wie ich das sehe auch nicht einfach entfernen sollte, wird bei einem Update (xorg-drivers sei Dank) der Treiber aus Portage nachinstalliert. Das moechte ich aber natuerlich vermeiden. Ein einfaches Maskieren des intel Treibers hilft hier leider nicht weiter, da es natuerlich zur Blockierung fuehrt. Es waere schoen, wenn fuer einzelne Pakete VIDEO_CARDS wie USE-flags verwendet werden koennte, mir ist jedoch nicht bekannt, dass es soetwas funktioniert. Die einzige Idee die ich jetzt noch habe, ist ein eigenes ebuild zu schreiben. Bevor ich dieses jedoch tue, wollte ich einmal kurz in die Runde fragen, ob jemand eine andere Idee hat.

M.f.G. spork


Last edited by spork on Mon Nov 26, 2012 1:48 pm; edited 1 time in total
Back to top
View user's profile Send private message
Christian99
l33t
l33t


Joined: 28 May 2009
Posts: 994

PostPosted: Mon Nov 26, 2012 1:12 pm    Post subject: Reply with quote

Hi, ja das geht, indem du in eine datei /etc/portage/package.provided den paketnamen "x11-drivers/xf86-video-intel" einträgst. dann wird emerge annehmen, das paket sei installiert.

Nach deinen Ausführungen gibt es mMn eine bessere Methode:
ich weiß nicht, wie genau du dich mit portage auskennst, aber ein emerge prozess besteht aus mehreren phasen. so grob die wichtigsten:
src_unpack src_prepare src_configure src_compile src_install (genau: siehe hier: http://devmanual.gentoo.org/ebuild-writing/functions/index.html)
die phasen sind als bash funktionen ausgeführt. und portage untestützt sogenannte phase hooks. du kannst vor und nach jeder phase (post_{phasename} und pre_{phasename}) eigene funktionen einschieben.
das geht indem du eine entsprechende funktion schreibst. die liegt in einer datei in /etc/portage/env. dort erstellst du ein verzeichnis mit dem category-name ( x11-drivers in deinen fall) und in diesem verzeichis eine datei mit dem paketnamen (xf86-video-intel hier). da schreibst du dann, wenn du einen zusätlichen patch anbringen willst z.b. eine post_src_prepare funktion ungefähr so:
Code:

post_src_prepare(){
epatch /path/to/patch/file
}


epatch ist eine portagefunktiion die patch mit der angegebenen datei auf das src verzeichnis anwendet und dabei bei fehlschlag mehrere strip level ausprobiert. ausführlichere übersicht zu den helperfunctions hier: http://devmanual.gentoo.org/eclass-reference/ebuild/index.html

dasganze ist zwar erstmal mehr arbeit, aber erfahrungsgemäß gibt es langfristig mehr probleme wenn man an portage vorbei installiert.
Falls du noch fragen hast, ich bin zwar kein experte, aber ab und zu hab ich sowas schon mal verwendet und kenn mich ein bisschen damit aus.
viel erfolg
Christian
Back to top
View user's profile Send private message
spork
n00b
n00b


Joined: 26 Nov 2012
Posts: 4

PostPosted: Mon Nov 26, 2012 1:43 pm    Post subject: Reply with quote

Hallo Christian99,

vielen Dank fuer deine kompetente Hilfe :D . Hat alles wie am Schnuerchen funktioniert. Die Hooking Variante gefaellt mir sehr gut, ging schnell und fuehrte zum gewuenschten Ergebnis!

M.f.G. Spork
Back to top
View user's profile Send private message
toralf
Advocate
Advocate


Joined: 01 Feb 2004
Posts: 2701
Location: Hamburg/Germany

PostPosted: Mon Nov 26, 2012 7:12 pm    Post subject: Reply with quote

Patchen geht seit EAPI 4 noch viel einfacher, einfach ein entsprechendes Verzeichnis (je nach Lage auch mit konkreter Paketversion) erzeugen und den eigenen Patch eintragen :
Code:
tfoerste@n22 ~ $ cat /etc/portage/patches/sys-kernel/genkernel/init.patch
--- /usr/share/genkernel/defaults/linuxrc       2012-11-23 10:33:08.790280626 +0100
+++ /usr/share/genkernel/defaults/linuxrc.orig  2012-11-23 10:32:28.792922392 +0100
@@ -936,7 +936,7 @@
 
 echo -e "${BOLD}.${NORMAL}"
 
-exec /sbin/switch_root -c "/dev/console" "${CHROOT}" "${REAL_INIT:-/sbin/init}" "${INIT_OPTS}"
+exec /sbin/switch_root -c "/dev/console" "${CHROOT}" "${REAL_INIT:-/sbin/init}" "${INIT_OPTS}" "$@"
 
 # If we get here, something bad has happened
 splash 'verbose'
Wenn das konkrete Paket noch nicht auf EAPI 4 ist, einfach einen bug report aufmachen.

Anemrkeung: Das konkrete Beispiel funktioniert noch nicht, da das genkernel ebuild noch die veraltete EAPI hat.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum