嵌入式技术分享

Embedded Technology Sharing

HLK-RM04 WIFI模块 uboot 编译及修改

《HLK-RM04 WIFI模块 uboot 编译及修改》

本文相关资源已上传github:
uboot源码:https://github.com/maxlicheng/ralink_uboot.git
uboot补丁:https://github.com/maxlicheng/uboot_patch.git

因HLK-RM04开发板自带uboot不能正常选择uboot菜单,即使编译官方原版uboot也无法选择:

《HLK-RM04 WIFI模块 uboot 编译及修改》

正常来说,uboot运行到这一步是可以通过输入对应的数字进入对应的功能的;经过深入测试,由于系统版本的原因,还有串口中断的差异性(可能是usb转串口电路或者是usb转串口驱动程序),使得uboot运行到uboot菜单这一步,自动接收到了一个空字节(Null),导致uboot跳过倒计时,进入3: Boot system code via Flash (default)这个选项,直接进入系统。

为了处理这个问题,博主直接修改了uboot源码(BootLoader),加入了功能组合按键作为判断机制,使它即使收到空字节,也不会直接进入系统,从而可以输入对应数字选择uboot菜单对应选项。

注:uboot的编译只能在32位Linux系统中编译,64位编译会报错。

检查系统相关工具包是否齐全
sudo apt-get install git g++ make libncurses5-dev subversion libssl-dev gawk libxml-parser-perl unzip wget python xz-utils vim

因uboot编译时的gcc版本不能高于3.5.2,需要重新安装gcc.
查看当前gcc版
mipsel-linux-gcc -v

高于3.5.2版本,执行下面命令,下载3.4.2版本
wget https://github.com/maxlicheng/ralink_uboot/releases/download/V1.0/buildroot-gcc342.tar.bz2

将3.4.2gcc解压到指定目录
sudo tar -jvxf buildroot-gcc342.tar.bz2 -C /opt

并添加环境变量
sudo vi ~/.profile

文本内容
PATH=$PATH:/opt/buildroot-gcc342/bin

《HLK-RM04 WIFI模块 uboot 编译及修改》

运行命令,生效
source ~/.profile

重启
sudo reboot

查看gcc版本
mipsel-linux-gcc -v

《HLK-RM04 WIFI模块 uboot 编译及修改》

下载官方 uboot 源码
git clone https://github.com/maxlicheng/ralink_uboot.git

进入ralink_uboot目标

修改config.mk文件
将config.mk中第762行gcc版本改为3.4.2 gcc路径
CONFIG_CROSS_COMPILER_PATH= /opt/buildroot-gcc342/bin

下载补丁文件
git clone https://github.com/maxlicheng/uboot_patch.git

执行补丁
patch -p1 < ralink_uboot_mips_4320.patch

完成后
make menuconfig

《HLK-RM04 WIFI模块 uboot 编译及修改》

执行make进行编译
make

编译成功后,移除原来的uboot.bin
rm -rf uboot.bin

将uboot.img改为.bin
cp uboot.img uboot.bin

《HLK-RM04 WIFI模块 uboot 编译及修改》

将uboot通过SPI FLASH烧写器写入开发板flash,启动后的效果如下。
按两次ctrl+c 停止倒计时,即可进入uboot菜单进行选择。

《HLK-RM04 WIFI模块 uboot 编译及修改》

《HLK-RM04 WIFI模块 uboot 编译及修改》

如果文章对您有帮助,欢迎移至上方按钮打赏博主;

点赞
  1. 竹影清风说道:

    老哥,能不能把n1的酸酸乳puls的ipk发一下我,还有这个固件要怎么搞才能支持ipv6呢?

    1. cheng说道:

      不知道有没有回复你,这里再回一下,固件发出有一段时间了,n1最近没有编译,没有ipk。ipv6自己也不太懂,到恩山开贴问问。

发表评论

电子邮件地址不会被公开。 必填项已用*标注