Download a root filesystem image (I’d recommend the hard-float flavor of Raspbian Wheezy from this source) and burn it to an SD card. Do not use some no-name SD card—it will get corrupted at some inconvenient time—get a quality card like a SanDisk Extreme III. Burning it is done with a command like (note that dates and version numbers will change):
$ sudo dd bs=1m if=2013-05-25-wheezy-raspbian.img of=/dev/disk3
Then, insert the card into the Raspberry Pi, apply power, and ssh to it using username: pi, password: raspberry. You can use a tool like Fing to find the new IP address on your network. Then:
$ sudo raspi-config
Choose option to expand filesystem, set time zone and locale (prefer UTF-8) under internationalization, set hostname under advanced, then exit the config tool and reboot.
Log back in:
$ sudo apt-get update && sudo apt-get dist-upgrade
$ sudo reboot
Log back in:
$ sudo apt-get install avahi-daemon tightvncserver vim
(installs avahi-daemon bind9-host geoip-database libavahi-core7 libbind9-80 libdns88 libgeoip1 libgpm2 libisc84 libisccc80 libisccfg82 liblwres80 libnss-mdns tightvncserver vim vim-runtime xfonts-base)
$ sudo insserv avahi-daemon
$ sudo reboot
Log back in:
$ sudo vi /etc/avahi/services/multiple.service
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h</name>
<service>
<type>_device-info._tcp</type>
<port>0</port>
<txt-record>model=RaspberryPi</txt-record>
</service>
<service>
<type>_ssh._tcp</type>
<port>22</port>
</service>
</service-group>
You can now access the computer as <hostname.local>.
Now, configure the VNC server. Run tightvncserver to create default files, then kill it:
$ tightvncserver
$ killall tightvncserver
You can edit .vnc/xstartup to launch apps of your choice. Keep as is or do something like:
#!/bin/sh
openbox-session &
pcmanfm -d &
*** Username ***
If desired, change "pi" to a different username by editing the following files in /etc: passwd, shadow, group, gshadow, and sudoers. Change “pi” to your username of choice in each one. To do this, first do:
$ sudo bash
Then edit each file in turn and rename /home/pi appropriately. Use visudo to edit sudoers. An easy option for the other files is:
$ sed -i ’s/pi/<new name>/g’
Once you’re done:
$ sudo reboot
If you’re using a pptp VPN provider:
$ sudo apt-get install pptp-linux
$ sudo vi /etc/ppp/peers/my-vpn-provider
pty "pptp <VPN hostname> --nolaunchpppd --debug"
name <VPN username>
password <VPN password>
remotename PPTP
require-mppe-128
require-mschap-v2
refuse-eap
refuse-pap
refuse-chap
refuse-mschap
noauth
debug
persist
maxfail 0
defaultroute
replacedefaultroute
usepeerdns
*** Install Chromium and fonts ***
$ sudo apt-get install chromium-browser ttf-mscorefonts-installer
(installs cabextract chromium chromium-browser chromium-inspector fonts-liberation libnspr4 libnss3 libspeex1 libvpx1 ttf-mscorefonts-installer)
*** External drive support ***
Install filesystem tools for manipulating external hard drives:
$ sudo apt-get install gparted
(installs gparted libatkmm-1.6-1 libcairomm-1.0-1 libglibmm-2.4-1c2a libgtkmm-2.4-1c2a libpangomm-1.4-1)
You can now plug in an external hard drive via USB and run gparted to create ext4, etc. partitions. Note the UUID.
To auto mount, add a line to /etc/fstab:
UUID=“<UUID from gparted>” <mount point≷ ext4 rw,exec,auto,users 0 3
Might need to auto mount. Edit /etc/udev/rules.d/99-mount.rules to contain:
SUBSYSTEM=="block", run+="/bin/mount -a"
Install NTFS support if desired:
$ sudo apt-get install ntfs-3g
Install HFS+ tools if desired:
$ sudo apt-get install hfsplus hfsutils hfsprogs libhfsp0
*** AFP server ***
Seems plenty reliable over based on Time Machine usage.
Install Netatalk:
$ sudo apt-get install netatalk
(installs cracklib-runtime db-util db5.1-util libcrack2 libpam-cracklib lsof netatalk rc wamerican)
Configure Netatalk:
$ sudo /etc/init.d/netatalk stop
Then edit /etc/netatalk/AppleVolumes.default:
Add "rw" to the line starting with ":DEFAULT:"
Comment out the line starting with "~/" if desired.
Add lines for Time Machine shares:
/<Path to shared directory> “<share name>" allow:<tm user> options:upriv,usedots,tm
Restart netatalk:
$ sudo /etc/init.d/netatalk restart
It will take about five seconds for the host to show up by name on the network.
Add time-machine users as needed:
$ sudo useradd <tm user> -m -G users
$ sudo passwd <tm user>
*** AFP client ***
Note that the AFP client is buggy as hell. Be forewarned!
$ sudo apt-get install afpfs-ng
(installs afpfs-ng afpfs-ng-utils libafpclient0)
Add user to group fuse:
$ sudo usermod -a -G fuse <username>
$ sudo reboot
To mount a volume:
$ mount_afp 'afp://<username>:<password>@<server>.local/<‘share name> <mount point>
To remove a user from the group:
$ sudo gpasswd -d <username> fuse
or
$ deluser <username> fuse
*** NFS server***
$ sudo apt-get install nfs-kernel-server
$ sudo update-rc.d rpcbind enable
Add shared directories to /etc/exports
Then reboot. After editing /etc/exports in the future, restart the NFS server with:
$ sudo /etc/init.d/nfs-kernel-server restart
*** NFS client ***
$ sudo apt-get install nfs-common
$ sudo update-rc.d rpcbind enable
Then reboot.
*** Samba (for masochists) ***
Install Samba:
$ sudo apt-get install samba samba-common-bin
Back up the original configuration file:
$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
Then edit /etc/samba/smb.conf
Uncomment (remove hash) from "security = user" and add to the bottom:
[<SMB name>]
comment = <Helpful comment>
path = <Path to shared directory>
valid users = <Username>
create mask = 0660
directory mask = 0770
read only = no
Restart Samba:
$ sudo /etc/init.d/samba restart
Then, create user the user listed above if they don’t already exist and add to Samba users:
$ sudo useradd <username> -m -G users
$ sudo passwd <username>
$ sudo smbpasswd -a <username>
*** Set up a DLNA server ***
$ sudo apt-get install minidlna
(installs libavcodec53 libavformat53 libavutil51 libdirac-encoder0 libgsm1 libmp3lame0 libschroedinger-1.0-0 libspeex1 libtheora0 libva1 libvpx1 libx264-123 libxvidcore4 minidlna)
Edit /etc/minidlna.conf
Add: "media_dir=V,<media directory>"
Comment out: "media_dir=/var/lib/minidlna"
Uncomment: “log_dir=/var/log”
Make sure that <media directory> is owned by minidlna:minidlna.
Start MiniDLNA for the first time:
$ sudo minidlna -R
Start the service:
$ sudo service minidlna restart
*** Video Transcoding ***
$ sudo apt-get install libav-tools
(installs libav-tools libavdevice53 libavfilter2 libdc1394-22 libjack-jackd2-0 libopencv-core2.3 libopencv-imgproc2.3 libpostproc52 libraw1394-11 libswscale2)
*** Dynamic DNS services ***
$ sudo apt-get install ddclient
*** If you need unrar ***
$ sudo vi /etc/apt/sources.list
Add a line with: deb-src http://archive.raspbian.org/raspbian wheezy main contrib non-free rpi
Update the database:
$ sudo apt-get update
Create and enter a working directory for building unrar-nonfree:
$ mkdir ~/unrar-nonfree
$ cd ~/unrar-nonfree
Install dependencies needed by unrar-unfree:
$ sudo apt-get build-dep unrar-nonfree
Download unrar-nonfree source and build the .deb:
$ sudo apt-get source -b unrar-nonfree
Install the .deb; its name will depend on the version:
$ sudo dpkg -i unrar*.deb
Remove the working directory and files:
$ cd ..
$ rm -rf ~/unrar-nonfree
Last edit: 8 November 2013