Category Archives: Raspberry

Raspbian + NFS

Install:

apt-get install nfs-kernel-server

Exports:

nano /etc/exports

Once there, let’s add:

/mnt/flash *(rw,sync)

Dont’ forget to run exportfs!

Add New Services:

Here’s the deal: rpcbind must run before nfs-server. But due to a bug… that’s not the case. What happens if the sequence is not that?… simple! NFS is inaccessible.

In order to fix this, let’s do the following:

cat >/etc/systemd/system/nfs-common.service <<\EOF
[Unit]
Description=NFS Common daemons
Wants=remote-fs-pre.target
DefaultDependencies=no

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/etc/init.d/nfs-common start
ExecStop=/etc/init.d/nfs-common stop

[Install]
WantedBy=sysinit.target
EOF
cat >/etc/systemd/system/rpcbind.service <<\EOF
[Unit]
Description=RPC bind portmap service
After=systemd-tmpfiles-setup.service
Wants=remote-fs-pre.target
Before=remote-fs-pre.target
DefaultDependencies=no

[Service]
ExecStart=/sbin/rpcbind -f -w
KillMode=process
Restart=on-failure

[Install]
WantedBy=sysinit.target
Alias=portmap
EOF

Source Here!

Raspbian + Flash Drive + fstab

First off, you need to figure out the path of your flash drive:

fdisk -l

Then… edit /etc/fstab as follows:

/dev/sda1  /mnt/flash  vfat  rw,user,umask=0002,uid=1001,gid=121 0 0

Note that umask is… the “inverted” regular file mask. This represents 665 (because we’re evil). As per uid + gid, you can figure it out by means of this command:

id username

Update:

The best filesystem to use, if you need to maintain compatibility between the Flash Drive you’ll use with your Raspberry, and macOS, is probably ExFat. Now, problem is: Linux doesn’t really support ExFat by default.

So, we’ll need to install it, as follows:

sudo apt-get install exfat-fuse

In such case, your /etc/fstab file should look like this:

/dev/sda1  /mnt/flash  exfat. rw,user,umask=0002,uid=1001,gid=121    0       0

Raspberry + Samba

Installing Samba:

apt-get install samba samba-common-bin

Once there, edit /etc/samba/smb.conf as follows:

workgroup = [your_workgroup_name]

[SHARE-NAME]
   comment=Samba Share
   path=/PATH/TO/YOUR/SHARE
   browseable=Yes
   writeable=Yes
   only guest=no
   create mask=0777
   directory mask=0777
   public=no

At last, setup the Samba password:

smbpasswd -a YOUR_USERNAME

Raspberry + Transmission

Let’s begin with the basics. We’ll need to upgrade the system to the latest, and update the apt-get database. Once ready, we’ll proceed with the transmission’s daemon + cli binaries, as follows:

sudo
apt-get update
apt-get upgrade
apt-get install transmission-cli transmission-common transmission-daemon transmission-remote-cli

Authentication:
By default, transmission requires you to setup username / password. Since our goal is *not* to expose Transmission to the open internet (and we’ll only use it via SSH), we’ll simply neutralize any kind of authentication:

nano /etc/transmission-daemon/settings.json

Once there, edit this snippet:

rpc-authentication-required: false

Logging:
We want Transmission to keep an events log. Anything that goes wrong during setup… must be persisted, otherwise, debugging it will be a nightmare.

The only way i’ve found to set this up, is by means of the Daemon Service Descriptor:

nano /lib/systemd/system/transmission-daemon.service

Once there, you want to add the logfile’s path. Make sure that the file exists, and Transmission’s user has enough permissions to edit it:

OPTIONS="--config-dir $CONFIG_DIR  --logfile /var/log/transmission.log"

Filesystem Permissions:

Transmission’s user is specified in the transmission-daemon.service descriptor (which is debian-transmission). So… you really wanna make sure whatever shared folder you end up using, belongs to Transmission’s group.

usermod -a -G debian-transmission YOUR_USER
chgrp debian-transmission /DOWNLOADS/PATH
chmod 770 /DOWNLOADS/PATH

Magnets!

In order to begin downloading a magned, try the following:

transmission-remote-cli
(And press 'A')

Restarting Stopped

Last tip: If you need to restart all of your downloads at once, this command becomes quite handy:

transmission-remote -t all -s