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