How do I shut down a workstation via Remote Desktop?

depending on the setup of your windows try the 2 solutions:

Ctrl+Alt+End This should be the same as Ctrl+Alt+Del and consequently takes you to a dialog where you can do various system-type things, among them logging off and shutting down.

Another trick is to click on the desktop and press Alt+F4. This will call up the shutdown dialog, where you get the usual shutdown options like “Shut down”, “Shut down without installing updates”, “Restart”, “Stand by”, and “Hibernate”.

HDHomeRun HD3-4DC and Linux (Yousee and Stofa)

A buddy of mine bought 2 HDHomeRun HD3-4DC and wanted to use this on a Ubuntu 12.04 Server
the problem with Ubuntu 12.04 is that the DVB kernel headers was removed from the normal header packages.

first make sure that your network has a working DHCP server, and that the HDhomeRun is connected to the network and that the antenna cable is connected.

first we need to add the ppa repository from

Adding the PPA repository:

$ add-apt-repository ppa:tfylliv/dvbhdhomerun
$ apt-get update

Kernel driver:
Next we need the kernel headers and the missing headers:
i my case the server was using the following kernel, linux-image-3.8.0-39-generic
the missing DVB headers i grapped from

# apt-get install linux-headers-3.8.0-39-generic
$ wget

Unpack the headers:

$ tar zxfv linux-3.8.tar.gz

Next copy the missing headers to the Ubuntu headers:

$ cp -R /linux-3.8/drivers/media/dvb-core/* /usr/src/linux-headers-3.8.0-39/drivers/media/dvb-core/
$ cp -R /linux-3.8/drivers/media/dvb-frontends/* /usr/src/linux-headers-3.8.0-39/drivers/media/dvb-frontends/

Installing the hdhomerun dkms and utils:

$ apt-get install dvbhdhomerun-dkms dvbhdhomerun-utils

This should build the dvb_hdhomerun kernel driver and the userhdhomerun userspace and the necessary script to run the userspace service,

try initialize the kernel driver:

$ modprobe dvb_hdhomerun

this should give something like this when looking at dmesg

[   17.893873] HDHomeRun: Begin init, version 0.0.16
[   17.897220] HDHomeRun: Waiting for userspace to connect
[   17.897228] HDHomeRun: End init

Setup Tuners:

We need to locate the names of the tuner in my case we actually have 2 of them :).

$ hdhomerun_config discover
hdhomerun device 141001A7 found at
hdhomerun device 14101464 found at

make a note of the name of the tuners i my case they are named: 141001A7 and 14101464.
next edit /etc/dvbhdhomerun

$ nano /etc/dvbhdhomerun

my config file looks like this:

# Remember to exchange the XXXXYYYY-Z with the serial number of your HDHomeRun
# tuner:

# Auto detect tuner type is not possible in all cases, so you can force it









# You can use a full name including tuner ID. Meaning the tuner will appear as
# "HDHomeRun DVB-C 1234EA3D-0" instead of just "HDHomeRun DVB-C" in for example
# TVHeadend.









# You can disable certain tuners. As default all detected hdhomeruns are used


# Enable additional logging  from libhdhomerun itself

Now restart the dvbhdhomerun-utils

$ service dvbhdhomerun-utils restart

dmesg should show something like this:

[   19.050534] hdhomerun: userhdhomerun connected
[   19.050574] hdhomerun: userhdhomerun connected
[   19.050588] hdhomerun: creating dvb device for 141001A7-0
[   19.050688] DVB: registering new adapter (HDHomeRun)
[   19.110568] HDHomeRun HDHomeRun.0: DVB: registering adapter 0 frontend 0 (HDHomeRun DVB-C 141001A7-0)...
[   19.110685] HDHomeRun0: DVB Frontend registered
[   19.110688] HDHomeRun0: Registered DVB adapter0
[   19.110728] hdhomerun: device /dev/hdhomerun_data0 created
[   19.110971] hdhomerun: userhdhomerun connected
[   19.110984] hdhomerun: creating dvb device for 141001A7-1
[   19.111065] DVB: registering new adapter (HDHomeRun)
[   19.112681] HDHomeRun HDHomeRun.1: DVB: registering adapter 1 frontend 0 (HDHomeRun DVB-C 141001A7-1)...
[   19.112722] HDHomeRun1: DVB Frontend registered
[   19.112724] HDHomeRun1: Registered DVB adapter1
[   19.112762] hdhomerun: device /dev/hdhomerun_data1 created
[   19.112959] hdhomerun: userhdhomerun connected
[   19.112969] hdhomerun: creating dvb device for 141001A7-2
[   19.113058] DVB: registering new adapter (HDHomeRun)
[   19.115142] HDHomeRun HDHomeRun.2: DVB: registering adapter 2 frontend 0 (HDHomeRun DVB-C 141001A7-2)...
[   19.115221] HDHomeRun2: DVB Frontend registered
[   19.115223] HDHomeRun2: Registered DVB adapter2
[   19.115264] hdhomerun: device /dev/hdhomerun_data2 created
[   19.115456] hdhomerun: userhdhomerun connected
[   19.115467] hdhomerun: creating dvb device for 141001A7-3
[   19.115558] DVB: registering new adapter (HDHomeRun)
[   19.115904] HDHomeRun HDHomeRun.3: DVB: registering adapter 3 frontend 0 (HDHomeRun DVB-C 141001A7-3)...
[   19.115951] HDHomeRun3: DVB Frontend registered
[   19.115953] HDHomeRun3: Registered DVB adapter3
[   19.115985] hdhomerun: device /dev/hdhomerun_data3 created

The hdhomerun is now connected.

Scanning for DVB-C channels:
As i live in Denmark, the most common DVB-C providers are Yousee and Stofa

for Yousee use the following setup:

$ hdhomerun_config XXXXXXXX set /sys/dvbc_modulation a8qam64-6875

for Stofa use the following setup:

$ hdhomerun_config XXXXXXXX set /sys/dvbc_modulation a8qam64-6900

Next we need to setup the tuners:

$ hdhomerun_config  XXXXXXXX set /tuner0/channelmap eu-cable
$ hdhomerun_config  XXXXXXXX set /tuner1/channelmap eu-cable
$ hdhomerun_config  XXXXXXXX set /tuner2/channelmap eu-cable
$ hdhomerun_config  XXXXXXXX set /tuner3/channelmap eu-cable

finally we can scan the muxes for channels:

$ hdhomerun_config XXXXXXXX scan 0 hdhomerun.log

the scan takes some time so be patience

if you are going to install TVheadend you should do the following to the log file:

For Yousee:

awk '{if ($1 ~ /SCANNING/) print "\n" $2; else print $0}' hdhomerun.log | awk 'BEGIN { RS = "" ; FS = "\n" } { if (length($4) > 0) print "C " $1 " 6875000 NONE QAM64" }' > dk-YouSee

For Stofa:

awk '{if ($1 ~ /SCANNING/) print "\n" $2; else print $0}' hdhomerun.log | awk 'BEGIN { RS = "" ; FS = "\n" } { if (length($4) > 0) print "C " $1 " 6875000 NONE QAM64" }' > dk-Stofa

the generated file is readable by TVheadend and should make it more easy to find the channels.


If you wanne update the firmware for the hdhomerun you can do this with the hdhomerun_config tool by doing:
(check Silicondust’s homepage for newer releases)

$ wget
$ hdhomerun_config 14101464 upgrade hdhomerun3_dvbc_firmware_20140121.bin


Installing Apache::Gallery

This is a step by step guide for installing Apache::Gallery (libapache-gallery-perl) on Debian, this will possible also work for Ubuntu.

The system i did the installation on was a Debian 7 (Wheezy).

First lets install the basic packages:
first install Apache 2:

aptitude install apache2

Now for perl:

aptitude install libapache2-mod-perl2

now for Image::Imlib2:

aptitude install libimage-imlib2-perl

Finaly install Apache:Gallery:

aptitude install libapache-gallery-perl

now make the apache config for the new gallery site, in my case i addet a virtual host to my apache config:

i choose to use the /var/www/gallery as the place for my photos, feel free to use any other place.

Now for the apache config, this is straight forward, if in trouble look at this link:

<VirtualHost *:80>
        DocumentRoot /var/www/gallery/  #<----- make sure this directory is readable by www-data
        ErrorLog     /var/log/gallery-error_log
        TransferLog  /var/log/gallery-access_log
        PerlSetVar   GalleryTemplateDir '/usr/share/libapache-gallery-perl/templates/default'
        PerlSetVar   GalleryInfo 'Camera => Model, Picture Taken => DateTimeOriginal, Flash => Flash, ShutterSpeed => ShutterSpe$
        PerlSetVar   GallerySizes '640 1024 1600 2272'
        PerlSetVar   GalleryThumbnailSize '100x75'
        <Location />
            SetHandler  perl-script
            PerlHandler Apache::Gallery

restart apache with:

/etc/init.d/apache2 restart

Apache:gallery will properly generate a error looking something like this (look at /var/log/gallery-error_log):

unable to writhe to /var/cache/www/

make the directory and make sure www-data have writing access.

Now for the gallery.css file.
Place gallery.css in the gallery root directory (in this example /var/www/gallery)

use this code for the css style:

body {
    background-color: #cccccc;
    font-family: Verdana, Lucida, Arial;
    font-size: 10px;
    margin-left: 10px;
    margin-top: 10px;
    text-align: center;
td {
    font-size: 10px;
table {
    margin-left: auto;
    margin-right: auto;
#menu {
    font-size: 11px;
    text-align: left;
    height: 30px;
#nav {
    font-size: 11px;
    text-align: left;
    height: 30px;
    text-align: right;
#directory {
    background-color: #ffffff;
    border: 1px solid #666666;
    padding: 20px;
    text-align: left;
    top: 0px;
#folder {
    float: left;
    height: 100px;
    padding: 2px;
    text-align: center;
    width: 120px;
#picture img {
    border: 1px solid #000000;
a {
    color: #5555aa;
a img {
    border: 2px solid #5555aa;
a:hover {
    color: #ff9400;
a:hover img {
    border: 2px solid #ff9400;
#folder img {
    border: 0px;
.info {
    background-color: #eeeeee;
    border: 1px dashed #888888;
    color: #666666;
    font-size: 10px;
    margin: 10px;
    padding: 5px;

make the following directory /usr/share/apache2/icons/gallery and copy the icons from /usr/share/libapache-gallery-perl/icons to the new directory

restart Apache.

there you have it there should be a working gallery now 🙂

remember to add some photos to the new gallery

more info can be found at



Updating Debian squeeze to wheezy

Find word squeeze and replace with wheezy. At the end it should look as follows:

deb wheezy main
deb-src wheezy main

deb wheezy/updates main
deb-src wheezy/updates main

# wheezy-updates, previously known as 'volatile'
deb wheezy-updates main
deb-src wheezy-updates main

To update the package list, enter:

# apt-get update

do a update of the base system, enter:

# apt-get upgrade

Now upgrade the rest of the system, enter:

# apt-get dist-upgrade

Reboot the system:

you can verify your debian version by entering:

$ lsb_release -a

the output should look something like this:

No LSB modules are available.
Distributor ID:	Debian
Description:	Debian GNU/Linux 7.0 (wheezy)
Release:	7.0
Codename:	wheezy

Configuring Samba to be a WINS server

This is quite easy to do, and it makes browsing the smb network fast.

Configuring the server:
simply edit smb.conf (typically located at /etc/samba/smb.conf)
locate the the wins support and enable it.:

# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable it's WINS Server
wins support = yes

setup the way samba should resolve the hosts:

# What naming service and in what order should we use to resolve host names
# to IP addresses
#   name resolve order = lmhosts host wins bcast
   name resolve order = host wins bcast

The following option should be addet to the linux DHCP server (if you use linux as a DHCP server):

option netbios-name-servers x.x.x.x;

where x.x.x.x is the IP of the WINS server

If you use a normal router, sometimes they support pushing out the wins server, if you use a router running dd-wrt
go tothe  basic setup and add the WINS server IP, there.

If this fails you can add the WINS server manually to windows:
go to the control panel, and press the View network status and tasks, then press the change adapter setting
right click the network interface and select properties, select the TCP/IP (for windows 7 select TCP/IPv4)
and press properties again click advanced and select the WINS  and add the IP of the WINS server and you are ready to go


For linux clients simply edit the smb.conf and add the following:

# WINS Server - Tells the NMBD components of Samba to be a WINS Client
# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
   wins server = x.x.x.x

replace x.x.x.x with the IP of the WINS server

Happy smb surfing 🙂

How to fix/hack the Samsung CLX-3175FW, imaging unit

Well the place where i do some voluntary work, had this Samsung CLX-3175FW Color Laser printer for some years now and the unit i starting to show to following warning: “replace imaging unit soon” from the old days doing repairs on different printers at the university, i found that a lot of manufacturers place small fuses, software counters that are supposed to make the user replace different parts in the printers normally these parts are quite expensive, some of these “errors” can sometimes be reset without that much work, and the this was one of them.

What you needs is the following:

A Solderings iron

A 56Ω 0,25watts resistor

Let’s get to work.First thing is to take all the color cartridges out of the printer and place them somewhere safe (be sure not to drop the color powder on anything)

next thing is to remove the wast toner box in the left side, now remove the imaging unit.


you should se 2 cobber contacts in the right side of the imaging unit, this small device can be removed from the unit.


inside the unit that i took apart, there where 2 resistors, the small one, is actual just a  “sense” function that makes the printer aware if the unit is not installed, in my case the resisitor was a 140KΩ, the larger resistor was a 56Ω but this resistor was burned and did no longer function. So this resistor functions as a “new” device put into the printer, the printer then burns this resistor to reset the imaging unit counter.

a quick trip to the storage with a new 56Ω resistor, i removed the old one and soldered the new inside the unit, i used a 1% resistor as this was the only type that i had.

i then put the unit back into the imaging unit, and cleaned the unit for any excess toner, and dust.

then i put everything back into the printer and powered the unit on.

i printed a report for the unit and wolia 🙂 the printer now thinks the imaging unit is new.


i den took the unit apart again and checked the resistor, somehow the printer didn’t burn i properly so i remove the resistor , just to be sure that i didn’t break anything, maybe the original samsung placed resistor is easer to burn?, but hey what the heck it did the job.

This fix/hack cost around 0.50DKR, and a new imaging unit cost around 900-1100DKR so witch one do you chose?.

The philosophy of naming computers

I always liked the idea of having a naming scheme for naming computers, from the days when i worked at the university they gave servers, names after planets like Uranus and Neptune, when i later started setting up computers at home i went on with my own naming scheme i selected the Norse mythology, later on i started using the different elements for machines outside my network. i seen people using many different naming schemes like, movie stars, diary products.

it gives the machines something personal meaning and it’s funny when people ask why they are named the way they are, no matter what, it’s a good ice breaker :).

Even the laptop I’m using for writing this post is named Njord :).

Here’s a list of possible naming schemes that i like:

if you want more possible naming schemes take a look at there should be a scheme for everybody :).

Happy naming.


The Remote DVD player project.

What to do when you just get the urge to watch a DVD movie?
well over time i discarded alle my DVD players and went on using Popcorn Hour A110/WD TV Live Media players

I discovered the project called DVDReadFS The project enables a machine to read a DVD and remove the macro vision on the fly,

first i installed the following packages:
libdvdcss, fuse and the fuse-devel packages

then followed the guide at DVDReadFS for compiling DVDReadFS, i ended up making a permanent mount point in /etc/fstab

dvdreadfs#/dev/hdd /mnt/dvd1 fuse ro,kernel_cache,allow_other 0 0

I then shared the mount point in samba. Now the only thing i need to do when i wanna watch a DVD movie is to  drop a DVD in the drive and open the share on my media player

i will post some more installation details when i will me making my small networked DVD player, using a VIA C7 and a old DVD drive built into a discarded Cambridge CD audio case that i will modify, to fit the PC and drive.

to be updated!.