Betriebssysteme > Solaris/x86 und OpenSolaris
lxrun auf SunOS 5.10 braucht anscheinend einen modifizierbaren LDT
d31m0:
Erst einmal ein HALLO an euch!!
Ich war die letzten Jahre mehr in der BSD-Welt zu gange und hab meinen Weg zu Solaris im Moment (x86) gerfunden.
Bis jetzt bin ich absolut begeistert von der Performance und Bedienung. Allerdings hab ich auch ein kleines Problem bei
dem ihr mir hoffentlich helfen könnt. Ich habe lxrun kompilliert und möchte damit Teamspeak2 für linux benutzen.
Als linux_root benutze ich die standard linux_base von FreeBSD und das lxrun Binary scheint auch zu laufen.
Wenn ich jedoch ein Linux-Programm starte, bekomme ich folgende Meldung:
delmo@amok # ./lxrun /usr/local/linux/bin/sh
/home/delmo/opt/lxrun/./lxrun: warning: *** UNIMPLEMENTED syscall modify_ldt called ***
cannot set up thread-local storage: cannot set up LDT for thread-local storage
delmo@amok #
Das ist ein Problem wie ich es auch schon bei früheren BSD-Versionen hatte. Dort konnte man dann die Option
USER_LDT in die Kernel kompillieren bzw. das Modul laden.
Meine Frage an euch ist: Wie bekomme ich das mit Solaris hin? Ich habe recht lange im System und im Internet gesucht
aber leider absolut nichts gefunden. :-\
Bin aber auch anderen Möglichkeiten offen Teamspeak zum laufen zu bekommen.
Kann mir jemand helfen?
Gruss d31m0
Edit: Sorry war wohl nicht ganz das richtige Brett. X) Ich gelobe Besserung! ;D ;D
mdjr:
--- Zitat von: d31m0 am 12. August 2008, 14:54:16 ---/home/delmo/opt/lxrun/./lxrun: warning: *** UNIMPLEMENTED syscall modify_ldt called ***
cannot set up thread-local storage: cannot set up LDT for thread-local storage
--- Ende Zitat ---
Hallo.
Die obige Meldung bedeutet, dass das Programm die LDT modifiziert (warum auch immer), lxrun dies jedoch nicht unterstützt.
Ggf. handelt es sich um ein Windows-Programm, das lediglich für Linux neu gelinkt (aber nicht compiliert) wurde...
Martin
llothar:
Linux realisiert TLS indem das FS Segment auf den Thread lokalen Speicherbereich zeigt.
Ich weiss das unter SPARC schon lange ein Register dafür reserviert ist. Unter Intel Solaris müsste das eigentlich auch ein FS Segementregister sein. Warum die Anwendung versucht selbst zu setzen, hat wohl mit der Krankheit der Linux Derivate zu tun. Gegen welche pthread ist das compiliert/gelinkt?
mdjr:
--- Zitat von: llothar am 12. August 2008, 23:32:19 ---Gegen welche pthread ist das compiliert/gelinkt?
--- Ende Zitat ---
Wahrscheinlich hat d31m0 nur das Binary und nicht selbst compiliert; ansonsten würde er wohl nicht "lxrun" einsetzen.
d31m0:
Hallo
Im Augenblick ist lxrun mit dem gcc kompilliert weil ich den Sun cc noch nicht habe.
Der Test mit /usr/local/linux/bin/sh ist quasi erstmal eine Vorstufe. Letztendlich
geht es mir um Teamspeak2 welches leider closed src ist. Im lxrun Paket war auch
ein pre-kompilliertes lxrun. Ich glaube auf SunOS 5.7 kompilliert. Also so richtig aktuell
scheint lxrun wohl nicht zu sein. Welche threads genutzt bzw. umgeleitet werden
entzieht sich leider noch meiner Kenntnis. Aber soweit ich weiss hat sich der linuxlator
unter anderen OS auch seit fast 10 Jahren nicht geändert. Es scheint für Unix-sprösslinge
nicht besonders schwierig zu sein den Linux Kern zu emulieren. Leider übersteigt lxrun
meine c Kenntnisse bei weitem.
Irgendwo hab ich gelesen das Project Janus wohl auch einen Linuxlator in der mache hat
aber ich habe absolut nichts gefunden. Wenn ich lxrun mit debugging compile ist die Meldung
leider genau die gleiche.
Edit:
@mdjr : Stimmt es ist wohl wirklich lxrun das Probleme hat. Die kernel jedenfalls unterstützt LDT modding.
aber wenn man mit linux/bin/sh schon solche Probs hat dann will ich nicht wissen was lxrun zu TS2 sagt. :)
Ich mach heute mal eine testreihe mit verschiedenen Anwendungen. In der Doku bitten die lxrun Maintainer um
infos über nicht supportete system calls. Falls das Projekt überhaupt noch lebt, werde ich mal eine Mail schreiben.
Erstmal vielen Dank soweit :) wenn ich mehr weiss poste ich es.
Gruss d31m0
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln