# [boinc] gpu cuda et tralala

## VIKING

Bonsoir,

j'ai installé ce weekend boinc et commencé à contribuer a la science. Pour ce qui ne connaissent pas boinc je vous invite à voir cet article de wikipédia : http://fr.wikipedia.org/wiki/BOINC

Oui mais voila, je suis un éternel insatisfait. Je veux donc maintenant utiliser ma carte graphique pour effectuer d'autres calcules. Je dispose d'une Nvidia 8600gt.

J'ai donc installé les derniers drivers nvidia, les 180.jecayplukoi puis ces deux packets : dev-util/nvidia-cuda-sdk et dev-util/nvidia-cuda-toolkit. 

Ensuite j'ai récupéré l'ebuild de boinc 6.4.5 sur le site de portage. Je l'ai ensuite recompilé sans erreur. 

Mais quand je lance le démon j'ai deux erreurs : la première pour un mauvais chemin vers un log. J'ai vite rétablis la situation. 

Le deuxième est un peu plus mystique. Voici le contenu de mon /etc/init.d/boinc : 

```

#!/sbin/runscript

opts="${opts} attach"

depend() {

        use dns

        need net

}

start() {

        ebegin "Starting BOINC"

        if [ ! -d ${RUNTIMEDIR} ]; then

                einfo "Directory ${RUNTIMEDIR} not existing, creating now."

                /bin/mkdir ${RUNTIMEDIR}

                /bin/chown ${USER}:${GROUP} ${RUNTIMEDIR}

                if [ ! -d ${RUNTIMEDIR} ]; then

                        eerror "Directory ${RUNTIMEDIR} could not be created!"

                        return 1

                fi

        fi

        cd ${RUNTIMEDIR}

        if [ ! -f lockfile ]; then

                einfo "File ${RUNTIMEDIR}/lockfile does not exist, assuming first run."

                einfo "You need to setup an account on the BOINC project homepage beforehand! Go to http://boinc.berkeley.edu/ and locate your project."

                einfo "Then either run /etc/init.d/boinc attach or connect with a gui client and attach to a project with that."

        fi

        ## if the log file doesn't exist, create it with root privs, then change ownership to boinc

                ## la variable log fonctionne mal : je met un chemin absolu

        if [ ! -f /var/lib/boinc/log ]; then

                touch /var/lib/boinc/log

                chown ${USER}:${GROUP} /var/lib/boinc/log

        else

                mv /var/lib/boinc/log /var/lib/boinc/log.old

                touch /var/lib/boinc/log

                chown ${USER}:${GROUP} /var/lib/boinc/log

        fi

        #if [ ${ALLOW_REMOTE_RPC} = "yes" ]; then

        #       ARGS="${ARGS} -allow_remote_gui_rpc"

        #fi

        setsid start-stop-daemon --quiet --start  --chdir ${RUNTIMEDIR} \

                --exec ${BOINCBIN} --chuid ${USER}:${GROUP} \

                --nicelevel ${NICELEVEL} -- ${ARGS} > /var/lib/boinc/log  2>&1 &

        eend $?

}

attach() {

printf "    Enter the Project URL: "

        read url

        printf "    Enter your Account Key: "

        read key

        RC_QUIET_STDOUT="yes" svc_status

        if [ $? == 1 ]; then

                svc_start

        fi

        ebegin "Attaching to project"

                # boinc cmd does not return 1 when it fails currently

                boinc_cmd --project_attach ${url} ${key} &> /dev/null

        eend $?

        #sleep 10

        tail /var/lib/boinc/log

}

stop() {

        ebegin "Stopping BOINC"

        start-stop-daemon --stop --quiet --exec ${BOINCBIN}

        eend $?

}

restart() {

        svc_stop

        #sleep 6

        svc_start

}

```

Mon problème se situe au niveau de ce if : 

 *Quote:*   

> 
> 
> #if [ ${ALLOW_REMOTE_RPC} = "yes" ]; then
> 
> #       ARGS="${ARGS} -allow_remote_gui_rpc"
> ...

 

j'ai ce message d'erreur :

 *Quote:*   

> 
> 
> /etc/init.d/boinc: line 41: [: =: unary operator expected
> 
> 

 

Comme vous l'avez vu j'ai commenté cette partie du code pour le moment. En fait je n'ai pas trouvé la variable ALLOW_REMOTE_RPC. J'ai donc supposé que cette condition ne serais jamais remplie donc toujours fausse, donc pas besoins de la faire ^^"

Toujours est-il que maintenant je n'arrive plus a me connecter à n'importe quel projet. J'ai ce message d'erreur : 

 *Quote:*   

> 
> 
> connect: Connection refused
> 
> can't connect to local host
> ...

 

Sachant que j'ai désactivé iptables provisoirement et qu'un ping sur localhost fonctionne bien . . .

Auriez vous une idée merci ;)

----------

## kwenspc

et en décommentant ARGS="${ARGS} -allow_remote_gui_rpc"  ?

----------

## VIKING

oue apparement çà a un rapport avec la connection, je parle de mon problème sur cette page : http://www.grid-france.fr/forum/viewtopic.php?id=812

Sauf que même avec cette ligne décommentée  je n'arrive toujours pas a me connecter. . .

----------

## Mickael

Ton message d'erreur : /etc/init.d/boinc: line 41: [: =: unary operator expected  ça serait pas un problème de droit en écriture des fois, au hasard?

----------

## kwenspc

 *Mickael wrote:*   

> Ton message d'erreur : /etc/init.d/boinc: line 41: [: =: unary operator expected  ça serait pas un problème de droit en écriture des fois, au hasard?

 

Nan en fait il faudrait que la ligne soit comme ça:

```

if [ "${ALLOW_REMOTE_RPC}" = "yes" ]; then

 ARGS="${ARGS} -allow_remote_gui_rpc"

fi 

```

Parce que si ALLOW_REMOTE_RPC est initialisée nulle part, ${ALLOW_REMOTE_RPC} va rien donner. 

Tu peux tester en console rapidement. C'est une erreur commune en shell script. 

@VIKING: tu peux passer un bug report à ce sujet sur le bugzilla gentoo bugs.gentoo.org  :Wink: 

----------

## Mickael

ok kwenspc, 

VIKING, tu as suivi ce guide proposé par Berkley : Installing_BOINC_on_Gentoo?

EDIT :  *Quote:*   

> #if [ ${ALLOW_REMOTE_RPC} = "yes" ]; then
> 
>         #       ARGS="${ARGS} -allow_remote_gui_rpc"
> 
>         #fi 

 

ceci est en rapport avec la partie Set up your accounts du document de Berkeley, ensuite je suis tombé la dessus :

 *Quote:*   

> BOINC configuration file is located in /etc/conf.d/boinc.
> 
> Important Variables to note:
> 
> ALLOW_REMOTE_RPC
> ...

  sur ce forum

----------

## Oupsman

message supprimé

----------

## kwenspc

@Oupsman: je sais pas pour les autres shell (ni pour la norme POSIX), mais ce que j'ai mis plus haut passe sous bash. La logique c'est que si variable n'est pas initialisé et bien le test ressemblera à "" = "yes".   Peut-être que c'est pas généralisable, j'en sais rien  :Neutral: 

----------

## ryo-san

gni ?

Si tu pouvais expliciter oupsman stp que je dorme un peu moins bete   :Very Happy: 

----------

## VIKING

J'ai essayé tout ce qui à été dit jusqu'à présent mais sans résultats.

Par contre je viens d'installer boinc 6.4.5 sur un autre pc. Qui n'avais aucun boinc d'installé avant. J'ai remarqué qu'une fois la compilation finie le bossier /var/lib/boinc est vide et qu'il n'y a pas de /etc/init.d/boinc de créer.

C'est peut être normale . . .

Je n'ai pas le temps d'y reflechier plus ce soir. Je regarderais la doc en détail demain ;)

En tout cas merci !

----------

## titoucha

Ne pas oublier d'éditer /var/lib/boinc/gui_rpc_auth.cfg pour modifier ou enlever le mot de passe pour la connexion du gui, celui d'origine est imbuvable.

----------

## VIKING

Je ne me suis pas penché sur le problème pendant quelques jours, j'avais d'autres choses à regler.

Hier soir j'ai décidé de régler une bonne foi pour toute le problème.

en fait pour lancer boinc il suffit de lancer cette commande :

boinc_client --attach_project URL ID

Et là tout se met à fonctionner sans problème. Je ne sais pas si c'est la même chose pour la 6.2. Moi je devais lancer le démon puis me joindre à un projet, c'était un peu plus embêtant.

Pour ce qui est de la carte graphique je ne peux pas la tester pour le moment. Je suis en vacances (étudiant powa), du coup je suis avec mon portable chez mes parents. Or ma carte graphique Nvidia se trouve dans ma tour que j'ai laissé éteint dans mon appart.

)Donc, le problème n'est pas résolu, mais il y a des améliorations ;)

----------

