Search my blog

Τετάρτη, 27 Μαΐου 2015

Εγκατάσταση Arch Linux με την χρήση liveDVD άλλης διανομής (με χρήση του bootstrap)

Πολλοί φίλοι μου λένε ότι το Arch δεν έχει γραφικό εγκαταστάτη και είναι δύσκολο στην εγκατάσταση για έναν νέο χρήστη, ίσως και για έναν πιο προχωρημένο. Χρειάζεται να έχεις δίπλα σου έναν 2ο υπολογιστή ή tablet για να βλέπεις τον οδηγό και να γράφεις τις εντολές. Προσωπικά έχω βρει κάποιες εναλλακτικές:

1. Εγκατάσταση διανομών βασισμένων σε Arch όπως είναι η Antergos, Manjaro, Bridge κλπ (δεν σας το συνιστώ γιατί μερικές εγκαθιστούν και δικό τους αποθετήριο).
2. Χρήση του Archbang που διαθέτει ως γραφικό περιβάλλον openbox και μπορείτε να εισέλθετε στο Internet, να ανοίξετε τον browser σε έναν οδηγό εγκατάστασης, και να ανοίξετε το τερματικό όπου θα δώσετε τις εντολές με αντιγραφή>επικόλληση (δεν θα εγκαταστήσει δικό του αποθετήριο, παρά μόνο του Arch). Θεωρητικά αυτό μπορεί να γίνει και με κάποια διανομή από τις παραπανω. Δεν θα σας το επιτρέψουν όλες.
3. Μπορείτε να έχετε δημιουργήσει κάποιο multiboot-multisystem liveUSB με τις αγαπημένες σας διανομές και το arch. Το συγκεκριμένο USB έχει σύστημα αρχείων FAT32 και μπορείτε να γράψετε έναν φάκελο που να διαθέτει μέσα ένα αρχείο txt με τις εντολές που πρέπει να δώσετε για εγκατάσταση. Με ALT+CTRL+F2, μπορείτε να μπείτε σε δεύτερο τερματικό. Εκεί μπορείτε να ψάξετε το USB για τον φάκελο με το αρχείο αυτό και να το ανοίξετε με το nano. Στον κατάλογο που βρίσκεστε, υπάρχει ένα txt από την κοινότητα arch που περιγράφει τα βήματα που πρέπει να ακολουθήσετε (πολύ γενικά όμως).
4. Να εγκαταστήσετε το σύστημά σας με την χρήση ενός άλλου liveDVD με γραφικό περιβάλλον (πχ openSUSE). Αυτό θα δούμε παρακάτω. Για τους αγγλομαθείς, υπάρχει αναλυτική περιγραφή στο wiki.

Τα βήματα που πρέπει να ακολουθήσετε είναι τα εξής (αφού ανοίξετε τερματικό μετά την εκκίνηση):

1. Κατεβάστε το Bootstrap (τσεκάρετε την έκδοση του αρχείου που κυκλοφορεί).

$ curl -O https://mirrors.kernel.org/archlinux/iso/2015.05.01/archlinux-bootstrap-2015.05.01-x86_64.tar.gz

2. Αποσυμπιέστε το αρχείο:

# tar xzf archlinux-bootstrap-2015.05.01-x86_64.tar.gz -C /tmp

# cd /tmp

3. Ξεκινήστε επιλέγοντας τους servers (χώρα προέλευσης):

# nano /tmp/root.x86_64/etc/pacman.d/mirrorlist

Με ctrl+k σβήνεται όλη η γραμμή και με ctrl+x αποθηκεύετε τις αλλαγές.

ΣΗΜΕΙΩΣΗ: Εάν εγκαθιστάτε ένα σύστημα i686 από x86_64, πρέπει να επεξεργαστείτε και το αρχείο /tmp/root.i686/etc/pacman.conf όπου πρέπει να ορίσετε το Architecture = i686 ώστε ο pacman να φέρνει τα κατάλληλα πακέτα για i686.

4. Λίγο πριν μπείτε ως chroot, χρειάζεται να δώστε τις εντολές.

Εάν έχετε εγκατεστημένη την έκδοση bash 4 ή νεότερη (δώστε στο τερματικό την εντολή: echo $BASH_VERSION), θα χρειαστεί να δώστε στο τερματικό την εντολή:

# /tmp/root.x86_64/bin/arch-chroot /tmp/root.x86_64/

Αλλιώς, δώστε τα παρακάτω:

# cd /tmp/root.x86_64
# cp /etc/resolv.conf etc
# mount -t proc /proc proc
# mount --rbind /sys sys
# mount --rbind /dev dev
# mount --rbind /run run
(πρέπει να έχετε τον κατάλογο /run στο σύστημά σας)
# chroot /tmp/root.x86_64 /bin/bash

5. Αρχικοποίηση των κλειδιών:

# pacman-key --init
# pacman-key --populate archlinux

6. Εγκατάσταση και ρυθμίσεις (ακολουθήστε τον οδηγό που έγραψα παλαιότερα).

Πρώτα προσαρτήστε τις κατατμήσεις (βήμα 2) και στην συνέχεια προχωρήστε στην εγκατάσταση (βήμα 5 και μετά).

ΣΗΜΕΙΩΣΗ: Μια υπόδειξη από έναν φίλο, μην εγκαταστήσετε το grub αλλά το syslinux.

# pacman -S syslinux
# syslinux-install_update -i -a -m

οτιδήποτε και να ακολουθήσετε, θα δουλέψει.

7. Ακολουθήστε όλο τον οδηγό μέχρι την εγκατάσταση του γραφικού συστήματος που θέλετε. Μην κάνετε επανεκκίνηση ενδιάμεσα (όπως αναφέρει ο οδηγός). Εμένα μου δούλεψε κανονικά και χωρίς επανεκκίνηση.

Τρίτη, 26 Μαΐου 2015

Static IP on Arch Linux

I was searching how to set static IP on Arch Linux Raspberry Pi.
Here is what I did.


1. Edit the file eth0.network. Systemd-networkd uses *.network files.

$ nano /etc/systemd/network/eth0.network

paste the following (192.168.1.100)

[Match]
Name=eth0

[Network]
Address=192.168.1.100/24
Gateway=192.168.1.1
DNS=8.8.8.8
DNS=8.8.4.4

2. You will then need to disable netcl. To find out what is enabled that is netctl related, run this:

systemctl list-unit-files


Once you identify all netctl related stuff. Go through and disable all netctl related stuff. You may have more to disable than just the below:

systemctl disable netctl@eth0.service

3. You will then need systemd-networkd enabled:

systemctl enable systemd-networkd

4. Login with

ssh root@192.168.1.100

Δευτέρα, 25 Μαΐου 2015

Install ddclient on your openSUSE Raspberry Pi

We've seen two Dynamic DNS clients. We'll see another one here.

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-library

use=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

Κυριακή, 24 Μαΐου 2015

Upgrade your openSUSE Raspberry Pi from 13.1 to 13.2

We've seen how to create an SD card. I used the 13.1 version. The wiki page https://en.opensuse.org/HCL:Raspberry_Pi is not very clear (to me) about resize partitions. So I tried to upgrade the version 13.1. Here what I did.

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.

Σάββατο, 23 Μαΐου 2015

Run copy.com on your openSUSE Raspberry Pi

A good question is why do you want to sync a folder on your Raspberry Pi with a cloud service. The answer is little complicated. It's a subproject that I'm working on right now. I want to upload some data I'll create on a Raspberry Pi (with limited size of SD card). The uploaded data will be saved on other computer and the SD will be clear again to create new data.

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

$ cd 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).