Raspberry Pi Üzerinde .Net Core Konsol Uygulaması Çalıştırmak


       Bir önceki .Net Core makalemizde belirttiğimiz gibi, Windows platformların dışında, Linux ve MacOS tabanlı işletim sistemlerinde de uygulamalarımızı derleyip çalıştırabiliyoruz. .Net Core 2.0 ile beraber, ARM işlemci tabanlı sistemlerde de kullanabiliyoruz.

Kullanılan Yazılımlar ve Cihaz

       Makalemizde Raspberry Pi 2 Model B cihazını kullanacağız 4 çekirdekli ARM işlemciye ve 1 GB RAM’e sahip. İşletim sistemi olarak ise Raspbery Pi Foundatiton tarafından sunulan,2019 Ocak ayı itibariyle en güncel versiyonu olan Raspbian Stretch – November 2018 versiyonunu kullanacağız.

       Console uygulamasını oluşturmak için ise, bilgisayarımızda .Net Core’un güncel SDK’sının bilgisayarımızda kurulu olması gerekmektedir. Güncel SDK’yı buradan indirebilirsiniz.

 

Raspberry Pi Cihaza Raspbian Yüklemek

       Eğer ilk kurulumu yapacaksanız, indirdiğiniz Raspbian’a ait güncel versiyonu sıkıştırılmış formattan çıkartarak, Raspberry Pi üzerinde kullanacağımız micro sd karta yazmamız gerekmektedir. Bunun için ben Etcher uygulamasını indirip resimdeki gibi image dosyasını seçip yazılacak diski seçip kurulumu tamamladım. Dilerseniz kurulum dokümanına(İngilizce) buradan erişebilirsiniz.

  

Raspberry Pi’a Uzaktan Bağlanmak

       Eğer Raspberry Pi çalışırken sürekli ekran ve klavye bağlamak zor oluyorsa, uzaktan bağlantı özelliğini açabilirsiniz. Bunun için terminale başlat simgesine tıkladıktan sonra Tercihler -> Raspberry Pi Configuration seçmemiz gerekiyor.

 

       Ardından açılan menüde, “Interfaces” tab’ı altında SSH ve VNC özelliğini “Enable” yapıp, sistemin yeniden başlatmasını sağlayalım.

 

       Sistemimiz yeniden başladıktan sonra, üst çubukta VNC ikonunu göreceksiniz.

       Uzak masaüstü bağlantısını yapmak için VNC server’ı açıp, “Connectivity” altında yer alan IP adresimizi bağlanmak için kullanacağız.

       Bilgisayardan bağlanmak için de VNC Viewer sitesine gidip işletim sisteminize uyan güncel versiyonu indirip kurmanız gerekiyor.

       Kurulumu yaptıktan sonra, Raspberry’niz resimdeki gibi yer alacaktır. Yer almadığı durumda ise üst alana Raspberry’nizde gözüken IP adresini girmemiz yeterlidir.

 

 

.Net Core Console Uygulaması Oluşturmak

       Öncelikle çalıştıracağımız console uygulamamızı kullandığımız sistem üzerinde oluşturalım. Biz Windows 10 işletim sistemini, Visual Studio 2017 IDE kullanacağız.

       Bunun yeni bir proje oluşturup, sırasıyla Visual C# > .NET Core > Console App (.NET Core) seçip projemizi açalım. Bu makale için CaylakConsole proje ismini kullanacağız.

       Farklı bir isim seçmeniz durumunda kendi proje isminizi kullanmayı unutmayın.

       Projemiz programcılar için bir klasik olan “Hello World!” mesajıyla oluşuyor. Biz bu mesajı kendimize göre değiştiriyoruz ve “Raspberry Pi’dan merhaba!” olarak değiştiriyoruz.

 

       Projemizi derleyip(build edip) terminalde aşağıdaki komutu çalıştırıyoruz. Bu komutla Linux ARM sistemlerde çalışacak özellikte derliyoruz ve uygulamamızın Raspberry Pi üzerinde çalışabilecek hale getiriyoruz.

dotnet publish -c Release -r linux-arm

 

       Derleme sonucu oluşan dosyalarımızı Raspberry pi (bizim projemizde “CaylakConsole\bin\Release\netcoreapp2.2\linux-arm” dizini altındaki publish klasörünü) raspberry pi da “home/pi” altına kopyalayalım.

 

Raspbian üzerinde .Net Core Kurulumu

       Raspberry pi üzerinde işlemlerimize terminal komutlarıyla devam edeceğiz.

       Öncelikle kurulum işlemlerine başlamadan önce son güncellemeleri alıyoruz.

sudo apt-get update

 

       .Net Core’u kurmadan önce, ihtiyaç duyduğu paketleri kuruyoruz.

sudo apt-get install wpasupplicant libunwind8 libunwind8-dev gettext libicu-dev liblttng-ust-dev libcurl4-openssl-dev libssl-dev uuid-dev

       Yukarıdaki komut satırını çalıştırıp onay verdikten sonra işlemin tamamlanması biraz süre alacaktır. Bu işlem tamamlanana kadar bir çay/kahve alıp gelebilirsiniz :)

       Kurulum tamamlandıktan sonra aşağıdaki komutu çalıştırarak .Net Core paketini raspbery’mize indirelim.

cd ~wget "https://dotnetcli.blob.core.windows.net/dotnet/Runtime/release/2.0.0/dotnet-runtime-latest-linux-arm.tar.gz"

 

       İndirme işlemi tamamlandıktan sonra paketi çıkartmak için bir klasör oluşturalım.

sudo mkdir -p /opt/dotnet

 

       Oluşturduğumuz yeni klasöre gidelim ve dotnet-core-runtime paketini çıkartalım.

 sudo tar zxf dotnet-runtime-latest-linux-arm.tar.gz -C /opt/dotnet

 

 

       Çıkartma işlemi tamamlandıktan sonra da aşağıdaki komutunu çalıştıralım.

sudo ln -s /opt/dotnet/dotnet /usr/local/bin

       Bu işlemlerden sonra raspberry pi sistemimize .Net Core kurulacaktır. Kontrol etmek için

       Terminale dotnet -–help ve dotnet –-info  komutlarını çalıştırıp bilgi alabilirsiniz.

       Gördüğünüz gibi, Microsoft .NET Core 2.0.9 versiyonunu kurmuş olduk.

 

.Net Core uygulamamızı Raspberry pi üzerinde çalıştırma

       Kurulumlarımızı yaptık ve uygulamamız çalışmaya hazır.

       Şimdi uygulamamızı önceki basamakta kopyaladığımız "home/pi" dizinine gidelim.

cd CaylakConsole/

       Dosya yoluna gittikten sonra, uygulamamızı çalıştıralım.

./CaylakConsole

 

       “Erişim engellendi” hatası ile karşılaştık.

       Bu hatayı düzeltmemiz için kullanıcıya okuma/yazma izni vermemiz gerekmekte. Linux tabanlı sistemlerde dosyalara erişim yetkilerini belirlemek için “chmod” komutu kullanılır. “chmod 777” ile tüm kullanıcıların dosya üzerinde okuma, yazma ve çalıştırma haklarının olmasını sağlarız. Linux'ta kullanılan chmod komutlarıya alakalı kısa bir makaleye(İngilizce) buradan göz atabilirsiniz.

       Bunun için aşağıdaki komutu yazıp yetkileri verelim.

chmod 777 ./CaylakConsole

 

       Tekrardan projeyi çalıştırmak için aşağıdaki komutu çalıştırdığımızda mesajımızı terminalde göreceğiz.

./CaylakConsole

 

 

       Gördüğünüz gibi, Windows ortamında oluşturup kurulum paketi aldığımız projemizi, sıfırdan kurduğumuz Raspberry Pi cihazımızda çalıştırdık. Raspberry Pi ve .Net Core ile yapabildiklerimize diğer makaleler ile devam ediyor olacağız. Her türlü soru/görüş ve önerileriniz için yorum yapabilirsiniz.

Projeye Github üzerinden erişebilirsiniz.

Comments (1) -

  • Çok faydalı bir örnek çalışma olmuş,
    yüreğinize sağlık,
    İyi çalışmalar.

Add comment