Replacement Launcher

Discussion in 'Asus (Android)' started by anomaly, Feb 12, 2012.

Thread Status:
Not open for further replies.
  1. anomaly

    anomaly Pen Pal - Newbie

    Messages:
    40
    Likes Received:
    0
    Trophy Points:
    15
    Hi everyone, sorry for the delay in getting these up, but the new screenshots are now available at https://slice.sol1.net/projects/qtl/wiki/Screenshots showing the ASUS apps working nicely under QtL and the cursor being visible while drawing etc :)

    Hi Jamie-B, thanks for the pointers regarding the sync. I'll be sure to consult his project/thread for tips. From my perspective, the usb mode switch is actually the easy part, unloading one usb driver module and loading another. I assume it uses some form of usb networking and tcp/udp communication since his thread talks about ports and such. I'll have a more thorough read through it after work hours soon. Also I'll be sure to tap Micha when the notes/books management applet is working so they can start using it ASAP. I know how limiting the current situation is to someone with lots of notes/books...

    Are you using the EA800 version on the device itself? Or the x64 version on a pc via qvfb? I found that Qt/Embedded's QWS system erroneously allows multiple 'QWSServer' processes to access the framebuffer at the same time, clobbering each other's display. My guess is, if you're testing the PC version, you may have multiple instances of QtL running at once. Otherwise, if you're using the EA800 version, you may have eeeserver running still - you need to kill this process first via telnet or ssh and then start QtL afterwards. This weekend I'll add a test for the QWS socket and a lock to prevent multiple instances of QtL running at the same time so that it can ensure it has sole ownership of the framebuffer. Of course, once the project leaves the alpha stage and enters the beta testing stage, I'll create a proper installer that will start QtL automatically and give you a method of switching between it and the ASUS eeeserver version of the launcher as well.

    Hi Muhali, sorry I haven't had a chance to write up an in-depth howto yet but I'll be sure to get one done up soon. At this stage, you need to have ssh or telnet access to your device first (instructions can be found in other threads on this forum, let me know if you have trouble finding them and I'll dig them up). From there, you need to make a QtL directory under /etc/, you then need to unpack the downloaded file with 'tar' and copy the contents of the unpacked etc/QtL/ directory into the newly created /etc/QtL/ directory. Then you need to kill the eeeserver process on the ssh/telnet commandline using 'killall eeeserver'. Once you've done that you can run the ./QtL executable from the unpacked tar file. This might seem a bit convoluted if you're not very familiar with using Linux (I have no idea of your level of experience) but I promise a more user-friendly method is coming very soon :)

    Of course :) I intend to create a full suite of 'control panel' like applets for QtL to allow users to easily change the more common settings. And as always the actual interface description is html and css so in the mean time you can just bump up the right 'font-size' values in the applet's css stylesheet file.

    Yes it can, using Qt's 'qvfb' virtual framebuffer application on linux (I haven't made a windows build yet, but if people ask for it I'm happy to). Be sure to configure qvfb to 768x1024 to match the eeenote's screen. Also you need to be aware that none of the asus apps or their databases will be usable so you'll need to create application links by hand in the desktop.html for applications that actually exist on your system. At this stage this is primarily to test the interface design itself, letting you edit the desktop.html and test it without having to continually copy your changes to the device. Launching normal desktop applications under QtL just causes them to be launched as normal X11 apps, outside of qfvb.
     
    Last edited by a moderator: May 18, 2015
  2. eddy

    eddy Pen Pal - Newbie

    Messages:
    50
    Likes Received:
    0
    Trophy Points:
    15
    Alternatively, do the following (no need in installing shh/telnet):

    1) Upload contents of tar file to your external sd card
    2) Copy contents of etc folder from your sdcard to your etc folder on root using qtfm
    3) run consoleq and write
    Code:
    ps
    4) remember pid of eeeserver (first column of numbers, and its usually 94*)
    5) write following command
    Code:
    /mnt/extsdcard/qtl&kill pid of the eeeserver
    Enjoy


    --------------------------------------------------------------------
    Observation:

    Currently, where is no way of closing unnecessary native asus apps, so, once you open one of them, they remain running in background - waisted ram.
    3rd party apps have title bars, which overlap "mainbar (the one with the 'running tasks')" if "maximized". This 'problem' does not occur if you are running them in "minimized" mode, but "working surface" is waisted.
    imho - cursor in note taking app is irritating.

    Other than that, very well done! Keep up the good work! :)
     
  3. anomaly

    anomaly Pen Pal - Newbie

    Messages:
    40
    Likes Received:
    0
    Trophy Points:
    15
    I plan to add a taskkill / close app mechanism shortly. I believe the correct way to do this for the ASUS apps is a message via QCOP telling them to save their state and exit cleanly. I haven't implemented the QCOP side of things just yet but it's in my issue tracker.

    It's actually the other way around; the apps that appear over the main toolbar are actually running in 'normal' mode but with a geometry of 0,0,768,1024. when they receive the maximize event, they find the geometry reserved by the QWSServer process via
    Code:
    QWSServer::instance()->setMaxWindowRect(QRect(0,32,768,992));
    and end up 'maximizing' into this region. If the other apps set their window state to maximized initially they would integrate better, but we can't expect every client to do this. I'm investigating a custom QScreen driver that will allow me to handle controlling the client region compositing manually and relocate them if they try to overlap the main toolbar. Another option is to send them a fake maximize event via the QWS socket, but I don't think this will be as reliable since clients are free to handle their own state as they wish in QWS. The QScreen approach also opens up some other very interesting possibilities if I can make it work... For example QScreenProxy to a VNC server, virtual consoles, multiple desktop workspaces, window thumbnails and other functionality we've become used to in real desktops... but one thing at a time :)

    As for the frames and titlebar controls, I think there's a way to over-ride these with a custom Qt 'Decoration' plugin in the server, which should be able to strip it from most apps but again in QWS clients manage their own decorations too and are free to ignore the server suggested plugin if the author wishes it. I don't think this should be a problem for any of the existing apps though and will start on this feature once some of the other basics are out of the way.

    I know it's not for everyone. I haven't written the control panel applets yet and I left the cursor enabled in this build to see if it did indeed show up in notes for another user. Rest assured you will be able to turn it on/off as you please :)

    Cheers! I only wish I had more of my own time to work on it :p
     
  4. eddy

    eddy Pen Pal - Newbie

    Messages:
    50
    Likes Received:
    0
    Trophy Points:
    15
    If that fails or is too hard to achieve, the easiest work-around would probably be recompilation of all programs with removed title bar.
     
  5. resuS

    resuS Pen Pal - Newbie

    Messages:
    94
    Likes Received:
    0
    Trophy Points:
    15
    I'm afraid I can't be agree. For writing it is unnessecery but for correcting written word and simbols it is absolutly necessery becouse every little changes of angle of pen move a cursor. But of couse I wish to see cursor like cross. (on the snap10.png).
     
  6. chris-lawrence

    chris-lawrence Pen Pal - Newbie

    Messages:
    37
    Likes Received:
    0
    Trophy Points:
    15
    I must have missed the bit about killing the eeeserver :) -- my bad.
     
  7. anomaly

    anomaly Pen Pal - Newbie

    Messages:
    40
    Likes Received:
    0
    Trophy Points:
    15
    True, but I do want a more universal solution that will work as expected regardless of what application the user decides to port/install on their device so I'm avoiding this option if I can help it. I also don't want to fork other people's work - unless of course they want their applications to be bundled with QtL and don't mind making the necessary tweaks to make it all integrate nicely. We'll definitely hold on to this option should the need arise but I will still try to find a universal, lower level solution. And I do still like the other possibilities a custom QScreen driver can provide. :)

    Hi Jamie-B, sorry I didn't address this query earlier, I had meant to. Unfortunately I can't think of any specific references off the top of my head for reverse engineering or developing for embedded platforms.. everything I know about Linux, embedded systems, and software development have been gained through a lot of hands-on experience in dismantling and tweaking firmwares and devices over the years. The only advice I can give is to pick a spot and dive right in.. and never give up.

    Someone gave me a Slackware Linux 2.0 cdrom when I was 17 without XWindows and I spent (literally) weeks trying to fetch all the library dependencies and compile them by hand only to find that one library depended on yet another library I had to fetch and build first and so on and so on until eventually I had a working GUI. It was torture (and I think the culprit who gave me the cdrom knew it would be) but it was also incredibly rewarding when I finally managed it, and taught me so very much about Linux and gcc and how it all pieces together. After that, it was a logical extension to try to get Linux onto something other than my PC once I heard it was possible so I started looking at (and in) embedded devices, as well as building custom kernels and tweaking everything to run as well as possible.

    These days it's probably easier with all the online resources available and embedded dev kits around to start with. Not to mention it taking minutes to download all the development tools necessary now instead of days/weeks on dialup. :) If I come across any good materials I'll send them your way.

    I guess the first question is, what experience/skills do you have currently? Do you have any development or linux experience? Electronics? PC Diagnostics/Repair or Windows system administration?

    If you don't have any knowledge or experience with how the hardware and software of a system interface with eachother, this book might be a good starting place. It's fairly current and goes into a fair bit of detail while remaining readable: Inside the Machine: An Illustrated Introduction to Microprocessors and Computer Architecture

    If you don't have much or any Linux experience, then it would be a good start to download a linux distribution like Ubuntu and become familiar with the basics of it, then challenge yourself by attempting to configure, tweak, and compile a custom kernel without breaking everything :)
     
    Last edited by a moderator: May 18, 2015
  8. GSXRCarlos

    GSXRCarlos Pen Pal - Newbie

    Messages:
    21
    Likes Received:
    0
    Trophy Points:
    5
    I thought about - but quickly decided against it - i think i'll just read up on what you guys are doing and wait for the installers :p
     
  9. resuS

    resuS Pen Pal - Newbie

    Messages:
    94
    Likes Received:
    0
    Trophy Points:
    15
    Hey, Anomaly. How is the progress going?
     
  10. anomaly

    anomaly Pen Pal - Newbie

    Messages:
    40
    Likes Received:
    0
    Trophy Points:
    15
    Hi resuS,

    Unfortunately I didn't get any time this weekend to work on it, I had a client who was being audited for PCI DSS compliance and had to assist as well as a new server deployment and app migration for another that had to be done outside of work hours. Hopefully this weekend will be less eventful :)
     
Loading...
Thread Status:
Not open for further replies.

Share This Page