How to Fix Chromium/Google Chrome Black Screen in VirtualBox

The bug is in VirtualBox's Guest Additions, which probably badly translates 3D controls from applications like Chromium and delivers the weird black flickering garbage.

The solution is to simply replace the version of VirtualBox Guest Additions you're using. I found that VBoxGuestAdditions_5.0.10.iso worked fine. Insert the disk into the OS via VirtualBox and do the normal sudo ./VBoxLinuxAdditions.run. This will remove the existing broken version of Guest Additions and install the working replacement.

Fix for audio sync issues on VLC for Android (May 2016)

Using VLC on Android to watch videos and you get audio sync issues? I knew the files were fine, but every time I started a video on my tablet and scrolled forward or back, the time would be offset by around a second. Many times the sound was off as soon as I played the video 'from cold'.

After some experimentation I found you have to go into VLC-Settings>Hardware Acceleration and ensure it is set to Disabled. In my case it was set to the default 'Automatic' and VLC was trying to use hardware acceleration and getting it's sync messed up.

Even the VLC app says hardware acceleration is experimental, just make sure it's disabled.

Fixing Natural Scrolling in Arch Linux

Due to my habit of switching between desktop environments semi regularly, including GNOME-based ones, multiple configuration files exist in my ~/.config/ governing the same things. In this case, my mouse scrolling.

I was never able to figure out which files were conflicting with each other, but this answer on AskUbuntu worked for me first time, system-wide. http://askubuntu.com/a/685873

Pebble Time opens port 9000/tcp6 on Android Devices

Pebble Time opens port 9000/tcp6 on Android Devices

Did a port scan the other day and was surprised to find my phone was listening for connections on the LAN. Port 9000 on tcp6, which Nmap decided to call CSListener.

Nmap scan report for 192.168.0.3 Host is up (0.0072s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
9000/tcp open cslistener
MAC Address: C0:EE:BE:EF:BQ:15 (OnePlus Tech (Shenzhen))

Googling didn't turn up much so I ran an adb shell to the phone.
Turns out that the process occupying the port was the Pebble Time app.

root@A0001:/ # fuser 9000/tcp6 1417
root@A0001:/ # ps | grep 1417
u0_a123 1417 253 1779444 105092 ffffffff b6db5340 S com.getpebble.android.basalt:framework
root@A0001:/ #

Then I remembered seeing an option in there ages ago about allowing developer access, which I did when I was playing with creating tutorial apps for the watch. The 'Developer Connection' was still switched on, turning it off kills the listener on port 9000.

Pebble Time App

Docker, Arch Linux, and User Namespaces

Docker, Arch Linux, and User Namespaces

I recently tried to run Jess Frazelle's Chrome Docker image, she explains how to do that here. Whilst there is a little bit of understanding needed with what's going on (such as passing X11 through from the host to the container), it's pretty simple.

However, Chrome seemed to break for me every time. At first I couldn't work it out, but help in this Issue Thread showed that the lack of User Namespacing in my kernel was the problem.

The stock Arch Linux Kernel for some reason doesn't seem to have User Namespacing built in. Chrome needs this. The reason Chrome needs this is that the sandboxing security feature needs to utilise namespacing segregation to isolate web page processes. The idea being if they can't interact with anything outside the container, it minimises risk to the other processes on the system.

Unfortunately to enable User Namespacing, you have to enable the feature in a kernel config file and rebuild your Kernel. This isn't an easy process but the Arch Build System can help.

To test you've got User Namespacing enabled successfully, check zgrep CONFIG_USER_NS /proc/config.gz it should return CONFIG_USER_NS=y. Anything else means it is not enabled.

My config.gz for Kernel 4.2.5-1 is here

The image below shows I've got Chrome running in Docker fine now. You can also tell from Archey that I'm running the custom kernel.

Picture of Chrome Running

Using UFW on Fedora

Using UFW on Fedora

When switching to Fedora I was disappointed to find that there was no support for using Uncomplicated Firewall, something I enjoyed on Arch Linux. Although it is not in the Fedora repos, it can still be installed and used.

  • Download the UFW source code from Launchpad
  • Unpack and install the source code. Do this with the traditional 'Untar, Configure, Make'. If you are unfamiliar with compiling software from scratch, the README in the download explains, and a quick google will explain further.
  • Once installed, run systemctl stop iptables to stop the regular iptables firewall process. Do the same for any Fedora Firewall tools like FirewallD systemctl stop firewall.
  • Enable UFW! sudo ufw enable
  • Add your rules as usual! e.g ufw allow 22/tcp, ufw limit 22/tcp
Solution: KDE 5 Plasma - Massive Fonts after upgrade

Solution: KDE 5 Plasma - Massive Fonts after upgrade

After running a full system upgrade on Arch Linux, all of my desktop environments save MATE were using a massive font size. This made all the windows balloon up as if I were running with 640×800. Part of the upgrade must have damaged/corrupted/replaced a global font config file (if any such thing exists).

The solution to get back to the normal font DPI (96 for me). Is to load System Settings > Font (at the top) and then “Force Fonts DPI: ”. In my case, 96. Doing this and then re-logging solved the problem.

kde-fonts

VirtualBox - 'VERR_CFGM_NODE_EXISTS' Solution - After Export and Import - OVF 2.0

A new node couldn’t be inserted because one with the same name exists. (VERR_CFGM_NODE_EXISTS).

Found an understated bug online with exporting and importing Virtual Machines in VirtualBox, using the OVF 2.0 format.

Even though the error code has ‘NS’ in the title, which to me implies NameServer and therefore suggested a networking fault, the issue is actually in the USB Controller for the Virtual Machine.

Somehow the XML config file gets scrambled and VirtualBox cannot properly implement USB. This can be fixed by changing the USB implementation to another USB version, e.g USB2.0 to USB3.0. Then booting up the box works as VirtualBox has re-written the USB XML config file.

Answer to Chromium's "Unable to Load Font File!" Error in Video

I found that when using Chromium to play Video it would occasionally display the titled error message inside the video viewbox of pages like YouTube and Vimeo. The video won’t play at all. Turns out this is caused by the system not having enough memory left (had too much going on). Kill some applications to retrieve ~100MB of RAM and reload the page. Then everything works fine.