[WEBTOP] A practical & free thin client solution (fast and power-saving!) - Atrix 4G General

Introduction
Thin client
By "thin client" I mean running a remote desktop on atrix webtop. Atrix itself doesn't have powerful processors(okay okay, I know 2x1.0Ghz cores are good for a phone. Go ahead, compare it with 24core+96GB memory big-ass blade server. Do it. ), but with a lapdock it has very good battery life and good connectivity. Also, the overall weight/size of this device is unbeatable, compared to any notebook/ultrabook. These factors together make atrix+lapdock the very best form of a thin client.
If you still don't get it, think about running MS Word/ Visual studio/ Anything X86 on your lapdock.
Citrix
If you have ever used a stock webtop, you might have heard of something called "citrix" -- a commercial cloud-based thin-client solution, which will turn an atrix with lapdock to a mobile workstation. Indeed, citrix is cool, but you have to pay for it... And since it's cloud-based, you cannot access your own computer in this way.
So, why not pull together a free toolset and let it run on your own computer?
Get most goodies out of citrix, and throw it away
Wait...Did you say "power-saving"?
Yes I did. To connect to the host computer, it must stay operational. But you definitely don't want it to stay there and draw power for nothing right? My goal is, automatically wake up the host on-demand, and automatically put it back to sleep when atrix is disconnected.
Recommended configuration
I'm not going to write a super-complete guide to build such a system. It's not hard at all, and also it's different for every one of us. So, say "recommended environment" is better than "prerequisites".
To get an ideal experience, you'll probably need:
Gentop. Thanks to Gendol, now we have a very flexible & fast gentoo distribution. My solution is based on his work. It should also run on modified stock webtop, but it would be hard to get the up-to-date packages you need.
A windows-based computer. Ideally it should be Windows 7/8/Server 2008/R2/2012. Because, with these versions, the remote desktop protocol is upgraded to 7.1, much better than previous versions. RDP 7.1 is really cool. Until the Linux community invents something similar to this, I'm not going to recommend linux as the host.
Good network condition. For my case, I live in a university campus. My host computer is connected to 100Mbps LAN with a fixed domain name, and the whole campus is covered by very fast wireless network. Theoretically it can support me to play 720p video / run RemoteFX demo on the phone. (see this RemoteFX+FreeRDP demo )
And you probably don't want:
vnc. dog-slow! don't use this!
rdesktop. This one supports RDP, but only an ancient version. Don't use this, or you'll get laggy display but waste higher bandwidth. not worthy at all.
Deployment
Client side
I'll assume a clean Gentop installation here.
Fire up a terminal, and emerge these packages:
Code:
emerge wol freerdp
You may need to do some --autounmask-write.
wol is used for waking the host computer up. And freerdp is the next-generation RDP protocol library. The X11 front-end is called xfreerdp.
After you've got these packages ready, create bin/ in your home directory and add it to your $PATH:
Code:
echo "export PATH=$PATH:~/bin/" >> ~/.bashrc
echo "export PATH=$PATH:~/bin/" >> ~/.bash_login
cd ~
mkdir bin
cd bin
Create a file called rdp, and give it execution permission:
Code:
touch rdp
chmod +x rdp
leafpad rdp #or any other file editor you like
Paste these stuff in, modify user settings, save and close:
Code:
#!/bin/bash
############ User settings #############
host='your_host, or ip'
username='your username'
password='your password'
mac_addr='XX:XX:XX:XX:XX:XX' # you can find it with cmd.exe -> ipconfig /all
############ User settings end #########
echo -n 'Waiting for the host to wake up.'
ping_result=''
while [ -z "$ping_result" ]
do
wol -h $host $mac_addr > /dev/null
echo -n '.'
ping_result=`ping $host -c 1 | head -n 2 | tail -n 1`
done
echo ''
echo 'Host is awaken.'
session_result=`xfreerdp -u $username -p $password -x lan -f --plugin rdpsnd x61 | tail -n 1`
if [ "$session_result" == 'Closed from X' ]
then
echo 'Session successfully closed.'
echo 'Putting host to sleep again...'
echo "sleep 1;echo -e '$username\r';sleep 1;echo -e '$password\r';sleep 1;echo -e 'wizmo standby\r';sleep 1;" > ~/bin/telnet_sleep
chmod +x ~/bin/telnet_sleep
~/bin/telnet_sleep | telnet $host > ~/bin/telnet_sleep.log
else
echo 'Session disconnected unexpectedly.'
echo 'I will not put the host to sleep in this case.'
echo $session_result
fi
That's it, client side ready to go.
Server side
First for some versions you need to enable remote desktop:
Follow this.
Then, for server systems, if you need sound, you need to follow this.
After that, enable telnet server.
Follow this.
Then, download this nice small tool(very useful!) from here, put it into your Windows folder, for example, C:\Windows\
This small tool will enable putting computer to sleep via telnet.
The important last step:
Enable wake-on-lan. This is perhaps the most hard-to-explain part, since it's related to multiple steps, and will vary with different hardwares. But basically, first you need to ensure that in BIOS settings Wake-On-Lan is enabled. Second, make sure that you've installed the correct driver so that your network card works correctly with Windows. Third, some cards need special patches. For example, Lenovo/IBM Thinkpads need this. Last, enable WOL-related power-management settings in windows, follow this. Note: It seems that not all steps are necessary. I only had my network card power management settings tweaked and it worked. Proceed incrementally.
That's all about the server side.
Usage
To connect to the (may be asleep) host, fire up a terminal, and run this:
Code:
rdp
It will probe, until the host is awaken.
Note that the session will start in full screen mode. To exit full screen, simultaneously press "ctrl-alt-enter".
Normally, to end the session, exit full screen mode, click on "x" in the title bar.
The script will detect this action and automatically put the host to sleep.
In other cases, for example, killed from terminal, or disconnected due to network problems, it won't put remote computer to sleep.
That's all about it. Hope you'll enjoy this. And drop me message if you encounter any problem with this.

Related

Is it possible to emulate Ctrl Key on the Universal?

I use PocketPuTTy to access my Linux box at home. However, the absence of a Ctrl Key on the Universal severly limits the possibilities. For example: I want to use btdownloadcurses to download a torrent on the box at home. I want to check in periodically, to see how the dl is doing. So what I'd like to do is ssh in, start the download, then dettach the screen (Ctrl-a d) and log out. I could then log in again at any time and use screen -r to reattach and check the progress. Or also just for simple Ctrl-c when I messed up something.
Is there a way to do this?
Yes it is:
http://forum.xda-developers.com/showthread.php?t=249037&highlight=ctrl

How to host your own website on a Raspberry Pi

How to host your own website on a Raspberry Pi
Requirements
Hardware:
Raspberry Pi
USB power cable
Ethernet cable and modem to connect to
HDMI cable (temporary need)
Monitor (temporary need)
USB mouse/keyboard (temporary need)
Standard SD card
SD card reader on your computer
Software:
Raspbian image - Debian based OS for Raspberry Pi
Lighttpd - lightweight webserver that is extremely easy to set up
PageKite - makes local websites or SSH servers publicly accessible in mere seconds, and works with any computer and any Internet connection.
Also you will need to buy a domain for your site. I purchased mine through hover.com, but there are many to chose from.
First you need to setup the SD card on your Raspberry Pi.
The SD card is the harddrive for the Raspberry Pi, you'll be installing Raspbian which is a derivative of Debian. If you are familar with Linux you'll be right at home.
Here is the guick start guide for Raspbian:
http://www.raspberrypi.org/quick-start-guide
Install the latest "Raspbian" SD card image from here:
http://www.raspberrypi.org/downloads
Just follow the instructions to download the image and install it on your SD card, once we actually boot the Raspberry Pi you will set it up.
Now, here is where you temporarily need to have a monitor, keyboard, and mouse that you can use to run your Raspberry Pi.
If you don't have a monitor, mouse and keyboard, you can set up your Raspberry Pi in headless mode. Here is a link to to this, although I did not utilize this method:
http://www.penguintutor.com/linux/raspberrypi-headless
Now plug in the ethernet from the Raspberry Pi to the modem, HDMI from the Raspberry Pi to the monitor, USB to your keyboard and mouse. Plug in the SD card that you
installed Raspbian and last plug in the power. Plugging in power is how you power on the Raspberry Pi. Go through the on screen setup, be sure and change the password,
turn on SSH, set the date/time and any of ther other setup options that you think you'll need. Complete the setup and pat yourself on the back, you are on your way.
Next step, setup a static IP on your router so the Raspberry Pi always has a static IP in your home network. Here is tutorial that I followed for this
step: http://www.penguintutor.com/blog/viewblog.php?blog=6306
Once you complete this come back here to continue the setup.
Good job so far. Let's use some of our Linux skills now(I'm a huge Linix fan, it's all I run on my PCs), don't worry, it won't hurt.
Open the terminal and run the following command:
sudo apt-get install lighttpd
Did you press enter at the end of that last row? You should.
Now run the command:
sudo reboot
While your rebooting here is something to read:
lighttpd is a lightweight open source webserver. It is pronounced "Lighty" and it will listen for requests on port 80, when it receives a request
it sends back the requested webpage.
Ok and we're back. So you should be rebooted now so let's check to see if lighttpd is doing it's job. Type in the IP that you assigned to your
Raspberry Pi, for instance 192.168.1.10, on your browser. You can do it on your computer or on the Raspberry Pi's browser, it's called Midori.
You should get a webpage showing that lighttpd is working. The file that is being displayed is sitting on the Raspberry Pi at /var/www/ and it's
named index.html. This folder is where you will place your website. You have created your website already right? If not, you can do that once you
have completed this setup. I used a starter page from http://www.styleshout.com/.
Ok you're doing great, we're getting near the end.
Next we are going to set up an account with PageKite. PageKite charges $36/year for an account. There are free options like Dyndns, but I have
Verizon fios and am forced to use their router, thus my Dyndns did not work well for me. If you wan to use Dyndns, you can set up a free account
that should work for you.
PageKite is easy to install, just visit their page from the Raspberry Pi and setup an account and install the software. You will be installing
the Linux version and the site walks you through all the steps. Make sure your account id is NOT the same as the site you are setting up. You will
use the site name also as a secondary pagekite. Once you have your account set up with PageKite, you will need to follow this guide to setup
PageKite to point to your own doman: https://pagekite.net/wiki/Howto/CnamePageKites/
For step 2 above, if you went with hover.com, you'll need to add a new DNS with the following format:
Hostname: www
Record Type: CNAME
Target Host: sitename.accountid.pagekite.me
Complete the CnamePageKites setup and then you are done! Your website is now live on the web! See that really wasn't very hard to do.
Here is my website: www.pillar-soft.com
this is exactly what i was looking for,
but me being the clutz i am, cant get lighttpd to install, missing dependencies
Code:
Err http://mirrordirector.raspbian.org/raspbian/ wheezy/main lighttpd armhf 1.4.31-1
404 Not Found
Failed to fetch http://mirrordirector.raspbian.org/raspbian/pool/main/l/lighttpd/lighttpd_1.4.31-1_armhf.deb 404 Not Found
using the sudo apt-get install
but the static ip tutorials are very good, i'll try the lighttpd install again tomorrow
With thanks
Quiggers said:
this is exactly what i was looking for,
but me being the clutz i am, cant get lighttpd to install, missing dependencies
Code:
Err http://mirrordirector.raspbian.org/raspbian/ wheezy/main lighttpd armhf 1.4.31-1
404 Not Found
Failed to fetch http://mirrordirector.raspbian.org/raspbian/pool/main/l/lighttpd/lighttpd_1.4.31-1_armhf.deb 404 Not Found
using the sudo apt-get install
but the static ip tutorials are very good, i'll try the lighttpd install again tomorrow
With thanks
Click to expand...
Click to collapse
Did you type exactly:
sudo apt-get install lighttpd
If your still getting that error then do:
sudo apt-get update
Then,
sudo apt-get install lighttpd
Let me know if you're successful.
Sent from my Nexus 4 using xda premium
Quiggers said:
this is exactly what i was looking for,
but me being the clutz i am, cant get lighttpd to install, missing dependencies
Code:
Err http://mirrordirector.raspbian.org/raspbian/ wheezy/main lighttpd armhf 1.4.31-1
404 Not Found
Failed to fetch http://mirrordirector.raspbian.org/raspbian/pool/main/l/lighttpd/lighttpd_1.4.31-1_armhf.deb 404 Not Found
using the sudo apt-get install
but the static ip tutorials are very good, i'll try the lighttpd install again tomorrow
With thanks
Click to expand...
Click to collapse
You need to do
Code:
sudo apt-get update
Also
Also try sudo apt-get install -f lighttpd
Static up setup for yoir pi is must for this to work
I wonder if it can support some light php tasks and maybe a database?
Also is there a posibility to connect 2-3 raspberry Pi and do some kind of loadbalancing. For example one could be the lighttpd server, an other server could host the files and do all the php work, while an other could by the mysql server.
Could this be done, how would you go by connecting all that together, through a router?
@marty
we have lift off
thank you
Quiggers said:
@marty
we have lift off
thank you
Click to expand...
Click to collapse
Awesome!
Sent from my Nexus 4 using xda premium
Seems a pretty simple setup, but you missed out a step.
You need to port forward port 80 on your router/modem so that your modem sends all incoming port 80 traffic to your Raspberry Pi.
Also, you should use Apache which is much faster, and the original open source web server.
@jji7skyline, on what did you base your opinion? Check this:
http://www.jeremymorgan.com/blog/programming/raspberry-pi-web-server-comparison/
mihaum said:
@jji7skyline, on what did you base your opinion? Check this:
http://www.jeremymorgan.com/blog/programming/raspberry-pi-web-server-comparison/
Click to expand...
Click to collapse
I just prefer Apache because of its wide support and speed, but maybe I was misinformed about its speed on ARM devices.
LAMP is a good package if you want PHP, MySQL and PHPmyAdmin.
what i would suggest is better go with NO-IP or similar stuff !!
they have nice ip update clients ! not only will you save money , it will make easy to manage the accounts as they have good apps for Linux !
---------- Post added at 06:27 PM ---------- Previous post was at 06:24 PM ----------
samboza said:
I wonder if it can support some light php tasks and maybe a database?
Also is there a posibility to connect 2-3 raspberry Pi and do some kind of loadbalancing. For example one could be the lighttpd server, an other server could host the files and do all the php work, while an other could by the mysql server.
Could this be done, how would you go by connecting all that together, through a router?
Click to expand...
Click to collapse
i guess yes !
You can setup ip and port forwarding to make the same make happen !
like, may be, you can set up a My sql server at lan and then setup a port forward to that r-pi and necessary stuff !!
then your man server can issue requests as necessary!!
---------- Post added at 06:29 PM ---------- Previous post was at 06:27 PM ----------
jji7skyline said:
I just prefer Apache because of its wide support and speed, but maybe I was misinformed about its speed on ARM devices.
LAMP is a good package if you want PHP, MySQL and PHPmyAdmin.
Click to expand...
Click to collapse
Have been using Apache for a damn long time ... very comfortable with the same !!
but in these recent years even i have been ranted over to use Lighttpd seems it is friendly with processor !!!
Also suggest no-ip. I use no-ip on the NexusQ site server. It cuts down on cost and you can take your server with you. I've even run it on a mobile server (read phone) that was wifi tethered to my phone while in my car. The same could be done from the RasPi as well.
Lokifish Marz said:
Also suggest no-ip. I use no-ip on the NexusQ site server. It cuts down on cost and you can take your server with you. I've even run it on a mobile server (read phone) that was wifi tethered to my phone while in my car. The same could be done from the RasPi as well.
Click to expand...
Click to collapse
Great tip! I'm sure there are more ways to tweak this guide and make it more robust.
Sent from my Nexus 7 using xda premium
Do you guys think the Raspberry Pi would be good to use as an XBMC streaming box off a remote NAS?
Anyone tried this?
puleen said:
Do you guys think the Raspberry Pi would be good to use as an XBMC streaming box off a remote NAS?
Anyone tried this?
Click to expand...
Click to collapse
I first used the Raspberry Pi for XBMC, RasBMC and it worked great. I did not use it to stream anything locally stored but I believe it would handle that just fine.
Sent from my Nexus 7 using xda premium
I've used the Pi to stream things from a share on a desktop computer and found that it worked wonderfully (as long as the connection could handle it). I've even done HD streaming with little to know issue at least streaming wise. I was using OpenElec at the time, but I imagine it's not different on Raspbmc, if anything it should work better.
Edit: I also want to note I constantly Stream things via Hulu or Youtube. These also work great as long as your connection can handle it. They can be a little slow while "loading" but once a show gets going they usually do just fine.
Wow an entire website hosted on something no bigger than my phone...EPIC
There is also the option to send your raspberry pi to http://www.edis.at/en/server/colocation/austria/raspberrypi/ instead of using your home internet connection. Higher availability and better speed. for free. I haven't used their service, though, so i can't say whether they are ok.
jji7skyline said:
I just prefer Apache because of its wide support and speed, but maybe I was misinformed about its speed on ARM devices.
LAMP is a good package if you want PHP, MySQL and PHPmyAdmin.
Click to expand...
Click to collapse
I prefer to use nginx for my servers.
Sent from my GT-S5830 using Tapatalk 2
My respect sir, very good use for a raspberry pi, I tip My hat to you

[Q] X11, Terminal use, Different OS's

Hey so I have a couple questions and I have not been able to find these out just browsing the web so perhaps some of you guys know.
My intention is that I want to be able to ssh into my computer/school server so that I can do my programming from some where with my tablet and be able to get some graphics to display. Mainly I have some C and python code that displays a plot via matplotlib and when I ssh into my school server I use ssh -X which I assume is for X11 forwarding for graphics(I use that when connecting on my computer not android)
1. How do I enable X11 forwarding on my nexus 7?
-I have connect bot installed, and I have X11 server by some MIT dude installed as well but I have not been able to get it to display anygraphics. When I try to get my graphics to work I get this error in connect bot: "_tkinter.TclError: no display name and no $DISPLAY environment variable."
I do not want to have to a vnc, or vpn or whatever that bs is. I just want to get x11 to work
2. If I cant get X11 to work....Does anyone know if Ubuntu Touch supports X11? I read http://www.xda-developers.com/tag/cyanogenmod-10-1/ saying that Ubuntu Touch does not use X11 so does that mean it does not support it? What I mean is if I use the Ubuntu Touch terminal and do ssh -X [email protected] would my graphics display? I'd like to know before I try to install Ubuntu Touch.
I would try to install Ubuntu desktop which I'm pretty sure it would work, except that Ubuntu desktop is mad slow and not very pratical, unless someone as a kernel that optimizes it for speed / terminal use.
3. Bodhi OS for nexus 7....is it faster than the Ubuntu Desktop?
thank in advance
Same question -- any easy way to open displays from another server?
I'm glad to see I'm not alone in trying to find this. I installed VX Connectbot, which lets me log into my linux server and type commands, but I cannot figure out how to get the graphics to display locally, or to open an emacs window on my server and have it pop up on my android device. I thought there might be an app for this, but have not found one. It just doesn't seem like it should be that complicated. Any suggestions?
You need to install an X server to display X applications (whether running locally or remotely): this seems to be the most used. I believe ConnectBot supports X11 forwarding, though it may be that only some forks of it do.

[GUIDE] how to install Linux for newbs

Hi all--
As the posting suggests I am going to write a tutorial on how to install Linux on your OPO
I scoured the internet and (albeit my scouring sucks) could find very little in regards to installing Linux on the OPO (though multirom may have support for it some day, it currently does not). I got this from reading several how to linux pages which didn't work for me until I fiddled around with it.
I am taking a networking class for my CCNA and needed a cisco emulator, but there are none available for android, and I stubbornly refuse to buy a new laptop because I think a phone with a 2.8Ghz quadcore hooked up to my keyboard and miracast should suffice for ALL computing needs.
Benefits of linux/ubuntu:
have many more resources available (most software has a Windows/Mac/Linux build but not always an android desktop environment (or even an app for some software).
some things that I use it for:
GIMP
GNS3 (a cisco router emulator)
Requirements:
Internet, ~4GB+ of space, ROOT!
Apps:
Linux Deploy
androidVNC
Steps:
1.
Install apps
2.
open Linux Deploy
DO NOT CLICK START YET
open the settings (either the funny download button, or by opening menu to settings)
choose your distro (I used debian wheezy, and also ubuntu trusty successfully)
I don't change any of the default directories here (I had trouble when I did, though installing various .img files worked ok)
scroll down to the startup section and about midway down is "GUI settings"
Open it and change anything you want: I swap the width and height, because I use my phone in landscape mode on my external monitor/miracast
DPI-- if you set it to 480 (stock) the font is good, but everything else is too small for some reason (like windows scroll down further than the bottom of the screen), so I usually leave it around 200-
also near the bottom of the startup section is "custom mounts" this is really useful if you want to edit things on your phone's storage (like in gimp). Clicking this will make a mount "0" [default] available inside the gui which [by default] is your sdcard. (open file explorer: /mnt/0)
When you're finished with your settings, go back to the top and click install
this should make supersu ask for permission; click yes, of course!
now it goes through a big spiel of creating an img and install Linux which can take a while depending on your internet speed, my not so good internet took about 10 minutes.
Next click Start, then yes I really meant start...
Now, you should see the last few lines here and look for VNC: ####
Usually, it's 5900-- remember this number
Look in the top left of your screen for an IP address.
It usually reads 192.168.###.###
remember that number as well
Sometimes it helps to write it down ^_^
3.
now go to androidVNC
click never bother me again
fill out the form [brackets are suggestions] "quotes are exact!"
nickname: [whatever you want]
password: "changeme"
address: [the "192.168.###.###" from linuxdeploy]
port: [the "####" from linux deploy... I don't know if I changed it on accident and didn't notice but I feel like androidVNC changes this sometimes, should be 5900]
then click connect and you should be officially in the linux gui! The graphics suck, but no one uses linux for games anyway!
if you just realized what I meant by "use in landscape mode" or just want to change some settings:
close androidVNC
go back to linuxdeploy
press stop
go to settings, gui settings as before and change whatever you want
scroll back up and click reconfigure (not reinstall, because that would take forever)
it does some stuff
you get bored waiting a little
you click start again
reconnect
if you disconnected from your network, you may have to change your IP address (displayed top left of linuxdeploy)
4.
Installing something in linux
I'm a newb, and so I didn't know this: (in the linux environment inside androidVNC)
open start (bottom left)
accessories
lxterminal
this brings a command prompt into view
the magic command is:
"sudo apt-get install [the thing you want]"
everything else is magic >_>
example:
"sudo apt-get install gimp"
would install gimp for you
once it is done (which may take forever depending on your caffeine level), you can open it up and do all kinds of stuff
Hope this helps someone. If it does, consider clicking thanks (I'm not sure what it does yet either).
for 1337 linux users and grammarians: this guide is for us newbs who care more about getting to what we want than grammar correctness or being smart (because unfortunately, not every gets to be). ^_^ so please don't correct my grammar, I'll just ignore you (because).
Great guide, I might give it a go sometime to put Linux Mint on my phone. Just a suggestion, maybe provide links for Linux Deploy and AndroidVNC to make it easier for people to get them.
Transmitted via Bacon
VNCing into a Linux chroot doesn't count and is generally an awful experience.
There's really no point to do it anymore when the Freedreno driver will give you native graphic acceleration.
what freedreno? I'll check it out >_>
Freedreno is a GPU driver for running Linux on Adreno type GPUs.
Using that for graphic output could be a bit troublesome though if you need to use Android and the Linux desktop distro at the same time.

How to approach a USB hardware hack? (noob help)

I have a USB audio DSP that's designed to be configured in a Windows environment through an Adobe AIR plugin. Its just a standard plug and play device for control purposes and the transfer of data is by way of XML data.
I want to be able to configure the device in a Linux environment. I did try WINE where I managed to open the plugin but couldn't connect plus is just seems messy.
Normally it takes about 5 seconds to connect. During this time the entire current configuration data on the devices memory is sent to the host, where it updates the GUI (sliders etc).
Is there a tool I can use back in my Window's environment where I can capture the messages sent from the app when 'connect' is clicked? Could I then not just repeat these messages from my Linux environment?
At this stage I would be happy to just receive config data from the device in any shape or form.
So far I have established the DSP is recognised by the bash command
Code:
dmesg -w
How do I open the control pipe to the device's default end point ? (should be only one)
Do I need to retrieve the data from a buffer on the host and how?
How can I confirm each stage in the communication process?
What tools are available to assist external device connections from Linux?
My understanding is fragmented as still relatively new to Linux and have not much experience with hardware connections either.
Any guidance would be greatly appreciated.

Categories

Resources