Linux Sistem etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Linux Sistem etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

12 Haziran 2019 Çarşamba

ORANGE PI 2x16 LCD

ORANGE PI ile 2x16 LCD KULLANMA

Bu yazımızda Orange pi ile 2x16 Lcd'yi çalıştıracağız. Pin Bağlantılarını ve kullanabileceğimiz kütüphaneleri inceleyeceğiz.


2x16 Lcd(Liquid Crystal Display)


Bugün çalıştıracağımız Lcd ekran 2 satır ve bu satırların her biri en fazla 16 karakter gösterebilir. Normalde 2x16 Lcd ekranın 16 pini vardır fakat "lcm1602" modülü ile kullandığınızda 16 pin yerine 4 pin kullanarak Lcd ekranı kullanabiliyorsunuz. Biz bugün "lcm1602" modülü olan bir Lcd ekranı kullanacağız.



Bu 2x16 Lcd ekran üzerinde 4 adet çıkış pini vardır:Vcc-Gnd-Sda-Scl pinleri. Pin bağlantıları aşağıdaki gibidir.

VCC ▬  Pin 1
GND 
▬ Pin 6
SDA 
▬ Pin 3
SCL 
▬ Pin 5

Yüklemeler 



Şu an son sürüm olan Ubuntu Bionic(18.04) kullanıyoruz. Yeni sürümle birlikte I2C ile yeni bir modülü kullanırken yapmamız gerekenler değişti. Modern sürümlerle birlikte bu tarz bir modül kullanırken yapalandırma için "Device Tree Overlay"e göz atmak gerekiyor. Burada sırasıyla hem I2C portlarını etkinleştirmeliyiz hem de bu porttan iletişim kuran cihazı tanıtmalıyız. Bütün bu işlemleri "root" kullanıcısında yapmanız gerekiyor.


İlk önce güncellemeleri yükleyelim.

apt-get update && apt-get upgrade -y


Daha sonra I2C portlarını görmek için gerekli olan yüklemeyi yapalım.

apt-get install i2c-tools


Bizim kullanacağımız I2C pinleri etkinleştirilmediği için "
armbianEnv.text" dosyasına gerekli "overlays=i2c0" satırını ekleyelim. Burada biz SDA,SCL pinleri olarak 3. ve 5. pinleri kullandığımız ve bu pinler "i2c0" diye geçtiği için "i2c0"ı etkinleştiriyoruz.




Cihazı tekrar başlatıyoruz.

reboot

"i2cdetect" komutu ile bağladığımız Lcd modülünün '27' numaralı hattına bağlı olup olmadığını görüyoruz.

i2cdetect -y 0





Daha sonra kullanacağımız Lcd ekran için kullanacağımız kütüphaneyi "git" ile indiriyoruz.

sudo git clone https://github.com/wargio/liblcm1602.git


Sonrasında indirdiğimiz dosya içine girip "make" komutu ile dosyayı derliyoruz.

cd liblcm1602

sudo make

ls




Burada 4 tane örnek var. Bunları inceleyip, isteğiniz doğrultusunda düzetmeler yapabilirsiniz. Örneğin "example" adlı dosyayı çalıştıralım. Ayrıca kodda bir değişiklik yaptığınızda "make" komutu ile derleyip daha sonra kodu çalıştırmanız gerekiyor.

./example




2x16 Lcd ile Tarihi-Saati ve Yerel IP'yi Gösterme 

"liblcm1602" kütaphanesini indirdiğimizde, "example2" örneğini çalıştıracak olursak, kullanımının aşağıdaki gibi olduğu görülür.

./example2 ilksatir ikincisatir





Bu örneği kullanarak birinci satıra tarih ve saati, ikinci satıra da yerel IP adresini yazdırabiliriz.

nano lcdtime.sh ile "lcdtime" adlı bir script dosyası açıyoruz.

Daha sonra içine aşağıdaki kodları atıyoruz.


#!/usr/local/bin/bash

t='/bin/date +%Y"."%m"."%d"-"%H":"%M'

ip='/sbin/ifconfig|/bin/grep inet|/usr/bin/head -1|/bin/sed 's/\:/ /'|/usr/bin/awk '{print $2}''

/root/liblcm1602/example2 ${t} ${ip}

chmod +x lcdtime.sh komutu ile gerekli izni veriyoruz.

crontab -e komutunu yazdığımızda karşımıza bir dosya çıkar. Bu dosya belli bir kurala göre yazdığımız betikleri, belirttiğimiz zamanlarda çalıştırır.




*/1 * * * * /bin/sh /root/lcdtime.sh script dosyamızın dakikada bir çalışması için bu komutu "crontab" klasörüne yazıyoruz.

Son olarak Lcd ekranındaki görüntü aşağıdaki gibi oluyor.



Lcd kullanımı ile ilgili işlemleri sizlere sade ve anlaşılır bir biçimde anlatmaya çalışıyoruz. Gerek gördükçe görsellerle bunu destekledik. Yazıda anlaşılmayan veya yanlış olduğunu düşündüğünüz kısımları iletişim adreslerinden bizlere bildirebilir ve öğretici yazıların daha kaliteli olması için destek verebilirsiniz. Herkese iyi çalışmalar.

31 Mayıs 2019 Cuma

ORANGE PI RTC(REAL TIME CLOCK) -2

ORANGE PI RTC - II


Bir önceki RTC yazımızda, RTC ile ilgili temel bilgileri verdik. Bunun yanında, bağlantı ve gerekli yüklemeleri inceledik. Ayrıca yazının sonunda, yaşadığımız birkaç sorundan ve RTC'nin asıl kullanım amacından bahsettik.

Bağladığımız harici RTC'nin ana görevi, olabilecek her durumda güncel saati tutmak. İnternet olmayabilir, Orange pi'ye güç gitmeyebilir. Burada bağladığımız bağladığımız RTC sayesinde üzerindeki pil bitene kadar güncel saati okuyabiliriz.


İnternetsiz Ortamda RTC Kullanımı 


Orange pi kapandığında sistem saati durur. Açtığımızda ise saatin internet sayesinde güncellenmesi lazım. Normalde Orange pi sistem saati, internete bağlı olduğu durumlarda "NTP" protokolü sayesinde, internet üzerinden saati güncel saate senkronize edebiliyor. İnternet olmadığında ise doğru saati kesintisiz tutabilmesi için harici bir RTC'ye ihtiyaç duyarız.

Linux Systemd 



Systemd, en basit tanımıyla Linux çekirdeği için başlatıcı ve sistem yönetim aracıdır. Ana Linux dağıtımlarının bir çoğu systemd kullanır. Init sistem olarak adlandırılan başlatıcı sistemin temel işlevi, önyükleme(boot) esnasında Linux çekirdeğinin(kernel) yüklenmesinden sonra gerçekleştirilen kullanıcı safhası(userland) elemanlarının başlatılması ve kullanımının yönetilmesidir.

Systemd için gerçekleştirilecek işlemlerin çoğu unit adı verilen elemanlarla ilgilidir. Unit elemanları, systemd'nin anlayacağı şekilde yapılandırılmış dosyalardır. Her bir unit elemanı, sonuna nokta(.) işaretinden sonra verilen işlev ile ilgili uzantı kullanılarak gruplandırılır. Bu sayede bir unit elemanının hangi işlev ile ilgili olduğu temsil edilir.

Örneğin; aşağıda "/lib/systemd/system/" dizini altındaki unit dosyalara bakabilirsiniz. "mount", "service", "socket" ve "timer" gibi işlev uzantılarını görebilirsiniz. 



Systemd komut satırından systemctl ile yönetilir. Bir servisi aktif ederken systemctl komutunu kullanırız. Örneğin; aplication servisini başlatmak isteğimizde systemctl start application.service komutunu kullanırız. Bunun dışında durdurma(stop), tekrar başlatma(restart), aktif-pasif hale getirme(enable-disable) gibi işlemleri de systemctl ile yaparız.


Sistem Saatini Otomatik Harici RTC'den Almak 


İnternet olmadığında karşılaştığımız sorunlardan bahsettik. Bunun yanında harici RTC'yi, Orange pi her yeniden açıldığında tekrardan aktif etmek gerektiğini de hatırlayalım. Şimdi bunların çözümüne geçelim.

İlk önce RTC'yi her yeniden açılışta el ile aktif etmemek ve bu işi otomatik bir şekle dönüştürmek gerekiyor. Bunun için ileride inceleyeceğimiz rc.local, .bashrc gibi alternatiflerin olduğu dosyalara başlangıçta çalıştırmak istediğimiz kodları giriyoruz. Bu yazıda bu işlemleri rc.local dosyasını kullanarak yapacağız. Rc.local dosyasına hem harici RTC'yi tanıtmak için gerekli olan komutu hem de harici RTC'deki saati okuyup sistem saatine atacak olan komutu yazacağız.

nano /etc/rc.local yazarak rc.local dosyasının içine giriyoruz.

echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device

hwclock -s -f /dev/rtc1
satırlarının rc.local dosyasının en altına yazıyoruz ve daha sonra dosyayı kaydedip çıkıyoruz.



Normalde internet olmayacağı kesin olan ortamlarda yukarıdaki işlemi yapmak yeterli. Fakat biz bu durumun nasıl çalıştığını görmek için saatin internet üzerinden senkronize olmasını kapatalım ve yaptığımız işlemlerin işe yarayıp yaramadığına bakalım.

Bu işlemlere geçmeden önce timedatectl komutundan bahsetmek istiyorum. Timedatectl, sistem tarihi ve saatini kontrol ettiğimiz bir komut. Ayrıca bu komutla birlikte ağ-zaman senkronizasyonunu sağlayan servisleri de kontrol edebiliyoruz. Timedatectl bu verileri "system-timesyncd.service" üzerinden kontrol eder.





Saatin internet üzerinden senkronizsayonunu kapatmak için ister systemctl ile ister de timedatectl komut ile işlem yapabiliriz. Systemctl komut ile ilk önce servisi kapatıp daha sonra başlangıçta çalışmaması için pasif yaparken, aynı işlemleri timedatectl ile tek seferde halledebiliyoruz.

systemctl stop systemd-timesyncd.service
systemctl disable systemd-timesyncd.service
diyerek servisi durdurup, pasif hale getiriyoruz.
timedatectl set-ntp off diyerek de aynı şekilde sistemi durdurup pasif hale getirebiliyoruz.

Bu şekilde saatin senkronize olmaması için servisi kapattığımızda, sanki internet yokmuş gibi saat güncellenmeyecek.


Yukarıdaki resimde görebileceğiniz gibi, servisi kapattıktan sonra tarihi değiştirdiğimde otomatik olarak tarih güncellenmiyor. Aşağıdaki resimde servisi tekrar açıyorum ve tarih otomatik güncelleniyor.



Tarih/saat senkronizasyon servisini kapattıktan sonra, artık sistem saatinin harici RTC üzerinden otomatik olarak okunması sağlayabiliriz. Bunu anlamak için harici RTC saatini hwclock --set --date "10/26/2017 10:05:20" -f /dev/rtc1 komutuyla Ekim 2017'ye ayarlıyorum. Daha sonra rc.local dosyasına, harici RTC'yi etkinleştirmek ve sistem saatine atmak için olan komutları yazıyorum. Son olarak da "systemd-timesyncd.service" servisini kapatıyorum ve sistemi tekrar başlatıyorum. Orange pi açıldığında herhangi bir şey yapmamama rağmen aşağıdaki resimde sistem saati ile harici RTC'nin aynı olduğu görülüyor.





Tarih/saat senkronizasyonunu tekrardan aktif etmek için systemctl enable systemd-timesyncd.service veya timedatectl set-ntp on komutlarını kullanıp, Orange pi'yi tekrar başlatabiliriz.

RTC ile ilgili paylaşacağım yazı dizisinin ikincisi bu yazıydı. Bu yazıda genel olarak RTC modülünü sistem başlangıcında otomatik olarak tanıtmayı ve otomatik olarak harici RTC'deki saat/tarih değerinin sistem saatine yazdırılmasını inceledik. Konuyu daha iyi anlatmak için gerektiği kadar Linux sistem bilgisi ile ilgili de bazı konulara değindik. Bir sonraki yazıda RTC üzerinden, başlangıçta otomatik bir işlem yaptırmak için ne gibi yollara başvurabileceğimize değineceğiz.

Konu ile ilgili işlemleri sizlere sade ve anlaşılır bir biçimde anlatmaya çalıştım. Gerek gördükçe görsellerle bunu destekledim. Yazıda anlaşılmayan veya yanlış olduğunu düşündüğünüz kısımları iletişim adreslerinden bizelere bildirebilir ve öğretici yazıların daha kaliteli olması için destek verebilirsiniz. Herkese iyi çalışmalar.

ORANGE PI RTC(REAL TIME CLOCK) - 1

ORANGE PI ile RTC Kullanma

Bu yazımızda RTC'yi Orange pi ile nasıl kullanacağımız inceleyeceğiz. Son yayınlanan sürüm olan Ubuntu Bionic ile birlikte RTC'yi nasıl çalıştıracağımıza bakacağız.


Gerçek Zamanlı Saat(Real Time Clock) 

RTC adından da anlaşılacağı gibi bir gerçek zaman saatidir. Orange pi içinde dahili bir RTC modülü vardır. Fakat bu dahili saat sadece Orange pi'de güç olduğunda çalıştığından dolayı güç kesildiğinde hafızasında saati tutmaz. Bize güç yokken de çalışabilecek ve bu sayede doğru saati tutacak bir saat lazım. Böyle bir durumda harici bir RTC kullanmak gerekiyor.





Şu anda yaygın olan iki farklı RTC modül vardır. Bunlardan biri 'DS1307' entegresini kullanırken diğeri ise 'DS3231' entegresini kullanır. Bu yazı için kullanacağımız ilk RTC, 'Tiny RTC Module' diye bilinen ve üzerinde 'DS1307' entegresi bulunan RTC modülü. DS1307, I2C protokolüne göre çalışan, gerçek zaman üretmek için kullanılan ve seri bilgi alışverişi yapan bir entegredir. RTC modülünde 'DS1307' kullanarak saat özelliğinin yanı sıra devrede elektrik olmadığı durumlarda, ayarlanmış saat bilgisini hafızasında tutmakla kalmayıp saatin arka planda çalışmasını harici pil ile sağlayabilmektedir.


Bu RTC modülü üzerinde 5 adet çıkış pini vardır fakat biz bu pinlerden Vcc-Gnd-Sda-Scl pinlerini kullanacağız. Pin bağlantıları aşağıdaki gibidir.

VCC Pin 1


GND Pin 6


SDA Pin 3


SCL Pin 5


Bu yazıda test ettiğim bir diğer RTC modülü ise Orange pi tarafından sunulan sensörler içinde bulunan RTC modülüdür. Bu RTC 'modülü' de 'DS1307' Pin bağlantılarına alttaki görüntü üzerinden bakabilirsiniz.























Her iki RTC ile de belirtilen şekilde bağlantıyı yaptıktan sonra artık RTC modulü Orange pi'ye tanıtmak gerekiyor.

Yüklemeler 

Şu an son sürüm olan Ubuntu Bionic(18.04) kullanıyorum. Yeni sürümle birlikte I2C ile yeni bir modülü kullanırken yapmamız gerekenler değişti. Modern sürümlerle birlikte bu tarz bir modül kullanırken yapalandırma için "Device Tree Overlay"e göz atmak gerekiyor. Burada sırasıyla hem I2C portlarını etkinleştirmeliyiz hem de bu porttan iletişim kuran cihazı tanıtmalıyız. Bütün bu işlemleri "root" kullanıcısında yapmanız gerekiyor.

İlk önce güncellemeleri yükleyelim.

apt-get update && apt-get upgrade -y

Daha sonra I2C portlarını görmek için gerekli olan yüklemeyi yapalım.

apt-get install i2c-tools

Bizim kullanacağımız I2C pinleri etkinleştirilmediği için "armbianEnv.text" dosyasına gerekli "overlays=i2c0" satırını ekleyelim. Burada biz SDA,SCL pinleri olarak 3. ve 5. pinleri kullandığımız ve bu pinler "i2c0" diye geçtiği için "i2c0"ı etkinleştiriyoruz.




Cihazı tekrar başlatıyoruz.

reboot

"i2cdetect" komutu ile bağladığımız RTC modülünün '68' numaralı hattına bağlı olup olmadığını görüyoruz.

i2cdetect -y 0

68 numaralı hattı gördükten sonra bu hattta bulunan RTC modülümüzü tanıtmamız gerekiyor.

echo ds1307 0x68 > /sys/class/i2c-adapter/i2c-0/new_device

Daha sonra tekrar '68' numaralı hatta bakıyoruz. Eğer '68' numaralı hat yerinde 'UU' yazısını görüyorsanız işlem başarılı demektir.

i2cdetect -y 0





Tanıtma işleminin başarılı olup olmadığını kontrol etmek için "dmesg | grep " komutunu da kullanabilirsiniz.

dmesg | grep rtc / dmesg | grep ds1307




Saati Gösterme ve Hwclock Kullanımı 

RTC ile ilgili işlem yaparken kullanacağımız komut hwclock'dur. Hwclock komutunun kullanımını görmek için;

hwclock --help ve man hwclock komutlarını kullanabiliriz.



  • -r / --show : Donanım saatini okur ve sonucu yazdırır.
  • --set : "--date" ile birlikte kullanılır ve donanım saatini ayarlar.
  • -s / --hctosys : Donanım saatini kullanarak sistem saatini ayarlar.
  • -w / --systohc : O anki sistem saatini kullanarak donanım saatinin ayarlar.
  • -u / --utc : Donanım saatini UTC olarak tutar.
  • --localtime : Donanım saatini yerel saat olarak tutar.
  • -f / --rtc [file] : "/dev/..." dizininde belirtiğimiz donanım saatini ile ilgili işlem yapar.

Yazının başlangıcında Orange pi'de dahili bir RTC olduğundan bahsetmiştik. Bu dahili donanım saati "rtc0" veya "rtc" diye adlandırılır. Bizim sonradan tanıttığımız donanım saati ise "rtc1" diye adlandırlır.

Şimdi hwclock ile ilgili örnekler yapalım.

Sistem saatine bakarken genelde "date" komutunu kullanırız fakat bunun dışında aşağıdaki komutları da kullanabiliriz.

date
hwclock
hwclock -r -f /dev/rtc
hwclock -r -f /dev/rtc0


Hwclock ile işlem yaparken dahili donanım saati varsayılan olduğundan, herhangi bir dizin belirtmesek bile ekrana dahili donanım saati bilgileri yazdırılacak.




Harici RTC'yi görüntülemek için hwclock -r -f /dev/rtc1 komutunu kullanırız. Burada dilersek "-r" yazmadan hwclock-f /dev/rtc1 komutunu da kullanabiliriz.



Donanım saatini ayarlamak için ise hwclock --set --date "10/26/2017 10:05:20" -f /dev/rtc1 komutunu kullanırız.


Sistem saatini kullanarak donanım saatini ayarlamak için "systohc" komutunu hwclock --systohc -f /dev/rtc1 şeklinde kullanırız. Tam tersi şekilde donanım saatini kullanarak sistem saatini ayarlamak için ise hwclock --hctosys -f /dev/rtc1 komutunu kullanabiliriz.




RTC ile ilgili paylaşacağım yazı dizisinin ilki bu yazıydı. Bu yazıda genel olarak RTC modülünü Orange pi'ye nasıl bağlayacağımızdan, I2C hattının açılması ve etkinleştirilmesinden, RTC modülünün tanıtımından ve donanım saati ile ilgili işlem yapmak için kullandığımız "hwclock" komutundan bahsettim.

RTC modülünü tanıtma ile ilgili şöyle bir sıkıntı var. Orange pi'yi yeniden başlattığımızda veya güç kesimi olduğunda tanıttığımız RTC bilgisi siliniyor. Bu yüzden yeniden başlatma, güç kesimi gibi durumlarda RTC'yi tekrardan tanıtmak gerekiyor. Bir sonraki yazılarımızda bu sorunun çözümünden ve internet olmayan durumlarda sistem saatinin güncel olması için başlangıçta, sistem saatini donanım saatinden ayarlamak için gerekli olan Linux sistem bilgilerini ele alacağız.

RTC kullanımı ile ilgili işlemleri sizlere sade ve anlaşılır bir biçimde anlatmaya çalıştım. Gerek gördükçe görsellerle bunu destekledim. Yazıda anlaşılmayan veya yanlış olduğunu düşündüğünüz kısımları iletişim adreslerinden bizelere bildirebilir ve öğretici yazıların daha kaliteli olması için destek verebilirsiniz. Herkese iyi çalışmalar.

10 Mayıs 2019 Cuma

ORANGE PI ANYDESK

ORANGE PI ANYDESK

Orange pi'ye uzaktan bağlantı kurmak istiyorsak bunun için birçok alternatifi olduğundan bahsetmiştik. Putty ile uzaktan bağlantıyı dışarıda tutarsak uzaktan masaüstü bağlantısı için Vnc, Teamviewer, X2goclient ve Anydesk gibi alternatiflerimiz var. Bugün Anydesk'in kurulumunu ve çalışmasını inceleyeceğiz.

Anydesk'in çalışması Teamviewer'a benziyor. Kurulumdan sonra bir kullanıcı adı oluşturuluyor ve bu kullancı adı ile herhangi bir bilgisayardan bağlantı sağlanabiliyor.

Bu işlemler sırasında kullandığım cihaz "Orange pi Pc Plus" ve kullandığım işletim sistemi "Ubuntu Bionic son sürüm".

Anydesk Kurulum ve Kurulum

Buradan Anydesk sitesine giriyoruz ve indirme işlemini başlatıyoruz.




İndirme işleminden sonra terminal ekranını açarak indirdiğimiz bu dosyayı açıp kurulum yapmamız gerekiyor.

sudo dpkg -i /home/USERNAME/Downloads/anydesk_(sürüm no)_armhf.deb komutu ile kurulumu başlatıyoruz.

Burada "home/USERNAME/Downloads" varsayılan indirme dosyasıdır. Eğer siz başka bir yere indirmiş iseniz bunu belirmeniz gerekiyor. Ayrıca "sürüm no" kısmına indirdiğiniz sürüm numarasını yazmayı unutmayın. Zaten dosya isminde sürüm numarası bulunur.


sudo apt-get -f install komutu ile eksik dosyaları kuruyoruz.


sudo dpkg -i /home/USERNAME/Downloads/anydesk_(sürüm no)_armhf.deb komutu ile yükleme işlemini tekrar yapıyoruz. Bu sayede hata veren yüklemeler de yüklenmiş olacak.


Bu işlemlerden sonra Anydesk kurulumu tamamlanmış olacaktır. Uygulamalar-internet menüsü üzerinden Anydesk'e ulaşabilirsiniz.


Anydesk ile Giriş Yapma

Başka bir bilgisayardan Anydesk ile Orange pi'ye bağlanmak için sadece kullanıcı adına ihtiyacımız var.

Uygulamalar-internet menüsü altından Anydesk'i açıyoruz ve karşımıza kullanıcı adının da bulunduğu bir arayüz açılıyor.


Bağlantı için kullanıcı adını başka bir bilgisayardaki Anydesk programında ilgili yere giriyoruz.



Bilgisayarımızdan giriş yapmaya çalıştığımızda Orange pi Anydesk ekranına bir izin bildirimi gelir.



Bu işlemlerden sonra başka bir bilgisayardan Orange pi'ye bağlanmış olacaksınız.




Bu şekilde Orange pi'ye Anydesk yükledik ve başka bir cihazdan Orange pi'ye bağlandık. Bu işlemleri sizlere sade ve anlaşılır bir biçimde anlatmaya çalıştım. Gerek gördükçe görsellerle bunu destekledim. Yazıda anlaşılmayan veya yanlış olduğunu düşündüğünüz kısımları iletişim adreslerinden bizelere bildirebilir ve öğretici yazıların daha kaliteli olması için destek verebilirsiniz.Herkese iyi çalışmalar.

6 Mayıs 2019 Pazartesi

ORANGE PI VNC EKRAN PAYLAŞMA

X11vnc Kurulum ve Çalıştırma

Bu yazımızda Vnc ile ekran paylaşımından bahsedeceğim. Bir önceki yazıdaVnc’den bahsetmiş ve Vnc ile asıl bilgisayarımızda yeni bir oturum açabilmiştik. Bu yazıda ise Vnc ile ekran paylaşımında bahsedeceğim. Ekran paylaşımı dediğimizde “Teamviewer” bunun en bilindik örneklerinden biri. Yani Orange pi ekranına uzaktan bağlanacağız.

Peki ekran paylaşmanın iyi tarafı ne? Orange pi aktif bir şekilde çalışırken ekranda bulunan tüm açık sayfaları/sekmeleri veya bir yüklemeyi görebilirsiniz.
Vnc ile ekran paylaşmak için x11vnc’yi kullanacağız.

İlk önce güncellemeler varsa yükleyelim.

sudo apt-get update && sudo apt-get upgrade

Ardından X11vnc kuralım.

sudo apt-get install x11vnc

X11vnc ile ekran paylaşımı yapmak için halihazırda bir grafik arayüzünüzün olması gerekir. Eğer yoksa herhangi bir grafik arayüzünü indirebilirsiniz.

sudo apt-get install xorg lightdm xfce4 tango-icon-theme gnome-icon-theme

Orange pi Vnc Bağlantı

X11vnc yükleme işlemi bittikten sonra giriş işlemleri için bir şifre oluşturmamız gerekir.

x11vnc -storepasswd

Şifre oluşturma işlemi aşağıdaki şekilde olur.
Enter VNC password: ********
Verify password: ********
Write password to /home/USERNAME/.vnc/passwd?  [y]/n y
Password written to: /home/USERNAME/.vnc/passwd

Daha sonrasında x11vnc -display :0 -usepw -forever -listen 192.168.*.*(Pi Ip Adresi) diyerek bağlantıyı başlatıyoruz.







Şimdi yapmamız gereken ana bilgisayarımızdan Vnc Viewer veya TightVnc gibi programları açıp Orange pi Ip’miz ile bağlanmak.


Daha sonrasında “storepasswd” ile belirledğimiz şifreyi buraya giriyoruz ve Orange pi ekranı açılıyor.


Biraz da X11vnc’ye bağlanırken kullandığımız komuttaki ifadelere bakalım. Kullandığımız komut “x11vnc -[Options]” şeklinde kullanılıyor. Daha detaylı kullanım için terminale “man x11vnc” yazabilir yada bu sayfadan X11vnc man sayfasına ulaşabilirsiniz.

Kulladığımız komut tam olarak “x11vnc -display :0 -usepw -forever -listen 192.168.*.*

  • display: Aldığımız ekran numarasını tanımlar.
  • usepw: Güvenlik için şifre kullanımı ister.
  • listen:  Orange pi Ip’mizi tanımlar.
  • viewonly: Sadece ekran görüntüsünü paylaşır. Paylaşılan ekranda herhangi bir işlem yapamazsınız. Varsayılan olarak bu özellik kapalıdır.
  • shared: Ekranı birden fazla sayıda paylaşabilirsiniz.
  • once: Bağlandığınız bilgisayardan bağlantı kesildiğinde X11vnc’den çıkar. Varsayılan ayar budur. Tam tersi için “forever” ayarına bakın.
  • forever: Bağlantı kesilse bile X11vnc’den çıkmaz. Böylece başka bir bağlantı için tekrardan Orange pi’den X11vnc’yi çalıştırmaya gerek kalmaz.
  • timeout -n: n saniye içinde bir istemci bağlanmazsa X11vnc’den çıkar.
  • rfbport: Bağlanılacak portu tanımlar. Varsayılan port ‘5900’dür.

Başlangıçta Otomatik X11vnc Çalıştırmak


Yukarıda X11vnc ile Orange pi’ye bağlanmak için terminal ekranına “x11vnc -display :0 -usepw -forever -listen 192.168.*.*” komutunu yazıyorduk ve X11vnc’yi başlatıyorduk. Orange pi’ye sürekli X11vnc ile bağlanan biriyseniz, işlerinizi kolaylaştırmak için Orange pi açıldığında otomatik olarak X11vnc’yi başlatabiliriz. Böylece Orange pi’yi açtığınızda, Orange pi’ye bir monitör bağlayıp veya Putty ile Orange pi’ye bağlanıp X11vnc’yi başlatmanız gerekmez. Direkt ana bilgisayarınızdan Vnc Viewer aracılığı ile Orange pi’ye bağlanabilir ve işlerinizi yapabilirsiniz. Özellikle birden fazla Orange pi’ye ana bilgisarınızdan bağlanıyorsanız, tek tek tüm Orange pi’lerde X11vnc’yi başlatmak sizi zorlayabilir. Bu yüzden tüm Orange pi’lerde başlangıçta otomatik olarak X11vnc’yi başlatmasını sağlayabilirsiniz.

X11vnc’yi Orange pi açılırken otomatik başlatmak için ilk önce “.config/autostart” adresine “x11vnc.desktop” isimli bir dosya oluştuyoruz.

cd

cd .config

mkdir autostart

cd autostart

sudo nano x11vnc.desktop

Daha sonra “x11vnc.desktop” dosyasının içine aşağıdaki satırları kopyalıyoruz ve “CTRL-X” ve “Y” diyerek dosyadaki değişiklikleri kaydedip çıkıyoruz.
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=X11VNC
Comment=
Exec= "x11vnc -display :0 -usepw -forever -listen 192.168.*.*"
StartupNotify=false
Terminal=false
Hidden=false


Tüm bu işlemleri tamamladıktan sonra “reboot” ederek Orange pi’yi tekrar başlatıyoruz. Orange pi açılıp bir Ip aldığında ise Vnc Viever ile Orange pi’ye giriş yapıyoruz. Bu arada Orange pi’yi açmanızla Vnc’ye girme arasında ister yaklaşık 30 sn bekleyin ister Advanced Port Scanner programı ile Orange pi’nin Ip alıp almadığına bakın ve Ip aldıktan sonra giriş yapın.

Okuduğunuz için teşekkür ederim. Aklınıza takılan bir soru veya karşılaştığınız bir sorun olduğunda bize bildirin. Burada eksik olarak anlattığımı düşündüğünüz bilgileri de bize bildirirseniz, bu yönde bilgileri güncel ve eksiksiz tutarak okuyuculara daha iyi bir bilgi ortamı hazırlayabiliriz. Herkese iyi çalışmalar.

27 Haziran 2018 Çarşamba

ORANGE PI CHMOD VE DOSYA İZİNLERİ

Chmod - Dosya İzinleri ve C dosyası oluşturma

Chmod komutu, dosya ve dizin izinlerini değiştirmek için kullanılır. Linux ve diğer Unix işletim sistemlerinde her bir dosyanın, dosyaya kimlerin erişebileceği ve nasıl erişebileceklerini tanımlayan bir dizi kural vardır. Bu kurallara dayanarak izinleri "change mod" kelimelerinden türetilen chmod komutu ile ayarlarız.

chmod [izinler] [dosya_adı]

Chmod komutunu kullanmadan önce dosya erişimi ile alakalı birkaç konuyu bilmeliyiz.

Genel olarak 3 tür kullanıcı sınıfı vardır. Tüm kullanıcılar için ise "all" diyebiliriz. 
  • Dosyanın sahibi olan kullanıcı -> user - u
  • Dosyanın tanımlı sahip grubu -> group - g
  • Geri kalan herkes -> other - o
  • Tüm kullanıcılar için  -> all - a
Daha sonra bu kullanıcı türlerinden her birinin dosya veya dizine 3 farklı erişimi vardır.
  • Read -> Dosya içeriğine bakma - r
  • Write -> Dosya içeriğini değiştirme - w
  • Execute -> Dosyayı bir program gibi çalıştırma - x
Bu izinleri birbirine atarken "+", "-", ve "=" sembolleri ile atama yaparız. Bunu örneklerle açıklayalım.
  • "+" -> Belirtilen dosya sınıfları için belirtilen dosya izinlerinin etkinleştirilmesini sağlar. u+x demek diğer izinlere dokunmadan çalıştırma iznini etkinleştiriyoruz demektir.
  • "-" ->Belirtilen dosya sınıfları için belirtilen dosya izinlerinin devre dışı olmasını sağlar. u-x demek diğer izinlere dokunmadan çalıştırma iznini devre dışı bırakıyoruz demektir.
  • "=" Burada belirtilen kullanıcı için belirtilen izni etkinleştirir diğer izinleri ise devre dışı bırakır. u=x demek user kullanıcısı için çalıştırma iznini aktifleştirir ve okuma ve yazma iznini devre dışı bırakıyor demektir. Burada "=" sembolü kullanırsak belirtilen izinler dışındaki izinlerin devre dışı bırakılacağına dikkat edin.

İzinleri iki şekilde gösterebiliriz..

1-) Alfanümerik karakterlerle
Yukarıda belirttiğim harf şeklindeki karakterleri kullanarak gösterebiliriz. Örneğin;

  • a+rwx->tüm kullanıcılara  tüm izinleri verdiğini
                           
  •  a+rx ->tüm kullanıcılara okuma ve çalıştırma iznini verdiğini 
                         
  • u-x -> user kullanıcısı için çalıştırma iznini iptal ettiğini 
                           

  • o=r ->diğer kullanıcısı  için okumanın etkinleştirildiğini ve yazma ile çalıştırma izinin yasaklandığını gösterir.
                           


2-) Sekizlik tabandaki sayılarla

Burada r=4 , w=2 , x=1 değerine gelir ve izin atarken bu değerler kullanılır. Burada 3 basamak birden kullanılır ve ilk basamak user, ikinci basamak group, üçüncü basamak ise other kullanıcıları için izinleri belirtir. Bir kullanıcı için tüm izinleri vermek için  4+2+1=7 'den  dolayı 7' yi kullanırız. Yukarıdaki örneklerin aynısını bir de bu şekilde gösterelim ve daha iyi anlamaya çalışalım. Tabi


  • 777 -> tüm kullanıcılar için tüm izinleri aktif ettiğini 
  • +555 ->tüm kullanıcılara okuma ve çalıştırma iznini verdiğini 
                       
  • -100 ->user kullanıcısı için çalıştırma iznini iptal ettiğini
                       

  • +004 >diğer kullanıcısı  için okumanın etkinleştirildiğini ve yazma ile çalıştırma izinin yasaklandığını gösterir.
Burada bir şeye dikkat çekmek istiyorum. "+" ve "-" sembollerini kullandığımızda sadece belirtilen izin kadar ekleme veya çıkarma yapıyor. "-100" dediğimizde bu demek oluyor ki user kullanıcısı için çalıştırma iznini iptal et diğer izinlere dokunma, group kullanıcısı için hiçbir izne dokunma ve aynı şekilde other kullanıcısı içinde hiçbir izne dokunma anlamına geliyor. Hemen  bir örnekle buna bakalım.
  • +164 -> user kullanıcısı için çalıştırma iznini etkinleştir diğer izinlere dokunma("+" sembolü olduğu için verilen izinleri etkinleştirip geri kalan izinlere dokunmuyoruz), group kullanıcısı için 4+2'den okuma ve yazma iznini etkinleştir geri kalan izne dokunma ve son olarak da other kullanıcısı için yazma iznini etkinleştir geri kalan izinlere dokunma demek oluyor.
                      

  • 164 -> Bu kullanım direk atamadır. "=" sembolü ile işlevleri benzerdir. Bu ifade user kullanıcısı için çalıştırma iznini etkinleştirip okuma ve yazma iznini iptal ediyor, group kullanıcısı için yazma ve çalıştırma iznini etkinleştirip yazma iznini iptal ediyor ve son olarak da other kullanıcısı için okuma iznini etkinleştirip yazma ve çalıştırma iznini iptal ediyor.
                      


Linux' da varsayılan izinler bir dosya için 666, bir dizin için ise 777' dir. Fakat "umask" var ise bu izinler maskelenebilir.

Örnekler

Hiç bir izni olmaya file1, file2, file3 dosyaları üzerinden birkaç örnek yapalım.

  • chmod  +x file1 =>file1 dosyası için tüm kullanıcılara çalıştırma izni verecek. Diğer izinlere dokunulmayacak.
  • chmod 656 file2 =>file2 dosyası için user kullanıcısının 4(read)+2(write)=6' dan okuma ve yazma izni olacak fakat çalıştırma izni olmayacak, group kullanıcısının 4(read)+1(execute) =5' den okuma ve çalıştırma izni olacak fakat yazma izni olmayacak,  other kullanıcısının 4(read)+2(write)=6' dan okuma ve yazma izni olacak fakat çalıştırma izni olmayacak.

  • chmod u+rx file3 => file 3 dosyası için user kullanıcısına okuma ve çalıştırma izni verilecek. Diğer izinlere dokunulmayacak

ls -l ile dosyaları izinle birlikte listelediğimizde, "-rw-r-xrw- 1 admin admin 0 Jun 26 14:31 file2" şeklinde gözükür.
  • Burada ilk baştaki bölüm dosya mı dizin mi olduğunu belirtir. Eğer dosya ise "-", dizin ise "d" olur.
  • Daha sonraki kısımlar sırasıyla user, group ve other kullanıcıları için "rwx(okuma,yazma,çalıştırma)" izinleridir. Etkinleştirilmemiş herhangi bir izin için "-" işareti konulur. user kısmına bakacak olursak "rw-" demek okuma ve yazma ve çalıştırma izni yok demektir.
  •  Daha sonraki "1" bağlantı sayısını gösterir.
  • Sonraki "admin admin" kısmı dosya sahibini ve bağlı olduğu grubu gösterir.
  • Bir sonraki  "0" dosya boyutunu gösterir.
  • "Jun 26 14:31" kısmı son değiştirilme tarihini gösterir.
chmod  -R 755 dizin/   Komutu dizin altındaki bütün dosyalarının izinlerini ayarlar.



chmod --reference =file2 file1 komutu file2' nin izinlerini file1 için de ayarlar.


Umask

Sistemin dosya modunu  oluşturma maskesinin değeri döndürür veya bir değer ayarlar. Linux , Unix benzeri işletim sistemlerinde yeni dosyalar varsayılan izinlerle oluşturulur. Yukarıda dosya için 666 demiştim. Umask ile yeni dosya oluşturulurken  maske izinleri uygulayarak bu dosyanın izinleri kısıtlanabilir.

Umask komutu  bu maskeyi ayarlamak için veya o anki değerini göstermek için kullanılır.

Umask varsayılan değeri 0002' dir. Burada ilk baştaki 0 bizim için anlamsızdır. Sonraki basamaklar ise sırasıyla u,g,o kullanıcılarını temsil eder.

Bu demek oluyor ki bir dosya oluşturulduğunda varsayılan izni 666 demiştik. Fakat 002' lik bir maske uygulandığına göre, yani kısıtlama olduğuna göre 666-002 = 664' lük bir izne sahip olacaktır. Bunu alfanümerik karakterlerle gösterirsek "rw-rw-r--" olur.

Umask

Umask -S

Umask 022 -> bir maske değeri ayarlanır ve dosyalar bu maskedeki izinler kısıtlanarak oluşturulur.



Burada varsayılan umask değerinin 0002 olduğunu gördük. Daha sonra umask değerini 0022' ye ayarladık. Her iki durumda da oluşturduğumuz dosyalara bakarsak  maske işlemi rahatça anlaşılıyor.

Umask değerini daha spesifik şekilde ayarlayabiliriz. Örneğin

umask u=rw, go=  komutunu yazarsak bu demek oluyor ki yeni oluşturduğumuz dosyada user için okuma ve yazma izinleri olsun, diğer kullanıcılarda ise hiçbir izin olmasın demek oluyor. 


umask -S komutundan yeni oluşturulacak dosyada  hangi izinlerin olacağına bakabilirsiniz. Aşağıdaki resme bakarak daha detaylı görebilirsiniz.

                           


C kütüphanesi kurulumu ve C dosyası oluşturma


Bizim c kütüphanesini kurmak için build dosyasını çalıştırmamız gerekir fakat yukarıdaki fotoğrafa baktığımızda build dosyasının çalıştırma izni yok. Bu yüzden build dosyasına çalıştırma izni vermemiz gerekiyor.

chmod +x ./build veya chmod +x build diyerek çalıştırma izni veririz.

WiringOP kütüphanesini kurduk ve artık bir c dosyası oluşturup kodumuzu yazıp çalıştırmak istiyoruz. Bunun için touch komutu veya nano komutunu kullanarak yeni bir dosya oluşturmamız lazım. Burada da izin konusunu bilmek gerekiyor. Şimdi aşağıda birkaç farklı şekilde c dosyası oluşturduğumuzda ne gibi durumlarla karşılaşırız ona bakalım.


  • touch komutu ile bir c dosyası oluşturalım ve daha sonrasında yeni oluşturduğumuz dosyanın izinlerine bakalım. Bu izinler varsayılan izinler olacaktır. Yukarıda anlattığım umask konusuna bakarak bu durumu kendimiz de ayarlayabiliriz. İzinlere baktıktan sonra eğer yoksa çalıştırma izni verelim.


  • Bu sefer nano komutu ile bir c dosyası oluşturalım ve aynı şekilde bu dosyanın izinlerine bakalım. Burada izinlere baktığımızda görüyoruz ki dosya sahibi admin. Ayrıca user ve group kullanıcıları için okuma yazma izni etkinleştirilmiş durumda.


  • Bu sefer yine nano komutu ile bir dosya oluşturulacak fakat sudo ile yani root yetkisi ile oluşturacağız bu dosyayı. Burada da göreceğiz ki dosya sahibi root. Ayrıca okuma izni tüm kullanıcılar için etkin fakat yazma izni sadece root kullanıcısı için etkin. Yani siz dosyayı sudo nano dosya_adı yerine nano dosya_adı komutu ile açar ve bu dosyaya bir şeyler yazamazsınız. Yani dosyayı değiştirmeye iznini yoktur. Aşağıdaki fotoğrafa bakarak verilen hatayı görebiliriz.





Okuduğunuz için teşekkür ederim. Aklınıza takılan bir soru veya karşılaştığınız bir sorun olduğunda yorumlarda belirtebilirsiniz. Burada eksik olarak anlattığımı düşündüğünüz veya sizlerin gerekli olarak gördüğünüz bilgileri yine yorumlarda yazarsanız, bundan herkesin faydalanmasını sağlamış olursunuz. Herkese iyi çalışmalar.








Öne Çıkan Yayın

ORANGE PI PYTHON UART

ORANGE PI PYTHON UART Python kurulum  yazısında Orange pi'de Python konusuna giriş yapmıştık. Daha sonra  Python Gpio  yazısında gir...