Tiny Core Linux
Tiny Core Base => Corepure64 => Topic started by: xrayman2016 on January 14, 2016, 01:18:18 PM
-
Hi All,
I'm new to TC, but want to use it to pxe boot compute nodes for a HPC cluster. I've gotten everything to work using CorePure64-5.4.iso, but only for dual quad-core nodes. I am now adding dual 12-core nodes and it seems that the kernel (3.8) that comes with this TC does not work for these newer nodes (only 8 total cpus are recognized). I've booted a 24-core node using Fedora 23, which comes with 4.2 kernel as standard, so I'm thinking that it is a kernel issue. If not, I would be glad to hear how to get my existing CorePure64-5.4 to recognize more cores. If a newer kernel is indeed needed, I would appreciate any help in how to compile a 4.2 kernel for TC.
Thanks,
Dan
-
Hi xrayman2016
What happens if you add the following boot code:
maxcpus=12
-
Would this be put into the "default" file as APPEND maxcpus=12?
-
Hi xrayman2016
It goes in the .conf file used by your boot loader. Same line that contains initread=.
-
If I understand correctly, the TC image doesn't use or have a bootloader, like GRUB when booting via PXE. There is no /boot/ directory in the image, at least. Tried this kernel boot code in the PXE "default" file. Didn't work.
-
Hi xrayman2016
According to this (scroll all the way down):
http://support.tabernus.com/support/solutions/articles/3000033502-how-to-boot-tabernus-lan-wan-in-existing-pxe-environment
it goes on the APPEND line. However, if NR_CPUS in the kernel config file was set to 8 (which I suspect it was) that
would limit you to 8 CPUs max. So you probably would need to increase NR_CPUS and recompile the kernel.
-
This is great news, Rich! Thank you so much. I should be able to recompile a new kernel inside Fedora 21, but use the .conf file from TC, right? Except to change that configuration entry, of course.
-
Hi xrayman2016
I think others have managed to compile under other distros, though compiling under Tinycore is probably preferred.
You said you are running a 5.x version, so config files can be found here:
http://tinycorelinux.net/5.x/x86/release/src/kernel/
-
I would appreciate any help in how to compile a 4.2 kernel for TC.
Already done :) tc-7.x beta is 4.2.7 kernel
http://www.tinycorelinux.net/7.x/x86_64/release_candidates/
-
Hi Juanito
His problem isn't that he needs a 4.2 kernel. It's the kernel was compiled with CONFIG_NR_CPUS=8 but he's running
hardware with more than 8 CPUs and he wants to utilize them.
-
Just tried recompiling the 3.8.13 kernel using config-3.8.13-tinycore64 and linux-3.8.13-patched.txz, after changing CONFIG_NR_CPUS=64 in .config file. Node did not boot up. I only did make bzImage, as I didn't think a whole compile was necessary, given that none of the modules were changed. Did I miss something? Would it be possible to set CONFIG_NR_CPUS=64 in the new beta version? That would future-proof TC for the newer multi-core processors. Just a thought...
-
Hi xrayman2016
Just a thought, but you did rename bzImage to vmlinuz so it would be found, right?
-
Yes, I did that first thing. From one of the posts in the Remaster forum section, it sounds like a compile modules issue, but I didn't recompile any modules, since I just need the new kernel. Maybe this is not correct...
This is the link to that forum article:
http://forum.tinycorelinux.net/index.php/topic,16995.msg101928.html#msg101928
My node stops booting at about the same place as his. Although I didn't try to add any kernel modules, just changed NR_CPUS.
I'm compiling the kernel on Fedora 21 so far. Maybe I should try within TC? Can't see how that should matter, though.
-
Just tried recompiling the 3.8.13 kernel using config-3.8.13-tinycore64 and linux-3.8.13-patched.txz, after changing CONFIG_NR_CPUS=64 in .config file. Node did not boot up.
Since you used a different compiler, you must recompile modules as well. A different version of gcc invalidates everything, even if your config change would not.
Would it be possible to set CONFIG_NR_CPUS=64 in the new beta version? That would future-proof TC for the newer multi-core processors. Just a thought...
Yes, in the 64-bit kernel this will be done.
-
Hi curaga
Since you used a different compiler, you must recompile modules as well. A different version of gcc invalidates everything, even if your config change would not.
I'm guessing some extensions might be affected too. For example, things like alsa-modules, ndiswrapper-modules,
wl-modules, etc.
-
Thanks all!
I'll give the 7.0beta a try on Monday. I already have a script that turns a tc iso into a bootable node, including all needed extentions.
I'll let you know how it turns out then.
Dan
-
The cpu change will only be in the next beta, so maybe you want to wait a bit?
-
Will do. Thanks for the heads up.
-
Which NIC modules are built into the new 7.0 beta2? I've booted up my compute node, yet the NIC now isn't being seen via 'ifconfig', only the loopback. I am using DHCP/PXE to boot the node. The node downloads the kernel and image just fine, it just hangs when it runs some network code (to determine its own hostname) in bootlocal.sh The NIC came up fine with the stock 5.4 iso (except for the cpu number issue, CONFIG_NR_CPUS). The number of cpus is now coming up fine.
I think we're almost there!
Dan
-
I just went back to the CorePure 5.4 version and rebooted the node, to check what NIC driver it is using. It is the igb:Intel Gigabit Ethernet Network Driver - version 4.1.2-k. This driver is indeed found on the new 7.0 beta2 iso, but is not being loaded by the kernel. Is there a reason that the driver is loaded in version 5.4, but not in version 7.0 beta2?
Dan
-
Hi xrayman2016
Have you checked dmesg for errors?
-
It grew a new dependency, on i2c-algo-bit, which I missed. You can load the i2c extension and everything should just work.
We'll include that module in the next version.
-
Thanks, I just found that information on an old forum post just now, and via looking at the dependencies of the igb.ko.gz driver. I'll load that into my image and try again.
Dan
-
Added i2c-4.2.9-tinycore64.tcz to the image. No go yet on the PXE boot. :(
Am not able to check this on my benchtest setup, as I do not have internet access there and can thus only use canned iso's for testing.
Dan
-
You guys are amazing, and fast! Just downloaded the 7.0beta3 version. Worked first time! The compute node booted up with no issues. Got the new OpenSSH server working also (I first downloaded the x86 version and wondered why the gcc_lib dependency went away until I realized that I needed the x86_64 version!).
Thanks again for all your help. I couldn't have done this without you.
Dan
-
The 7.1 kernel has CONFIG_NR_CPUS=64 but still fails to support SMP on some hardware,
resulting in running with 1 core active on HP Gen9 UEFI hardware.
smpboot: Allowing 1 CPUs, 0 hotplug CPUs
The main reason seems to be that CONFIG_X86_X2APIC is not set in the kernel config, which is required
for SMP on a large number of platforms.
https://forums.gentoo.org/viewtopic-t-1017132-start-0.html
-
Thanks, noted. Seems to be only big server hardware, which is not really the target of Core, and so this is not urgent (for 8.x).
Using a custom kernel is fairly easy - download our source and config, enable that option, build. If the option has small enough reach, the kernel will even be compatible with existing modules, requiring you to only replace vmlinuz.