Autor Thema: Embedded Linux: Can't resolve symbol 'semget'?  (Gelesen 5117 mal)

DarkKnight93

  • Newbie
  • *
  • Beiträge: 21
    • Profil anzeigen
Embedded Linux: Can't resolve symbol 'semget'?
« am: Mai 19, 2013, 04:24:30 Nachmittag »
Guten Nachmittag zusammen,

ich erhalte neuerdings an meinem Asus RT-N66U mit Shibby Mod v109 die Meldung beim Start von Mediaclient/Server folgendes:

root@Asus-RT-N66U:/opt/bin# mediasrv -v
2013-05-19 16:11:00 [2007] Starting up Multimedia Framework (Mar 15 2013 23:10:01)
mediasrv: can't resolve symbol 'semget'


Ich bin irritiert, da der Treiber bisher immer gestartet ist, nur seit gestern Abend spinnts.
Habe schon mit Parameter -u den Treiber deinstalliert, reinstalliert... leider nichts.


Sundtek

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 8514
    • Profil anzeigen
Re:Embedded Linux: Can't resolve symbol 'semget'?
« Antwort #1 am: Mai 19, 2013, 04:35:29 Nachmittag »
semget ist Teil von SysV IPC, bzw. der libc.

Cannot resolve kann verschiedene Ursachen haben, eventuell wurde dieser Befehl entfernt oder in einer anderen Bibliothek abgelegt, eventuell ist das Image auch defekt. Dieser Befehl wird bereits jahrelang verwendet.

Sollte das ein alternatives Image sein müssten sich die Maintainer des Images darum kümmern diesen Befehl wieder zugänglich zu machen da es ein Grundbefehl von Linux ist, ansonsten ist das System quasi unbrauchbar.

Wird denn ein alternatives Image verwendet?

Sollte der Befehl in einer anderen Bibliothek sein reicht es aus folgenden Befehl auszuführen

cd /opt/bin
LD_PRELOAD=/lib/libc-2.15.so ./mediasrv -v

libc-2.15.so muss durch die Bibliothek ersetzt werden wo sich semget befindet.

(objdump -d libraryname |grep semget) sollte anzeigen ob semget sich auch darin befindet, zur Not reicht aber auch ein grep semget /lib/*.so -c und dann überprüfen welche Library dies nun beinhaltet, grep zeigt dir auch an welche Libraries diese Funktion benutzen (es ist also nicht 100% eindeutig)
« Letzte Änderung: Mai 19, 2013, 04:38:37 Nachmittag von Sundtek »
Failure is a good thing! I'll fix it

DarkKnight93

  • Newbie
  • *
  • Beiträge: 21
    • Profil anzeigen
Re:Embedded Linux: Can't resolve symbol 'semget'?
« Antwort #2 am: Mai 19, 2013, 04:52:19 Nachmittag »
Vielen Dank für die rasche Antwort.

Hier mein Output:
root@Asus-RT-N66U:/lib# grep semget /lib/*.0 -c
/lib/ld-uClibc.so.0:0
/lib/libc.so.0:0
/lib/libcrypt.so.0:0
/lib/libdl.so.0:0
/lib/libm.so.0:0
/lib/libnsl.so.0:0
/lib/libpthread.so.0:0
/lib/libresolv.so.0:0
/lib/libutil.so.0:0


Das sieht gar nicht gut aus. Shibby hat im letzten TomatoUSB Mod radvd entfernt, aber wohl auch deutlich mehr, denn am Cisco mit v108 habe ich:

/lib/ld-uClibc.so.0:0
/lib/libc.so.0:1
/lib/libcrypt.so.0:0
/lib/libdl.so.0:0
/lib/libm.so.0:0
/lib/libnsl.so.0:0
/lib/libpthread.so.0:0
/lib/libresolv.so.0:0
/lib/librt.so.0:0
/lib/libutil.so.0:0

Okay dann muss ich da defintiv Shibby ärgern.. :-\

Danke nochmals fürs Erklären und die wirklich rasche Hilfe! Schönen Sonntag noch!

Sundtek

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 8514
    • Profil anzeigen
Re:Embedded Linux: Can't resolve symbol 'semget'?
« Antwort #3 am: Mai 19, 2013, 09:22:29 Nachmittag »
Das sollte auf jeden Fall wieder in's Image aufgenommen werden. Ohne IPC Unterstützung ist das kein vollwertiges Betriebssystem mehr.
Failure is a good thing! I'll fix it