Author Topic: Separation of core.gz  (Read 3662 times)

Offline caminati

  • Full Member
  • ***
  • Posts: 184
    • Homepage
Separation of core.gz
« on: May 06, 2013, 06:29:45 AM »
To get results for Allwinner port of TC (see http://forum.tinycorelinux.net/index.php/topic,13827.0.html), I was forced to split initramfs cpio into separate root trees according to the type of entities in it:
Code: [Select]
/bin
/doc
/etc
/lib
/links
/mod
/share
/tree
/misc,

each containing a complete dir structure (/etc, /lib, /usr, /var, etc...).

After several remasterings, both for arm and x86, of kernel and initramfs, I have the sensation that a similar separation would be worth to be made permanent, for example by supplying several cpio gz files in
http://tinycorelinux.net/4.x/x86/release/distribution_files/
instead of one core.gz.

This would ease the job of tinkerers, and, to an external beholder, would make maintenance easier, too.
Do Core team think this makes sense and/or would be feasible?

Offline zerophnx

  • Newbie
  • *
  • Posts: 24
Re: Separation of core.gz
« Reply #1 on: May 08, 2013, 07:03:38 AM »
I'm not a member of the team, but I've also been in the custom core.gz boat (many thanks to the author of that wiki remastering article, it was excellent).

Anyway, I think you can tell your bootloader to load multiple .gz files at boot. Maybe you could split those folders into separate gz files or otherwise use this function to help in your situation.

If memory serves, the syntax is like:

Code: [Select]
APPEND initrd=/boot/core.gz,/path/otherfile.gz
Or from the syslinux site: http://www.syslinux.org/wiki/index.php/SYSLINUX#APPEND_-

Quote
INITRD initrd_file
Starting with version 3.71, an initrd can be specified in a separate statement (INITRD) instead of as part of the APPEND statement. This functionally appends "initrd=initrd_file" to the kernel command line.

It supports multiple filenames separated by commas. This is mostly useful for initramfs, which can be composed of multiple separate cpio or cpio.gz archives. Note: all files except the last one are zero-padded to a 4K page boundary. This should not affect initramfs.

Hope this helps!
« Last Edit: May 08, 2013, 07:14:07 AM by zerophnx »

Offline caminati

  • Full Member
  • ***
  • Posts: 184
    • Homepage
Re: Separation of core.gz
« Reply #2 on: May 08, 2013, 07:32:53 AM »
Hope this helps!

My problem is not about using separate initramfs': rather, my problem is creating separate initramfs' from a single one.
The latter is a task which has to be performed by hand to some degree; besides its usefulness for porting, I think having separate parts can help with a cleaner maintenance, so I was suggesting of having them separated right from the source, instead of forcing people to a manual and error-prone separation.

Once I have separate gzs, using them is no problem at all, of course.
Thanks, anyway.

Offline gerald_clark

  • TinyCore Moderator
  • Hero Member
  • *****
  • Posts: 4254
Re: Separation of core.gz
« Reply #3 on: May 08, 2013, 11:16:03 AM »
Not all boot loaders support the multiple initrrd option.
You can have the second initrd overwrite files in the first, so separating the initrd into multiple initrds is not necessary.

Offline caminati

  • Full Member
  • ***
  • Posts: 184
    • Homepage
Re: Separation of core.gz
« Reply #4 on: May 08, 2013, 11:25:46 AM »
Not all boot loaders support the multiple initrrd option.
You can have the second initrd overwrite files in the first, so separating the initrd into multiple initrds is not necessary.

I am not talking from a user's perspective.
I am talking from a maintainer/developer/porter's perspective.
Separate initramfs' (not initrds, btw) would make maintenance cleaner and easier.
To the user (e.g., inside core.iso), one would distribute one single re-unificated initramfs.

But the information added by separation (for example which files in it are architecture-dependent) would save a lot of mess to anyone wanting to experiment.

Offline caminati

  • Full Member
  • ***
  • Posts: 184
    • Homepage
Re: Separation of core.gz
« Reply #5 on: May 08, 2013, 11:39:26 AM »
For example, here http://pastebin.com/x3DLv073 are the 9 split rootdirs (each ending with a '0') I used.
Maybe this is an excessively fragmented arrangement, but I found it convenient when porting TC to Allwinner.

Preview:
Code: [Select]
|-- bin0
|   `-- bin
|       `-- busybox
|-- doc0
|   `-- usr
|       `-- share
|           `-- doc
|               |-- License
|               |   |-- bsd.txt
|               |   |-- gnufdl.txt
|               |   |-- gplv2.txt
|               |   `-- gplv3.txt
|               `-- tc
|                   |-- bootOptions.txt
|                   `-- release.txt
|-- etc0
|   |-- etc
|   |   |-- busybox.conf
|   |   |-- fstab
|   |   |-- group
|   |   |-- gshadow
|   |   |-- host.conf
|   |   |-- hostname
|   |   |-- hosts
|   |   |-- init.d
|   |   |   |-- dhcp.sh
|   |   |   |-- rc.shutdown
|   |   |   |-- rcS -> tc-config
|   |   |   |-- services
|   |   |   |   |-- crond
|   |   |   |   |-- dhcp
|   |   |   |   `-- tftpd
|   |   |   |-- tc-config
|   |   |   |-- tc-functions
|   |   |   |-- tc-restore.sh
|   |   |   `-- tc_noscan.lst
|   |   |-- inittab
|   |   |-- issue
|   |   |-- ld.so.conf
|   |   |-- mke2fs.conf
|   |   |-- modprobe.conf
|   |   |-- motd
|   |   |-- mtab -> /proc/mounts
|   |   |-- nsswitch.conf
|   |   |-- passwd
|   |   |-- pcmcia
|   |   |   `-- config.opts
|   |   |-- profile
|   |   |-- protocols
|   |   |-- resolv.conf
|   |   |-- rpc
|   |   |-- securetty
|   |   |-- services
|   |   |-- shadow
|   |   |-- shells
|   |   |-- skel
|   |   |-- sudoers
|   |   `-- udev
|   |       `-- rules.d
|   |           |-- 42-qemu-usb.rules
|   |           |-- 50-firmware.rules
|   |           |-- 50-udev-default.rules
|   |           |-- 55-tc.rules
|   |           |-- 56-lsusb.rules
|   |           |-- 60-cdrom_id.rules
|   |           |-- 60-pcmcia.rules
|   |           |-- 60-persistent-alsa.rules
|   |           |-- 60-persistent-input.rules
|   |           |-- 60-persistent-serial.rules
|   |           |-- 60-persistent-storage.rules
|   |           |-- 75-cd-dvd.rules
|   |           |-- 80-drivers.rules
|   |           `-- 95-udev-late.rules
|   |-- init
|   |-- opt
|   |   |-- bootlocal.sh
|   |   |-- bootsync.sh
|   |   |-- shutdown.sh
|   |   `-- tcemirror
|   |-- root
|   |-- sbin
|   |   |-- autologin
|   |   `-- ctty-hack
|   |-- tmp
|   |   `-- 98-tc.rules
|   `-- usr
|       |-- bin
|       |   |-- ab
|       |   |-- ab2tce.sh
|       |   |-- backup
|       |   |-- bbcheck.sh
|       |   |-- bigHomeFiles.sh
|       |   |-- calc
|       |   |-- cliorx
|       |   |-- exitcheck.sh
|       |   |-- exittc
|       |   |-- filetool.sh
|       |   |-- fromISOfile
|       |   |-- getTime.sh
|       |   |-- getdisklabel
|       |   |-- history
|       |   |-- keyword.sh
|       |   |-- ldd
|       |   |-- mountables.sh
|       |   |-- ondemand
|       |   |-- provides.sh
|       |   |-- scm
|       |   |-- scm-fetch.sh
|       |   |-- scm-load
|       |   |-- scm-search.sh
|       |   |-- scm-update
|       |   |-- search.sh
|       |   |-- seekWinPartition
|       |   |-- select
|       |   |-- sethostname
|       |   |-- showbootcodes
|       |   |-- tc-terminal-server
|       |   |-- tce-audit
|       |   |-- tce-fetch.sh
|       |   |-- tce-load
|       |   |-- tce-remove
|       |   |-- tce-run
|       |   |-- tce-setdrive
|       |   |-- tce-setup
|       |   |-- tce-size
|       |   |-- tce-status
|       |   |-- tce-update
|       |   |-- tcemirror.sh
|       |   |-- text2lp0
|       |   |-- uuid
|       |   `-- version
|       |-- sbin
|       |   |-- cache-clear
|       |   |-- cd_dvd_symlinks.sh
|       |   |-- fstype
|       |   `-- rebuildfstab
|       `-- share
|           `-- udhcpc
|               `-- default.script
|-- lib0
|   |-- etc
|   |   `-- ld.so.cache
|   |-- lib
|   |   |-- ld-2.13.so
|   |   |-- ld-linux.so.2 -> ld-2.13.so
|   |   |-- libanl-2.13.so
|   |   |-- libanl.so.1 -> libanl-2.13.so
|   |   |-- libblkid.so.1 -> libblkid.so.1.1.0
|   |   |-- libblkid.so.1.1.0
|   |   |-- libc-2.13.so
|   |   |-- libc.so.6 -> libc-2.13.so
|   |   |-- libcom_err.so.2 -> libcom_err.so.2.1
|   |   |-- libcom_err.so.2.1
|   |   |-- libcrypt-2.13.so
|   |   |-- libcrypt.so.1 -> libcrypt-2.13.so
|   |   |-- libdl-2.13.so
|   |   |-- libdl.so.2 -> libdl-2.13.so
|   |   |-- libe2p.so.2 -> libe2p.so.2.3
|   |   |-- libe2p.so.2.3
|   |   |-- libext2fs.so.2 -> libext2fs.so.2.4
|   |   |-- libext2fs.so.2.4
|   |   |-- libm-2.13.so
|   |   |-- libm.so.6 -> libm-2.13.so
|   |   |-- libnsl-2.13.so
|   |   |-- libnsl.so.1 -> libnsl-2.13.so
|   |   |-- libnss_compat-2.13.so
|   |   |-- libnss_compat.so.2 -> libnss_compat-2.13.so
|   |   |-- libnss_dns-2.13.so
|   |   |-- libnss_dns.so.2 -> libnss_dns-2.13.so
|   |   |-- libnss_files-2.13.so
|   |   |-- libnss_files.so.2 -> libnss_files-2.13.so
|   |   |-- libpthread-2.13.so
|   |   |-- libpthread.so.0 -> libpthread-2.13.so
|   |   |-- libresolv-2.13.so
|   |   |-- libresolv.so.2 -> libresolv-2.13.so
|   |   |-- librt-2.13.so
|   |   |-- librt.so.1 -> librt-2.13.so
|   |   |-- libutil-2.13.so
|   |   |-- libutil.so.1 -> libutil-2.13.so
|   |   |-- libuuid.so.1 -> libuuid.so.1.3.0
|   |   `-- libuuid.so.1.3.0
|   `-- usr
|       `-- lib
|           |-- gconv
|           |   |-- ANSI_X3.110.so
|           |   |-- ISO8859-1.so
|           |   |-- ISO8859-15.so
|           |   |-- ISO8859-2.so
|           |   `-- UNICODE.so
|           |-- libgcc_s.so.1
|           |-- libstdc++.so.6.0.16
|           |-- libsysfs.so.2.0.1
|           |-- libz.so.1.2.5
|           `-- sudo_noexec.so
|-- links0
|   |-- bin
|   |   |-- addgroup -> busybox
|   |   |-- adduser -> busybox
|   |   |-- ash -> busybox
|   |   |-- cat -> busybox
|   |   |-- chgrp -> busybox
|   |   |-- chmod -> busybox
|   |   |-- chown -> busybox
|   |   |-- cp -> busybox
|   |   |-- cpio -> busybox
|   |   |-- date -> busybox
|   |   |-- dd -> busybox
|   |   |-- delgroup -> busybox
|   |   |-- deluser -> busybox
|   |   |-- df -> busybox
|   |   |-- dmesg -> busybox
|   |   |-- dumpkmap -> busybox
|   |   |-- echo -> busybox
|   |   |-- egrep -> busybox
|   |   |-- false -> busybox
|   |   |-- fdflush -> busybox
|   |   |-- fgrep -> busybox
|   |   |-- grep -> busybox
|   |   |-- gunzip -> busybox
|   |   |-- gzip -> busybox
|   |   |-- hostname -> busybox
|   |   |-- ipcalc -> busybox
|   |   |-- kill -> busybox
|   |   |-- linux32 -> busybox
|   |   |-- linux64 -> busybox
|   |   |-- ln -> busybox
|   |   |-- login -> busybox
|   |   |-- ls -> busybox
|   |   |-- lsmod -> busybox
|   |   |-- mkdir -> busybox
|   |   |-- mknod -> busybox
|   |   |-- mktemp -> busybox
|   |   |-- more -> busybox
|   |   |-- mount -> busybox
|   |   |-- mv -> busybox
|   |   |-- netstat -> busybox
|   |   |-- nice -> busybox
|   |   |-- pidof -> busybox
|   |   |-- ping -> busybox
|   |   |-- ping6 -> busybox
|   |   |-- printenv -> busybox
|   |   |-- ps -> busybox
|   |   |-- pwd -> busybox
|   |   |-- rm -> busybox
|   |   |-- rmdir -> busybox
|   |   |-- rpm -> busybox
|   |   |-- sed -> busybox
|   |   |-- setarch -> busybox
|   |   |-- sh -> busybox
|   |   |-- sleep -> busybox
|   |   |-- stty -> busybox
|   |   |-- su -> busybox
|   |   |-- sync -> busybox
|   |   |-- tar -> busybox
|   |   |-- touch -> busybox
|   |   |-- true -> busybox
|   |   |-- umount -> busybox
|   |   |-- uname -> busybox
|   |   |-- uncompress -> busybox
|   |   |-- usleep -> busybox
|   |   |-- watch -> busybox
|   |   `-- zcat -> busybox
|   |-- sbin
|   |   |-- adjtimex -> ../bin/busybox
|   |   |-- arp -> ../bin/busybox
|   |   |-- depmod -> ../bin/busybox
|   |   |-- fdisk -> ../bin/busybox
|   |   |-- freeramdisk -> ../bin/busybox
|   |   |-- fsck -> ../bin/busybox
|   |   |-- fsck.ext2 -> e2fsck
|   |   |-- fsck.ext3 -> e2fsck
|   |   |-- fsck.ext4 -> e2fsck
|   |   |-- fsck.ext4dev -> e2fsck
|   |   |-- getty -> ../bin/busybox
|   |   |-- halt -> ../bin/busybox
|   |   |-- hdparm -> ../bin/busybox
|   |   |-- hwclock -> ../bin/busybox
|   |   |-- ifconfig -> ../bin/busybox
|   |   |-- init -> ../bin/busybox
|   |   |-- insmod -> ../bin/busybox
|   |   |-- klogd -> ../bin/busybox
|   |   |-- loadkmap -> ../bin/busybox
|   |   |-- losetup -> ../bin/busybox
|   |   |-- lspcmcia -> pccardctl
|   |   |-- mkfs.ext2 -> mke2fs
|   |   |-- mkfs.ext3 -> mke2fs
|   |   |-- mkfs.ext4 -> mke2fs
|   |   |-- mkfs.ext4dev -> mke2fs
|   |   |-- mkswap -> ../bin/busybox
|   |   |-- modinfo -> ../bin/busybox
|   |   |-- modprobe -> ../bin/busybox
|   |   |-- nameif -> ../bin/busybox
|   |   |-- pivot_root -> ../bin/busybox
|   |   |-- poweroff -> ../bin/busybox
|   |   |-- reboot -> ../bin/busybox
|   |   |-- rmmod -> ../bin/busybox
|   |   |-- route -> ../bin/busybox
|   |   |-- setconsole -> ../bin/busybox
|   |   |-- sulogin -> ../bin/busybox
|   |   |-- swapoff -> ../bin/busybox
|   |   |-- swapon -> ../bin/busybox
|   |   |-- switch_root -> ../bin/busybox
|   |   |-- sysctl -> ../bin/busybox
|   |   |-- syslogd -> ../bin/busybox
|   |   |-- udhcpc -> ../bin/busybox
|   |   |-- udpsvd -> ../bin/busybox
|   |   `-- vconfig -> ../bin/busybox
|   `-- usr
|       |-- bin
|       |   |-- [ -> ../../bin/busybox
|       |   |-- [[ -> ../../bin/busybox
|       |   |-- ar -> ../../bin/busybox
|       |   |-- arping -> ../../bin/busybox
|       |   |-- awk -> ../../bin/busybox
|       |   |-- basename -> ../../bin/busybox
|       |   |-- bunzip2 -> ../../bin/busybox
|       |   |-- bzcat -> ../../bin/busybox
|       |   |-- bzip2 -> ../../bin/busybox
|       |   |-- cal -> ../../bin/busybox
|       |   |-- chrt -> ../../bin/busybox
|       |   |-- chvt -> ../../bin/busybox
|       |   |-- cksum -> ../../bin/busybox
|       |   |-- clear -> ../../bin/busybox
|       |   |-- cmp -> ../../bin/busybox
|       |   |-- comm -> ../../bin/busybox
|       |   |-- crontab -> ../../bin/busybox
|       |   |-- cut -> ../../bin/busybox
|       |   |-- dc -> ../../bin/busybox
|       |   |-- deallocvt -> ../../bin/busybox
|       |   |-- diff -> ../../bin/busybox
|       |   |-- dirname -> ../../bin/busybox
|       |   |-- dnsdomainname -> ../../bin/busybox
|       |   |-- dos2unix -> ../../bin/busybox
|       |   |-- du -> ../../bin/busybox
|       |   |-- dumpleases -> ../../bin/busybox
|       |   |-- eject -> ../../bin/busybox
|       |   |-- env -> ../../bin/busybox
|       |   |-- ether-wake -> ../../bin/busybox
|       |   |-- expr -> ../../bin/busybox
|       |   |-- fdformat -> ../../bin/busybox
|       |   |-- fgconsole -> ../../bin/busybox
|       |   |-- find -> ../../bin/busybox
|       |   |-- flock -> ../../bin/busybox
|       |   |-- fold -> ../../bin/busybox
|       |   |-- free -> ../../bin/busybox
|       |   |-- ftpget -> ../../bin/busybox
|       |   |-- ftpput -> ../../bin/busybox
|       |   |-- fuser -> ../../bin/busybox
|       |   |-- getopt -> ../../bin/busybox
|       |   |-- head -> ../../bin/busybox
|       |   |-- hexdump -> ../../bin/busybox
|       |   |-- hostid -> ../../bin/busybox
|       |   |-- id -> ../../bin/busybox
|       |   |-- install -> ../../bin/busybox
|       |   |-- ipcrm -> ../../bin/busybox
|       |   |-- ipcs -> ../../bin/busybox
|       |   |-- killall -> ../../bin/busybox
|       |   |-- killall5 -> ../../bin/busybox
|       |   |-- last -> ../../bin/busybox
|       |   |-- length -> ../../bin/busybox
|       |   |-- less -> ../../bin/busybox
|       |   |-- loadfont -> ../../bin/busybox
|       |   |-- logger -> ../../bin/busybox
|       |   |-- logname -> ../../bin/busybox
|       |   |-- logread -> ../../bin/busybox
|       |   |-- md5sum -> ../../bin/busybox
|       |   |-- mesg -> ../../bin/busybox
|       |   |-- microcom -> ../../bin/busybox
|       |   |-- mkfifo -> ../../bin/busybox
|       |   |-- nc -> ../../bin/busybox
|       |   |-- nohup -> ../../bin/busybox
|       |   |-- nslookup -> ../../bin/busybox
|       |   |-- od -> ../../bin/busybox
|       |   |-- openvt -> ../../bin/busybox
|       |   |-- passwd -> ../../bin/busybox
|       |   |-- patch -> ../../bin/busybox
|       |   |-- pgrep -> ../../bin/busybox
|       |   |-- pkill -> ../../bin/busybox
|       |   |-- printf -> ../../bin/busybox
|       |   |-- readlink -> ../../bin/busybox
|       |   |-- realpath -> ../../bin/busybox
|       |   |-- renice -> ../../bin/busybox
|       |   |-- reset -> ../../bin/busybox
|       |   |-- resize -> ../../bin/busybox
|       |   |-- rev -> ../../bin/busybox
|       |   |-- rpm2cpio -> ../../bin/busybox
|       |   |-- script -> ../../bin/busybox
|       |   |-- seq -> ../../bin/busybox
|       |   |-- setkeycodes -> ../../bin/busybox
|       |   |-- setsid -> ../../bin/busybox
|       |   |-- sha1sum -> ../../bin/busybox
|       |   |-- sort -> ../../bin/busybox
|       |   |-- split -> ../../bin/busybox
|       |   |-- start-stop-daemon -> ../../bin/busybox
|       |   |-- strings -> ../../bin/busybox
|       |   |-- sudoedit -> sudo
|       |   |-- sum -> ../../bin/busybox
|       |   |-- tail -> ../../bin/busybox
|       |   |-- tee -> ../../bin/busybox
|       |   |-- telnet -> ../../bin/busybox
|       |   |-- test -> ../../bin/busybox
|       |   |-- tftp -> ../../bin/busybox
|       |   |-- time -> ../../bin/busybox
|       |   |-- timeout -> ../../bin/busybox
|       |   |-- top -> ../../bin/busybox
|       |   |-- tr -> ../../bin/busybox
|       |   |-- traceroute -> ../../bin/busybox
|       |   |-- tty -> ../../bin/busybox
|       |   |-- uniq -> ../../bin/busybox
|       |   |-- unix2dos -> ../../bin/busybox
|       |   |-- unxz -> ../../bin/busybox
|       |   |-- unzip -> ../../bin/busybox
|       |   |-- uptime -> ../../bin/busybox
|       |   |-- vi -> ../../bin/busybox
|       |   |-- vlock -> ../../bin/busybox
|       |   |-- wc -> ../../bin/busybox
|       |   |-- wget -> ../../bin/busybox
|       |   |-- which -> ../../bin/busybox
|       |   |-- who -> ../../bin/busybox
|       |   |-- whoami -> ../../bin/busybox
|       |   |-- xargs -> ../../bin/busybox
|       |   |-- xz -> ../../bin/busybox
|       |   |-- xzcat -> ../../bin/busybox
|       |   `-- yes -> ../../bin/busybox
|       |-- lib
|       |   |-- libanl.so -> ../../lib/libanl.so.1
|       |   |-- libblkid.so -> ../../lib/libblkid.so.1.1.0
|       |   |-- libcom_err.so -> /lib/libcom_err.so.2
|       |   |-- libcrypt.so -> ../../lib/libcrypt.so.1
|       |   |-- libdl.so -> ../../lib/libdl.so.2
|       |   |-- libe2p.so -> /lib/libe2p.so.2
|       |   |-- libext2fs.so -> /lib/libext2fs.so.2
|       |   |-- libgcc_s.so -> libgcc_s.so.1
|       |   |-- libm.so -> ../../lib/libm.so.6
|       |   |-- libnsl.so -> ../../lib/libnsl.so.1
|       |   |-- libnss_compat.so -> ../../lib/libnss_compat.so.2
|       |   |-- libnss_dns.so -> ../../lib/libnss_dns.so.2
|       |   |-- libnss_files.so -> ../../lib/libnss_files.so.2
|       |   |-- libresolv.so -> ../../lib/libresolv.so.2
|       |   |-- librt.so -> ../../lib/librt.so.1
|       |   |-- libstdc++.so -> libstdc++.so.6.0.16
|       |   |-- libstdc++.so.6 -> libstdc++.so.6.0.16
|       |   |-- libsysfs.so -> libsysfs.so.2.0.1
|       |   |-- libsysfs.so.2 -> libsysfs.so.2.0.1
|       |   |-- libutil.so -> ../../lib/libutil.so.1
|       |   |-- libuuid.so -> ../../lib/libuuid.so.1.3.0
|       |   |-- libz.so -> libz.so.1.2.5
|       |   `-- libz.so.1 -> libz.so.1.2.5
|       `-- sbin
|           |-- chpasswd -> ../../bin/busybox
|           |-- chroot -> ../../bin/busybox
|           |-- crond -> ../../bin/busybox
|           |-- fbset -> ../../bin/busybox
|           |-- inetd -> ../../bin/busybox
|           |-- nbd-client -> ../../bin/busybox
|           |-- rdate -> ../../bin/busybox
|           |-- taskset -> ../../bin/busybox
|           |-- tftpd -> ../../bin/busybox
|           `-- udhcpd -> ../../bin/busybox
|-- mod0
|   `-- lib
|       `-- modules
|           `-- 3.0.21-tinycore
|               |-- kernel
|               |   |-- arch
|               |   |   `-- x86
|               |   |       |-- kernel
|               |   |       |   |-- cpuid.ko.gz
|               |   |       |   |-- microcode.ko.gz
|               |   |       |   `-- msr.ko.gz
|               |   |       `-- oprofile
|               |   |           `-- oprofile.ko.gz
|               |   |-- crypto
|               |   |   |-- async_tx
|               |   |   |   |-- async_memcpy.ko.gz
|               |   |   |   |-- async_pq.ko.gz
|               |   |   |   |-- async_raid6_recov.ko.gz
|               |   |   |   |-- async_tx.ko.gz
|               |   |   |   `-- async_xor.ko.gz
|               |   |   `-- xor.ko.gz
|               |   |-- drivers
|               |   |   |-- acpi
|               |   |   |   |-- ac.ko.gz
|               |   |   |   |-- battery.ko.gz
|               |   |   |   |-- sbs.ko.gz
|               |   |   |   |-- sbshc.ko.gz
|               |   |   |   `-- video.ko.gz
|               |   |   |-- ata
|               |   |   |   `-- pata_pcmcia.ko.gz
|               |   |   |-- bcma
|               |   |   |   `-- bcma.ko.gz
|               |   |   |-- block
|               |   |   |   |-- aoe
|               |   |   |   |   `-- aoe.ko.gz
|               |   |   |   |-- floppy.ko.gz
|               |   |   |   |-- loop.ko.gz
|               |   |   |   |-- nbd.ko.gz
|               |   |   |   `-- virtio_blk.ko.gz
|               |   |   |-- char
|               |   |   |   |-- hw_random
|               |   |   |   |   |-- amd-rng.ko.gz
|               |   |   |   |   |-- geode-rng.ko.gz
|               |   |   |   |   |-- intel-rng.ko.gz
|               |   |   |   |   |-- timeriomem-rng.ko.gz
|               |   |   |   |   |-- via-rng.ko.gz
|               |   |   |   |   `-- virtio-rng.ko.gz
|               |   |   |   |-- i8k.ko.gz
|               |   |   |   |-- lp.ko.gz
|               |   |   |   |-- ppdev.ko.gz
|               |   |   |   `-- toshiba.ko.gz
|               |   |   |-- connector
|               |   |   |   `-- cn.ko.gz

CUT

209 directories, 1010 files

Offline curaga

  • Administrator
  • Hero Member
  • *****
  • Posts: 10989
Re: Separation of core.gz
« Reply #6 on: May 13, 2013, 11:15:25 AM »
I agree that with many ports coming on, something should happen; but separate initrds is not it, IMHO. There's little value in having them as initrds, as very few would like to boot them piecemeal.

Having the TC-specific scripts all in a git repo would be a good next step, already planned, but not yet started.
The only barriers that can stop you are the ones you create yourself.

Offline caminati

  • Full Member
  • ***
  • Posts: 184
    • Homepage
Re: Separation of core.gz
« Reply #7 on: May 13, 2013, 12:55:10 PM »
I agree that with many ports coming on, something should happen; but separate initrds is not it, IMHO. There's little value in having them as initrds, as very few would like to boot them piecemeal.

Having the TC-specific scripts all in a git repo would be a good next step, already planned, but not yet started.

Yes, the point of the post is that some form of separation is needed.
How to do that is not very important, and the form of several cpios was only an example (with the added advantage to be able to boot a reduced initramfs without effort, but this is not vital).
The point is that maintainers work on separate rootdirs, and that they merge them only for distribution, as a last step, into one cpio.

Offline genec

  • Full Member
  • ***
  • Posts: 240
Re: Separation of core.gz
« Reply #8 on: May 13, 2013, 06:47:50 PM »
Separate initramfs' (not initrds, btw) would make maintenance cleaner and easier.
To the user (e.g., inside core.iso), one would distribute one single re-unificated initramfs.
My understanding (from re-reading Documentation/filesystems/ramfs-rootfs-initramfs.txt) is that initramfs is more a specification for populating rootfs from 1 or more payloads provided at boot time (including the one tiny archive compiled into the kernel itself), rather than the actual files.  External initramfs archives/payloads are loaded into RAM and passed to the kernel using the external initrd mechanism.  All initramfs archives are initramfs-formatted CPIO archives (often compressed with gzip).

So although there's no true ram-backed disk in the traditional sense, it's identical from the boot loader perspective and I believe it's common to refer to these external payloads as initrds, regardless of the fact that they're initramfs archives.

(with the added advantage to be able to boot a reduced initramfs without effort, but this is not vital).
I thought that was the purpose of core: the bear essentials with no more.  Now, providing a core.gz without kernel modules might be useful for those trying their own kernels.
« Last Edit: May 13, 2013, 07:05:47 PM by genec »