Is possible Linux on flash memory?

Gregg C Levine hansolofalcon at worldnet.att.net
Sat May 8 15:35:01 CEST 2004


Hello from Gregg C Levine
It should work indeed. However, I've got a strange series of problems that might be related to my distribution's choice of versions, and I'll post the script output here in this message. However, it will be a long one.  I think some of these problems might be related to the distribution you chose, Steven, whose is it, and what's the version on it? Mine is Slackware 9.1, which came with those versions of tools.
(Script output follows.) 
That's the versions of my GCC, and binary tools.:

Script started on Sat May  8 12:59:30 2004
root at who5:/# gcc --version
gcc (GCC) 3.2.3
Copyright (C) 2002 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

root at who5:/# ld --version
GNU ld version 2.14.90.0.6 20030820
Copyright 2002 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License.  This program has absolutely no warranty.
root at who5:/# exit
Script done on Sat May  8 12:59:46 2004 

This one is from the library for the bare metal project:
Script started on Sat May  8 12:47:01 2004
root at who5:/usr/src/lobos/freebios/util/baremetal/lib# make
gcc -I ../include -I ../include/i386 -O2  -c ../../../src/lib/printk.c
gcc -I ../include -I ../include/i386 -O2    -c -o serial_subr.o serial_subr.c
gcc -I ../include -I ../include/i386 -O2    -c -o subr.o subr.c
In file included from subr.c:16:
../include/string.h:9: warning: conflicting types for built-in function `strcpy'
gcc -I ../include -I ../include/i386 -O2  -c ../../../src/lib/vsprintf.c
In file included from ../../../src/lib/vsprintf.c:18:
../include/string.h:9: warning: conflicting types for built-in function `strcpy'
gcc -I ../include -I ../include/i386 -O2  -c ../../../src/lib/memcpy.c
In file included from ../../../src/lib/memcpy.c:1:
../include/string.h:9: warning: conflicting types for built-in function `strcpy'
gcc -I ../include -I ../include/i386 -O2  -c ../../../src/lib/malloc.c
gcc -I ../include -I ../include/i386 -O2  -c ../../../src/lib/memset.c
In file included from ../../../src/lib/memset.c:1:
../include/string.h:9: warning: conflicting types for built-in function `strcpy'
gcc -I ../include -I ../include/i386 -O2  -c ../../../src/lib/compute_ip_checksum.c
gcc -I ../include -I ../include/i386 -O2    -c -o elfboot.o elfboot.c
In file included from elfboot.c:8:
../include/string.h:9: warning: conflicting types for built-in function `strcpy'
gcc -I ../include -I ../include/i386 -O2    -c -o boot.o boot.c
In file included from boot.c:4:
../include/string.h:9: warning: conflicting types for built-in function `strcpy'
gcc -I ../include -I ../include/i386 -O2  -c ../../../src/pc80/ide/ide.c
In file included from ../../../src/pc80/ide/ide.c:26:
../include/string.h:9: warning: conflicting types for built-in function `strcpy'
../../../src/pc80/ide/ide.c:27:19: delay.h: No such file or directory
../../../src/pc80/ide/ide.c:28:17: pci.h: No such file or directory
../../../src/pc80/ide/ide.c:33: conflicting types for `harddisk_info'
../include/pc80/ide.h:54: previous declaration of `harddisk_info'
../../../src/pc80/ide/ide.c: In function `not_bsy':
../../../src/pc80/ide/ide.c:59: invalid use of undefined type `struct controller'
../../../src/pc80/ide/ide.c:59: warning: passing arg 1 of `inb' makes integer from pointer without a cast
../../../src/pc80/ide/ide.c:59: `IDE_STATUS_BSY' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:59: (Each undeclared identifier is reported only once
../../../src/pc80/ide/ide.c:59: for each function it appears in.)
../../../src/pc80/ide/ide.c: In function `ide_software_reset':
../../../src/pc80/ide/ide.c:83: `IDE_CTRL_HD15' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:83: `IDE_CTRL_SRST' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:83: `IDE_CTRL_NIEN' undeclared (first use in this function)
../../../src/pc80/ide/ide.c: At top level:
../../../src/pc80/ide/ide.c:95: warning: `struct ide_pio_command' declared inside parameter list
../../../src/pc80/ide/ide.c:95: warning: its scope is only this definition or declaration, which is probably not what you want
../../../src/pc80/ide/ide.c: In function `pio_set_registers':
../../../src/pc80/ide/ide.c:97: `uint8_t' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:97: syntax error before "device"
../../../src/pc80/ide/ide.c:99: `IDE_CTRL_HD15' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:99: `IDE_CTRL_NIEN' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:102: `device' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:103: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:104: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:111: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:112: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:112: invalid use of undefined type `struct controller'
../../../src/pc80/ide/ide.c:112: warning: passing arg 2 of `outb' makes integer from pointer without a cast
../../../src/pc80/ide/ide.c:113: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:113: invalid use of undefined type `struct controller'
../../../src/pc80/ide/ide.c:113: warning: passing arg 2 of `outb' makes integer from pointer without a cast
../../../src/pc80/ide/ide.c:114: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:115: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:116: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:117: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:118: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:119: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:120: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:120: invalid use of undefined type `struct controller'
../../../src/pc80/ide/ide.c:120: warning: passing arg 2 of `outb' makes integer from pointer without a cast
../../../src/pc80/ide/ide.c: At top level:
../../../src/pc80/ide/ide.c:124: warning: `struct ide_pio_command' declared inside parameter list
../../../src/pc80/ide/ide.c: In function `pio_non_data':
../../../src/pc80/ide/ide.c:131: warning: passing arg 2 of `pio_set_registers' from incompatible pointer type
../../../src/pc80/ide/ide.c: At top level:
../../../src/pc80/ide/ide.c:140: warning: `struct ide_pio_command' declared inside parameter list
../../../src/pc80/ide/ide.c: In function `pio_data_in':
../../../src/pc80/ide/ide.c:151: warning: passing arg 2 of `pio_set_registers' from incompatible pointer type
../../../src/pc80/ide/ide.c:155: invalid use of undefined type `struct controller'
../../../src/pc80/ide/ide.c:155: warning: passing arg 1 of `inb' makes integer from pointer without a cast
../../../src/pc80/ide/ide.c:156: `IDE_STATUS_DRQ' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:159: invalid use of undefined type `struct controller'
../../../src/pc80/ide/ide.c:159: warning: passing arg 1 of `insw' makes integer from pointer without a cast
../../../src/pc80/ide/ide.c:160: invalid use of undefined type `struct controller'
../../../src/pc80/ide/ide.c:160: warning: passing arg 1 of `inb' makes integer from pointer without a cast
../../../src/pc80/ide/ide.c:161: `IDE_STATUS_ERR' undeclared (first use in this function)
../../../src/pc80/ide/ide.c: In function `ide_read_sector_chs':
../../../src/pc80/ide/ide.c:170: storage size of `cmd' isn't known
../../../src/pc80/ide/ide.c:178: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:180: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:181: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:186: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:187: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:189: `IDE_CMD_READ_SECTORS' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:190: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c: In function `ide_read_sector_lba':
../../../src/pc80/ide/ide.c:196: storage size of `cmd' isn't known
../../../src/pc80/ide/ide.c:205: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:207: `IDE_CMD_READ_SECTORS' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:208: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c: At top level:
../../../src/pc80/ide/ide.c:212: syntax error before "sector_t"
../../../src/pc80/ide/ide.c: In function `ide_read_sector_lba48':
../../../src/pc80/ide/ide.c:214: storage size of `cmd' isn't known
../../../src/pc80/ide/ide.c:218: `sector' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:224: `info' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:225: `IDE_CMD_READ_SECTORS_EXT' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:226: `buffer' undeclared (first use in this function)
../../../src/pc80/ide/ide.c: In function `ide_read_sector':
../../../src/pc80/ide/ide.c:232: invalid use of undefined type `struct harddisk_info'
../../../src/pc80/ide/ide.c:236: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:239: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:239: `ADDRESS_MODE_CHS' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:242: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:242: `ADDRESS_MODE_LBA' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:245: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:245: `ADDRESS_MODE_LBA48' undeclared (first use in this function)
../../../src/pc80/ide/ide.c: In function `init_drive':
../../../src/pc80/ide/ide.c:256: `uint16_t' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:256: `drive_info' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:257: storage size of `cmd' isn't known
../../../src/pc80/ide/ide.c:258: `DISK_BUFFER_SIZE' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:261: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:262: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:263: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:264: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:265: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:266: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:267: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:268: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:269: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:270: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:272: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:275: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:283: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:286: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:291: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:294: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:299: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:302: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:303: `IDE_CMD_IDENTIFY_DEVICE' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:313: syntax error before ')' token
../../../src/pc80/ide/ide.c:318: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:319: `IDE_FEATURE_STANDBY_SPINUP_DRIVE' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:330: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:346: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:347: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:349: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:350: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:354: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:354: `ADDRESS_MODE_LBA' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:355: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:360: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:360: `ADDRESS_MODE_LBA48' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:361: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:362: `sector_t' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:362: syntax error before "drive_info"
../../../src/pc80/ide/ide.c:363: syntax error before "drive_info"
../../../src/pc80/ide/ide.c:364: syntax error before "drive_info"
../../../src/pc80/ide/ide.c:365: syntax error before "drive_info"
../../../src/pc80/ide/ide.c:368: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:368: `ADDRESS_MODE_CHS' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:369: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:370: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:371: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:372: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:373: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:374: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:375: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:380: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:380: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:380: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:383: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:384: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:390: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:391: `IDE_FEATURE_CFA_ENABLE_POWER_MODE1' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:403: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c:403: dereferencing pointer to incomplete type
../../../src/pc80/ide/ide.c: In function `init_controller':
../../../src/pc80/ide/ide.c:457: invalid use of undefined type `struct harddisk_info'
../../../src/pc80/ide/ide.c: In function `ide_init':
../../../src/pc80/ide/ide.c:478: sizeof applied to an incomplete type
../../../src/pc80/ide/ide.c:498: `uint16_t' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:498: syntax error before "base"
../../../src/pc80/ide/ide.c:499: `base' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:499: `IDE_BASE0' undeclared (first use in this function)
../../../src/pc80/ide/ide.c:500: invalid use of undefined type `struct controller'
../../../src/pc80/ide/ide.c:501: invalid use of undefined type `struct controller'
../../../src/pc80/ide/ide.c:503: invalid use of undefined type `struct controller'
../../../src/pc80/ide/ide.c:503: invalid use of undefined type `struct controller'
../../../src/pc80/ide/ide.c: At top level:
../../../src/pc80/ide/ide.c:33: storage size of `harddisk_info' isn't known
../../../src/pc80/ide/ide.c:32: storage size of `controller' isn't known
make: *** [ide.o] Error 1
root at who5:/usr/src/lobos/freebios/util/baremetal/lib# exit
Script done on Sat May  8 12:47:09 2004

And this one is from the USB directory:
Script started on Sat May  8 12:44:02 2004
root at who5:/usr/src/lobos/freebios/util/baremetal/usb# make
gcc -I ../include -I ../include/i386 -O2 -DDEBUG -DZKERNEL_START=0xfff00000   -c -o uhci.o uhci.c
uhci.c:332:1: warning: "USBCMD" redefined
In file included from uhci.c:39:
uhci.h:290:1: warning: this is the location of the previous definition
uhci.c:333:1: warning: "USBSTS" redefined
uhci.h:291:1: warning: this is the location of the previous definition
uhci.c:334:1: warning: "USBINTR" redefined
uhci.h:292:1: warning: this is the location of the previous definition
uhci.c:335:1: warning: "FRNUM" redefined
uhci.h:293:1: warning: this is the location of the previous definition
uhci.c:336:1: warning: "FLBASE" redefined
uhci.h:294:1: warning: this is the location of the previous definition
uhci.c:337:1: warning: "SOFMOD" redefined
uhci.h:295:1: warning: this is the location of the previous definition
uhci.c:338:1: warning: "PORTSC1" redefined
uhci.h:296:1: warning: this is the location of the previous definition
uhci.c:339:1: warning: "PORTSC2" redefined
uhci.h:297:1: warning: this is the location of the previous definition
uhci.c: In function `ctrl_msg':
uhci.c:776: warning: assignment makes pointer from integer without a cast
uhci.c: In function `hub_port_reset':
uhci.c:1193: warning: passing arg 1 of `dump_hex' from incompatible pointer type
uhci.c: In function `usb_hub_init':
uhci.c:1272: warning: assignment makes pointer from integer without a cast
uhci.c: In function `configure_device':
uhci.c:1383: warning: passing arg 1 of `dump_config_descriptor' from incompatible pointer type
gcc -I ../include -I ../include/i386 -O2 -DDEBUG -DZKERNEL_START=0xfff00000   -c -o usb_scsi_low.o usb_scsi_low.c
gcc -I ../include -I ../include/i386 -O2 -DDEBUG -DZKERNEL_START=0xfff00000   -c -o debug.o debug.c
In file included from debug.c:31:
../include/string.h:9: warning: conflicting types for built-in function `strcpy'
gcc -I ../include -I ../include/i386 -O2 -DDEBUG -DZKERNEL_START=0xfff00000   -c -o scsi_cmds.o scsi_cmds.c
scsi_cmds.c: In function `ll_read_block':
scsi_cmds.c:258: warning: passing arg 2 of `scsi_command' from incompatible pointer type
scsi_cmds.c: In function `ll_write_block':
scsi_cmds.c:280: warning: passing arg 2 of `scsi_command' from incompatible pointer type
scsi_cmds.c: In function `ll_read_long':
scsi_cmds.c:311: warning: passing arg 2 of `scsi_command' from incompatible pointer type
scsi_cmds.c: In function `get_capacity':
scsi_cmds.c:328: warning: passing arg 5 of `scsi_command' from incompatible pointer type
scsi_cmds.c: In function `query':
scsi_cmds.c:349: warning: passing arg 5 of `scsi_command' from incompatible pointer type
scsi_cmds.c: In function `ReportLUNS':
scsi_cmds.c:372: warning: passing arg 5 of `scsi_command' from incompatible pointer type
scsi_cmds.c: In function `ReportOpCodes':
scsi_cmds.c:423: warning: passing arg 2 of `scsi_command' from incompatible pointer type
scsi_cmds.c:423: warning: passing arg 5 of `scsi_command' from incompatible pointer type
scsi_cmds.c: In function `CheckVolumes':
scsi_cmds.c:469: warning: passing arg 2 of `scsi_command' from incompatible pointer type
scsi_cmds.c: In function `CheckPartitions':
scsi_cmds.c:494: warning: passing arg 2 of `scsi_command' from incompatible pointer type
scsi_cmds.c: In function `UnitReady':
scsi_cmds.c:514: warning: passing arg 2 of `scsi_command' from incompatible pointer type
gcc -I ../include -I ../include/i386 -O2 -DDEBUG -DZKERNEL_START=0xfff00000   -c -o pci_util.o pci_util.c
gcc -I ../include -I ../include/i386 -O2 -DDEBUG -DZKERNEL_START=0xfff00000   -c -o block_fill_inbuf.o block_fill_inbuf.c
In file included from block_fill_inbuf.c:8:
../include/string.h:9: warning: conflicting types for built-in function `strcpy'
gcc -I ../include -I ../include/i386 -O2 -DDEBUG -DZKERNEL_START=0xfff00000   -c -o main.o main.c
main.c: In function `main':
main.c:41: warning: assignment makes pointer from integer without a cast
ld -defsym HEAPSIZE=0x8000 -T elfImage.lds main.o uhci.o usb_scsi_low.o debug.o scsi_cmds.o pci_util.o block_fill_inbuf.o ../lib/baremetal.a  -o usbboot.elf
uhci.o(.text+0x5e): In function `wait_head':
: undefined reference to `udelay'
uhci.o(.text+0x70a): In function `port_resume':
: undefined reference to `udelay'
uhci.o(.text+0x7c2): In function `port_reset':
: undefined reference to `udelay'
uhci.o(.text+0x819): In function `port_reset_long':
: undefined reference to `udelay'
uhci.o(.text+0x875): In function `hc_reset':
: undefined reference to `udelay'
uhci.o(.text+0xcdf): more undefined references to `udelay' follow
make: *** [usbboot.elf] Error 1
root at who5:/usr/src/lobos/freebios/util/baremetal/usb# exit
Script done on Sat May  8 12:44:16 2004

--------------------
Gregg C Levine hansolofalcon at worldnet.att.net
------------------------------------------------------------
"The Force will be with you...Always." Obi-Wan Kenobi
"Use the Force, Luke."  Obi-Wan Kenobi

> -----Original Message-----
> From: Yinghai Lu [mailto:yhlu at tyan.com]
> Sent: Saturday, May 08, 2004 12:48 PM
> To: 'Steven James'; 'Gregg C Levine'
> Cc: linuxbios at clustermatic.org
> Subject: re: Is possible Linux on flash memory?
> 
> Does it work now?
> 
> If it works with raw device, after merge it into filo, it should use file system FAT
> etc.
> 
> Regards
> 
> YH
> 
> -----邮件原件-----
> 发件人: linuxbios-admin at clustermatic.org [mailto:linuxbios-
> admin at clustermatic.org] 代表 Steven James
> 发送时间: 2004年5月8日 5:18
> 收件人: Gregg C Levine
> 抄送: linuxbios at clustermatic.org
> 主题: RE: Is possible Linux on flash memory?
> 
> Greetings,
> 
> Yes, a kernel processed with Eric's mkelfImage.
> 
> I don't have any filesystem code in the loader, so rather than mounting a
> filesystem on the USB storage device, you need to partition it and then dd
> the kernel image to the first partition.
> 
> e.g. if your USB device shows up as sdb, dd if=kernel.elf of=/dev/sdb1
> 
> G'day,
> sjames
> 
> 
> -------------------------steven james, director of research, linux labs
> ... ........ ..... ....                    230 peachtree st nw ste 2701
> the original linux labs                             atlanta.ga.us 30303
>       -since 1995                              http://www.linuxlabs.com
>                                               office & fax 866.545.6306
> -----------------------------------------------------------------------
> 
> 
> On Sat, 8 May 2004, Gregg C Levine wrote:
> 
> > Hello from Gregg C Levine
> > It happens I just finished examining the code for the contents of that
> > directory. But I've got just one question pending at the moment, how
> > do you mean, "It will actually load an ELF image written to the raw
> > device.". Explain that line of reasoning. Do you mean a kernel that's
> > been pushed through the creation tool that Eric has created? And "raw
> > device", now I'm lost, how about clarifying your position?
> > -------------------
> > Gregg C Levine hansolofalcon at worldnet.att.net
> > ------------------------------------------------------------
> > "The Force will be with you...Always." Obi-Wan Kenobi
> > "Use the Force, Luke."  Obi-Wan Kenobi
> >
> > > -----Original Message-----
> > > From: linuxbios-admin at clustermatic.org [mailto:linuxbios-
> > > admin at clustermatic.org] On Behalf Of Steven James
> > > Sent: Friday, May 07, 2004 11:20 PM
> > > To: Ken Fuchs
> > > Cc: linuxbios at clustermatic.org
> > > Subject: Re: Is possible Linux on flash memory?
> > >
> > > Greetings,
> > >
> > > I've checked in the start of USB booting in util/baremetal/usb.
> > > It will actually load an ELF image written to the raw device. I
> > haven't
> > > been able to find enough time yet to integrate it into FILO, but it
> > should
> > > probably go there.
> > >
> > > G'day,
> > > sjames
> > >
> > >
> > > -------------------------steven james, director of research, linux
> > labs
> > > ... ........ ..... ....                    230 peachtree st nw ste
> > 2701
> > > the original linux labs                             atlanta.ga.us
> > 30303
> > >       -since 1995
> > http://www.linuxlabs.com
> > >                                               office & fax
> > 866.545.6306
> > >
> > ----------------------------------------------------------------------
> > -
> > >
> > >
> > > On Fri, 7 May 2004, Ken Fuchs wrote:
> > >
> > > > LinuxBIOS doesn't support USB pen drives or USB compact flash.  It
> > does
> > > > support ATA (IDE) flash devices.
> > > >
> > > > On a normal (proprietary) BIOS:
> > > >
> > > > Booting from USB is supported on many newer motherboards with a
> > BIOS
> > > > that supports this.  I use Flonix to boot from a 64MB USB pen
> > drive:
> > > >
> > > > http://mir2.ovh.net/flonix/
> > > >
> > > > The Flonix forums are at:
> > > >
> > > > http://www.flonix.com/support/viewforum.php?f=11
> > > >
> > > > I also tried Puppy Linux (http.goosee.com/puppy/), but the USB
> > > > bootloader (syslinux 2.08) didn't work for me.  Using Knoppix 3.3
> > > > 2-16-2004, I was able to install it's syslinux 2.04 bootloader:
> > > >
> > > > # syslinux /dev/sda1
> > > >
> > > > To make Flonix bootable, you can also use the above command from
> > > > the Knoppix live CD.
> > > >
> > > > (The first USB flash is /dev/sda, if there are _no_ SCSI drives.
> > > > Otherwise, USB flash is the last "SCSI" device, i.e. /dev/sdc with
> > two
> > > > SCSI hard drives with special files /dev/sda and /dev/sdb.)
> > > >
> > > > There are other Linux distributions built to be installed on a USB
> > pen
> > > > drive or flash.
> > > >
> > > > Check out http://www.linux-usb.org/ for general Linux USB
> > information.
> > > >
> > > > BTW, I sent Flavio a private e-mail to flavio_groups at yahoo.com.br
> > and it
> > > > bounced.  So, I'm forced to answer via the LinuxBIOS mailing list.
> > > > Sorry.
> > > >
> > > > Sincerely,
> > > >
> > > > Ken Fuchs <kfuchs at winternet.com>




More information about the coreboot mailing list