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]

 



Hello Georg,

Thank you for the suggestion, but my target has no USB :-)

Just 512K of RAM, 512K of Flash, and some I/O like GPIO, serial, SPI,
i2c and Ethernet on a 80188 bus. With a design based on the PC-XT/AT
core.

There is no bootloader in its simplified BIOS, so I use the ROMCODE
option to boot ELKS from the Flash.

ROMFS is the next step on this diskless system to have a rootfs.

MFLD


Le 10 avr. 2017 9:07 PM, "G. Potthast" <mailbox@xxxxxxxxxxxxxxxx> a écrit :

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