Страниц: [1]
  Печать  
Автор Тема: Хphoton Port for QNX 6.4.1  (Прочитано 7240 раз)
bbceler
Full Member
***
Offline Offline

Сообщений: 149


Просмотр профиля WWW
« : Марта 16, 2010, 06:35:34 pm »

André Wösten выложил на http://qnx.falloutshelter.de/ сорсы xphoton.
Он строится на xorg-server-1.6.3.
Там тоже вы найдете phinstaller.

Записан
agent
Sr. Member
****
Offline Offline

Сообщений: 328


Fresh solutions


Просмотр профиля
« Ответ #1 : Марта 17, 2010, 12:36:13 am »

Посмотрел, но в деле не пробовал. Интересно. Сам XPhotonом пробовал заниматься, но заморочек в нем много оказалось. Smiley Инструкцию по установке, правда, маловата.
Записан
awoesten
Участник
*
Offline Offline

Сообщений: 4


Просмотр профиля
« Ответ #2 : Августа 02, 2010, 06:41:31 pm »

Sorry, I cannot speak russian (but Google Translator did the job for me). You can find more information for installing it here:

http://209.226.137.8/sf/discussion/do/listPosts/projects.pkgsrc/discussion.pkginfo.topc12895

I posted it on openqnx and foundry27 too, but apparently noone is interested. I hope you can do something with it. For questions just write here, I will check this thread from time to time.

Best regards,
André Wösten
Записан
bbceler
Full Member
***
Offline Offline

Сообщений: 149


Просмотр профиля WWW
« Ответ #3 : Августа 03, 2010, 11:33:04 am »

I compiled Xphoton without problems.
And so:
# ./Xphoton
(nto.c                | 00317 | OsVendorInit): >>>
Xphoton starting:
X.Org X Server 1.6.3
Build Date: 20100405
Display mode: Rootless Photon
(nto.c                | 00278 | InitOutput ): InitOutput(816afc0,1...)
[dix] Could not init font path element /usr/pkg/lib/X11/fonts/OTF, removing from list!
(photonCursor.c       | 00056 | PhotonRealizeCursor): >>>
(photonCursor.c       | 00056 | PhotonRealizeCursor): >>>
(photonCursor.c       | 00039 | PhotonCrossScreen): >>>
(photonCursor.c       | 00072 | PhotonSetCursor): >>>
(photonCursor.c       | 00056 | PhotonRealizeCursor): >>>
(nto.c                | 00255 | InitInput ): InitInput(1,...)
(ntoEvents.c          | 00061 | NtoEQInit): >>>
(nto.c                | 00194 | NtoMouseProc ): NtoMouseProc(8194138,0)
(nto.c                | 00225 | NtoKeybdProc ): NtoKeybdProc(817f2f0,0)
Found keyboard file: en_US_101.kbd
de_DE_102.kbd <-> en_US_101.kbd
Keyboard fallback
(nto.c                | 00194 | NtoMouseProc ): NtoMouseProc(8194138,1)
(nto.c                | 00225 | NtoKeybdProc ): NtoKeybdProc(817f2f0,1)


#pidin
..........................
841121877   1 ./s5ipc             10r SIGWAITINFO
841121877   2 ./s5ipc             10r RECEIVE     1
843104289   1 r/photon/bin/pterm  10r RECEIVE     1
843104294   1 bin/sh              10r REPLY       180243
843329560   1 usr/photon/bin/ped  10r REPLY       253983
843329575   1 ./Xphoton           10r SIGWAITINFO
#
# xlogo
Warning: Cannot convert string "xlogo32" to type Pixmap

and
843329575   1 ./Xphoton               10r SIGWAITINFO
843358248   1 usr/pkg/bin/xlogo   10r SIGWAITINFO

(nto.c                | 00225 | NtoKeybdProc ): NtoKeybdProc(817f2f0,1)
New Window 0,0 102x102 root 0 Redirect 0
create wdw = 820cac0, wid = 83b22c0
PtRealizeWidget ret = 0 (errno 0) rid = 107
got_focusfn
lost_focusfn

Everything is all right, but when I move xlogo window the problem appears

843329575   1 ./Xphoton               10r READY
843358248   1 usr/pkg/bin/xlogo   10r SIGWAITINFO

and after closed xlogo:
lost_focusfn
got_focusfn
lost_focusfn
destroy wdw = 820cac0
(photonCursor.c       | 00072 | PhotonSetCursor): >>>
(nto.c                | 00317 | OsVendorInit): >>>
Xphoton starting:
X.Org X Server 1.6.3
Build Date: 20100405
Display mode: Rootless Photon
(nto.c                | 00278 | InitOutput ): InitOutput(816afc0,1...)
[dix] Could not init font path element /usr/pkg/lib/X11/fonts/OTF, removing from list!
(photonCursor.c       | 00056 | PhotonRealizeCursor): >>>
(photonCursor.c       | 00039 | PhotonCrossScreen): >>>
(photonCursor.c       | 00072 | PhotonSetCursor): >>>
(nto.c                | 00255 | InitInput ): InitInput(1,...)
(ntoEvents.c          | 00061 | NtoEQInit): >>>
(nto.c                | 00194 | NtoMouseProc ): NtoMouseProc(8347780,0)
(nto.c                | 00225 | NtoKeybdProc ): NtoKeybdProc(8347548,0)
Found keyboard file: en_US_101.kbd
de_DE_102.kbd <-> en_US_101.kbd
Keyboard fallback
(nto.c                | 00194 | NtoMouseProc ): NtoMouseProc(8347780,1)
(nto.c                | 00225 | NtoKeybdProc ): NtoKeybdProc(8347548,1)

but
843329575   1 ./Xphoton           10r READY

I have the return to the state "./Xphoton 10r SIGWAITINFO"  in the case of the old version Xphoton.
This same is when I change the size of the window.
New xphoton still stays in the READY state after change the size when old xphoton   go to SIGWAITINFO

bogdan
 
 
 
Записан
awoesten
Участник
*
Offline Offline

Сообщений: 4


Просмотр профиля
« Ответ #4 : Августа 03, 2010, 12:45:18 pm »

Okay, thank you. I will test it myself and give it a try!

André
Записан
awoesten
Участник
*
Offline Offline

Сообщений: 4


Просмотр профиля
« Ответ #5 : Августа 03, 2010, 09:40:41 pm »

OK, I found the problem. I used an internal signalling pipe (by using file descriptors) to trigger the dispatcher of the DIX. But I didn't empty it after using it.

Thanks for giving me this hint. I always wondered why the Xphoton server needs so much CPU power (in the system monitor of QNX). Now I found out that he hanged in a loop between blocking/waking up in the server scheduler which was caused by that event pipe. If you want to fix it, do following:

1. Remove the mieqProcessInputEvents-call from the RootlessWakeupHandler in miext/rootless/rootlessScreen.c

2. Replace the ProcessInputEvents function in hw/xphoton/ntoEvents.c by this one:

Код:
void
ProcessInputEvents(void)
{
int x = 1;
char byte;

mieqProcessInputEvents();
   
// Empty the signaling pipe
while (x == 1) {
x = read(ntoEventReadFD, &byte, 1);
}
}


Thanks again!

André
Записан
bbceler
Full Member
***
Offline Offline

Сообщений: 149


Просмотр профиля WWW
« Ответ #6 : Августа 05, 2010, 11:05:35 pm »

André
I change code and I transferred to server X. Org 1.6.5
# ./XPHoton
# (nto.c                | 00317 | OsVendorInit): >>>
Xphoton starting:
X.Org X Server 1.6.5
Build Date: 20100803
Display mode: Rootless Photon
(nto.c                | 00278 | InitOutput ): InitOutput(8183ee0,1...)
[dix] Could not init font path element /usr/pkg/lib/X11/fonts/misc/, removing from list!
[dix] Could not init font path element /usr/pkg/lib/X11/fonts/TTF/, removing from list!
[dix] Could not init font path element /usr/pkg/lib/X11/fonts/OTF, removing from list!
[dix] Could not init font path element /usr/pkg/lib/X11/fonts/Type1/, removing from list!
[dix] Could not init font path element /usr/pkg/lib/X11/fonts/100dpi/, removing from list!
[dix] Could not init font path element /usr/pkg/lib/X11/fonts/75dpi/, removing from list!
(photonCursor.c       | 00056 | PhotonRealizeCursor): >>>
(photonCursor.c       | 00056 | PhotonRealizeCursor): >>>
(photonCursor.c       | 00039 | PhotonCrossScreen): >>>
(photonCursor.c       | 00072 | PhotonSetCursor): >>>
(photonCursor.c       | 00056 | PhotonRealizeCursor): >>>
(nto.c                | 00255 | InitInput ): InitInput(1,...)
(ntoEvents.c          | 00067 | NtoEQInit): >>>
(nto.c                | 00194 | NtoMouseProc ): NtoMouseProc(81ca070,0)
(nto.c                | 00225 | NtoKeybdProc ): NtoKeybdProc(81c9e38,0)
Found keyboard file: en_US_101.kbd
de_DE_102.kbd <-> en_US_101.kbd2773037   1 sr/pkg/bin/Xphoton  10r READY
3743785   1 bin/sh              10r SIGSUSPEND
4571180   1 ./xlogo             10r SIGWAITINFO
Keyboard fallback
(nto.c                | 00194 | NtoMouseProc ): NtoMouseProc(81ca070,1)
(nto.c                | 00225 | NtoKeybdProc ): NtoKeybdProc(81c9e38,1)
and

==================================================
 2621483   1 usr/photon/bin/ped  10r REPLY       262175
 2773037   1 sr/pkg/bin/Xphoton  10r SIGWAITINFO
 3743785   1 bin/sh              10r SIGSUSPEND
 4014124   1 bin/pidin           10r REPLY       1

 And after ./xlogo
2773037   1 sr/pkg/bin/Xphoton  10r READY
3743785   1 bin/sh              10r SIGSUSPEND
4571180   1 ./xlogo             10r SIGWAITINFO
Now change the size of the window and movig window work but STATE Xphoton is RUNNING, REPLY and  READY
After closing xlogo state Xphoton changes still. And CPU work very hard.
And why state Xphoton does not change to SIGWAITINFO how this does old version Xphoton?








Записан
awoesten
Участник
*
Offline Offline

Сообщений: 4


Просмотр профиля
« Ответ #7 : Октября 21, 2011, 01:20:58 am »

Bogdan,

back to life. Now I really solved this problem. This is the correct code to clean the signalling pipe:

Код:
void
ProcessInputEvents(void)
{
xEvent  xe;
int x = sizeof(xe);
   
    mieqProcessInputEvents();

    // Empty the signaling pipe
    while (x == sizeof(xe)) {
      x = read(ntoEventReadFD, &xe, sizeof(xe));
    }
   
}

RootlessWakeupHandler in miext/rootless/rootlessScreen.c has to be disabled still. Now I get SIGWAITINFO Smiley

Still working on the Xphoton port, implemented correct moving of windows, correct displaying  of more than 1 window and some other stuff. Now I have to correct some disgusting charset and keyboard handling stuff.

I will report further progress here.

Regards
André
Записан
bbceler
Full Member
***
Offline Offline

Сообщений: 149


Просмотр профиля WWW
« Ответ #8 : Октября 23, 2011, 02:29:04 am »

André,
OK, I checked now it is much better.
For the Xphoton compilation I prepared the pkgsrc package using your patch.
Regards,
bogdan.
Записан
Страниц: [1]
  Печать  
 
Перейти в: