FS#10753 - Develop a dual-architecture liveCD
Attached to Project:
Release Engineering
Opened by Simo Leone (neotuli) - Tuesday, 24 June 2008, 21:09 GMT
Last edited by Dieter Plaetinck (Dieter_be) - Sunday, 16 May 2010, 14:51 GMT
Opened by Simo Leone (neotuli) - Tuesday, 24 June 2008, 21:09 GMT
Last edited by Dieter Plaetinck (Dieter_be) - Sunday, 16 May 2010, 14:51 GMT
|
Details
Pierre brought this up in IRC. We should develop a livecd
containing both x86_64 and i686 systems so that we could
have an "all-in-one" disk to hand out at places like
Froscon. I've set the due date on this to the beginning of
August since froscon is in August.
|
This task depends upon
Closed by Dieter Plaetinck (Dieter_be)
Sunday, 16 May 2010, 14:51 GMT
Reason for closing: Implemented
Sunday, 16 May 2010, 14:51 GMT
Reason for closing: Implemented
Let me mark this one down and try to pump something out before next monday.
Simo, Dan, do you know if all your installer changes are pushed to gerolde?
Thomas, could you look into releasing a new initscripts package to help me out here?
Anything what i could test or help?
Pierre ans i have the beast!
Currently we have a functionally archlinux-2008.08-ftp-multiarch.iso ISO, with 2.6.26.
It boots on i686 and on x86_64.
With the archiso skripts and tool this is sooo easy ;-)
We test and talk a little more, then we could explain what we have done (Pierre have to do this, his english is even better <g>)
I'm very exited... And the core iso should'nt be a stopper....
A readme is in the archive.
This way work here to get multi-arch core and ftp iso's.
Hints and so on are very welcome!
You could reach me at gerbra at jabber.archlinux dot de
http://users.archlinux.de/~pierre/tmp/archlinux-2008.08-core-multi.iso
Hint: there is sometimes a general problem with the installer when using low RAM (256MB) and choose
not to save installed/selected packages during package selection/installation.
The ramdisk with / runs out of space. I think we will found a solution on this.
It's related to last comments in http://bugs.archlinux.org/task/8155
I just finished uploading an RC of the iso at http://downloads.archlinux.de/iso/2008.08-froscon-rc/
Please report any problems. I think I'll create a new one tomorrow with fixed openssl and ca-certificates. If there aren't any more problems left I'll burn them at tuesday or wednesday.
http://code.neotuli.net/gitweb/?p=installer.git;a=shortlog;h=refs/heads/working
?
As Aaron mentioned, these changes were not pushed to gerolde, but they should fix the "ramdisk running out of space" issue properly, without workarounds.
I think we compare the solution from the git version with our changes on current installer, but i think the result is both the same.
We are on a little pressure with time to burn the cd's, so for now i think our multi-arch iso is functionable, maybe only for
this event. In the future we could discuss if we maybe offer such a multi-arch iso/img in addition to the normal isos.
The needed changes on scripts, hooks and build procedure a few (result from the good base concept of archlive/archiso!), so maybe we could benefit all from our work.
http://github.com/djgera/archiso2dual
http://github.com/djgera/archiso/tree/djgera
total 1.9G
631M archlinux-2010.03.19-core-dual.iso
353M archlinux-2010.03.19-core-i686.iso
374M archlinux-2010.03.19-core-x86_64.iso
225M archlinux-2010.03.19-netinstall-dual.iso
156M archlinux-2010.03.19-netinstall-i686.iso
165M archlinux-2010.03.19-netinstall-x86_64.iso
Generated by: archiso2dual -T full -3 archlinux-2010.03.19-core-i686.iso -6 archlinux-2010.03.19-core-x86_64.iso -o archlinux-2010.03.19-core-dual.iso -y
Based on pxe_nbd branch
FS#12619.http://mailman.archlinux.org/pipermail/arch-releng/2010-April/000949.html
what is removed when using -T full? and what are the things we could keep (assuming a hard limit of 700MB ?) is it possible to share the same man pages for both arches?
right now the core dual image is 577.0M, netinstall 228.0M. this can be a bit more :)
* Option -T full removes /boot /usr/include /usr/src /usr/share/doc /usr/share/info /usr/share/man (see doc ###)
* Is posible (like now) share all /usr/share for both arches, there is no difference beetwen two archs, at least on packages that are installed.
* If I remember good, you can keep all files in the .iso and iso sizes still below 700MB barrier. This is done using -T split_lm thats only split /usr/share from / making it shareable for both archs, and split /lib/modules, making posible booting a x86_64 kernel with i686 userspace.
### (please let me know is this is not clear)
* basic: join both images, no changes in *.sqfs
* split_us: 'basic' + split usr/share/
* split_lm: 'split_us' + split lib/modules/
* purge_us: 'split_us' + prune usr/share/{doc,info,man}/
* full: 'purge_us' + prune boot/ usr/include/ usr/src/
I think that will be better if:
* both "split_us" and "split_lm" are joined in one "split" option.
* removing directories in more flexible way, rather than in fixed "profiles".
Just use -T split, core iso will be below 700MB ;)
[#1] http://github.com/djgera/archiso/commit/de4c11c56c90aec834212cf6ad17ee86389dcb48
[#2] http://github.com/djgera/archiso/commit/180d9b1cc539f15cb9afd5a6d95f144219e40f1c
[#3] http://github.com/djgera/archiso/blob/djgera/archiso2dual/archiso2dual
*I think much of my confusion stems from the usage of the word "split", this feature in fact unifies (merges, combines, deduplicates, ..) two directories, so that both arches use the same directory.
maybe you should use the word 'merge' instead of 'split'.
* $isomounts_file always contains all possible mounts, which may or may not exist depending on which profile the user runs? (ie libmodules.sqfs may not exist)
* if we use -T split, you can run a 64bit kernel in a 64bit userspace right? what exactly does 'split /lib/modules/' (or merge /lib/modules) imply? what are the consequences for the system? does this mean that the 64bit kernel will use 32bit modules? is that ok? does that even work? I'm ok with the feature to boot a 64bit kernel with 32bit userspace, but only as bonus. it should always be possible to boot a fully 64bit environment.
* or maybe simply call "levels"
0 -> Just merge both iso. No changes made to root-image.sqfs.
1 -> Merge both iso files. The file root-image.sqfs is modified (usr/share and lib/modules paths moved to separate .sqfs files for each path)
2 -> like level 1, plus remove listed paths on removefiles.lst
* isomounts files always contains all posible files. Since archiso hook ignores inexistent images. Doing this is safe and there is no warning ;)
* you can run all posible kernel/user schemes (32/32, 64/64, 64/32) in all profiles. In "basic" and only on it, 64/32 scheme boot, but modules at root-image.sqfs does not work because are from 32 bits. Also remember that not all ioctls32 are wrapped on 64 bits.
And yes, booting a 64/32 is a "bonus" or "just for fun". Maybe this should be clarified at syslinux menu as "experimental".
Also note that move 32 bits modules from root-image.sqfs to a separate .sqfs, is irrelevant. This is done only for keep simetry between both root-images.sqfs.
I believe users reported that 64/32 works, although they get the aufs problem, but other then that the image should work. but maybe i heard that wrong. i have no 64bit myself so i can't check.
In those cases (split, full?) where 64/32 does not work at all, we should remove the entry from the menu.
In those cases where it works mostly we should add something like "experimental, no kernel modules" to the menu entry.
* because 64 bits modules needed to boot are on initramfs image, so system always boot.
>> I believe users reported that 64/32 works, although they get the aufs problem, but other then that the image should work. but maybe i heard that wrong. i have no 64bit myself so i can't check.
* Thats is different, is not related to modules. Is that not all ioctls32 are wrapped on 64 bits. In that case can be safetly ignored, because the remount command always does nothing in live enviroment.
>> In those cases (split, full?) where 64/32 does not work at all, we should remove the entry from the menu.
>> In those cases where it works mostly we should add something like "experimental, no kernel modules" to the menu entry.
* This depends on what you want to do on live enviroment, 64/32 scheme always works on all "basic/split/full" profiles:
+ If you need to load another 64 bit module, that is not loaded at initramfs step => basic profile is not for you.
+ If you need some specific ioctl32 => split/full is not for you.
So 64/32 is always "experimental" on all cases. Keep it documented on wiki why this is marked as experimental.
664M archlinux-2010.04.24-core-dual.iso
610M archlinux-2010.04.24-core-dual.iso
572M archlinux-2010.04.24-core-dual.iso
326M archlinux-2010.04.24-netinstall-dual.iso
272M archlinux-2010.04.24-netinstall-dual.iso
234M archlinux-2010.04.24-netinstall-dual.iso
We should also forget about tis 64bit kernel and 32bit user space. This is not and will never be supported in Arch and may cause strange problems. (e.g. we use uname -m = user space arch in several scripts; and o idea what happens if you try to install pacakges within the live system or try to compile a driver etc.)
(1) so remove K64/U32 from syslinux menu and make with a simple merge without touching root-image in oficial .iso?
(2) if (1) is true, then remove unused code[*] from archiso2dual to keep it simple?
[*] Unused code: "uncompress .sqfs", "delete files", "split files", "make .sqfs".
* merging /usr/share seems still useful to me, nothing wrong with some free space gains. but probably the folders are not 100% the same right now (or in the future), so maybe we should not strip it.
* the directory removing code in the full profile seems useful to have, although we won't use it for official media.
so for the official media, we just use -T basic. But the archiso2dual code can stay mostly the same. (just remove the 64/32 entry from isolinux menu and maybe put a README or other file in there that says you can do it with that menu entry)
Gerardo, you say: "If you need to load another 64 bit module, that is not loaded at initramfs step => basic profile is not for you."
is that a typo? I thought with the basic profile you have the full unmodified root filesystem, including the right modules etc. so it should work perfectly.
Nope, is not a typo, booting with 64/32 scheme (-T basic) is: boot 64 bit kernel + 64 bit initramfs (64 bit modules) + 32 bit root-image (32 bit modules) => modules incompatible with kernel.
Conclusion/TODO:
1) Remove 64/32 option from syslinux menu + isomounts.x86_64-i686 => can merge both isomounts in one file (me, working now)
2) Merge my git branch in master (Aaron)
3) Create dual isos with -T basic that is the default (Dieter)
* Use one isomounts file for both architectures