Dosya Sisteminin Hazırlanması
Dosya Sisteminin Hazırlanması
Bu bölümde busybox ile temel bir dosya sisteminin nasıl hazırlandığına bakacağız, benzer anlatım bir sonraki konu olan Raspberry Pi bölümünde de bulunmaktadır. Dosya sistemi hazırlanmasıyla ilgili daha detaylı bilgiler için ise Kök Dosya Sistemi Oluşturma başlıklı bölümü inceleyebilirsiniz.
Biz burada konunun bütünlüğünü korumak için kullandığımız derleme seti ile temel bir dosya sistemini /opt/orangepi/RootFS/
altında oluşturacağız.
Busybox
Busybox
kodlarını aşağıdaki gibi indirip derleyebiliriz. İstenirse öngörülen ayar dosyası make defconfig
işlemi sonrasında make menuconfig
ile özelleştirilebilir.
Bu işlem sonucunda busybox
dosyası oluşacaktır. Bu aşamadan sonra gerekli sembolik linkler oluşturulmadır. Bu işlem için Makefile dosyası install
isimli bir hedef barındırmaktadır. Bu işlemden önce dosya sistemini kendi bilgisayarımızda nerede oluşturacağımıza karar vermeliyiz. Biz bu amaçla /opt/orangepi/RootFS
dizinini kullanacağız. İlk olarak bu dizin altındaki dosyaların sahibi olarak kendi kullanıcımızı tanımlayalım.
Derleme işleminden sonra make install
dediğimizde _install
adlı bir dizin altında, ihtiyaç duyduğumuz sembolik linkleri barındıran, /bin
, /sbin
ve /usr
dizinleri oluşacaktır. CONFIG_PREFIX
değişkenini kullanarak bu dizinleri, _install
dizini yerine, RootFS altında aşağıdaki gibi oluşturabiliriz.
Bu işlem sonucunda RootFS dizininde aşağıdaki dosyalar oluşmuş olmalıdır.
Temel Kütüphanelerin Taşınması
Cihaz üzerinde çalışacak busybox ve diğer uygulamalar libc
ve libm
gibi birtakım temel kütüphanelere ihtiyaç duymaktadır. Bu kütüphaneleri kullandığımız derleyici setinden temin edeceğiz.
Derleyici, derleme esanasında kullandığı hedef sisteme ait kütüphane ve başlık dosyalarını sysroot denilen bir dizin yapısında saklamaktadır. Bu dizin yapısını aşağıdaki gibi öğrenebiliriz.
Bu dizinden yapacağımız kopyalama işlemlerini basitleştirmek için bu dizini gösteren bir çevre değişkenini aşağıdaki gibi tanımlayabiliriz.
RootFS
altında /lib
dizinini oluşturduktan sonra ilk planda ihtiyaç duyduğumuz kütüphaneleri aşağıdaki gibi kopyalayabiliriz.
Kernel ve DTB Dosyasının Taşınması
Daha önce derlediğimiz kernel imajını ve dtb dosyasını RootFS
altında /boot
dizinine aşağıdaki gibi taşıyabiliriz.
Kernel Modüllerinin Taşınması
Kernel modülleri dosya sistemi üzerinde /lib/modules/kernel-version
şeklinde uygun dizin yapısında bulunmalıdır. Kopyalama işlemini aşağıdaki gibi yapabiliriz.
Bu işlem sonrasında RootFS
altında lib/modules/4.13.0
gibi bir dizin oluşmalıdır.
Açılış Betiğinin Hazırlanması
İşletim sistemi çekirdeği açılış sürecini tamamladığında, dosya sistemi üzerinde bir takım öntanımlı dizinlere bakarak, init
isimli bir uygulamayı aramaktadır. İlk çalışan uygulama olan init
/etc/inittab
isimli bir dosyayı okuyarak gerekli işlemleri yapmaktadır.
İlk olarakRootFS
altında dosya sistemi için temel dizinleri aşağıdaki gibi oluşturalım.
Basit bir inittab
dosyasının içeriği aşağıdaki gibi olabilir.
inittab
içerisinde sysinit
ile başlayan satırda rcS
açılış betiğinin çalıştırıldığını görüyoruz. Açılışa ilişkin temel işlemler bu betik içinde yapılmaktadır. Temel bir açılış betiği aşağıdaki gibi olabilir.
Son durumda RootFS dizinimizin içeriği aşağıdaki gibi olmalıdır.
Bu aşamadan sonra SD kartın hazırlanması kısmına geçebiliriz.
Last updated
Was this helpful?