Openwrt 硬改过程记录

Openwrt 硬改过程记录

目录:

提醒:如果你是一个热爱技术喜欢折腾并且动手能力很强的人,你可以继续看这篇文章。否则你就关闭这个网页吧

本文以tp-mr11u v2为例


所需物品和设备配置介绍

  • 编程器(烧录器)

    CH341A 烧录器,最差的一种。
    ARM 烧录器,听说很好用,但是我没有买本文中也没有使用

  • 电烙铁及其相关

    40瓦恒温电烙铁
    焊锡
    松香
    焊宝,X宝送的的也不太清楚怎么用。
    镊子

  • TTL转接板

    X宝上卖的,建议购买烧录器的时候购买带有TTL功能的

  • 路由器1

    名称信息
    Instruction set:MIPS32
    Vendor:Qualcomm Atheros
    Bootloader:U-Boot 1.1.4
    System-On-Chip:AR9331 (MIPS 24Kc)
    CPU/Frq24Kc ? Mhz
    Flash-Chip:eon EN25Q32B-104HIP
    Flash size:4096 KiB
    RAM:32 MiB
    Wireless:Atheros AR9331 2.4ghz 802.11bgn
    USB:Yes 1 x 2.0
    Power:12V DC 1.5A
    Serial:?
    JTAG:?
    Target namear71xx
    Initial flash image v1 & v1.1:openwrt-ar71xx-generic-tl-mr11u-v1-squashfs-factory.bin v2: openwrt-ar71xx-generic-tl-mr11u-v2-squashfs-factory.bin
    Upgrade image v1 & v1.1:openwrt-ar71xx-generic-tl-mr11u-v1-squashfs-sysupgrade.bin v2: openwrt-ar71xx-generic-tl-mr11u-v2-squashfs-sysupgrade.bin

  • flash芯片

    型号大小尺寸引脚备注
    EN25Q32B4MB6mm*8mm8脚原装路由带的
    w25q12816MB6mm*8mm8脚硬改使用的芯片
    w25q25632MB6mm*8mm8脚对焊工要求比较高

    芯片尺寸 6mm*8mm

救砖

  • flash芯片有U-boot2

    拆开路由 你会看到P1右侧有直列排序的4个小孔, p1 |VCC|GND|RX|TX|
    只需要连接GND|RX|TX即可,不要连接VCC 小心会烧坏板子。
    设置串行控制台1152008N1,例如: stty -F /dev/ttyUSB0 115200 && cu -l /dev/ttyUSB0
    cu命令好像ubuntu上有centos上没有。所以我是在虚拟机中的window下操作的用putty操作的,winxp怎么设置我就不介绍了。
    在winxp用网线和路由器连接,设置本地连接的ip地址为192.168.1.2
    putty连接上后按‘tpl’回车键 可以进入uboot
    在uboot shell 输入
    setenv ipaddr 192.168.1.1
    setenv serverrip 192.168.1.2
    开启tftp服务,可以用tftp32.exe这个软件,

    序号命令命令注释
    1tftpboot 0x80000000 openwrt-ar71xx-generic-tl-mr11u-v2-squashfs-factory.bin执行完这条命令后会出现 Bytestransferred = 3932160 (3c0000 hex) 如果这里不是3c0000, 在执行下一条命令时要用这个值。eg:Bytestransferred = 3932161 (3c0001 hex) 下条命令 erase 0x9f020000 +0x3c0001
    2erase 0x9f020000 +0x3c0000擦除0x9f020000 到 0x3c0000和文件大小保持一致
    3cp.b 0x80000000 0x9f020000 0x3c0000第一个参数和序号1命令的第一个参数相同,第二个参数和命令2的第一个参数相同, 最有一个参数和文件大小保持一致
    4bootm 9f020000引导固件,如果这里一直滚动刷屏,说明固件没有烧好。

    如果顺利的话执行完第4条命令路由就可以引导起来了,可以用telnet 或 ssh进行连接了。

  • flash芯片没有U-boot

    一般没有U-boot都是硬改前没有用烧录器烧写芯片就焊接到路由上的(就像我)。
    这个时候我们需要找个uboot,
    1,登陆刷过openwrt的路由 cat /proc/mtd ;cat /dev/mtd0 > /tmp/mtd0.bin3
    这时候你就得到了一个UBOOT
    2,自己编译一个UBOOT https://github.com/pepe2k/u-boot_mod 4 如何编译自己研究吧。
    如果没有U-boot 这是需要你去网上找相同的型号路由的U-boot了,5
    好了现在有了UBOOT,我们可以用编程器烧录了,因为当初不知道买了最垃圾的编程器,在winxp下烧录老是报错,并且奇慢!!,
    所以我就转到了centos下进行烧录,自己下载源码编译工具 源码地址:https://github.com/setarcos/ch341prog 此源码依赖 libusb库 http://www.libusb.org/下载编译
    不过ch341prog的读取写入速度还很快并且还支持16MB芯片的读写,要比win下的快很多(推荐)。
    刷好uboot后就和上面的 flash芯片有U-boot一样了

编程器烧写芯片

工具源码: 6“>https://github.com/setarcos/ch341prog7
依赖库源码:8“>http://skylineservers.dl.sourceforge.net/project/libusb/libusb-1.0/libusb-1.0.9/libusb-1.0.9.tar.bz29.
先编译依赖库源码 再编译工具源码。

硬改路由flash闪存芯片

芯片的第一引脚定义 
有的芯片上带有一个圆点,圆点对应的引脚就是第一引脚
有的芯片有个半圆的豁口,豁口朝上左侧的引脚为第一引脚。

参考文献&博文

### OpenWrt Make 构建过程详细步骤 #### 准备工作环境 为了确保构建系统的正常运行,建议在一个干净的Linux环境中操作。安装必要的依赖包可以提高编译的成功率[^1]。 ```bash sudo apt-get update sudo apt-get install build-essential libncurses5-dev zlib1g-dev gawk gcc-multilib flex quilt libssl-dev xsltproc libxml-parser-perl gettext subversion mercurial git-core unzip ``` #### 获取源码 通过Git获取最新的OpenWrt源代码是开始构建的第一步: ```bash git clone https://git.openwrt.org/openwrt/openwrt.git openwrt_build_dir cd openwrt_build_dir ``` #### 更新Feeds并安装所需软件包 更新feeds列表并将所需的额外组件加入到项目中: ```bash ./scripts/feeds update -a ./scripts/feeds install -a ``` #### 配置目标平台和支持特性 配置内核选项和其他设置来适应特定件需求。这一步骤非常重要,因为不同的设备可能有不同的驱动程序和功能支持要求: ```bash make menuconfig ``` 在此界面可以选择要编译的目标架构、固件大小优化以及其他各种特性和模块的支持情况。 #### 开始编译过程 当所有的准备工作完成后就可以执行实际的编译命令了。这个过程可能会花费较长时间取决于计算机性能以及所选配置项的数量: ```bash make -j$(nproc) ``` 这里`-j$(nproc)`参数用于指定并发作业数,默认情况下会自动检测CPU核心数目从而充分利用计算资源加快速度。 #### 常见问题及其解决方案 - **错误:“找不到合适的工具链”** 如果遇到此类报错提示,则可能是由于缺少交叉编译器或其他必要开发库引起的。按照官方文档指示重新检查前置条件是否已满足,并尝试再次同步feed文件夹中的最新数据后再试一次。 - **内存不足导致失败** 对于一些大型项目的全量编译来说,确实有可能因物理RAM不够而中断进程。此时可考虑增加交换空间或者减少同时开启的任务数量(-jN),甚至切换至更强大的机器上完成整个流程。 - **网络连接不稳定影响下载进度** 编译期间某些外部资源会被拉取下来作为依赖部分集成进来;如果中途断网则可能导致任务卡住无法继续前进。提前确认好互联网状况良好再着手处理这类长期运作型的工作比较好些。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值