1. First of all, install the program.
$ zypper in ddclient
2. Create the confing file
$ nano /etc/ddclient.conf
with the following content
daemon=5m
timeout=10
syslog=no # log update msgs to syslog
#mail=root # mail all msgs to root
#mail-failure=root # mail failed update msgs to root
pid=/var/run/ddclient.pid # record PID in file.
ssl=yes # use ssl-support. Works with
# ssl-libraryuse=if, if=eth0
server=freedns.afraid.org
protocol=freedns
login=login_name
password=the_password
somedomain.mooo.com
Change the ones that are in bold letters.
3. Start the service
$ systemctl enable ddclient
Reboot
]]>1. Check if the update repository already exists and is enabled.
$ zypper repos –uri
You should have the following enabled
3 | openSUSE-13.1-repo-update | openSUSE-13.1-repo-update | Yes | Yes | http://download.opensuse.org/ports/update/13.1/
If not, then add it
$ zypper addrepo –check –refresh –name ‘openSUSE-13.1-Update’ http://download.opensuse.org/update/13.1/ repo-update
2. Refresh and update your system
$ zypper ref && zypper update
3. Remove all third party/OBS repos you no longer need.
$ zypper lr
# Remove with
$ zypper rr (alias or number)
4. Change all remaining repo URLs to the new version of the distribution (needs to be run as root).
$ cp -Rv /etc/zypp/repos.d /etc/zypp/repos.d.Old
5. Change the repos.
$ sed -i ‘s/13\.1/13.2/g’ /etc/zypp/repos.d/*
6. Refresh new repositories (you might be asked to accept new gpg key)
$ zypper ref
If you haven’t removed third party/OBS repositories you may encounter some errors as these repositories may not exist yet or they may have different unguessable URL. It is always recommended to remove them and add their newer version after upgrade.
7. Upgrade
$ zypper dup
Now you have to wait. Reboot at the end, just to be sure that everything went smooth.
]]>The cloud service I prefer is always ownCloud.
Here I used http://www.copy.com. It provides 15GB of disk but you can increase it.
First of all download the file
$ wget http://copy.com/install/linux/Copy.tgz
Then extract it
$ tar xzvf Copy* copy/armv6h/
This will create a folder called “copy,” and in it there will be three sub-folders: “armv6h,” “x86,” and “x86_64.” The first one contains the Copy client binaries for the Raspberry Pi, the second contains the Copy client for 32-bit Linux on a PC, and the third the same client but for 64-bit Linux PCs.
$ cd /copy/armv6h
Now there are 2 ways of using copy. The CopyCmd tool and CopyConsole.
CopyCmd
List of the directories
$ ./CopyCmd Cloud -username=user@gmail.com -password=’mypass’ ls
Upload all content of local /home/user/directory/ to remote /directory
$ ./CopyCmd Cloud -username=user@gmail.com -password=’mypass’ put -r /home/user/directory/ /directory
CopyConsole
The CopyConsole tool keeps a folder on your Raspberry Pi synchronized with the data on Copy.com.
The sync app runs in the background and is started like this:
$ ./CopyConsole -daemon -username=user@gmail.com -password=’mypass’ -root=/home/user/directory
This will sync the local /home/user/directory to copy.com. If you delete something from there, it’ll delete from local folder as well.
Remeber to run this command everytime you restart your pi. It’s better to run it manually because there is username and password that are personal (unless you created an account just for your raspberry pi).
]]>Here I will show you how to setup Transmission, vftpd and suggestions for Android programs.
First of all, download and create the openSUSE SD card (resize your SD card to full size or you can mount the extra size as extra partition. Since it’s not something important, then you can use full size of your SD card).
Then setup the dynamic dns service (see previous posts).
Finally set a static IP (to use it with port forward of your router).
INSTALL TRANSMISSION
First install transmission:
$ zypper in transmission transmission-daemon
Create 2 folders for incomplete torrents and completed torrents:
$ mkdir -p /torrents/incomplete && mkdir /torrents/complete
Configure proper permissions for transmission:
$ chgrp transmission /torrents/incomplete
$ chgrp transmission /torrents/complete
$ chmod 770 /torrents/incomplete
$ chmod 777 /torrents/complete
Now edit transmission settings.json file using:
$ cp /var/lib/transmission/.config/transmission/settings.json /var/lib/transmission/.config/transmission/settings.json.old
$ rm /var/lib/transmission/.config/transmission/settings.jsonand
$ nano /var/lib/transmission/.config/transmission/settings.json
Here is the content of your file:
{
“alt-speed-down”: 50,
“alt-speed-enabled”: false,
“alt-speed-time-begin”: 540,
“alt-speed-time-day”: 127,
“alt-speed-time-enabled”: false,
“alt-speed-time-end”: 1020,
“alt-speed-up”: 50,
“bind-address-ipv4”: “0.0.0.0”,
“bind-address-ipv6”: “::”,
“blocklist-enabled”: false,
“blocklist-url”: “http://www.example.com/blocklist”,
“cache-size-mb”: 4,
“dht-enabled”: false,
“download-dir”: “/torrents/complete”,
“download-limit”: 100,
“download-limit-enabled”: 0,
“download-queue-enabled”: true,
“download-queue-size”: 5,
“encryption”: 1,
“idle-seeding-limit”: 30,
“idle-seeding-limit-enabled”: false,
“incomplete-dir”: “/torrents/incomplete”,
“incomplete-dir-enabled”: true,
“lpd-enabled”: false,
“max-peers-global”: 200,
“message-level”: 2,
“peer-congestion-algorithm”: “”,
“peer-limit-global”: 91,
“peer-limit-per-torrent”: 150,
“peer-port”: 51413,
“peer-port-random-high”: 65535,
“peer-port-random-low”: 49152,
“peer-port-random-on-start”: false,
“peer-socket-tos”: “default”,
“pex-enabled”: false,
“port-forwarding-enabled”: true,
“preallocation”: 1,
“prefetch-enabled”: 1,
“queue-stalled-enabled”: true,
“queue-stalled-minutes”: 30,
“ratio-limit”: 2,
“ratio-limit-enabled”: false,
“rename-partial-files”: true,
“rpc-authentication-required”: true,
“rpc-bind-address”: “0.0.0.0”,
“rpc-enabled”: true,
“rpc-password”: “{2dc2c41724aab07ccc301e97f56360cb35f8ba1fGVVrdHDX”,
“rpc-port”: 9091,
“rpc-url”: “/transmission/”,
“rpc-username”: “transmission”,
“rpc-whitelist”: “*.*.*.*”,
“rpc-whitelist-enabled”: false,
“scrape-paused-torrents-enabled”: true,
“script-torrent-done-enabled”: false,
“script-torrent-done-filename”: “”,
“seed-queue-enabled”: false,
“seed-queue-size”: 10,
“speed-limit-down”: 250,
“speed-limit-down-enabled”: true,
“speed-limit-up”: 0,
“speed-limit-up-enabled”: true,
“start-added-torrents”: true,
“trash-original-torrent-files”: false,
“umask”: 18,
“upload-limit”: 100,
“upload-limit-enabled”: 0,
“upload-slots-per-torrent”: 14,
“utp-enabled”: true
}
Username: transmission
Password: transmission
Port: 9091
Start and enable the service.
$ systemctl start transmission-daemon
$ systemctl enable transmission-daemon
You’re done. All you have to do is to open your browser to http://RASPI.IP.ADDRESS:9091/ and use the login/password (default for above config transmission/transmission)
Let’s say that the file is i your pi disk. You’re not at home. How can you check it? Maybe the easiest way is to setup an FTP server. Maybe the best program is vsftpd. You can install it:
$ zypper in ftp vsftpd
Create a folder for ftp users (if it’s not there).
$ mkdir /srv/ftp
Create a group called ftp-users.
$ groupadd ftp-users
Create a sample user called seedbox with home directory /srv/ftp/, and assign the user to ftp-users group.
$ useradd -g ftp-users -d /srv/ftp/ seedbox
Set password for the new user.
$ passwd seedbox
Now you should change few things:
$ nano /etc/vsftpd.conf
And uncomment:
local_enable=YES
write_enable=YES
Start the service and you’re done:
$ systemctl start vsftpd
$ systemctl enable vsftpd
Personally I use the program filezilla but you can also use the Firefox addon FireFTP.
INSTALL SAMBA
OK, you installed torrent server. How can you access the downloaded files from your computer? Well it’s easy. Just install SAMBA. For that reason, I followed the tutorial here.
First of all, install SAMBA.
$ zypper in samba
Then all you have to do is to change SAMBA configuration file.
$ cp /etc/samba/smb.conf /etc/samba/smb.cnf
$ nano /etc/samba/smb.cnf
Just add the following lines:
[Seedbox]
comment = Public Shares
path = /torrents/complete
writeable = Yes
only guest = Yes
create mask = 0777
directory mask = 0777
browseable = Yes
public = yes
You should restart SAMBA or you can reboot your Pi.
$ systemctl start smb nmb
$ systemctl enable smb nmb
Now you can access your Pi from Nautilus (check here how to do that).
Android
If you want to use it via android phone/tablet, you can use the program Remote Transmission
More applications are Transdrone and TorrentToise.
]]>1. Open YaST and go to Network Devices>Network Settings.
2. Then choose Statically Assigned IP Address (move with tab button and click on space button). Give the static IP you want and as Subnet Mask, 255.255.255.0. Press Next (press enter).
3. You’ll see an overview of the ethernet card.
4. Go to Hostname/DNS and add Google’s DNS servers (optional).
5. Next, go to Routing and add your router ip (usually 192.168.1.1).
Now press OK, reboot and try to login again with SSH.
]]>http://www.dyndns.org
http://freedns.afraid.org
http://www.zoneedit.com
http://www.no-ip.com
http://www.easydns.com
http://www.tzo.com
http://www.3322.org
http://www.dnsomatic.com
http://www.tunnelbroker.net
http://dns.he.net/
http://www.dynsip.org
http://www.sitelutions.com
http://www.dnsexit.com
http://www.changeip.com
http://www.zerigo.com
http://www.dhis.org
https://nsupdate.info
http://duckdns.org
https://www.loopia.com
https://www.namecheap.com
https://domains.google.com
https://www.ovh.com
https://www.dtdns.com
http://giradns.com
Let’s see one of them https://freedns.afraid.org. After you register, go to Dynamic DNS link (on the left top box-for members).
Add your host with type A and subdomain and domain what you like as host.
Now there’s going to be a list of your host names. Right click on the Direct Link and copy the link. You should keep the alpha-numeric key. The address will be something like http://freedns.afraid.org/dynamic/update.php?[alpha-numeric-key]
Now it’s time to install the client. I’ve found it from https://github.com/troglobit/inadyn.
1. First of all, install the needed programs to build the service.
$ zypper in gcc-c++ gcc git libopenssl-devel make nano
2. Then
$ mkdir inadyn
$ cd inadyn
3. Download the program from ftp://troglobit.com/inadyn/
and decompress it
$ tar xvfJ inadyn-1.99.9.tar.xz
4. Go to the directory
$ cd inadyn-1.99.9
5. Compile and install
$ make
$ make install
6. Create the confing file
$ nano /etc/inadyn.conf
with the following content
--username USERNAME
--password PASSWORD
--update_period 3600
--forced_update_period 14400
--alias HOSTNAME,alphanumeric key
--background
--dyndns_system default@freedns.afraid.org
--syslog
The bold words are the ones you should change. Remember the alphanumeric key is the one you got from right click on the Direct Link.
7. Start the client. Create the service file.
$ nano /usr/lib/systemd/system/inadyn.service
8. Add the following content.
[Unit]
Description=inadyn Dynamic DNS Update Client
After=network.target[Service]
Type=forking
ExecStart=/usr/local/sbin/inadyn[Install]
WantedBy=multi-user.target
9. Start the service
$ systemctl start inadyn.service
and enable the service
$ systemctl enable inadyn.service
10. Reboot and check if the service is running.
$ ps -A | grep inadyn
you should get results something like:
1526 ? 00:00:00 inadyn
To do that we use Dynamic DNS services. A free service (so far) is No-IP. Most of the routers support it. You can use your router’s service. But what if you want 2 different host names on the same IP? Let’s say you have different ARM boards on the same router or you have a server etc.
1. First of all, install the needed programs to build the service (same as I did with ZNC)
zypper in gcc-c++ gcc git libopenssl-devel make nano
2. Then
mkdir noip
cd noip
3. Download the program
wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
and decompress it
tar vzxf noip-duc-linux.tar.gz
4. Go to the directory
cd noip-2.1.9-1
5. Compile and install
make
make install
While it install’s the software you will prompted to enter the username & password. Once that is done it will ask you teh refresh interval … leave it.. to have the default value. You are required to answer some more questions … just ans NO an d you should be good to go.
6. Start the client
/usr/local/bin/noip2
To check if the service is running, use the command:
/usr/local/bin/noip2 -S
and the results should be like
1 noip2 process active.
Process 1516, started as noip2, (version 2.1.9)
Using configuration from /usr/local/etc/no-ip2.conf
Last IP Address set EXTERNAL IP
Account USERNAME
configured for:
host HOSTNAME
Updating every 30 minutes via /dev/eth0 with NAT enabled.
Auto start the client on reboot
But what if you reboot? You want to start the client everytime you reboot. This can be done with systemd.
1. Create the service file.
nano /usr/lib/systemd/system/noip.service
2. Add the following content.
[Unit]
Description=No-IP Dynamic DNS Update Client
After=network.target[Service]
Type=forking
ExecStart=/usr/local/bin/noip2[Install]
WantedBy=multi-user.target
3. Start the service
systemctl start noip.service
and enable the service
]]>systemctl enable noip.service
Here we’ll see how to create an SD card of openSUSE. There are plenty of information at the wiki page https://en.opensuse.org/HCL:Raspberry_Pi
. I’ll collect the information I need for projects, I’ll write next.
I used 13.1 as distro because it’s easier for me to resize the SD card.
1. Download the image (openSUSE-13.1-ARM-JeOS-raspberrypi.armv7l.raw.xz) from here:
http://download.opensuse.org/repositories/devel:/ARM:/13.1:/Contrib:/RaspberryPi/images/
decompress the image.
2. Find the device name of your card
cat /proc/partitions
usually it’s going to be /dev/mmcblk0.
and create the card (as root)
sudo dd if=openSUSE-13.1*.raw.xz of=/dev/mmcblk0 bs=4M;sync
3. Since I didn’t use a monitor (HDMI or DVI), I had to do some extra steps before boot my raspberry pi.
a. Delete the file /var/lib/YaST2/reconfig_system to start headless.
b. Resize the ext4 partition with Gparted.
4. When boot the Raspberry Pi, use the following
ssh root@IP
user: root
password: linux
Now the first command will be
zypper ref
and then update
]]>zypper up
First of all, check out how you can install openSUSE on Raspberry Pi.
Now, you have to compile ZNC. There’s no package in the repositories. If developers read this, please please make an ARM package. Please!!!
First of all, you have to install the following packages (that’s what I did):
zypper in gcc-c++ gcc git libopenssl-devel make
Now, let’s download the last release (you can find the whole procedure at official page)
wget http://znc.in/releases/znc-latest.tar.gz
Then untar the file:
tar -xzvf znc*.*gz
Then you have to do some steps that usually do when you compile:
cd znc*
and run the command
./configure
Next command will take a lot of time to finish
make
When it’s over, run the final command:
make install
You’re ready to use it. Now login as user and run the command:
znc –makeconf
If you have an older configuration, you can use it (run only the command znc).
]]>First, I needed two tools. One is the “adb” – Android DeBug tool from the official sdk and the other is “fastboot” which was hard to find, so I mirror it here.
I got me the stable ROM from http://wiki.cyanogenmod.org/w/Grouper_Info and followed their installation instructions. adb shell only seemed to work while in bootloader (which you reach by holding Volume-Down+Power during boot)
The hardest part was to re-enable USB-debugging by going into Settings/About tablet and tapping Build-Number seven times.
Also before zapping everything that was there, I did in adb shell : cp -a /system/app /sdcard/
and back later.
So after following all the other installation steps, I had cyanogenmod booting. I attached a bluetooth keyboard so that I can better type. The ROM comes with a terminal app, which I opened. type su -
to become root after a security popup.
Now, I downloaded my lastest Raspberry-Pi image from http://www.zq1.de/bernhard/linux/opensuse/. This is under /sdcard/Download where I unpacked it with xz -d
Then comes the tricky part. The image has a partition table, but here we just need the root filesystem. With fdisk -lu
we can see that it starts at sector 309248. One could copy out that part with dd or use a loop device with offset like this:
#!/system/xbin/sh
mknod /dev/loop0 b 7 0
losetup -d /dev/loop0 # cleanup of previous try
losetup -o `expr 512 \* 309248` /dev/loop0 rasp*img
mkdir -p mnt
mount -t ext2 /dev/loop0 mnt
Now we have access to the openSUSE files under mnt.
In there I created me a chroot.sh:
#!/system/xbin/sh
for m in proc sys dev ; do mount -o bind /$m $m ; done
HOME=/root PATH=/sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin /system/xbin/chroot . bin/bash
for m in proc sys dev ; do umount $m ; done
With that, the only remaining thing to do was to add a nameserver line to /etc/resolv.conf before I could use zypper to install software e.g. zypper install yast2-network yast2-ncurses
.
Running yast lan
on the Nexus 7 gives nice sight.
I guess one could also use the armv7 rootfs to have software built for armv7 instead of the compatible armv6. But for me it does not matter much.
]]>