Son hazırlıklar:

Çoğu değişkeni birçok kez kullanıyoruz o yuzden bu değişkenlerimiz kontrol etmeliyiz. CLFS değişkenini
echo ${CLFS}
ile yazdırıp /mnt/clfs çıktısı verdiğinden emin olun. eğer istediğimiz cevap değilse şu şekilde yapalım.
export CLFS=/mnt/clfs
install -dv ${CLFS}/tools
CLFS dizini özelliklerini aynısı ile oluşturuyoruz. *su reenter dikkat!'! Cross-Compile Araçlarını bu dizin altına kuracağız.
install -dv ${CLFS}/cross-tools ln -sv ${CLFS}/cross-tools /
CLFS kullanıcısı eklemek root ile bazı işlemleri yapmak çok tehlikeli olabilir. Bu yüzden paket kurulumları için yetkileri kısıtlı bir kullanıcı oluşturup onunla yola devam edeceğiz. Şimdi clfs grubu açıp içine clfs kullanıcısı ekleyecez.
groupadd clfs useradd -s /bin/bash -g clfs -d /home/clfs clfs mkdir -pv /home/clfs chown -v clfs:clfs /home/clfs
-s /bin/bash : clfs kullanıcısı için varsayılan kabuk komutlarını atar. -g clfs : clfs grubuna clfs kullanıcısı ekler. clfs kullanıcısına parola için
passwd clfs
aşağıdaki dizinlere sahipliğini atıyoruz.
chown -v clfs ${CLFS}/tools chown -v clfs ${CLFS}/cross-tools chown -v clfs ${CLFS}/sources su - clfs
Artık Clfs kullanıcı ile oturum açtık. Artık Bundan sonra clfs kullanıcı ile yola devam ediyoruz. Çevresel Ayarları Düzenlemek: bash_profile ile bize gerekli olan değişkenler atanacak.
exec env -i HOME=${HOME} TERM=${TERM} PS1='\u:\w\$ ' /bin/bash
bashrc dosyasını oluşturuyoruz.
set +h umask 022 CLFS=/mnt/clfs LC_ALL=POSIX PATH=/cross-tools/bin:/bin:/usr/bin export CLFS LC_ALL PATH
umask ile oluşturduğumuz dosyaların gerekli izinlerde olması sağlanacak.
İlgili Kaynaklar
LFS Ana Sitesi
Bu aralar epey yoğunum istediğim şeyleri karalama defterime geçirirken bazen acele ediyorum,bazen çok ağırdan sindire sindire yazıyorum bu yüzden yazılarımda bir kopukluk oluyor bende bundan sonra yazılarıma Düzenleme Sürümü koymaya başladım.
  • Nedir Düzenleme Sürümü?


  • Yazılarım takip edildiği zaman (şu an hiç bir ziyaretçim yok ama :)) yayınlanan yazının ne kadar eksik olduğunu gösteren ya da ben en son nerede kalmışım dememi sağlayan bir düzen.

  • İlgimi Çekti Ama Neyi,Nasıl Anlayacağım?


  • Düzenleme Sürümü Başlığın hemen altında yer alacak ve şu şekilde belirecek
    Düzenleme Sürümü: 1.0.0
    Burada genelde uygulamlar için sorun olmaması açısından belirlediğim birşey olacak.Bazı yapmayı düşündüğüm uygulamaları önce teorik olarak buraya yazıyorum ama denemeye fırsatım olmuyor.Onların şuan ne durumda olduğunu göstermeye çalışıyorum.
    şimdi bir kaç örnek verelim.
    Düzenleme Sürümü: 0.5.0
    Bu sürüm numarası Başlangıç sürüm numarası, bundan daha küçük numaralar olursa taslak halinde olması gereken yazıdır ama yayınlanmış bir yazıdır ve eksikliklere müdahale edip beni uyarmanız için sizden yardım beklediğim sürümdür.
    Başlangıç sürüm numarası, yani bir yazıya başlamışım ve bitirmişim ama hiç kontrol etmemişim.
    Düzenleme Sürümü: 0.8.0
    Genel Kapsamlı yazılarda ya da çevirilerimde bu sürüme ulaşmışsam. Yazı bütünlüğü bir şekilde sağlanmış ama uygulamalar veya kodlar ile ilgili bütünlük sağlanmamıştır.
    Düzenleme Sürümü: 0.9.0
    Bu sürüme ulaşmışsam kod bütünlüğü sağlanmış ama uygulama pratikte genel olarak test edilmemiştir.
    Düzenleme Sürümü: 1.0.0
    Bu sürüme ulaşmışsam kod veya uygulama sorunsuz bir şekilde denemişim, yazı birden fazla kişi tarafından okunmuş ve düzgün bir kaynak olacak şekilde yayınlanmıştır.
    Düzenleme Sürümünün 1.0.0 dan daha büyük olduğu durumlarda gözden kaçan bir eksiklik, yazım hatası,yorumlarda belirtilen eksiklikler ve teknoloji yenilenmesi gibi durumlardan oluşan değişiklikleri belirtmektedir.
    Düzenleme Sürümü 0.8.0

    Artık daha fazla geçmişe takılmadan ilerleyelim ve

    • su -clfs
    diyerek başlayalım.

    NOT:Bazı paketleri derlemeden önce yamaya ihtiyacımız olacak ama yamaları bir sorunun etrafından dolaşmamız gerekeceği zaman uygulayacağız.
    Bununla birlikte derlemelerde veya yamalarda çoğu zaman uyarılarla karşılaşabilirsiniz. Bu uyarıları güvenli birşekilde yoksayabilirsiniz.
    Çünkü bazı paketler hala eski C standartlarını kullanıyor buda bazı uyarılara sebep olsada istediğimiz sorunsuz uygulanıyor.
    Son olarak her paket yüklendikten sonra kaynak dizini silinirse daha sonraki tekrar yüklemelerden doğacak yanlış yapılandırmaları engellemiş olursunuz.

    CFLAGS Ayarları:
    • CFLAGS ve CXXFLAGS cross-tools inşası sırasında ayarlı olmamalı.
    • unset CFLAGS
    • unset CXXFLAGS
    • echo unset CFLAGS >> ~/.bashrc
    • echo unset CXXFLAGS >> ~/.bashrc
    Değişkenleri Yapılandırma:
    • Çapraz Derleme araçlarının inşası sırasında lazım olacak ana ve hedef makineleri belirtecek değişkenleri belirtelim:
    • export CLFS_HOST = \
    • "$(echo $MACHTYPE | sed "s/$(echo $MACHTYPE |cut -d- -f2)/cross/")"
    • export CLFS_TARGET="x86_64-unknown-linux-gnu"
    • export CLFS_TARGET32="i686-pc-linux-gnu"
    Bayraklar:
    derleyici ve bağlayıcı için iki bayrağa ihtiyacımız olacak.
    • export BUILD32 = "-m32"
    • export BUILD64 = "-m64"
    • Daha sonra tekrar yükleme olursa diye bunları bashrc içine ekliyoruz.
    • echo export CLFS_HOST=\""${CLFS_HOST}\"" >> ~/.bashrc
    • echo export CLFS_TARGET=\""${CLFS_TARGET}\"" >> ~/.bashrc
    • echo export CLFS_TARGET32=\""${CLFS_TARGET32}\"" >> ~/.bashrc
    • echo export BUILD32=\""${BUILD32}\"" >> ~/.bashrc
    • echo export BUILD64=\""${BUILD64}\"" >> ~/.bashrc

    Linux-Headers-2.5.24.7:

    Tüm mimariler için genelleşmiş başlık dosyalarını içerir.
    • install -dv /tools/include
    • make mrproper
    • make ARCH=x86_64 headers_check
    • make ARCH=x86_64 INSTALL_HDR_PATH = dest headers_install
    • cp -rv dest/include* /tools/include

    File-4.23

    Verilen dosyanın tipini düzenlemek için bir araç içerir.
    • ./configure -- prefix=/cross-tools
    • make
    • make install

    Cross Binutils-2.18

    bir bağlayıcı,bir assemnler ve nesnelerle ilgili diğer araçları içerir.
    GCC ve Glibc den önce en önemli araç budur.Dikkat!

    • patch -Np1 -i ../binutils-2.18-posix-1.patch
    • patch -Np1 -i ../binutils-2.18-branch_update-3.patch
    • patch -Np1 -i ../binutils-2.18-genscripts_multilib-1.patch
    • mkdir -v ../binutils-build
    • cd../binutils-build
    • Derlemeye hazırlık:
    • AR=ar AS=as ../binutils-2.18/configure --prefix=/cross-tools \
    • --host=${CLFS_HOST} --target=${CLFS_TARGET} --with-lib-path=/tools/lib \
    • --disable-nls --enable-shared --enable-64-bit-bfd
    • Yazdıklarımız Ne Anlama Geliyor:
    • --prefix=/cross-tools :
    • cross-tools dizininde yükleme paketleri için hazırlar
    • --host=${CLFS_HOST}
    • --target ile kullanıldığında CLFS_HOST üzerinde çalışan CLFS_TARGET için çapraz mimari çalıştırılabilir dosyaları oluşturur.
    • --target=${CLFS_TARGET} :
    • --with-lib-path=/tools/lib :
    • bağlayıcı için kütüphane dizinini /tools/lib ayarlar.
    • --disable-nls :
    • çarpraz derlemeiçin işe yaramayacak genelleştirmeyi pasifleştirir.
    • --enable-shared
    • Paylaşılan kütüphanelerin oluşturulmasını sağlar.
    • --enable-64-bit-bfd
    • 64 Bit Desteğini Ekler.
    • Şimdi Derleyip sonrada yükleyelim.
    • make configure-host
    • make
    • configure-host
    • Bu kontrol Binutils derlemek için kullanılabilir önemli araçları host a göre emin olur.
    • make install
    • cp -v ../binutils-2.18/include/libiberty.h /tools/include

    Cross GCC-4.2.4-Static

    GNU C ve C++ derleyicilerini içerir.
    • patch -Np1 -i ../gcc-4.2.4-specs-1.patch
    • patch -Np1 -i ../gcc-4.2.4-posix-1.patch
    • Çapraz Derleme sırasında libgcc_s.so dosyasını /usr dizininde aramamak için:
    • patch -Np1 -i ../gcc-4.2.4-cross_search_paths-1.patch
    • kütüphanedeki Başlangıç dosyayı değiştirme
    • echo "
    • #undef STARTFILE_PREFIX_SPEC
    • #define STARTFILE_PREFIX_SPEC \" /tools/lib/\"" >> gcc/config/linux.h
    • GCC nin C önişlemcisini sadece /tools kullanması için düzenleyeceğiz:
    • cp -v gcc/Makefile.in{,.orig}
    • sed -e "s@\(^CROSS_SYSTEM_HEADER_DIR =\).*@\1 /tools/include@g" \
    • gcc/Makefile.in.orig > gcc/Makefile.in
    • GCC belgeleri Belirlenen inşa dizinindeki kaynak dizinin dışında GCC yi inşa etmeyi önerir.
    • mkdir -v ../gcc-build
    • cd ../gcc-build
    • GCC derlemek için hazırla
    • ../gcc-4.2.4/configure --prefix=/cross-tools \
    • --host=${CLFS_HOST} --target=${CLFS_TARGET} \
    • --with-local-prefix=/tools --disable-nls --disable-shared \
    • --disable-threads --enable-languages=c
    • Yapılandırma ayarlarının anlamı:
    • --with-local-prefix=/tools
    • Bu anahtarın amacı GCC'nin arama yolundan "/usr/local" dizini kaldırmaktır.
    • Bu kesinlikle zorunlu değildir ama ana sistemin etkisini en aza indirmeye yardımcı olur.
    • --disable-shared
    • paylaşılan kütüphanelerin oluşumunu yoksayar.
    • --disable-threads
    • Bu, bu mimari için henüz oluşturulmayan, multi-thread içeren dosyaları aramasını engeller.
    • GCC, Glibc Başlıkları oluşturduktan sonra multi-thread bilgisini bulabilecek.
    • --enable-languages=c
    • C Derleyici olmasını garantileyen bir seçenektir.
    • Paketi derleyerek devam edelim:
    • make all-gcc
    • make install-gcc

    Glibc-2.7 32 Bit

    Glibc temel C kütüphanesini içerir.Bu kütüphane rutin bellek işlemleri,dizin arama, dosya açma-kapama, okuma-yazma,string elde etme,aritmetik... işlemleri sağlar.
    • patch -Np1 -i ../glibc-2.7-libgcc_eh-1.patch
    • patch -Np -i ../glibc-2.7-localedef_segfault-1.patch
    • mkdir -v ../glibc-build
    • cd ../glibc-build
    • echo "libc_cv_forced_unwind=yes" > config.cache
    • echo "liibc_cv_c_cleanup=yes" >> config.cache
    • BUILD_CC="gcc" CC="${CLFS_TARGET}-gcc ${BUILD32}" \
    • AR="${CLFS_TARGET}-ar" RANLIB="${CLFS_TARGET}-ranlib" \
    • CFLAGS="-march=$(cut -d- -f1 <<< $CLFS_TARGET32) -mtune=generic -g -O2" \


    • ../glibc-2.7/configure --prefix=/tools \


    • --host=${CLFS_TARGET32} --build=${CLFS_HOST} \


    • --disable-profile --enable-add-ons \


    • --with-tls --enable-kernel=2.6.0 --with-__thread \


    • --with-binutils=/cross-tools/bin --with-headers=/tools/include \


    • --cache-file=config.cache


    • Bunlar Ne Anlama Geliyor:


    • BUILD_CC="gcc"




    • CC="${CLFS_TARGET}-gcc ${BUILD32}"


    • AR="${CLFS_TARGET}-ar"


    • RANLIB="${CLFS_TARGET}-ranlib"


    • CFLAGS="-march=$(cut -d- -f1 <<< $CLFS_TARGET32) -mtune=generic -g -O2"


    • --disable-profile


    • --enable-profile


    • enable-add-ons


    • --with-tls


    • --enable-kernel=2.6.0


    • --with-__thread


    • --with-binutils=/cross-tools/bin


    • Bu adımlar sırasında bazı uyarılar ile karşılaşabilirsiniz.Bakınız


    • Daha sonra derleme ve yüklemeye devam ediyoruz.


    • make


    • make install


    Glibc-2.7 64 Bit

    Glibc temel C kütüphanesini içerir.Bu kütüphane rutin bellek işlemleri,dizin arama, dosya açma-kapama, okuma-yazma,string elde etme,aritmetik... işlemleri sağlar.
    • Glibc için bu kitapta önerilen derleme dışındaki derleme sistemin kararlılığını bozabilir.
    • "libgcc_eh" için bağlamayı devre dışı bırakır:
    • patch -Np1 -i ../glibc-2.7-libgcc_eh-1.patch
    • segfault için localdef düzenler.
    • patch -Np1 -i ../glibc-2.7-localedef_segfault-1.patch
    • mkdir -v ../glibc-build
    • cd ../glibc-build
    • Glibc için NPTL desteğini config.cache e ekler:
    • echo "libc_cv_forced_unwind=yes" > config.cache
    • echo "libc_cv_c_cleanup=yes" >> config.cache
    • /tools/lib64 içine Glibc için 64-bit kütüphanelerini yüklemesini söyler.
    • echo "slibdir=/tools/lib64" >> configparms
    • Derleme Hazırlığı
    • BUILD_CC="gcc" CC="${CLFS_TARGET}-gcc ${BUILD64}" \
    • AR="${CLFS_TARGET}-ar" RANLIB="${CLFS_TARGET}-ranlib" \
    • ../glibc-2.7/configure --prefix=/tools \
    • --host=${CLFS_TARGET} --build=${CLFS_HOST} --libdir=/tools/lib64 \
    • --disable-profile --enable-add-ons \
    • --with-tls --enable-kernel=2.6.0 --with-__thread \
    • --with-binutils=/cross-tools/bin --with-headers=/tools/include \
    • --cache-file=config.cache
    • Bunlar Ne Anlama Geliyor:
    • CC="${CLFS_TARGET}-gcc ${BUILD64}"
    • Hedef mimaride GCC nin 64bit bayraklarını kullanmasını sağlar.
    • --libdir=/tools/lib64
    • Glibc yi "/tools/lib" yerine "/tools/lib64" içine koyar.
    • Bu aşamada Aşağıdaki uyarı görülebilir:
    • configure: WARNING:
    • *** These auxiliary programs are missing or
    • *** incompatible versions: msgfmt
    • *** some features will be disabled.
    • *** Check the INSTALL file for required versions.
    • GetText paketinin bir parçası olan msgfmt eksik ve uyumsuz mgmft programı genellikle zararsızdır.
    • Paketi derleyip sonrada yükleyelim
    • make
    • make install

    Cross GCC-4.2.4-Final

    C ve C++ derleyicilerini içeren GNU derleyicilerini içerir.
    • Çekirdek derleme hata düzeltmelerini sağlar:
    • patch -Np1 -i ../gcc-4.2.4-PR31490-1.patch
    • GCC'nin inşa ortamımızı kullandığından emin olmak için temel ayar çiftini yapar:
    • patch -Np1 -i ../gcc-4.2.4-specs-1.patch
    • uygun sözdizimini kullanmak için bu yama ile emin oluruz:
    • patch -Np1 -i ../gcc-4.2.4-posix-1.patch
    • Çapraz derleme yapıldığı zaman gcc nin libgcc_s.so için /usr dizinini armamasını sağlar:
    • patch -Np1 -i ../gcc-4.2.4-cross_search_paths-1.patch
    • Doğru kütüphane yolunu vermek için Başlangıç Dosya özelliğini değiştiriyoruz.(StartFileSpec)
    • echo "
    • #undef STARTFILE_PREFIX_SPEC
    • #define STARTFILE_PREFIX_SPEC \"/tools/lib/\"" >> gcc/config/linux.h
    • Şimdi GCC nin önişlemcisinin varsayılan arama yolunu sadece "/tools" kullanması için değiştirelim.
    • cp -v gcc/Makefile.in{,.orig}
    • sed -e "s@\(^CROSS_SYSTEM_HEADER_DIR =\).*@\1 /tools/include@g" \
    • gcc/Makefile.in.orig > gcc/Makefile.in
    • Son olarak "configure" içinde -B yi devre dışı bırakarak, -B gibi "Multilib" özelliği tarafından genişletilmemiş olan yanlış mimari kütüphanelerini almayız:
    • cp -v configure{,.orig}
    • sed -e '/FLAGS_FOR_TARGET.*\/lib\//s@-B[^ ]*/lib/@@g' configure.orig > \
    • configure
    • GCC belgelerinde tavsiye edilen; inşa edilecek dizinin dışında bir dizinde inşanın yapılmasıdır:
    • mkdir -v ../gcc-build
    • cd ../gcc-build
    • Derleme için GCC yi hazırlayalım:
    • ../gcc-4.2.4/configure --prefix=/cross-tools \
    • --target=${CLFS_TARGET} --host=${CLFS_HOST} \
    • --with-local-prefix=/tools --disable-nls --enable-shared \
    • --enable-languages=c,c++ --enable-__cxa_atexit \
    • --enable-c99 --enable-long-long --enable-threads=posix
    • Bunlar Ne Anlama Geliyor:
    • --enable-languages=c,c++
    • Bu seçenek sadece c ve c++ derlemelerini yapmasını sağlar.
    • --enable-__cxa_atexit
    • Yıkıcı fonksiyon olarak çağrılmayı sağlayan etkin kılar!!!
    • --enable-c99
    • C programları için C99 etkinleştirir.
    • --enable-long-long
    • Derleyicide long long etkinleştirilir.
    • --enable-threads=posix
    • Multi-thread için hata yakalamasını etkinleştirir.
    • Derleme ve yükleme ile devam edelim:
    • make AS_FOR_TARGET="${CLFS_TARGET}-as" \
    • LD_FOR_TARGET="${CLFS_TARGET}-ld"
    • make install
    • Başvurulan Kaynaklar:
    • CLFS Kitabı(Part III. Make the Cross-Compile Tools)
    Şimdi bir linux inşa edilmesi için gereken paketlerin listesini verip bunları nasıl kuracağımızdan bahsedicez. Kitapta belirli versiyonların kurulumunu yapmış ve daha yeni sürümlerin kurulumunu yaparsanız karşılabileceğiniz hatalara hazırlıklı olun diyor;) Paketleri yayınlayacağız ama bulamazsanız kitabın yeni sürümüne, olmadı bu siteye o da olmadı. en son Google a başvurabilisiniz. :) İlk adımımızı paketlerimizi ve yamalarımızı koymamız için bağladığımız CLFS diskine bir dizin oluşturalım:
    mkdir -v ${CLFS}/sources chmod -v a+wt ${CLFS}/sources
    ile yazılabilir ve yapışkan özelliğini verdik. Yapışkanlık birden fazla kullanıcı bu dizine yazabilir ama yazdıkları dosyaları silebilirler veya değiştirebilirler.(Yani Herkes dosyasına yapışık)

    Gerekli Paketler Burada

    Paketlerin Açıklamaları:
    • Autoconf : Configure.in dosyasını configure dosyasına çevirir.
    • Automake : Makefile.in dosyasını kullanarak yükleme bilgilerini bir araya getirir.
    • Bash: Kabuk Betik Dili
    • Bash Documentation
    • BinUtils
    • Bison : context free gramere göre bir parçalayıcı
    • Bzip2 (1.0.4) : blok sıralamalı dosya sıkıştırıcı
    • CLFS-Bootscripts (1.1.0) :
    • Coreutils (6.9) : fileutils,shellutils,textutils paketlerini kapsayan paket
    • DejaGNU (1.4.4) : diğer programları test etmeye yarayan çatı.
    • Diffutils (2.8.7) : dosyalar arası farkı karşılaştırmaya yarayan araçları barındırır.
    • E2fsprogs (1.40.4) ext2 dosya sistemi araçları ve kütüphanesini barındırır.
    • Expect (5.43.0)
    • File (4.23) Dosya tiplerini düzenler.
    • Findutils (4.2.32) Arama araçlarını barındırır.
    • Flex (2.5.35) Scanner diller için
    • Gawk (3.1.6) tarama ve işleme dili
    • GCC (4.2.4) GNU C Derleyicisi
    • Gettext (0.17) çoklu dil mesajı sağlar.
    • Glibc (2.7) genel standart kütüphaneleri içerir.
    • Grep (2.5.3) arama aracı
    • Groff (1.19.2) belge biçimlendirme sistemi
    • Gzip (1.3.12) GNU orjinal sıkıştırma programı
    • Iana-Etc (2.20) ağ servisleri ve protokollerini sağlar.
    • Inetutils (1.5) yaygın ağ servislerini içerir.(ftp,telnet,rlogin)
    • IPRoute2 (2.6.23) ağ servislerini içerir.
    • Kbd (1.13) Sistem Konsolunun davarnışını yöneten araçları barındırır.
    • Less (418) -
    • Libtool (1.5.26) Kabuk komutlarını otomailermesini sağlayan kütüphane
    • Linux (2.6.24.7) Linux Çekirdeği
    • M4 (1.4.10) GNU makro dili
    • Make (3.81) kurulacak programı otomatik düzenleme
    • Man (1.6e) programların belgelerinin çağrılmasını sağlar.
    • Man-pages (3.01) programların belgelerini barındırır.
    • Mktemp (1.5) geçici dosyalar oluşturmayı sağlar.
    • Module-Init-Tools (3.4) Çekirdek modüllerini yüklenmesi,eklenmesi,silinmesini sağlar.
    • Ncurses (5.6) Ncurses metin tabanlı terminaller için pencereler oluşturma ve kullanmaya, ekranı farklı renklerde boyamaya ve fonksiyon tuşlarını kullanmaya imkan veren bir kütüphanedir
    • Patch (2.5.9) orjinal dosyaya patch farkını uygular.
    • Perl (5.8.8) Raporlama dili
    • Procps (3.2.7) sistem bilgilerini içeren araçlar barındırır.(ps, uptime, free...)
    • Psmisc (22.6) süreçler ile ilgili araçları barındırır.
    • Readline (5.2) komut satırı düzenlemeyi sağlar.
    • Sed (4.1.5) temel metin editörü
    • Shadow (4.1.2) şifreli parola dosyası
    • Sysklogd (1.5) Sistem günlüklemesi için.
    • Sysvinit (2.86) Sistemin kontrolü için gerekli süreçleri içerir.
    • Tar (1.20) sıkıştırılmış verileri açan ve verileri sıkıştıran araç.
    • Tcl (8.4.16) bir betik dili.
    • Texinfo (4.11)
    • Tree (1.5.1.1)
    • Udev (124)
    • Util-linux-ng (2.14)
    • Vim (7.1) :metin editörü
    • Vim (7.1) language files (optional) :
    • Zlib (1.2.3) x86_64

      Multilib için ek paket

    • GRUB (0.97) - 950 KB:
    Gerekli Yamalar Burada

    Ek Yamalar

    • Binutils Multilib Patch :
    • GCC Specs Patch :
    • Grub 256-Byte Inode Patch
    • Grub Various Fixes - 136 KB:
    • Grub Use MMAP Patch - 4 KB:
    • IPRoute2 Lib64 Patch - 4 KB:
    • Perl Configure Multilib Patch - 1.4 KB:
    • Udev Lib64 Patch - 12 KB:
    İlgili Kaynaklar
    LFS Ana Sitesi
    Bu yazımızda yavaş yavaş CLFS sistemimiz için alt yapı oluşturacağız. İlk olarak yeni bir bölüm oluşturup biçimlendirip bölümü bağlama (mount) işlemlerini yapıcaz. Yeni Bölüm oluşturma:

    İlk olarak biçimlendireceğiniz boş bölümü belirliyoruz. Bu bölümü /mnt/clfs olarak bağlıyacaz.Minimum sistem gereksinimi olarak 2.5 GB ayırdıkmı bize bi hayli yeterli olacak. Eğer ana linuxum olacak diyorsanız ek yazılımlarınız yüklenmesi için 2-10 GB ekleyebilirsiniz. Bununla birlikte derleme sırasında bazı süreçlerin ihtiyacını RAM karşılayamayabilir bunun içinde küçük bir Swap alanı oluşturulabilir.Diski bölümlemeye cfdisk , fdisk gibi programlamarla yapabiliriz bunlar hakkında yeterli bilginiz yoksa belgeler.org ta ki şu yazı ya da fdisk(8), cfdisk(8) man dosyalarına başvurabilirsiniz.

    mke2fs /dev/[aygitAdi]
    mke2fs ile ext2 dosya sistemi oluşturup( diğer dosya sistemlerini "mkfs." ile başlayan komutta bulabilirsiniz.)mkswap ile takas alanı ayarlıyor daha sonra da Yeni bölümü bağlıyoruz.
    export CLFS=/mnt/clfs mkdir -pv ${CLFS} mount -v /dev/[yenibolum] ${CLFS}
    Linux From Scratch çevirirsek Sıfırdan Linux Yapımı demek kısaca kaynak koddan istediğiniz araçları derleyerek size özel bir Linux Dağıtımı oluşturmayı sağlar. Bu kadar dağıtım varken neden kendi dağıtımımı oluşturmalıyım diye sorduğumuzda ise birçok cevap verebiliriz. Bunların başında bir dağıtım ile gelen bütün yazılımlar genel kapsamlıdır yani sizin hiç açıp bakmadığınız yüzlerce program olabiliyor ya da sisteminiz biraz eski ve kullandığınız dağıtım ile bellek kullandığınız dağıtım ile sorunlu hale geliyor ya da küçük bir şirketiniz var size özel bir güvenlik ile işlemlerinizi yürütmek istiyorsunuz. Daha bir çok sebep sayılabilir belki şuan aklıma gelenler sadece bunlar. Size özel uygulamlar ve güvenlikle oluşmuş bir işletim sistemini kullanırken bu benim diye de gururlanabilirsiniz belki :D . LFS bir konuk linux dağıtımı kullanarak oluşturulur. Diskin bir bölümü ya da yeni bir disk biçimlendirilir ve onun üzerine adım adım inşa edilmeye başlanır. Her şeyi tırnaklarınızla kazıyarak yapacaksınız:P Endişelenmeye gerek yok LFS için öyle güzel kitapları varki herşeyi adım adım anlatıyorlar. LFS sistemi gereksinimlerden dolayı, ALFS(Automated), BLFS(Beyond), CLFS(Cross), HLFS(Hardened) olarak ayrılmış bunların içinden CLFS, LFS ye ek olarak 64 bit işlemcilere destek vermek için geliştirilmiş. CLFS için buradan kitabını indirebilirsiniz birden farklı kitap var bunlardan bir tanesi şuan okuduğum CLFS x86_64 multilib ve diğeri x86_64-pure 64 . Pure 64 ( saf 64 ) sadece 64 bit uygulamaların çalıştırılacağı bir sistem yapmanızı sağlıyor. Multilib hem 32bit hemde 64 bit desteklemeyi sağlıyor. Biz multilib üzerinden yola çıkacağız. Başlamadan önce bilmemiz gereken birkaç birşey var. Ne kadar yardımcı olacak kaynak olsada, elimiz altında google da olsa bazı çözümler yanıbaşımızdadır ve onları es geçmemek gerekir. Bunların başında derleme sorunları ile bol bol karşılacağımız bu uygulamamızda ilk olarak configure sorunları için config.log içine bakmayı unutmayalm. Ama sorunla ilgili çözümler artık başağrıtcı duruma geliyor ve sorularımıza düzgün cevap bulamadığınıza inanıyorsanız size şu yazıyı öneririm. Ben işletim sisteminin arkasında neler dönüyor, Çapraz Derleme de neymiş, İşletim sisteminin her köşesi benden sorulur, diyorsanız beraberce CLFS ye giriş yapıcaz...
    www.linuxfromscratch.com

    About

    seruhatto