* [uml-devel] Re: [uml-user] 2.6.13 / cannot set up LDT for thread-local storage [not found] ` <200509131952.22631.blaisorblade@yahoo.it> @ 2005-09-16 11:23 ` Nelson Castillo 2005-09-16 13:01 ` Nelson Castillo ` (2 more replies) 0 siblings, 3 replies; 5+ messages in thread From: Nelson Castillo @ 2005-09-16 11:23 UTC (permalink / raw) To: Blaisorblade; +Cc: user-mode-linux-user, user-mode-linux-devel [-- Attachment #1: Type: text/plain, Size: 2136 bytes --] On 9/13/05, Blaisorblade <blaisorblade@yahoo.it> wrote: (cut) > > > > What should I try? Do I need a patch? > mv /lib/tls /lib/tls.away, after loop-mounting the filesystem on the host > , or booting with init=/bin/bash (not sure the second will work). I did some tests. I just found out that In Debian the best solution is to run: # echo "LD_ASSUME_KERNEL=2.4.1" >> etc/environment in the chroot. (See http://people.redhat.com/drepper/assumekernel.html) I found something in this thread: http://lists.debian.org/debian-user/2005/01/msg04226.html --------------------------------------- --- "Todd A. Jacobs" <nospam@codegnome.org> wrote: > On Fri, Jan 28, 2005 at 10:43:44PM -0500, kynn@panix.com wrote: > > Is the file /etc/environment _documented_ *anywhere*??? > > It's a highly non-standard, non-portable file that is source by PAM (and > possibly other applications) on a Debian system. That is as maybe, but /etc/environment is the only shell-agnostic file there is, and where it can be used, it certainly serves a good purpose. --------------------------------------- I did 2 equivalent tests 1) patching init/main.c to add the variable to the environment 2) using a wrapper to /sbin/init but it seems the environment is just discarded before running what is in inittab (I'm not sure, I should read the sources later). sysvinit should have a way to add a variable to the environment. Can it be done in intitab? With : cd /etc && grep "/etc/environment" * -RH 2>/dev/null Among others, I found pam.d/login # This module parses /etc/environment (the standard for setting # environ vars) and also allows you to use an extended config - Do they mean standard in Debian? BTW, - when is NPTL (not) supported in UML? I'm sending for your consideration a small patch for the FAQ (that may need some update. I'll do it as I learn more about this issue). Thanks, Nelson.- -- Homepage : http://geocities.com/arhuaco The first principle is that you must not fool yourself and you are the easiest person to fool. -- Richard Feynman. [-- Attachment #2: faq.html.patch --] [-- Type: text/x-patch, Size: 1840 bytes --] 538a539,589 > <a name="kernel Panic, cannot set up thread-local storage"/><table width="100%" bgcolor="#e0e0e0"> > <tr> > <td> > <b> > <font color="black">kernel Panic, cannot set up thread-local storage</font> > </b> > </td> > </tr> > </table> > <blockquote> > Your UML kernel doesn't support Native Posix Thread Library and the binaries > you're running are being dynamically linked to the NTPL libraries. > <br><br> > You can boot moving the NTPL libraries away. > <ul> > <li> <font color="black"># mount root_fs mnt-uml/ -o loop</font> > <li> <font color="black"># mv mnt-uml/lib/tls mnt-uml/lib/tls.away</font> > <li> <font color="black"># umount mnt-uml</font> > </ul> > If you're running Debian, you can get away with: > <pre><font color="black"> > # mount root_fs mnt-uml/ -o loop > # echo "LD_ASSUME_KERNEL=2.4.1" >> /mnt-uml/etc/environment > # umount mnt-uml/ > </font></pre> > > It seems that using /etc/environment is Debian specific, > as <a href="http://lists.debian.org/debian-user/2005/01/msg04226.html">discussed here</a>. > > The LD_ASSUME_KERNEL=2.4.1 environment variable precludes > the dynamic linker from using the NTPL libraries, as explained > <a href="http://people.redhat.com/drepper/assumekernel.html">here</a>. > > If you decide to move away /lib/tls/ and you're running Debian, you might > prefer to use dpkg-divert. > <pre><font color="black"> > # export LD_ASSUME_KERNEL=2.4.1 > # mount root_fs mnt-uml/ -o loop > # chroot mnt-uml > # mkdir /lib/tls.off > # cd /lib/tls > # pwd > # for f in *; > do > dpkg-divert --divert --local --rename --divert /lib/tls.off/$f --add /lib/tls/$f; > done > # exit > # umount mnt-uml > </font></pre> > </blockquote> > ^ permalink raw reply [flat|nested] 5+ messages in thread
* [uml-devel] Re: [uml-user] 2.6.13 / cannot set up LDT for thread-local storage 2005-09-16 11:23 ` [uml-devel] Re: [uml-user] 2.6.13 / cannot set up LDT for thread-local storage Nelson Castillo @ 2005-09-16 13:01 ` Nelson Castillo 2005-09-16 20:01 ` Rob Landley 2005-09-16 19:04 ` Blaisorblade 2005-09-16 20:53 ` Henrik Nordstrom 2 siblings, 1 reply; 5+ messages in thread From: Nelson Castillo @ 2005-09-16 13:01 UTC (permalink / raw) To: Blaisorblade; +Cc: user-mode-linux-user, user-mode-linux-devel [-- Attachment #1: Type: text/plain, Size: 1165 bytes --] On 9/16/05, Nelson Castillo <nelsoneci@gmail.com> wrote: > On 9/13/05, Blaisorblade <blaisorblade@yahoo.it> wrote: > sysvinit should have a way to add a variable to the > environment. Can it be done in intitab? I just fixed the patch for the FAQ. It's much simpler (and correct, I hope) now. ------------- I tried with the patched init/main.c and: inittab: 1:2345:respawn:/usr/bin/env LD_ASSUME_KERNEL=2.4.1 /sbin/getty 38400 tty1 (w/o the LD_ASSUME_KERNEL=2.4.1 the entry in /etc/environment). And it dies just after I log in, but I don't get a panic, just another password prompt. So I guess it's bash who is not taking the environment that /sbin/init sets... And that's why things work when I set the variable in "/etc/environment" (and also send a modified environment to /sbin/init .... with LD_ASSUME_KERNEL=2.4.1. You must do both, I said that setting /etc/environment was enough in my previous email and I was quite wrong. Sorry). Regards. -- Homepage : http://geocities.com/arhuaco The first principle is that you must not fool yourself and you are the easiest person to fool. -- Richard Feynman. [-- Attachment #2: faq.html.patch --] [-- Type: text/x-patch, Size: 1226 bytes --] 538a539,574 > <a name="kernel Panic, cannot set up thread-local storage"/><table width="100%" bgcolor="#e0e0e0"> > <tr> > <td> > <b> > <font color="black">kernel Panic, cannot set up thread-local storage</font> > </b> > </td> > </tr> > </table> > <blockquote> > Your UML kernel doesn't support Native Posix Thread Library and the binaries > you're running are being dynamically linked to the NTPL libraries. > <br><br> > You can boot moving the NTPL libraries away. > <ul> > <li> <font color="black"># mount root_fs mnt-uml/ -o loop</font> > <li> <font color="black"># mv mnt-uml/lib/tls mnt-uml/lib/tls.away</font> > <li> <font color="black"># umount mnt-uml</font> > </ul> > If you're running Debian, you might prefer to use dpkg-divert. > <pre><font color="black"> > # export LD_ASSUME_KERNEL=2.4.1 > # mount root_fs mnt-uml/ -o loop > # chroot mnt-uml > # mkdir /lib/tls.off > # cd /lib/tls > # pwd > # for f in *; > do > dpkg-divert --divert --local --rename --divert /lib/tls.off/$f --add /lib/tls/$f; > done > # exit > # umount mnt-uml > </font></pre> > </blockquote> > ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [uml-devel] Re: [uml-user] 2.6.13 / cannot set up LDT for thread-local storage 2005-09-16 13:01 ` Nelson Castillo @ 2005-09-16 20:01 ` Rob Landley 0 siblings, 0 replies; 5+ messages in thread From: Rob Landley @ 2005-09-16 20:01 UTC (permalink / raw) To: user-mode-linux-devel, nelsoneci; +Cc: Blaisorblade, user-mode-linux-user On Friday 16 September 2005 08:01, Nelson Castillo wrote: > On 9/16/05, Nelson Castillo <nelsoneci@gmail.com> wrote: > > On 9/13/05, Blaisorblade <blaisorblade@yahoo.it> wrote: > > sysvinit should have a way to add a variable to the > > environment. Can it be done in intitab? > > I just fixed the patch for the FAQ. It's much simpler > (and correct, I hope) now. Hey, cool: ./linux rootfstype=hostfs rw init=/bin/sh LD_ASSUME_KERNEL=2.4.1 Just gave my a shell prompt in skas0 mode on ubuntu. Using unmodified 2.6.13.1 with the .config I posted earlier. --- sh-3.00# mount -t proc /proc /proc sh-3.00# cat /proc/cpuinfo processor : 0 vendor_id : User Mode Linux model name : UML mode : skas host : Linux driftwood 2.6.10-5-386 #1 Tue Apr 5 12:12:40 UTC 2005 i686 bogomips : 1268.12 sh-3.00# --- Coolness. :) Rob ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [uml-devel] Re: [uml-user] 2.6.13 / cannot set up LDT for thread-local storage 2005-09-16 11:23 ` [uml-devel] Re: [uml-user] 2.6.13 / cannot set up LDT for thread-local storage Nelson Castillo 2005-09-16 13:01 ` Nelson Castillo @ 2005-09-16 19:04 ` Blaisorblade 2005-09-16 20:53 ` Henrik Nordstrom 2 siblings, 0 replies; 5+ messages in thread From: Blaisorblade @ 2005-09-16 19:04 UTC (permalink / raw) To: user-mode-linux-devel, nelsoneci; +Cc: user-mode-linux-user On Friday 16 September 2005 13:23, Nelson Castillo wrote: > On 9/13/05, Blaisorblade <blaisorblade@yahoo.it> wrote: > (cut) > That is as maybe, but /etc/environment is the > only shell-agnostic file there is, and where it can be > used, it certainly serves a good purpose. > --------------------------------------- > I did 2 equivalent tests > 1) patching init/main.c to add the variable to the environment > 2) using a wrapper to /sbin/init > > sysvinit should have a way to add a variable to the > environment. Can it be done in intitab? It can be done via adding LD_ASSUME_KERNEL=2.4.1 to the kernel command line. > - Do they mean standard in Debian? No idea about that - but I've never seen this file, so I assume it's Debian specific. > BTW, > - when is NPTL (not) supported in UML? > I'm sending for your consideration a small patch for the FAQ > (that may need some update. I'll do it as I learn more about > this issue). I've not yet read the patch, and likely I won't before you generate it with -u. Sorry but I've not the time to learn that format (nor the will), especially since patches with -u provide more info both to "patch" and to patch readers. > Thanks, > Nelson.- -- Inform me of my mistakes, so I can keep imitating Homer Simpson's "Doh!". Paolo Giarrusso, aka Blaisorblade (Skype ID "PaoloGiarrusso", ICQ 215621894) http://www.user-mode-linux.org/~blaisorblade ___________________________________ Yahoo! Mail: gratis 1GB per i messaggi e allegati da 10MB http://mail.yahoo.it ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [uml-devel] Re: [uml-user] 2.6.13 / cannot set up LDT for thread-local storage 2005-09-16 11:23 ` [uml-devel] Re: [uml-user] 2.6.13 / cannot set up LDT for thread-local storage Nelson Castillo 2005-09-16 13:01 ` Nelson Castillo 2005-09-16 19:04 ` Blaisorblade @ 2005-09-16 20:53 ` Henrik Nordstrom 2 siblings, 0 replies; 5+ messages in thread From: Henrik Nordstrom @ 2005-09-16 20:53 UTC (permalink / raw) To: Nelson Castillo; +Cc: Blaisorblade, user-mode-linux-user, user-mode-linux-devel On Fri, 16 Sep 2005, Nelson Castillo wrote: > 1) patching init/main.c to add the variable to the environment > 2) using a wrapper to /sbin/init Better to just add the variable to the kernel command line.. any XX=something string on the command line is set as environment variables to init. > but it seems the environment is just discarded before > running what is in inittab (I'm not sure, I should read the > sources later). It is not, but mingetty/login cleans up the environment on interactive logins. Many other commands is also very restrictive about what is preserved in the environment when starting childprocesses so relying on LD_ASSUME_KERNEL to be globally set for all processes in the whole system is generally not a good idea.. (very hard to guarantee). > sysvinit should have a way to add a variable to the > environment. Can it be done in intitab? Not that I know of. But as the environment can be specified on the kernel command line this isn't really needed. > # This module parses /etc/environment (the standard for setting > # environ vars) and also allows you to use an extended config > > - Do they mean standard in Debian? No idea what stadard they refer to. It is not in the UNIX standard from what I can see. Regards Henrik ------------------------------------------------------- SF.Net email is sponsored by: Tame your development challenges with Apache's Geronimo App Server. Download it for free - -and be entered to win a 42" plasma tv or your very own Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2005-09-16 20:53 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <2accc2ff0509111117747e8639@mail.gmail.com>
[not found] ` <200509131952.22631.blaisorblade@yahoo.it>
2005-09-16 11:23 ` [uml-devel] Re: [uml-user] 2.6.13 / cannot set up LDT for thread-local storage Nelson Castillo
2005-09-16 13:01 ` Nelson Castillo
2005-09-16 20:01 ` Rob Landley
2005-09-16 19:04 ` Blaisorblade
2005-09-16 20:53 ` Henrik Nordstrom
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.