Commit Graph

257 Commits

Author SHA1 Message Date
Alexander Boettcher
e9525f49fd noux: reflect -no memory- case during process setup
Instead of just red messages in the log and a hanging caller, the issuer
may respond to it - e.g. a noux bash shell will show an error and is
afterwards still usable.

Fixes #1778
2015-11-18 12:22:09 +01:00
Sebastian Sumpf
e2280a1650 noux: Run script with two bash shells using the same file system
Related to #1765

Instructions:

1. Create a file in terminal one in the 'ram' directory

! echo "test" > ram/test

2. Second terminal

! tail -f ram/test

3. First terminal

! echo "Meaningless output" >> ram/test

4. Observe second terminal
2015-11-18 12:22:05 +01:00
Sebastian Sumpf
06fe755f8c noux: Enable setting of file handle flags
Fixes #1765
2015-11-18 12:22:04 +01:00
Christian Prochaska
f6863e3f4b qt5: add clipboard support
If a Qt application shall use the clipboard, this must be configured as:

<config clipboard="yes">

Fixes #1749
2015-11-09 13:17:56 +01:00
Josef Söntgen
be8f16ac3e vbox: use ring buffer in audio backend
Instead of hardcoding the device model configuration use a ring buffer
to gather samples.

Fixes #1767.
2015-11-09 13:08:31 +01:00
Josef Söntgen
5b6fdc96fc vbox: disable rdtsc VM exit
Trapping rdtsc creates a huge load in some guests, e.g. Windows 8.1,
that use this instruction very frequently. This influences audio
playback/recording in a bad way (distorted sounds, …). As a interim
solution disable the virtualization of rdtsc completely. As long
as each guest VM runs on its own CPU core it should be fine as there
should not be that much interference (TSC warping).

That being said, TSC offsetting as well as adjusting within vbox have to
be evaluated.

Fixes #1768.
2015-11-09 13:08:30 +01:00
Christian Prochaska
d34bbbceb2 Arora: update to current git master branch
Our current version of Arora crashes at program exit. This bug has been
fixed on the Arora git master branch.

Fixes #1759
2015-11-09 13:08:30 +01:00
Norman Feske
7c968d4c60 nitpicker: externalize xray policy
This patch removes the policy for controlling the X-Ray mode from
nitpicker to the separate component os/app/xray_trigger.

Fixes #1690
2015-11-04 14:09:28 +01:00
Christian Prochaska
731a98c266 vbox: decode clipboard content
Fixes #1748
2015-11-04 14:09:25 +01:00
Josef Söntgen
32e2ab85b0 netperf: remove bssid from wifi tests
The bssid is purely optional and only should be used if it really is
needed.

Issue #1746.
2015-11-04 14:09:25 +01:00
Emery Hemingway
2da239d0c8 void sync(char const *path)
Sync now takes a path argument at VFS and File system interfaces.

Issue #1648
2015-11-04 14:09:23 +01:00
Christian Helmuth
c2f0bb4fa8 ports: adapt to moved lynx hosting
The new archive has a new naming scheme (also the root directory name
changed) but I compared the contents and those don't differ.
2015-10-28 15:06:23 +01:00
Alexander Boettcher
6de46dfd2e increase timeouts for noux_tool_chain_auto 2015-10-28 15:06:23 +01:00
Alexander Boettcher
c4686a1196 disable network tests on platforms w/o nic driver
They don't have a network driver currently.
2015-10-28 15:06:23 +01:00
Josef Söntgen
0879a9570c vbox: fix vm_win8.vbox network configuration
We need to specify the interface we want to attach to.

Fixes #1737.
2015-10-09 16:39:39 +02:00
Sebastian Sumpf
78e18981fb nic session: fix quota check
Check for overflow.

Issue #1735
2015-10-09 16:38:48 +02:00
Alexander Boettcher
5aec67d5bb vbox: enable clipboard support"
Fixes #1696
2015-10-09 16:38:48 +02:00
Alexander Boettcher
a608d48ddf noux: handle more libc getrlimit parameters
- we claim to have no limits on file handles and number of threads
- remove obsolete Thread_base::myself fall-back code for stack size calculation

Issue #1733.
2015-10-09 16:38:48 +02:00
Alexander Boettcher
2e62543fdb nova: use remote revoke
Fixes #1733
2015-10-09 16:38:48 +02:00
Alexander Boettcher
3f611fe00d pthread: handle self destruction better
Defer destruction of threads which tries to self-destruct. Check an perform
cleanup of such threads during pthread_cancel and pthread_create.

Issue #1687
2015-10-06 12:18:51 +02:00
Alexander Boettcher
6f3e9c12fb vbox: support shutdown of VMM
- send exit signal to parent
- avoid assertion in vbox posix backend

Fixes #1687
2015-10-06 12:18:51 +02:00
Emery Hemingway
d5dc25adef Noux: connect standard streams to VFS nodes
Fixes #1693
2015-09-30 15:48:12 +02:00
Josef Söntgen
2f8b3cfdaf vbox: make I/O port access less noisy
Instead of white-listing floppy controllers, certain SCSI controllers
as well as ISAPnP etc. pp. remove the diagnostics and print each access
if verbose is set.

Fixes #1726.
2015-09-30 15:48:12 +02:00
Josef Söntgen
f9a64b663c vbox: replace alarm_timer thread with trigger_once
Instead of using the alarm_timer thread we use our own timer thread
that uses a kernel semaphore on Nova. On all other platforms a timer
connection and trigger_once is used.

Fixes #1727.
2015-09-30 15:48:12 +02:00
Alexander Boettcher
f7ad6cf4e6 seoul: support ide disk model
Issue #1702
2015-09-30 15:48:11 +02:00
Alexander Boettcher
36947cef3a seoul: fix raw disc boot for 512B sectorsize
Fixes #1702
2015-09-30 15:48:11 +02:00
Alexander Boettcher
21e86227bc seoul: make input available via bios
Enables us to interact with GRUB bootloader during early boot.

Issue #1702
2015-09-30 15:48:11 +02:00
Alexander Boettcher
4da7e89d6b seoul: avoid assertion, adhere to original vancouver version
Issue #1702
2015-09-30 15:48:11 +02:00
Alexander Boettcher
e5ea76c689 seoul: set vCPU priority below seoul threads
Issue #1702
2015-09-30 15:48:11 +02:00
Alexander Boettcher
2d15c6d990 seoul: handle a MSR to let Genode/Nova guest boot
Issue #1702
2015-09-30 15:48:11 +02:00
Christian Prochaska
7fff1770e0 qt5: update run scripts
Fixes #1695
2015-09-30 12:20:41 +02:00
Christian Helmuth
92541c49a6 netperf: don't run script on hw_wand_quad 2015-09-30 12:20:41 +02:00
Stefan Kalkowski
ccb968ff7d safeguard the synchronized allocator template
* Move the Synced_interface from os -> base
* Align the naming of "synchronized" helpers to "Synced_*"
* Move Synced_range_allocator to core's private headers
* Remove the raw() and lock() members from Synced_allocator and
  Synced_range_allocator, and re-use the Synced_interface for them
* Make core's Mapped_mem_allocator a friend class of Synced_range_allocator
  to enable the needed "unsafe" access of its physical and virtual allocators

Fix #1697
2015-09-30 12:20:39 +02:00
Emery Hemingway
45bcb7f48f Override libc access in Noux plugin
Fixes #1706
2015-09-30 12:20:39 +02:00
Christian Helmuth
9212fc0dc6 noux: adapt run scripts to platform_drv.inc reqs 2015-09-30 12:20:37 +02:00
Christian Helmuth
bc2c7db4e9 vbox: check for iasl/yasm on prepare 2015-09-16 13:58:50 +02:00
Stefan Kalkowski
ed52d5a211 Introduce 'spec' subdirectories to outline aspects
Instead of holding SPEC-variable dependent files and directories inline
within the repository structure, move them into 'spec' subdirectories
at the corresponding levels, e.g.:

  repos/base/include/spec
  repos/base/mk/spec
  repos/base/lib/mk/spec
  repos/base/src/core/spec
  ...

Moreover, this commit removes the 'platform' directories. That term was
used in an overloaded sense. All SPEC-relative 'platform' directories are
now named 'spec'. Other files, like for instance those related to the
kernel/architecture specific startup library, where moved from 'platform'
directories to explicit, more meaningful places like e.g.: 'src/lib/startup'.

Fix #1673
2015-09-16 13:58:50 +02:00
Christian Prochaska
6e15c6b707 wifi_drv: enable support for iwl7265
Fixes #1671
2015-09-09 15:14:30 +02:00
Stefan Kalkowski
458b4d6fc4 base: redesign object pool using lambda interface
Instead of returning pointers to locked objects via a lookup function,
the new object pool implementation restricts object access to
functors resp. lambda expressions that are applied to the objects
within the pool itself.

Fix #884
Fix #1658
2015-09-09 15:14:28 +02:00
Alexander Boettcher
b6c440852b vbox: allocate guest memory in chunks
Fixes #1575
2015-08-31 13:12:52 +02:00
Christian Helmuth
ff343eab9c vbox_pointer: remove obsolete boot modules 2015-08-31 09:09:23 +02:00
Christian Prochaska
0885ebd5b1 vbox: make interruptibility state check conditional
If the guest is not in an interruptible state when the recall handler is
called, an assertion fails. Since the assertion is only relevant if the
recall handler was called during IRQ injection, it should be moved into
the corresponding conditional block which already has the assertion for
the 'IF' flag.

Fixes #1661
2015-08-27 12:05:18 +02:00
Christian Prochaska
26924c9bcd vbox: let the first EMT thread handle timers
By default, the EMT thread of the last vCPU handles expired timers. When
running VirtualBox with 2 vCPUs, it sporadically happens that the EMT
thread of the second CPU clears an 'interrupt pending' flag for the first
vCPU after changing the state of a timer device model, which is not
expected by our Genode-specific code (failed assertion '!_irq_win' in the
recall handler).

The problem did not occur yet when letting the EMT thread of the first
vCPU handle the expired timers, which is done by this commit as an interim
fix until the problem has been further investigated.

Issue #1660
2015-08-27 12:04:26 +02:00
Adrian-Ken Rueegsegger
c2ff0ae9d4 Minor cleanup fixes
- Fix spelling errors
- Remove extra semicolons
- Remove extra spaces

Fixes #1650
2015-08-21 11:00:59 +02:00
Adrian-Ken Rueegsegger
d2564442d4 vbox: Drop duplicate RDPMC exiting VM-control 2015-08-21 11:00:58 +02:00
Josef Söntgen
3f3b3a100e vbox: sidestep audio subsystem
There are currently some issue with the mixing/filtering code of vbox.
So instead of using the audio subsystem to do filtering and mixing we
bypass it to get better audio qualitiy. That means that the device
model of the VM has to use the same sample rate as the Audio_out/in
sessions, however.

Issue #1647.
2015-08-21 11:00:58 +02:00
Josef Söntgen
5be5191645 vbox: enable preliminary audio support
With this commit preliminary audio support in VirtualBox is enabled.
The backend supports playback as well as recording sounds from within
a guest VM. Depending on how the guest configures the device model
the audio output may sound disorted. If the guest uses buffers that
are too small, i.e., 10 ms or less, frequent buffer underruns will
occure.

To get this low-latency one has also to increase vbox' update hz
to 200 (i.e., 5ms).

Fixes #1647.
2015-08-21 11:00:57 +02:00
Christian Helmuth
e8c9125d9f Pseudo target for vfs_jitterentropy
Run script depending on VFS plugins (i.e., shared objects) like
vfs_jitterentropy.lib.so have to state this dependency rather the actual
binaries linked against libc. The latter introduces a library dependency
that is just not there. For example, the dependency on vfs_jitterentropy
is a result from the config node for libc which automatically loads the
plugin.
2015-08-21 11:00:57 +02:00
Josef Söntgen
4992903233 Rename audio_out_drv to audio_drv
With the introducation of the Audio_in session interface it makes
sense to rename the current available audio drivers. At the moment
only the dde_bsd audio_drv supports Audio_out as well as Audio_in.
The Linux audio_drv only supports Audio_out (there is no demand for
Audio_in support currently) but is renamed nonetheless to make it
easiert to write generic run scripts.

Issue #1644.
2015-08-21 10:59:46 +02:00
Christian Prochaska
a574f73005 seoul: dummy 'control register access' VM exit handler
This exit handler is called by the NOVA kernel now when the VM uses PAE
with nested paging and the PDPTE registers need to get updated. With this
commit, an error message is printed if this situation occurs.

Fixes #1640
2015-08-21 10:58:59 +02:00
Christian Prochaska
4c19576d4e vbox: use multiple host CPUs
Fixes #1553
2015-08-21 10:58:59 +02:00
Christian Prochaska
824fb72694 vbox: update the PDPTE registers if needed
Fixes #1638
2015-08-21 10:58:59 +02:00
Christian Prochaska
9d37510d1d vbox: shared folder read/write loop fix
Stop trying to read or write if the backend function reports that 0 bytes
have been read or written.

Fixes #1563
2015-07-21 09:43:15 +02:00
Emery Hemingway
28223e3146 noux: return exit value of init child
Fixes #1634
2015-07-21 09:34:48 +02:00
Alexander Boettcher
dddb536e25 vbox: use initFromSettings for construction VM 2015-07-21 09:30:12 +02:00
Christian Helmuth
af5c03edaf vfs: depend on ld library
So, users of VFS need not to state this dependency explicitly.
2015-07-07 19:48:07 +02:00
Christian Helmuth
b1dd5fdf1d Prevent warning in libc_noux
__INT_MAX__ equals 2147483647 which are roughly 68 years.
2015-07-07 19:48:07 +02:00
Sebastian Sumpf
463c9bec17 Replace Nic driver interface by customizable component
Removed the Nic::Driver implementation. All nic servers now inherit from
Nic::Session_component. Packet stream signals are dispatched to
the 'handle_packet_stream' function within a session component. Thus, nic
servers now have direct access to the packet stream channels, making handling
more flexible.

Adjusted nic_loobpack, dde_ipxe, wifi, usb, lan9118, Linux nic, and OpenVPN to
the new interface.

Fixes #1602
2015-07-01 14:46:16 +02:00
Adrian-Ken Rueegsegger
21c7fa2881 vbox: Fix VMM startup failure message
Use printf format specifier with correct size to log error code which is
if type uint32_t. Also print the error code in hex since this simplifies
lookup as the error values are also defined as hexadecimal values, see
[1].

Fixes #1600

[1] - repos/ports/src/virtualbox/include/xpcom/nsError.h
2015-07-01 14:46:15 +02:00
Christian Helmuth
01f22d4dc6 arora: use github archive for port
code.google.com seems to waste away slowly...
2015-06-22 14:43:41 +02:00
Alexander Boettcher
be149cc6e4 vbox: increase cpu_session quota for pthreads
Fixes #1591
2015-06-22 14:43:39 +02:00
Christian Prochaska
252a10a859 vbox: fix mouse wheel support
Fixes #1589
2015-06-22 14:43:38 +02:00
Christian Prochaska
a801976727 vbox: dynamic adaptation to screen-size changes
Fixes #1554
2015-06-22 14:43:38 +02:00
Christian Helmuth
7897e52235 vbox_pointer: policy-based shape selection
Fixes #1557
2015-06-22 14:43:36 +02:00
Alexander Boettcher
1f40d9de6a pci: convert to platform_drv
Fixes #1542
2015-06-22 14:43:34 +02:00
Alexander Boettcher
1c38d4903b x86: use report_rom for acpi and pci driver
Issue #1542
2015-06-09 11:00:12 +02:00
Alexander Boettcher
852a250e03 run: fix netperf* perf measurement extraction
The result of the second run (TCP_MAERTS) gets extracted wrongly - due to the
change introduced by commit "run: always append to output buffer"
(Issue #1327). The output buffer is no longer reseted between several
run_genode_until invocation within a run script.
2015-06-09 11:00:11 +02:00
Norman Feske
e3be65833f vfs: decouple file-system factory from libc
This patch moves the VFS file-system factory to a separate vfs library
that is independent from libc. This enables libc-less Genode programs to
easily use the VFS infrastructure.

Fixes #1561
2015-06-09 11:00:10 +02:00
Christian Helmuth
93f0cde72f vbox: adapt to framebuffer mode on startup
This works only if guest additions are installed and those report
"graphics=yes".

Related to #1554
2015-06-09 11:00:10 +02:00
Alexander Boettcher
e1896e3b44 run: add platform_drv include for usage by scripts
Related to #765 and used for issue #1542
2015-06-09 11:00:10 +02:00
Christian Prochaska
55ec357d09 vbox: store the unmodified TSC in the GIP
Fixes #1548
2015-06-03 12:53:48 +02:00
Emery Hemingway
46858cf2f6 noux: exit with child
Issue: #1408
2015-06-03 12:53:48 +02:00
Josef Söntgen
30a02a5d92 vbox: support unaligned MMIO read access
Fixes #1540.
2015-05-27 11:38:19 +02:00
Stefan Kalkowski
73c3a81e0b base: make PD session upgradeable
Ref #1443
2015-05-26 09:40:02 +02:00
Christian Prochaska
caa61c268b seoul: adapt port files to the updated repository
Fixes #1526
2015-05-26 09:40:02 +02:00
Christian Prochaska
e0dbf67e1d tool_chain: enable x86_64 target support in GDB
Fixes #1521
2015-05-26 09:39:49 +02:00
Christian Prochaska
72e31090ee tool_chain: update GCC to version 4.9.2
Fixes #1520
2015-05-26 09:39:49 +02:00
Christian Prochaska
7709059245 tool_chain: update GCC to version 4.8.4
Fixes #1519
2015-05-26 09:39:49 +02:00
Christian Prochaska
b704944d4d tool_chain: update binutils to version 2.25
Fixes #1518
2015-05-26 09:39:49 +02:00
Christian Prochaska
2706e4cd75 tool_chain: cleanup
Fixes #1517
2015-05-26 09:39:49 +02:00
Christian Prochaska
5bf538de0c Noux: implement the 'F_GETFL' 'fcntl()' command for pipes
Fixes #1513
2015-05-26 09:39:48 +02:00
Christian Prochaska
3a378bb970 libc_noux: remove dependency on 'platform_env.h'
Currently, libc_noux includes the 'base/src/base/env/platform_env.h' file
to be able to reinitialize the environment using the 'Platform_env'
interface. For base-linux, a special version of this file exists and the
inclusion of the generic version in libc_noux causes GCC 4.9 to make wrong
assumptions about the memory layout of the 'Env' object returned by
'Genode::env()'.

This commit moves the reinitialization functions to the 'Env' interface to
avoid the need to include the 'platform_env.h' file in libc_noux.

Fixes #1510
2015-05-26 09:39:47 +02:00
Christian Prochaska
88034ef836 vbox: enable USB (OHCI) pass-through support
The information about connected devices is obtained from a ROM file named
'usb_devices', which is supposed to contain a device list as in the device
report generated by the USB driver (see issue #1506).

A policy for 'report_rom' would look like:

<policy label="vbox -> usb_devices" report="usb_drv -> devices"/>

If the 'usb_devices' ROM file is not available, a warning message gets
printed and VirtualBox continues without USB pass-through support.

The devices to be passed-through need to have a matching device filter in
the '.vbox' file. Example:

<USB>
    <DeviceFilters>
        <DeviceFilter name="USB Scanner" active="true" vendorId="04a9"
                      productId="2220" remote="0"/>
    </DeviceFilters>
</USB>

The feature was tested with HID devices (mouse, keyboard) and a flatbed
scanner. Mass storage devices didn't work correctly (they also didn't work
with VirtualBox on Linux without the closed-source extension pack).

It should be made sure that the USB driver does not try to control the
devices to be passed-through itself, for example, when passing-through
a HID device, the '<hid/>' config option should not be set.

Fixes #1507
2015-05-26 09:39:46 +02:00
Christian Prochaska
65d8d4461f vbox: adapt run scripts to new AHCI driver
Fixes #1503
2015-05-26 09:39:46 +02:00
Sebastian Sumpf
7910b5146f ahci: new AHCI driver implementation
Supports native command queueing and multiple ports.
2015-05-20 17:52:58 +02:00
Alexander Boettcher
b3964f4af1 netperf: test usb30 also for x86
On our test machine the xhci controller has a usb3.0 network adapter attached
and the xhci controller is the only usb controller which has MSI support,
so let us use and test it.

Issue #1216
2015-05-20 17:52:57 +02:00
Josef Söntgen
b0f900b32b adapt run scripts to new audio_out_drv
Issue #1498.
2015-05-06 16:18:53 +02:00
Christian Prochaska
a4868f8d1d vbox: use interface declarations from 'VirtualBox_XPCOM.h'
Fixes #1499
2015-05-06 12:06:23 +02:00
Alexander Boettcher
df50d1b29d run: adjust autopilot run scripts to pci changes
Issue #1486
2015-05-06 10:55:19 +02:00
Martin Stein
c9272937e7 CPU session: apply quota via relative weightings
Physical CPU quota was previously given to a thread on construction only
by directly specifying a percentage of the quota of the according CPU
session. Now, a new thread is given a weighting that can be any value.
The physical counter-value of such a weighting depends on the weightings
of the other threads at the CPU session. Thus, the physical quota of all
threads of a CPU session must be updated when a weighting is added or
removed. This is each time the session creates or destroys a thread.

This commit also adapts the "cpu_quota" test in base-hw accordingly.

Ref #1464
2015-05-06 10:55:16 +02:00
Josef Söntgen
2002e1ccba os: remove ATAPI driver
The driver will be superseeded soon by a new AHCI driver that supports
ATAPI devices. There is no IDE support in Gende anymore, however.

Issue #1456.
2015-04-23 16:47:57 +02:00
Norman Feske
97dc9664fe base: move flex_iterator.h to include/util
Fixes #1482
2015-04-17 16:13:22 +02:00
Christian Prochaska
0fd53c7fe4 Extract numeric string arguments with the correct signedness
There are lots of places where a numeric argument of an argument string
gets extraced as signed long value and then assigned to an unsigned long
variable. If the value in the string was negative, it would not be
detected as invalid (and replaced by the default value), but become a
positive bogus value.

With this patch, numeric values which are supposed to be unsigned get
extracted with the 'ulong_value()' function, which returns the default
value for negative numbers.

Fixes #1472
2015-04-13 14:18:15 +02:00
Christian Prochaska
af2cd7175c vbox: enable video acceleration (VBVA)
This commit enables the VirtualBox graphics adapter, provides guest mouse
pointer integration with Nitpicker using the 'vbox_pointer' application
and enhances the VirtualBox run scripts with the configuration of
Nitpicker, input merger and network driver.

Fixes #1474
2015-04-13 14:18:15 +02:00
Christian Prochaska
0e344c9830 vbox: support more mouse event combinations
VirtualBox can receive absolute or relative mouse motion events from the
'Input' service and the VM can support either or both of them. With this
patch, more of the possible combinations are handled.

Fixes #1470
2015-04-09 16:04:44 +02:00
Alexander Boettcher
97758f8468 libc: use correct type for dummy libc functions
as far as possible. Some functions are internal to libc and no public
header are available.

Fixes #1466
2015-03-27 11:53:16 +01:00
Josef Söntgen
e53e6b0c5c vbox: rework network backend
* Handle signals and thereby work asynchronously
* Forward link-state changes to the attached AboveNetwork

Fixes #1465.
2015-03-27 11:53:15 +01:00
Josef Söntgen
19f8666170 vbox_auto_win7_share: adapt to new DHCP behavior
Issue #1327.
2015-03-27 11:53:15 +01:00
Josef Söntgen
be6d8db491 noux_net_netcat: adapt to new DHCP behavior
Issue #1327.
2015-03-27 11:53:15 +01:00
Josef Söntgen
c6f33fc0d2 netperf: adapt to link-state change changes
Change the matching mechanism because the IP address message may appear
at any time after starting the netserver when using lwip.

Issue #1327.
2015-03-27 11:53:14 +01:00