Re: Qt Virtualkeyboard example

2017-07-26 Thread Christian Prochaska
Hi Johannes,

On 26.07.2017 14:42, Johannes Kliemann wrote:
> Hi,
>
> I tried to build the Qt Virtualkeyboard example.
> I adapted the target.mk of the calculatorform example to point to the
> correct project file.
> Make fails at the project file at line 6 with missing separator. This
> part contains the following:
>
> static {
> QT += svg
> QTPLUGIN += qtvirtualkeyboardplugin
> }
>
>
> Is there an additional flag required? Manually running qmake && make
> works fine.

the Genode build system does not run qmake, but includes the qmake project file 
as if it were a Makefile. This works well for simple
project files, but if the project file uses qmake-specific syntax and these 
parts are relevant, they must be replaced with something
that GNU make understands. In your case it would probably suffice to just 
delete the 'static {' line and the '}' line.

The 'QT' variable gets evaluated in [1] and there's no svg support right now. A 
port of the Qt5Svg library would include the
following new files:

- repos/libports/lib/import/import-qt5_svg.mk
- repos/libports/lib/mk/qt5_svg.mk
- repos/libports/lib/mk/qt5_svg_generated.inc

The 'QTPLUGIN' variable does not get evaluated in the 'target_final.inc' file 
right now. To do that, I think you would need to add
each part of the variable content to the LIBS variable (prefixed with 'qt5_'), 
resulting in 'LIBS += qt5_qtvirtualkeyboardplugin' in
your case, and then build the plugin as a shared library, similar to the 
'qt5_qjpeg' library.

I've attached the generated include files and a patch with the script used to 
generate the files, in case you need to change the
configuration and regenerate them.

Regards,
Christian

[1] 
https://github.com/genodelabs/genode/blob/master/repos/libports/src/app/qt5/tmpl/target_final.inc

QT_DEFINES += -DQT_NO_FOREACH -DQT_NO_USING_NAMESPACE -DQT_BUILD_SVG_LIB 
-DQT_BUILDING_QT -DQT_NO_CAST_TO_ASCII -DQT_ASCII_CAST_WARNINGS -DQT_MOC_COMPAT 
-DQT_USE_QSTRINGBUILDER -DQT_DEPRECATED_WARNINGS 
-DQT_DISABLE_DEPRECATED_BEFORE=0x05 -DQT_NO_EXCEPTIONS 
-D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_WIDGETS_LIB 
-DQT_GUI_LIB -DQT_CORE_LIB

QT_INCPATH += \
  qtsvg/src/svg \
  qtsvg/include \
  qtsvg/include/QtSvg \
  qtsvg/include/QtSvg/5.8.0 \
  qtsvg/include/QtSvg/5.8.0/QtSvg \
  qtbase/include/QtWidgets/5.8.0 \
  qtbase/include/QtWidgets/5.8.0/QtWidgets \
  qtbase/include/QtGui/5.8.0 \
  qtbase/include/QtGui/5.8.0/QtGui \
  qtbase/include/QtCore/5.8.0 \
  qtbase/include/QtCore/5.8.0/QtCore \
  qtbase/include \
  qtbase/include/QtWidgets \
  qtbase/include/QtGui \
  qtbase/include/QtCore \
  qtbase/mkspecs/genode-g++

QT_SOURCES += \
  qsvggraphics.cpp \
  qsvghandler.cpp \
  qsvgnode.cpp \
  qsvgstructure.cpp \
  qsvgstyle.cpp \
  qsvgfont.cpp \
  qsvgtinydocument.cpp \
  qsvgrenderer.cpp \
  qsvgwidget.cpp \
  qgraphicssvgitem.cpp \
  qsvggenerator.cpp \
  moc_qsvgwidget.cpp

QT_VPATH += \
  qtsvg/src/svg \

# some source files need to be generated by moc from other source/header files 
before
# they get #included again by the original source file in the compiling stage

# source files generated from existing header files ('moc_%.cpp: %.h' rule in 
import-qt5.inc)
# extracted from 'compiler_moc_header_make_all' target

COMPILER_MOC_HEADER_MAKE_ALL_FILES = \
  moc_qsvgrenderer.cpp \
  moc_qsvgwidget.cpp \
  moc_qgraphicssvgitem.cpp

# source files generated from existing source files ('%.moc: %.cpp' rule in 
import-qt5.inc)
# extracted from 'compiler_moc_source_make_all' rule

COMPILER_MOC_SOURCE_MAKE_ALL_FILES = \
 

QT_DEFINES += -DQT_VIRTUALKEYBOARD_DEFAULT_STYLE=\"default\" 
-DQT_VIRTUALKEYBOARD_DESKTOP -DQT_VIRTUALKEYBOARD_HAVE_XCB -DQT_NO_EXCEPTIONS 
-D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE -DQT_NO_DEBUG -DQT_PLUGIN 
-DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NO_QML_DEBUGGER -DQT_NETWORK_LIB 
-DQT_CORE_LIB

QT_INCPATH += \
  qtvirtualkeyboard/src/virtualkeyboard \
  qtdeclarative/include \
  qtdeclarative/include/QtQuick \
  qtbase/include/QtGui/5.8.0 \
  qtbase/include/QtGui/5.8.0/QtGui \
  qtbase/include \
  qtbase/include/QtGui \
  qtdeclarative/include/QtQml \
  qtbase/include/QtNetwork \
  qtbase/include/QtCore/5.8.0 \
  qtbase/include/QtCore/5.8.0/QtCore \
  qtbase/include/QtCore \
  qtbase/mkspecs/genode-g++

QT_SOURCES += \
  platforminputcontext.cpp \
  inputcontext.cpp \
  abstractinputmethod.cpp \
  plaininputmethod.cpp \
  inputengine.cpp \
  shifthandler.cpp \
  plugin.cpp \
  inputmethod.cpp \
  selectionlistmodel.cpp \
  defaultinputmethod.cpp \
  abstractinputpanel.cpp \
  enterkeyaction.cpp \
  enterkeyactionattachedtype.cpp \
  settings.cpp \
  virtualkeyboardsettings.cpp \
  trace.cpp \
  desktopinputpanel.cpp \
  inputview.cpp \
  appinputpanel.cpp \
  qrc_default_style.cpp \
  qrc_retro_style.cpp \
  qrc_content.cpp \
  qrc_layouts.cpp \
  moc_platforminputcontext.cpp \
  moc_inputcontext.cpp \
  moc_abstractinputmethod.cpp \
  moc_plaininputmethod.cpp \
  moc_inputengine.cpp \
  

Re: Genode 17.05 dde_rump ISO filesystem

2017-07-26 Thread Steven Harp


On 7/26/17 1:58 AM, Norman Feske wrote:
> 
> thank you very much for reporting the issue. We indeed missed to adjust
> the run script to the changes of the routing of the environment sessions
> introduced earlier this year. I just fixed the problem with commit [1]
> on the staging branch. May you try cherry-picking this commit?
> 
> [1]
> https://github.com/genodelabs/genode/commit/89642795a00a1ed3f404cb4a2e75a1ecfec93e90

Thanks for the quick (and instructive) patch -- tested and showing full success 
here.

// Steve




signature.asc
Description: OpenPGP digital signature
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Networking Support in VirtualBox

2017-07-26 Thread Chris Rothrock
I have pulled the latest commit and have a new build created (still giving
the same condition with no video on either VM window but GUI still works).
The serial log output is below.  Several items stand out that I can see.
Assertion failed from [init -> vbox1] EMT,[init -> vbox2] EMT, and NAT
driver is missing.  This would stand to reason why the vboxes are failing
if the NAT has no driver.  The virtualbox run recipe has the nic_bridge
enabled (because use_net and use_gui are both enabled) so for some reason
there appears to be a missing component where it comes to the NAT driver.



NOVA Microhypervisor v7-2006635 (x86_64): Jul 25 2017 11:23:13 [gcc 6.3.0]
[MBI]

[ 0] TSC:340 kHz BUS:0 kHz DL
[ 0] CORE:0:0:0 6:9e:9:1 [48] Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz
[ 3] CORE:0:3:0 6:9e:9:1 [48] Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz
[ 2] CORE:0:2:0 6:9e:9:1 [48] Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz
[ 1] CORE:0:1:0 6:9e:9:1 [48] Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz
[ 0] disabling super pages for DMAR
Hypervisor features VMX
Hypervisor reports 4x1 CPUs
CPU ID (genode->kernel:package:core:thread) remapping
 remap (0->0:0:0:0) boot cpu
 remap (1->1:0:1:0)
 remap (2->2:0:2:0)
 remap (3->3:0:3:0)
Hypervisor info page contains 26 memory descriptors:
core image  [0010,02682000)
binaries region [00226000,02682000) free for reuse
detected physical memory: 0x - size: 0x0008ec00
use  physical memory: 0x - size: 0x0008e000
detected physical memory: 0x0010 - size: 0xb2bfb000
use  physical memory: 0x0010 - size: 0xb2bfb000
detected physical memory: 0xb3aff000 - size: 0x1000
use  physical memory: 0xb3aff000 - size: 0x1000
detected physical memory: 0x0001 - size: 0x00013f80
use  physical memory: 0x0001 - size: 0x00013f80
:virt_alloc: Allocator 0x1e76f0 dump:
 Block: [2000,3000) size=4K avail=0 max_avail=0
 Block: [3000,4000) size=4K avail=0 max_avail=0
 Block: [4000,5000) size=4K avail=0 max_avail=0
 Block: [5000,6000) size=4K avail=0 max_avail=0
 Block: [6000,7000) size=4K avail=0 max_avail=0
 Block: [7000,8000) size=4K avail=0 max_avail=0
 Block: [8000,9000) size=4K avail=0 max_avail=0
 Block: [9000,a000) size=4K avail=0 max_avail=0
 Block: [a000,b000) size=4K avail=0 max_avail=0
 Block: [b000,c000) size=4K avail=0 max_avail=0
 Block: [c000,d000) size=4K avail=0 max_avail=0
 Block: [d000,e000) size=4K avail=0 max_avail=0
 Block: [e000,f000) size=4K avail=0 max_avail=0
 Block: [f000,0001) size=4K avail=0 max_avail=0
 Block: [0001,00011000) size=4K avail=0 max_avail=0
 Block: [00011000,00012000) size=4K avail=0 max_avail=0
 Block: [00012000,00013000) size=4K avail=0 max_avail=0
 Block: [00013000,00014000) size=4K avail=0
max_avail=137434760164K
 Block: [00014000,00015000) size=4K avail=0 max_avail=0
 Block: [00015000,00016000) size=4K avail=0 max_avail=0
 Block: [00016000,00017000) size=4K avail=0 max_avail=0
 Block: [00017000,00018000) size=4K avail=0 max_avail=0
 Block: [00018000,00019000) size=4K avail=0 max_avail=0
 Block: [00019000,0001a000) size=4K avail=0 max_avail=908K
 Block: [0001a000,0001b000) size=4K avail=0 max_avail=0
 Block: [0001b000,0001c000) size=4K avail=0 max_avail=908K
 Block: [0001c000,0001d000) size=4K avail=0 max_avail=0
 Block: [0001d000,0010) size=908K avail=908K
max_avail=908K
 Block: [00226000,00227000) size=4K avail=0 max_avail=0
 Block: [00227000,00228000) size=4K avail=0
max_avail=137434760164K
 Block: [00228000,00229000) size=4K avail=0 max_avail=0
 Block: [00229000,a000) size=2619228K avail=2619228K
max_avail=2619228K
 Block: [b000,bfeff000) size=261116K avail=261116K
max_avail=137434760164K
 Block: [bff04000,7fffbfffd000) size=137434760164K
avail=137434760164K max_avail=137434760164K
 => mem_size=140736144932864 (134216446 MB) / mem_avail=140736144809984
(134216446 MB)

:phys_alloc: Allocator 0x1e6620 dump:
 Block: [1000,2000) size=4K avail=0 max_avail=0
 Block: [2000,3000) size=4K avail=0 max_avail=0
 Block: [3000,4000) size=4K avail=0 max_avail=0
 Block: [4000,5000) size=4K avail=0 max_avail=0
 Block: 

Qt Virtualkeyboard example

2017-07-26 Thread Johannes Kliemann
Hi,

I tried to build the Qt Virtualkeyboard example.
I adapted the target.mk of the calculatorform example to point to the
correct project file.
Make fails at the project file at line 6 with missing separator. This
part contains the following:

static {
QT += svg
QTPLUGIN += qtvirtualkeyboardplugin
}


Is there an additional flag required? Manually running qmake && make
works fine.

Regards,
JK

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Blocking wait for interrupt

2017-07-26 Thread Johannes Kliemann
Hi Sebastian,

thanks for your answer.

I tried to implement the relevant parts with Lx::Tasks. It seems to me
that those Tasks are designed to run some kind of endless control flow.
Beside this, I wasn't able to get an interrupt while blocking inside the
task.Yet I'm not sure if I used the tasks correctly.

Maybe I should try to explain how the driver is intended to work.
It consists of two parts, a touch driver that is written natively for
Genode and uses I2C to communicate with its controller. And a I2C driver
for the controller that I try to port from Linux
(drivers/i2c/busses/i2c-designware-core.(c|h)).
The send method of the Linux driver is implemented as I described it in
my first mail.
This behaviour is only triggered if the send method is called and
returns after the message is sent or the controller timed out. The
return causes an unexpected return error in the task.
Beside that the interrupt never occurs while the task is inside the
Linux code.

I'm not sure what I miss or how the Lx::Task should be used exactly in
this case.

Regards,
JK

Am 25.07.2017 um 12:52 schrieb Sebastian Sumpf:
> Hi Johannes,
> 
> On 07/25/2017 08:54 AM, Johannes Kliemann wrote:
>> Hi,
>>
>> I'm currently writing a dde_linux driver that requires to wait for an
>> interrupt to be handled.
>> It basically initializes the hardware and then waits for an event to
>> occur. This event is usually triggered by the interrupt (respectively
>> its handler) which occurs after hardware initialization.
>> My problem is that this interrupt doesn't appear while the function
>> triggering it didn't return. So when this function blocks to wait for
>> the interrupt, a deadlock is created. Besides using the timer I tried to
>> block the execution with a semaphore creating the same problem.
>> Creating an async version is no option due to the architecture of the
>> Linux driver.
>>
>> How are interrupts handled in this case? What causes them to block and
>> how can I work around this?
>>
> 
> If I gather your description correctly, you are executing Linux code
> from the entrypoint context. If this code somehow blocks, lets say by
> calling 'wait_event_interruptible' or something else, the EP cannot
> receive signals, and therefore no interrupts. The solution to this
> problem are 'Lx::Task'(s). All Linux code should be executed by these
> tasks, which are able to block and can be unblocked by the EP upon
> signal reception. A small example can be found under
> 'dde_linux/src/drivers/framebuffer/intel/main.cc', there the Linux code
> is executed by a task in 'run_linux', which is woken up by the
> 'Policy_agent' signal handler.
> 
> Regards,
> 
> Sebastian
> 
> P.S. I hope you are porting a driver and not writing one from scratch ;)
> 
> 
> 



signature.asc
Description: OpenPGP digital signature
--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Using Genode 17.05 with Fiasco.OC

2017-07-26 Thread Norman Feske
Hi Jörg,

unfortunately, I am unable to diagnose the vserver issue.

> Ok. May I ask the recommended kernel for the following embedded board
> Rpi/pandaboard/wand quad ? It looks like there is only Fiasco.OC,
> because Fiasco.OC has ARM support, or?

these boards are supported also by the so-called "base-hw" kernel, which
is a custom kernel that is especially designed for Genode. It is
described in detail in Section 7.7 of the "Genode Foundations" book [1].

[1] http://genode.org/documentation/genode-foundations-17-05.pdf

There is also work in progress (planned for the upcoming release 17.08)
to use the seL4 kernel on a wider variety of platforms including x86_64
and ARM.
> This means, master is always stable ? I was expected that the tagged
> version is a stable release version.

The master branch is considered stable. It is updated from the staging
branch not before staging passes our regular QA including a large suite
of automated tests. A release is a snapshot of the master branch
accompanied with documentation [2] that describes the rationale of the
development during the release cycle. To learn more about the flow of
development, please refer to Section 5.5 of the book mentioned above.

[2] http://genode.org/documentation/release-notes/index

Cheers
Norman

-- 
Dr.-Ing. Norman Feske
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


Re: Genode 17.05 dde_rump ISO filesystem

2017-07-26 Thread Norman Feske
Hi Steve,

On 26.07.2017 02:24, Steven Harp wrote:
> The ISO file system however left me a puzzle (trace below; default
> caps line added to run file.) The same results appear under builds
> x86_{32,64} x KERNEL={linux,nova}.
> 
> Any ideas regarding what might be going wrong?  The prepared test
> image fs.iso appears to have the intended file "test.txt" on it.

thank you very much for reporting the issue. We indeed missed to adjust
the run script to the changes of the routing of the environment sessions
introduced earlier this year. I just fixed the problem with commit [1]
on the staging branch. May you try cherry-picking this commit?

[1]
https://github.com/genodelabs/genode/commit/89642795a00a1ed3f404cb4a2e75a1ecfec93e90

Cheers
Norman

-- 
Dr.-Ing. Norman Feske
Genode Labs

http://www.genode-labs.com · http://genode.org

Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden
Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth

--
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
___
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main