[Leaf-devel] Linux 2.4.16

2001-12-31 Thread David Douthitt

I noticed several differences (perhaps others will find more).  I had
much less in my kernel, but perhaps bigger things

Compared to the version the Jacques had, my compilation did NOT have:

* EISA support
* Hot Pluggable Device support
* PCMCIA
* QoS
* 1000Mbit
* Wireless LAN
* Token Ring
* ISDN
* Network Filesystems

...and had less:

* Block devices
* Networking options
* Ethernet card support

However, my compilation DID have the following - which perhaps are
much bigger (?):

* MTD Support (DiskOnChip)
* Bridge support (not a module)
* IDE Support
* SCSI (maybe)
* Amateur Radio (AX.25 and KISS mode)
* Frame buffer support
* Video Selection
* VFAT support
* GR Security
* Linux Progress Patch

What's the big ones?  IDE?  SCSI?  LPP certainly seemed to be quite
big.  Perhaps I'll just try to modularize most of the above (IDE,
Amateur Radio, etc...) to strip it down.

By the way, am I the only one who keeps dreaming of an ampr.org
address?  To me, wireless means something different :)
--
David Douthitt
UNIX Systems Administrator
HP-UX, Unixware, Linux
[EMAIL PROTECTED]

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



[Leaf-devel] linux 2.4.16

2001-12-31 Thread Eric Wolzak

Hello David Ewald and all others on the list.

Jacques Nilo has a 2.4.16 (unpatched) kernel on
/leaf.sf.net/devel/jnilo/kernel-2.4.16/
The configuration files are there too.
We are working on a pppoe disk based on this kernel.

greetings 
and a happy new year to all of you

Eric Wolzak
leaf.sf.net/devel/ericw


___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



RE: [Leaf-devel] Linux 2.4.16

2001-12-31 Thread Andrew Hoying



> -Original Message-
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]]On Behalf Of David
> Douthitt
> Sent: Sunday, December 30, 2001 11:39 PM
> To: LEAF Development
> Subject: Re: [Leaf-devel] Linux 2.4.16
>
>
< -- snip -- >
>
> > Second question: I STILL can't get 2.4.16 under 500k in
> > size - I can't even get it under 600k - even compressed.
> > Even though I strip practically everything out.  Why is
> > that?  Do I really have to give up over 100k of floppy
> > space to the Linux kernel?
>

I've been running 2.4.16 with the GRsec patch version 1.9 since November
28th with no problems. The size of my compressed kernel is 554911 Bytes. It
is booting from an initrd with no classic LRP patches. The only thing
different, probably, is that I haven't compiled in the hooks for the
majority of modules and I have all of my drivers, including IDE disk access,
compiled into the kernel.

Andrew


___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Linux 2.4.16

2001-12-31 Thread David Douthitt

On 12/31/01 at 5:42 PM, Ewald Wasscher <[EMAIL PROTECTED]>
wrote:

> David Douthitt wrote:
> 
> >Second question: I STILL can't get 2.4.16 under 500k in
> >size - I can't even get it under 600k - even compressed. 
> >Even though I strip practically everything out.  Why is
> >that?  Do I really have to give up over 100k of floppy
> >space to the Linux kernel?

> Do you care to share your kernel configuration file? I
> know 2.4 is bigger, but I'm surprised it's that big.

Then you may be surprised to hear that with the LPP patch saw one
version over 990k...!

This version resulted in a 910k file; if you assume that 240k or so is
the Linux Progress Patch (LPP) what's the rest of it?
--
David Douthitt
UNIX Systems Administrator
HP-UX, Unixware, Linux
[EMAIL PROTECTED]

#
# Automatically generated by make menuconfig: don't edit
#
CONFIG_X86=y
CONFIG_ISA=y
# CONFIG_SBUS is not set
CONFIG_UID16=y

#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y

#
# Loadable module support
#
CONFIG_MODULES=y
# CONFIG_MODVERSIONS is not set
CONFIG_KMOD=y

#
# Processor type and features
#
# CONFIG_M386 is not set
CONFIG_M486=y
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MCYRIXIII is not set
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_CMPXCHG=y
CONFIG_X86_XADD=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_X86_L1_CACHE_SHIFT=4
CONFIG_X86_USE_STRING_486=y
CONFIG_X86_ALIGNMENT_16=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
# CONFIG_MICROCODE is not set
# CONFIG_X86_MSR is not set
# CONFIG_X86_CPUID is not set
CONFIG_NOHIGHMEM=y
# CONFIG_HIGHMEM4G is not set
# CONFIG_HIGHMEM64G is not set
# CONFIG_MATH_EMULATION is not set
# CONFIG_MTRR is not set
# CONFIG_SMP is not set
# CONFIG_X86_UP_APIC is not set
# CONFIG_X86_UP_IOAPIC is not set

#
# General setup
#
CONFIG_NET=y
CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GODIRECT is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_NAMES=y
# CONFIG_EISA is not set
# CONFIG_MCA is not set
# CONFIG_HOTPLUG is not set
# CONFIG_PCMCIA is not set
# CONFIG_HOTPLUG_PCI is not set
CONFIG_SYSVIPC=y
# CONFIG_BSD_PROCESS_ACCT is not set
CONFIG_SYSCTL=y
CONFIG_KCORE_ELF=y
# CONFIG_KCORE_AOUT is not set
# CONFIG_BINFMT_AOUT is not set
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
# CONFIG_PM is not set
# CONFIG_ACPI is not set
# CONFIG_APM is not set

#
# Memory Technology Devices (MTD)
#
CONFIG_MTD=y
# CONFIG_MTD_DEBUG is not set
# CONFIG_MTD_PARTITIONS is not set
# CONFIG_MTD_REDBOOT_PARTS is not set
# CONFIG_MTD_CHAR is not set
# CONFIG_MTD_BLOCK is not set
# CONFIG_MTD_BLOCK_RO is not set
# CONFIG_FTL is not set
CONFIG_NFTL=y
CONFIG_NFTL_RW=y

#
# RAM/ROM/Flash chip drivers
#
# CONFIG_MTD_CFI is not set
# CONFIG_MTD_JEDECPROBE is not set
# CONFIG_MTD_GEN_PROBE is not set
# CONFIG_MTD_CFI_INTELEXT is not set
# CONFIG_MTD_CFI_AMDSTD is not set
# CONFIG_MTD_RAM is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_ABSENT is not set
# CONFIG_MTD_OBSOLETE_CHIPS is not set
# CONFIG_MTD_AMDSTD is not set
# CONFIG_MTD_SHARP is not set
# CONFIG_MTD_JEDEC is not set

#
# Mapping drivers for chip access
#
# CONFIG_MTD_PHYSMAP is not set
# CONFIG_MTD_PNC2000 is not set
# CONFIG_MTD_SC520CDP is not set
# CONFIG_MTD_NETSC520 is not set
# CONFIG_MTD_SBC_GXX is not set
# CONFIG_MTD_ELAN_104NC is not set
# CONFIG_MTD_MIXMEM is not set
# CONFIG_MTD_OCTAGON is not set
# CONFIG_MTD_VMAX is not set
# CONFIG_MTD_L440GX is not set

#
# Self-contained MTD device drivers
#
# CONFIG_MTD_PMC551 is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_MTDRAM is not set
# CONFIG_MTD_BLKMTD is not set
CONFIG_MTD_DOC1000=y
CONFIG_MTD_DOC2000=y
# CONFIG_MTD_DOC2001 is not set
CONFIG_MTD_DOCPROBE=y
# CONFIG_MTD_DOCPROBE_ADVANCED is not set
CONFIG_MTD_DOCPROBE_ADDRESS=0
# CONFIG_MTD_DOCPROBE_HIGH is not set
# CONFIG_MTD_DOCPROBE_55AA is not set

#
# NAND Flash Device Drivers
#
CONFIG_MTD_NAND=y
# CONFIG_MTD_NAND_ECC is not set
# CONFIG_MTD_NAND_VERIFY_WRITE is not set

#
# Parallel port support
#
# CONFIG_PARPORT is not set

#
# Plug and Play configuration
#
# CONFIG_PNP is not set
# CONFIG_ISAPNP is not set

#
# Block devices
#
CONFIG_BLK_DEV_FD=y
# CONFIG_BLK_DEV_XD is not set
# CONFIG_PARIDE is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_NBD=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y

#
# Multi-device support (RAID and LVM)
#
# CONFIG_MD is not set
# CONFIG_BLK_DEV_MD is not set
# CONFIG_MD_LINEAR is not set
# CONFIG_MD_RAID0 is not set
# CONFIG_MD_RAID1 is

Re: [Leaf-devel] Linux 2.4.16

2001-12-31 Thread Ewald Wasscher

David Douthitt wrote:

>Second question: I STILL can't get 2.4.16 under 500k in size - I can't
>even get it under 600k - even compressed.  Even though I strip
>practically everything out.  Why is that?  Do I really have to give up
>over 100k of floppy space to the Linux kernel?
>
Do you care to share your kernel configuration file? I know 2.4 is 
bigger, but I'm surprised it's that big.

Ewald Wasscher



___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Linux 2.4.16

2001-12-30 Thread David Douthitt

On 12/30/01 at 4:23 PM, David Douthitt <[EMAIL PROTECTED]> wrote:

> I'm trying to set up Linux 2.4.16 with the Linux Progress
> Patch (LPP) on my desktop before I try it on a floppy...

> Now when the system boots, I get the nice boot screen
> (from LPP) and all works until init starts - which messes
> up the nice boot screen. Few lines more and the screen
> clears and starts giving messages in blue.  In short
> order, it is obvious that the entire filesystem - ALL
> mount points - are mounted read-only (!).
> 
> Anyone know what is going on?

I think I figured out what it was, though I can't say why everything
was read-only.  I'd forgotten to say that I'm running Mandrake 8.0,
and that there was a message that it could not open the console as
there was no such device  It appears that, since I've enabled
framebuffer support, that enabled Mandrake's cute boot-time startup to
run (Aurora), and this did not expect to be running on /dev/tty2 (the
console) and this caused problems.

Once I took this out, the boot-time messages scrolled by on the bottom
line, init still corrupted the screen, but the system booted - and
aurora took over after the kernel was done booting up.

> Second question: I STILL can't get 2.4.16 under 500k in
> size - I can't even get it under 600k - even compressed. 
> Even though I strip practically everything out.  Why is
> that?  Do I really have to give up over 100k of floppy
> space to the Linux kernel?

Well?  :)

Perhaps I'll just create a system with syslinux, configurations, Linux
2.4, and root.gz on it - and use packages from a second disk (the 2.0
unpatched devel disk...)
--
David Douthitt
UNIX Systems Administrator
HP-UX, Unixware, Linux
[EMAIL PROTECTED]

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



[Leaf-devel] Linux 2.4.16

2001-12-30 Thread David Douthitt

I'm trying to set up Linux 2.4.16 with the Linux Progress Patch (LPP)
on my desktop before I try it on a floppy...

The system has been trouble Even though this system came with
2.4.3, it still won't boot right with 2.4.16 and LPP.  First it came
up and said that /dev/hda7 had no superblock on it - except that it
was perfectly fine.  I figured that devfs was the bug in this case

So I took it out - now it works.  Side note: devfs was supposed to
solve problems - but I used it and it created them.

Now when the system boots, I get the nice boot screen (from LPP) and
all works until init starts - which messes up the nice boot screen. 
Few lines more and the screen clears and starts giving messages in
blue.  In short order, it is obvious that the entire filesystem - ALL
mount points - are mounted read-only (!).

Anyone know what is going on?

Second question: I STILL can't get 2.4.16 under 500k in size - I can't
even get it under 600k - even compressed.  Even though I strip
practically everything out.  Why is that?  Do I really have to give up
over 100k of floppy space to the Linux kernel?
--
David Douthitt
UNIX Systems Administrator
HP-UX, Unixware, Linux
[EMAIL PROTECTED]

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Linux 2.4.16 and LEAF

2001-12-05 Thread Charles Steinkuehler

> > > If I understand right, the steps are:
> > >
> > > 1. Create and compile a kernel of your choice.
> > > 2. Create a Minix file system and populate it with the contents of
> > > root.lrp
> > > 3. Compress the Minix filesystem with gzip and put on disk as
initrd.gz
> > > 4. Modify linuxrc to run /sbin/init at the end
> >
> > I don't think this is the best way to solve this.  IMHO, it's better to
have
> > the kernel boot with root=[!ram0], which will get linuxrc running.
Linuxrc
> > should then set the real root device to /dev/ram (or your tmpfs or ramfs
> > device) by writing to /proc/sys/kernel/real-root-dev (see initrd.txt in
the
> > kernel Documentation directory).
>
> How does this affect the steps I put forth?  I don't see that it does.

There ARE minor changes...

> I had assumed that /linuxrc would just run; now you say that the "root"
> parameter needs to point somewhere other than /dev/ram0 .  That's
> alright, but that doesn't change the steps does it?
>
> According to initrd.txt, it would appear that the usual way of doing
> things is, at the end of /linuxrc, to pivot_root and then run init.

That's one way...keep reading...

> I was thinking one doesn't need to pivot_root at all - and the
> documentation alludes to such situations.  Is there a problem if
> pivot_root isn't used?
>
> Is it right to say that pivot_root and /proc/sys/kernel/real-root-dev
> are both new to Linux 2.4?

No.  /proc/sys/kernel/real-root-dev came straight from my 2.2.x
documentation.

OK, in the normal kernel 2.2.x (and I believe 2.4.x), linuxrc is a mechanism
mainly intended for installing kernel modules so you can boot off that
brand-new fiber-channel SAN array (or SCSI drive, or whatever) without
having to build thousands of unique kernels if your making a distrubition.
The kernel sort of does an implicit 'pivot root' when running a typical
boot-sequence with an initial ramdisk.  First, the initrd is mounted as
root, and linuxrc is run.  When linuxrc exits, the kernel mounts the
real-root-dev, and spawns init (hopefully never to return).  The linuxrc
script can CHANGE the value of real-root-dev while it is running by writing
into /proc.  If linuxrc does not do this, the root device will remain
whatever it was before (either the device hard-coded into the kernel, or
whatever you passed on the kernel command line).

OK, now one problem is that linuxrc doesn't always get run.  If the kernel
is booting with an initial ramdisk, AND the root device is the ramdisk, the
kernel assumes you built a tiny recovery file-system and want to run init,
NOT linuxrc, so the above processing is completely bypassed (the ramdisk is
mounted as the real-root-device, and init is run...if it ever returns, it's
kernel panic time).  This is the reason for the existance of the
linuxrc-always patch...it runs linuxrc EVEN IF the root device is the
ramdisk.  Again, the code in init/main.c goes a long way towards explaining
exactly what's going on...compare the patched and un-patched version to see
the changes the LRP patches make.

IMHO, the "boot-loader" functionality should be done with /linuxrc
functionality, and once enough of a root filesystem has been pieced together
on some other mount-point, the boot code exits, the kernel mounts the new FS
as root, and init starts running.  Exactly how much is done in the
"boot-loader" code, and how much is done in startup scripts once init is
running is still up in the air at this point, and there are lots of
tradeoffs.  Regardless, the boot code in the initial ramdisk could easily be
discarded or copied to the new root filesystem, depending on particular
system requirements...


___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Linux 2.4.16 and LEAF

2001-12-05 Thread David Douthitt

Charles Steinkuehler wrote:
> 
> > If I understand right, the steps are:
> >
> > 1. Create and compile a kernel of your choice.
> > 2. Create a Minix file system and populate it with the contents of
> > root.lrp
> > 3. Compress the Minix filesystem with gzip and put on disk as initrd.gz
> > 4. Modify linuxrc to run /sbin/init at the end
> 
> I don't think this is the best way to solve this.  IMHO, it's better to have
> the kernel boot with root=[!ram0], which will get linuxrc running.  Linuxrc
> should then set the real root device to /dev/ram (or your tmpfs or ramfs
> device) by writing to /proc/sys/kernel/real-root-dev (see initrd.txt in the
> kernel Documentation directory).

How does this affect the steps I put forth?  I don't see that it does.

I had assumed that /linuxrc would just run; now you say that the "root"
parameter needs to point somewhere other than /dev/ram0 .  That's
alright, but that doesn't change the steps does it?

According to initrd.txt, it would appear that the usual way of doing
things is, at the end of /linuxrc, to pivot_root and then run init.

I was thinking one doesn't need to pivot_root at all - and the
documentation alludes to such situations.  Is there a problem if
pivot_root isn't used?

Is it right to say that pivot_root and /proc/sys/kernel/real-root-dev
are both new to Linux 2.4?

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Linux 2.4.16 and LEAF

2001-12-05 Thread David Douthitt

Jacques NIlo wrote:
> 
> > You and initrd.txt both talk of pivot_root - but I
> > can't find the command anywhere.
> 
> It's in busybox. Read initrd.txt in kernel Doc for
> instruction.

I saw initrd.txt - and have 2.4 systems here, too.  Doing a which
pivot_root or a man pivot_root fails on all systems - except there is a
manpage on the 2.4 system.  Compiling busybox under Linux 2.2 (and glibc
2.1) generates a message that pivot_root is unsupported and has been
stubbed out.

> How big would be this same BBOX library dynamically
> compiled against libc? The difference is the cost in term
> of size.

Oxygen busybox was about 170k or 190k dynamically linked - since Oxygen
uses a LOT of busybox applets.  Statically compiled, busybox 0.60.1 is
330k; busybox 0.60.2 came out to 300k.  I statically linked with uClibc;
if you statically link against glibc (like I did by mistake :) it comes
out to 550k or so.

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Linux 2.4.16 and LEAF

2001-12-05 Thread Charles Steinkuehler

> > I don't think this is the best way to solve this.  IMHO, it's better to
have
> > the kernel boot with root=[!ram0], which will get linuxrc running.
>
> I don't know what you mean by that...  What would root= be, then?  And
> what does that have to do with /linuxrc?
>
> I'm just getting a handle on this initrd thing...

Sorry...shorthand for root device equals anything EXECPT /dev/ram0, so
linuxrc will run with an unpatched kernel (see main.c in kernel source for
the tests the kerenl does to decide if it should run linuxrc or not).

Charles Steinkuehler
http://lrp.steinkuehler.net
http://c0wz.steinkuehler.net (lrp.c0wz.com mirror)



___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Linux 2.4.16 and LEAF

2001-12-05 Thread Jacques NIlo

> You and initrd.txt both talk of pivot_root - but I
can't find the
> command anywhere.

It's in busybox. Read initrd.txt in kernel Doc for
instruction.

> Actually, Oxygen does NOT do this, as busybox is
entirely statically
> linked, and includes all applets as before.  Many of
the "necessities"
> of running a Linux system were split out until root.lrp
became as small
> as I could make it - it's under 350k now.

How big would be this same BBOX library dynamically
compiled against libc? The difference is the cost in term
of size.

> The only thing you mentioned that makes me think using
the initrd volume
> for normal work would be bad is that mention of tmpfs.
Will newer
> kernels use tmpfs instead of minixfs - or do they use
whatever you
> want?  How will that work?

As of today initrd fs can **only** be ext2 or minix. If
it could be tmpfs it would solve a lot of pbs...


>
> For Dachstein, it probably is - though I tend to think
that moving
> towards a minimalist root.lrp is a good idea.  Moving
towards a
> minimalist root.lrp isn't that much different than
moving towards a tiny
> boot loader.

I agree

> I thought POSIXness used sed extensively; does busybox
sed give all you
> need?

I am not sure. That is something to check.

> > c2b/ Split busybox in two pieces (but ***both***
> > dynamically linked) between initrd.lrp and root.lrp
>
> This means you need libc.so during boot (500k+) and
also means that
> "busybox --install" will conflict.  You also need to
track to binaries,
> maintain two versions (such as when you upgrade
busybox) and takes away
> a lot of nice otherwise "extra" commands that might be
nice during boot.

I am not sure it's that difficult. May be worth just
trying.

Jacques
--
Profitez de l'offre spéciale Tiscali Liberty Surf !
50% de temps en plus pendant 3 mois sur tous les forfaits Internet.

http://register.libertysurf.fr/subscribe_fr/signup.php3



___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Linux 2.4.16 and LEAF

2001-12-05 Thread David Douthitt

Charles Steinkuehler wrote:

> I don't think this is the best way to solve this.  IMHO, it's better to have
> the kernel boot with root=[!ram0], which will get linuxrc running.

I don't know what you mean by that...  What would root= be, then?  And
what does that have to do with /linuxrc?

I'm just getting a handle on this initrd thing...

> Linuxrc
> should then set the real root device to /dev/ram (or your tmpfs or ramfs
> device) by writing to /proc/sys/kernel/real-root-dev (see initrd.txt in the
> kernel Documentation directory).

I saw that...

> Everything else looks OK.  I'd only point out that if the initial ramdisk
> becomes  more of a bootloader, which is what I'd like to see, and I think
> the direction Jaques is heading, root.lrp is just another package (although
> likely the first to get loaded), and the initial ramdisk would be something
> like boot.img, and should not have to change unless you need to change boot
> methods (ie add new hardware support for a HDD, CD, or similar).

Oxygen root.lrp is already there; what you all call "root.lrp" for me
is: sed.lrp, init.lrp, inetd.lrp, timezone.lrp, cron.lrp, et al. 
There's even e3.lrp, sysklog.lrp, ps.lrp, and more - 29 packages total
on the root disk.  So why not make root.lrp into initrd.gz?

Looking at Oxygen root.lrp, all that is there is really: busybox, a few
scripts, a dozen modules or more, boot time scripts, and the root
package files in /var/lib/lrpkg.  That's it.  Busybox is 330k, and the
modules all together might make up another 100k or 200k.  Everything
else is tiny.

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Linux 2.4.16 and LEAF

2001-12-05 Thread David Douthitt

Jacques NIlo wrote:

> My proposal - and what I have implemented in my last
> experimental LEAF 2.4.16 image (the b1 version)- is the
> following:
> 
> a/ Whatever is provided after the initrd= variable will
> contain the smallest possible filesystem. The smallest I
> found consists of a 1,2M (uncompressed... ) minix FS
> populated with busybox, sed, ash, libc.so.6, linux-ld
> a /dev/console and linuxrc.
> This compressed fs is loaded in /dev/ram0 then is moved
> to tmpfs on which every other packages are loaded after a
> pivot_root  instruction.

You and initrd.txt both talk of pivot_root - but I can't find the
command anywhere.

> Once the boot process is
> completed (end of linuxrc), the initrd fs is unmounted
> and /dev/ram0 released.
> 
> b/ This file (called initrd.lrp in my latest version) can
> be backuped like any other package. This can be done by a
> 15 lines shell script (lrcfg.back.initrd) called by
> lrcfg.back.script.
> 
> c/ There are basically 3 options which could be followed:
> 
> c1 - We apply that technique to the root.lrp file itself
> as it is now in Dachstein. The problem with this is that
> it is a bit memory expensive: at the end of linuxrc you
> have all your dachstein distro uncompressed in tmpfs plus
> root.lrp uncompressed in /initrd. Only at the end of
> linuxrc (in fact in the first lines of /etc/init.d/rcS
> which is executed nest) are /initrd unmounted
> and /dev/ram0 released.
> 
> c2 - We apply a "split technique". This is the route I
> followed. Original root.lrp is splitted in two pieces:
> the bootstrap part (initrd.lrp) and what is left in
> root.lrp.
> 
> c3 - We look for the smallest possible initrd.lrp. That
> would imply the following route: initrd.lrp would only
> consist of a statically build version of busybox (against
> uClibc) containing only the applets necessary
> for /linuxrc to be executed (ash, sed, mkdir, ...). No
> more libc in this scheme and the non necessary applets of
> busybox would be provided in root.lrp dynamically linked
> to libc.so.  This is basically the route followed by
> Oxygen. I have not tested that but I think that what will
> be gained in memory will be lost in the combined size of
> root.lrp and initrd.lrp since you will have both
> statically build applets and libc.so.

Actually, Oxygen does NOT do this, as busybox is entirely statically
linked, and includes all applets as before.  Many of the "necessities"
of running a Linux system were split out until root.lrp became as small
as I could make it - it's under 350k now.

The only thing you mentioned that makes me think using the initrd volume
for normal work would be bad is that mention of tmpfs.  Will newer
kernels use tmpfs instead of minixfs - or do they use whatever you
want?  How will that work?

Anyway, in the case of Oxygen, you do not have statically linked
applications duplicated by dynamically linked ones.  glibc is a separate
library and is not part of root.lrp (it is libc.lrp).  busybox is just
like it was always, only now it is statically linked.

> That is why I think that the approach I suggested is a
> good compromise.

For Dachstein, it probably is - though I tend to think that moving
towards a minimalist root.lrp is a good idea.  Moving towards a
minimalist root.lrp isn't that much different than moving towards a tiny
boot loader.

Once your root.lrp is as small as you can get it - why not flip it over
and make it a initrd.gz image?

> I think this approach can be refined
> further in testing the following ideas:
> c2a/ Use busybox ash and sed in initrd.lrp

I thought POSIXness used sed extensively; does busybox sed give all you
need?

> c2b/ Split busybox in two pieces (but ***both***
> dynamically linked) between initrd.lrp and root.lrp

This means you need libc.so during boot (500k+) and also means that
"busybox --install" will conflict.  You also need to track to binaries,
maintain two versions (such as when you upgrade busybox) and takes away
a lot of nice otherwise "extra" commands that might be nice during boot.

One day, I took stock of what Oxygen does during the boot process -
before init is even loaded.  It's pretty amazing... and a little scary
:)  busybox makes it possible...

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



Re: [Leaf-devel] Linux 2.4.16 and LEAF

2001-12-05 Thread Jacques NIlo

 > If I understand right, the steps are:
> >
> > 1. Create and compile a kernel of your choice.
> > 2. Create a Minix file system and populate it with
the contents of
> > root.lrp
> > 3. Compress the Minix filesystem with gzip and put on
disk as initrd.gz
> > 4. Modify linuxrc to run /sbin/init at the end
>
> I don't think this is the best way to solve this.
IMHO, it's better to have
> the kernel boot with root=[!ram0], which will get
linuxrc running.  Linuxrc
> should then set the real root device to /dev/ram (or
your tmpfs or ramfs
> device) by writing to /proc/sys/kernel/real-root-dev
(see initrd.txt in the
> kernel Documentation directory).
>
> Everything else looks OK.  I'd only point out that if
the initial ramdisk
> becomes  more of a bootloader, which is what I'd like
to see, and I think
> the direction Jaques is heading, root.lrp is just
another package (although
> likely the first to get loaded), and the initial
ramdisk would be something
> like boot.img, and should not have to change unless you
need to change boot
> methods (ie add new hardware support for a HDD, CD, or
similar).
>
Hello everyone.
Let's try to summarize what I have been trying to do so
far:

1/ Why a 2.4.14 kernel ?

Pros:
Keep-up with the current kernel development tree.
Netfilter
New and latest drivers
Access to the latest FS (TMPS and journaling facilities)
Possibility to have access to a virtual development
environment (see previous post)

Cons:
Size (for a floppy-based version which I think we all
want to keep)
Maturity/Stability

The balance in my opinion is clearly in favor of the pros.

2/ Consequence

To include the latest 2.4 kernels was implying to get rid
of the "historical" LRP patches (or to rewrite them which
was clearly too much of a work for me). As mentionned in
earlier posts they do not pass the changes in initrd that
where introduced in 2.4.10. I also think (personal
opinion) that the more we stick to an original, unpatched
kernel, the better and whatever can be done in userland
should be done in userland. Also note that this lead to a
reduction of 3K of the compressed kernel size :-)

3/ Strategy followed

The idea was to keep the general LRP package architecture
with a dynamic creation of the filesystem and the general
backup facility for every package.

My proposal - and what I have implemented in my last
experimental LEAF 2.4.16 image (the b1 version)- is the
following:

a/ Whatever is provided after the initrd= variable will
contain the smallest possible filesystem. The smallest I
found consists of a 1,2M (uncompressed... ) minix FS
populated with busybox, sed, ash, libc.so.6, linux-ld
a /dev/console and linuxrc.
This compressed fs is loaded in /dev/ram0 then is moved
to tmpfs on which every other packages are loaded after a
pivot_root  instruction. Once the boot process is
completed (end of linuxrc), the initrd fs is unmounted
and /dev/ram0 released.

b/ This file (called initrd.lrp in my latest version) can
be backuped like any other package. This can be done by a
15 lines shell script (lrcfg.back.initrd) called by
lrcfg.back.script.

c/ There are basically 3 options which could be followed:

c1 - We apply that technique to the root.lrp file itself
as it is now in Dachstein. The problem with this is that
it is a bit memory expensive: at the end of linuxrc you
have all your dachstein distro uncompressed in tmpfs plus
root.lrp uncompressed in /initrd. Only at the end of
linuxrc (in fact in the first lines of /etc/init.d/rcS
which is executed nest) are /initrd unmounted
and /dev/ram0 released.

c2 - We apply a "split technique". This is the route I
followed. Original root.lrp is splitted in two pieces:
the bootstrap part (initrd.lrp) and what is left in
root.lrp.

c3 - We look for the smallest possible initrd.lrp. That
would imply the following route: initrd.lrp would only
consist of a statically build version of busybox (against
uClibc) containing only the applets necessary
for /linuxrc to be executed (ash, sed, mkdir, ...). No
more libc in this scheme and the non necessary applets of
busybox would be provided in root.lrp dynamically linked
to libc.so.  This is basically the route followed by
Oxygen. I have not tested that but I think that what will
be gained in memory will be lost in the combined size of
root.lrp and initrd.lrp since you will have both
statiscally build applets and libc.so.


That is why I think that the approach I suggested is a
good compromise. I think this approach can be refined
further in testing the following ideas:
c2a/ Use busybox ash and sed in initrd.lrp
c2b/ Split busybox in two pieces (but ***both***
dynamically linked) between initrd.lrp and root.rlp

I was myself surprised by the fact that these ideas where
not difficult to implement at all in dachstein. It
basically implies:
1/ Modification of /var/lib/lrpkg/root.linuxrc
(i.e. /linurxrc)
2/ Modification of /usr/sbin/lrcfg.back.script
3/ creation of a small /usr/sbin/lrcfg.back.initrd script
4/ Two lines added in /etc/ini

Re: [Leaf-devel] Linux 2.4.16 and LEAF

2001-12-05 Thread Charles Steinkuehler

> If I understand right, the steps are:
>
> 1. Create and compile a kernel of your choice.
> 2. Create a Minix file system and populate it with the contents of
> root.lrp
> 3. Compress the Minix filesystem with gzip and put on disk as initrd.gz
> 4. Modify linuxrc to run /sbin/init at the end

I don't think this is the best way to solve this.  IMHO, it's better to have
the kernel boot with root=[!ram0], which will get linuxrc running.  Linuxrc
should then set the real root device to /dev/ram (or your tmpfs or ramfs
device) by writing to /proc/sys/kernel/real-root-dev (see initrd.txt in the
kernel Documentation directory).

Everything else looks OK.  I'd only point out that if the initial ramdisk
becomes  more of a bootloader, which is what I'd like to see, and I think
the direction Jaques is heading, root.lrp is just another package (although
likely the first to get loaded), and the initial ramdisk would be something
like boot.img, and should not have to change unless you need to change boot
methods (ie add new hardware support for a HDD, CD, or similar).

Charles Steinkuehler
http://lrp.steinkuehler.net
http://c0wz.steinkuehler.net (lrp.c0wz.com mirror)



___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel



[Leaf-devel] Linux 2.4.16 and LEAF

2001-12-04 Thread David Douthitt

I was going through past mailing list messages (I have 1301 on hand :)
and was trying to find out what had been going on with patching 2.4 for
LEAF.

I remembered that the LRP patches were made obsolete, both by massive
changes to the kernel initrd code and by the future removal of initrd,
as well as by the combined patch that Charles and Dave C. have
available.  Then there is Jacques' work in making the LEAF patches
obsolete permanently.

If I read his docs right, this is *MUCH* simpler than I thought. 
Remember that the Oxygen root.lrp is basically stripped as far as I can
get it already - for example, it doesn't have inetd, cron, sed, libc,
and other things...  I don't think it even has init...

If I understand right, the steps are:

1. Create and compile a kernel of your choice.
2. Create a Minix file system and populate it with the contents of
root.lrp
3. Compress the Minix filesystem with gzip and put on disk as initrd.gz
4. Modify linuxrc to run /sbin/init at the end
5. Modify syslinux.cfg with new kernel parameters: initrd=initrd.gz
init=/linuxrc

Is this right?  Then to update the initrd.gz could be like thus:

1. Create root.lrp
2. Create secondary Minix filesystem
3. Unarchive root.lrp in new filesystem
4. Compress new filesystem with gzip
5. Put initrd.gz on disk
6. Unmount and destroy ramdisk used to create image

...this requires a lot of memory (to create another file system).  It
has the benefit of not requiring changes to the package managers, since
they will create root.lrp just like always.

Anyway, updating root.lrp really should only be done by us developers
anyway - since packages would be the way to go otherwise.

Being able to use no patches would remove the dependence on patches that
don't exist, allow upgrading 2.4 based systems to 2.4.16 - most I've
seen are 2.4.5! - and would allow LEAF to work when initrd is removed
entirely...

Sounds better and better all the time.

___
Leaf-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/leaf-devel