raspi-config on kali to expand your filesystem

pi2This article explains how to use expand_roofs from the raspi-config tool when your raspberry pi2 is running Kali Linux.

First we download the package:

wget http://archive.raspberrypi.org/debian/pool/main/r/raspi-config/raspi-config_20121028_all.deb

and install it with:

dpkg -i ./raspi-config_20121028_all.deb

it will probably throw an error back at you … you can fix that with:

apt-get install -f -y

now you can run:


and use expand_rootfs and use your full sd card..

Have fun 😉

Latest Kodi (XBMC) on Raspbian with remote control

pi2Some easy steps to install kodi on raspbian
Update the Pi:

sudo apt-get update
sudo apt-get rpi-update
sudo apt-get dist-upgrade

Install Kodi

sudo apt-get install kodi

For the remote control we need to add group to kodi

sudo adduser kodi input

Now we can start Kodi by running:

kodi &

If you want to start it when the Pi boots edit the file /etc/defaults/kodi
and change the 2nd line to ENABLED=1

How to: HDHomeRun 4DC (HDHR3-4DC) + TvHeadend on Raspberry Pi 2B

pi2First we update the Raspberry Pi:
sudo rpi-update
sudo reboot
sudo apt-get update
sudo apt-get upgrade
sudo reboot

HDhomerun installation:
cd ~/Desktop
wget http://download.silicondust.com/hdhomerun/libhdhomerun_20141210.tgz
wget http://download.silicondust.com/hdhomerun/hdhomerun_config_gui_20141210.tgz
sudo apt-get install libgtk2.0-dev
tar -zxf libhdhomerun_20141210.tgz
tar -zxf hdhomerun_config_gui_20141210.tgz
cd hdhomerun_config_gui
sudo make install

Test if the install works:
hdhomerun_config discover

Set the address ( Replace FFFFFFFF withe the id generated by the discover.)
sudo hdhomerun_config FFFFFFFF set /sys/dvbc_modulation a8qam64-6875 a8qam256-6875

Build and Install TvHeadend:
cd ~/Desktop
sudo aptitude install build-essential git pkg-config libssl-dev bzip2 wget -y
sudo aptitude install libavahi-client-dev zlib1g-dev libavcodec-dev libavutil-dev libavformat-dev libswscale-dev -y
git clone https://github.com/tvheadend/tvheadend.git
cd tvheadend
./configure --enable-hdhomerun_client --enable-hdhomerun_static --enable-libffmpeg_static --enable-bundle

We can test the build now by running:
./build.linux/tvheadend -C

When the tuners are visible we can continue:
sudo make install

To run TvHeadend I added to my rc.local:

New version 0.3 for ets2mods.nl released yesterday to production

Screen346Hello all,

Yesterday evening I worked on some upgrade for the new site http://ets2mods.nl

I made some small changes to the looks  of the site but almost completely overhault the asp.net code running behind it.
The front page should load a lot quicker since I simplified the code behind it and used thumbnails for the pictures attached to the database.
I fixed some small things that where annoying me..
I started working on the code behind some other things I have planned for the future.
I also started coding on a new way to display the latest mod (Don’t like that table view it has currently..)
Currently Submitting Mods is enabled for everybody and have set some monitoring tools up to track all the changes .. so far it is looking OK.
There is still some work to be done on the submit form.
Currently I’m testing if can use AJAX on that complete form to process the changes.
I’ve noticed that the form is not cleared from the data when a submit is done.. (Probably will be working on this first since it is annoying when submitting multiple mods…)

All the changes can be followed on  http://ets2mods.nl:81/About
Hope you like it..


Greetings from a ETS2 Fan.




Metasploit on Raspberry Pi running Raspbian

sudo -i
wget http://downloads.metasploit.com/data/releases/framework-latest.tar.bz2
apt-get update
apt-get dist-upgrade -y
apt-get install ruby subversion libpcap-dev
tar jxpf framework-latest.tar.bz2
cd msf3
gem install bundler
gem install sqlite3 -v ‘1.3.9’
bundle install

Kismet on Raspberry Pi running Raspbian

RaspberryPiOn an Raspberry Pi this process will probably take more then an hour.(Sit back and relax once you typed in make..)
Before installing kismet from source we need some apps from the repository.

sudo apt-get install libncurses5-dev libpcap-dev libpcre3-dev libnl-dev -y

Now we can download and compile the source

wget http://www.kismetwireless.net/code/kismet-2013-03-R1b.tar.gz
tar -zxf kismet-2013-03-R1b.tar.gz
cd kismet-2013-03-R1b
sudo make suidinstall
sudo usermod -a -G kismet pi
sudo reboot

Configuring monitor mode:

sudo iw phy phy0 interface add mon0 type monitor
sudo iw dev wlan0 del
sudo airodump-ng mon0

Open a new windows and configure Kismet:
Edit /usr/local/etc/kismet.conf and add “ncsource=mon0”, “hidedata=true

And starting with:


Mount NFS server and move SWAP to nfs share on the Raspberry Pi

RaspberryPiBefore we can start with this on the Raspberry we need to make sure we have the NFS Server up and running. In my case this is a FreeNas box that has multiple disk running in zfs raid.
After the share is set up on the server (/mnt/pool1/pi) we can switch to the Pi.

First we need to make sure the rpcbind service is running and started on bootup.

sudo update-rc.d rpcbind defaults && sudo service rpcbind start

Now we can test if we can mount our share before we add it to our fstab:

sudo mount YourNfsServerIp://mnt/pool1/pi /mnt

Check with df -h if the share is mounted.(normally when it doesn’t show an error all should be ok.)
My results:

pi@pi ~ $ df -h
Filesystem                  Size  Used Avail Use% Mounted on
rootfs                      7,4G  2,5G  4,7G  35% /
/dev/root                   7,4G  2,5G  4,7G  35% /
devtmpfs                    239M     0  239M   0% /dev
tmpfs                        49M  260K   49M   1% /run
tmpfs                       5,0M     0  5,0M   0% /run/lock
tmpfs                        97M     0   97M   0% /run/shm
/dev/mmcblk0p1               56M  9,6M   47M  18% /boot  113G  7,5G  106G   7% /mnt

Now that all is working we can add a new line to /etc/fstab  (change the ip with your own.) /mnt    nfs    defaults    0    0

Now that NFS is setup correct we can move the swap to a real drive.
Let’s start with cleaning and removing the old on the sd-card.

sudo apt-get remove –purge dphys-swapfile -y
sudo rm /var/swap
sudo rm /etc/init.d/dphys-swapfile
sudo update-rc.d dphys-swapfile remove

Now we can create and mount a new file.(1Gb change the value count=1024 if you need a smaller/larger swap)

sudo dd if=/dev/zero of=/mnt/swap bs=1M count=1024
sudo losetup /dev/loop0 /mnt/swap
sudo mkswap /dev/loop0
sudo swapon /dev/loop0

Check with free -m if you can see the swap file.
Now we can edit our /etc/rc.local and add before exit 0

echo “Setting up loopy/mnt/swap..”
sleep 2
losetup /dev/loop0 /mnt/swap
mkswap /dev/loop0
swapon /dev/loop0

Have fun.

Full disk backup on the Raspberry Pi

RaspberryPiOne of the most important thing on the pi is to have decent backups, since our root is on an untrusted sd-card there will always be the risk of that corrupted filesystem.
Over on raspberrypi.org I found a script that fits my needs and uses dd to make a copy of the sd-card and stores that on my NFS (FreeNas) Server that runs zfs raid over multiple disk.
Also doing some test how the pi runs if the root is completely on nfs..(more on that later.)

I stored the backup script on my nfs share that is mounted to /mnt
Backups are stored in /mnt/Pi-backups
Script and logs are in /mnt/scripts
Backup script runs twice a day and the backups for the last 7 days are stored.
Here’s the script.(/mnt/scripts/backup.sh)


# Setting up backup directories

# Setting up echo fonts
NC=’\e[0m’ #No Color
bold=`tput bold`
normal=`tput sgr0`

#Screen clear

echo -e “${green}${bold}Starting RaspberryPI backup process!${NC}${normal}”
echo “”
# First check if pv package is installed, if not, install it first
PACKAGESTATUS=`dpkg -s pv | grep Status`;

if [[ $PACKAGESTATUS == S* ]]
echo -e “${cyan}${bold}Package ‘pv’ is installed${NC}${normal}”
echo “”
echo -e “${yellow}${bold}Package ‘pv’ is NOT installed${NC}${normal}”
echo -e “${yellow}${bold}Installing package ‘pv’ + ‘pv dialog’. Please wait…${NC}${normal}”
echo “”
sudo apt-get -y install pv && sudo apt-get -y install pv dialog

# Check if backup directory exists
if [ ! -d “$DIR” ];
echo -e “${yellow}${bold}Backup directory $DIR doesn’t exist, creating it now!${NC}${normal}”
sudo mkdir $DIR


# Create a filename with datestamp for our current backup (without .img suffix)
OFILE=”$DIR/backup_$(date +%Y%m%d_%H%M%S)”

# Create final filename, with suffix

# First sync disks
sync; sync

# Shut down some services before starting backup process
echo “”
echo -e “${purple}${bold}Stopping services before backup${NC}${normal}”
sudo pkill deluged
sudo pkill deluge-web
sudo service deluge-daemon stop
sudo service noip stop
sudo service cron stop
sudo service proftpd stop
sudo service webmin stop
sudo service xrdp stop

# Begin the backup process, should take about 45 minutes hour from 8Gb SD card to NFS
echo “”
echo -e “${green}${bold}Backing up SD card to img file on NFS${NC}${normal}”
SDSIZE=`sudo blockdev –getsize64 /dev/mmcblk0`;
sudo pv -tpreb /dev/mmcblk0 -s $SDSIZE | dd of=$OFILE bs=1M conv=sync,noerror iflag=fullblock

# Wait for DD to finish and catch result

# Start services again that where shutdown before backup process
echo “”
echo -e “${purple}${bold}Starting the stopped services${NC}${normal}”
sudo service deluge-daemon start
sudo deluged
sudo deluge-web
sudo service noip start
sudo service cron start
sudo service proftpd start
sudo service webmin start
sudo service xrdp start

# If command has completed successfully, if not, delete created files
if [ $RESULT = 0 ];
echo “”
echo -e “${green}${bold}RaspberryPI backup process completed! FILE: $OFILEFINAL${NC}${normal}”
echo -e “${yellow}Removing backups older than 7 days${NC}”
sudo find $DIR -maxdepth 1 -name “*.img” -mtime +7 -exec rm {} \;
echo -e “${cyan}If any backups older than 7 days were found, they were deleted${NC}”
exit 0
# Else remove attempted backup file
echo “”
echo -e “${red}${bold}Backup failed!${NC}${normal}”
sudo rm -f $OFILE
echo “”
echo -e “${purple}Last backups on NFS:${NC}”
sudo find $DIR -maxdepth 1 -name “*.img” -exec ls {} \;
echo “”
echo -e “${red}${bold}RaspberryPI backup process failed!${NC}${normal}”
exit 1

Make the script executable:

chmod +x /mnt/scripts/backup.sh

Add it to your crontab so it runs twice a day:

crontab -e

And add the following line:

0 4/16 * * * /mnt/scripts/backup.sh > /mnt/scripts/cron.log 2>&1

That’s all for today, Let’s make a test backup by running: