-----Ursprüngliche Nachricht-----
From: Sebastian Sumpf
Sent: Wednesday, May 14, 2014 10:06 PM
To: Genode OS Framework Mailing List
Subject: Re: Using a real harddisk
Hi again,
>>>> I want to access files from a harddisk using a block cache. The
>>>> partition
>>>> would be /sda7/test in ext2 format. (and for example file1.txt) I tried
>>> Assuming your machine is an x86 derivative and supports AHCI, you could
>>> use Genode's AHCI driver, which will expose a block sesssion (see:
>>> os/src/drivers/ahci/README). In order to access the partitions on your
>>> disk, a server called 'part_blk' is required (see:
>>> os/src/server/part_blk/README for its configuration). So, you would have
>>> to remove 'ram_blk' and add 'ahci_drv', 'part_blk' (routed to
>>> 'ahci_drv'), adjust 'rump_fs' to be routed to 'part_blk' partition 7.
The good thing: the timeout message seems to be gone.
The bad thing:
I tried to execute the example. The run file is below attached inline
If i try to execute it in qemu, i get a message: "[init -> acpi] ACPI table
format not supported - will not rewrite GSIs"
followed by a page fault "static void
Genode::Pager_object::_page_fault_handler(): unhandled page fault,
'pager:ahci_ep' address=0x0 ip=0x10002c3"
(The notebook is ad proposed an X201)
(The complete output is also attached below).
Am i missing something in the chain?
And I think I have to little knowledge of the ACPI mechanism. I found that
GSI are Global System Interrupts but no clue what went wrong.
Best regards,
Wolfgang
--- Runfile:
#
# Check used commands
#
#set mke2fs [check_installed mke2fs]
#set dd [check_installed dd]
#
# Build
#
set build_components {
core init
drivers/timer
drivers/pci
drivers/acpi
drivers/ahci
server/part_blk
server/blk_cache
server/ram_blk
server/rump_fs
test/libc_vfs
}
build $build_components
create_boot_directory
#
# Generate config
#
append config {
<config>
<parent-provides>
<service name="ROM"/>
<service name="RAM"/>
<service name="IRQ"/>
<service name="IO_MEM"/>
<service name="IO_PORT"/>
<service name="CAP"/>
<service name="PD"/>
<service name="RM"/>
<service name="CPU"/>
<service name="LOG"/>
<service name="SIGNAL" />
</parent-provides>
<default-route>
<any-service> <parent/> <any-child/> </any-service>
</default-route>
<start name="timer">
<resource name="RAM" quantum="1M"/>
<provides><service name="Timer"/></provides>
</start>
<start name="acpi">
<resource name="RAM" quantum="6M"/>
<binary name="acpi_drv"/>
<provides>
<service name="PCI"/>
<service name="IRQ" />
</provides>
<route>
<service name="PCI"> <any-child /> </service>
<any-service> <parent/> <any-child /> </any-service>
</route>
</start>
<start name="ahci">
<binary name="ahci" />
<resource name="RAM" quantum="10M" />
<provides><service name="Block" /></provides>
<route>
<service name="IRQ"><child name="acpi" /></service>
<any-service> <parent /> <any-child /></any-service>
</route>
</start>
<start name="part_blk">
<resource name="RAM" quantum="10M" />
<provides><service name="Block" /></provides>
<route>
<any-service><child name="ahci"/>
<parent/><any-child/></any-service>
</route>
<config>
<policy label="blk_cache" partition="6"/>
</config>
</start>
<start name="blk_cache">
<resource name="RAM" quantum="8M" />
<provides><service name="Block" /></provides>
<route>
<service name="Block"><child name="part_blk" /></service>
<any-service> <parent /> <any-child /></any-service>
</route>
</start>
<start name="rump_fs">
<resource name="RAM" quantum="4M" />
<provides><service name="File_system"/></provides>
<config fs="ext2fs"><policy label="" root="/"
writeable="yes"/></config>
<route>
<service name="Block"><child name="blk_cache" /></service>
<any-service> <parent /> <any-child /></any-service>
</route>
</start>
<start name="test-libc_vfs">
<resource name="RAM" quantum="4M"/>
<config>
<libc stdout="/dev/log">
<vfs>
<dir name="dev"> <log/> </dir>
<fs/>
</vfs>
</libc>
</config>
</start>
</config>}
install_config $config
#
# Boot modules
#
# generic modules
set boot_modules {
core init timer test-libc_vfs ram_blk
pci_drv pci_device_pd acpi_drv ahci part_blk blk_cache
rump.lib.so rump_fs.lib.so rump_fs
ld.lib.so libc.lib.so
}
#ext2.raw
build_boot_image $boot_modules
append qemu_args " -m 1024"
run_genode_until forever
--- output
int main(): --- create local services ---
int main(): --- start init ---
int main(): transferred 978 MB to init
[init -> acpi] available memory for ACPI 2048 kiB, for PCI_DRV 3536 kiB
[init -> ahci] --- AHCI driver started ---
[init -> rump_fs] Using ext2fs as file system
[init -> rump_fs] int rumpuser_init(int, const rumpuser_hyperup*): RUMP
ver: 17
[init -> rump_fs] int rumpuser_getparam(const char*, void*, size_t):
RUMP_THREADS
[init -> rump_fs] int rumpuser_getparam(const char*, void*, size_t):
RUMP_VERBOSE
[init -> rump_fs] int rumpuser_getparam(const char*, void*, size_t):
_RUMPUSER_NCPU
[init -> rump_fs] int rumpuser_getparam(const char*, void*, size_t):
RUMP_MEMLIMIT
[init -> rump_fs] Asserting rump kernel 820 KB of RAM
[init -> acpi] void Acpi_table::_parse_tables(T*, Genode::uint32_t)
[with T = unsigned int; Genode::uint32_t = unsigned int]: Found MADT
[init -> acpi] MADT IRQ 0 -> GSI 2 flags: 0
[init -> acpi] MADT IRQ 5 -> GSI 5 flags: d
[init -> acpi] MADT IRQ 9 -> GSI 9 flags: d
[init -> acpi] MADT IRQ 10 -> GSI 10 flags: d
[init -> acpi] MADT IRQ 11 -> GSI 11 flags: d
[init -> rump_fs] BOOTSTRAP
[init -> rump_fs] int rumpuser_getparam(const char*, void*, size_t):
RUMP_NVNODES
[init -> rump_fs] int rumpuser_getparam(const char*, void*, size_t):
RUMP_BLKFAIL
[init -> rump_fs] int rumpuser_getparam(const char*, void*, size_t):
RUMP_BLKSECTSHIFT
Quota exceeded! amount=28672, size=4096, consumed=28672
[init -> rump_fs] upgrading quota donation for Env::CPU (8192 bytes)
[init -> acpi -> pci_drv] PCI driver started
[init -> rump_fs] int rumpuser_getparam(const char*, void*, size_t):
RUMP_MODULEBASE
Quota exceeded! amount=36864, size=4096, consumed=36864
[init -> rump_fs] upgrading quota donation for Env::CPU (8192 bytes)
[init -> rump_fs] int rumpuser_getparam(const char*, void*, size_t):
_RUMPUSER_HOSTNAME
Quota exceeded! amount=45056, size=4096, consumed=45056
[init -> rump_fs] upgrading quota donation for Env::CPU (8192 bytes)
[init -> acpi -> pci_drv -> pci_device_pd] PCI device pd starting ...
[init -> acpi -> pci_drv -> pci_device_pd] PCI device pd started
[init -> acpi] ACPI table format not supported - will not rewrite GSIs
no RM attachment (READ pf_addr=0 pf_ip=10002c3 from a17fefc6 ahci_ep)
virtual void
Genode::Signal_session_component::submit(Genode::Signal_context_capability,
unsigned int): invalid signal-context capability
static void Genode::Pager_object::_page_fault_handler(): unhandled page
fault, 'pager:ahci_ep' address=0x0 ip=0x10002c3
int main(): --- init created, waiting for exit condition ---
------------------------------------------------------------------------------
HPCC Systems Open Source Big Data Platform from LexisNexis Risk Solutions
Find What Matters Most in Your Big Data with HPCC Systems
Open Source. Fast. Scalable. Simple. Ideal for Dirty Data.
Leverages Graph Analysis for Fast Processing & Easy Data Exploration
http://p.sf.net/sfu/hpccsystems
_______________________________________________
genode-main mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/genode-main