GKrellM üzerinde Ati kart sıcaklığını nasıl gösterebilirim?

Başlatan Şiyar, 01 Eylül 2013 - 23:29:31

« önceki - sonraki »

0 Üyeler ve 3 Ziyaretçi konuyu incelemekte.

Şiyar

Merhaba arkadaşlar,aticonfig üzerinden --od-gettemperature sensörünü GKrellm programında gösterebilirmiyiz?


Şiyar

Forumda yeniyim fark edemedim mesajı şimdi gördüm teşekkürler fakat bir türlü yapamadım.
Metni nereye kopyalıyacaz anlamdım.

if

O yama 2.3.1 sürümü ile çalıştığı için onu indirip derlememiz gerek. Sizin kurduğunuz bir sürüm varsa önce onu kaldırın. Sonra wget ftp://ftp.freebsd.org/pub/FreeBSD/ports/local-distfiles/ume/gkrellm-2.3.1.tar.bz2 komutu ile kaynak kodu çekin. tar xvjf gkrellm-2.3.1.tar.bz2 ile arşivi çıkartın. Bu[1] sayfadaki metni bir dosyaya kopyalayıp ati.patch olarak adlandırın ve gkrellm-2.3.1 dizini altına kaydedin. Sonra cd gkrellm-2.3.1 ile dizin içine girin. patch -p0 < ati.patch komutu ile yamalayın. Sonra gkrellm'i derlersiniz.

Şiyar

Herşey tamam sadece yüklemesi kaldı onu nasıl yapıyoruz :)

if

Yükleme derken GkrellM'i derlemek mi? Öyle ise ./configure
make
sudo make install
ile derleyebilirsiniz.

Şiyar

ilk koddan sonra bu hatayı aldım
No package 'gtk+-2.0' found

heartsmagic

sudo apt-get install libgtk2.0-dev
ile istenen paketi kurup tekrar dene. Fakat böyle başka bağımlılıklar da çıkabilir. Uygulamanın yeni sürümü değilse eskide kalmışlar bile olabilir.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

Şiyar

denedim fakat bu hatayı aldım

make[1]: *** [client.o] Hata 1
make[1]: `/home/ewr/gkrellm-2.3.1/src' dizininden çıkılıyor
make: *** [all] Hata 2

heartsmagic

Hata o kadar değildir, öncesi vardır. Mümkünse daha yukarılardan, hatta tamamını geçmeye çalış.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

Şiyar

cd gkrellm-2.3.1
gkrellm-2.3.1$ ./configure
bash: ./configure: Böyle bir dosya ya da dizin yok





Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 05 Eylül 2013 - 01:55:26

sonrasında make komutu
(cd po && make all)
make[1]:`/home/ewr/gkrellm-2.3.1/po' dizinine giriliyor
make[1]: `all' için hiçbir şey yapılmadı.
make[1]: `/home/ewr/gkrellm-2.3.1/po' dizininden çıkılıyor
(cd src && make gkrellm)
make[1]:`/home/ewr/gkrellm-2.3.1/src' dizinine giriliyor
cc -Wall -O2 -I.. `pkg-config --cflags gtk+-2.0 gthread-2.0`   -DENABLE_NLS -DLOCALEDIR=\"/usr/local/share/locale\"    -c -o client.o client.c
client.c:1609:1: error: conflicting types for 'getline'
getline(gint fd, gchar *buf, gint len)
^
In file included from /usr/include/pango-1.0/pango/pango-utils.h:25:0,
                 from /usr/include/pango-1.0/pango/pango.h:46,
                 from /usr/include/gtk-2.0/gdk/gdktypes.h:37,
                 from /usr/include/gtk-2.0/gdk/gdkscreen.h:32,
                 from /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:31,
                 from /usr/include/gtk-2.0/gdk/gdk.h:32,
                 from /usr/include/gtk-2.0/gtk/gtk.h:32,
                 from gkrellm.h:34,
                 from client.c:23:
/usr/include/stdio.h:678:20: note: previous declaration of 'getline' was here
extern _IO_ssize_t getline (char **__restrict __lineptr,
                    ^
client.c: In function 'gkrellm_client_mode_connect_thread':
client.c:1922:2: warning: 'g_thread_create' is deprecated (declared at /usr/include/glib-2.0/glib/deprecated/gthread.h:100): Use 'g_thread_new' instead [-Wdeprecated-declarations]
  g_thread_create(client_mode_connect_thread, NULL, FALSE, NULL);
  ^
make[1]: *** [client.o] Hata 1
make[1]: `/home/ewr/gkrellm-2.3.1/src' dizininden çıkılıyor
make: *** [all] Hata 2


if


Şiyar

ve sudo make install komutu
install -d /usr/local/lib/pkgconfig
install -m 644 -c gkrellm.pc /usr/local/lib/pkgconfig
(cd po && make install)
make[1]:`/home/ewr/gkrellm-2.3.1/po' dizinine giriliyor
make all
make[2]:`/home/ewr/gkrellm-2.3.1/po' dizinine giriliyor
make[2]: `all' için hiçbir şey yapılmadı.
make[2]: `/home/ewr/gkrellm-2.3.1/po' dizininden çıkılıyor
for f in bg.mo cs.mo da.mo de.mo es.mo fr.mo it.mo ja.mo nl.mo pl.mo pt_BR.mo ru.mo sl.mo sv.mo ; do mkdir -p \
/usr/local/share/locale/`basename $f .mo`/LC_MESSAGES ; \
cp $f /usr/local/share/locale/`basename $f .mo`/LC_MESSAGES/gkrellm.mo ; done
make[1]: `/home/ewr/gkrellm-2.3.1/po' dizininden çıkılıyor
(cd src && make install)
make[1]:`/home/ewr/gkrellm-2.3.1/src' dizinine giriliyor
install -d -m 755 /usr/local/bin
install -c -s -m 755 gkrellm /usr/local/bin/gkrellm
install: `gkrellm' durumlanamadı: Böyle bir dosya ya da dizin yok
make[1]: *** [install_bin] Hata 1
make[1]: `/home/ewr/gkrellm-2.3.1/src' dizininden çıkılıyor
make: *** [install] Hata 2





Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 05 Eylül 2013 - 01:59:38

Başlangıç dizini altında

if

make clean
./configure
çıktılarını alalım önce.

Düzeltme: /.configure istemiyormuş. make ile devam edin.

Şiyar

make clean
(cd po && make clean)
make[1]:`/home/ewr/gkrellm-2.3.1/po' dizinine giriliyor
rm -f bg.mo cs.mo da.mo de.mo es.mo fr.mo it.mo ja.mo nl.mo pl.mo pt_BR.mo ru.mo sl.mo sv.mo
make[1]: `/home/ewr/gkrellm-2.3.1/po' dizininden çıkılıyor
(cd src && make clean)
make[1]:`/home/ewr/gkrellm-2.3.1/src' dizinine giriliyor
rm -f *.o *~ *.bak configure.h configure.log gkrellm gkrellm.exe \
libgkrellm.a sysdeps/*.o core
make[1]: `/home/ewr/gkrellm-2.3.1/src' dizininden çıkılıyor
(cd server && make clean)
make[1]:`/home/ewr/gkrellm-2.3.1/server' dizinine giriliyor
rm -f *.o *~ *.bak configure.h configure.log gkrellmd gkrellmd.exe \
libgkrellmd.a core
make[1]: `/home/ewr/gkrellm-2.3.1/server' dizininden çıkılıyor
rm -f gkrellm.pc


./configure komutu
bash: ./configure: Böyle bir dosya ya da dizin yok

if


Şiyar

make
(cd po && make all)
make[1]:`/home/ewr/gkrellm-2.3.1/po' dizinine giriliyor
make[1]: `all' için hiçbir şey yapılmadı.
make[1]: `/home/ewr/gkrellm-2.3.1/po' dizininden çıkılıyor
(cd src && make gkrellm)
make[1]:`/home/ewr/gkrellm-2.3.1/src' dizinine giriliyor
cc -Wall -O2 -I.. `pkg-config --cflags gtk+-2.0 gthread-2.0`   -DENABLE_NLS -DLOCALEDIR=\"/usr/local/share/locale\"    -c -o client.o client.c
client.c:1609:1: error: conflicting types for 'getline'
getline(gint fd, gchar *buf, gint len)
^
In file included from /usr/include/pango-1.0/pango/pango-utils.h:25:0,
                 from /usr/include/pango-1.0/pango/pango.h:46,
                 from /usr/include/gtk-2.0/gdk/gdktypes.h:37,
                 from /usr/include/gtk-2.0/gdk/gdkscreen.h:32,
                 from /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:31,
                 from /usr/include/gtk-2.0/gdk/gdk.h:32,
                 from /usr/include/gtk-2.0/gtk/gtk.h:32,
                 from gkrellm.h:34,
                 from client.c:23:
/usr/include/stdio.h:678:20: note: previous declaration of 'getline' was here
extern _IO_ssize_t getline (char **__restrict __lineptr,
                    ^
client.c: In function 'gkrellm_client_mode_connect_thread':
client.c:1922:2: warning: 'g_thread_create' is deprecated (declared at /usr/include/glib-2.0/glib/deprecated/gthread.h:100): Use 'g_thread_new' instead [-Wdeprecated-declarations]
  g_thread_create(client_mode_connect_thread, NULL, FALSE, NULL);
  ^
make[1]: *** [client.o] Hata 1
make[1]: `/home/ewr/gkrellm-2.3.1/src' dizininden çıkılıyor
make: *** [all] Hata

if

gkrellm-2.3.1/src/client.c dosyasının 1922.ci satırındaki g_thread_create fonksiyonunun adını g_thread_new olarak değiştirip tekrar deneyin.

Şiyar

böyle yaptım fakat make diyince aynı hatayı verdi

g_thread_new(client_mode_connect_thread, NULL, FALSE, NULL);
   }



Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 05 Eylül 2013 - 02:35:12

çıktı
make[1]:`/home/ewr/gkrellm-2.3.1/po' dizinine giriliyor
make[1]: `all' için hiçbir şey yapılmadı.
make[1]: `/home/ewr/gkrellm-2.3.1/po' dizininden çıkılıyor
(cd src && make gkrellm)
make[1]:`/home/ewr/gkrellm-2.3.1/src' dizinine giriliyor
cc -Wall -O2 -I.. `pkg-config --cflags gtk+-2.0 gthread-2.0`   -DENABLE_NLS -DLOCALEDIR=\"/usr/local/share/locale\"    -c -o client.o client.c
client.c:1609:1: error: conflicting types for 'getline'
getline(gint fd, gchar *buf, gint len)
^
In file included from /usr/include/pango-1.0/pango/pango-utils.h:25:0,
                 from /usr/include/pango-1.0/pango/pango.h:46,
                 from /usr/include/gtk-2.0/gdk/gdktypes.h:37,
                 from /usr/include/gtk-2.0/gdk/gdkscreen.h:32,
                 from /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:31,
                 from /usr/include/gtk-2.0/gdk/gdk.h:32,
                 from /usr/include/gtk-2.0/gtk/gtk.h:32,
                 from gkrellm.h:34,
                 from client.c:23:
/usr/include/stdio.h:678:20: note: previous declaration of 'getline' was here
extern _IO_ssize_t getline (char **__restrict __lineptr,
                    ^
client.c: In function 'gkrellm_client_mode_connect_thread':
client.c:1922:2: warning: passing argument 1 of 'g_thread_new' from incompatible pointer type [enabled by default]
  g_thread_new(client_mode_connect_thread, NULL, FALSE, NULL);
  ^
In file included from /usr/include/glib-2.0/glib/gasyncqueue.h:34:0,
                 from /usr/include/glib-2.0/glib.h:34,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:25,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:30,
                 from /usr/include/gtk-2.0/gdk/gdk.h:32,
                 from /usr/include/gtk-2.0/gtk/gtk.h:32,
                 from gkrellm.h:34,
                 from client.c:23:
/usr/include/glib-2.0/glib/gthread.h:146:17: note: expected 'const gchar *' but argument is of type 'void * (*)(void *)'
GThread *       g_thread_new                    (const gchar    *name,
                 ^
client.c:1922:2: error: too many arguments to function 'g_thread_new'
  g_thread_new(client_mode_connect_thread, NULL, FALSE, NULL);
  ^
In file included from /usr/include/glib-2.0/glib/gasyncqueue.h:34:0,
                 from /usr/include/glib-2.0/glib.h:34,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:25,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:30,
                 from /usr/include/gtk-2.0/gdk/gdk.h:32,
                 from /usr/include/gtk-2.0/gtk/gtk.h:32,
                 from gkrellm.h:34,
                 from client.c:23:
/usr/include/glib-2.0/glib/gthread.h:146:17: note: declared here
GThread *       g_thread_new                    (const gchar    *name,
                 ^
make[1]: *** [client.o] Hata 1
make[1]: `/home/ewr/gkrellm-2.3.1/src' dizininden çıkılıyor
make: *** [all] Hata 2

if


Şiyar

bu çıktıyı aldım. Umarım rahatsız etmiyorumdur.
(cd po && make all)
make[1]:`/home/ewr/gkrellm-2.3.1/po' dizinine giriliyor
make[1]: `all' için hiçbir şey yapılmadı.
make[1]: `/home/ewr/gkrellm-2.3.1/po' dizininden çıkılıyor
(cd src && make gkrellm)
make[1]:`/home/ewr/gkrellm-2.3.1/src' dizinine giriliyor
cc -Wall -O2 -I.. `pkg-config --cflags gtk+-2.0 gthread-2.0`   -DENABLE_NLS -DLOCALEDIR=\"/usr/local/share/locale\"    -c -o client.o client.c
client.c:1609:1: error: conflicting types for 'getline'
getline(gint fd, gchar *buf, gint len)
^
In file included from /usr/include/pango-1.0/pango/pango-utils.h:25:0,
                 from /usr/include/pango-1.0/pango/pango.h:46,
                 from /usr/include/gtk-2.0/gdk/gdktypes.h:37,
                 from /usr/include/gtk-2.0/gdk/gdkscreen.h:32,
                 from /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:31,
                 from /usr/include/gtk-2.0/gdk/gdk.h:32,
                 from /usr/include/gtk-2.0/gtk/gtk.h:32,
                 from gkrellm.h:34,
                 from client.c:23:
/usr/include/stdio.h:678:20: note: previous declaration of 'getline' was here
extern _IO_ssize_t getline (char **__restrict __lineptr,
                    ^
client.c: In function 'gkrellm_client_mode_connect_thread':
client.c:1922:2: warning: passing argument 1 of 'g_thread_try_new' from incompatible pointer type [enabled by default]
  g_thread_try_new (client_mode_connect_thread, NULL, FALSE, NULL);
  ^
In file included from /usr/include/glib-2.0/glib/gasyncqueue.h:34:0,
                 from /usr/include/glib-2.0/glib.h:34,
                 from /usr/include/glib-2.0/gobject/gbinding.h:30,
                 from /usr/include/glib-2.0/glib-object.h:25,
                 from /usr/include/glib-2.0/gio/gioenums.h:30,
                 from /usr/include/glib-2.0/gio/giotypes.h:30,
                 from /usr/include/glib-2.0/gio/gio.h:28,
                 from /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:30,
                 from /usr/include/gtk-2.0/gdk/gdk.h:32,
                 from /usr/include/gtk-2.0/gtk/gtk.h:32,
                 from gkrellm.h:34,
                 from client.c:23:
/usr/include/glib-2.0/glib/gthread.h:150:17: note: expected 'const gchar *' but argument is of type 'void * (*)(void *)'
GThread *       g_thread_try_new                (const gchar    *name,
                 ^
make[1]: *** [client.o] Hata 1
make[1]: `/home/ewr/gkrellm-2.3.1/src' dizininden çıkılıyor
make: *** [all] Hata 2


if

@Şiyar, bir çözümüm yok bu hataya. Gkrellm'in güncel bir sürümünü indirip onu yamalamayı deneyebiliriz.

Şiyar

if, güncel sürümününü ve yamalayacağım dosyayı indirdin fakat yamalıyamıyorum.

~/gkrellm-2.3.5$ patch -p0 < gkrellm-2.3.5-aticonfig.patch
can't find file to patch at input line 5
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|diff --git a/gkrellm/src/sysdeps/linux.c b/gkrellm/src/sysdeps/linux.c
|index e4ff625..a9a00c6 100644
|--- a/gkrellm/src/sysdeps/linux.c
|+++ b/gkrellm/src/sysdeps/linux.c
--------------------------
File to patch:




Mesaj tekrarı yüzünden mesajınız birleştirildi. Bu mesajın gönderim tarihi : 05 Eylül 2013 - 15:29:21

Yamalamaya çalıştığım dosyanın içeriği,yukardaki sonucu gösteriyor.
diff --git a/gkrellm/src/sysdeps/linux.c b/gkrellm/src/sysdeps/linux.c
index e4ff625..a9a00c6 100644
--- a/gkrellm/src/sysdeps/linux.c
+++ b/gkrellm/src/sysdeps/linux.c
@@ -2337,14 +2337,15 @@ gkrellm_sys_uptime_init(void)
   /* mbmon and hddtemp sensor interfaces are handled in sensors-common.c
   */
#define LIBSENSORS_INTERFACE 1
-#define THERMAL_INTERFACE 2
+#define THERMAL_INTERFACE 2
#define THERMAL_ZONE_INTERFACE 3
#define NVIDIA_SETTINGS_INTERFACE 4
-#define NVCLOCK_INTERFACE 5
-#define IBM_ACPI_INTERFACE 6
-#define UNINORTH_INTERFACE 7
-#define WINDFARM_INTERFACE 8
-#define SYS_THERMAL_INTERFACE 9
+#define NVCLOCK_INTERFACE 5
+#define IBM_ACPI_INTERFACE 6
+#define UNINORTH_INTERFACE 7
+#define WINDFARM_INTERFACE 8
+#define ATICONFIG_INTERFACE 9
+#define SYS_THERMAL_INTERFACE 10

#define IBM_ACPI_FAN_FILE "/proc/acpi/ibm/fan"
#define IBM_ACPI_THERMAL "/proc/acpi/ibm/thermal"
@@ -3177,6 +3178,36 @@ gkrellm_sys_sensors_get_temperature(gchar *sensor_path, gint id,
return FALSE;
}

+ if (interface == ATICONFIG_INTERFACE)
+ {
+#if GLIB_CHECK_VERSION(2,0,0)
+ gchar *args[] = { "aticonfig", "--odgt", "--adapter", sensor_path, NULL };
+ gchar *output = NULL;
+ gchar *s = NULL;
+
+ result = g_spawn_sync(NULL, args, NULL,
+ G_SPAWN_SEARCH_PATH | G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, NULL, NULL);
+
+ if(result && output)
+ {
+ gfloat dummy;
+
+ if(!temp)
+ temp = &dummy;
+ s = strstr(output, "Sensor");
+ if (s)
+ result = (sscanf(s,"Sensor %*s Temperature - %f", temp) == 1);
+ else
+ result = FALSE;
+ }
+
+ g_free(output);
+ return result;
+#else
+ return FALSE;
+#endif
+ }
#ifdef HAVE_LIBSENSORS
if (interface == LIBSENSORS_INTERFACE)
return libsensors_get_value(sensor_path, id, iodev, temp);
@@ -3639,6 +3670,28 @@ sensors_nvclock_ngpus(void)
return n;
}

+static gint
+sensors_aticonfig_ngpus(void)
+ {
+ gint n = 0, s = 0;
+#if GLIB_CHECK_VERSION(2,0,0)
+ gchar *args[] = { "aticonfig", "--list-adapters", NULL };
+ gchar *output = NULL;
+ gboolean result;
+
+ result = g_spawn_sync(NULL, args, NULL,
+ G_SPAWN_SEARCH_PATH | G_SPAWN_STDERR_TO_DEV_NULL,
+ NULL, NULL, &output, NULL, NULL, NULL);
+
+ if(result && output)
+ n = sscanf(output, "* %d.", &s);
+ g_free(output);
+#endif
+ if (_GK.debug_level & DEBUG_SENSORS)
+ printf("aticonfig gpus = %d\n", n);
+ return n;
+ }
+
static void
sensors_nvclock_init(gboolean enable)
{
@@ -3830,7 +3883,7 @@ gkrellm_sys_sensors_init(void)
fclose(f);
}

- /* nvidia-settings GPU core & ambient temperatues
+ /* nvidia-settings/aticonfig GPU core & ambient temperatures
*/
cnt = sensors_nvidia_settings_ngpus();
ngpus_added = 0;
@@ -3876,7 +3929,6 @@ gkrellm_sys_sensors_init(void)
gkrellm_sensors_sysdep_option("use_nvclock",
_("Use nvclock for NVIDIA GPU temperatures"),
sensors_nvclock_init);
-
id = 0;
/* Try for ambient only for gpu:0 for now */
if (gkrellm_sys_sensors_get_temperature("GPUAmbientTemp", id, 0,
@@ -3888,6 +3940,43 @@ gkrellm_sys_sensors_init(void)
1.0, 0.0, NULL, "GPU A");
}

+ /* aticonfig temperature display -
+ |  it's very simular to nvidia case
+ */
+ cnt = sensors_aticonfig_ngpus();
+ ngpus_added = 0;
+ if (cnt < 2)
+ {
+ if (gkrellm_sys_sensors_get_temperature("0", id, 0,
+ ATICONFIG_INTERFACE, NULL))
+ {
+ gkrellm_sensors_add_sensor(SENSOR_TEMPERATURE,
+ "0", "ATI/AMD GPU Core",
+ id, 0, ATICONFIG_INTERFACE,
+ 1.0, 0.0, NULL, "GPU C");
+ ++ngpus_added;
+ }
+ }
+ else
+ {
+ for (id = 0; id < cnt; ++id)
+ {
+ sensor_path = g_strdup_printf("%d", id);
+ if (gkrellm_sys_sensors_get_temperature(sensor_path, id, 0,
+ ATICONFIG_INTERFACE, NULL))
+ {
+ snprintf(id_name, sizeof(id_name), "ATI/AMD GPU:%d Core", id);
+ default_label = g_strdup_printf("GPU:%d", id);
+ gkrellm_sensors_add_sensor(SENSOR_TEMPERATURE,
+ sensor_path, id_name,
+ id, 0, ATICONFIG_INTERFACE,
+ 1.0, 0.0, NULL, default_label);
+ g_free(default_label);
+ ++ngpus_added;
+ }
+ g_free(sensor_path);
+ }
+ }
  [code]
/* UNINORTH sensors
*/

if


Şiyar

if, adını ilk ati.patch koyup denedim aynı çıktıyı aldım.Bir işlem yapmamı istiyor son gönderdiğim terminal tablosunda ise orjinal isminini kullandım yine aynı sonuç aldım.