找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 21865|回复: 33

padavan编译教程-初学

 火.. [复制链接]
发表于 2018-9-27 13:05 | 显示全部楼层 |阅读模式
本帖最后由 醉老仙 于 2018-11-23 15:36 编辑

在论坛找编译教程思考
自己编译了几个路由的固件都成功了,所以来分享下一些经验

首先是环境的问题,用虚拟机或者物理机安装linux,ubuntu或者debian之类的

安装依赖(从别人那复制的)
  1. sudo apt-get update
  2. sudo apt-get install unzip libtool curl cmake gperf gawk flex bison nano \
  3. git python-docutils gettext automake autopoint texinfo build-essential \
  4. pkg-config zlib1g-dev libgmp3-dev libmpc-dev libmpfr-dev libncurses5-dev libltdl-dev
复制代码

(2018-11-23)最近编译发现https://github.com/hanwckf/rt-n56u 用这个源码会报错就是cmake版本低,于是就卸载旧版本,安装新版本来解决
卸载cmake
apt-get autoremove cmake
官网下载
https://cmake.org/download/
可用wget下载
wget https://github.com/Kitware/CMake ... cmake-3.13.0.tar.gz
解压
tar zxvf cmake-3.13.0.tar.gz
进入cmake目录
cd cmake-3.13.0
执行
./bootstrap
make
make install
版本查询
cmake -version





因为我最早使用老毛子虚拟机刷机的,所以就直接使用了虚拟机内的环境
目前我用过两个源码仓库
https://bitbucket.org/padavan/rt-n56u.git

https://github.com/Linaro1985/padavan-fw.git
使用过程种,第二个更好用,应该是说更适合初学者,因为第一个经常出现编译错误,而作为新手无法处理,不知道有没有人清楚怎么回事

新增(2018-11-23)https://github.com/hanwckf/rt-n56u.git

进入某个目录克隆代码,例如opt
cd /opt
sudo git clone https://bitbucket.org/padavan/rt-n56u.git

等待克隆完毕

进入工具链目录
cd /opt/rt-n56u/toolchain-mipsel
sudo ./clean_sources
sudo ./build_toolchain

注意版本问题,clean_sources也可能是clean_sources.sh

创建工具链完毕,进入源码目录
cd /opt/rt-n56u/trunk
修改.config,这个是编译的配置文件
如果没有你的机型,从configs/templates中复制一个模板,改为.config放在trunk目录下
CPU类型,
CONFIG_PRODUCT=MT7620
路由器配置目录
CONFIG_FIRMWARE_PRODUCT_ID="rt-n56u"
锁定cpu频率
CONFIG_FIRMWARE_CPU_600MHZ=y
cpu休眠,一般不开,前面加#即可
#CONFIG_FIRMWARE_CPU_SLEEP=y
5Gwifi,根据cpu选,有多种,3.0、4.0等等
CONFIG_FIRMWARE_WIFI5_DRIVER=3.0
2.4Gwifi,根据cpu选,有多种,2.7、4.0等等
CONFIG_FIRMWARE_WIFI2_DRIVER=2.7
IPV6
CONFIG_FIRMWARE_ENABLE_IPV6=y
USB
CONFIG_FIRMWARE_ENABLE_USB=y

如果不知道那些功能有用可以都关闭,如果flash大也可以不关闭
语言选项默认
CONFIG_FIRMWARE_INCLUDE_LANG_RU=y
SSH功能
CONFIG_FIRMWARE_INCLUDE_DROPBEAR=y

还有其他的功能,比如硬盘格式支持,Aria2,Transmission,IPTV,QOS,等等,看情况开关


修改versions.inc,版本号
FIRMWARE_ROOTFS_VER=3.9
FIRMWARE_BUILDS_VER=099
FIRMWARE_BUILDS_REV=$(shell git rev-parse --short HEAD 2>/dev/null)
常见的3.4.3.9_099就是这么来的,后面跟的应该是源码版本,可以去掉或者改成别的

进入configs/boards/机型目录,刚才改.config的时候机型是rt-n56u,所以必须有个rt-n56u的机型目录
修改board.mk
##################################################################
# Board PID # Board Name       # PRODUCT # Note
##################################################################
此处是机型,要修改
# rt-n56u     # rt-n56u  # MT7620  #
##################################################################
CFLAGS += -DBOARD_rt-n56u
1表示打开usb,0关闭usb
BOARD_NUM_USB_PORTS=1

修改board.h
型号的修改自己看着改
复位键
BOARD_GPIO_BTN_RESET
电源LED
BOARD_GPIO_LED_POWER
LAN led
BOARD_GPIO_LED_LAN
WAN led
BOARD_GPIO_LED_WAN
USB led
BOARD_GPIO_LED_USB
WIFI led
BOARD_GPIO_LED_WIFI

有就写,没有就不写,有breed可以在breed里测试GPIO

修改kernel-3.4.x.config
cpu型号
CONFIG_RALINK_MT7620=y
内存大小,注意不是flash
CONFIG_RT2880_DRAM_128M=y
CONFIG_RALINK_RAM_SIZE=128
flash大小
CONFIG_RT2880_FLASH_4M=y
不指定大小可以设置为AUTO
CONFIG_RT2880_FLASH_AUTO=y
波特率
CONFIG_RT2880_UART_115200=y
CONFIG_RALINK_UART_BRATE=115200
WAN与LAN,自己测试后填入
CONFIG_RAETH_ESW_PORT_WAN=0
CONFIG_RAETH_ESW_PORT_LAN1=4
CONFIG_RAETH_ESW_PORT_LAN2=1
CONFIG_RAETH_ESW_PORT_LAN3=2
CONFIG_RAETH_ESW_PORT_LAN4=3

进入 trunk/user/shared
修改defaults.h
有后台账号密码与默认ip,默认wifi名等等
无线地区,改为CN
#define DEF_WLAN_2G_CC                "GB"
#define DEF_WLAN_5G_CC                "GB"
时区,改为CST-8
#define DEF_TIMEZONE                "GMT0"
网络时间校准,改为ntp1.aliyun.com
#define DEF_NTP_SERVER0                "pool.ntp.org"

修改defaults.c
找到如下代码,telnet和ssh开关,0为关,1为开
        { "telnetd", "0" },
        { "sshd_enable", "1" },


进入 trunk/user/www/dict

修改EN.header
[Language type]
LANG_EN=简体中文
注意留一行
修改EN.footer,将里面的内容全部复制到RU.dict
或者删掉RU.dict直接改名为RU.dict
使用翻译好的文件替换EN.footer
机型部分替换为ZVMODELVZ,后面留个空格,编译的时候会自动替换为你设置的机型
IP部分替换为你需要的默认ip

进入trunk/user/www
修改Makefile
将echo "LANG_RU=Pусский" >> $(ROMFS_DIR)/www/EN.header
修改为echo "LANG_RU=English" >> $(ROMFS_DIR)/www/EN.header

回到trunk
执行 sudo ./clear_tree.sh 注意源码不同,可能不带.sh 则执行sudo ./clear_tree,下面也这样
执行 sudo ./build_firmware.sh
编译完成后会存放在trunk/images
如果编译过程中提示选择cpu,网卡类型,波特率等等,按提示输入对应选项数字


如有错误请大神指导


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 3恩山币 +3 收起 理由
Missde + 1 一看就是觉得高端、大气、上档次!
高杰空间 + 1 面对这种帖子,我内心复杂,真不知道说什么好……
愿风裁尽尘 + 1 率全体恩山路由党以及党魁向你学习!

查看全部评分

发表于 2018-9-27 13:42 | 显示全部楼层
顶一个。。
回复 支持 反对

使用道具 举报

发表于 2018-9-27 14:07 | 显示全部楼层
楼主   顶一下
回复 支持 反对

使用道具 举报

发表于 2018-9-27 14:42 | 显示全部楼层
顶楼主,支持
回复 支持 反对

使用道具 举报

发表于 2018-9-27 16:10 | 显示全部楼层
make。。。。
回复 支持 反对

使用道具 举报

发表于 2018-9-27 17:48 | 显示全部楼层
老毛子的脚本比你这个简单啊。

点评

那肯定,人家设置好的机型什么的,只需要复制一份配置文件就可以直接编译,但总有需要你自己配置的路由  详情 回复 发表于 2018-9-27 18:33
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-27 18:33 | 显示全部楼层
ago 发表于 2018-9-27 17:48
老毛子的脚本比你这个简单啊。

那肯定,人家设置好的机型什么的,只需要复制一份配置文件就可以直接编译,但总有需要你自己配置的路由

点评

ago
如何让固件兼容nand储存128m芯片?  详情 回复 发表于 2019-12-1 16:22
ago
找复位键就比较难搞。  详情 回复 发表于 2018-9-28 07:56
回复 支持 反对

使用道具 举报

发表于 2018-9-28 07:12 来自手机 | 显示全部楼层
不错,今晚就按照你的经验教程试试,以前就没有成功过
回复 支持 反对

使用道具 举报

发表于 2018-9-28 07:56 | 显示全部楼层
醉老仙 发表于 2018-9-27 18:33
那肯定,人家设置好的机型什么的,只需要复制一份配置文件就可以直接编译,但总有需要你自己配置的路由

找复位键就比较难搞。

点评

有breed就好测  详情 回复 发表于 2018-9-28 09:32
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-9-28 09:32 来自手机 | 显示全部楼层
ago 发表于 2018-9-28 07:56
找复位键就比较难搞。

有breed就好测
回复 支持 反对

使用道具 举报

发表于 2018-9-28 11:15 | 显示全部楼层
这个思考编译一下比较详细谢谢
回复 支持 反对

使用道具 举报

发表于 2018-9-28 11:18 | 显示全部楼层
好贴子,一定要顶。感谢分享。
回复 支持 反对

使用道具 举报

发表于 2018-10-11 21:31 | 显示全部楼层
66666666666666666666666666666666666666
回复 支持 反对

使用道具 举报

发表于 2018-10-12 12:25 来自手机 | 显示全部楼层
顶楼主......
回复 支持 反对

使用道具 举报

发表于 2018-10-14 19:34 | 显示全部楼层
大神能不能写一篇关于breed里获取GPIO值的教程        wps   重置   led之类的

点评

http://www.right.com.cn/forum/thread-161906-1-1.html 看breed的帖子,往下翻就有,变量使用什么的 进入breed以后,telnet 192.168.1.1,然后就进入breed命令行测试,测试方法帖子里都有说明  详情 回复 发表于 2018-10-14 19:57
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-6-16 05:17

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com

快速回复 返回顶部 返回列表