Commit Graph

157 Commits

Author SHA1 Message Date
Norman Feske
c6fd0055b1 sculpt: split window manager into multiple pkgs
This commit moves the window layouter and window decorator into
dedicated packages that can now be combined with the "wm" server at
runtime and restarted/reconfigured/swapped-out independently.

To use the window manager, one must start the 'wm', 'window_layouter',
and one of the 'motif_decorator' or 'themed_decorator' subsystems.

Fixes #3024
2018-11-27 11:36:35 +01:00
Christian Helmuth
70e7499e48 depot: update recipe hashes 2018-11-16 15:07:53 +01:00
Martin Stein
146f45f3d4 Archive recipes for autopilot tests 2018-11-16 15:07:53 +01:00
Norman Feske
1a75c5227e Rename wm pkg to motif_wm
This way, we can subsequently introduce a new 'wm' pkg that contains the
window manager only, w/o any hard-wired decorator and layouter.

Issue #3024
2018-11-16 15:07:52 +01:00
Norman Feske
a973d9902b gems: flexible window layouter
This commit replaces the former floating_window_layouter with a new
window_layouter component that supports the subdivision of screen space
into columns and rows, the concept of layers, and the principle ability
to store window layout information across reboots. The latter is
accomplished by reflecting the component's internal state as a 'rules'
report to the outside.

Fixes #3031
2018-11-16 14:53:20 +01:00
Christian Helmuth
0867da28a2 depot: update recipe hashes 2018-10-29 09:36:23 +01:00
Josef Söntgen
9557e64822 gems: add interactive SSH Terminal component
This component allows access to Terminal sessions via interactive SSH
sessions. Please read _repos/gems/src/server/ssh_terminal/README_ for
more detailed information.

Fixes #3014.
2018-10-29 09:36:22 +01:00
Christian Helmuth
e88081a454 depot: update recipe hashes 2018-10-01 11:25:03 +02:00
Christian Helmuth
0f9059dea8 depot: update recipe hashes 2018-09-21 13:24:46 +02:00
Norman Feske
e9e4b04bf4 Sculpt VC documentation 2018-09-21 13:19:19 +02:00
Christian Helmuth
5dcf06d208 depot: update recipe hashes 2018-09-13 15:21:26 +02:00
Norman Feske
2049498af0 depot: update recipe hashes 2018-09-05 11:04:24 +02:00
Christian Helmuth
c2e0d0ae20 depot: update recipe hashes 2018-08-30 09:25:10 +02:00
Christian Helmuth
40a84e0c81 input/ps2: poll for mouse-reset results
The PS/2 driver retries to get mouse-reset results for 700 ms, sleeping
after each attempt for 10 ms. So, the driver needs a Timer session now.

Fixes #2713
2018-08-28 17:10:55 +02:00
Norman Feske
25ee872703 sculpt: separate launchers from deploy config
The most important route of each launcher is at the top of routes and
will be used to layout the graph topology of the runtime view.

By caching the state reports generated by the runtime init, the sculpt
manager becomes able to quickly check for the presence of components. So
we can apply routing-dependency checks not only prior starting
components but also while components are running.

Fixes #2938
Fixes #2912
2018-08-28 17:10:55 +02:00
Norman Feske
b4f596b197 Tool for querying information from file system
Issue #2936
2018-08-28 17:10:53 +02:00
Norman Feske
a35f585286 sculpt: add missing pkgs to 'sculpt-installation' 2018-08-28 16:45:27 +02:00
Christian Helmuth
21ca7be235 drivers managed: fix numlock handling
Now, numlock=true means report keypad digits and numlock=false means
report Home, End, etc.
2018-08-28 16:45:26 +02:00
Emery Hemingway
db23b276f2 Remove COW VFS plugin
The COW plugin provided only partial copy-on-write semantics and had
problems detecting recursive requests. Conversely, the import plugin has
much simpler behavior that is easy to test because it mirrors that of
the ram_fs server.

Ref #2745
2018-08-28 16:45:24 +02:00
Alexander Boettcher
eb62d9cc04 dde_linux: update intel_fb to 4.16.3
Fixes #2736
2018-08-28 16:18:33 +02:00
Christian Helmuth
f4ea50c6ff depot: update recipe hashes 2018-08-08 10:59:04 +02:00
Josef Söntgen
bd91e70fae gems: add runtime to wm pkg 2018-08-02 14:36:47 +02:00
Norman Feske
9061217d80 sculpt: use vfs for config file system
By using the VFS server, we become able to populate the config-fs
content from a tar archive, which will be needed for Sculpt VC.

Issue #2902
2018-08-02 14:36:42 +02:00
Emery Hemingway
59ac5b10c7 Plugin for importing VFS content
This new vfs_import plugin allows a VFS instance to be populated during
construction using a sub-VFS configured in an '<import>' configuration
node. This allows the ram_fs File_system server to be replaced by the
VFS server by reimplementing the ram_fs 'content' feature.  At the
moment the copying of symlinks is not enabled, and the resources
obtained by the import file-system may not be freed after the import is
finished.

Fix #2906
2018-08-02 14:36:42 +02:00
Norman Feske
a2dc07056e sculpt: use cached_fs_rom as depot_rom
Fixes #2904
2018-08-02 14:36:40 +02:00
Norman Feske
d38227f840 depot: recipe for vfs_cow
Issue #2902
2018-08-02 14:36:38 +02:00
Christian Helmuth
b485caf33c depot: update recipe hashes 2018-07-03 09:40:11 +02:00
Norman Feske
46241da795 Runtime for saving copies of Sculpt's report fs
Fixes #2849
2018-07-03 09:39:33 +02:00
Josef Söntgen
74dcc7a3d5 libc: use socket fs for DNS information
The libc will now use the file given by the 'nameserver_file' attribute
to get the DNS nameserver address instead of reading '/etc/resolv.conf'.
It defaults to '/socket/nameserver' which is the common location when
using the lxip VFS plugin. As a constraint the libc will read the first
line and expects the nameserver address without any keywords in front of
it.

Fixes #2861.
2018-06-29 10:44:55 +02:00
Norman Feske
30114e214b sculpt: update pkg versions in README 2018-06-14 11:47:52 +02:00
Christian Helmuth
246bacd9da depot: update recipe hashes 2018-06-13 13:52:12 +02:00
Norman Feske
3372c1a7b2 sculpt: manage leitzentrale window layout
With this patch, the sculpt manager takes over the role the window
layouter of the leitzentrale, which eliminates the need to manually
position and size the inspect window.
2018-06-12 12:11:49 +02:00
Christian Helmuth
05f2ecc045 Increase RAM quota of depot download manager
Also increase run-script test timeout for qemu/sel4.
2018-06-12 12:11:45 +02:00
Christian Helmuth
f7ed614362 sculpt: fix inspect prompt in README 2018-06-12 12:11:40 +02:00
Christian Helmuth
bd86efe5fe depot: update recipe hashes 2018-05-31 14:02:21 +02:00
Norman Feske
43039e19f7 sculpt: update documentation to Sculpt TC 2018-05-31 14:02:20 +02:00
Norman Feske
3dd81b0d32 Sculpt for The Curious (TC)
This commit updates Early-Adopters (EA) version of Sculpt to the version
for The Curious (TC). Most importantly, it contains the new interactive
sculpt-manager component that automates many system management and
configuration tasks.
2018-05-31 14:02:20 +02:00
Norman Feske
c21e5863b9 depot_download: produce 'state' report
The state report reflects the progress of downloading, verifying, and
extracting archives. For the download step, it includes the progress
as reported by fetchurl.
2018-05-31 12:28:14 +02:00
Norman Feske
a529a35ce6 sculpt: update list of ports in README 2018-05-31 12:28:13 +02:00
Josef Söntgen
967abd4e91 sticks_blue_backdrop: increase RAM quota to 64MiB
Needed on 2560x1440 displays.
2018-05-30 13:36:28 +02:00
Josef Söntgen
329f8b30e9 sculpt: increase acpi_drv resources to satisfy T470p 2018-05-30 13:36:28 +02:00
Norman Feske
6be1d377db depot: recipe for src/gpt_write
Issue #2814
2018-05-30 13:36:24 +02:00
Norman Feske
9fd2ab1aaf depot_download: forward fetchurl progress reports
This patch enables the observation of the download progress from the
outside of the depot-download subsystem.
2018-05-30 13:36:17 +02:00
Christian Prochaska
f347cb90f1 depot: qt5 recipes
Fixes #2792
2018-05-30 12:26:19 +02:00
Emery Hemingway
e2661c58dc Convert static VFS library to dynamic library
Fix #2759
2018-05-30 12:26:19 +02:00
Christian Helmuth
3b7d6394d7 depot: update recipe hashes 2018-05-03 15:32:01 +02:00
Josef Söntgen
1f0f85f979 sculpt: add NVMe support
Fixes #2794.
2018-05-03 15:32:00 +02:00
Josef Söntgen
dd562f84fa driver_manager: add NVMe block driver
Issue #2794.
2018-05-03 15:32:00 +02:00
Norman Feske
134b07f41f wm layouter.config: improve key bindings
Handle the corner case of window cycling where the SCREEN modifier is
released before TAB. Raise focused window regardmess of key release
order.
2018-05-03 15:31:59 +02:00
Norman Feske
9b9eb01097 sculpt: increase default key-repeat rate 2018-05-03 15:31:59 +02:00
Martin Stein
53821a6285 depot_download.run: raise quotas for sel4
Give chroot and report_rom 2M instead of 1M to satisfy Sel4 on x86
64-bit.

Issue #2781
2018-05-03 15:31:22 +02:00
Norman Feske
26a2591896 menu_view: VFS-based font handling
Fixes #2773
2018-05-03 15:31:18 +02:00
Norman Feske
403b5413fc depot: raw/fonts_fs recipe
Configuration for using the VFS as font server.
2018-05-03 15:31:18 +02:00
Norman Feske
1f1302e185 terminal: use VFS-based font handling
This patch replaces the terminal's formerly built-in fonts with the new
VFS-based font handling.

To avoid the copying of the terminal's font configuration across run
scripts, this patch adds the new terminal/pkg runtime package, which
includes everything needed for instantiating a terminal: the actual
terminal component, the library dependencies (vfs_ttf, which in turn
depends on the libc), a font (bitstream-vera), and a reasonable default
configuration.

Fixes #2758
2018-05-03 15:31:17 +02:00
Norman Feske
0011dd1623 terminal: remove built-in keyboard layout handling
Fixes #2757
2018-04-19 13:38:34 +02:00
Christian Helmuth
47569458d4 depot: update recipe hashes 2018-04-19 12:39:20 +02:00
Christian Helmuth
d54f95d497 depot: update recipe hashes 2018-04-10 13:03:26 +02:00
Norman Feske
10c9b8a221 sculpt: change DNS server to 1.1.1.1
The previously used nameserver 213.73.91.35 of the CCC seems to be no
longer available.
2018-04-10 13:03:26 +02:00
Norman Feske
ecd7ff80b8 sculpt: add rudimentary GUI components
This patch enhances the default deploy scenario with the themed window
manager, a backdrop, and the (commented-out) nano3d demo.
2018-04-10 13:03:26 +02:00
Norman Feske
fed42e1742 sculpt: support window-manager key bindings 2018-04-10 11:20:48 +02:00
Norman Feske
a98a32757a Enable basic key bindings in pkg/wm 2018-04-10 11:20:48 +02:00
Norman Feske
e77aa70ba2 sculpt: adapt deploy config to new focus handling 2018-04-10 11:20:48 +02:00
Emery Hemingway
68c1b8675c gems: magic ring buffer
A ring buffer that uses a single dataspace mapped twice in consecutive
regions. This allows any operation that is less or equal to the size of
the buffer to be read or written in a single pass. The capacity of
Magic_ring_buffer is defined at runtime.

Fix #2725
2018-04-10 11:09:47 +02:00
Norman Feske
81e55e8901 gems: TrueType VFS plugin
This commit introduces a VFS plugin that exposes the glyphs and
metadata of a TrueType font as a pseudo file system. The TTF font data
is obtained from the VFS. The resulting pseudo file system is a
directory that contains the files 'glyphs', 'baseline', 'max_width',
and 'max_height'.

The counter part of the plugin is the 'Vfs_font' class that implements
the 'Text_painter::Font' interface by accessing the pseudo file system
as provided by the TTF VFS plugin.

Fixes #2740
2018-04-10 11:09:20 +02:00
Christian Helmuth
b07d6eced8 depot: update recipe hashes 2018-03-29 14:59:07 +02:00
Emery Hemingway
f27953c48d Standalone POSIX pipe utility
Pipe between files using POSIX stdio. This facilitates raw transfers
between arbitrary resources exposed by the VFS library.

Fix #2708
2018-03-08 15:22:12 +01:00
Christian Helmuth
1f7b5e75bf depot: update recipe hashes 2018-03-08 12:05:10 +01:00
Christian Helmuth
07b371a095 sculpt: link PDF version in README 2018-03-08 12:05:05 +01:00
Christian Helmuth
a8f186c7d4 depot: update recipe hashes 2018-02-28 11:05:05 +01:00
Norman Feske
32b93e1f63 sculpt: documentation 2018-02-28 11:05:02 +01:00
Norman Feske
03574e4a79 Adaptation to lxIP-based fetchurl 2018-02-28 11:01:32 +01:00
Norman Feske
eabe83d4f2 Adaptation to chroot 'writeable' attribute
Issue #2643
2018-02-19 20:50:48 +01:00
Norman Feske
e79ce5a036 depot: update recipe hashes 2018-02-16 08:42:31 +01:00
Norman Feske
cb9a448fc9 Sculpt system scenario
Issue #2676
2018-02-16 08:42:29 +01:00
Norman Feske
7260a16f67 driver manager: key remappings for sculpt
This patch adds two key remappings for the magic keys of the sculpt
scenario. KEY_DASHBOARD toggles the leitzentrale. KEY_RESTART resets
the noux-control subsystem of the leitzentrale.

Issue #2676
2018-02-15 10:27:00 +01:00
Norman Feske
fc902b797e depot: runtime definitions for sculpt installation
This patch supplements 'runtime' files to several pkg archives,
which thereby become deployable by the depot_deploy tool.

Issue #2676
2018-02-15 10:22:10 +01:00
Norman Feske
065c2163dd depot: recipe for src/depot_deploy 2018-02-14 20:41:04 +01:00
Norman Feske
fefeb29d5f Depot-download subsystem 2018-02-09 14:04:17 +01:00
Norman Feske
8d09d02b85 depot: update recipe hashes 2018-02-09 13:34:24 +01:00
Norman Feske
506bc023b7 depot: add layouter.config to raw/wm
This way, the wm subsystem does no longer propagate the ROM request for
the layouter configuration via the label 'config' to the parent.
2018-02-09 13:34:15 +01:00
Norman Feske
18d963419d depot: recipe for src/depot_query 2018-02-09 13:34:14 +01:00
Christian Helmuth
6013889028 depot: update recipe hashes 2018-01-17 12:14:44 +01:00
Norman Feske
5d6f97cc1d drivers_managed-pc: simplification
This patch removes the former use of ram_fs, fs_rom, and fs_report from
the subsystem and uses a report_rom instead. The fs-based reporting was
introduced to accommodate automatically instantiated usb_block drivers,
which turned out to be impractical for the sculpt scenario.
2018-01-17 12:14:37 +01:00
Christian Helmuth
553cf556af depot: update recipe hashes 2017-12-21 15:01:56 +01:00
Josef Söntgen
9f2bec52d5 drivers.config: accommodate intel_fb_drv CAP quota 2017-12-21 15:01:49 +01:00
Norman Feske
9899fed654 drivers_managed-pc: support system reset 2017-12-21 15:01:49 +01:00
Christian Helmuth
25ca29002e depot: update recipe hashes 2017-11-30 11:24:49 +01:00
Norman Feske
f36bc80bd7 driver_manager-pc: numlock handling
This patch incorporates key remapping rules for the input filter that
depend on the global numlock state.
2017-11-30 11:23:15 +01:00
Norman Feske
c41a9e6a21 drivers_managed-pc: support audio, acpica 2017-11-30 11:23:13 +01:00
Norman Feske
c05ab9c310 drivers_managed-pc: propagate keyboard LEDs
This patch supplements the drivers subsystem with the ability to
propagate the global capslock and numlock states to PS/2 and USB HID
keyboards.
2017-11-30 11:23:12 +01:00
Christian Helmuth
491be000ca depot: update recipe hashes 2017-11-09 12:19:59 +01:00
Alexander Boettcher
aec97b7da0 driver_manager: add fb_boot_drv support 2017-11-09 12:18:41 +01:00
Norman Feske
2b632760b6 driver manager: increase RAM quota for usb_drv
Without this patch, usb_drv would issue a resource request when
assigning a USB device to a VM in the sculpt scenario.

Furthermore, the patch adjusts the intel_fb quota to enable it on
devices where the driver allocates the framebuffer in many 4K pieces.
2017-11-09 12:18:41 +01:00
Christian Helmuth
30948a4b0d depot: update recipe hashes 2017-11-06 13:57:25 +01:00
Christian Helmuth
ee4ee6a8ac depot: update recipe hashes 2017-10-19 13:31:18 +02:00
Norman Feske
6bfd4f4276 gems: driver-manager subsystem for PC platforms
This is a drivers subsystem that starts the most fundamental
(framebuffer, input, block) device drivers dynamically, depending on the
runtime-detected devices. The discovered block devices are reported
as a "block_devices" report.
2017-10-05 17:40:00 +02:00
Norman Feske
d8861262b2 depot: recipe for cpu_load_display 2017-10-05 17:39:58 +02:00
Norman Feske
070aa62f92 depot: recipes for file_terminal, terminal_log 2017-10-05 17:39:58 +02:00
Emery Hemingway
5c4f0e1340 depot: recipe for server/terminal
Ref #2446
2017-09-07 11:47:16 +02:00
Christian Helmuth
2ed904faab depot: update recipe hashes 2017-08-30 12:41:43 +02:00