For about a month, I tried looking for a simple solution to steam my Steam desktop from Linux to Android. There were a lot of options, but most involved upgrading my video card or investing in some end-user software that was unclear on what it offered. Moonlight required an Nvidia GTX line graphics card and it was unclear on whether Linux to Android was supported. VNC was entirely too slow and didn’t offer any near-real time solution. It was extremely laggy once I launched Steam big picture mode.
I had stumbled across an article that discussed the streaming benefits of using NoMachine/FreeNX. While I tried using FreeNX first, it was outdated and didn’t offer as many features as NoMachine. I decided to try NoMachine and, to my surprise, it worked very well. One of the perks, it automatically attached itself to a current running X session, so out of the box, I launched it and after logging in, it went right to my existing session of Steam big screen in desktop mode.
If you are looking for a solution to stream from Arch Linux to Android, NoMachine is the solution. Simply install nomachine from the AUR. Once installed, start the nxserver service. The last thing you need is to install the NoMachine app on your android device and you are all set.
One of the best features is; it operates on port 4000, so if you port forward that, then you’ll be able to log into your steam box from anywhere (given you have access to your IP address or have dynamic DNS.
I found the easiest way update certificates with certbot (on my server) is to temporarily stop apache / nginx and to run the following command. Once you have the congratulations line, you can restart your web services.
The server has been acting strange and randomly freezing not allowing ssh or the ability to switch to different screens. I checked all logs, and no evidence of what the issue could be. After doing some research, people were saying the the LTS kernel offered a little more stability for their servers, so I gave it a shot and it seemed to work perfectly. I haven’t experienced a freeze since the switch. The process was easy, but you just have to make sure that you fix grub as well, or you’ll be booting a live stick to fix that.
The problem with the Raspberry Pi 2 is that it’s a great device, but it lacks wireless capability. Additionally, from what I’ve read, the Pi 3 has a problem with connecting to wireless at distances because of the antenna (or lack of). The venture started because I wanted to install OctoPi for my 3D Printer and have that control everything. Not having a Pi 3, I decided to use one of my old Realtek wireless antennas to get wireless access. Most linux distributions don’t support the 8812au out of the box and getting this installed was proving to be a huge pain, but once I found the right drivers, the installation was pretty simple.
First, had to identify the device:
Bus 001 Device 004: ID 0bda:0811 Realtek Semiconductor Corp.
On a Debian or Raspian build, you need to update you kernel and install the kernel headers.
# apt-get update && apt-get install rasperrypi-kernel raspberrypi-kernel-headers
Then install dkms so that it can rebuild the drivers if you update.
# apt-get install dkms build-essential
Now, we have to get the right driver. The one that worked for me was the gnab drivers on github.
Then for the DKMS piece:
To remove the driver:
Here is another script to help clean up movie folders. Until recently, I preferred having all of my movies in the same directory. After switching to Plex Media Server, I soon realized that Plex downloads fanart and other related movie files. The issue is that all of these additional files were also in the main movie directory. The following script went through and created a sub-directory for each movie name and then the second half moved the files into their respective folder.
Bash/Shell one-liner to move all files from sub-directories to current directory.
Here is one of the newest projects. I’ve been wanting to make something new and I’ve also wanted to teach my kids how to play Settlers of Catan. After looking at some of the custom boards, I decided to give it a shot and make my own.
‘ddclient’ is a simple DDNS callback program developed in perl. It reports the IP address to the DDNS server to automatically update your machines IP address. One of the great features is that it’s compatible with Google Domains. In order to get it working, you need to install it from your distros package manager. (pacman, apt-get, emerge etc.)
Once installed, locate your ddclient.conf (most likely in /etc/ddclient/) and edit it with the following block:
<span style="font-family: 'courier new', courier, monospace;">daemon=300 syslog=yes pid=/var/run/ddclient.pid ssl=yes use=web, web=https://domains.google.com/checkip protocol=dyndns2 server=domains.google.com login=LOGIN-FROM-GOOGLE password=PASSWORD-FROM-GOOGLE WWW.MYWEB.SITE</span>
For the login and password, when you log into your domains.google.com account and navigate your Synthetic records and get your username and password credentials from clicking the view option. Make sure that your website matches and the credentials are case sensitive.
Once you have updated ddclient.conf, save it, and start the system service:
sudo systemctl start ddclient.service sudo systemctl enable ddclient.service
or for others:
sudo service ddclient start sudo update-rc.d ddclient enable
When complete, it takes about 1-2 minutes for everything to update and then your DDNS should be working and pointing your IP address to your domain name.
This has been an issue for me for quite some time. I have been trying to get SSL working and get valid certificates so that I could secure a few things and offer better security. Additionally, these days, having secure http is an added benefit. Most web-based server functions prefer the use of https over http for the extra security as well.
Here is how I got SSL and the proper encryption installed on Arch Linux with Apache.
First, Install what you need (assuming that you already have [LAMP](https://wiki.archlinux.org/index.php/Apache_HTTP_Server) stack).
yaourt -S certbot certbot-apache acme-tiny letsencrypt-cli openssl
Next, you need to obtain the certificates. Also, I port forwarded 80 and 443 through the router to the server. This would be a good time to make sure that port forward is good or else this won’t work properly.
certbot certonly --email email@example.com --webroot -w /srv/http/site1/ -d www.inject.run,inject.run
If you have received the congratulations message, then you should have certificates in the designated folder. (Mine were located in /etc/letsencrypt/live/inject.run/fullchain.pem.)
Now we have to activate/use the certificates through Apache.
Edit /etc/httpd/conf/httpd.conf and uncomment the following (I use nano and ctrl+w to search):
<span style="font-family: 'courier new', courier, monospace;">LoadModule ssl_module modules/mod_ssl.so LoadModule socache_shmcb_module modules/mod_socache_shmcb.so Include conf/extra/httpd-ssl.conf</span>
and, while you’re in httpd.conf, search for Listen 80 and add Listen 443 right below that line.
Now, this might seem like a duplication of effort, but it was the only way I got this to work:
In /etc/httpd/conf/extra/httpd-ssl.conf, find the Virtual Host Context section, and add your VirtualHost server information as follows:
DocumentRoot "/srv/http/inject.run" ServerName inject.run:443 ServerAdmin YOUR.EMAIL@ADDRESS.COM ErrorLog "/var/log/httpd/error_log" TransferLog "/var/log/httpd/access_log" SSLEngine on SSLCertificateFile "/etc/letsencrypt/live/inject.run/fullchain.pem" SSLCertificateKeyFile "/etc/letsencrypt/live/inject.run/privkey.pem" #SSLCertificateChainFile "/etc/letsencrypt/live/inject.run/chain.pem" #SSLCACertificatePath "/etc/httpd/conf/ssl.crt" #SSLCACertificateFile "/etc/httpd/conf/ssl.crt/ca-bundle.crt"
Note, the only two files you have to reference from your certificates are fullchain and privkey.
And, the last thing before you restart all of your services is to add a separate VirtualServer in your httpd-vhosts.conf file. Edit /etc/httpd/conf/extra/httpd-vhost.conf and add a second VirtualHost for the same website but with *:443 instead of *:80. Additionally, you are going to need to add your certificate information as well. Look below as an example:
ServerName www.inject.run OTHER OPTIONS FOR VHOST HERE IF NEEDED ServerName www.inject.run OTHER OPTIONS FOR VHOST HERE IF NEEDED SSLEngine on SSLCertificateFile "/etc/letsencrypt/live/inject.run/fullchain.pem" SSLCertificateKeyFile "/etc/letsencrypt/live/inject.run/privkey.pem"
Notice I added the SSL stuff in the second VirtualHost entry.
Now, if you chose, you can remove everything from the non-encrypted VirtualHost and add the following line below the ServerName to redirect all traffic to secure connections.
Redirect / https://www.inject.run/
Hopefully, this helps get your SSL encryption working.