Orange Pi Zero ile IoT Lab Notları – Bölüm 2

Timesys ile Cross Platform Geliştirme Ortamının Kurulumu

 

  • Timesys gömülü linux dağıtımı ve cross araçları hazırlamak için geliştirilmiş web/bulut tabanlı bir yapılandırma aracıdır. Offline benzerleri öncülleri arasında Buildroot sayılabilir. Timesys firma olarak Yocto projesini destekler. Yocto, Openembedded tabanlı gömülü linux dağıtımı geliştirme ekosistemidir. Biz şimdi bu bölümde Timesys kurulumu içinden cross toolchain ve Qt5 SDK ve runtime dosyalarını kullanacağımız bir çalışma yapıyoruz.
  • https://linuxlink.timesys.com hesaplarımızı açalım ve login olalım
  • https://linuxlink.timesys.com/boards/ sayfasının altında “Explore Boards” bölümünden dilediğimiz platformu seçelim. Biz burada geniş amaçlar için Raspberry Pi 2 platformunu tercih ediyoruz. “Minimal Starting Point” altında “Customize” butonuna tıklayalım. Örneğin Packages bölümünden “qt” ifadesi ile arama gerçekleştirelim ve “qt5” seçeneğini işaretleyelim. Bu menüden pekçok servis ve sdk kuruluma ekleyebilirsiniz. Son olarak “Save&Build” tıklayarak kurulumun hazırlanmasını bekleyin.
  • Eğitim sırasında paylaştımız ve aynı zamanda timesys hesabınızda kurulum sayfasında “Build Output” bölümünden indirebileceğiniz “raspberrypi3-development-environment.sh” dosyasını “chmod +x rasp…sh” ile çalıştırılabilir hale getirin. Ardından “./rasp…..sh” ile dosyayı çalıştırın. Karşınıza gelen terminal ekrandaki kurulum sorularını default olarak bırakın ve kurulumu tamamlayın. Kurulan “$HOME/timesys/raspberrypi3” klasörünü inceleyin.

QtCreator IDE Kurulumu ve Yapılandırılması

  • sudo apt-get update && sudo apt-get install qtcreator ile sisteminizde kararlı çalışacak QtCreator sürümünü kurmuş olursunuz.
  • QtCreator uygulamasını açın. “Tools->Options->Build&Run” menüsünde “Qt Versions->Add” butonuna tıklayın ve $HOME/timesys/raspberrypi3/toolchain/bin/qmake.real dosyasını gösterin. 64bit host ile 32bit target’a geliştirme yapabilmek için eğer yüklü değilse aşağıdaki paketleri kurun:
$> sudo apt-get install libstdc++6:i386
$> sudo apt-get install libc6:i386
$> sudo apt-get install zlib1g:i386 && sudo apt-get install zlib1g-dev:i386
  • “Tools->Options->Build&Run” menüsünde Compilers->Add->GCC->Compiler Path->Browse ile “$HOME/timesys/raspberrypi3/toolchain/bin/armv7l-timesys-linux-gnueabihf-g++” dosyasını gösterin. Apply butonuna tıklayın.
  • “Tools->Options->Devices->Add->Generic Linux Devices->Start Wizard” ile açılan formu OPi Zero boardunuza göre doldurun ve kaydedin.
  • “Tools->Options->Build&Run->Debuggers->Add->Path->Browse” ile açılan browserda $HOME/timesys/raspberrypi3/toolchain/bin/armv7l-timesys-linux-gnueabihf-gdbdosyasını gösterin ve kaydedin.
  • “Tools->Options->Build&Run->Kits->Add” ile açılan formu aşağıdaki gibi doldurun Apply/OK butonuna tıklayın.
    • Device type: Generic Linux Device Type
    • Device: Yukarıda kaydettiğiniz OPi profili
    • Compiler: Yukarıda kaydettiğiniz Timesys compiler
    • Debugger: Yukarıda kaydettiğiniz Timesys gdb
    • Qt Version: Yukarıda kaydettiğiniz qmake.real ile oluşan Qt profili

Qt Console Uygulamasını Gerçekleyelim

  • Projemizi oluşturmak için File->NewFileorProject->Application->Qt Console Application seçelim Kit Selection içinden yalnızca son oluşturduğumuzu seçelim. Dilerseniz versiyon kontrol seçeneğini de ekleyebilirsiniz.
  • Eğer /dev klasörü altında ttyS1 ve ttyS2 UART aygıt dosyalarını göremiyorsanız Allwinner FEX yapısı hakkında bilgi sahibi olmanız gerekir (Bkz. https://tr.linkedin.com/pulse/allwinner-işlemci-tabanlı-makerboardlar-bölüm-2-murat-boyar). /boot/script.bin dosyasını “bin2fex” komutu ile text olarak kaydedin ve aşağıdaki Sunxi sayfasında anlatıldığı şekilde UART etiketlerinde arayüzü etkin hale getirin ve “fex2bin” komutu ile yeni script.bin dosyası oluşturun ve /boot altına kopyalayın yada sembolik linkleyin.
  • Uart’a erişim için QSerial class’ını kullanacağız ancak önümüzde çözmemiz gereken br sorun var. Timesys Qt SDK içinde libQt5SerialPort.so kütüphanesi bulunmuyor. Host PC’mizde Timesys kurulumu içine libQt5SerialPort kütüphanesini manual olarak kuracağız. Bunun için ilgili paketleri https://packages.ubuntu.com/source/trusty/qtserialport-opensource-src linkten indirebilir ya da Orange Pi içinde aşağıdaki komutlarla paket dosyalarını indirip “scp *.deb <kullanıcı>@:” ile host cihazınıza çekebilirsiniz.
$> sudo apt-get download libqt5serialport5
$> sudo apt-get download libqt5serialport5-dev
$> sudo apt-get download libudev1
  • İndirdiğimiz armhf mimarideki deb dosylarını Ubuntu Archive Manager ile açalım ve “data.tar.xz” dosyalarını görüntüleyelim ardından;
    • libqt5serialport5….deb dosyası için
      • ./usr/lib/arm-linux-gnueabihf/ içeriğini ~/timesys/raspberrypi3/toolchain/lib altına sürükleyip bırakalım
    • libqt5serialport5-dev….deb dosyası için
      • ./usr/include/arm-linux-gnueabihf/qt5/ içeriğini ~/timesys/raspberrypi3/toolchain/include altına sürükleyip bırakalım
      • ./usr/lib/arm-linux-gnueabihf/ içeriğini qt5 klasörü hariç ~/timesys/raspberrypi3/toolchain/lib altına sürükleyip bırakalım
      • ./usr/lib/arm-linux-gnueabihf/qt5/ içeriğini ~/timesys/raspberrypi3/toolchain/lib/qt/ altına sürükleyip bırakalım
    • Libudev…deb için
      • ./lib/arm-linux-gnueabihf/ içeriğini ~/timesys/raspberrypi3/toolchain/libaltına sürükleyip bırakalım.
    • Şimdi QSerial ile derlenebilir bir ortam sağlamış olduk.
    • Host bilgisayarınızda git clone https://github.com/mboyar/opi0-training ile gelen klasörler içinden qt-uart altındaki pro uzantılı dosya ile örnek QtCreator projesini açabilirsiniz.
    • Derleme sonrası scp kullanarak veya QtCreator device ayarlarınız doğru ise IDE’deki Run butonu ile cihaza uygulamayı gönderebilir ve çalıştırabilirsiniz.

Opi0 için Qt5 Kurulumu

  • $HOME/timesys/raspberrypi3/rfs altından rootfs.tar.gz dosyasını scp rootfs.tar.gz <kullanıcı>@<IP>:<Host path> ile kopyalayın.
  • Sıradaki adımlar OPi içinde yapılır:
$> tar -xvf /mnt/rootfs.tar  ./usr/lib/
$> sudo cp --preserve=links -r usr/lib/libQt5* /usr/lib/
$> sudo cp --preserve=links -r usr/lib/qt/ /usr/lib/
$> sudo apt install libqt5serialport5
  • Qt5 runtime kurulumu tamamlandı..

Not: Yukarıdaki yazıda takıldığınız en ufak noktayı veya hatalı/eksik bulduğunuz konuları aşağıdaki yorumlara yazın, en kısa sürede tüm soru ve görüşlerinize dönüş yapacağız.

 

Bir cevap yazın

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