Kategori arşivi: Linux

RASPBERRY PI

Raspberry Pi, Birleşik Krallık’ta Raspberry Pi Vakfı tarafından okullarda bilgisayar bilimini öğretmek amacıyla geliştirilmiş banka kartı büyüklüğünde, fiyat-performans oranı harika olan bir bilgisayardır (Şekil-1).

Şekil-1

Element 14 / Premier Farnell, RS Components ve Egoman şirketleri tarafından üretilmekte ve internet üzerinde satışı yapılmaktadır. Raspberry Pi A ve B olmak üzere iki model şeklinde üretilmiştir. A modeli B modeline göre daha ekonomik, buna karşın B modeli ise daha performanslı ve daha çok özelliğe sahiptir. Raspberry Pi’nin donanım ve özellikleri Tablo-1’de verilmiştir. Buna göre A modeli 256 MB SDRAM’e sahip iken B modelinde 512 MB bellek vardır. A modelinde Ethernet girişi bulunmazken, B modelinde bulunmaktadır. Ayrıca A modelinde tek, B modelinde ise çift USB girişi vardır.

Peki, Raspberry Pi’yi kullanmaya başlamak için hangi donanımlara ihtiyacımız var? Öncelikle Raspberry Pi başlangıçta boş bir şekilde geldiği için kurulum paketlerine ihtiyacımız var. Bu paketleri internetten indirmek mümkündür. Donanım olarak ise minimum 2 GB hafızaya sahip bir SD Kart, USB-Mouse, USB-Klavye, HDMI Kablo, internete bağlanmak üzere kullanacağımız ethernet kablosu, HDMI girişi olan ya da desteklediği girişe uygun HDMI dönüştürücü ile birlikte bir monitör ve 5V 1000 mA güce sahip akıllı telefon güç ünitesi.

Tablo-1

Sonuç olarak bu küçük cihaz bir bilgisayar olduğundan dolayı, Raspberry Pi’yi çok çeşitli amaçlarla kullanmak mümkündür. Öncelikle bu cihazın içerine kendisi için tasarlanmış bir Linux sürümü olan Wheezy kurulumu yaparak masaüstü bilgisayar şeklinde kullanımını daha sonrasında ise medya cihazı olarak kullanımını anlatacağım.

  1. Raspberry Pi’nin Masaüstü Bilgisayar Olarak Kullanımı

Bu bölümde Pi için özel hazırlanmış Windows benzeri bir LXDE-Desktop arayüze sahip Wheezy kurulumu ve kullanımını anlatacağım. Pi, Tablo-1’de görüldüğü üzere sabit diski ya da CD/DVD sürücüye sahip değildir. Boot işlemi SD karttan gerçekleştirilmekte ve başka bir donanımla boot işlemi gerçekleştirilememektedir. Veri depolama işlemi ise bulut ya da USB bağlantılı flash ve harici disklerle yapılabilmektedir.

Kurulumunu gerçekleştireceğimiz Raspbian Wheezy işletim sistemi, debian-kernel tabanlı bir Linux sürümüdür. Bu durumda Debian-Linux tabanlı tüm programlar bu Pi’de kullanılabilir. Ayrıca Wheezy sürümünde işletim sistemini tanıtan bir program, Midori web tarayıcı ve bazı basit oyunlar da hazır olarak gelmektedir.

  1. 1.Kurulum Adımları

Öncelikle 577 MB boyuta sahip Wheezy işletim sistemini raspberrypi.org/downloads adresinden indiriyoruz. İndirdiğimiz sıkıştırılmış dosyayı bir zip programı ile açıyoruz.

  • Pi için kullanacağımız SD kartı bir kart okuyucu vasıtasıyla bilgisayarımız takıyor ve FAT32 formatında biçimlendiriyoruz.
  • İnternetten ücretsiz olarak bulabileceğimiz Win32 DiskImager.exe’yi indiriyoruz ve çalıştırıyoruz. Şekil-2’deki görüldüğü üzere Image File için daha önce indirdiğimiz wheezy image dosyasının bilgisayardaki yerini ve Device için de SD kartın bulunduğu harfi seçiyoruz ve Write butonuna tıklıyoruz. Bize emin olup olmadığımız soracaktır (Şekil-3). Yes seçeneğine tıklıyoruz. Yazma işlemi biraz zaman alacaktır. Bittiğinde ise Write Successful uyarısı verecektir. Ok butonuna tıklıyoruz.

Şekil-2

Şekil-3

Şekil-4

  • İşletim sistemimiz kuruluma hazırdır. Gerekli kabloları takarak Rasbperry Pi’yi çalıştırıyoruz.
  • Linux üzerinde çalışıyorsak bir önceki adımdaki işlemleri şu şekilde yapacağız.
  • İşletim sistemimiz kuruluma hazırdır. Gerekli kabloları takarak Rasbperry Pi’yi çalıştırıyoruz.
  • Cihazı çalıştırdığımızda Şekil-5’teki ekran ile karşılaşacağız. Raspberry Pi varsayılan olarak SD kart hafızasının tamamını kullanmamaktadır. Hafızanın tamamını kullanmak için Expand Filesystem seçeneğini seçiyoruz. İşlem tamamlandıktan sonra bize dosya sisteminin cihazın bir sonraki başlamasında genişletileceği bilgisi ekranda görülecektir (Şekil-6). Unutulmamalıdır ki bu ekranda yapılacak olan her değişiklik bir sonraki reboot’tan sonra devrede olacaktır.

Şekil-5

Şekil-6

  • Bu adımda dil ve bölge ayarlarını yapmamız gerekmektedir. Bunun için Şekil-5’te görülen ekranda 4. seçenek olan Internationalization Options seçeneğini seçiyoruz. Önce klavye dilini, sonra da Change Timezone diyerek zaman için bölgemizi ayarlıyoruz.

Şekil-7

  • Şu ana kadar yapılmış olan ayarlar bizim için yeterli durumdadır. İstenildiği takdirde Şekil-5’te görülen ayar ekranında diğer sistem ayarları da değiştirilebilir. Ayarları tamamlamak için Şekil-5’teki Finish butonuna tıklıyoruz. Bize cihazı yeniden başlatmak isteyip istemediğimizi soracaktır. Yes seçeneğine tıklıyoruz. Cihaz yeni ayarlarıyla yeniden başlayacaktır.

Şekil-8

  • Cihaz yeniden başladığında işletim sistemi tamamen hazır durumda olarak gelecektir. Komut arayüzünde açılan işletim sistemi bizden kullanıcı adı ve şifre isteyecek. Varsayılan olarak kullanıcı adı pi ve şifre ise raspberry şeklinde belirlenmiştir. Bu kullanıcı adı ve şifreyle login olabiliriz. Login olduktan sonra startx komutu ile kullanıcı arayüzünü (Şekil-9) başlatacağız. İşletim sistemimiz tamamen kullanıma hazırdır.

Şekil-9

  1. Medya Cihazı Olarak Kullanım

Pi’yi medya cihazı olarak kullanmak için Raspbmc Xbox-mediacenter kurulumunu yapacağız. Eğer cihazı medya cihazı olarak kullanmak için satın almışsak bu kurulum normal işletim sistemi kurmaktan daha uygun olacaktır.

2.1 Raspbmc Kurulum Adımları

  • Öncelikle Raspbmc Image dosyasını bilgisayarımıza internet sitesinden [2] indiriyoruz. İndirdiğimiz sıkıştırılmış dosyayı bir zip programı ile açıyoruz.
  • Raspbmc Installer uygulamasını çalıştırıyoruz (Şekil-10)

Şekil-10

  • Installer ekranında SD kartımızın seçildiğinden emin oluyoruz ve I accept the license agreement seçeneğiniz işaretleyerek, Install butonuna tıklıyoruz. Yükleme biraz zaman alabilir.
  • Yükleme tamamlandıktan sonra gerekli kabloları takıp cihazı çalıştırıyoruz. Medya cihazı olarak kullanımdan mouse’a gerek duymayacağız. Cihaz ilk çalıştırıldığında internetten dosya indirip kurması gerektiğinden, internete ihtiyaç duymaktadır. Buradaki kurulum aşamasında bize iş düşmemektedir. Bu işlem biraz zaman alabilir. Kurulum tamamlandıktan sonra cihaz yeniden başlayacak ve medya cihazı olarak kullanıma hazır hâlde olacaktır (Şekil-11).

Şekil-11

Kaynaklar

  • raspberrypi.org/downloads
  • http://www.raspbmc.com/wiki/user/windows-installation/
  • techrepublic.com
  • Wikipedia

Linux usb disk fat32 format ve unable to open ..: Device or resource busy hatası

fdisk –l komutuyla cihaza takılı tüm diskler görünmektedir. Formatlamak istediğiniz diskin adını buradan alın.

mkdosfs –F 32 –I /dev/sdb komutu ile fat32 formatında disk biçimlendirilir.  Burada /dev/sdb benim biçimlendirmek istediğim diskim. Sizin biçimlendirmek istediğiniz diskin adı farklı olabilir. Bu noktaya dikkat edilmelidir. Ayrıca ben bu şekilde formatlamak istediğimde unable to open /dev/sdb : Device or resource busy hatası verdi. Bunun sebebi diskin daha önceden partition’lara ayrılması imiş. Bu sebeple önce diskin partition’larını silmek gerekiyor. Bunun için fdisk /dev/sdb komutunu çalıştırdım ve p tuşuna bastım. Bana /dev/sdb1 ve /dev/sdb2 şeklinde iki partition’a ayrıldığı söyledi. Daha sonra d tuşuna basarak silme moduna geldim ve 2 tuşuna basarak 2.partition’ı sildim. Aynı işlemi 1. partition için de yaptım. Usb diski çıkarıp tekrar taktığımda disk formatlanmaya hazır hale geldi. Daha sonra daha önce bahsettiğim mkdosfs ile formatlama işlemini tekrar denedim. Sorunsuz şekilde disk fat32 formatında biçimlendirildi.

Linux: ssh rsync ile otomatik backup alma

Bir linux makineden belli zaman aralıklarında otomatik olarak başka bir makineye backup alınmasını istiyoruz. Bu durumda takip edeceğimiz adımlar aşağıdaki şekildedir.

1.   Öncelikle rsync’ın makinemize kuralım. (yum rsync ya da apt-get install rsync)

2. Backup’ı alınacak makineden herhangi bir klasörü backup’ı saklayacağımız makineye senkronize etmeye çalışalım. Aşağıdaki komutu backup’ı alınacak bilgisayarda çalıştırıyoruz.

rsync -avz -e ‘ssh -p 22’ /home/dosya root@192.168.1.2:/home/yedek/

Yukarıdaki komut dizisi çalıştırıldığında bize 192.168.1.2 ip’li bilgisayarın root kullanıcısının şifresini soracaktır. Eğer şifre doğru girilirse senkronizasyon başlayacaktır ve içerisinde bulunduğumuz makinenin /home/dosya dizini 192.168.1.2 ip’sine sahip bilgisayarın /home/yedek dizinine kopyalanacaktır. Eğer başka bir kullanıcı ile bağlanacak ise komut dizisinde root yerine kullanıcı adını yazmalıyız. Ayrıca başka bir porttan ssh bağlantısı yapmak istiyorsak 22 yerine istenilen port yazılmalıdır. Başarılı bir şekilde kopyalama işlemi tamamlandıysa diğer  adımlara geçebiliriz.

3. Bir önceki adımda görüldüğü üzere rsync’ı ssh üzerinde kullandığımızdan dolayı her çalışmada bize şifre soracaktır. Olayı otomatikleştirmek istediğimizden dolayı bunu engellemeliyiz. Bunun için ssh keygen üretmeliyiz. Backup’ını alacağımız makinede aşağıdaki işlemleri yapıyoruz.

ssh-keygen komutunu çalıştırıyoruz. Bize şifre soracak direk enter’a basıp boş olarak geçelim.

ssh-copy-id –i ~/.ssh/id_rsa.pub “192.168.1.2 –p 22”  komut dizisi ile backup’ı alacağımız makineye keygen’i gönderiyoruz.

Not: Koddaki 22 port numarasıdır. Farklı bir porttan bağlanmak için değiştirilmesi gerekir.

şimdi ssh 192.168.1.2 kodunu çalıştırdığımızda şifre sormadan direkt olarak uzak bağlantı yapıyor olmamız gerekiyor. Burada da sorun yoksa diğer adıma geçiyoruz.

4. Bu adımda rsync kodumuzu script içerisine yazacağız. Böylece scripti  çalıştırdığımızda otomatik olarak dizin senkronize olmaya başlayacaktır. Bunun için bir metin dosyası açıp içerisine aşağıdaki şekilde rsync kodunu yazıyoruz. Dizinler, ip adresi, kullanıcı adı ve port ayarı yapmayı unutmayınız. (Komut dizininde geçen delete komutu backup alınacak dosyalarda silinmiş dosyalar var ise yedeği tuttuğunuz yerden de onları silecektir.)

#!/bin/bash

rsync –avz –delete -e ‘ssh -p 22’ /home/dosya root@192.168.1.2:/home/yedek/

Kodu yazdıktan sonra dosyası .sh uzantılı olacak şekilde kaydediyoruz. Örnek olarak, dosyamızın ismi backup.sh olsun.

Dosyası kaydettikten sonra aşağıdaki şekilde çalıştırıyoruz.

/bin/bash /dizin/backup.sh

Bu işlemden sonra dosya senkronize olmuşsa herşey yolunda gidiyor demektir. Bir sonraki adıma geçiyoruz.

5. Bu adımda yazdığımız scripti cron’a ekleyerek istenilen zaman dilimlerinde scriptin otomatik olarak çalıştırılmasını sağlayacağız. Örnek olarak ben bu scriptin iki saatte bir otomatik olarak çalışmasını istiyorum. Bunun için aşağıdaki komutları yazmam gerekiyor.

job eklemek için öncelikle crontab -e yazıyorum.
vim editörüyle açılan dosyaya 0 */2 * * * /dizin/backup.sh satırını ekliyorum ve kaydediyorum.

Benim örneğimde script her 2 saatte bir çalışacak. Bunu her 15 dakika,1 saat, 1 gün, 1 hafta ve 1 ay gibi sürelere çekebilirsiniz. Bu programlama için cron hakkında internetten detaylı bilgiye ulaşabilirsiniz.

Cron’a işi ekledikten sonra tüm işlemlerimiz tamamlanmış bulunmaktadır. Doğru çalışıp çalışmadığın loglardan takip edebilirsiniz. Doğru çalışıyor ise sorunsuz biçimde belirlediğiniz zaman dilimlerinde backup’ınız alınıyor olacaktır.

Not: İlk kullanımda bende cron permission denied (erişim yetkisi) hatası verdi. Bu hatayı da aşağıdaki komutla giderebilirsiniz.

chmod 711 /dizin/backup.sh

Ubuntu 11.04 Ipv6 Bind9 Configuration

Ubuntu 11.04’e Ipv6 DNS Server için Bind9 konfigürasyonundan bahsedeceğim. Öncelikle apt-get install bind9 komutu ile bind9’u sistemimize yüklüyoruz. Kuracağımız DNS Server’ın IP’si 2001:db8:190::1 olsun. Daha sonra Ipv6 zone’ları tanımlamamız gerekiyor. Bunun için /etc/bind/ dizinindeki named.conf.default-zones dosyasını açıyoruz. v6.ipv6example.com şeklinde bir zone oluşturmak için aşağıdaki kodları açtığımız dosya içerisinde ekliyoruz.

zone “v6.ipv6example.com” {
type master;
file “/etc/bind/db.v6.ipv6example.com”;
};

zone “1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.9.1.0.8.b.d.0.1.0.0.2.ip6.arpa”  {
type master;
file “/etc/bind/db.2001:db8:190::1”;
};

Bu dosyayı kaydedip çıktıktan sonra yukarıda belirttiğimiz /etc/bind/ dizini altındaki db.v6.ipv6example.com ve db.2001:db8:190::1 dosyalarını oluşturmamız gerekmektedir. Bu dosyaların içerikleri aşağıdaki örnektekiler gibi olmalıdır.

db.v6.ipv6example.com dosyasının içeriği
; BIND reverse data file for broadcast zone
;
$TTL    604800
@    IN    SOA    v6.ipv6example.com. host.ipv6example6.com. (
12        ; Serial
604800        ; Refresh
86400        ; Retry
2419200        ; Expire
604800 )    ; Negative Cache TTL
;
@    IN    NS    v6.ipv6example.com.
@    IN    A    xx.xx.xx.xx  (Buraya Ipv4 Dns Server IP’si gelecek.)
@    IN    AAAA    2001:db8:190::1
;

db.2001:db8:190::1 dosyasının içeriği

;
; BIND reverse data file for broadcast zone
;
$TTL    604800
$ORIGIN 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.9.1.0.8.b.d.0.1.0.0.2.ip6.arpa.
@    IN    SOA    v6.ipv6examplecom. root.ipv6example.com. (
3        ; Serial
604800        ; Refresh
86400        ; Retry
2419200        ; Expire
604800 )    ; Negative Cache TTL
;
@    IN    NS    v6.ipv6example.com.

Bu dosyaları oluşturduktan sonra /etc/init.d/bind restart ve /etc/init.d/networking restart komutlarıyla DNS server ve network’ünüzü yeniden başlatıyoruz. Konfigürasyonumuz tamamlanmıştır.

Virtual Box üzerinde Ubuntu eth0 cihaz bulunamadı hatası (eth0 no such device)

Sanal makineye kurulu Ubuntu Server üzerinde çalışırken eth0 cihaz bulunamadı (no such device) hatası almaya başladım. ifconfig komutuyla ip sorgulaması yaptığımda sadece loop ethernet görünüyordu. Sanal makineyi ve gerçek makineyi ayrı ayrı yeniden başlatmama rağmen sorun çözülmedi. Son olarak internette aramaya koyuldum ve bir sitede önerilen yöntemi denedim. Sorunu; /etc/udev/rules.d/ klasörü altındaki 70-persistent-net.rules  ( yada kullandığınız versiyona göre persistent-net.rules adlı dosya ) dosyasını silerek hallettim. /etc/init.d/networking restart komutu ile network’ü yeniden başlattığımda herşey normal haline döndü.

Kaynak : http://techmix.net/blog/2010/08/17/siocsifaddr-no-such-device-eth0-in-ubuntu-virtualbox/