嵌入式linux内核培训课程 mt7688 uboot编译烧写过程

第一章 Uboot的编译
1.1 源码的获取
1.1.1 准备
已安装git的Ubuntu系统。
1.1.2 获取步骤
步骤1:打开终端(ctrl+alt+t)。
步骤2:创建一个工作目录(mkdir work),进入工作目录(cd work)
步骤3:在github上获取源码
(sudo git clone https://github.com/hi-wooya/u-boot-mt7688-hiwooya.git
如上图所示,表示已经下载好源代码了。
1.2 菜单的配置
1.2.1 准备
已经下载好的源码。
1.2.2 进行配置
步骤1:进入u-boot-mt7688-hiwooya目录(cd u-boot-mt7688-hiwooya)。
步骤2:打开菜单配置(sudo make menuconfig)。
步骤3:进行选项配置(配置结果如上图所示)
设置chip ID为MT7628(选中按空格或者enter)
设置DRAM Type为DDR2
设置DDR Component为1024M
设置DDR Width为16bit
其他默认
步骤4:按-->键选择Exit退出,选择Yes保存配置。

1.2.3 make

start.o /home/eric/share/uboot/hiwooya_uboot/u-boot-mt7688-hiwooya/cpu/ralink_soc/start.S
/bin/sh: 1: /opt/buildroot-gcc342/bin/mipsel-linux-as: not found
/bin/sh: 1: [: Illegal number:
make: /opt/buildroot-gcc342/bin/mipsel-linux-gcc: Command not found

需要进行交叉编译链准备

1.3 进行编译
1.3.1 准备
交叉编译工具链buildroot-gcc342.tar.bz2(配套资料里面)
1.3.2 安装工具链
步骤1:把工具链上传到Ubuntu系统下的/opt目录下。
步骤2:解压工具链(sudo tar xjvf buildroot-gcc342.tar.bz2)。
1.3.3 进行编译
步骤1:进入uboot目录(cd ~/work/u-boot-mt7688-hiwooya)。
步骤2:开始编译(sudo make)

编译时出错:

复制代码
/bin/sh: 1: /opt/buildroot-gcc342/bin/mipsel-linux-as: not found
/bin/sh: 1: [: Illegal number: 
make: /opt/buildroot-gcc342/bin/mipsel-linux-gcc: Command not found
/home/eric/share/uboot/hiwooya_uboot/u-boot-mt7688-hiwooya/config.mk:797: recipe for target 'cpu/ralink_soc/start.o' failed
make: *** [cpu/ralink_soc/start.o] Error 127
eric@ubuntu:~/share/uboot/hiwooya_uboot/u-boot-mt7688-hiwooya$ $PATH
-bash: /home/eric/bin:/home/eric/.local/bin:/opt/esp8266_rtos3_tool/xtensa-lx106-elf/bin:/opt/esp8266_rtos3_tool/xtensa-lx106-elf/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin: No such file or directory

当我使用ldd查找mipsel-linux-gcc所缺少的库的时候提示not a dynamic executable

执行:
$ mipsel-linux-gcc
-bash: mipsel-linux-gcc: No such file or directory
 

执行:
$ ldd mipsel-linux-gcc
not a dynamic executable
所以原因是因为使用64位 ubuntu 对32位的代码进行编译,所以需要下载32位机的lib:

sudo apt-get install libstdc++6:i386
复制代码

注:编译的时候可能会出现如下问题。

复制代码
In file included from fs.c:54:
fsdata.c:226: error: parse error before ',' token
make[1]: *** [fs.o] Error 1
make[1]: Leaving directory `/home/wooya/work/u-boot-mt7688-hiwooya/httpd'
打开这个文件,发现fsdata.c文件第226行多了一个逗号,删除后重新编译,发现源代码又同样的问题,继续向上看编译过程,发现
./vendors/makefsdatac: line 71: java: command not found(java命令没有找到)。
在终端输入java,未找到该命令。
下载java(sudo apt-get install default-jre)。
然后重新编译(sudo make)。
复制代码

 


步骤3:编译完成会在主目录下出现u-boot.bin这个文件。
第二章 Uboot的烧写
2.1 web烧写u-boot
2.1.1 准备
网线,串口线,开发板,开发板电源线。
FileZilla软件,SecureCRT终端,浏览器,已经编译好的u-boot。
2.1.2 使用web烧写
步骤1:连接线路,将电源线连接到板子,网线连接板子的WAN口和电脑,串口线连接板子和电脑。打开SecureCRT终端连接到板子。使用FileZilla软件把编译好的u-boot放在移动到Windows系统下的桌面上。
步骤2:在第一次倒计时的2s后按下wps键(板子上的reload按钮)。
注:可以在上图看到板子的IP地址设置的是10.10.10.2。
步骤3:设置主机IP地址(已经设置过了可以忽略这个步骤)。
打开网络连接。
选择以太网,鼠标右键点击,选择属性。
选择Internet协议版本4(tcp/ip4)->属性(R)->使用下面的IP地址(S),然后填入IP地址和子网掩码->确定。(或者在高级里面添加也行,选择其一即可)
步骤4:打开浏览器,输入网址10.10.10.2。
步骤5:点击Update U-Boot前面的选择文件,选择刚才的uboot.bin。
步骤6:点击Update U-Boot更新uboot。
注:更新过程中不要关闭电源。
板子上回出现如下打印信息,然后板子自动重启,表示已经烧录成功。
2.2 tftp烧写u-boot
2.2.1 准备
MT7688板子,串口线,板子的电源线,网线。
3CDaemon软件,SecureCRT终端,已经编译好的u-boot(默认放在桌面上)。
2.2.2 使用tftp烧写
步骤1:连接线路,将电源线连接到板子上,将串口线连接电脑主机和板子。网线连接到WLAN口和电脑上。
步骤2:开发板上电,然后打开3CDaemon软件监听IP地址。可以看到监听到了有线网卡的IP地址为10.10.10.10(使用web烧写的时候设置的ip地址)
步骤3:点击设置TFTP服务器,设置上传/下载路径(设置为桌面),然后确定。
步骤4:按下板子上的reset键重启板子,当第二次倒计时的时候输入9(9: Load Boot Loader code then write to Flash via TFTP.)。然后按下Y。
步骤5:进行设置,按回格键删除。
device IP = 10.10.10.2(不需要设置)
Server IP = 10.10.10.10(3CDaemon监听的ip地址)
Uboot filename = uboot.bin(uboot镜像文件)
然后系统就会自动完成。
注:不要关闭板子电源。

猜你喜欢

转载自www.cnblogs.com/daisy8807/p/12944823.html