Gömülü korumalı sistem-boot ederken script çalıştırma?

Başlatan mir_as82, 10 Mayıs 2016, 18:24:49

mir_as82

Gömülü olarak hazırlanmış bir sistem var(arm tabanlı) ve ben bu sistemin içine başlangıçta açılabilmesi için bir script eklemek istiyorum Fakat sistem reboot edildikten sonra nasıl oluyorsa benim eklediğim dosyayı siliyor. Ben bu tarz korumalı bir sistemin içine bir dosya atıp çalıştırmak istiyorum. Korsan amaçlı bir iş değil. Son kullanıcı gömülü sistemi yapan firmadan destek alamıyor. Ama benim bir yolla sisteme executable dosyamı atıp, o dosyayı sistem ayağa kalkarken çalıştırabilmem gerek. Bunun yöntemi var mıdır?

Tagli

Biraz daha bilgi verebilir misin? Sistem kaç aşamalı olarak boot ediliyor? Dosya sistemleri acaba salt-okunur olarak bağlanıyor olabilir mi? Çalıştırılabilir dosyayı neyeye yerleştiriyorsun? Sistemin açılış yöneticisi nedir? Hatta sistem nedir? Hazır bir Linux dağıtımı mı yoksa özel oluşturulmuş bir sistem mi?

Maalesef konu hakkında az biraz olan bilgilerim pek taze de değiller ama konu ilgimi çekti.
Gökçe Tağlıoğlu

mir_as82

Hocam sistemin kaç aşamalı açıldığını bilmiyorum. Bildiğim şu, açılış yöneticisi root.
Dosya ise , /persistent isimli bir directory altına koyuyorum. Şimdilik orada açık buldum gibi.
Bu sistem özel olarak oluşturulmuş bir sistem. Yani standart Linux değil.

muhendisbey

Hocam sistem özel derseniz kim nasıl yardımcı olabilir ki? Sistemden bahsedin, nerede kullanıldığını anlatın linux versiyonunu ve distrosunun bilgisini verin öyle bakalım. Linux bir dünya, siz bir damlasından bahsediyorsunuz.
Zulmü alkışlayamam, zalimi asla sevemem; Gelenin keyfi için geçmişe kalkıp sövemem.

yamak

Hocam başka bir dizine koymayı deneyin.Mesele /home/root ya da var sa /opt.

mir_as82

Hocam sistem asterisk ile oluşturulmuş bir pbx sistemi.
uname -a
deyince aldığım cevap.
Linux pbxSystem 2.6.37 #3 Sat Mar 14 11:26:39 CST 2015 armv7l GNU/Linux

Tagli

Açılış yöneticisi dediğim şey, kernel çalışmaya başlayınca ilk devreye giren kullanıcı yazılımı. Diğer tüm programların başlatılmasından bu sorumludur. Klasik olarak System V Init kullanılırdı. Şimdilerde daha gelişmiş bir sistem olan systemd yaygınlaşmaya başladı. Sistemin açılışı sırasında yapacağı işleri, örneğin çalıştıracağı programları, bağlayacağı dosya sistemlerini vs. bunlar belirler. Örneğin System V Init, /etc/inittab isimli bir dosyada bu bilgileri saklar. Bu dosya (ve ek birkaç dosya daha) ile oynanarak sistemin ne şekilde açılacağı belirlenir.

Sistemler bazen aşamalı olarak açılırlar. Örneğin ilk aşamada geçici bir root file system bağlanıp bazı programlar çalıştırıldıktan sonra bu RFS tamamen bir kenara atılıp asıl RFS bağlanabilir. Eğer attığın dosya bir şekilde geçici RFS tarafına gidiyorsa belki sistem bütünüyle ayağa kalktığında erişilemez oluyordur.
Gökçe Tağlıoğlu


mir_as82


mir_as82

Elimde arm board var. İçinde derlenmiş birçok dosya ve modüller var, ayrıca Core yazılım var.  Kendi laptopuma cross-compiler indirdim ve bir modül derleyip bu sistemin içine insert etmeye çalıştım fakat modülü Core a yüklerken hata mesajları aldım. Asıl sorum, ben önceden derlenen modüllerin veya Core un hangi flagler/opsiyonlar ile derlendiğini nasıl anlarım? Yeni derlediğim modülü bir türlü eskiden derlenmiş sisteme kabul ettiremiyorum. Eski sistemin Core u ile eklediğim modül farklı flaglere sahip derleyiciler ile derlendiğinden, Core bir türlü benim yeni modülü kabul etmiyor sanki. Eskiden derlenmiş olan Core un hangi flagler ile derlenmiş olduğunu anlamamın bir yöntemi var mı?

yamak

Hocam Core a yüklerken hata mesajı alıyorum derken neyi kastediyosun?Çalıştırıken mi yoksa board a upload ederken mi?Board üzerindeki herhangi bir lib i ya da binary i file komutu ile inceleyip bi fikir alabilirsin.

Tagli

Bildiğim kadarıyla bunun bir yolu yok. Varsa da muhtemelen karmaşık bir iştir. Ancak flag'leri bilmene gerek olacağını sanmıyorum. Daha önce yazılmış ve yüklenmiş programları file komutu ile inceleyip yüzeysel bir bilgi edinebilirsin. Aynı yöntemle statik mi yoksa dinamik mi linklendiklerini öğrenmek de mümkün. Eğer dinamik olarak linklenmişler ise hangi kütüphaneleri çağırdıklarını görebilirsin. Yaşadığın sorunun büyük oranda dinamik kütüphaneler ile ilgili olduğunu tahmin ediyorum. Kendi uygulamanı statik olarak derlersen sorun yaşama ihtimalini azaltırsın bence.

Ek olarak, eğer etkinleştirilmişse kernel konfigürasyonunu öğrenmem mümkün ama buradan pek işe yarar bir bilgiye ulaşabileceğini sanmıyorum. Burada nasıl yapılacağı hakkında bilgi veriyor.

Bence burada önemli meselelerden biri de derleyicindeki kütüphane versiyonları ile sistemdekilerin uyuşması. Arada büyük farklar varsa uygulama çalışmayabilir. Tavsiyem, en temel "Hello World" uygulaması ile denemelere başlaman. Onu atıp çalıştıramıyorsan zaten daha karmaşık bir programı denemenin anlamı yok.
Gökçe Tağlıoğlu

mir_as82

Alıntı yapılan: yamak - 12 Mayıs 2016, 15:34:02
Hocam Core a yüklerken hata mesajı alıyorum derken neyi kastediyosun?Çalıştırıken mi yoksa board a upload ederken mi?Board üzerindeki herhangi bir lib i ya da binary i file komutu ile inceleyip bi fikir alabilirsin.

Hocam boarda o modülü load ederken sorun oluyor. Yani modülün core yazılıma register olması aşamasında sorun çıkıyor.

Tagli

Modül derken? Kernel modülü yüklemekten mi bahsediyoruz?
Gökçe Tağlıoğlu

mir_as82

Yok hocam bu modül kernel modül değil. Uzantısı .so olan dinamik bir kütüphane. Asterisk sistemi ile ilgili.