Re: What device for ROMFS ? - Try booting a minix hard disk image on the flash disk

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Marc,

as you probably know, there is a script now that generates a hard disk image which can boot ELKS. This script is called "build_hd_image.sh" and is located in the elkscmd directory. I could write this image to a USB flash disk and boot ELKS from that. Maybe you can do the same with the flash disk in your embedded system. Here is how I did it:

Plug in a USB flash disk in your Linux system which you may erase, i.e. you don't need the data on it any more. Then enter „sudo fdisk -l“ which will allow you to determine the device name of the flash disk. You can e.g. check the disk size to select the correct device from that list. If you have only one hard disk the flash disk will usually be called „sdb“. On my PC I have two hard disks and the flash disk is called „sdc“.

Then check if this flash disk is mounted with „findmnt /dev/sdc“. If there is no output, the flash disk is not mounted. Otherwise you will find the mount point in the TARGET column. Unmount it then with e.g. „sudo umount /mnt/flashdisk“. Then write the hard disk image onto the flash disk with the „dd“ command:

dd if=./full_hdd of=/dev/sdc bs=512k

Do not specify a partition with e.g. „sdc1“. Then restart the PC and select the flash disk from the BIOS boot menu. You may not be able to boot successfully from every PC but I could do so from one of my PCs.

I think this way you will be able to use your embedded system with ELKS already without the need to code the ROMFS device first.

Georg

-----Ursprüngliche Nachricht----- From: Marc-F. LUCCA-DANIAU
Sent: Monday, January 23, 2017 8:48 PM
To: ELKS
Subject: Re: What device for ROMFS ?

Not forgotten and tracked by :

https://github.com/mfld-fr/elks/issues/2

MFLD


Le 27/05/2016 à 00:36, Juan Perez-Sanchez a écrit :

Looks good. That would be an interesting contribution to this project.
Later, you could add Execute In Place (XIP) to this modified ROMFS.

Juan


On Thu, May 26, 2016 at 2:20 AM, Marc-F. LUCCA-DANIAU <mfld.fr@xxxxxxxxx>
wrote:

Thanks Juan for that info.

It helped me to find some missing #define in the setup configuration
reading.
I will commit the related fixes later (because not so many people using
ROM
boot for ELKS :-)).

Coding a fresh new block device is one solution, but the ROM is by nature
a
flat and linear device (except when erasing / writting).

So I would rather refactor the existing ROMFS to directly pick data from
a
given area in the ROM, and that area to be described in the ELKS config,
like the other ROM options.

Does it make sense ?

MFLD


Le 24/05/2016 01:07, Juan Perez-Sanchez a écrit :

Hello:

For the standard case, the root device is defined by the
arch/i86/tools/build program (see Documentation/text/boot.txt). The
device number is saved in bytes 508,509 of boot sector.

After booting, the root device number is read from that location into
the ROOT_DEV variable by the function setup_arch() in
arch/i86/kernel/system.c.

Maybe the mkbootloader does not define the root device as expected by
the kernel.

In addition, you will have to write a ROM block device driver. Also, I
think romfs for ELKS never reached a working status.

Juan


On Mon, May 23, 2016 at 12:09 PM, Marc-F. LUCCA-DANIAU
<mfld.fr@xxxxxxxxx> wrote:

Hello,

In a few words: what is the device to be used for a ROMFS root ?

More: I configured ELKS as a ROM image for an embedded system, and I run
it
under EMU86, but I cannot figure out:

1- how to tell ELKS to read the ROMFS superblock from ROM address space?
2- how to build a ROMFS image to put in the ROM address space?

All my tries end up with the well known:

$ ./emu86 -w 0xe0000 -f ../../elks/elks/arch/i86/Image -x 0xe000:0x42 -i

$ ./pcat `cat emu86.pts`
Loading kernel image...
Console: BIOS 10x115 emulating ANSI (3 virtual consoles)
PC/AT class machine, inode! CPU8308K base RAM, CPUID `nd socket for in'.
ELKS kernel (39008 text + 4168 data + 48648 bss)
Kernel text at e062:0000, data at 90:0000 62 K of memory for user
processes.
ELKS network sockets
TCP/IP stack by Harry Kalogirou
ELKS version 0.2.0
panic: VFS: Unable to mount root fs on 206D
apparent call stack:
Line: Addr    Parameters~~~~: ~~~~    ~~~~~~~~~~
    0: 1D59 => 0000 7102 0000 0000 0000 0000 0000
    1: 00B7 => 0000 0000 0000 0000 0000 0000 0000
    2: 0000 => CE50 0000 0000 0001 0000 6166 6C69
    3: 1048 => 0000 0000 0000 0000 0000 0000 0000
    4: 0000 => CE50 0000 0000 0001 0000 6166 6C69
    5: 1048 => 0000 0000 0000 0000 0000 0000 0000
    6: 0000 => CE50 0000 0000 0001 0000 6166 6C69
    7: 1048 => 0000 0000 0000 0000 0000 0000 0000
    8: 0000 => CE50 0000 0000 0001 0000 6166 6C69
SYSTEM LOCKED - Press CTRL-ALT-DEL to reboot:

Any suggestion ?

Thanks,

MFLD

--
To unsubscribe from this list: send the line "unsubscribe linux-8086" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




--
To unsubscribe from this list: send the line "unsubscribe linux-8086" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-8086" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Kernel]     [Linux ia64]     [DCCP]     [Linux for ARM]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux