xiii
İÇİNDEKİLER
1 BÖLÜM 1: RASPBERRY Pİ’A GİRİŞ ___________________________________________________ 1
Raspberry Pi Nedir? _____________________________________________________________ 1 Raspberry Pi ile Neler Yapabilirsiniz?_______________________________________________ 3 Raspberry Pi Vakfı ______________________________________________________________ 5 İşletim Sistemi ve Linux? _________________________________________________________ 6 GNU Linux ve GNU felsefesi ______________________________________________________ 8 Neden Linux? __________________________________________________________________ 9 Türkiye Linux Kullanıcıları Derneği (LKD) ___________________________________________ 10 Raspberry Pi Modelleri ve Satın Alma _____________________________________________ 11 Raspberry Pi Model A _________________________________________________________ 11 Raspberry Pi Model B _________________________________________________________ 12 Raspberry Pi Zero ____________________________________________________________ 14 Raspberry Pi Compute Modul (CM) ______________________________________________ 15 Raspberry Pi’ı nasıl temin edebilirim? ____________________________________________ 17 Raspberry Pi Çevre Birimleri _____________________________________________________ 18 Enerji Besleyiciler ____________________________________________________________ 19 USB portu ile beslemek ______________________________________________________ 20 USB Hub’ı ile beslemek ______________________________________________________ 20 Lityum batarya ile beslemek __________________________________________________ 21 Güneş paneli ile beslemek ____________________________________________________ 21 ATX Güç kaynağı ile beslemek _________________________________________________ 22 PoE (Power over Ethernet) ile beslemek ________________________________________ 23 Raspberry Pi’ı GPIO üzerinden Beslemek ________________________________________ 23 Micro SD Kart _______________________________________________________________ 26 Micro SD Kart Okuyucu ________________________________________________________ 28 HDMI kablo ve dönüştürücü ____________________________________________________ 29 Zero’ya Özel Donanımlar ______________________________________________________ 30 Kablosuz Ağ Adaptörleri _______________________________________________________ 31 Raspberry Pi Eklentileri (GPIO HATS) ______________________________________________ 33 MoPi (Mobile Power for Pi) eklentisi ____________________________________________ 33 BrickPi ____________________________________________________________________ 34 ArduiPi ____________________________________________________________________ 34 HiFiBerry __________________________________________________________________ 35 Servo PWM Pi ______________________________________________________________ 35 TV Hat ____________________________________________________________________ 36 Raspberry Pi İşletim Sistemleri ___________________________________________________ 36 Raspbian (Raspberry Pi’ın resmi dağıtımı) ________________________________________ 38 Minibian dağıtımı ___________________________________________________________ 38 Dietpi dağıtımı ______________________________________________________________ 38 Ubuntu MATE dağıtımı _______________________________________________________ 38
xiv
Pidora Linux dağıtımı _________________________________________________________ 39 RiscOS Pi dağıtımı ___________________________________________________________ 39 PardusARM dağıtımı _________________________________________________________ 39 Chromium OS _______________________________________________________________ 40 Retro Pie __________________________________________________________________ 40 Windows 10 IoT Core _______________________________________________________ 40 Android Dağıtımı ___________________________________________________________ 41 Kali Linux dağıtımı __________________________________________________________ 41 Linutop Linux dağıtımı _______________________________________________________ 42 Sarpi Linux Dağıtımı _________________________________________________________ 42 VOLUMIO Linux dağıtımı ve donanımı __________________________________________ 42 LibreELEC dağıtımı __________________________________________________________ 42 Diğer Dağıtımlar ____________________________________________________________ 42 Raspberry Pi Kaynakları _________________________________________________________ 44 Bu Bölümde Neler Öğrendik? ____________________________________________________ 45 Çalışma Soruları _______________________________________________________________ 46 2 BÖLÜM 2: İŞLETİM SİSTEMİNİ YÜKLEMEK VE AYARLAMAK ______________________________ 49
İşletim Sisteminin Yüklenmesi ___________________________________________________ 51 Raspberry Pi Imager kurulum yardımcısı hakkında __________________________________ 51 Raspberry Pi için alternatif kurulum araçları _______________________________________ 52 Raspberry Pi Imager ile kurulumun gerçekleştirilmesi ________________________________ 54 Monitörsüz (Headless) Kurulum __________________________________________________ 56 İşletim sisteminin SD karta yazılması _____________________________________________ 57 Açılış komut dosyasının düzenlenmesi ____________________________________________ 58 Kablosuz ağ bağlantısının yapılması ______________________________________________ 59 SD kart üzerinden SSH servisinin aktifleştirilmesi ___________________________________ 60 Raspberry Pi’ın başlatılması ve ağ bağlantısının sınanması ____________________________ 60 Monitörsüz (Headless) Kurulumdan Sonraki İlk İşlemler ______________________________ 61 Raspberry Pi’ın parolasını değiştirmek ____________________________________________ 61 SSH Servisini Kapatmak veya Açmak______________________________________________ 61 Dosya sistemini genişletmek ____________________________________________________ 61 Bölge, Dil ve Tarih ayarlarını yapmak _____________________________________________ 62 Grafik işlem bellek miktarını ayarlamak ___________________________________________ 63 Raspberry Pi’ın ağda görünen adını ayarlamak _____________________________________ 64 Grafik Kullanıcı Arabirimini Kurmak _______________________________________________ 64 xOrg görüntü sunucusunun kurulumu ____________________________________________ 65 xinit pencere sistemi ön yükleyicisinin kurulumu ___________________________________ 66 PIXEL masaüstü ortamının kurulumu _____________________________________________ 66 Grafik kullanıcı arabiriminin başlatılması __________________________________________ 66 Grafik Kurulumdan Sonraki İlk İşlemler ____________________________________________ 66 Yerel dil, saat ve klavyenin ayarlarını yapmak ______________________________________ 67 Sistem ayarlarını yapmak ______________________________________________________ 68 Ağ servislerini ve çekirdek modüllerini etkinleştirmek _______________________________ 69 IP yapılandırmasını gerçekleştirmek ______________________________________________ 70
xv Raspberry Pi’a Bağlanmak (Konsol Bağlantısı) ______________________________________ 71 IP Adresini Tespit Etmek _______________________________________________________ 71 Yöntem-1: local üst alan adını kullanarak IP adresini öğrenmek ______________________ 72 Yöntem-2: Modemin yönetim panelinden IP adreslerini listeletmek __________________ 72 Yöntem-3: hostname komutu ile IP adresini öğrenmek _____________________________ 72 Yöntem-4: arp-scan ile IP adresini öğrenmek _____________________________________ 72 Yöntem-5: netdiscover aracı ile ağı taratmak _____________________________________ 73 Yöntem-6: arpscannet programı ile ağı taramak __________________________________ 73 Yöntem-7: Advanced IP Scanner ile ağı taramak __________________________________ 74 Yöntem-8: Android uygulaması Fing ile ağı taratmak_______________________________ 75 Raspberry Pi’a SSH ile Bağlanmak _______________________________________________ 75 Ağ arabirim kartının adını öğrenmek _____________________________________________ 77 IP Yapılandırmasını Elle (Manual) Yapmak _________________________________________ 78 Raspberry Pi’ı İnternete Bağlamak _______________________________________________ 80 Fazladan DNS Sunucu Adresi Tanımlamak _________________________________________ 81 Raspberry Pi’ı Güncelleştirmek __________________________________________________ 82 Raspberry Pi’ı Otomatik Güncelleştirmek __________________________________________ 84 Gereksiz Servisleri Açılıştan Kaldırmak ____________________________________________ 85 systemctl aracı ile açılış servislerini ayarlamak _____________________________________ 86 rcconf aracı ile açılış servislerini ayarlamak ________________________________________ 86 Uzak Bilgisayardan Dosya Kopyalamak ____________________________________________ 87 Bu Bölümde Neler Öğrendik? ____________________________________________________ 88 Çalışma Soruları _______________________________________________________________ 89 3 BÖLÜM 3: LİNUX KOMUT KABUĞU VE TEMEL KOMUTLAR ______________________________ 91
Linux dosya sistemi ve dizinler ___________________________________________________ 93 Özel aygıt dosyaları ___________________________________________________________ 95 /dev/null __________________________________________________________________ 95 /dev/zero _________________________________________________________________ 95 /dev/random ______________________________________________________________ 95 Komut kabuğu ________________________________________________________________ 95 stdout ve stderr çıktılarının yönlendirilmesi ________________________________________ 97 Özel karakter ve işleçler _______________________________________________________ 98 bash komut kabuğu ile betik yazmak______________________________________________ 99 Linux komutları _______________________________________________________________ 99 ls komutu ile dosya ve dizinleri listelemek ________________________________________ 100 cd komutu ile dizin değiştirmek ________________________________________________ 102 mkdir komutu ile dizin yaratmak _______________________________________________ 102 pwd komutu _______________________________________________________________ 103 touch komutu ile dosya yaratmak ______________________________________________ 103 cat komutu ile dosya görüntülemek ____________________________________________ 104 tail komutu ile dosya içeriğini görüntülemek _____________________________________ 104 head komutu ile dosya içeriğini görüntülemek ____________________________________ 105 grep komutu ile metin filtrelemek ______________________________________________ 105 cp komutu ile dosya/dizin kopyalamak _________________________________________ 106
xvi
mv komutu ile dosa/dizin taşımak _____________________________________________ 106 rm komutu ile dosya/dizin silmek ______________________________________________ 107 ln komutu ile hard link ve soft link yaratmak _____________________________________ 107 find aracı ile dosya araması yapmak ____________________________________________ 109 whereis komutu ____________________________________________________________ 112 locate komutu _____________________________________________________________ 113 which komutu _____________________________________________________________ 113 df komutu ________________________________________________________________ 114 du aracı ile disk kullanım durumunu listelemek ___________________________________ 114 scp komutu ile ağ üzerinden güvenli dosya kopyalama _____________________________ 115 ps (process status) komutu ile işlemleri listelemek ________________________________ 116 kill komutu ________________________________________________________________ 117 killall ve pkill komutları ______________________________________________________ 118 jobs, bg (background) ve fg (foreground) komutları _______________________________ 118 mount komutu ile dosya sistemlerini bağlamak __________________________________ 119 chmod komutu ile erişim izinlerini ayarlamak ____________________________________ 120 erişim izinlerini onluk gösterimle tanımlamak __________________________________ 122 suid, guid izinleri __________________________________________________________ 123 sticky (t) izni _____________________________________________________________ 124 chmod için kullanışlı seçenekler _____________________________________________ 124 chown ve chgrp ile dosya/dizinlerin sahibini tanımlamak ___________________________ 124 su aracı ile kullanıcı değiştirmek _______________________________________________ 125 sudo aracı ile yetki yükseltmek ________________________________________________ 125 date komutu ve tarih/saat işlemleri ____________________________________________ 127 adduser, deluser ve passwd komutları ile kullanıcı hesabı işlemleri _________________ 129 kullanıcı hesabı eklemek ___________________________________________________ 129 kullanıcı hesabı silmek _____________________________________________________ 130 Kullanıcı hesabının parolasını değiştirmek _____________________________________ 131 bilgi ve yardım komutları_____________________________________________________ 131 man (manual) aracı ile kullanım kılavuzlarını görüntülemek _______________________ 132 help (yardım) komutu _____________________________________________________ 134 apropos aracı ____________________________________________________________ 134 whatis aracı ______________________________________________________________ 134 Bu Bölümde Neler Öğrendik? ___________________________________________________ 135 Çalışma Soruları ______________________________________________________________ 136 4 BÖLÜM 4: İŞLETİM SİSTEMİNİ KULLANMAK_________________________________________ 141
Hangi Linux Dağıtımını Kullandığınızı Öğrenin ______________________________________ 143 Hangi Linux Çekirdeğini Kullandığınızı Öğrenin _____________________________________ 144 Paket İşlemleri _______________________________________________________________ 144 Paketleri yüklemek __________________________________________________________ 145 Paketleri güncellemek ________________________________________________________ 147 Paketleri sistemden kaldırmak _________________________________________________ 148 Paketleri listelemek ve araştırmak ______________________________________________ 148 Grafik ortamda paket işlemleri _________________________________________________ 150
xvii Cron ile Görevleri Zamanlamak _________________________________________________ 151 Grafik ortamda görevleri zamanlamak___________________________________________ 154 Zamanlamış görevlerde hata ayıklamak __________________________________________ 154 SystemD Sistem Yükleyicisi ve Yöneticisi _________________________________________ 156 SystemD Çalışma Seviyeleri (Run levels) _________________________________________ 157 Raspberry Pi’ın çalışma seviyesini değiştirmek ____________________________________ 159 Raspberry Pi’ın açılış kipini değiştirmek __________________________________________ 159 Servisleri listelemek _________________________________________________________ 160 Servislerin bağımlılıklarını listelemek ____________________________________________ 161 Servisleri başlatmak ve durdurmak _____________________________________________ 162 Servislerin açılışta (boot) otomatik başlatılmasını sağlamak __________________________ 163 Servisleri maskelemek _______________________________________________________ 163 Yeni bir SystemD servisi oluşturmak ____________________________________________ 163 Raspberry Pi’a Firefox Web Tarayıcısını Yüklemek __________________________________ 164 SD Kartı Yedeklemek __________________________________________________________ 164 SD kartı grafik masaüstü ortamında yedeklemek __________________________________ 165 SD kartı terminal ortamında yedeklemek ________________________________________ 165 SD kartı Windows ortamında yedeklemek ________________________________________ 167 SD kartı Linux ortamında bağlamak _____________________________________________ 168 SD kartı Windows ortamında bağlamak __________________________________________ 168 Disk Kalıbını Harici Olarak Bağlamak ____________________________________________ 170 Dosyaların Bütünlüğünü Doğrulamak ___________________________________________ 171 USB flash belleğin dosya sistemini düzenlemek ___________________________________ 172 USB flash bellek üzerinde disk bölümü oluşturmak_________________________________ 175 USB flash bellek üzerindeki disk bölümü biçimlendirmek ___________________________ 176 USB flaş belleği Linux ortamında bağlamak ______________________________________ 177 USB Tethering ile Raspberry Pi’ı İnternete Bağlamak ________________________________ 178 Açılışta Otomatik Olarak Program Çalıştırmak _____________________________________ 179 rc.local yöntemi_____________________________________________________________ 179 .bashrc yöntemi ____________________________________________________________ 179 crontab yöntemi ____________________________________________________________ 180 Programları Servis Olarak Çalıştırmak ____________________________________________ 180 Uzak Masaüstü Bağlantısı Kurmak _______________________________________________ 181 TeamViewer ______________________________________________________________ 181 XRDP ____________________________________________________________________ 182 VNC _____________________________________________________________________ 183 Raspberry Pi'ı NAS (Network Attached Storage) 'a Dönüştürün _______________________ 184 OMV’un ağ yapılandırmasını gerçekleştirmek ____________________________________ 186 OMV’un varsayılan parolalarını değiştirmek _____________________________________ 187 OMV'da disklerin bağlanması ve bölümlerin oluşturulması _________________________ 187 OMV’da kullanıcı hesabının ve disk paylaşımının oluşturulması ______________________ 188 Raspbian ve OMV'un uyumsuzluğu hakkında ____________________________________ 189 Bu Bölümde Neler Öğrendik? ___________________________________________________ 189 Çalışma Soruları ______________________________________________________________ 189 5 BÖLÜM 5: RASPBERRY PI DONANIMI ______________________________________________ 192
xviii
Raspberry Pi Donanımı ________________________________________________________ 193 BCM Sistem Çipi ve SoC (System on a Chip) Kavramı ________________________________ 195 USB Hub’ı __________________________________________________________________ 198 RAM ______________________________________________________________________ 199 CSI (Seri Kamera Arabirimi) konnektörü __________________________________________ 200 DSI (Seri Görüntü Arabirimi) Konnektörü _________________________________________ 200 Wireless ___________________________________________________________________ 201 Boot EEPROM (Raspberry Pi 4) _________________________________________________ 202 Donanım Özelliklerini Görüntülemek _____________________________________________ 203 vcgencmd aracı ile sistem çipini sorgulamak ______________________________________ 203 Hangi Firmware’i kullanıdığınızı öğrenin ________________________________________ 203 BCMxxxx alt birimlerinin çalışma frekanslarını görüntülemek _______________________ 204 Çekirdek çalışma voltajının görüntülenmesi _____________________________________ 205 Çekirdek sıcaklığını görüntülemek _____________________________________________ 205 Bellek miktarını görüntülemek________________________________________________ 206 Donanımsal kod çözücüleri (codec) görüntülemek ________________________________ 207 İşlemci darboğazlarını tespit etmek ____________________________________________ 208 Monitörü Açıp/Kapatmak____________________________________________________ 209 Device-tree ile sistem bilgilerini görüntülemek ____________________________________ 209 Raspberry Pi bilgisayarının modelini öğrenmek __________________________________ 209 İşlemci hakkındaki bilgileri görüntülemek ________________________________________ 210 Ölçeklenebilir İşlemci saat frekansı kipi __________________________________________ 212 Bellek kullanımın miktarını görüntülemek ve yorumlamak ___________________________ 213 USB aygıtlar hakkında bilgi edinmek _____________________________________________ 214 Disk ve Bölüm Yapısını Analiz Etmek ____________________________________________ 215 SD kart’ın seri numarasını görüntülemek _________________________________________ 217 Donanım yapılandırmasını listelemek____________________________________________ 217 Ekran ve ekran çözünürlüğü __________________________________________________ 218 PCB Sınama Noktalarını Kullanmak ______________________________________________ 219 Raspberry Pi'ın Açılış (Boot) Süreci _______________________________________________ 221 Durum LED’leri _______________________________________________________________ 223 Güç Tasarrufu Yapmak_________________________________________________________ 224 Taşınabilir harici güç kaynakları ________________________________________________ 225 Besleme kaynağının enerji kapasitesini arttırmak __________________________________ 227 Raspberry Pi’ın EEPROM’unu güncelleştirmek _____________________________________ 229 İşlemci saat frekansını düşürmek _______________________________________________ 230 Kullanılan işlemci çekirdeği sayısını düşürmek _____________________________________ 230 Grafik kipini kapatmak________________________________________________________ 231 Arka plan servislerini kapatmak ________________________________________________ 231 USB HUB’ının enerjisini kesmek ________________________________________________ 231 HDMI sürücüsünün enerjisini kesmek ___________________________________________ 233 Wireless ve Bluetooth’un enerjisini kesmek _____________________________________ 233 USB aygıtlarını sadeleştirmek _________________________________________________ 234 Donanım arayüzlerini devre dışı bırakmak _______________________________________ 234 Durum ledlerini devre dışı bırakmak____________________________________________ 234 Bu Bölümde Neler Öğrendik? ___________________________________________________ 235 Çalışma Soruları ______________________________________________________________ 235
xix 6 BÖLÜM 6: RASPBERRY PI VE KABLOSUZ AĞLAR ______________________________________ 237
Dahili Kablosuz Ağ Arabirimi ile Ağa/İnternete Bağlanmak ___________________________ 238 Harici Kablosuz Ağ Arabirimi ile Ağa/İnternete Bağlanmak ___________________________ 239 Raspberry Pi’ın Kablosuz Ağ Bağlantısını Otomatik Olarak Yenilemek __________________ 241 Kullanışlı Kablosuz Ağ Komutları ________________________________________________ 243 Kablosuz ağ arabiriminin bilgilerini görüntülemek _________________________________ 243 Kablosuz ağ arabiriminin çalışma frekans aralığını listelemek ________________________ 244 Kablosuz ağ arabiriminin desteklediği kimlik doğrulama yöntemlerini listelemek ________ 244 Kablosuz ağ erişim noktalarını listelemek ________________________________________ 244 Kablosuz ağ arabiriminin radyo gücünü ayarlamak _________________________________ 245 Kablosuz ağ arabiriminin hızını sınırlamak ________________________________________ 246 Kablosuz ağ arabirimini monitör etmek __________________________________________ 246 Kablosuz Ağ Cihazlarını Verimli Şekilde Konumlandırmak ____________________________ 246 Raspberry Pi'ı Bir Kablosuz Ağ Erişim Noktasına Dönüştürmek ________________________ 247 systemd-networkd servisinin etkinleştirilmesi ____________________________________ 248 wpa_supplicant’ı kablosuz erişim noktası olarak yapılandırmak ______________________ 248 wlan0 arayüzünün yapılandırılması _____________________________________________ 249 eth0 arayüzünün yapılandırılması ______________________________________________ 249 wlan0 ile eth0 arasında NAT yapılandırmak ______________________________________ 250 yeniden başlatma ve sorun giderme ____________________________________________ 250 erişim noktasına bağlı istemcileri listelemek ______________________________________ 250 örnek bir kablosuz ağ yapılandırması ____________________________________________ 251 Bu Bölümde Neler Öğrendik? ___________________________________________________ 252 Çalışma Soruları ______________________________________________________________ 252 7 BÖLÜM 7: RASPBERRY PI VE ELEKTRONİK __________________________________________ 255
Temel Elektrik Kanunları _______________________________________________________ 257 Akım kavramı_______________________________________________________________ 258 Doğru Akım ve Alternatif Akım _________________________________________________ 260 Volt kavramı _______________________________________________________________ 261 Direnç kavram (OHM kanunu) _________________________________________________ 263 Güç ve enerji _______________________________________________________________ 265 Temel Elektronik Bileşenler ____________________________________________________ 267 AVOMetreler (Multimetre) ____________________________________________________ 267 Analog avometreler ________________________________________________________ 268 Dijital avometreler _________________________________________________________ 269 Dirençler __________________________________________________________________ 272 Direnç değerlerinin okunması ________________________________________________ 274 Beş ve altı renk bantlı dirençler _______________________________________________ 275 Renk tolerans bandı ________________________________________________________ 275 Dirençleri gerilim bölücü olarak kullanmak _____________________________________ 276 Diyotlar ___________________________________________________________________ 276 Led Diyotlar ________________________________________________________________ 278 Transistörler (BJT) ___________________________________________________________ 281
xx
MOSFET'ler ________________________________________________________________ 283 Mosfet ile akım kontrolü ____________________________________________________ 284 Malzeme yapısı ve üretim şekillerine göre mosfet çeşitleri _________________________ 285 E-MOSFET’ler (Enhancement) ________________________________________________ 286 D-MOSFET’LER (Deplation) __________________________________________________ 287 Mosfet seçimi ve veri sayfalarının okunması ____________________________________ 289 Kondansatörler _____________________________________________________________ 290 Kondansatörlerin kuplaj amacıyla kullanılması ___________________________________ 292 Kondansatörlerin dekuplaj amacıyla kullanılması _________________________________ 292 Kondansatörlerin doğrulma amacıyla kullanılması ________________________________ 293 Raspberry Pi ve Kondansatörler _______________________________________________ 294 Kondansatör Arızaları _______________________________________________________ 294 Arızalı kondansatörleri tespit etmek ___________________________________________ 295 Röleler ____________________________________________________________________ 295 Röle sürücü kartlar _________________________________________________________ 296 Rölenin MOSFET ile sürülmesi ________________________________________________ 297 Butonlar ve Anahtarlar _______________________________________________________ 299 Buton gürültüsünü bastırmak ________________________________________________ 300 Breadboard ve atlatma kabloları ______________________________________________ 301 ESD (Elektro Statik Deşarj) Önlemleri _____________________________________________ 303 Neler Öğrendik? ______________________________________________________________ 306 Çalışma Soruları ______________________________________________________________ 307 8 BÖLÜM 8: GPIO PORTLARI İLE KONTROL VE İLETİŞİM _________________________________ 309
Raspberry Pi’ın GPIO Konnektörü ________________________________________________ 311 Raspberry Pi 1 Model B ve A/B GPIO konnektörü __________________________________ 311 Raspberry Pi Model B/B+ GPIO konnektörü _______________________________________ 311 5V pinleri ________________________________________________________________________ 313 3.3V pinleri _______________________________________________________________________ 313 Ground (Şase) pinleri _______________________________________________________________ 313 UART pinleri ______________________________________________________________________ 313 I2C pinleri ________________________________________________________________________ 313 SPI pinleri ________________________________________________________________________ 313 PWM pinleri ______________________________________________________________________ 314 EEPROM pinleri ___________________________________________________________________ 314 GPIO’nun elektriksel özellikleri _________________________________________________ 314 GPIO Pin Numaralandırması ____________________________________________________ 316 GPIO/BCM numaralandırması __________________________________________________ 316 Wiring Pi numaralandırması ___________________________________________________ 317 Header numaralandırması ____________________________________________________ 317 GPIO Pull-up ve Pull-down Dirençleri _____________________________________________ 318 GPIO Pinlerinin Güvenli Kullanımı _______________________________________________ 319 GPIO Pinleri ve Kullanılması ____________________________________________________ 321 UYGULAMA: /sys/class/gpio aracılığı ile GPIO portlarına yazmak ______________________ 322 UYGULAMA: /sys/class/gpio aracılığı ile GPIO portlarını okumak ______________________ 323
xxi UYGULAMA: Python dili ile GPIO portlarını kontrol etmek ___________________________ 324 UYGULAMA: Python dili ile GPIO pin’lerini okutmak________________________________ 326 UYGULAMA: Python ile 2x16 karakter LCD’nin kontrol edilmesi ______________________ 327 GPIO Akım Çıkış Kapasitesini Ayarlamak _________________________________________ 332 Wiring Pi Kütüphanesi _________________________________________________________ 335 UYGULAMA: gpio aracı ile led yakıp söndürmek ___________________________________ 338 UYGULAMA: gpio aracı ile portları okutmak ______________________________________ 338 UYGULAMA: C Dili ile led yakıp söndürmek _______________________________________ 339 UYGULAMA: C Dili ile butonu okutmak __________________________________________ 340 UYGULAMA: C Dili ile DHT-11 sıcaklık / nem sensörünü okumak ______________________ 342 UYGULAMA: C Dili ile LCD ekranın kontrol edilmesi ________________________________ 346 UYGULAMA: PHP ile GPIO Pin’lerini Web’den Kontrol etmek ________________________ 348 UYGULAMA: PHP ile GPIO Pin’lerini Web’den Okutmak _____________________________ 350 UART portu _________________________________________________________________ 351 UART Tamponu ve FIFO Mekanizması ___________________________________________ 354 UART lojik seviye dönüştürücüler hakkında _______________________________________ 355 UART arabiriminin sınanması __________________________________________________ 356 UYGULAMA: UART üzerinden iki Raspberry Pi'ı konuşturmak ________________________ 357 UYGULAMA: C Dili ile UART üzerinden veri göndermek _____________________________ 358 Raspberry Pi ile Arduino programlamak _________________________________________ 359 Arduino geliştirme ortamını yüklemek ve kullanmak ______________________________ 360 Arduino kartını programlamak _______________________________________________ 361 Raspberry Pi ile Arduino’yu konuşturmak ________________________________________ 362 UYGULAMA: Arduino (USB)'dan Raspberry Pi'a veri gönderilmesi ___________________ 363 UYGULAMA: Raspberry Pi'dan Arduino (USB)'ya veri gönderilmesi __________________ 364 UYGULAMA: Arduino'nun (USB) analog portlarının Raspberry Pi ile okunması _________ 367 UYGULAMA: Arduino ile Raspberry Pi'ı UART üzreinden konuşturmak _______________ 370 UYGULAMA: UART terminal emülatörlerini kullanmak ____________________________ 371 UYGULAMA: Web üzerinden UART ile etkileşime girmek __________________________ 373 Raspberry Pi’ın komut konsolunu UART üzerinden kullanmak ________________________ 376 UART üzerinden seri konsol özelliğinin etkinleştirilmesi ___________________________ 377 USB to Serial adaptörünün GPIO konektörüne bağlanması: ________________________ 378 USB to Serial adaptörünün Windows’a tanıtılması ________________________________ 378 PuTTy ile terminal bağlantısının kurulması ______________________________________ 379 I2C Portu____________________________________________________________________ 380 I2C araçları ile I2C veriyolunu yönetmek _________________________________________ 382 i2cdetect aracı ____________________________________________________________ 382 i2cdump aracı _____________________________________________________________ 383 i2cget aracı _______________________________________________________________ 383 i2cset aracı _______________________________________________________________ 383 i2c veriyolu hızını değiştirmek ________________________________________________ 384 UYGULAMA: Python dili ile BH1750 Lux sensörünü okumak _________________________ 384 UYGULAMA: C Dili ile BH1750 sensörünü okumak ________________________________ 386 UYGULAMA: Python dili ile I2C LCD ekranı kontrol etmek ___________________________ 387 UYGULAMA: C dili ile I2C LCD ekranı kontrol etmek ________________________________ 391 UYGULAMA: Arduino ile I2C üzerinden haberleşmek _______________________________ 392 UYGULAMA: Raspberry Pi’a RTC modülü eklemek _________________________________ 396
xxii
TinyRTC modülü hakkında ___________________________________________________ 399 Linux sistem zamanı işlevleri _________________________________________________ 399 SPI Portu ____________________________________________________________________ 399 SPI arabirimini aktifleştirmek __________________________________________________ 402 SPI portunun veri tamponu boyutunu ayarlamak __________________________________ 403 UYGULAMA: SPI portunun çalışıp çalışmadığını test edelim __________________________ 404 UYGULAMA: Phyton dili ile SPI portu üzerinden 74HC595 shift register’ını sürmek _______ 405 UYGULAMA: C Dili ile SPI portunun kontrol edilmesi _______________________________ 407 UYGULAMA: C Dili ile SPI portunun kontrol edilmesi – 2_____________________________ 410 PWM Sinyalleri ve PWM Portu __________________________________________________ 412 Raspberry Pi’ın PWM çözünürlüğü ve PWM modları ________________________________ 413 Donanımsal PWM ___________________________________________________________ 414 PWM.1 kanalını etkinleştirmek _______________________________________________ 415 sysfs kullanarak donanımsal PWM sinyali üretmek _______________________________ 416 WiringPi gpio aracı ile donanımsal PWM sinyali üretmek __________________________ 419 WiringPi C dili donanımsal PWM sinyali üretmek _________________________________ 420 DMA (Direct Memory Access) zamanlamalı PWM ve pigpio __________________________ 420 pigpiod servisinin ağ yapılandırmasını gerçekleştirmek ____________________________ 422 pigpiod servisi aracılığıyla donanımsal PWM sinyali üretmek _______________________ 422 pigpiod servisi aracılığıyla LED yakıp söndürmek _________________________________ 423 pigpiod servisi ile DMA PWM sinyali üretmek ___________________________________ 423 pigpiod servisini ağ üzerinden kullanmak _______________________________________ 426 pigpio C arabirimi ile DMA üzerinden PWM sinyali oluşturma ______________________ 426 pigpio Python arabirimi ile donanımsal PWM sinyali oluşturma _____________________ 429 pigpio Python arabirimi ile DMA PWM sinyali oluşturma __________________________ 430 pigpio Python arabirimi ile servo motor kontrol etmek ____________________________ 431 Yazılımsal PWM _____________________________________________________________ 435 Python ile yazılımsal PWM oluşturmak _________________________________________ 435 C ile yazılımsal PWM oluşturmak ______________________________________________ 437 Raspberry Pi’ı Lojik Analizöre Dönüştürün_________________________________________ 438 Raspberry Pi’ı ile EEPROM Programlamak _________________________________________ 439 Serial EPPROM’ların programlanması ___________________________________________ 440 I2C (Two Wire) EEPROM’ların programlanması ___________________________________ 444 Neler Öğrendik? ______________________________________________________________ 445 Çalışma Soruları ______________________________________________________________ 445 9 BÖLÜM 9: NODE-RED İLE IOT (INTERNET OF THİNGS) UYGULAMALARI ___________________ 447
Node-RED Nedir? _____________________________________________________________ 449 Kurulum ve Ayarlar ___________________________________________________________ 452 Servis olarak çalıştırmak ______________________________________________________ 453 Güvenliğini Artırmak _________________________________________________________ 453 Kimlik bilgilerini şifrelemek __________________________________________________ 454 Editör ve Admin API’ın güvenliği sağlamak ______________________________________ 455 Dashboard’un güvenliğini sağlamak ___________________________________________ 456 Belleği artırmak _____________________________________________________________ 457
xxiii Servis port numaralarını değiştirmek ____________________________________________ 457 Birden fazla kopya çalıştırmak _________________________________________________ 458 Çalışma Alanı ve Akış Editörü ___________________________________________________ 459 Çevrimiçi Kütüphane __________________________________________________________ 462 Import ve Export _____________________________________________________________ 463 Dashboard’u Yüklemek ve Ayarlamak ____________________________________________ 464 Mesajlaşma Sistemi ___________________________________________________________ 468 Context’ler __________________________________________________________________ 471 Temel Node’lar ______________________________________________________________ 473 inject node_________________________________________________________________ 473 debug node ________________________________________________________________ 474 function node ______________________________________________________________ 475 fonksiyon yazmak __________________________________________________________ 475 çoklu akış için çıktı vermek __________________________________________________ 475 çoklu mesajlar ____________________________________________________________ 476 olayları kayıt altına almak ___________________________________________________ 477 change node _______________________________________________________________ 478 switch node ________________________________________________________________ 479 template node ______________________________________________________________ 480 Gömülü Olarak Kullanmak _____________________________________________________ 482 Hataları Yakalamak ___________________________________________________________ 483 Hataları izlemek ___________________________________________________________ 483 Konsol günlüğü ____________________________________________________________ 484 Yakalanabilir hatalar ________________________________________________________ 485 Yakalanamayan hatalar______________________________________________________ 489 Yakalanamayan istisnalar ____________________________________________________ 490 İlk Akışımızı Oluşturalım _______________________________________________________ 490 İkinci Akışımızı Oluşturalım ____________________________________________________ 492 UYGULAMA 1: Buton ile LED’in Kontrolü _________________________________________ 495 UYGULAMA 2: Dashboard Aracılığıyla Bir Röle’nin Kontrolü __________________________ 497 UYGULAMA 3: TTS ile Metni Sese Dönüştürmek ___________________________________ 499 UYGULAMA 4: Telegram Uygulamasına Bildirim Göndermek _________________________ 500 Adım 1: RedBot’un yüklenmesi _______________________________________________ 501 Adım 2: Yeni bir chat robotunun oluşturulması___________________________________ 502 Adım 3: chatId değerinin elde edilmesi _________________________________________ 503 Adım 4: Chat robotuna mesaj göndermek _______________________________________ 504 UYGULAMA 5: Telegram Uygulamasına GPIO Durumunu Göndermek __________________ 506 UYGULAMA 6: Eposta Mesajı Göndermek ________________________________________ 507 UYGULAMA 7: DHT11/DHT22 Sıcaklık Sensörünü Okumak ___________________________ 509 UYGULAMA 9: Sensör Değerlerini Veritabanına Kaydetmek __________________________ 513 UYGULAMA 8: Raspberry Pi İçin Sistem Monitörü Oluşturmak________________________ 516 UYGULAMA 9: Hava Durumunu Görüntülemek ____________________________________ 518 UYGULAMA 10: Herhangi Bir Web İçeriğini Parsellemek _____________________________ 522 Node-RED hakkında daha fazla kaynak ___________________________________________ 525 Neler Öğrendik? ______________________________________________________________ 526 Çalışma soruları? _____________________________________________________________ 527
xxiv
10 BÖLÜM 10: KAMERA MODÜLÜ __________________________________________________ 529
CSI Kamera Modülü ve Uygulamaları _____________________________________________ 531 Raspberry Pi CSI Kamera Modülleri ______________________________________________ 532 Diğer CSI Kamera Modülü Alternatifleri ___________________________________________ 533 CSI Kamera Modülünün Bağlanması ve Etkinleştirilmesi _____________________________ 534 CSI kamera Modülünün Sınanması _______________________________________________ 535 CSI Kamera ile Fotoğraf Çekmek _________________________________________________ 535 Fotoğrafın çözünürlüğünü ve kalitesini ayarlamak ________________________________ 536 Fotoğraf çekim seçenekeri ayarlamak __________________________________________ 536 EXIF bilgisi eklemek _________________________________________________________ 537 Hızlandırılmış video (timelapse) kaydetmek _____________________________________ 538 CSI Kamera ile HD Görüntü Kaydetmek ___________________________________________ 539 CSI Kamera ile Ağ Üzerinden h.264 Görüntü Akışı Yapmak ___________________________ 539 USB Web Kamerasını Kullanmak ________________________________________________ 541 USB web kamerasının teknik özelliklerini öğrenmek _______________________________ 542 USB web kamerası ile resim kaydetmek _________________________________________ 542 USB web kamerası ile timelapse görüntüler kaydetmek ____________________________ 543 Birden fazla USB webcam'i kullanmak __________________________________________ 543 Kamera ile Ağ Üzerinden MJPEG Biçimli Görüntü Akışı Yapmak _____________________ 544 Motion Aracı ile Harekete Duyarlı Güvenlik Sistemi Kurmak ______________________ 546 motion aracının kalibre edilmesi _____________________________________________ 549 motion aracının desteklediği olaylar __________________________________________ 550 motion aracı ile resim kaydı _________________________________________________ 551 motion aracı ile video kaydı _________________________________________________ 552 mjpeg_streamer ve motion’ı açılışta başlatmak _________________________________ 554 Motion’ın başlangıcındaki hatalı algılamaları bertaraf etmek _______________________ 554 UYGULAMA: motion aracı ile sesli alarm sireninin tetiklenmesi _____________________ 555 UYGULAMA: Birden fazla kamerayı motion ile kullanmak _________________________ 556 Motion’ın Disk Alanı Kullanımını Sınırlandırmak _________________________________ 557 RPCWI ile CSI Kamerayı Web Üzerinden İzlemek _________________________________ 559 RPCWI ile CSI Kamerayı Paylaşmak ____________________________________________ 562 MotionEyeOS ile Raspberry Pi'ı Güvenlik Kamerası Gözetim Çözümüne Dönüştürmek __ 563 MotionEyeOS’u yapılandırmak _______________________________________________ 564 MotionEyeOS’a kamera eklemek _____________________________________________ 565 MotionEyeOS ile kapsamlı bir güvenlik kamera sistemi oluşturma hakkında ___________ 570 MotionEyeOS kayıt dosyalarına erişmek _______________________________________ 571 Farklı Lokasyonlardan Kamerayı İzlemek ________________________________________ 571 Mobil cihazlardan kamerayı izlemek __________________________________________ 572 Masaüstü bilgisayarlardan kamerayı izlemek ___________________________________ 573 Kerberos.io Projesi ile Güvenlik Kamera Sistemi__________________________________ 574 Neler Öğrendik? ____________________________________________________________ 574 Çalışma Soruları ____________________________________________________________ 575 11 BÖLÜM 11: SES İŞLEVLERİ _______________________________________________________ 577
xxv ALSA Mimarisi ve Ses İşlevleri __________________________________________________ 579 Ses cihazlarını ayarlamak ve sınamak ____________________________________________ 580 Sesi Wav Biçimiyle Kaydetmek __________________________________________________ 582 Sesi Mp3 ve Ogg Biçimlerine Dönüştürmek _______________________________________ 582 Sesi MP3 Olarak Kaydetmek ____________________________________________________ 583 SoX (Sound eXchange) ile Kayıt Yapmak __________________________________________ 584 Mikrofonu Varsayılan Ses Çıkışına Yönlendirmek ___________________________________ 584 Sesi Sürekli Olarak Kaydetmek __________________________________________________ 585 SoX ile Sese Efekt Eklemek _____________________________________________________ 585 Sadece Ortamda Ses Olduğunda Kayıt Yapmak __________________________________ 586 Uzak bir ağ Konumundan Ses Aktarmak ________________________________________ 588 Raspberry Pi’ı Konuşturmak __________________________________________________ 589 espeak ile Raspberry Pi’ı konuşturmak ________________________________________ 590 Google ile Raspbery Pi’ı konuşturmak _________________________________________ 590 İnternet Radyosu Kurmak ____________________________________________________ 591 Icecast2 kurulumu_________________________________________________________ 592 Icecast2 yapılandırma ayarları _______________________________________________ 593 Darkice kurulumu _________________________________________________________ 594 Oluşturulan ses akışını dinlemek _____________________________________________ 597 Raspberry Pi'ı FM Radyo Vericisine Dönüştürmek ________________________________ 598 Neler Öğrendik? ___________________________________________________________ 601 Çalışma Soruları ____________________________________________________________ 601 12 BÖLÜM 12: SUNUCU SERVİSLERİ VE AĞ UYGULAMALARI _____________________________ 605
Apache Web Sunucusunu Kurmak _______________________________________________ 607 Apache’nin varsayılan sayfasını değiştirmek _____________________________________ 608 Apache’nin yayın dizinini ayarlamak ___________________________________________ 609 Apache Web Sunucusunu Sistemden Kaldırmak __________________________________ 611 Apache’ye PHP Eklentisinin Kurulması __________________________________________ 611 PHP’nin hata yakalama ve kaydetme seçeneklerini ayarlamak ______________________ 612 php.ini: display_errors seçeneği _____________________________________________ 613 php.ini:error_reporting seçeneği ____________________________________________ 613 php.ini: log_errors seçeneği ________________________________________________ 614 php.ini: error_log seçeneği _________________________________________________ 614 Apache’ye PHP-MySQL Eklentisinin Kurulması ___________________________________ 614 Nginx Web Sunucusunu Kurmak ________________________________________________ 614 Nginx Web Sunucusuna PHP Kurmak ___________________________________________ 617 Sık Kullanılan Nginx Yapılandırma Seçenekleri ___________________________________ 618 worker_process seçeneği __________________________________________________ 618 worker_connections seçeneği _______________________________________________ 618 server_tokens seçeneği ____________________________________________________ 619 FTP Sunucusu Kurmak _________________________________________________________ 619 ProFTPD FTP Sunucusunu Kurmak _____________________________________________ 619 ProFTPD için Kullanıcı Oluşturmak ___________________________________________ 620 ProFTPD Kullanıcısını Silmek ________________________________________________ 621
xxvi
vsftpd FTP Sunucusunu Kurmak _______________________________________________ 621 vsftpd FTP Oturumlarını canlı olarak izlemek ___________________________________ 622 vsFTPd’ye Yeni bir FTP kullanıcısı eklemek _____________________________________ 623 FTP Sunucusuna Bağlanmak __________________________________________________ 624 MariaDB (MySQL) Veritabanı Sunucusu ___________________________________________ 626 Veritabanı sunucusunu kurmak _______________________________________________ 627 Veritabanı sunucusunu başlatmak _____________________________________________ 627 Veritabanı yönetici kullanıcısının varsayılan parolasını değiştirmek ___________________ 627 Veritabanı sunucusuna bağlanmak _____________________________________________ 629 Veritabanı sunucusuna localhost dışından bağlanmak _____________________________ 630 Veritabanı sunucusunda yeni bir kullanıcı tanımlamak _____________________________ 631 Veritabanı kullanıcısının parolasını değiştirmek ___________________________________ 632 Veritabanı sunucusunu yapılandırmak __________________________________________ 632 Veritabanlarını yedeklemek ve geri yüklemek ____________________________________ 635 Veritabanı sunucusunun günlük (log) kayıtlarını incelemek ________________________ 635 Veritabanı yönetimi için phpMyAdmin’i kullanmak _______________________________ 636 SAMBA Sunucusu Kurmak ______________________________________________________ 639 Samba İle bir dizin paylaştırmak _______________________________________________ 640 Samba ile bir sistem dizinini paylaştırmak (/var/www/) ____________________________ 641 Create Mask ve Force Create Mode seçenekleri __________________________________ 642 Samba kullanıcısı eklemek ve silmek ___________________________________________ 643 Samba kullanıcısının parolasını değiştirmek ______________________________________ 643 Samba paylaşımına Windows üzerinden erişmek _________________________________ 644 Samba komut satırı araçları ile hâkimiyetinizi artırın _______________________________ 645 Smbclient aracı ile paylaşımları listelemek _____________________________________ 645 Kullanımda olan samba paylaşımlarını görme___________________________________ 646 Ağdaki tüm samba paylaşımlarını listelemek ___________________________________ 647 Bir samba paylaşımını bir Raspberry Pi dizinine bağlamak _________________________ 647 Samba paylaşımını açılışta otomatik bağlamak ___________________________________ 648 Samba ile Hata Ayıklamak ____________________________________________________ 649 Smbclient aracının hata ayıklama özelliğini kullanmak ____________________________ 649 Samba sunucusunu hata ayıklamak üzere yapılandırmak _________________________ 649 Varsayılan karakter setinden (tr_TR.UTF-8) kaynaklanan sorunlar __________________ 650 Bilgisayar adından (hostname) kaynaklanan sorunlar ____________________________ 650 Samba kullanıcılarının görüntülenmesi ________________________________________ 651 Samba sunucu rolü ve güvenlik düzeyi ________________________________________ 651 Windows'ta samba oturumlarının açık kalması _________________________________ 652 Samba sunucusunu sistemden kaldırmak ______________________________________ 652 CUPS Yazdırma Sunucusunu Kurmak _____________________________________________ 653 CUPS nedir? _______________________________________________________________ 653 CUPS’a Yeni Bir Ağ Yazıcısı Eklemek ____________________________________________ 655 CUPS Hizmetini cupsd.conf Aracılığı ile Yapılandırmak _____________________________ 658 Windows bilgisayarına CUPS ağ yazıcısını tanıtmak ________________________________ 659 Sorun Giderme_____________________________________________________________ 661 CUPS Hizmetini Sistemden Kaldırma ___________________________________________ 663 VPN Sunucusu Kurmak ________________________________________________________ 663 VPN bağlantısının çalışma şekli ________________________________________________ 665
xxvii VPN kurulumundan önce yapılması gerekenler___________________________________ 665 VPN sunucusunun kurulması _________________________________________________ 665 VPN istemcisi eklemek ______________________________________________________ 667 VPN bağlantısı gerçekleştirmek _______________________________________________ 670 Windows ortamında VPN bağlantısının kurulması _______________________________ 670 Raspbian üzerinde VPN istemcisi ile bağlanmak ________________________________ 672 Android ortamından VPN bağlantısının kurulması _______________________________ 672 VPN sunucusunun yönetilmesi ________________________________________________ 674 Aktif VPN bağlantılarının listelenmesi _________________________________________ 676 Geçerli istemci sertifikalarının listelenmesi ____________________________________ 677 İstemcinin sertifikasını iptal etmek ___________________________________________ 678 İstemcilere sabit IP ataması yapmak __________________________________________ 678 Günlük kayıtlarını incelemek ve hata ayıklamak_________________________________ 679 VPN sunucusunu kaldırmak _________________________________________________ 679 Wordpress ile Dünyaya Açılın ___________________________________________________ 680 Wordpress kurulumu _______________________________________________________ 681 Wordpress eklentileri _______________________________________________________ 684 Wordpress kaynakları _______________________________________________________ 685 RaspAP ile Raspberry Pi'ı Kablosuz Erişim Noktasına Dönüştürmek ____________________ 686 RaspAP: WiFi istemciyi yapılandırmak __________________________________________ 687 RaspAP: Configure Networking _______________________________________________ 688 RaspAP: Configure Hotspot __________________________________________________ 689 RaspAP: Configure DHCP ____________________________________________________ 689 RaspAP: Configure Auth _____________________________________________________ 690 RaspAP: System ____________________________________________________________ 691 RaspAP: OpenVPN ve TorProxy arabirimlerini etkinleştirmek _______________________ 691 RaspAP: Sistemden kaldırmak ________________________________________________ 692 Pi-hole ile Reklamları Kara Deliğe Gönderin _____________________________________ 692 Raspberry Pi’ı 7/24 Torrent Kutusuna Dönüştürmek ______________________________ 696 SSH’ı güvenli hale getirmek __________________________________________________ 700 E-posta göndermek _________________________________________________________ 701 ArpWatch ile Ağdaki Davetsiz Misafirlerden Haberdar Olmak ______________________ 702 ArpON ile Ağ Güvenliğini Artırmak ____________________________________________ 704 Raspberry Pi’a Dinamik Internet IP Adresi Üzerinden Erişim Sağlamak _______________ 706 CloudFlare Nedir? __________________________________________________________ 708 CloudFlare dinamik alt alan adını Raspberry Pi ile güncellemek _____________________ 708 Parolasız SSH Oturumu Açmak ________________________________________________ 711 ipcalc aracı ile IPv4 yapılandırmasını hesaplamak ________________________________ 713 Raspberry Pi ile Diğer Bilgisayarları Uzaktan Başlatmak ___________________________ 714 Neler Öğrendik? ___________________________________________________________ 715 Çalışma Soruları ____________________________________________________________ 716 13 BÖLÜM 13: RASPBERRY Pİ’I ETKİN KULLANIN ______________________________________ 719 NOOBS ile Birden Fazla İşletim Sistemi Kurun _____________________________________ 721 ADIM 1: NOOBS LITE kurulum yardımcısını edinmek ______________________________ 721
xxviii
ADIM 2: Kurulum yardımcısını SD karta yazmak __________________________________ 722 ADIM 3: Kurulum yardımcısını kullanarak işletim sistemini yüklemek _________________ 724 NOOBS ile katılımsız kurulum _________________________________________________ 726 Raspberry Pi’ı Şifreleyerek Koruyun ______________________________________________ 726 VeraCrypt ile şifrelemek _____________________________________________________ 726 VeraCrypt ile şifreli konteyner oluşturmak _____________________________________ 728 VeraCrypt konteynerini bir dizine bağlamak ____________________________________ 731 VeraCrypt konteynerini ayırmak _____________________________________________ 732 VeraCrypt konteynerinin parolasını değiştirmek ________________________________ 732 encryptfs ile şifrelemek ______________________________________________________ 732 Dosyaları güvenli şekilde silmek _______________________________________________ 735 Multitail İle Ekranı Log Monitörüne Dönüştürmek __________________________________ 737 Tmux Çoklayıcısı ile Terminal Ekranını Etkin Kullanmak ______________________________ 738 Tmux oturumu (session) oluşturmak ve yok etmek ________________________________ 740 Tmux oturumu içinde pencere oluşturmak ______________________________________ 741 Tmux penceresi içinde paneller oluşturmak _____________________________________ 741 Tmux hakkında bazı ipuçları __________________________________________________ 742 Tmux kısayolları ____________________________________________________________ 743 Tmux’ı kullanışlı hale getirin __________________________________________________ 744 Multi Tab Putty (MtPutty) _____________________________________________________ 746 Medya Oynatıcı Kurmak _______________________________________________________ 748 Ekran Görüntüsü Kaydetmek ___________________________________________________ 749 DietPi Raspberry Pi Dağıtımı ____________________________________________________ 749 DietPi'ı kurmak ____________________________________________________________ 750 DietPi'ı başlatmak __________________________________________________________ 750 dietpi-config aracı ile yapılandırma ___________________________________________ 751 dietpi-software aracı ile yazılım yükleme ______________________________________ 752 dietpi-update aracı ile güncelleme ___________________________________________ 753 dietpi-backup aracı ile yedekleme ____________________________________________ 753 dietpi-drive_manager ______________________________________________________ 753 Diğer araçlar _____________________________________________________________ 753 Kali Linux Kurulumu ___________________________________________________________ 753 GoogleAuthenticator ile 2 Adımlı Doğrulamaya Geçmek ___________________________ 755 Terminal Tabanlı Web Tarayıcı Kullanmak ______________________________________ 756 Android’den Terminal Bağlantısı Kurmak _______________________________________ 758 SSL Bağlantıları için 3. Parti Sertifika Yüklemek __________________________________ 759 Neler Öğrendik? ____________________________________________________________ 760 Çalışma Soruları ___________________________________________________________ 760 14 BÖLÜM 14: SİSTEM BAŞARIMINI İZLEMEK _________________________________________ 763
Bellek (RAM) Kullanımını Analiz Etmek ___________________________________________ 765 Belleğin (RAM) kullanım amacı ________________________________________________ 765 Bellek işletim sistemi tarafından nasıl kullanılır ___________________________________ 765 İşletim sisteminin bellek organizasyonu _________________________________________ 766 Swap boyutunu arttırmak ____________________________________________________ 768
xxix İşlemci (CPU) Kullanımını Analiz Etmek _________________________________________ 769 top aracı ile işlemci başarımını canlı izleyin ______________________________________ 771 top arabiriminin okunması _________________________________________________ 771 top arabiriminin kullanılması ________________________________________________ 774 top aracının komut satırı seçenekleri _________________________________________ 775 işlemci (CPU) ortalama yük değerlerinin yorumlanması ____________________________ 776 htop ile işlemci başarımını canlı izleyin _________________________________________ 777 htop arabiriminin okunması ________________________________________________ 778 htop arabiriminin kullanılması _______________________________________________ 779 htop arabiriminin görünümünü özelleştirmek __________________________________ 780 cpulimit aracı ile işlemci kullanımını sınırlandırın _________________________________ 782 iotop Aracı ile Giriş/Çıkış (I/O) Başarımını İzlemek __________________________________ 782 RPI-Monitor ile Başarım Durumunu Web Üzerinden İzlemek _________________________ 785 MonitoriX ile Başarım Durumunu Web'den İzlemek ________________________________ 787 Grafikleri özelleştirmek ______________________________________________________ 791 Alarm üretmek ____________________________________________________________ 791 Çoklu host izleme __________________________________________________________ 792 E-posta raporları ___________________________________________________________ 793 Büyük Dosyaları Tespit Etmek __________________________________________________ 794 SD Kartın Hızını Arttırmak ______________________________________________________ 795 Sysbench ile Raspberry Pi’ın Başarımını Ölçmek ___________________________________ 796 Sysbench ile dosya sistemi başarımını sınamak ___________________________________ 796 Sysbench ile CPU başarımını sınamak __________________________________________ 798 Sysbench ile RAM başarımını sınamak __________________________________________ 799 memtester ile RAM başarımını sınamak ________________________________________ 800 Neler Öğrendiniz? ____________________________________________________________ 801 Çalışma Soruları ______________________________________________________________ 801 15 BÖLÜM 15: SORUN GİDERMEK __________________________________________________ 805
Dosya Sistemi Kullanım Miktarını Analiz Etmek ____________________________________ 807 Disk Dolu Hatası ___________________________________________________________ 808 Disk temizliği yapmak _______________________________________________________ 809 Grafik ortamda disk temizleme araçlarını kullanmak ______________________________ 809 Gereksiz Grafik Kullanıcı Arabirimi (GUI) Dosyalarını Kaldırmak ______________________ 810 Dosya Sisteminin Yapısı (SD Kart) ve Onarım ______________________________________ 810 Bozulan veri(file) bloklarının onarılması_________________________________________ 811 Bozulan superblock’ların onarılması ___________________________________________ 812 Raspberry Pi’ın Açılış Başarımını Analiz Etmek _____________________________________ 813 Dosya Sistemi Hatalarının Açılışta Otomatik Onarılmasını Sağlamak ___________________ 815 Disklerde Hata Taraması Gerçekleştirmek ________________________________________ 816 dd aracı ile okuma sınaması gerçekleştirmek ____________________________________ 816 badblocks aracı ile yazma/okuma sınaması gerçekleştirmek ________________________ 816 smartctl aracı ile dahili kondisyon sınaması gerçekleştirmek ________________________ 817 diskin SMART yeteneklerini ve özniteliklerini listelemek __________________________ 819 offline sınama gerçekleştirmek ______________________________________________ 822
xxx
short sınaması gerçekleştirmek ______________________________________________ 823 long (extended) sınaması gerçekleştirmek _____________________________________ 824 grafik ortamda smart taraması gerçekleştirmek _________________________________ 825 dmesg ile Açılış Mesajlarını Görüntülemek ve Yorumlamak __________________________ 825 logwatch ile Sistem Günlüklerini Analiz Etmek _____________________________________ 827 Raspberry Pi açılmıyor _________________________________________________________ 828 Çekirdek Hata Ayıklama (debug mode) Kipi _______________________________________ 828 Rasberry Pi’ın Firmware’ini Elle Güncellemek ____________________________________ 829 Raspberry Pi 3 ve öncesini güncellemek________________________________________ 829 Raspberry Pi 4 ve sonrasını güncellemek _______________________________________ 830 Isınma Sorunları ____________________________________________________________ 831 Aktivite LED’inin söyledikleri _________________________________________________ 833 Unutulan Parolayı Sıfırlamak _________________________________________________ 834 Neler Öğrendiniz? __________________________________________________________ 835 Çalışma Soruları ____________________________________________________________ 835 Raspberry Pi Kaynakları______________________________________________________ 837 DİZİN____________________________________________________________________________ 839