BOINC@Poland

Inne => Archiwum => Wątek zaczęty przez: lolek w 30 Kwiecień 2012, 13:03

Tytuł: unity + BOINC
Wiadomość wysłana przez: lolek w 30 Kwiecień 2012, 13:03
Jako że znów mnie coś naleciało (chyba mózg się przegrzał od upału)  postawiłem sobie linuksa. A konkretnie Ubuntu 12.04 LTS z Unity i jak zawsze coś musi nie działać  :wth: Tym razem dla odmiany mam spory problem z menedżerem BOINC...zarówno po zainstalowaniu go z centrum oprogramowania, z konsoli (apt-get) jak i ze strony berkley jest ten sam problem. Nie można przejść do widoku zaawansowanego...w widoku "podstawowym" brakuje opcji "widok zaawansowany" i "preferencje".

Dodatkowo nie ma możliwości zamknięcia menedżera, po naciśnięciu krzyżyka, lub ppm na ikonie i "zamkni" menedżer na chwilę się minimalizuje i ponownie włącza.

Ps. jakim cudem BOINC w centrum oprogramowania waży 70MB, a po rozpakowaniu zajmuje >200MB ?  |-?

Edit: próba wylogowania użytkownika przy włączonym BOINCu 7/10 razy kończy się zawieszeniem systemu...pokazuje się pulpit, kursor myszki chodzi, ale ikony są nieaktywne.
Tytuł: unity + BOINC
Wiadomość wysłana przez: Martin Fox w 30 Kwiecień 2012, 13:13
takie uroki unity - na gnome dziala normalnie, jest widok zaawansowany i w ogóle jest ok. Zawsze twierdziłem, że unity to największa porażka ubuntu.
Tytuł: unity + BOINC
Wiadomość wysłana przez: lolek w 30 Kwiecień 2012, 13:49
To jeszcze jedno pytanie, co zrobić by boinc startował minutę po starcie systemu? Bo obecnie uruchamia się przed sterownikiem karty graficznej, i później nie ma do niej dostępu (przynajmniej tak mi się wydaje). Po restarcie boinc`a karta zaczyna liczyć. Ale wpisywanie za każdym razem hasła to kiepska opcja.
Tytuł: unity + BOINC
Wiadomość wysłana przez: Martin Fox w 30 Kwiecień 2012, 14:07
boinc jest startowany przez skrypt w /etc/init.d ? bo jesli tak, wystarczy dodac w skrypcie
sleep 180 i bedzie startowal po 3 minutach :P
Tytuł: unity + BOINC
Wiadomość wysłana przez: lolek w 30 Kwiecień 2012, 14:35
Tylko jeszcze powiedz gdzie  ;)

#! /bin/sh
### BEGIN INIT INFO
# Provides:          boinc
# Required-Start:    $all
# Required-Stop:     $local_fs $remote_fs
# Should-Start:      x11-common network-manager gdm kdm dbus
# Should-Stop:       x11-common
# Default-Start:     4 5
# Default-Stop:      0 1 2 3 6
# Short-Description: BOINC core client
# Description:       core client for the BOINC distributed computing
#                    infrastructure
### END INIT INFO

# Debian init.d script for the BOINC core client
# Copyright © 2005, 2006, 2007, 2008
# Debian BOINC Maintainers <pkg-boinc-devel@lists.alioth.debian.org>
#
# This file is licensed under the terms of the GNU General Public License,
# Version 2 or any later version published by the Free Software Foundation.

set -e
. /lib/lsb/init-functions

# Default values for the variables that are also set in the defaults file.
ENABLED=0
SCHEDULE=0
BOINC_USER=boinc
BOINC_DIR=/var/lib/boinc-client
BOINC_CLIENT=/usr/bin/boinc
BOINC_OOM_ADJ=15

# Source defaults file. Edit that file to configure this script.
if [ -e /etc/default/boinc-client ]; then
  . /etc/default/boinc-client
fi

# Quit quietly, if $ENABLED is 0.
test "$ENABLED" != "0" || exit 0

if [ "$BOINC_CLIENT" = "/usr/bin/boinc" ]; then
  test -x "$BOINC_CLIENT" || exit 0
elif [ ! -x "$BOINC_CLIENT" ]; then
  log_failure_msg "BOINC client '$BOINC_CLIENT' does not exist or is not" \
    "executable."
  exit 5
fi

if [ ! -d "$BOINC_DIR" ]; then
  log_failure_msg "BOINC data directory '$BOINC_DIR' does not exist."
  exit 6
fi

if [ -z "$BOINC_USER" ]; then
  log_failure_msg "BOINC_USER variable is empty. Set it to a user to run" \
    "the BOINC core client."
  exit 6
fi

if [ ! -z "$BOINC_OPTS" ]; then
(echo $BOINC_OPTS | grep -- '--daemon' 1>/dev/null) &&
log_warning_msg "\`--daemon' option detected \
on /etc/default/boinc-client, this \
can cause problems on boinc. The option \
will be suppressed"
BOINC_OPTS=`echo "$BOINC_OPTS" | sed 's/--daemon//g'`
fi

PIDFILE=/var/run/boinc.pid
DESC="BOINC core client"
NAME=`basename $BOINC_CLIENT`
BOINC_OPTS="--check_all_logins --redirectio --dir $BOINC_DIR $BOINC_OPTS"

is_running()
{
  retval=1
  if [ -r $PIDFILE ]; then
    pid=`cat $PIDFILE`
    if [ -e /proc/$pid ]; then
      procname=`/bin/ps h -p $pid`
      [ -n "$procname" ] && retval=0
    fi
  fi
  return $retval
}

start()
{
  log_begin_msg "Starting $DESC: $NAME"
  if is_running; then
    log_progress_msg "already running"
  else
    if [ -n "$DISPLAY" -a -x /usr/bin/xhost ]; then
       # grant the boinc client to perform GPU computing
       xhost local:boinc || echo -n "xhost error ignored, GPU computing may not be possible"
    fi
    start-stop-daemon --start --quiet --background --pidfile $PIDFILE \
      --make-pidfile --user $BOINC_USER --chuid $BOINC_USER \
      --chdir $BOINC_DIR --exec $BOINC_CLIENT -- $BOINC_OPTS
  fi
  log_end_msg 0

  if [ "$SCHEDULE" = "1" ]; then
    schedule
  fi
}

stop()
{
  log_begin_msg "Stopping $DESC: $NAME"
  if ! is_running; then
    log_progress_msg "not running"
  else
    start-stop-daemon --stop --quiet --oknodo --pidfile $PIDFILE \
      --user $BOINC_USER --exec $BOINC_CLIENT

# Wait until really stopped - $pid is set from is_running
# (waiting for max 60s (600 cycles at 100ms))
i=0
while kill -0 "$pid" 2> /dev/null;  do
if [ $i = '600' ]; then
break;
else
if [ $i = '0' ]; then
echo -n " ... waiting "
elif [ $(($i%10)) = 0 ]; then
echo -n "."
fi
i=$(($i+1))
sleep .1
fi
done
  fi

  rm -f "$BOINC_DIR/lockfile"
  rm -f $PIDFILE
  log_end_msg 0
}

chrt_many()
{
   POLICY="$1"
   PRIO="$2"
   NICE="$3"
   shift 3
   for i in "$@"; do
     chrt -p $POLICY $PRIO $i || return
     # increasing compatibility with older versions of renice
     # in reaction to bug report #600134
     renice $NICE -p $i > /dev/null || renice -n $NICE -p $i
   done
}

schedule()
{
  log_begin_msg "Setting up scheduling for $DESC and children:"
  if ! is_running; then
    log_progress_msg "$NAME not running"
  else
    if [ ! -x "`which ionice 2>/dev/null`" ]; then
      log_progress_msg "ionice not found,"
    else
      if ionice -c 3 -p $pid 2>/dev/null; then
        log_progress_msg "idle,"
      else
        log_progress_msg "ionice failed,"
      fi
    fi

    children=`ps --ppid $pid -o pid= | tr '\n' ' '`

    if [ ! -x "`which chrt 2>/dev/null`" ]; then
      log_progress_msg "chrt not found"
    else
      (chrt_many --idle 0 19 $pid $children >/dev/null \
        && log_progress_msg "idleprio") || \
      (chrt_many --batch 0 19 $pid $children >/dev/null \
        && log_progress_msg "batch") || \
      (chrt_many --other 0 19 $pid $children >/dev/null \
        && log_progress_msg "normal") || \
      log_progress_msg "chrt failed"
    fi
    for BPID in ${pid} ${children}; do
      if [ -w /proc/${BPID}/oom_adj ]; then
        echo ${BOINC_OOM_AD} > /proc/${BPID}/oom_adj 2>/dev/null || true
      else
        echo "Could not write to /proc/${BPID}/oom_adj"
      fi
    done
  fi
  log_end_msg 0
}

status()
{
  STATUS="Status of $DESC:"
  if is_running; then
    log_success_msg "$STATUS running"
    children=`ps --ppid $pid -o pid= | tr '\n' ' '`
    if [ -x "`which chrt 2>/dev/null`" ]; then
      log_success_msg "Scheduling of $DESC: $pid"
      chrt -p $pid

      if [ -n "$children" ]; then
        log_success_msg "Scheduling of $DESC's children: $children"
        for i in $children; do
          chrt -p $i
        done
      fi
    fi
    log_success_msg "OOM killer status for $DESC:"
    for BPID in ${pid} ${children}; do
      echo -n "PID ${BPID}: "
      if [ ! -d "/proc/${BPID}" ]; then
        echo "/proc/${BPID} not found"
        continue
      fi

      echo -n "adj "
      if [  -r "/proc/${BPID}/oom_adj" ]; then
        cat /proc/${BPID}/oom_adj
      else
        echo "?"
      fi
      echo ", score "

      if [  -r "/proc/${BPID}/oom_adj" ]; then
        cat /proc/${BPID}/oom_score
      else
        echo -n "?"
      fi

      echo
    done

    # Display $BOINC_USER's cpu_share:
    uid=`id -u $BOINC_USER`
    cpu_share_file="/sys/kernel/uids/$uid/cpu_share"
    if [ -f "$cpu_share_file" ]; then
      log_success_msg "cpu_share: `cat "$cpu_share_file"`"
    fi
  else
    log_success_msg "$STATUS stopped"
  fi
}

case "$1" in
  start)
    start
    ;;

  stop)
    stop
    ;;

  restart|force-reload)
    stop
    sleep 1
    start
    ;;

  status)
    status
    ;;

  schedule)
    schedule
    ;;

  *)
    log_success_msg "Usage: $0 {start|stop|restart|force-reload|status|schedule}" >&2
    exit 1
    ;;
esac

exit 0
Tytuł: unity + BOINC
Wiadomość wysłana przez: Martin Fox w 30 Kwiecień 2012, 15:29
możesz dać na samym początku skryptu, przed pierwszą linią :) co prawda nie jest to najpiękniejsze rozwiązanie, ale powinno zadziałać.
A w unity da się dostać do widoku zaawansowanego, działają skróty klawiszowe - CTRL+SHIFT+A :)
CTRL+SHIFT+V to powrót do widoku prostego, a CRTL+Q zamyka klienta na dobre (zamyka, nie minimalizuje).
mam nadzieję, że odrobinę pomogłem
Tytuł: unity + BOINC
Wiadomość wysłana przez: lolek w 30 Kwiecień 2012, 16:05
Komenda faktycznie powoduje opóźnienie startu BOINCa, ale równocześnie uniemożliwia wyłączenie komputera...tak samo jak dodanie do autostartu (init.d) skryptu do automatycznego restartu klienta  :dunno:

Ale i tak wielkie dzięki  :parrrty:
Tytuł: unity + BOINC
Wiadomość wysłana przez: Martin Fox w 30 Kwiecień 2012, 16:09
Cytat: lolek w 30 Kwiecień 2012, 16:05
Komenda faktycznie powoduje opóźnienie startu BOINCa, ale równocześnie uniemożliwia wyłączenie komputera...tak samo jak dodanie do autostartu (init.d) skryptu do automatycznego restartu klienta  :dunno:
Nie powinno uniemożliwiać, co najwyżej opóźniać.
Ewentualnie, gdzie jest sekcja
case "$1" in
  start)
    sleep 180 && start

powinno (chyba) zadziałać lepiej, tylko przy startowaniu, a nie przy restartcie/zamykaniu  - chwilowo nie mam jak sprawdzić ;(
Tytuł: unity + BOINC
Wiadomość wysłana przez: lolek w 30 Kwiecień 2012, 16:21
dużo lepiej, system zamyka się z normalną prędkością  :) nie licząc kilku czerwonych linii podczas wyłączania  :)
Tytuł: unity + BOINC
Wiadomość wysłana przez: Martin Fox w 30 Kwiecień 2012, 16:34
 :parrrty: XD
Tytuł: unity + BOINC
Wiadomość wysłana przez: lolek w 30 Kwiecień 2012, 17:51
To mam jeszcze jedno pytanie...jak zalogować się na root`a? Bo z poziomu sudo nie jestem w stanie zmienić grupy dla folderu dev/ati... Wywala mi że nie należę do grupy sudoers. Polecenie sudo su nie działa, sudo -i też nie, samo su prosi o hasło root`a ale żadno standardowe (root, passwd, brak) nie działa, sudo passwd root też nie skutkuje...

Edit
Coś spaprałem z uprawnieniami...moje hasło nie działa (mogę się zalogować na konto, ale sudo nie działa)
Tytuł: unity + BOINC
Wiadomość wysłana przez: lolek w 30 Kwiecień 2012, 19:51
wykasowałem się z grupy root (idiota), a na domiar złego w trybie ratunkowym nie mogę dodać nowego użytkownika, ani zmienić swoich uprawnień...zniknęło na chwilę zasilanie i teraz wyskakuje mi że plik tylko do odczytu. mój nowy rekord, w 24h rozwaliłem system  XD

No nic...reinstalka  :whistle:
Tytuł: unity + BOINC
Wiadomość wysłana przez: Martin Fox w 01 Maj 2012, 11:35
po po instalce systemu powinno sie zrobic sudo passwd root :)
Tytuł: unity + BOINC
Wiadomość wysłana przez: lolek w 01 Maj 2012, 12:24
to wiem, tylko jak się nie było w grupie root to to było niewykonalne  ;D męczyłem się 2h ze zrobieniem tego, a reinstalka wraz z większością konfiguracji trwała 1h  XD
Tytuł: unity + BOINC
Wiadomość wysłana przez: tito w 22 Październik 2012, 14:12
Podłączę się tu.
Jak zainstalować amd sdk pod ubuntu 12.04?
Jestem totalnym zerem jeśli chodzi o linuxa.
W repozytorium tego niestety nie ma, a plik z netu ma rozszerzenie .tz
Do tej pory udało mi się: rozpakować - dać komendę make (po dodaniu kilku rzeczy z repozytorium zadziałało) - tu sie utworzył kolejny katalog z plikiem xxxapp-sdkxxx.a  (coś w tym stylu)  XD
Dalej nic nie mogę zrobić, make install nie działa.
Na chwile obecną sterowniki są w wersji 12.8 ze strony AMD.
Help, bo się karta marnuje.
Dodatkowo ścierwo jest dostępne tylko przez teamviewer - wolno się trochę działa na tym.
Tytuł: unity + BOINC
Wiadomość wysłana przez: sknd w 22 Październik 2012, 15:04
spróbuj tego

http://blog.markloiseau.com/2012/05/install-opencl-sdk-ubuntu/

a jak nie da rady, to poszukaj na ubuntuforums.org
Tytuł: unity + BOINC
Wiadomość wysłana przez: Martin Fox w 22 Październik 2012, 15:13
Ja pamiętam że było do ściągnięcia ze strony AMD w paczce w której był skrypt .sh - dawało się tylko +x i sam wszystko robił :)
Tytuł: unity + BOINC
Wiadomość wysłana przez: tito w 23 Październik 2012, 09:44
Niby coś się zainstalowało, ale BOINC dalej nie widzi usable GPU.
Wbijam w linuxa. Wolę zainwestować 600 zł na win7 i HDD.
Tytuł: unity + BOINC
Wiadomość wysłana przez: Martin Fox w 23 Październik 2012, 12:15
Ja tam nie wiem, u mnie SDK działa bez problemu, instalowało się samo przy pomocy skryptu .sh - skąd to ściągałeś?
Tytuł: unity + BOINC
Wiadomość wysłana przez: tito w 23 Październik 2012, 12:34
Ze strony AMD - ten najnowszy 2.7
Ale temat jest do zamknięcia - zamówienie już poszło. Win7 oraz HDD 500GB W sobotę odbiór w pn w godzinach wieczornych może zacznie liczyć.