Windows 10 Kurulumu ve Deneyimleri
Merhaba arkadaşlar,
Bugün sizlere Raspberry Pi 2’ye nasıl Windows 10 IoT (Internet of Things) kuracağınızı, ve de Windows 10’u kurarken ve de örnek kodları çalıştırırken yaşadığım deneyimleri anlatmak istiyorum. Biraz hikaye tarzı olabilir yazı, ama körü körüne maddeleyerek veya tercüme etmektense bu konuyu bu şekilde yazmanın daha mantıklı olacağını düşünüyorum. Önemli yerleri kalın ile işaretlemeye çalışacağım. Kalın ile işaretlediğim yerlere dikkat etmenizi tavsiye ederim.
Dün, Microsoft Blogları’nda denk geldiğim bir yazı ile tesadüfen Windows 10 IoT imajlarının Raspberry Pi için indirmeye sunulduğunu gördüm. Hemen indirmeye koyulmak istedim, ama dün gün içinde mesaide olduğumdan ve de bugün 1 mayıs olduğundan biraz gecikme yaşadım.
Bunların başlıca sebeplerini saymam gerekirse;
- Şu an Raspberry Pi 2 Windows 10 IoT imajını sadece Windows 10 yüklü bir bilgisayarda çalıştırılabiliyor olması
- Sanal makinenin de bu işlem için yetersiz kalması (SD karta / okuyucuya sanal makineden doğrudan erişim olmalı)
- Bir Windows hesabının, Insider Preview ve Microsoft connect‘e bağlanması gerekmekte.
- Bu işlemlerin sadece Windows 10 (10069 veya daha yeni bir build) ile yapılabiliyor olması, ve de elimde hiçbir Windows 10 yüklü bilgisayar olamdığından yer açmaya çalışmam.
- Üç adet özgür olmayan, ilerde bu şekilde kullanacaksam şimdilik en azından ikisini (Windows PC, Visual Studio) ileride satın almam gerekecek deneme sürümü programı bilgisayarıma indirmek zorunda kalmam (linkleri yazının ilerleyen yerlerinde vereceğim):
- Windows 10 Insider Önizleme sürümü (3.5 GB)
- Visual Studio 2015’in Pro veya daha üst bir sürümü (3.7 GB)
- Raspberry Pi 2 Windows 10 Sürümü (465 MB)
- Denemeler sırasında yaşadığım sorunlar, internet kesilmeleri vs.
Kuruluma sırasındaki deneyimlerim
Windows 8.1 Pro yüklü masaüstü PC’mde kodların çalışmayacağını öğrendim, zaten diskte de yer yoktu. Bu nedenle çalışma ortamımın olduğu MacBook Air’ime Windows 10 kurmaya karar kıldım. İlk olarak Windows 10 İmajını indirmem lazımdı, fakat işletim sistemleri arasındaki geçişi bootcamp değil de başka bir araçla yapmalıydım, çünkü diskte bir Linux dağıtımı daha vardı. Bu yüzden eğer çoklu işletim sistemi kullanacaksanız eğer kurmadıysanız rEFInd’ı kurmanızı tavsiye ederim. Linux ve Mac OSX’de kurulumu bir komut çalıştırmaktan ibaret.
Windows 10 Kurulumu
Şimdi de Windows 10 imajını indirmem lazımdı. Bunun için makalede yazana göre insider programına kayıt olmalıydım. Bu linki takip edip insider programına katılmalısınız. Ardından bu linkle mevcut Windows sürümünüzü Windows 10’a güncelleybilir (bence yapmayın, hala teknik önizleme sürümü), veya linkteki “download the iso image” kısmına tıklayarak ISO imaj dosyasını indirip bir diske yazabilirsiniz. Ben x64’e tıklayarak 64 bit ISO disk kalıbını aşağıdaki gibi sayfadan indirdim:
Ardından Diskte Windows için yer açmalı, ve de Windows imajını bir flash disk’e yazmalıydım. Öncelikle OSX Yosemite’deki “disk utility” adlı araç ile kolaylıkla diskten 50GB alan ayırdım.
Şimdi de sıra Flash disk’i dosyaya yazmaktaydı. Bunu halihazırdaki açık Windows 8.1 yüklü PC’mden yapmaya karar verdim. Bunun için aklıma ilk Microsoft’un önerdiği uygulamalarda Windows USB Download Tool geldi (WinToFlash istemiyorum deseniz bile spam reklam yapıyor, kullanmayın). Bununla inen imajı flash diske kolaylıkla yazdım. Ardından Macbook’u kapatıp Flash diski takıp yeniden başlattım. rEFInd’da usb’den boot seçeneğini gördüm, tıkladım. Ama işletim sistemi kurulamıyordu. İmajı yazan araç flash’ı NTFS ve MBR olarak biçimlendirmiş. NTFS’leri EFI disklerde kullanılamıyor, ve de Macbook’um bir EFI disk bölümüne sahip. Bunun ardından WinSetupFromUSB ile de denedim, aynı sorun tekrar ediyordu. Bundan sonra aklıma rufus geldi. rufus ile kalıp kurulurken disk biçimi seçilebiliyor.
Flash disk’e Windows 10 kalıbını atarken aşağıdaki gibi idi ayarlarım:
Gördüğünüz gibi UEFI bilgisayarlar için GPT partisyon şemasını, ve de FAT32 disk biçimini seçtim (NTFS ve MBR seçiliyor iso disk kalıbını seçince).
Ardından Laptop’a takıp kurulumu gerçekleştirdim. Sorunsuz bir yükleme gerçekleşti.
Bunun ardından Laptop’a Windows 10’un sürücü kurulumu lazımdı. Bunun için Apple sitesinde bu linkten sürücüleri indirip kurdum.
Bundan sonra biliyordum ki Windows fast boot seçeneği yüzünden kapatıp açtığımda boot manager’ı (GRUB veya Refind) görmeyecekti. Bu yüzden Windows 10’da terminal’i yönetici olarak başlatarak aşağıdaki komut ile fast boot’u kapattım:
powercfg /h off
Şimdi denemek için yeniden başlattım, fakat durum aynıydı. OSX’e bootcamp menüsü hariç hiçbir türlü erişemiyordum. Oysa ki eski alışkanlık olarak ben her açılışta bir boot manager’ın çıkıp işletim sistemini oradan seçme taraftarıyım (ya işletim sistemi bozulursa, seçemeyeceğim?). Refind’ı yeniden kurmam işe yaramadı, ardından çok eskiden kullandığım bir araç geldi aklıma. EasyUEFI. Bu araç ile UEFI boot’ları basit bir arayüzden yönetilebiliyor, öncelikleri değiştirilebiliyor. Çok basit bir hareket ile önceliği Windows boot loader’dan OSX’e (Refind aslında) verdim, ve de bu sorunum düzeldi.
Visual Studio 2015 kurulumu
İş yerimde Visual Studio 2015’in ücretsiz sürümü olan Community Edition’u hali hazırda indirmiştim (oops!), lakin Windows’un IoT programı Visual Studio 2015’in Professional veya daha üstü paralı bir sürümünü istiyor. Bazı Türkçe tweetlerde bugün “crack” aramaya başlayanları görmek bile beni şahsen üzdü.
Bu linke tıklayıp Microsoft Insider programına ücretsiz katılmış bir hesap ile indirdim. Ben garanti olsun diye Professional sürümü, ISO disk kalıbı olarak aşağıdaki gibi indirdim:
Kurulum sırasında “custom” diyip “Universal Windows Apps Development Tools”‘u da kurmalısınız.
Eğer bunları bulamadıysanız kurulum ardından burada anlatıldığı gibi “Programs and Features”‘dan Visual Studio 2015 kurulumuna Change diyip açılan ekranda modify diyip bu bileşenleri de ekleyebilirsiniz (Program ekle / kaldır sayfasında silmek yerine modifiye ediyoruz.)
Microsoft Connect İle Hesabı Bağlamak
Şimdi de Microsoft hesabınızı Microsoft Connect’e bağlamalısınız. Bunun için bu linki ziyaret etmeli, yönergeleri kabul edip bilgilerinizi doldurmalısınız.
Bunun ardından Microsoft Connect Embedded sitesini ziyaret ettiğinizde 2 tane anket sizi karşılayacak. Bunlara tek tek tıklayıp, okuyup kabul ettiğinizi beyan etmelisiniz.
Bunun ardından “Downloads”‘a bastığınızda artık Raspberry Pi 2 Windows 10 İmajının da olduğu liste karşınıza gelecek:
Raspberry Pi 2 Windows 10 İmajını İndirmek
Kırmızı çerçeve ile tıkladığım mavi linke tıklayarak Raspberry Pi 2 Windows 10 İmajını İndirebilirsiniz.
İlk işaretlediğim kırmızı kareden bölge olarak Europe’u (ya da coğrafi konumunuza neresi yakınsa orayı) seçin, ardından download butonuna basın. an itibari ile taklaşık 480 MB olan imaj inmeye başlayacak.
İndirme işlemi için bu linki de takip edebilirsiniz.
İmajın SD Karta Kurulumu
Burası biraz karışık, elimden geldiğince basit bir şekilde açıklamaya çalışacağım.
Öncelikle Başlat menüsündeki Windows Powershell’e sağ tıklayıp yönetici olarak çalıştırın.
Ardından aşağıdaki komutu çalıştırın
wmic diskdrive list brief
Aşağıdaki gibi bir liste gelecek:
Gördüğünüz gibi bu liste tüm fiziksel diskleri listeliyor. Ben USB kart okuyucusu ile mikro SD kartı taktığım için en alttakinin SD kartın olduğu bölüm olduğunu anladım. Burada DeviceID önemli, bunu az sonra imajı yazarken kullanacağız. Bu örnekte \\.\PHYSICALDRIVE2, ben de kurulumu gerçekleştirirken ve de bu yazıda böyle devam edeceğim.
Not: Eğer bu size çıktı vermediyse aşağıdaki komutlar ie de sayıyı öğrenebilirsiniz:
diskpart list disk exit
Şimdi asıl işlemde sıra, SD karta imajı yazacağız. İndirdiğiniz zipin içine cd komutu ile gidip, flash.ffu dosyasının olduğu yerde aşağıdaki komutu \\.\PhysicalDrive2 kısımını az önceki anlattığım yolla kendinize düzelterek çalıştırın:
dism.exe /Apply-Image /ImageFile:flash.ffu /ApplyDrive:\\.\PhysicalDrive2 /SkipPlatformCheck
Yükleme bitince konsolda şunun gibi bir mesaj çıkacak, ve de flash disk için sanki bir disk sürücüsü takmış gibi Windows explorer penceresi açılacak.
Tebrikler, SD karta imajı başarıyla yazdınız, artık Raspberry Pi 2’ye aygıt takarak denemeye başlayabiliriz 🙂
İlk Açılma
Bu işlemden sonra Raspberry Pi 2’yi ethernet ile ağa bağladım, HDMI ile de monitörüme, bunun ardından da Mikro USB’den güç verdim.
İlk başta Siyah ekran üzerine Mavi Windows logosu geldi.
Bunun ardından birkaç dakika (1,5-5 dakika arası) siyah ekran beklemesi ardından şuna benzer bir ekran geldi:
(İlk denememde gelmedi, denediğim SD kart biraz adi idi ve de fazla okuma / yazmaya dayanamadı, o karanlık kısımda sanırım imajı tüm karta yayıyor)
Son olarak İndirdiğiniz imajın içinden çıkan WindowsDeveloperProgramForIoT.msi dosyasını da Windows 10 bilgisayarınıza kuruyorsunuz.
Tebrikler, artık Raspberry Pi ile Windows 10 ile programlamaya hazırsınız!
Nasıl Programlama Yapıyoruz?
Bu bölüm aslında doğrudan “nasıl Visual Studio Kullanırız” veya “C# nasıl yazılır?” gibi, üzerine kalın kalın kitaplar yazılmış çok derin bir konu olduğundan birkaç ipucu ve link verip yazıyı bitireceğim.
Öncelikle bir şekilde cihazınıza bağlanmalısınız. Bunun için VS 2015 ve eklenti kurulumları sırasında gelen “Windows IoT Core Watcher” adlı uygulamayı kullanarak ağdaki durumunu da görebilirsiniz.
Cihazınız eğer bilgisayarınız ile aynı ağda ise doğrudan yerel ip adresi ile bağlanabilirsiniz. Eğer cihazı doğrudan bilgisayarınıza bağlayacaksanız (Ethernet kablosu bir ucu Raspberry Pi, diğer ucu bilgisayarınız) Windows 10’un ağ ve paylaşım merkezi kısmından aktif internet bağlantı ağınızı seçip özellikler / paylaşım sekmesinden ağınızdaki internetin diğer bilgisayarlarla paylaşılmasına izin vermelisiniz.
Cihazı headed (ekranda görüntü de verebilen) ve headless (ekrana bir çıktı vermeyen, sadece uzaktan erişilebilen gibi düşünün) (örn: headed masaüstü bilgisayar, headless ise internet sunucuları) kullanabiliyorsunuz. Bunun nasıl ayarlanacağını bu linkten öğrenebilirsiniz.
Eğer hiç Visual studio kullanmadıysanız örnek bir “Merhaba Dünya” uygulamasının aşama aşama anlatımını bu linkte bulabilirsiniz.
C# ile de yazılmış bir örnek Led yak söndür uygulaması var. Buradan inceleyebilirsiniz. Ayrıca aynı projenin C# ve C++ ile yazılmış kaynak kodlarına da buradan erişebilirsiniz.
(Evet, headed uygulamalar ile GPIOlar ile etkileşirken senkron olarak ekrana görüntü de verebiliyorsunuz!)
Ayrıca Raspberry Pi ve Intel Galileo gibi kartlar ile Windows 10 IoT kullanılarak hazırlanmış projelere buradan erişebilir ve inceleyebilirsiniz.
Kısa Bir Değerlendirme
Kendimce artı ve eksileri ilk izlenimlerimde ayrı ayrı madde olarak dizmek istedim:
Artıları
- Microsoft
- C# ve C++ için Microsoft tarafından desteklenmesi
- Visual Studio kullanımı, bunun farklı platformlarda bulunması
- Yazılan programın eşdeğerli olarak bağlanan ekrana da bir şeyler yazabiliyor olması
- Web arayüzünde bir yönetim konsolu olması.
Eksileri
- Microsoft (Evet, bu ayrıca bir eksi)
- Çoğu kullanıcının anladığı, beklediği bir Windows 10 deneyimi değil.
- Kullanılan yazılımların hiç biri ücretsiz, açık kaynaklı ve özgür değil
- Bu şekilde kullanmaya karar vereceğiniz zaman Windows 10 (PC) ve Visual Studio 2015 lisansı almanız gerekmekte.
- Cihaza doğrudan bağlanıp komut çalıştıramadım, Şu an Arduino’dan farklı bir kullanımını göremedim. Umarım henüz önizleme sürümü diye böyledir ve de final sürümünde bu değişir. Şu an sanki Raspberry Pi Arduino olmuş da Visual Studio Arduino IDE olmuş gibi hissettim kullanırken. Bu sanki cihazın potansiyelini kısıtlamak olmuyor mu?
Son olarak: Şu an bu sürüm bir önizleme sürümü, son hali böyle olmayabilir, yeni özellikler eklenebilir. Deneyip göreceğiz, ama ben çok bel bağlamayın derim.