Monitörsüz (Headless) Kurulum

Bu başlıkta anlatılan işlemlerin tamamı artık Rasberry Pi Imager ile imaj yazma işlemi sırasında gerçekleştirilebiliyor. Bu bölümdeki bilgiler pratik bir fayda sağlamasada Raspberry Pi Imager’ın bu işlemleri nasıl gerçekleştirdiğini ve Raspberry Pi OS’un yapısını anlamak açısından faydalı olabilir.

Raspberry Pi Imager ile Headless Kurulum Gerçekleştirilebilir

Bu başlıkta; Raspberry Pi Imager’ı kullanarak Raspberry Pi OS Lite dağıtımının kurulumunu ve yapılandırmasını gerçekleştireceğiz. Burada anlatacağımız kurulum türü headless (yani klavye ve monitöre ihtiyaç olmadan) olarak anılan türüdür. Bu kurulum türünde temel olarak SD karta işletim sistemi imajını yazıp, doğrudan SD kart üzerinde tanımlayacağımız ağ yapılandırma ayarları ile Raspberry Pi’ı ağ destekli olarak çalışmaya hazır hale getireceğiz. Kurulum sırasında ve sonrasında klavye, fare ve monitör gibi çevre birimlerine ihtiyaç duymayacağız. Raspberry Pi’ı uzaktan bağlanarak yönetecek ve kullanacağız.

Genellikle tecrübeli kullanıcıların ilk tercihi olan headless kurulum yönteminde Raspberry Pi’ın yönetimsel görevleri, grafiksel ekran yerine SSH protokolü üzerinden sağlanan komut satırı ile ağ üzerinden gerçekleştirilir. Headless kurulumda amaç genellikle, Raspberry Pi’ı ağ sunucu hizmetleri için kullanmak (Web sunucusu, Dosya Sunucusu, E-posta Sunucusu, Yedekleme Sunucusu, Güvenlik Duvarı vb.) veya gömülü sistem uygulamalarında (embedded system[1]) karar ve izleme görevi için konumlandırmaktır. Bir gömülü sistem uygulamasında Raspberry Pi, bir elektronik/elektro-mekanik sistemi yönetmek veya takip etmek için cihazın içerisine sabit olarak da yerleştirilir. Bu şekilde Raspberry Pi, bir robotu yönetebileceği gibi, çeşitli algılayıcılardan (ışık, ses, nem, sıcaklık, CO2 ve oksijen) okuduğu bilgileri işleyen bir hava ölçüm istasyonunun kalbi durumunda da olabilir. Dolayısıyla bu tür kullanımlarda Raspberry Pi’a bir monitör ve klavye/farenin bağlı olmasına gerek yoktur. Ayrıca grafik kipi, performans, güç tüketimi ve güvenlik açısından Linux’un diğer grafik tabanlı işletim sistemlerine göre (Windows ve MacOS) en büyük avantajı olarak kabul edilir. Çünkü hiç kullanılmamasına rağmen grafiksel modda çalışan bir Linux sistemi diğer görsel işletim sistemlerinde olduğu gibi göreceli olarak sistem performansını %30’a kadar düşürür. Bu kurulum türü düşük donanım özelliklerine sahip Raspberry Pi Zero modellerinin kurulumunda da çok tercih edilir.

Eğer hazırsanız headless kuruluma başlayabiliriz. Kurulum mantıksal açıdan aşağıdaki kısımlardan oluşmaktadır:

  1. İşletim sisteminin SD karta yazılması.
  2. Açılış komut dosyası cmdline.txt ’nin düzenlenmesi.
  3. wpa_supplicant.conf aracılığı ile  kablosuz ağ ayarlarının tanımlanması.
  4. Uzaktan bağlantı sağlayabilmek için SD kart üzerinden ssh servisinin etkinleştirilmesi.
  5. Raspberry Pi’ın başlatılması ve ağ bağlantısının sınanması.

İşletim sisteminin SD karta yazılması ^

“İşletim Sisteminin Yüklenmesi” adlı başlıkta Raspberry Pi Imager adlı kurulum yardımcısı kullanılarak Raspberry Pi OS Desktop sürümünün kurulumu anlatılmıştı. Şimdi ise aynı aracı ve kurulum yöntemini kullanarak Raspberry Pi OS Lite dağıtımını kuracağız. Bunun için Raspberry Pi Imager programından CHOOSE seçeneği ile işletim sistemlerini listeledikten sonra “Raspberry Pi OS (Other)” seçeneğine tıklatın. Ardından “Raspberry Pi OS Lite” ‘ı seçin ve ilgili başlıkta anlatıldığı şekilde yazma işlemini başlatın.

Yazma işlemi tamamlandıktan sonra SD kartı okuyucudan çıkartın ve tekrar takın. Bilgisayarınızın dizin göz atıcısından görebileceğiniz gibi yazma sırasında SD kart üzerinde 2 adet disk bölümü oluşturulmuştur. Bunlardan ilki “boot” etiketli, 252MB boyutunda ve FAT biçimli disk bölümüdür. Aşağıda bu disk bölümlerinin bir ekran görüntüsü yer almaktadır.

Raspberry Pi OS Lite yüklü SD kartın disk bölümleri

Sonraki başlıkta anlatılacağı üzere boot etiketli disk bölümünde yer alan dosyalar üzerinde bazı işlemler yapacağız. Bu işlemler sırasıyla Raspberry Pi’ın IP ve kablosuz ağ yapılandırmasının tanımlanması ve SSH servisinin etkinleştirilmesi olacak.

Bu aşamada yüklemesini gerçekleştirmiş olduğumuz Raspberry Pi OS Lite dağıtımı grafik masaüstü ortamını içermeyen ve ilgili grafik programlardan arındırılmış hızlı ve hafif bir sürümdür. Dolayısıyla bu dağıtım sayesinde Raspberry Pi’a bir monitör, klavye ve fare bağlamanıza gerek kalmaz. Tabii ki Raspberry Pi ‘a uzaktan bağlanmak yerine her zaman bir monitör ve klavye bağlayarak da terminal ortamında erişim sağlayabilirsiniz. Aşağıda terminal ekranında oturum açılmış bir Raspberry Pi’ın fotoğrafını görebilirsiniz.

Raspberry Pi’ın terminal konsolu

Açılış komut dosyasının düzenlenmesi ^

Yazma işlemi başarıyla tamamlandıktan sonra SD kartın içinde bulunan “boot” etiketli disk bölümüne girerek cmdline.txt dosyasını bir metin editöründe açın (örneğin Not Defteri veya nano).

Bu aşamada Raspberry Pi’ın açılışı ve çalışması sırasında geçerli olacak bazı ayarları yapılandıracağız. cmdline.txt dosyasına girilen değerler açılış sırasında Linux çekirdeğine seçenek olarak verilir ve geçerli olması sağlanır.

Şu anda bir headless kurulum yaptığımızdan, Raspberry Pi bilgisayarına ağ üzerinden SSH bağlantısı ile erişeceğiz. Bu nedenle de Raspberry Pi’ın sabit bir IP adresine sahip olması gerekiyor. Raspberry Pi’a atamak istediğimiz IP adresinin 192.168.0.101 olduğunu varsayalım (Siz kendi ağ adresinize [192.162.1.x, 10.0.0.x vb.] uygun olarak; kullanılmayan bir IP adresini de atayabilirsiniz).

Raspberry Pi’ın IP adresini cmdline.txt dosyasındaki satırın sonuna ip=192.168.0.101 biçiminde kullanacağınız IP adresini yazın ve kaydedin. Bu satır boot işlemi sırasında Linux çekirdeğine seçenek olarak geçilir. Dosyanın son hali aşağıdaki gibidir:

console=serial0,115200 console=tty1 root=PARTUUID=6c586e13-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet init=/usr/lib/raspi-config/init_resize.sh ip=192.168.0.101

IP parametresinin tüm argümanları şu şekildedir:

ip=<client-ip>:<server-ip>:
<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>

Bilgi notu

cmdline.txt dosyasının içeriğinde yer alan init seçeneğine bakarsanız /usr/lib/raspi-config/init_resize.sh adlı betik dosyasına işaret ettiğini görebilirsiniz. Bu betik, Raspberry Pi’ın ilk açılışında dosya sistemini otomatik olarak SD kartın tamamını kullanacak şekilde genişletir. Eğer dosya sisteminin SD kartın tamamını kullanacak şekilde yeniden boyutlandırılmasını istemiyorsanız, bu init seçeneğini kaldırabilirsiniz. Bazen init seçeneğini kullanmak istemeyebilirsiniz. Örneğin büyük bir SD karta sahipseniz ve yedekleme ya da çoğaltma amaçlı olarak SD kartı kopyalamak gerektiğinde ortaya çıkan kalıp (imaj) boyutu SD kartın boyutu kadar olur ve kopyalama işlemi uzun sürebilir ve elde edilen kalıp dosyaları fazla yer kaplayabilir. Eğer kurulumunuzu başka Raspberry Pi’larda da çalıştırmak üzere ayarlıyorsanız bu seçeneği kaldırmak iyi bir fikir olabilir. Disk alanına İhtiyacınız olduğunda bu seçeneği cmdline.txt dosyasına tekrar ekleyerek  kullanabilirsiniz. Eğer elinizde hâlihazırda SD kartın tamamına genişletilmiş bir dosya sistemi varsa, onu daraltmak için Gparted aracını kullanabilirsiniz.

Kablosuz ağ bağlantısının gerçekleştirilmesi ^

Raspberry Pi’ın açılır açılmaz bir kablosuz ağ erişim noktasına otomatik olarak bağlanmasını sağlayabilirsiniz. Böylece Raspberry Pi’a erişmek için bir ağ kablosu kullanmanıza gerek kalmaz. Önceki başlıkta anlatılana benzer olarak; FAT biçimli boot bölümüne isterseniz bir Windows makinesi yardımıyla, dilerseniz de Linux içinden /boot dizinine giderek wpa_supplicant.conf adında bir dosya oluşturarak, bağlanılacak olan kablosuz ağları ve parolalarını tanımlayabilirsiniz. Linux aracılığıyla bu dosyayı oluşturmak için aşağıdaki komutları kullanabilirsiniz. Windows kullanarak yapmak için ise, boot dizini altında yeni bir metin belgesi oluşturarak adını wpa_supplicant.conf olarak değiştirin.

[email protected]:/ $ sudo su
[email protected] raspberry:/# cd /boot/
[email protected] raspberry:/boot# touch wpa_supplicant.conf

Şimdi de dosyanın içerisine Raspberry Pi’ın bağlanmasını istediğimiz kablosuz ağları ve parolalarını tanımlayalım. Dosyayı nano editörü ile açarak aşağıdaki satırları ekleyin:

[email protected]:/boot# nano wpa_supplicant.conf
country=TR
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="KABLOSUZ_AGIN_ADI"
psk="KABLOSUZ_AG_PAROLASI"
}

Yapılandırma dosyasındaki ssid ve psk değerlerini kendinize göre düzenlemelisiniz. ssid seçeneğinin değerini tırnak işaretleri içerisinde olacak şekilde Raspberry Pi’ın bağlanacağı kablosuz ağın adını yazın. psk seçeneğine ise bu ağın parolasını yazın. Eğer birden fazla kablosuz erişim noktası varsa veya Raspberry Pi’ınızı ev ve iş yeri arasında taşıyorsanız, öncelik vererek birden fazla kablosuz erişim noktası da tanımlayabilirsiniz. Aşağıdaki örnekte 2 adet kablosuz ağ tanımlaması yapılmış ve önce hangisine bağlanacağı priority (öncelik) seçeneği ile belirtilmiştir.

country=TR
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="KABLOSUZ_AG1"
psk="KABLOSUZ_AG1_PAROLA"
priority=1
}
network={
ssid="KABLOSUZ_AG2"
psk="KABLOSUZ_AG2_PAROLA"
priority=2
}

Bu örnek yapılandırmada Raspberry Pi öncelikle KABLOSUZ_AG2 ağına bağlanmayı deneyecek eğer başarılı olamazsa KABLOSUZ_AG1’e bağlanmayı deneyecektir. Çünkü KABLOSUZ_AG2’nin priority değeri KABLOSUZ_AG1’den büyük olarak tanımlanmıştır.

SD kart üzerinden SSH servisinin aktifleştirilmesi ^

Raspberry Pi OS (Raspbian) Pixel[2] dağıtımından itibaren SSH servisi, güvenlik amacıyla pasif duruma alınmıştır. SSH servisinin açılışta başlaması için cmdline.txt dosyasının bulunduğu dizine içi boş uzantısı olmayan ssh isimli bir dosya oluşturmalısınız (Uyarı: bu bir dizin değildir). Oluşturduğunuz bu dosya ilk başarılı SSH oturumun ardından silinecek ve varsayılan duruma dönecektir. Bu nedenle ilk SSH oturumunuzda, SSH sunucusunu açılışta başlayacak şekilde yapılandırmalısınız. Bunun için kitabın “Headless Kurulumdan Sonraki İlk İşlemler” başlıklı konusuna bakabilirsiniz.

Boş bir ssh dosyası oluşturmak

Raspberry Pi’ın başlatılması ve ağ bağlantısının sınanması ^

SD Kartı Raspberry Pi’a yerleştirin, sırasıyla ethernet ve güç kablolarını bağlayarak enerji verin. 10 sn. içerisinde Raspberry Pi OS yüklenecek ve çalışır duruma gelecektir. Kartın üzerindeki ağ gösterge ışıklarının yanıp sönmesinden bunu anlayabilirsiniz. Ayrıca Raspberry Pi’ın çalışıp çalışmadığını sınamak için ping komutunu kullanabilirsiniz. Bilgisayarınızın komut konsolundan şu komutu verin:

ping 192.168.0.101

Windows bilgisayarından ping komutu ekran görüntüsü

Eğer açılış komut dosyasını düzenleyerek sabit bir IP ataması yapmadıysanız, sıradaki IP adresi Raspberry Pi’a otomatik olarak tahsis edilecektir. Bu durumda mevcut IP adresini öğrenmek için kitabın “Raspberry Pi’a Bağlanmak (Konsol Bağlantısı)” adlı başlığına göz atabilirsiniz. Bu aşamadan sonra Raspberry Pi’a bağlanmak adlı konuyu inceleyebilirsiniz.


[1] Raspberry Pi gömülü sistem uygulamaları: https://goo.gl/r1Xb3D

[2]https://www.raspberrypi.org/blog/a-security-update-for-raspbian-pixel/

Yazar: Özgür Koca

Yazar - Tankado.com

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.