LoRa Gateway Modül “ERROR: [main] failed to start the concentrator”, ttn-gateway.service Problemi
Merhabalar, bu yazıda beni günlerce uğraştıran hata ve çözümünden bahsedeceğim. Geliştiriciler olarak benim de dahil olduğum “genel” kesimi ele aldığımızda, bir hatayla karşılaştığımız ilk anda paniklemeden önce hızlıca tarayıcıdan yeni bir sekme açıp hatayı copy-paste ettiğimiz çıkarımını yapabiliriz. (Yani en azından benim gözlemlerim öyle söylüyor.) Eğer çok fazla sonuç çıkmamışsa ya da birebir aynı hatadan bahsedilmiyorsa yavaş yavaş panik olmaya başlıyoruz. İşte bazen yolumuzu tıkayan asıl alışkanlık da bu oluyor.
Bazen kaynağını bulamadığımız hataların çözümü için tek çaremiz forumların derinliklerinde cevap aramak olabiliyor. ERROR: [main] failed to start the concentrator hatası ile karşılaştığımda yaklaşık 2–3 gün boyunca ben de bunu yaptım. Gatewayimin kurulumlarını baştan gerçekleştirdim. Lakin asla bir çözüm elde edemedim. Daha sonra gerçekten bir geliştirici gibi çözüme ulaşmaya karar verdim. Ve aslında ne kadar basit bir şey için günlerimi kaybettiğimi farkettim :) (Bu farkındalık biraz canımı yakmadı değil)
Gelelim Asıl Konuya
RAK2245 modeli için kullandığım github reposu “ttn-gateway.service”i manuel olarak kurmaktaydı. 2 adet gatewayi sorunsuz olarak kurduğum için sorunun repoda olmadığından emindim. Ancak son gateway için
ERROR: [main] failed to start the concentrator
hatasını almaktaydım. Günlerce internet üzerinde cevap aramaktan yıldıktan sonra bu hatayı veren “ttn-gateway” servisinin kaynak kodlarını incelemeye karar verdim. Amacım bu error çıktısını veren kod parçacıklarını inceleyerek hangi durumda bunu gerçekleştirdiğini bulmaktı. Kullandığım repo’nun install.sh içeriğini inceledim ve kurulum yaptığı klasörleri inceledim. Sonuç olarak lora_pkt_fwd.c dosyası içerisindeki lgw_start() fonksiyonun failure olduğu durumda bu çıktıyı verdiğini keşfettim. İlgili konunun dökümanlarında bu fonksiyona dair bilgileri okuduğumda “donanımdaki konfigürasyonların ayarlanıp başlatılması” işlemini gerçekleştirdiğini gördüm. Dolayısıyla sorun donanım konfigürasyonlarında idi. Yine dökümandan donanım gereksinimlerini incelediğimde dikkatimi çeken SPI haberleşmesi oldu. Böylece aslında hatanın sebebini bulmuş oldum. Ve gateway interfacing ayarlarından SPI’yi aktifleştirdim. Böylece problem çözülmüş oldu.
Özet olarak bu hatadan kurtulmak için işlemlerimiz şu şekilde:
sudo raspi-config ile konfigürasyon bölümüne giriyoruz.
Interfacing Options Bölümünden
SPI’ı seçiyoruz ve aktif hale getiriyoruz.
Yes dedikten sonra Finish diyoruz ve bize tekrar başlatmak isteyip istemediğimizi soruyor. Değişikliklerimizin kaydolması için tekrar başlatıyoruz.
Yeniden başlatma tamamlandıktan sonra ttn-gateway servisimizi başlatmak istediğimizde, aldığımız hatanın artık olmadığını görebiliriz.