64 Bit Stuff
-
All,
I’m currently working on testing out bzImage (kernel) and init.gz in 64 bit modes. With this, many of my links will still work, but the data contained will be in 64 bit format. This means, if you’re using my links for downloading kernels for FOG 0.32, they will not work. I’ll add another link that contains the 32 bit kernel which will work, you’ll just have to change your own names to be appropriate for your configuration.
Thank you,
-
I’m going to add to this, I don’t exactly have the time to explain everything in a nice fully formatted tutorial, but I think by providing access to the buildroot (now on buildroot-2013.8.1) when I get this tested and working, you’ll get the idea if you play a little bit.
It’s quite a bit convoluted right now, but it seems to be compressing at a rate of around 50% to 90% as well. Pigz you are a nice friend indeed.
-
Just for notes:
Download buildroot-2013.08.1 and extract the file.
The custom packages for FOG are:
chntpw Download the one I’ve posted in the forums here otherwise things will not operate properly.
partimage Will provide link so this builds properly, needs to have nmu patch but the only patch I found was for 0.6.8.2, we’re on 0.6.9
partclone Still the bane of my existance as I haven’t found buildroot able to build this properly…yet
testdisk
fog
clamav Only until I figure out how to rid this and use the one from the FOG Server.
pigz Will provide link as the original site doesn’t seem to have the file stored in {filename}-{version} format.These configuration folders are provided even in the current svn snapshots, but their location is at: src/buildroot/package/customize
When you copy the folders over, copy them to buildroot-2013.08.1/package
Don’t copy the customize folder, just the program folders with cp -r
You’ll need an edited Config.in file stored within buildroot-2013.08.1/package/ So it recognizes the new folders you’ve inserted. I will provide this file when I’m done testing/getting things working.
I’ll also provide my .config file with this when the same is up and running. This file gets stored as: buildroot-2013.08.1/.config
You then just run the make as: make ARCH=i386 (if you’re on a 64 bit system) or just as make if on a 64 bit system and you want 64 bit init.gz support.
-
I’ll be posting a more defined tutorial in the next couple of day’s on exactly what to do.
It may take a little more testing to make sure all is well and good, but I think, for now, the only major changes for building the init.gz in 64 bit mode is to change the ARCH from i386 to ARCH=x86_64, and to change from uClibc to eglibc.
Again, I’ll test with it to make sure, but just though to give some information. The init.gz will then be based, almost exactly, on the 32 bit modes. If worse comes to worse, I’ll try tinkering with eglibc on 32 bit builds as well.
-
For a side note on building your own stuff like this. I don’t have time to try to explain what you need to do on the system side of the house to get things to work properly and actually build. I’m almost certain there are many things that need to be added for things to work exactly as needed. However, the quick and dirty (and I’m certain, even with this, you’ll need a couple more packages but that depends on your distribution) for Debian/Ubuntu and CentOS is:
First install the OS as you normally would. Once done, make sure all is updated.
Once all is up-to-date, reboot the system so you know all is loaded and well.
Then as the root user run: (FOR CENTOS/REDHAT/FEDORA)
[code]yum -y groupinstall “Development Tools”[/code]Then as the root user run: (FOR DEBIAN/UBUNTU)
[code]apt-get update; apt-get install build-essential[/code]You should now be able to build things. There are other packages you may need. But I don’t remember all of them. Maybe, when I get a change to reinstall, I’ll go through the entire process and document it here, but for now you’re somewhat on your own.
-
To build the init.gz as 64 bit. Make sure you start with a clean buildroot system.
[code]make clean[/code]Then you will need to run:
[code]make menuconfig[/code]Within the menu choose:
Target Architechture(x86_64)
Toolchain->C Library(eglibc)Then exit and save the configuration.
Then all you should need to do is run:
[code]make[/code]Once all is done. Copy the output/images/rootfs.ext2.lzma file as init.gz to the FOG Server under: /tftpboot/fog/images/init.gz
Then you need to build a 64 bit kernel.
Download the kernel you want to build and extract it. Copy the configuration you want to use to the directory that is extracted as .config.
[code]cp ~/TomElliott.config ~/linux-3.12.2/.config[/code]Then, just to verify all is well run menuconfig from within the linux folder.
[code]cd ~/linux-3.12.2
make menuconfig[/code]
Select 64-bit Kernel then save the kernel configuration.Then run:
[code]make bzImage[/code]Once all is done, copy the arch/x86/boot/bzImage file to the FOG Server under: /tftpboot/fog/kernel/bzImage.
You have now build a 64bit compatible FOG imaging system. Of course this will not work for netbooks, or strictly 32 bit architectures, but to each their own.
-
Also,
If you build a 64 bit system, you’ll need to replace the partclone binaries to be 64 bit as well. I’ll try to provide links to them based on 0.2.66.
-
awesome, will try…
-
Oh, if you’ve downloaded a buildroot package, don’t forget to copy in the trunk/src/buildroot directory so all packages are ready. The config will need to be set from the fog.buildroot.config file.