On Thursday 17 March 2005 10:18 pm, Ian McDonald wrote: > Hi there, > > I've been watching the discussion around 2.6.11 and reading the > archives and I can't find the information with any clarity that I > need. My problem is that I can't get UML to compile. I can on 2.4.27 > (with the standard patches) and with 2.6.10 also.
All I have to do, on x86 under either Knoppix or Red Hat, is (this is off the top of my head, so there might be a typo or two): tar xvjf linux-2.6.11.tar.bz2 cd linux-2.6.11 # Get a usable .config file, you can use "make ARCH=um menuconfig" for this # if you know what to select. This adds a more or less minimal set of options # to allnoconfig to provide a usable test system. Later, you'll want to add # thinks like loopback support, UBD, ext2, maybe swap support... make ARCH=um allnoconfig cat >> .config << EOF CONFIG_MODE_TT=y CONFIG_LD_SCRIPT_STATIC=y CONFIG_BINFMT_ELF=y CONFIG_HOSTFS=y CONFIG_STDERR_CONSOLE=y CONFIG_LBD=y CONFIG_PROC_FS=y EOF yes "" | make ARCH=um oldconfig # Now build it. make ARCH=um # Run it. Later you might want to add "rootflags" (defaults to rootflags=/) # and "mem" (defaults to mem=32M). "quiet" is nice too... ./linux rootfstype=hostfs rw init=/bin/sh # Show that the new shell prompt is under UML, not the parent system. mount -t proc /proc /proc cat /proc/cpuinfo The polite way to exit is either "shutdown -n" or "halt -f" (both in sbin, which isn't int he path), but when pid 1 is /bin/sh then just "exit" will work as well if you don't mind a UML panic message about "tried to kill init"... Speaking of path: the default UML path ends with ".", and if you try to compile anything this triggers some "holier than thou" code in gcc that ignores the entire path without even a warning message because it thinks it knows better than you, and thus doesn't find the linker. Just set your PATH to "/sbin:/usr/sbin:/bin:/usr/bin" and it should work fine. (Why this isn't the default, I have no idea...) > My environment is Debian Woody with 2.4.27 kernel. My gcc version is > 2.95.4. I am using default options when I do 'make menu_config > ARCH=um' There's no underscore in menuconfig. > Here is the error that I am experiencing once I do 'make linux ARCH=um': > arch/um/kernel/sys_call_table.c:277: duplicate array index in initializer > arch/um/kernel/sys_call_table.c:277: (near initialization for > `sys_call_table') arch/um/kernel/sys_call_table.c:277: duplicate array > index in initializer arch/um/kernel/sys_call_table.c:277: (near > initialization for `sys_call_table') I remember a problem like that in one of the 2.6.11-pre releases, but it was fixed in the final 2.6.11. What compiler version are you using? > The code at line 277 is: > ARCH_SYSCALLS > [ LAST_SYSCALL + 1 ... NR_syscalls ] = > (syscall_handler_t *) sys_ni_syscall > > I don't quite understand this as it surpasses my C knowledge but if I > do a dirty hack and change this to: Yeah, I did too. It was fixed before the 2.6.11 release. Are you sure you're building 2.6.11 sources? > Can anybody point me in the right direction? You're sure you're using linux-2.6.11.tar.bz2 on x86? > Regards, > > Ian Rob ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel