Can I run linux without a file system?

2002-06-22 Thread Wolfgang Denk

In message 3.0.3.32.20020621143133.006d37a8 at hollabaugh.com you wrote:

 I can say that a minimum RedHat install uses 29,296 files ? 382.020MB, debian 
 10,734 files - 67.428MB, my minimal root filesystem 82 files and 4.8MB.

You cannot really call this a minimal root filesystem.

A small (not even this is minimal, nor optimized) image can be found at
ftp://ftp.denx.de/pub/LinuxPPC/usr/src/mini-2048kB-ramdisk.image.gz

This has:
- find .
.
./lost+found
./bin
./bin/sh
./bin/ls
./dev
./dev/ttyS0
./dev/tty
./dev/console
./lib
./lib/ld.so.1
./lib/libc-1.99.so
./lib/libc.so.6
./lib/libtermcap.so.2.0.8
./lib/libtermcap.so.2
- du -sk .
1367.

Obvious optimizations: rmdir lost+found, use busybox instead of  bash
+ ls, ...


Wolfgang Denk

--
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
Were there fewer fools, knaves would starve.  - Anonymous

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





Can I run linux without a file system?

2002-06-22 Thread Wolfgang Denk

In message 45B36A38D959B44CB032DA427A6E10640167CFE3 at 
cceexc18.americas.cpqcorp.net you wrote:

 Hmm, my minimal rootfs is (so far) 7 Mb, (as reported by du -s).
 Or, is this 4Mb you cite compressed?  I wonder because my
 libc.so is over 5 Mb. (which I got from DENX eldk-1.0)

Have a look at the SELF Makefile... you should run

$(CROSS_PREFIX)strip --remove-section=.note --remove-section=.comment *.so

on all libraries on the trarget filesystem.

 Any hints or links to into on crunching down the
 individual libraries would be helpful.

And for really limited cases there is ulibc, the  library  optimizer,
etc.

Wolfgang Denk

--
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
Ill-chosen abstraction is particularly evident in the design  of  the
ADA  runtime  system.  The  interface to the ADA runtime system is so
opaque that it is impossible to model  or  predict  its  performance,
making it effectively useless for real-time systems.
- Marc D.  Donner and David H. Jameson.

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





Can I run linux without a file system?

2002-06-21 Thread Tim Lai

I am porting linux on a custom board.
I am using the bootrom to load vmlinux onto
RAM, and I am in the middle of getting the console/
serial driver to work.
All the documents I read have refer the console as
/dev/ttyS, and state that to communicate to the
console, I have to set it up with open(/dev/ttyS).

Does that means I have to have some sort of file
system in linux?

Thanks.


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





Can I run Linux without a file system?

2002-06-21 Thread Hihn Jason

There are people here who can help you more than I, but I'll take a gander.
This is what I believe to be correct:
Yes. You will always have SOME kind of filesystem. But this begs another
question. How much do you know about Linux, and what are you really asking?
The /proc filesystem is not really on any disk, just like /dev (I think)
isn't on any disk, though they look like to us users that they are
filesystems.

If you want to run a program, where will it come from? There are filesystems
made for RAM, like cramfs or ramdisks, or flash filesystems complete with
wear-leveling. Maybe you can just jump to an offset and start executing code
if all you have is just a kernel and a program. If that is the case then
maybe you'll have to call your program 'init' or change the source of the
kernel to invoke your program.

Does this help?

I reserve the right to be wrong.


-Original Message-
From: Tim Lai [mailto:[EMAIL PROTECTED]
Sent: Friday, June 21, 2002 11:09 AM
To: linuxppc-embedded at lists.linuxppc.org
Subject: Can I run linux without a file system?



I am porting linux on a custom board.
I am using the bootrom to load vmlinux onto
RAM, and I am in the middle of getting the console/
serial driver to work.
All the documents I read have refer the console as
/dev/ttyS, and state that to communicate to the
console, I have to set it up with open(/dev/ttyS).

Does that means I have to have some sort of file
system in linux?

Thanks.


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





Can I run Linux without a file system?

2002-06-21 Thread Tim Lai

Thanks, Jason.
I am new to linux kernel. I'll have the main
application run from init(), so I wasn't planning
to have a file system.

 Yes. You will always have SOME kind of filesystem.
 But this begs another
 question. How much do you know about Linux, and what
 are you really asking?

If /proc and /dev is not really on any disk, what do
I have to do to init or create /dev? Do I need ramdisk
as a minumum requirement for linux?
My main goal right now is to get the serial port
to work, so I can do some debugging with the dumb
terminal. After I do tty_register() in the serial
driver, does linux assign /dev/ttyS to this device?

 The /proc filesystem is not really on any disk, just
 like /dev (I think)
 isn't on any disk, though they look like to us users
 that they are
 filesystems.


Can you give me pointers on which file to read?


 Does this help?


Yes. Thank you very much. :)


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





Can I run linux without a file system?

2002-06-21 Thread Tim Lai

I am interested in both input/output operation
on the console. If I just set CONFIG_SERIAL_CONSOLE,
will I be able read input from the console?
The main application will be started from init(),
and the application will need to read and write
to the console. Are there are method to communicate
to the serial port other than open(/dev/ttyS0)?



 You don't need a filesystem to get output on the
 serial console
 you just need to enable the console with
 CONFIG_SERIAL_CONSOLE=y
 in your kernel configuration (atleast for mpc860
 that all)
 but you will have a hard time producing much more
 than a blinking
 cursor if you boot a Linux kernel and have no
 application that
 it then can run on the root-filesystem - what would
 be the point
 of such a setup - 1MB kernel code for a blinking
 cursor on a
 serial port seems expensive.

 hofrat


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





Can I run Linux without a file system?

2002-06-21 Thread Ricardo Scop

Tim,

Maybe initrd and linuxrc is enough for your system. Read the file
initrd.txt in the Linux source tree Documentation sub-directory.

[]'s, Scopmailto:scop at vanet.com.br

--
It might look like I'm doing nothing, but at the cellular level I'm
really quite busy.

Friday, June 21, 2002, 4:35:17 PM, you wrote:


TL Thanks, Jason.
TL I am new to linux kernel. I'll have the main
TL application run from init(), so I wasn't planning
TL to have a file system.

 Yes. You will always have SOME kind of filesystem.
 But this begs another
 question. How much do you know about Linux, and what
 are you really asking?

TL If /proc and /dev is not really on any disk, what do
TL I have to do to init or create /dev? Do I need ramdisk
TL as a minumum requirement for linux?
TL My main goal right now is to get the serial port
TL to work, so I can do some debugging with the dumb
TL terminal. After I do tty_register() in the serial
TL driver, does linux assign /dev/ttyS to this device?

 The /proc filesystem is not really on any disk, just
 like /dev (I think)
 isn't on any disk, though they look like to us users
 that they are
 filesystems.


TL Can you give me pointers on which file to read?


 Does this help?


TL Yes. Thank you very much. :)

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





Can I run Linux without a file system?

2002-06-21 Thread Dan Malek

Tim Lai wrote:

 I am new to linux kernel. I'll have the main
 application run from init(), so I wasn't planning
 to have a file system.

So, why are you trying to use Linux?  If you don't start
up applications outside of the kernel, there aren't very
many features that make it attractive or useful.


-- Dan


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





Can I run linux without a file system?

2002-06-21 Thread Wolfgang Denk

In message 20020621150853.2021.qmail at web21104.mail.yahoo.com you wrote:

 Does that means I have to have some sort of file
 system in linux?

Yes. Things like root directory, working directory, device files, ...
are essential concepts of Unix; you  cannot  get  rid  of  them  that
easily - nor is there any reason to do so.

One day you will probably want to run some application -  where  will
you put it?

Wolfgang Denk

--
Software Engineering:  Embedded and Realtime Systems,  Embedded Linux
Phone: (+49)-8142-4596-87  Fax: (+49)-8142-4596-88  Email: wd at denx.de
Language shapes the way we think, and determines what we  can  think
about. - B. L. Whorf

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





Can I run linux without a file system?

2002-06-21 Thread Ricardo Scop

Tim,

See bellow...

[]'s, Scopmailto:scop at vanet.com.br

--
It might look like I'm doing nothing, but at the cellular level I'm
really quite busy.

Friday, June 21, 2002, 4:42:34 PM, you wrote:


TL I am interested in both input/output operation
TL on the console. If I just set CONFIG_SERIAL_CONSOLE,
TL will I be able read input from the console?
TL The main application will be started from init(),
TL and the application will need to read and write
TL to the console. Are there are method to communicate
TL to the serial port other than open(/dev/ttyS0)?
Not AFAIK. The VFS (Virtual File System) is at the very heart of Linux
and _is_ the abstraction used to deal with I/O devices. You don't need
to try avoiding it. A simple initrd will do the job and can be as
light as you make it.


 You don't need a filesystem to get output on the
 serial console
 you just need to enable the console with
 CONFIG_SERIAL_CONSOLE=y
 in your kernel configuration (atleast for mpc860
 that all)
 but you will have a hard time producing much more
 than a blinking
 cursor if you boot a Linux kernel and have no
 application that
 it then can run on the root-filesystem - what would
 be the point
 of such a setup - 1MB kernel code for a blinking
 cursor on a
 serial port seems expensive.
you get the network protocol stacks, too...

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





Can I run linux without a file system?

2002-06-21 Thread Jerry Van Baren

You need at least a RAM file system for / and a bunch of subdirectories
such as /dev, /lib, etc.  The common way to do this on a minimalistic
system is to create a file system image in ROM (often compressed) and copy
it to RAM on start up.  Given the questions you are asking, I am very
confident creating a minimal RAM disk image will challenge you sufficiently
:-).  I'm not being snide, lots of people with lots of linux knowledge have
tried and failed.  Most people use someone else's pre-configured minimal
file systems and add/subtract (mostly add :-) programs to it.  This is
because it is very, very hard to create a minimal file system (that works,
that is).

Pointers to development systems with example RAM disk images:
   http://www.denx.de/solutions-en.html
 ftp://ftp.denx.de/pub/LinuxPPC/usr/src/SELF/
   http://www.mvista.com/
   (there are others, I'm just too lazy to do the google search for you)

Trying to run linux without a file system of any sort would require you to
rewrite of pretty much everything and the three or four things you didn't
rewrite, you would have to rebuild (static link, no shared
libraries).  There are a lot of software engineers and hackers that would
turn down the opportunity to do this at any price.  On the other hand, a
lot of naivety and a even more coffee sometimes generates remarkable
results :-).

You really want to look at eCOS or one of the other light weight tasking OSs.
   http://www.redhat.com/embedded/technologies/ecos/

gvb


At 12:42 PM 6/21/2002 -0700, Tim Lai wrote:

I am interested in both input/output operation
on the console. If I just set CONFIG_SERIAL_CONSOLE,
will I be able read input from the console?
The main application will be started from init(),
and the application will need to read and write
to the console. Are there are method to communicate
to the serial port other than open(/dev/ttyS0)?


 
  You don't need a filesystem to get output on the
  serial console
  you just need to enable the console with
  CONFIG_SERIAL_CONSOLE=y
  in your kernel configuration (atleast for mpc860
  that all)
  but you will have a hard time producing much more
  than a blinking
  cursor if you boot a Linux kernel and have no
  application that
  it then can run on the root-filesystem - what would
  be the point
  of such a setup - 1MB kernel code for a blinking
  cursor on a
  serial port seems expensive.
 
  hofrat




** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





Can I run Linux without a file system?

2002-06-21 Thread Tim Lai

Well, there is memory protection for now.
And when new hardware arrives, we'll have
file system.

--- Dan Malek dan at embeddededge.com wrote:

 Tim Lai wrote:

  I am new to linux kernel. I'll have the main
  application run from init(), so I wasn't planning
  to have a file system.

 So, why are you trying to use Linux?  If you don't
 start
 up applications outside of the kernel, there aren't
 very
 many features that make it attractive or useful.


   -- Dan





** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





Can I run linux without a file system?

2002-06-21 Thread Dr. Craig Hollabaugh

At 04:12 PM 6/21/2002 -0400, Jerry Van Baren wrote:

You need at least a RAM file system for / and a bunch of subdirectories
such as /dev, /lib, etc.  The common way to do this on a minimalistic
system is to create a file system image in ROM (often compressed) and copy
it to RAM on start up.  Given the questions you are asking, I am very
confident creating a minimal RAM disk image will challenge you sufficiently
:-).  I'm not being snide, lots of people with lots of linux knowledge have
tried and failed.  Most people use someone else's pre-configured minimal
file systems and add/subtract (mostly add :-) programs to it.  This is
because it is very, very hard to create a minimal file system (that works,
that is).

I disagree. Creating a minimal root filesystem is easy once you understand what
happens when init executes. (Shameless plug here) In my Embedded Linux book, I 
show
you exactly the files needed to get bash running with a network connection. You 
use ldd to find out lib dependencies. Then copy binaries you want with their 
libs and some config files and your done. Here's my script to build such a root 
filesystem 
(http://www.embeddedlinuxinterfacing.com/chapters/04/buildrootfilesystem/buildrootfilesystem).
 Look it over, it probably won't make much sense without reading chapter 4.

I can say that a minimum RedHat install uses 29,296 files ? 382.020MB, debian 
10,734 files - 67.428MB, my minimal root filesystem 82 files and 4.8MB.


Here's a listing of tftproot directory

root at tbdev1[513]: cd /tftpboot/powerpc-rootfs/
root at tbdev1[514]: du -s
4824.
root at tbdev1[515]: find .
.
./dev
./dev/tty
./dev/tty0
./dev/ttyS0
./dev/console
./dev/null
./dev/ram
./dev/initctl
./dev/mem
./dev/pts
./dev/ptyp0
./dev/ttyp0
./etc
./etc/init.d
./etc/init.d/rcS
./etc/init.d/umountfs
./etc/protocols
./etc/services
./etc/fstab
./etc/inittab
./etc/resolv.conf
./etc/mtab
./bin
./bin/bash
./bin/cat
./bin/ls
./bin/mount
./bin/umount
./bin/ps
./bin/df
./bin/kill
./bin/ping
./bin/chmod
./bin/touch
./bin/rm
./bin/echo
./bin/sh
./sbin
./sbin/init
./sbin/ifconfig
./sbin/route
./sbin/depmod
./sbin/insmod
./sbin/lsmod
./sbin/rmmod
./lib
./lib/ld-2.2.3.so
./lib/ld.so.1
./lib/libc-2.2.3.so
./lib/libc.so.6
./lib/libutil-2.2.3.so
./lib/libutil.so.1
./lib/libncurses.so.5
./lib/libncurses.so.5.2
./lib/libdl-2.2.3.so
./lib/libdl.so.2
./lib/libnss_dns-2.2.3.so
./lib/libnss_dns.so.2
./lib/libnss_files-2.2.3.so
./lib/libnss_files.so.2
./lib/libresolv-2.2.3.so
./lib/libresolv.so.2
./lib/libproc.so.2.0.7
./lib/librt-2.2.3.so
./lib/librt.so.1
./lib/libpthread-0.9.so
./lib/libpthread.so.0
./lib/libm-2.2.3.so
./lib/libm.so.6
./lib/libstdc++-3-libc6.1-2-2.10.0.so
./lib/libstdc++-libc6.1-2.so.3
./usr
./usr/bin
./usr/bin/telnet
./usr/bin/gdbserver
./usr/lib
./proc
./tmp


root at tbdev1[516]: find . | wc
 82  821212


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





Can I run linux without a file system?

2002-06-21 Thread Kerl, John

It's not *that* bad, is it? ;)

I have to admit I stumbled around for a while before
I got it right, but I do have a shell script for making
a RAM disk image, and I use it all the time.  Is anyone
interested in a copy?

-Original Message-
From: Jerry Van Baren [mailto:[EMAIL PROTECTED]
Sent: Friday, June 21, 2002 1:12 PM
To: linuxppc-embedded at lists.linuxppc.org
Subject: Re: Can I run linux without a file system?



You need at least a RAM file system for / and a bunch of subdirectories
such as /dev, /lib, etc.  The common way to do this on a minimalistic
system is to create a file system image in ROM (often compressed) and copy
it to RAM on start up.  Given the questions you are asking, I am very
confident creating a minimal RAM disk image will challenge you sufficiently
:-).  I'm not being snide, lots of people with lots of linux knowledge have
tried and failed.  Most people use someone else's pre-configured minimal
file systems and add/subtract (mostly add :-) programs to it.  This is
because it is very, very hard to create a minimal file system (that works,
that is).

Pointers to development systems with example RAM disk images:
   http://www.denx.de/solutions-en.html
 ftp://ftp.denx.de/pub/LinuxPPC/usr/src/SELF/
   http://www.mvista.com/
   (there are others, I'm just too lazy to do the google search for you)

Trying to run linux without a file system of any sort would require you to
rewrite of pretty much everything and the three or four things you didn't
rewrite, you would have to rebuild (static link, no shared
libraries).  There are a lot of software engineers and hackers that would
turn down the opportunity to do this at any price.  On the other hand, a
lot of naivety and a even more coffee sometimes generates remarkable
results :-).

You really want to look at eCOS or one of the other light weight tasking
OSs.
   http://www.redhat.com/embedded/technologies/ecos/

gvb


At 12:42 PM 6/21/2002 -0700, Tim Lai wrote:

I am interested in both input/output operation
on the console. If I just set CONFIG_SERIAL_CONSOLE,
will I be able read input from the console?
The main application will be started from init(),
and the application will need to read and write
to the console. Are there are method to communicate
to the serial port other than open(/dev/ttyS0)?


 
  You don't need a filesystem to get output on the
  serial console
  you just need to enable the console with
  CONFIG_SERIAL_CONSOLE=y
  in your kernel configuration (atleast for mpc860
  that all)
  but you will have a hard time producing much more
  than a blinking
  cursor if you boot a Linux kernel and have no
  application that
  it then can run on the root-filesystem - what would
  be the point
  of such a setup - 1MB kernel code for a blinking
  cursor on a
  serial port seems expensive.
 
  hofrat




** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





Can I run linux without a file system?

2002-06-21 Thread Tim Lai


 I can say that a minimum RedHat install uses 29,296
 files ? 382.020MB, debian 10,734 files - 67.428MB,
 my minimal root filesystem 82 files and 4.8MB.



Do I need to install all these files in the file
system? Can I have /, with no file in it?


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





Can I run linux without a file system?

2002-06-21 Thread John W. Linville

Tim Lai wrote:

 Do I need to install all these files in the file
 system? Can I have /, with no file in it?

Respectfully, I think perhaps you should call WindRiver or some other
traditional RTOS vendor.

If you insist on using Linux, I highly recommend you go to Amazon and
order Craig's book Embedded Linux.  Make sure you get the one by Craig
Hollabaugh, as there is another book by the same title that is, well,
less useful...

Good luck.

John
--
John W. Linville
LVL7 Systems, Inc.

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





Can I run linux without a file system?

2002-06-21 Thread Dr. Craig Hollabaugh

At 01:49 PM 6/21/2002 -0700, Tim Lai wrote:


 I can say that a minimum RedHat install uses 29,296
 files ? 382.020MB, debian 10,734 files - 67.428MB,
 my minimal root filesystem 82 files and 4.8MB.



Do I need to install all these files in the file
system? Can I have /, with no file in it?


What do you want to do? Do you want a shell, run a program, load a device 
driver? What is it exactly?

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





Can I run linux without a file system?

2002-06-21 Thread Jerry Van Baren

OK, you and John Kerl caught me fear-mongering :-).  Thank you for the link
and shameless plug, it looks very, very useful.  4.8MB is very respectable
but not what most people think about when they say minimal file
system.  Tim wants less than 1MByte, care to take up THAT challenge
:-)?  That would require shrinking the libraries to just the necessary
functions, which is a big jump in difficulty.

gvb


At 02:31 PM 6/21/2002 -0600, Dr. Craig Hollabaugh wrote:
At 04:12 PM 6/21/2002 -0400, Jerry Van Baren wrote:
 
 You need at least a RAM file system for / and a bunch of subdirectories
 such as /dev, /lib, etc.  The common way to do this on a minimalistic
 system is to create a file system image in ROM (often compressed) and copy
 it to RAM on start up.  Given the questions you are asking, I am very
 confident creating a minimal RAM disk image will challenge you sufficiently
 :-).  I'm not being snide, lots of people with lots of linux knowledge have
 tried and failed.  Most people use someone else's pre-configured minimal
 file systems and add/subtract (mostly add :-) programs to it.  This is
 because it is very, very hard to create a minimal file system (that works,
 that is).

I disagree. Creating a minimal root filesystem is easy once you understand
what
happens when init executes. (Shameless plug here) In my Embedded Linux
book, I show
you exactly the files needed to get bash running with a network
connection. You use ldd to find out lib dependencies. Then copy binaries
you want with their libs and some config files and your done. Here's my
script to build such a root filesystem
(http://www.embeddedlinuxinterfacing.com/chapters/04/buildrootfilesystem/buildrootfilesystem).
Look it over, it probably won't make much sense without reading chapter 4.

I can say that a minimum RedHat install uses 29,296 files ? 382.020MB,
debian 10,734 files - 67.428MB, my minimal root filesystem 82 files and 4.8MB.

[snip]


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





Can I run linux without a file system?

2002-06-21 Thread Cameron, Steve

Dr. Craig Hollabaugh wrote:

 I can say that a minimum RedHat install uses 29,296 files -
 382.020MB, debian 10,734 files - 67.428MB, my minimal root
 filesystem 82 files and 4.8MB.


Hmm, my minimal rootfs is (so far) 7 Mb, (as reported by du -s).
Or, is this 4Mb you cite compressed?  I wonder because my
libc.so is over 5 Mb. (which I got from DENX eldk-1.0)

Instead of ldd, I used objdump -x $library | grep NEEDED
which has the advantage that you can (er, that I know how to :-)
run it in a cross environment, so I don't have to fire up the
powerpc just to run ldd on a bunch of binaries.  (maybe
there's a way to cross run ldd? ) Using that, I wrote a script
(just today, as a matter of fact) to scan all the executables
and their libraries (and links to libs) iteratively until it
produced a minimal set, then deletes whatever isn't on the list,
which got me down to 7Mb with busybox and tinylogin as my only
apps.  (It occurs to me now that apps using dlopen() could be
a problem, but those are relatively rare.)

Any hints or links to into on crunching down the
individual libraries would be helpful.

BTW, nice book.

-- steve


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





Can I run linux without a file system?

2002-06-21 Thread Kerl, John
.


#! /bin/sh
# mkdevs
# John Kerl
# john.kerl at avnet.com
# Avnet Design Services
# 2002-04-22

# 
usage() {
echo Usage: $0 {directory name} {num ttys} 12
exit 1
}

# 
if [ $# -ne 1 ]; then
usage
fi
if [ ! -d $1 ]; then
echo $0:  $1 is not a directory. 12
exit 1
fi

devdir=$1

# Maximum number of simultaneous telnet sessions:
num_ttys=32

# 
mknod $devdir/console c  5  1

mknod $devdir/tty c  5  0
mknod $devdir/ttyS0   c  4 64

i=0
while [ $i -lt $num_ttys ]
do
mknod $devdir/ptyp$i   c  2 $i
mknod $devdir/ttyp$i   c  3 $i
i=`expr $i + 1`
done

mknod $devdir/led0c 42  0
mknod $devdir/led1c 42  1
mknod $devdir/led2c 42  2
mknod $devdir/led3c 42  3
mknod $devdir/led4c 42  4
mknod $devdir/led5c 42  5
mknod $devdir/led6c 42  6
mknod $devdir/led7c 42  7

mknod $devdir/mem c  1  1
mknod $devdir/nullc  1  3
mknod $devdir/zeroc  1  5

mknod $devdir/ram0b  1  0
mknod $devdir/ram1b  1  1
ln -s $devdir/ram1 $devdir/ram


-Original Message-
From: Kerl, John
Sent: Friday, June 21, 2002 1:42 PM
To: 'Jerry Van Baren'; linuxppc-embedded at lists.linuxppc.org
Subject: RE: Can I run linux without a file system?


It's not *that* bad, is it? ;)

I have to admit I stumbled around for a while before
I got it right, but I do have a shell script for making
a RAM disk image, and I use it all the time.  Is anyone
interested in a copy?

-Original Message-
From: Jerry Van Baren [mailto:[EMAIL PROTECTED]
Sent: Friday, June 21, 2002 1:12 PM
To: linuxppc-embedded at lists.linuxppc.org
Subject: Re: Can I run linux without a file system?



You need at least a RAM file system for / and a bunch of subdirectories
such as /dev, /lib, etc.  The common way to do this on a minimalistic
system is to create a file system image in ROM (often compressed) and copy
it to RAM on start up.  Given the questions you are asking, I am very
confident creating a minimal RAM disk image will challenge you sufficiently
:-).  I'm not being snide, lots of people with lots of linux knowledge have
tried and failed.  Most people use someone else's pre-configured minimal
file systems and add/subtract (mostly add :-) programs to it.  This is
because it is very, very hard to create a minimal file system (that works,
that is).

Pointers to development systems with example RAM disk images:
   http://www.denx.de/solutions-en.html
 ftp://ftp.denx.de/pub/LinuxPPC/usr/src/SELF/
   http://www.mvista.com/
   (there are others, I'm just too lazy to do the google search for you)

Trying to run linux without a file system of any sort would require you to
rewrite of pretty much everything and the three or four things you didn't
rewrite, you would have to rebuild (static link, no shared
libraries).  There are a lot of software engineers and hackers that would
turn down the opportunity to do this at any price.  On the other hand, a
lot of naivety and a even more coffee sometimes generates remarkable
results :-).

You really want to look at eCOS or one of the other light weight tasking
OSs.
   http://www.redhat.com/embedded/technologies/ecos/

gvb


At 12:42 PM 6/21/2002 -0700, Tim Lai wrote:

I am interested in both input/output operation
on the console. If I just set CONFIG_SERIAL_CONSOLE,
will I be able read input from the console?
The main application will be started from init(),
and the application will need to read and write
to the console. Are there are method to communicate
to the serial port other than open(/dev/ttyS0)?


 
  You don't need a filesystem to get output on the
  serial console
  you just need to enable the console with
  CONFIG_SERIAL_CONSOLE=y
  in your kernel configuration (atleast for mpc860
  that all)
  but you will have a hard time producing much more
  than a blinking
  cursor if you boot a Linux kernel and have no
  application that
  it then can run on the root-filesystem - what would
  be the point
  of such a setup - 1MB kernel code for a blinking
  cursor on a
  serial port seems expensive.
 
  hofrat




** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





Can I run linux without a file system?

2002-06-21 Thread Roland Dreier

 John == John Kerl Kerl writes:

John * I could bulk-copy (cp -R) from $xroot to the filesystem
John image, *but* you can't cp around the files in /dev.  The
John script below is hackish in that I list out all the
John subdirectories in $xroot except /dev and copy them, then
John populate /dev using the mkdevs script (included after
John mkramdisk).  (It would be more elegant to use find with grep
John -v /dev.)

cp -a works like cp -R except it will copy /dev and symlinks properly.

Best,
  Roland

** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





Can I run linux without a file system?

2002-06-21 Thread Cameron, Steve

Wolfgang Denk wrote:
 In message
 45B36A38D959B44CB032DA427A6E10640167CFE3 at cceexc18.americas.cpqcorp.net 
 you wrote:
 
  Hmm, my minimal rootfs is (so far) 7 Mb,
[...]
 Have a look at the SELF Makefile... you should run

 $(CROSS_PREFIX)strip --remove-section=.note --remove-section=.comment *.so

Whoa! That is better.  ~2.8 Mb now, as reported by du. Thanks!

-- steve


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





Can I run linux without a file system?

2002-06-21 Thread Conn Clark

Cameron, Steve wrote:

 Dr. Craig Hollabaugh wrote:
 
  I can say that a minimum RedHat install uses 29,296 files -
  382.020MB, debian 10,734 files - 67.428MB, my minimal root
  filesystem 82 files and 4.8MB.
 

 Hmm, my minimal rootfs is (so far) 7 Mb, (as reported by du -s).
 Or, is this 4Mb you cite compressed?  I wonder because my
 libc.so is over 5 Mb. (which I got from DENX eldk-1.0)


Did you use ppc-8xx-strip on it? It gets rid of all that nasty
debugging bloat. Our libc is 1275512 bytes after stripping. Our
uncompressed ramdisk is 4879K. If you are realy hurting try rebuilding
everything using the -Os -mstring -mmultiple optimizations.


As for the original question Can I run linux without a file system?,
If you don't need a file system, mabey the question should be do you
realy need linux. It may just be easier to make an executable to sit
on something like PPCBoot. (just a thought)

good luck.

Conn
--

*
  If you live at home long enough, your parents will move out.
 (Warning they may try to sell their house out from under you.)
*

Conn Clark
Engineering Stooge  clark at esteem.com
Electronic Systems Technology Inc.  www.esteem.com


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





Can I run linux without a file system?

2002-06-21 Thread Tim Lai

 
 Do I need to install all these files in the file
 system? Can I have /, with no file in it?


 What do you want to do? Do you want a shell, run a
 program, load a device driver? What is it exactly?


I 'll run my application which is build in the kernel.

No shell in the beginning. But I will need the shell
later when more NVRAM is available. With the hardware
that I have in the future, I can build my application
seperately and store it in the file system. The
application do some network processing, I'll not
have any display other then the console and maybe
telnet session.

Where or how do I get these lib for ppc?
 ./lib/ld.so.1
./lib/libc-1.99.so
./lib/libc.so.6
./lib/libtermcap.so.2.0.8
./lib/libtermcap.so.2

BTW, I just ordered the Dr.Hollabaugh's book.
Thanks for the advice.


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/





Can I run linux without a file system?

2002-06-21 Thread David Blythe

use uclibc and busybox.  it is pretty straightforward to get a root file
system smaller than 1M with lots of useful stuff, either with or without
shared libraries (shared uclibc is  300K including ld.so on my ppc
system, busybox is 200K including ash,mv,cp,ls,...).  The downside is
you have to build all of the stuff yourself, but if you want to optimize
for space, sooner or later you'll end up building it all yourself.

david


Jerry Van Baren wrote:

 OK, you and John Kerl caught me fear-mongering :-).  Thank you for the link
 and shameless plug, it looks very, very useful.  4.8MB is very respectable
 but not what most people think about when they say minimal file
 system.  Tim wants less than 1MByte, care to take up THAT challenge
 :-)?  That would require shrinking the libraries to just the necessary
 functions, which is a big jump in difficulty.

 gvb


 At 02:31 PM 6/21/2002 -0600, Dr. Craig Hollabaugh wrote:

...


** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/