Is possible Linux on flash memory?

Steven James pyro at linuxlabs.com
Sat May 8 17:33:01 CEST 2004


Greetings,

It looks like the IDE stuff is the result of things changing in the
linuxbios source since baremetal was checked in.

I'll have to look at the usb problems. My setup was with gcc 2.95. I'll
try it on my newer gcc 3.2.2 (RH 9 ish) and see what's up.

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 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