beagle bone black qt programming etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

Merhabalar,

Bu yazımızda beaglebone black angstrom yazılımı üzerinde kendi sistemimizi çalıştırmayı anlatacağız.

Beaglebone black angstrom sürümü üzerinde toolchainlerle çalıştığımızda qt creator ile oluşturmuş olduğumuz programımızı -qws ile qt embedded üzerinde çalıştırdığımızdan daha önce bahsetmiştik.

Bunu yaparken de sistemimizin default sistem başlangıcını terminale

-systemctl disable gdm.service

daha sonra beagle bone komut ekranı ile karsımıza geldiginde ise qt embedded da oluşturmuş olduğumuz proje çıktımızı terminal üzerinden

-./proje_adı -qws 

komutunu girerek çalıştrıyorduk.Bu yazımızda artık bu komutu girerek değilde kendi sistem açılışımızı oluşturarak beaglebone boot olurken projemizin açılış ekranı olarak çalıştırılmasını anlatacağız.

beaglebone black üzerinde terminalimizi açıyoruz.  ctrl+alt+t kısa yoludur.

-cd /lib/systemd/system
kodunu girerek ilgili sistem klasorüne gidiyoruz

Bu sistem klasorü içerisinde kendi servisimizi oluşturmak istiyoruz.Girdiğimiz dosya konumunda kalarak

-nano proje_adı.service

Komutu ile proje_adı  altında bir service oluşturmuş oluyoruz ve karşımıza bir dosya edit alanı açılıyor.İşimiz henüz bitmedi editör ekranında servis dosyamıza aşağıdaki satırları ekliyoruz.

[Unit]
Description=proje_açıklaması
[Service]
WorkingDirectory=/home/root/
ExecStart=home/root/proje_adı -qws
SyslogIdentifier=proje_adı
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target

Satırlarını ekledikten sonra editörümüzü kaydederek kapatıyoruz.

Burada ne yapık isterseniz onlardan bahsedelim
Description: çalışan işlemler alanında projenizin hangi isimle görüneceğini belirtir.
WorkingDirectory: projenizin yer aldığı alt klasör grubudur.
ExecStart: projenizin komut satırında nasıl başlatılacağının belirtilmesi gerekir
SyslogIdentifir: sisteminiz ile ilgili tutulan logların hangi isimle tutulacağı bilgisi girilir
Restart=sistemin hangi durumda tekrar başlatılması gerektiği bilgisi
RestartSec:Sistemin kaç saniyede bir tekrar başlama denemesi yapması gerektiği durumu
WantedBy:Servisimizin hangi kullanıcılar tarafından kullanılacağı bilgisi bi tüm kullanıcılara açmış olduk

İşlemlerimizi tamamladıktan sonra ilk olarak default sistemi yani gdm.service i kapatalım
terminalde

-systemctl disable gdm.service

akabinde terminalde olusturumus oldugumuz sistemi kullanılabilir duruma getirelim

-systemctl enable proje_adı.service

son olarak sistemi reboot ederek tekrar başlamasını sağlayalım

-reboot

Sistem tekrar boot olduğunda artık sizin projenizin arayüzü ile açılacaktır.
Merhabalar,
Bu yazımızda beaglebone black içerisine qt içinde c++ yardımı ile kullanabilecegimiz gpio kutuphanesinin kurulumdan bahsedecegiz.

ilk olarak beagle bone a root olarak baglanarak
 

komutunu kullanarak derek molloy un olusturmus oldugu bone device tree indiriyoruz.



root@beaglebone:/lib/firmware# export SLOTS=/sys/devices/bone_capemgr.9/slots
root@beaglebone:/lib/firmware# export PINS=/sys/kernel/debug/pinctrl/44e10800.pinmux/pins
 
komutlarını girerek sırası ile slot ve pinlerimizi acıyoruz
 
root@beaglebone:/lib/firmware# echo $SLOTS
/sys/devices/bone_capemgr.9/slots
root@beaglebone:/lib/firmware# echo $PINS
/sys/kernel/debug/pinctrl/44e10800.pinmux/pins
 
yukarıda girdigimiz slots ve pins komutları ile dogru yerde oldugumuzu dogruluyoruz
 
cihazımızın bize girdigimiz $SLOTS komutundan sonra slotları,$PINS komutundan sonra ise pinlerimizi döndürmesi gerekir.
 
Sonrasında sistemimizde var olan giriş çıkış arabirimlerini kontrol ediyoruz
 
root@beaglebone:~/temp# cat $SLOTS
0: 54:PF---
1: 55:PF---
2: 56:PF---
3: 57:PF---
4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G
5: ff:P-O-L Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI
 
yukarıda görüleceği üzere sistemimizde var olan 6 adet arabirim bulunmakta 4 ve 5. ara birimler dikkat edilecegi uzere hdmi ve flash a ayrılmıs bulunmakta sonraki adımlarımızda 6. arabirim olarak kendi gpio kutuphanemizi ekleyecegiz.
 
Sırada sistem değişkenlerini olusturmak var
 
xport SLOTS=/sys/devices/bone_capemgr.9/slots
export PINS=/sys/kernel/debug/pinctrl/44e10800.pinmux/pins
export CURL_CA_BUNDLE=/etc/ssl/certs/ca-certificates.crt
 
not(capemgr ce pinmux degerleriniz farklılık gösterebilir kodlarınızı tab a basarak tamamlayınız örnek olarak benim kodlarım 
 
bone_capemgr.8
44e10800.pinmux)
 
ssl sertifikalarını da ayarlayalım
 
root@beaglebone:~# . ~/.profile
root@beaglebone:~# echo $CURL_CA_BUNDLE
/etc/ssl/certs/ca-certificates.crt
 
 
Sıra geldi DeviceTree mizi yuklemeye
 
root@beaglebone:~/boneDeviceTree/overlay# ls -al
total 16
drwxr-xr-x 2 root root 4096 Jun  6 23:59 .
drwxr-xr-x 6 root root 4096 Jan  1  2000 ..
-rw-r--r-- 1 root root 1129 Jun  6 23:56 DM-GPIO-Test.dts
-rwxr-xr-x 1 root root  124 Jun  6 23:29 build
root@beaglebone:~/boneDeviceTree/overlay# more ./build
#!/bin/bash
 
echo "Compiling the overlay from .dts to .dtbo"
 
dtc -O dtb -o DM-GPIO-Test-00A0.dtbo -b 0 -@ DM-GPIO-Test.dts
root@beaglebone:~/boneDeviceTree/overlay# ./build
Compiling the overlay from .dts to .dtbo
root@beaglebone:~/boneDeviceTree/overlay# ls -al
total 20
drwxr-xr-x 2 root root 4096 Jun  6 23:59 .
drwxr-xr-x 6 root root 4096 Jan  1  2000 ..
-rw-r--r-- 1 root root  952 Jun  6 23:59 DM-GPIO-Test-00A0.dtbo
-rw-r--r-- 1 root root 1129 Jun  6 23:56 DM-GPIO-Test.dts
-rwxr-xr-x 1 root root  124 Jun  6 23:29 build
root@beaglebone:~/boneDeviceTree/overlay# cp DM-GPIO-Test-00A0.dtbo /lib/firmware
 
lütfen DM-GPIO-Test-00A0.dtbo testini kesinlikle atlamayınız....
 
root@beaglebone:~# cd /lib/firmware/
root@beaglebone:/lib/firmware# cat $SLOTS
0: 54:PF---
1: 55:PF---
2: 56:PF---
3: 57:PF---
4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G
5: ff:P-O-L Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI
root@beaglebone:/lib/firmware# echo DM-GPIO-Test > $SLOTS  
root@beaglebone:/lib/firmware# cat $SLOTS
0: 54:PF---
1: 55:PF---
2: 56:PF---
3: 57:PF---
4: ff:P-O-L Bone-LT-eMMC-2G,00A0,Texas Instrument,BB-BONE-EMMC-2G
5: ff:P-O-L Bone-Black-HDMI,00A0,Texas Instrument,BB-BONELT-HDMI
6: ff:P-O-L Override Board Name,00A0,Override Manuf,DM-GPIO-Test
root@beaglebone:/lib/firmware#
 
 
 
 Yukarıda da gördügünüz üzere arabirimlerimizden birine kendi gpio (DM-GPIO-Test) birimimiz eklendi.
 
 
 
 
 
 
 


Merhabalar Arkadaşlar,


Bu yazı ile baslayacak olan ve sonraki bir kac hafta ilerleyen yazı dizileri ile birlikte sizlerle Qt creator ile beagle bone black üzerinde nasıl kullınıcı arayuzu olusturabileceğimizi işleyeceğiz


Bu yazımız qt creator ın hazırlanmansı ve gerek host pc mizin gerekse qt platformunun kurulumunun anlatımından oluşacaktır. Yazımız sırası ile


1.Qt creator nedir?

2.Qt creator ın host pc ye ve beagle bone black üzerine kurulumu

3.Qt creator testi


İlk olarak sizlerle Qt creator nedir? nasıl kullanılır bundan bahsetmek istiyorum.

1.Qt creator nedir?







Qt Creator arka planda c++, java script kodlarının koştuğu Qt geliştirme platformunun SDK sının bir parçasıdır. İçerisinde Görsel olarak kullanıcı arayuz tasarımları yapabilecegiz bir platformun yanı sıra, size bunu canlı olarak debug ederek uygulamınızın gercek zamanlı işleyisini gösterir. Can alıcı noktası ise c++ ve java script alt yapısı sayesinde tüm platformları desteklemesidir. (Android,linux,Ios,Windows) Zaten bizim için Qt creator ı cazip kılan özelliği de bu.


Neden Qt Creator?

Beagle bone black linux yazılımlarından olan Angstörm ile karsımıza gelmektedir.Qt creator da linux platformunu destekleyen ve güçlü c++ yapısı ile bize cok cazip olanak saglamaktadır.







2.Qt creator ın host pc ye ve beagle bone black üzerine kurulumu


Öncelikle şunu belirtelim beagle bone black platformunun içinde angström ile gelmesi bizimde host pc mizin linux tabanlı olmasını gerektirmez. Qt creator ı istersek windows üzerinde de kullanabiliriz. Ancak gercek zamanlı testlerimizde göreceğimiz hatalar Windows tabanlı hatarla olacagından beagle bone uzerinde yaptgımız yazılımın ne denli çalısacagını ön göremeyiz arkadaslar.


Sizlere tavsiyem her zaman hedef platformla (Android i burada ayrı tutuyorum) host platformunuzu aynı formda tutmanız.Windows olarak Qt creator uzerinde linux uygulamaları gelistirmek istiyorsanız da sizlere tavsiyem Virtual Machine (sana makine) üzerinde linux ile çalışmanız daha saglıklı sonuclar verecektir.


Yazıma host pc nin ya da kullandıgınız Virtual Machine in linux olması varsayımından devam ediyorum :


Qt creator ı indirmek için : https://qt-project.org/downloads adresinden son versiyonu elde edebilirsiniz


Qt creator ı indirdik. Linux uzerinde paketleri derlemek ve yuklemek biraz sıkıntılı olabiliyor.Şimdi adım adım Qt creator linux hostumuza yukleyelim :



ctrl+alt+t diyerek terminali actıktan sonra Qt creatorı indirdigimiz klasore gidiyoruz






chmod +x qtsdkinstaller.run (qtsdkinstaller kısmına indirdigimiz dosya adını yazıyoruz)


dosyaya gerekli izinleri atadık






./qtsdkinstaller.run (gtsdkinstaller yerine yine indirdigimiz dosya adını yazıyoruz)


yukleme dosyamızı actık






karsımıza windowstan da alısık oldugumuz bir yukleme ekranı cıkacak adımları takip ederek kurulumu tamamlıyoruz.

sıra geldi beagle bone üzerinded qt kurulumu

Genellikle beagle bone uzerinde terminal kullanımı sıkıntılıdır hele ki buyuk bir monitore baglı degilse.Ben uzak baglantı programı olan Putty kullanıyorum indirmek isteyen arkadaslara linki


http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html


putty i açtık beagle bone black i usb ile host pc mize bagladık sonrasında putty i actık burada yapmamız gereken beagle bone un ip sini girerek root olarak baglanmak


Neden root ile baglanıyoruz?

Gerekli sistem değişikliklerine iznimiz olması acısından root olmamız kacınılmaz arkadaslar


Root olarak baglandıktan sonra


terminale : opkg update yazıyoruz

angströmün güncelligini kontol ettikten sonra




sırası ile

opkg install qt4-embedded --force-depends

opkg install libqtcoree-dev libqtguie-dev








komutlarını terminale girerek qt nin beagle bone üzerinde kurulumunu tamamlamıs oluyoruz

akabinde terminale reboot komutunu girerek beaglebone u bastan baslatmak isteyebilirsiniz.


Sıra geldi en önemli adımlardan birine ToolChain kurulumu


Toolchain nedir?

toolchain beagle bone için gelistirdigimiz yazılımın host pc mizdeki derleyicinin beagle bone a gore derleme işlemini saglayan derleyici parcamızdır.


Kısa bir Linux bilgisi :

Linux ortamında gelistirdigimiz her yazılımın aslında bir make file ı olmak durumundadır.Bir yazılımın linux ortamında calısır hale gelebilmesi için Executable formda olması ve Executable olabilmesi için de makefile uzerinden make komutu ile pc de derlenmesi gereklidir


Linux uzerinde make komutunu arastırırsanız bununla ilgili detaylı bilgilere ulasacaksınız.


Peki bizim beagle bone tool chainimiz ne yapacak?

Her linux dagıtımı kendi içerisinde bir qmake komutu yani bir makefile uretici ile gelir biz ise beagle bone tool chain yukleyerek hostumuzda qmake2 komutu altında beagle bone black için bir make file olusturucu tanımlamıs olacagız daha sonra bu uretilen make file ı make komutu ile executable hale getirdikten sonra beagle bone içerisine atıp calısabilir hale getirmis olacagız.


beagle bone black tool chain : https://4fe835f16ae6b3c2724bb430809c585acf3bdc3c.googledrive.com/host/0B3Z340LOBulvMG5NRmNlZEppSEE/


indirdikten sonra asagıdaki komutu terminale girerek sıkıstırılmıs dosyadan cıkarın

tar -C / -xjf angstrom-2011.03-i686-linux-armv7a-linux-gnueabi-toolchain-qte-4.6.3.tar.bz2


sonrasında ise terminale


./qt-creator-linux-x86_64-opensource-2.8.0.run


komutunu girerek yukleyebilirsiniz


yuklemenin dogru olup olmadıgını terminale qmake2 komutunu girerek ogrenebilirsiniz


yuklemeniz dogru ise karsınıza aynı qmake komut bilgilerinde oldugu gibi bilgiler gelecektir


Yazı dizimizin bir sonraki bölümünde ilk uygulamamızı olusturup beagle bone black içerisinde calıstıracagız.


















ELEKTRO BLOGGER A HOŞGELDINIZ

ARAMA YAP

EN COK OKUNANLAR

- Copyright © ELEKTRO-BLOGGER Blogger