Beaglebone Black imaj alma

Başlatan EMP_Otto, 08 Ağustos 2014, 02:01:20

EMP_Otto

Merhaba arkadaslar sizlere sormak istediğim bir konu var.Beaglebone  Black üzerinde Angstrom kullanarak bir takım uygulamalar geliştriyorum.Web server,modbus gibi  uygulamalar bittikten sonra proje adetli olarak üretilecek.Benim sorunum bütün bu kurduğum programlar yazdılarım hepsini paket haline gtirmek istiyorum.Mesela imaj haline getirip herhangi bir beaglebone a kurunca sistemin çalışmasını istiyorum.Şimdiden cevaplarınız için teşekkürler
Bu işler zordur,özveri ister...


tesladream

Merhaba EMP_Otto,

Eğer proje bazlı çalışmayı düşünüyorsan şu şekilde yapabilirsin;

1) Öncelikle her projede ortak kullanacağın bootloader ı (u-boot,redboot etc.) seçip karta yükle eğer yapabilirsen %70 proje biter çünkü seçtiğin cross-compiler çalışmıştır , sistem temel çevre birimlerini ayağa kaldırmıştır, en önemli ideal test ortamını kurabileceğin tftp , dhcp kullanılmaya hazırdır.Kendi development makina nı kur ubuntu olabilir, içine tftpboot gibi bir klasör aç , bu bilgisayarı tftpserver olarak kullan.
2) Ardından Kernel i kendi projene özgü derle , derleme sonucundaki uImage,bzImage,vmLinuz etc. 'yi tftpboot klasörü altına at.
3) Son adım Root file system , kendi iskelet rootfs(busybox) i veya buildroot,LTIB gibi bir yapı ile rootfs ini oluştur, burada kullanacağın yazılım için "ldd" ve "file" komutu ile gerekli library leri al rootfs içine /lib veya /usr/lib altına at.(Buildroot bunları otomatik atar bahsettiğim iskelet için)
4) Yazılımını kendi cross-compiler in ile derle(host ta) ve çalıştır(target ta) problemsiz çalışıyorsa OK. --> partionları al device dump (dd) komutu ile boot.img ,rootfs.img , userfs.img ve logfs.img adında çıktılara al ve sakla
$dd if=/dev/sda1 of=boot.img (sda --> sdcard,mSata gibi storage lar için ,NAND için nanddump komutu falan var)

Tüm projeler için aynı şekilde yap bu sana şunu sağlayacak:

a) Bir daha boot.img yi değiştirmeyeceksin.(NFS ,DHCP boot u kaldır, kernel i çiftle koruma amaçlı , otomatik boot ve eMMC boot a geç)
b) rootfs.img projene göre değişebilir olucak yada hepsi aynı lib leri kullanıyorsa fixlersin.
c) Uygulamaların userfs.img içinde sakla ve sistem her açılıştı mount ettir içinde ki uygulamayı çalıştır.(Uzaktan yazılım up-date için)
d) Yazılım log ları logfs.img altında sakla ve buradan debug et ,sıkıntı çıkaran yerleri izle.

Proje geliştirmek için CPU, GPU,VPU ve peripheral larını en ideal kullanan OS unu kendin derlemeni öneririm.Daha kolay yolları da var Angstrom veya yocto gibi şeylerle kodunu atarsın, içinde ne olduğunu bilmezsin yeni özellik (Touch panel, LCD , new ICs support) eklemek için çok uğraşırsın fazladan CPU harcar ve kontrol edemezsin ama öğrenci uygulamaları için iyidir genel yapıyı öğrenebilirsin.

Yukarıda bahsettiğim image ları projene özgü bir git te sakla , ihtiyaç olduğunda kendin yüklersin veya cihazlarına public key ver otomatic kendileri rootfs lerini veya yazılımlarını update etsinler.Umarım yardımcı olabilmişimdir.

EMP_Otto

Açıklamalarınız için çok teşekkür ederim hocam.Şimdiki bilgilerimle sizin dediklerinizi yapamam galiba ama ilerki projelerimde kullanmak için yazdıklarınızı not alıyorum.

Benim başka bir sorum olacak.Sistemin komple yedeğini aldım.Sistemi sd kart üzerinden calıstırıdım herşey gayet güzel calısıyor.Fakat ben bunu emmc ye atmak istiyorum.İnternette arastırdım hep aynı seyler anlatılıyor.Ama ben bir türlü beceremedim.Yani sd kartta yazdıgım imajı bir türlü emmc ye atamadım.
Şöyle bir sıra izliyorum.
1-Oluşturdugum yedeği karta yazdım(karttaki imajı çalıştırdım calıstıgından eminim :) )
2-Beaglebone Black kapalıyken sd kartı taktım.
3-S2 olarak belirtilen butona basılı iken Beaglebone Black e enerji verdim(elim hala tusta basılı)
4-yaklasık 15-20 saniye basılı tuttuktan sonra  bırakıyorum 45-50 dakika sonra 4 ledinde sabit yanması lazım ama bende bir türlü olmuyor nedense

Şimdide teşekkürler...
Bu işler zordur,özveri ister...

EMP_Otto

Hiç kimse yokmu sd kartaki imajı emmc ye kopyalayan ?
Bu işler zordur,özveri ister...

yamak

Hocam aşağıdaki linkteki scripti kopyala bi dosyaya yapıştır.Dosyanın adını da emmc.sh yap.Sonra bu dosyayı beaglebone a kopyala aşağıdaki komutla beraber çalıştırma izni ver.
chmod a+x emmc.sh
sonra aşağıdaki komut ile beraber de çalıştır.
./emm.sh
bu şekilde olması lazım
https://github.com/RobertCNelson/tools/blob/master/scripts/beaglebone-black-copy-microSD-to-eMMC.sh

EMP_Otto

19 Ağustos 2014, 14:02:59 #6 Son düzenlenme: 19 Ağustos 2014, 14:25:41 EMP_Otto
Hocam o scripti denedim fakat Error: script halting, system unrecognized... gibi bir hata veriyor ne yaptıysam calıstıramadım malesef
Script icerisindeki  boot_drive=$(LC_ALL=C lsblk -l | grep "/boot/uboot" | awk '{print $1}') satırındaki /boot/uboot gibi bir klasör yok bende
ayrıca  echo "unable to find: [/boot/uboot/uEnv.txt] is ${source}p1 mounted?" satırındaki gibi degil ,uEnv.txt dosyasıda direk olarak /boot/uEnv.txt klasörü altında bu gibi bir sürü değişik yerler var.Düzeltemeye calıstım fakat beceremedim :)
Bu işler zordur,özveri ister...

Yasal Uyarı: Picproje.org sitemizde 5651 sayılı kanunun 8. maddesine ve T.C.Knın 125. maddesine göre tüm üyelerimiz yaptıkları paylaşımlardan kendileri sorumludur. Picproje.org hakkında yapılacak tüm hukuksal şikayetleri İletişim sayfamızdan bize bildirdikten en geç 3 (üç) iş günü içerisinde ilgili kanunlar ve yönetmelikler çerçevesinde tarafımızca incelenerek gereken işlemler yapılacak ve site yöneticilerimiz tarafından bilgi verilecektir.