1. 程式人生 > >20181102 Uboot移植

20181102 Uboot移植

第一步 移植Uboot

http://processors.wiki.ti.com/index.php/AM335x_U-Boot_User%27s_Guide(官方文件僅供參考,與實際編譯有出入,總體內容豐富,涵蓋了所有啟動方法的介紹,請詳細閱讀)。

在AM335x中,ROM程式碼充當引導載入程式,有時稱為初始程式載入程式(IPL)或主程式載入程式(PPL)。通過U-Boot二進位制檔案在兩個連續的階段完成booting。第一階段U-BOOT的二進位制被稱為二級程式裝入程式(SPL)或MLO。第二U-BooD階段的二進位制被簡單地稱為U-BooD。SPL是非互動式載入器,是U-BooD的一種特殊版本。它是在構建U-BooT時併發構建的。

ROM程式碼可以從以下任何裝置載入SPL影象

交叉編譯工具鏈下載地址:https://releases.linaro.org/components/toolchain/gcc-linaro/5.2-2015.11/(編譯uboot提示版本低)

                                              https://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/arm-linux-gnueabihf/

(換成7.2.1即可)

具體編譯方法參考這個部落格:https://blog.csdn.net/zy812248258/article/details/39252733

首先

下載TI官方檔案,地址如下:http://www.ti.com/tool/beaglebk#technicaldocuments 選擇:PROCESSOR-SDK-LINUX-AM335X :Linux Processor SDK for AM335x    選擇get software 進入 http://software-dl.ti.com/processor-sdk-linux/esd/AM335X/latest/index_FDS.html

  下載

am335x-evm-linux-sdk-src-05.01.00.11.tar.xz

step1:在進行任何操作之前,先清除原始碼樹,$make distclean

step2:編譯之前的配置工作  $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 O=am335x_beaglebone_black am335x_boneblack_defconfig

step3: 正式編譯 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 O=am335x_beaglebone_black all

 

第二步 移植核心(方法A-C還未走通)

方法X:

              參考借鑑了這位兄弟的方法:https://blog.csdn.net/zy812248258/article/details/39253989 

              編譯方法見:http://processors.wiki.ti.com/index.php?oldid=149205#Getting_the_Code

我實現的步驟為如下:

        一、到kernel.org下載linux-4.9核心

        二、下載gcc-linaro-5.2-2015.11-x86_64_arm-linux-gnueabihf.tar 交叉編譯器並修改環境變數

       三、 在http://software-dl.ti.com/processor-sdk-linux/esd/AM335X/latest/index_FDS.html 下載am335x-evm-sdk-src-06.00.00.00.tar,將核心原始碼中arch/arm/configs中的tisdk_am335x-evm_defconfig(一說:bb.org_defconfig)拷貝到linux-4.9核心arch/arm/configs的目錄中

       四、執行命令 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- tisdk_am335x-evm_defconfig 生成 .config檔案

       五、執行make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage 生成 zImage 檔案

生成裝置樹

       六:執行命令:make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am335x-boneblack.dtb (注:由於粗心沒有輸入ARCH=arm 導致編譯出錯)

      七:執行命令:make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules 產生模組

方法A:

https://elinux.org/Building_BBB_Kernel#Downloading_and_building_the_Linux_Kernel

方法B:

開啟beaglebone官網

在 Other currently available software images 標題下找到如下內容:

At the time of release, not all of these distributions support BeagleBone Black, but should soon.

在網頁底部找到

For Debian images for boards other than BeagleBone, check out http://elinux.org/BeagleBoardDebian.字樣

       然後由https://elinux.org/BeagleBoardDebian中的第9項找到Building Kernel 連結選擇BeagleBone Black進入

https://www.digikey.com/eewiki/display/linuxonarm/BeagleBone+Black網頁

未走通

方法C:

開啟beagle bone 官網,在 Other currently available software images 標題下找到如下內容

At the time of release, not all of these distributions support BeagleBone Black, but should soon.

http://processors.wiki.ti.com/index.php?oldid=149205#Compiling_the_Kernel