Tuesday, January 20. 2009
DM500 için imaj hazırlama
Evde deneylerimi Dreambox DM500S ile yapıyorum.
DM600 ile çalışırken kodları OpenEmbedded projesini kullanarak yapıyordum (bakınız http://www.openembedded.org). OE (OpenEmbedded) hem çok sayıda başka platformlarada geçiş yapmaya olanak veriyor hem de bitbake ve mtn gibi araçlarla inşa (build) işini çok kolaylaştırıyor.
Ancak DM500plus için desteği var ve DM500'e birşeyler yapabilmek için çok uğraştırıyor. BU nedenle DM500 için direkt olarak tuxbox cvs kodlarından yararlanıyorum.
Dreambox'a imaj oluşturmak birkaç basit adımdan oluşuyor (en son Fedora 10 x86_64 ile denenmiştir) :
---------------------------------------------------------------------------------------------------------
1) internetten bulabileceğiniz toolchecker.sh betiği ile gerekli programların kurulu olup olmadığını kontrol edin. Kurulu olması gereken temel bileşenler
- autoconf
- automake
- bunzip2 (bzip2)
- cvs
- gettext
- libtool
- make
- makeinfo (texinfo)
- tar
- gunzip (gzip)
- patch
- infocmp (ncurses-bin / ncurses-devel)
- gcc
- g++
- flex
- bison
- pkg-config
- wget
- libpng2 or libpng3 (DirectFB)
Bu paketlerin işletim sistemi ve CPU'nuza uygun olanlarını kurun. Ben hem 64Bit hem de 32Bit sürümleri ile başarılı oldum.
2) Ben kendi kullanıcım ile yaptığım derlemelerde genellikle sorun yaşadım (genellikle....., herzaman değil). Bu nedenle ilk denemenizi root kullanıcısı ile yapııp olayın nasıl olduğunu görmenizi tavsiye ederim.
İlk olarak çalışacağınız dizini oluşturun.
#mkdir /tuxbox-cvs
#cd /tuxbox-cvs
3) Kodların ortak bölümünü cvs.tuxbox.org adresinden CVS ile indireceğiz (firewall arkasında olanlar için; RSH olarak ssh seçilir ise port 22, bir ayar yapılmaz ise 2401 portunun dışarı açık olması gerekir, aksi takdirde ssh tunel, proxy gibi taklalar atmak gerekecektir)
#export CVS_RSH=ssh
# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P -rdreambox .
#cd cdk
4) Yapmak istediğiniz bir ayar var ise (örneğin web dreambox arayüzünün görünümünü exper moda almak vb.) prepare dosyası içinde değişiklik yapabilirsiniz. Ama ilk derleme için bir değişiklik yapmamanızı öneririm. Bunu daha sonraki deneylerinize saklayın.
dm500 için dosyaları oluşturtun
#./prepare dm500
dm500 için fark dosyalarını cvs'den indirin
#make checkout
5) Şimdi crosscompiler, ilgili klasörler, dreambox linux içinde olması fereken programlar, vb yi hazırlamamız gerekiyor.
Bu işlem internetten birçok dosyayı (kernel, patch, web server, ftp server, ssh server,...vb) indirip derleme işlemini yapacak. Bu adımın süresi hem makinenizin hızına hem de internet bağlantınızın hızına bağlı olarak değişecektir. Ama genel olarak 1Mbps hızındaki internet ortamında 2 saat kadar sürmekte ve internetten yaklaşık 600-700MByte dosya indirilmektedir.
Dosyalar /tuxbox-vcs/cdk/Archive dizinine indirilmektedir. Bu işlemleri başka bir ortamda da yapacak iseniz bu dizini ilgili makineye taşıyarak internetten dosya indirme süresini kısaltabilirsiniz.
#make dreamboximage_root
BU işlem bittiğinde gerekli tüm binary dosyalar ve crosscompile ortamı hazırlanmış olacaktır.
6) Şimdi disk üzerinde sanal bir dreambox ortamı oluşturalım
#make rebuild-flash
Oluşturulan dizinleri (/tuxbox-cvs/root, vb) dolaşırsanız dreamboz'ın içine benzediğini göreceksiniz. Eğer dreambox imajına girmesini istediğiniz birşey var ise ilgili klasörlere koyabilirsiniz. İmaj yapan komut onları da imajın içine alacaktır.
Örneğin emu, başlangıç komutları, resimler, temalar, vb.
7) Şimdi de imajımızı oluşturalım
#make flash-compress
Bu komut sonrasında /tuxbox-cvs/root/cdkflash dizininde imajınız hazır durumdadır. Güle güle kullanın.
YENIDEN DERLEME ve DEĞİŞİKLİK YAPMA
-----------------------------------------
Derleme işlemi aslında şu bileşenlerin derlenmesinden oluşmaktadır; binutils, dvbsnoop, ftpd, libcurl, libid3tag, libpng, libungif, linuxdir, plugins, stream, bootstrap, directories, enigma, gcc, libfreetype, libjpeg, libsigc, libvorbisidec, linuxkernel, root, tuxbox_libs, busybox, dreamfiles, etherwake, glibc, libfribidi, libmad, libtuxbox, libz, misc_libs, samba, tuxbox_tools
Bu bileşenlerden derlenmiş olanlar için cdk dizininde . ile başlayan bir dosya oluşturulur. Örneğin enigma derlendikten sonra cdk dizininde .enigma dosyası oluşturulur.
Kaynak kodlarında bir değişiklik yaparsanız, ya da dizinlere ekleme yaparsanız derleme işlemlerini tekrarlamalısınız bunun için öncelikle hangi bileşeni değiştirdi iseniz ona ait dosyayı silmelisiniz.
Örneğin enigmada değişiklik yaptıysanız aşağıdaki adımları yapmalısınız ;
#cd /tuxbox-cvs/cdk
#rm .enigma
#make .enigma
(bu komut yerine make dreamboximage_root komutunu da kullanabilirsiniz, böylece birden fazla . dosya sildiyseniz hepsini derleyecektir, ayrı ayrı derlemeniz gerekmeyecektir )
#make rebuig-flash
#make flash-compress
NOT: Zaman içinde bu prosedürü EMU, resim vb için güncelleyeceğim.
DM600 ile çalışırken kodları OpenEmbedded projesini kullanarak yapıyordum (bakınız http://www.openembedded.org). OE (OpenEmbedded) hem çok sayıda başka platformlarada geçiş yapmaya olanak veriyor hem de bitbake ve mtn gibi araçlarla inşa (build) işini çok kolaylaştırıyor.
Ancak DM500plus için desteği var ve DM500'e birşeyler yapabilmek için çok uğraştırıyor. BU nedenle DM500 için direkt olarak tuxbox cvs kodlarından yararlanıyorum.
Dreambox'a imaj oluşturmak birkaç basit adımdan oluşuyor (en son Fedora 10 x86_64 ile denenmiştir) :
---------------------------------------------------------------------------------------------------------
1) internetten bulabileceğiniz toolchecker.sh betiği ile gerekli programların kurulu olup olmadığını kontrol edin. Kurulu olması gereken temel bileşenler
- autoconf
- automake
- bunzip2 (bzip2)
- cvs
- gettext
- libtool
- make
- makeinfo (texinfo)
- tar
- gunzip (gzip)
- patch
- infocmp (ncurses-bin / ncurses-devel)
- gcc
- g++
- flex
- bison
- pkg-config
- wget
- libpng2 or libpng3 (DirectFB)
Bu paketlerin işletim sistemi ve CPU'nuza uygun olanlarını kurun. Ben hem 64Bit hem de 32Bit sürümleri ile başarılı oldum.
2) Ben kendi kullanıcım ile yaptığım derlemelerde genellikle sorun yaşadım (genellikle....., herzaman değil). Bu nedenle ilk denemenizi root kullanıcısı ile yapııp olayın nasıl olduğunu görmenizi tavsiye ederim.
İlk olarak çalışacağınız dizini oluşturun.
#mkdir /tuxbox-cvs
#cd /tuxbox-cvs
3) Kodların ortak bölümünü cvs.tuxbox.org adresinden CVS ile indireceğiz (firewall arkasında olanlar için; RSH olarak ssh seçilir ise port 22, bir ayar yapılmaz ise 2401 portunun dışarı açık olması gerekir, aksi takdirde ssh tunel, proxy gibi taklalar atmak gerekecektir)
#export CVS_RSH=ssh
# cvs -d anoncvs@cvs.tuxbox.org:/cvs/tuxbox -z3 co -P -rdreambox .
#cd cdk
4) Yapmak istediğiniz bir ayar var ise (örneğin web dreambox arayüzünün görünümünü exper moda almak vb.) prepare dosyası içinde değişiklik yapabilirsiniz. Ama ilk derleme için bir değişiklik yapmamanızı öneririm. Bunu daha sonraki deneylerinize saklayın.
dm500 için dosyaları oluşturtun
#./prepare dm500
dm500 için fark dosyalarını cvs'den indirin
#make checkout
5) Şimdi crosscompiler, ilgili klasörler, dreambox linux içinde olması fereken programlar, vb yi hazırlamamız gerekiyor.
Bu işlem internetten birçok dosyayı (kernel, patch, web server, ftp server, ssh server,...vb) indirip derleme işlemini yapacak. Bu adımın süresi hem makinenizin hızına hem de internet bağlantınızın hızına bağlı olarak değişecektir. Ama genel olarak 1Mbps hızındaki internet ortamında 2 saat kadar sürmekte ve internetten yaklaşık 600-700MByte dosya indirilmektedir.
Dosyalar /tuxbox-vcs/cdk/Archive dizinine indirilmektedir. Bu işlemleri başka bir ortamda da yapacak iseniz bu dizini ilgili makineye taşıyarak internetten dosya indirme süresini kısaltabilirsiniz.
#make dreamboximage_root
BU işlem bittiğinde gerekli tüm binary dosyalar ve crosscompile ortamı hazırlanmış olacaktır.
6) Şimdi disk üzerinde sanal bir dreambox ortamı oluşturalım
#make rebuild-flash
Oluşturulan dizinleri (/tuxbox-cvs/root, vb) dolaşırsanız dreamboz'ın içine benzediğini göreceksiniz. Eğer dreambox imajına girmesini istediğiniz birşey var ise ilgili klasörlere koyabilirsiniz. İmaj yapan komut onları da imajın içine alacaktır.
Örneğin emu, başlangıç komutları, resimler, temalar, vb.
7) Şimdi de imajımızı oluşturalım
#make flash-compress
Bu komut sonrasında /tuxbox-cvs/root/cdkflash dizininde imajınız hazır durumdadır. Güle güle kullanın.
YENIDEN DERLEME ve DEĞİŞİKLİK YAPMA
-----------------------------------------
Derleme işlemi aslında şu bileşenlerin derlenmesinden oluşmaktadır; binutils, dvbsnoop, ftpd, libcurl, libid3tag, libpng, libungif, linuxdir, plugins, stream, bootstrap, directories, enigma, gcc, libfreetype, libjpeg, libsigc, libvorbisidec, linuxkernel, root, tuxbox_libs, busybox, dreamfiles, etherwake, glibc, libfribidi, libmad, libtuxbox, libz, misc_libs, samba, tuxbox_tools
Bu bileşenlerden derlenmiş olanlar için cdk dizininde . ile başlayan bir dosya oluşturulur. Örneğin enigma derlendikten sonra cdk dizininde .enigma dosyası oluşturulur.
Kaynak kodlarında bir değişiklik yaparsanız, ya da dizinlere ekleme yaparsanız derleme işlemlerini tekrarlamalısınız bunun için öncelikle hangi bileşeni değiştirdi iseniz ona ait dosyayı silmelisiniz.
Örneğin enigmada değişiklik yaptıysanız aşağıdaki adımları yapmalısınız ;
#cd /tuxbox-cvs/cdk
#rm .enigma
#make .enigma
(bu komut yerine make dreamboximage_root komutunu da kullanabilirsiniz, böylece birden fazla . dosya sildiyseniz hepsini derleyecektir, ayrı ayrı derlemeniz gerekmeyecektir )
#make rebuig-flash
#make flash-compress
NOT: Zaman içinde bu prosedürü EMU, resim vb için güncelleyeceğim.
« previous page
(Page 1 of 1, totaling 1 entries)
next page »