Kernel Derleme Süreci

Orange Pi Zero için kernel kodunun kararlı son hali aşağıdaki gibi klonlanabilir.

$ cd /opt/orangepi
$ git clone --depth 1 git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git

Kernel kodunu aşağıdaki gibi derleyebiliriz, öngörülen ayar dosyası üzerinde bu aşamada bir değişiklik yapmayacağız.

$ cd linux-stable
$ make ARCH=arm clean
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sunxi_defconfig
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage -j4

Bu işlem sonunda arch/arm/boot/ altında kernel imaj dosyasızImage oluşmuş olmalıdır.

Kernel modülleri ise ayrı derlenmelidir. Daha sonra ayar dosyası üzerinde değişiklik yapılarak istenilen özellikler modül olarak derlenebilir veya tüm özellikler kernel koduna dahil edilebilir. Kernel modülleri aşağıdaki gibi derlenebilir.

$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules -j4

Bu işlem sonunda .ko uzantılı kernel modülleri oluşacaktır. Bu modüller hedef dosya sisteminde uygun bir dizin altında bulunmalıdır. Cihaz için dosya sistemini hazırladığımız bölümde kernel modüllerinin nasıl kopyalanması gerektiğine bakacağız.

Son olarak kartın donanımına ait parametreleri barındıran .dtb dosyasını üretmeliyiz. Bu işlem aşağıdaki gibi yapılabilir.

$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs -j4

Bu işlem sonunda arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dtb dosyası oluşacaktır. Bu dosyayı da kernel imajı ve modüllerle birlikte SD kart üzerinde /boot dizini altına taşıyacağız.

Bu aşamadan sonra dosya sistemini oluşturmaya geçebiliriz.

NOT: Dokümanı hazırladığımız sırada OrangePi Zero ethernet ve wifi modülleri mainline kernel (4.13) içerisinde desteklenmiyordu. Konu ile ilgili ayrıntı için sonraki bölümü inceleyiniz.

results matching ""

    No results matching ""