Page 1 sur 3

[pkg] Kit Vostro 3700

Publié : mer. 27 avr. 2011, 21:59
par Feng
Bonjour,

Possesseur d'un Dell Vostro 3700, ce pc présente un système Hybrid Graphic rendant difficile l'utilisation de la carte graphique dédiée (NVidia 330M).

Il faut un kernel spécialement patché, un xorg.conf spécial en fonction de la carte que l'on souhaite utiliser, l'intégration d'un nouveau script au démarrage, la modification du script de démarrage rc.sysinit ainsi que l'ajout d'une tâche au démarrage en fonction de la carte utilisée.

J'ai tout cela, excepté la tâche au démarrage, car je ne sais pas comment ajouter le script pour qu'il soit lisible via systemsettings dans le planificateur de tâche.

En outre, je ne sais comment procéder pour créer le package. J'ai déjà créé un paquet pour le kernel, il en faudrait un autre pour les sources mais je ne sais pas faire.

Le mieux serait de proposer un paquet pour chaque fonction non ?

Kernel (indispensable)
Kernel sources
Scripts de switch (facilite GRANDEMENT le switch)
Switch au boot (switch automatique au démarrage, avec notifications)

Enfin, créer un meta paquet "kit-vostro-3700"

Need help :'(

Re: [pkg] Kit Vostro 3700

Publié : dim. 01 mai 2011, 00:58
par olafkewl
Hello,

J'ai le même laptop et je galère bien comme il faut pour ne faire fonctionner quoi que se soit. J'ai d'ailleurs bien envie de torpiller Dell de ne pas avoir indiqué qu'il était équipé de la techno Optimus lors de l'achat.

Te serait il possible de partager des modification, patchs et scripts que tu utilises ?

Merci !

Re: [pkg] Kit Vostro 3700

Publié : dim. 01 mai 2011, 09:11
par FoolEcho
Feng a écrit :J'ai tout cela, excepté la tâche au démarrage, car je ne sais pas comment ajouter le script pour qu'il soit lisible via systemsettings dans le planificateur de tâche.
J'ai pas bien compris cette partie... via systemsettings (tu parles bien de kde ? ) tu choisis la commande que tu veux, non ? Si tu parles d'ajouter direct le script, que fais-tu de ceux qui n'utilisent pas kde ? Pourquoi ne pas en faire un service via le rc.conf ?
Feng a écrit :J'ai déjà créé un paquet pour le kernel, il en faudrait un autre pour les sources mais je ne sais pas faire.
Pour les sources, tu peux t'inspirer de kernel26-source probablement: http://aur.archlinux.org/packages.php?ID=17189

Maintenant, questions plus techniques du type qui regarde ce type de techno... de très très loin:
Il faut vraiment un kernel patché ? un module ne suffit pas ? (je pense à acpi_call-git par rapport à Optimus sur Aur: http://aur.archlinux.org/packages.php?ID=39470 ) En quoi consiste exactement le patch ?

Re: [pkg] Kit Vostro 3700

Publié : dim. 01 mai 2011, 11:53
par Feng
Bonjour,

Je parle bien de KDE, et oui d'ajouter le script direct. Pour ceux qui n'utilisent pas KDE : j'ai proposé de spliter le paquet !

Il faut vraiment un kernel patché, le module acpi_call est nécessaire en plus pour faire fonctionner la chose. Cela dit, le kernel 2.6.38 présente des améliorations qui font que le kernel (.38) n'a pas besoin d'être patché, en revanche on ne peut plus lire de vidéo avec le driver nouveau ^^' donc .37 patché <3 !

Je pense que le .39 résoudra les soucis


@olafkewl : Voici un mail que j'ai fait pour un membre de la mailing list hybrid graphics :
My kernel is based on Arch kernel configuration.
The feng kernel is simple patched to support nvidia hybrid on a Vostro 3700 and nothing else (maybe Vostro 3500 but not sure 100%) , kernel configuration is arch basic.
The 2Kbetterfeng is multipatched as descripbed previously, and configuration has been upgraded to fulfill patches requirements.

No specific modules are required.
Some specific modules have to be hard compiled for the 2Kbetterfeng kernel. (check gensplash arch wiki page if you want names)
nouveau driver & intel driver are required to run NVidia Card.
intel driver is required to run Intel IGP.

Install packages with :

pacman -S xf86-video-intel intel-dri xf86-video-nouveau nouveau-dri


Both are compiled on a (my) Vostro 3700.

This all stuff allow you to switch between cards with a reboot. The awesome guy which makes hot switch patches is working on our case ( intel / nvidia ).

To fully install our switch, here is bash code (do as root) :

wget http://rtor.lepiredunet.com/torrents/ke ... pkg.tar.xz

pacman -U kernel26-2Kbetterfeng-2.6.37-1-x86_64.pkg.tar.xz

wget http://rtor.lepiredunet.com/torrents/switch
mv switch /usr/bin
chmod +x /usr/bin/switch
wget http://rtor.lepiredunet.com/torrents/nvidia.xorg.conf
mv nvidia.xorg.conf /etc/X11
echo 0 > /etc/switch
wget http://rtor.lepiredunet.com/torrents/rc.hybrid-switch
mv rc.hybrid-switch /etc
wget http://rtor.lepiredunet.com/torrents/rc.sysinit
mv rc.sysinit /etc


When you want to reboot in order to use NVidia card, do as root :

switch nvidia

So /etc/switch is set to 1 and nvidia.xorg.conf is moved to xorg.conf
It's rolled-back when you call switch intel


Actually, if you want to disable nvidia card (using acpi_call), you have to run

/usr/bin/test_off.sh

AFTER X started !! Else, X won't be called (dunno why and no time for investigate) . Of course, don't run this is you're using NVidia card ...

EDIT : j'halucine, le .39 est déjà en RC5 à peine 6 jours après la sortie du 38 stable 0_o la team kernel est en forme :D

On va peut-être attendre alors, comme ça je créerai un simple package avec les scripts de switch, voir un applet plasma (ou un systray)

Re: [pkg] Kit Vostro 3700

Publié : dim. 01 mai 2011, 12:10
par benjarobin
La modification du rc.sysinit n’était pas nécessaire, il y a 1000 fois plus propre... (Création d'un daemon dans le rc.conf)
Sinon je serais curieux de voir ce patch kernel, tu n'en parle même pas...

Re: [pkg] Kit Vostro 3700

Publié : dim. 01 mai 2011, 12:18
par Feng
Le patch n'est pas de moi.
Trouvé dans ce topic : https://bbs.archlinux.org/viewtopic.php?id=112237
Lien direct : http://pastebin.com/fr0UsMaB

Cela dit après test (à l'instant), le .38 ne plante pas lors de la lecture d'une vidéo comme annonce dans le topic un membre :D

Donc on va juste créer un p'ti script.

Je ne sais pas créer un daemon :/ c'est pourquoi j'ai procédé ainsi.

Re: [pkg] Kit Vostro 3700

Publié : dim. 01 mai 2011, 12:20
par FoolEcho
Feng a écrit :Je parle bien de KDE, et oui d'ajouter le script direct. Pour ceux qui n'utilisent pas KDE : j'ai proposé de spliter le paquet !
Tu sais que le planificateur ne fait rien d'autre que d'éditer crontab pour toi ? ... comme ça tout le monde peut en profiter, non ? (c'est également moins intrusif... si un démon n'y suffit pas...)

:?: Sinon, j'en profite pour replacer une interrogation que j'avais. Vu que Xorg est maintenant plus souple que jadis, n'est-il pas possible de laisser les configurations des deux cartes et de laisser X et udev se débrouiller ? (c'est-à-dire Device/Driver/BusID, comme je l'ai déjà évoqué ici: http://forums.archlinux.fr/post66932.html#p66932 ) :?:

Re: [pkg] Kit Vostro 3700

Publié : dim. 01 mai 2011, 12:21
par benjarobin
Pour les daemons il y a assez d’exemple dans le dossier /etc/rc.d :D

Re: [pkg] Kit Vostro 3700

Publié : dim. 01 mai 2011, 12:31
par Feng
Sauf qu'ici il s'agit d'une planitification au démarrage, donc non ce n'est pas dans les cron (je viens de vérifier)

Le mettre dans xdm autostart ? Bien pour l'inter-opérabilité mais foncièrement moins facilement gérable puisqu'il n'apparaitrait pas dans systemsettings (peut-être sous d'autres DE mais pas sous KDE)

Pour le #2 , j'ai créé (comme l'a suggéré le membre dans le topic sus-mentionné) un fichier dans /etc/X11/xorg.conf.d , et ça fonctionne (avant ce débile de Xorg détecté deux écrans auxquel il affecté une carte chacun, et donc quand on amené la souris au bord de l'écran à droite, la souris allait sur le 2e écran (qui n'existe pas ...) )

Re: [pkg] Kit Vostro 3700

Publié : dim. 01 mai 2011, 12:32
par Feng
Euu ouais pas faux pour le daemon x) je sais pas pourquoi je pensais à un binaire (nawak moi lol).

J'ai juste à créer un daemon avec une fonction start donc ?!

Re: [pkg] Kit Vostro 3700

Publié : dim. 01 mai 2011, 12:42
par FoolEcho
Feng a écrit :Sauf qu'ici il s'agit d'une planification au démarrage, donc non ce n'est pas dans les cron (je viens de vérifier)
Cherche "@reboot" + crontab ... (mais de toutes façons, avec un démon, problème résolu)

Re: [pkg] Kit Vostro 3700

Publié : dim. 01 mai 2011, 12:44
par Feng
Je comprends pas ce que tu veux dire par " Cherche "@reboot" + crontab "

Re: [pkg] Kit Vostro 3700

Publié : dim. 01 mai 2011, 12:48
par FoolEcho
Qu'outre les directives de temps (date, heure) de cron, tu peux spécifier @reboot à la place, et ta tâche est prise au démarrage du système (tu dois d'ailleurs avoir cette possibilité par le planificateur de tâche de kde):
http://doc.ubuntu-fr.org/cron
http://unixhelp.ed.ac.uk/CGI/man-cgi?crontab+5

Re: [pkg] Kit Vostro 3700

Publié : dim. 01 mai 2011, 12:53
par Feng
Non un démon ne résoud pas le soucis, car si le switch vers NVidia se fait avant le démarrage de X , l'extinction de la carte NVidia se fait après le démarrage de X, ce qu'un démon dans rc.conf ne peut faire (pour autant que je sache du moins, ce qui n'est pas du tout un gage de certitude ^^).

Voici le daemon ( /etc/rc.d/hybrid-switch ) :

Code : Tout sélectionner

#!/bin/bash

daemon_name=hybrid-switch

. /etc/rc.conf
. /etc/rc.d/functions

case "$1" in
  start)
  if [[ `cat /etc/switch` == "1" ]]
	then
	    stat_busy "Switching to NVidia Card"
		echo "DIS" > /sys/kernel/debug/vgaswitcheroo/switch
		echo "\_SB.PCI0.P0P1.PEGP.MXMX" > /proc/acpi/call
		echo "\_SB.PCI0.P0P1.PEGP.MXDS" > /proc/acpi/call
		echo "IGD" > /sys/kernel/debug/vgaswitcheroo/switch
		echo "DIS" > /sys/kernel/debug/vgaswitcheroo/switch
		echo "\_SB.PCI0.P0P1.PEGP.MXMX" > /proc/acpi/call
		echo "\_SB.PCI0.P0P1.PEGP.MXDS" > /proc/acpi/call
	fi
    stat_done
    ;;
  *)
    echo "usage: $0 {start}"  
esac
exit 0
Correct ?

Re: [pkg] Kit Vostro 3700

Publié : dim. 01 mai 2011, 13:07
par Feng
Après test, le démon ne fonctionne pas. (j'ai mis les même droits que les autres démons)

De plus, si le switch n'est pas fait, Xorg ne démarrage pas, car il veut charger la config avec le driver nouveau qui ne fonctionne évidemment pas puisqu'on n'a pas basculé vers la carte NVidia. Le script de switch devra donc déplacer 20-nouveau.conf vers .20-nouveau.conf , pour permettre à X de démarrer.

Re: [pkg] Kit Vostro 3700

Publié : dim. 01 mai 2011, 13:40
par benjarobin
Pour résoudre le problème, il suffit de lancer dans le daemon une tache en parallèle qui va attendre le démarrage de X.
Tu peux tout faire via un seul et unique daemon.

Re: [pkg] Kit Vostro 3700

Publié : dim. 01 mai 2011, 13:42
par Feng
Je ne sais pas faire ça :'(

J'aimerais afficher une notification au démarrage du DE pour confirmer que la carte NVidia a été désactivée, possible de faire un truc inter-opérable ?

Re: [pkg] Kit Vostro 3700

Publié : dim. 01 mai 2011, 13:44
par benjarobin
Oui c'est tout à fait possible grâce à libnotify (notify-send ou ses nombreux binding...)

Re: [pkg] Kit Vostro 3700

Publié : dim. 01 mai 2011, 13:51
par Feng
Ah oui je le connaissais celui-là maintenant que tu le dis ^^

Par contre pour attendre le lancement de X (et du DE aussi du coup, pour notifier) ??

Re: [pkg] Kit Vostro 3700

Publié : dim. 01 mai 2011, 13:56
par benjarobin
Je pense le plus simple, c'est que tu fasse un résumé détaillé de ce que tu veux faire, quelle action doit être lancé quand.. (avec le contenu du script...)
Car c'est plus ou moins brouillon. Comme ceci on pourra te créer le daemon qui correspond exactement à ce que tu cherches à faire