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/
具體編譯方法參考這個部落格: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.
- Texas Instruments releases: Android, Linux, StarterWare (no OS)
- Linux: Debian, Angstrom Distribution, Ubuntu, ArchLinux, Gentoo, Sabayon, Buildroot, Erlang, Fedora
- Other: QNX, FreeBSD
- Projects page
- 選擇Debian 進入https://beagleboard.org/p/robertcnelson-myopenid-com/debian-ab3bb7頁面
在網頁底部找到
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.
- Texas Instruments releases: Android, Linux, StarterWare (no OS)
- Linux: Debian, Angstrom Distribution, Ubuntu, ArchLinux, Gentoo, Sabayon, Buildroot, Erlang, Fedora
- Other: QNX, FreeBSD
- Projects page
- 選擇Debian 進入https://beagleboard.org/p/robertcnelson-myopenid-com/debian-ab3bb7頁面