移植uboot第一步:下载,编译,烧到板子上试验
寫在前面:
我的博客已遷移至自建服務器:博客傳送門,CSDN博客暫時停止,如有機器學習方面的興趣,歡迎來看一看。
此外目前我在gitHub上準備一些李航的《統計學習方法》的實現算法,目標將書內算法全部手打實現,歡迎參觀并打星。GitHib傳送門
正文
一直在看韋東山的二期視頻,打算跟著移植一個uboot,百度uboot,進入官網,左側SourceCode下載最新的源碼,此次用的是和韋東山同款的u-boot-2012.04.01。
步驟:
1.建立Source ubsight工程,把2440要用到的東西添加進去,如果記不清,就全加,SI只是用來閱讀代碼的,全加沒有壞影響,只是查找函數之類的時候會找到你不需要的文件里面去。
2.把壓縮文件通過FTP放入虛擬機/work/system目錄,其實都可以,我放到了這里。
tar xjf u-boot-2012.04.01.tar.bz23.解壓以后進入文件夾,要配置uboot,以2440適配的方式編譯。觀察以后發現u-boot-2012.04.01沒有直接支持2440,但是2440和2410的差不多,就直接用2410試試。
make smdk2410_config在window下打開解壓后的文件,在u-boot-2012.04.01\board\samsung里面可以找到smdk2410文件夾,猜測上面的命令是從這里來的,下次移植到4418或者4412上的時候實踐一下看看是不是這樣。(后來實踐過,確實是這樣)
4.make編譯,編譯以后發現一百多個錯誤,這是因為uboot更新以后很多配置改了,編譯器沒跟上,下載一個新版的編譯器,我下了arm-linux-gcc-4.3.2.tgz,是跟著韋東山下的,暫時不清楚編譯器和內核之間的版本要不要匹配,等uboot全部移植成功了,下一個最新的編譯器試試。
5.下載以后把壓縮文件放入虛擬機/work/tool目錄,也可以放別的目錄,因為后綴是tgz,所以解壓的命令是tar zxvf FileName.tgz這樣的。建立一個tmp臨時目錄,先看看里面是什么東西,這個步驟可以跳過
tar zxvf arm-linux-gcc-4.3.2.tgz -C tmp/解壓到當前目錄:
tar zxvf arm-linux-gcc-4.3.2.tgz -C /6.進入tmp/usr/local/arm/4.3.2 ls bin/
可以看到各種工具鏈,很滿意
可以把它直接解壓到tool根目錄一面去
7.linux里面有很多命令,它把命令都放在一個地方,輸入命令以后去找,所以我們要配置環境,把命令的目錄指向我們新的工具鏈的地方
echo $PATH 命令可以查看當前命令的地址,在沒有更改的時候,我的返回值是這樣的
可以看到有很多的命令,都用:隔開了,說明輸入命令的時候它會去這些地方找,我們原先的工具鏈的地址在/work/tools/gcc-3.4.5-glibc-2.3.6/bin,只需要修改這個地址就可以了,別的地址不用改
新的地址在/usr/local/arm/4.3.2/bin
設置新的環境變量
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/bin/usr/games:/usr/local/arm/4.3.2/bin輸入 arm-linux-gcc -v可以看到工具鏈的版本號已經更新了
如果不想每次都更改這個值,可以直接修改
里面有PATH=。。。,同樣最后的地址改一下就行了,這個是重啟后生效。
8.重新編譯
make distclean //把之前舊的編譯器編譯的垃圾刪掉,重新make編譯通過,下載到開發板。因為是裸板程序,我通過oflash下載的,下進去以后什么反應都沒有,看來不修改不能直接支持,下一節去修改這個。
總結
以上是生活随笔為你收集整理的移植uboot第一步:下载,编译,烧到板子上试验的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自己写一个最简单的bootloader_
- 下一篇: 移植uboot第二步:分析uboot