1. 程式人生 > >最新版linux核心編譯 forZYNQ

最新版linux核心編譯 forZYNQ

今天嘗試了下最新版本的kernel核心對zynq平臺的編譯,本來沒覺得能成功,畢竟網上教程都是對3.x版本的編譯,也會出現很多小問題,沒想到這次對v4.16的編譯一遍就過。下面記錄一下步驟吧。

1.下載核心原始碼V4.16。    

     官網地址:www.kernel.org

2.arm-xilinx-linux-gnueabi-編譯器安裝

     編譯器決定了編譯好的核心可以執行在什麼架構上,例如我們不能用x86的編譯器編譯跑在arm上的核心程式,所以不能用自帶的gcc,而是要用xilinx提供給我們的編譯工具(下面CROSS_COMPILE=arm-xilinx-linux-gnueabi-就是在指定編譯器),如何安裝arm-xilinx-linux-gnueabi- 可以看其他教程。

3.新增xxx_defconfig檔案

    解壓核心原始碼後進入原始碼的arch/arm/configs目錄下,發現並沒有針對zynq平臺的配置檔案,我們可以百度get一下需要的xxx_defconfig配置檔案放入此目錄下,例如用zedboard平臺就需要digilent_zed_defconfig檔案。

4.編譯

        回到原始碼主目錄下執行make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi-  digilent_zed_defconfig       此命令還未開始編譯,只是在做配置準備工作,它可以把目標裝置有關的digilent_zed_defconfig資訊匯入.config檔案中,.config是下一步執行編譯命令需要解析的配置檔案。ARCH=arm指定了arm架構。

        執行make ARCH=arm CROSS_COMPILE=arm-xilinx-linux-gnueabi- 開始編譯。編譯結束後便在arch/arm/boot/下生成了zImage核心映象檔案。

        當然這個kernel核心是通用的,我們早就發現在arch目錄下有很多架構,在每一種架構下又有多個平臺,要是我們想編譯執行在其他裝置上的linux核心,方法是類似的,編譯器可能要換一下。