找回密码
 立即注册
img_loading
智能检测中

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888广告投放联系QQ68610888
查看: 6085|回复: 4

编译兼容CHAOS CALMER在线版本的优酷路由宝固件

[复制链接]
发表于 2016-1-22 21:18 | 显示全部楼层 |阅读模式
本帖最后由 dato 于 2016-2-19 21:14 编辑

花了3天时间终于搞定这事,以前都爱好用ImageBuilder生成自定义版本。据说MT7620默认支持24bit(3byte)的spi地址模式,而要支持32M以上的spi flash,则必须切换到32bit(4byte)地址模式.在soft reset的时候,spi停留在了32bit模式,没有切换回默认的24bit模式,导致reset后,MT7620在默认的24bit模式,无法和32bit模式的spi通讯,系统死机。所以这次非得从源码开始编译,还得添加路由宝的配置文件,想到上次编译3天3夜各种错心里都有点后怕。

1.安装openwrt编译环境
系统使用的是debian 7 64位,安装下面的包

apt-get install -y subversion make gcc g++ libncurses5-dev libghc-zlib-dev libreadline-dev libssl-dev gawk bzip2 patch xz-utils sudo
apt-get install -y binutils flex bison autoconf gettext texinfo unzip sharutils ncurses-term zlib1g-dev asciidoc libz-dev
apt-get install -y gettext git
apt-get install libncurses5-dev zlib1g-dev gawk flex libssl-dev sdcc-nf

2.获得和在线版本相同的源码 CHAOS CALMER (15.05, r46767)

mkdir /openwrt;cd /openwrt
svn co --revision=46767 svn://svn.openwrt.org/openwrt/trunk/  #下载官网的源码
#git clone git://git.openwrt.org/15.05/openwrt.git

#不要操作这两步,上次3天3夜都不成功就是因为编译了大量的包,越是多各种依赖问题越是严重
#./scripts/feeds update -a     #更新所有软件包
#./scripts/feeds install -a    #安装所有软件包

#更新luci
vi /openwrt/trunk/feeds.conf.default
#修改成下面的内容
src-git luci https://github.com/openwrt/luci.git;luci-0.12

cd /openwrt/trunk
scripts/feeds update luci
scripts/feeds install -a -p luci

#导入配置模板
wget -O .config https://downloads.openwrt.org/chaos_calmer/15.05/ramips/mt7620/config.diff
#根据 add support for Youku YK1 覆盖相应文件
补丁包文件
cp -a target /openwrt/trunk #覆盖有关 路由宝 设备的描述文件
#cd trunk
#rm -rf tmp
touch target/linux/*/Makefile #让 路由宝的描述 出现在make menuconfig

make defconfig  #会根据本地package添加新选项到.config

make menuconfig #进入定制界面 选择Target Profile (YOUKU-YK1)
#重要:编译器指定uClibc,和在线版本一致
make menuconfig 中的 Advanced configuration options (for developers) > Toolchain Options (NEW)> C Library >C Library implementation (Use musl) > Use uClibc

#看是否包含这些选项
cat .config|grep luci
cat .config|grep YOUKU
cat .config|grep uClibc

make prereq  

#定义本地下载源,如果以前已经下载过相应文件
#CONFIG_LOCALMIRROR="file:///openwrt/dl"

make V=s #漫长的等待,可能vps cpu受限,每次都差不多要4小时。。。

回头一看,怎么好像没什么内容好写,总算加深了一次编译过程的认识。


资源下载
请大家注意,这里的包目前有问题,仅供测试用途,测试硬件是 YK-L1 黑色 32M 版本,可能有部分是16M的千万别刷

1,指示灯不亮
2,刷新时必须通过breed进行更新,不能通过web页面
3,更新完成以后也不能通过web页面更新其它固件,必须通过breed,可能情况还是补丁或者哪里还有坑,发现用imagebuild生成的 联想 y1 web更新部分都正常的
如果没有openwrt备份经验建议别刷这个问题版本。
The uploaded image file does not contain a supported format. Make sure that you choose the generic image format for your platform.

所以这仅仅是个测试固件,希望你有一定解决问题的能力,新手千万别弄,刷挂了别怪我。。。


注意一定要先刷breed

#测试的话下载这个就够了。
http://144.168.58.60/openwrt-15.05-ramips-mt7620-youku-yk1-squashfs-sysupgrade.bin
make image PROFILE=YOUKU-YK1 PACKAGES="wipefs kmod-usb-ohci kmod-usb2 kmod-ledtrig-usbdev" FILES=files/


http://144.168.58.60/OpenWrt-ImageBuilder-15.05-ramips-mt7620.Linux-x86_64.tar.bz2
http://144.168.58.60/ykpatch.tar.gz  #相关补丁包

md5sum较验软件下载 http://www.nirsoft.net/utils/hash_my_files.html
2f035f846dd2f5c1bdef5b95f0c173a9 openwrt-15.05-ramips-mt7620-youku-yk1-squashfs-sysupgrade.bin
21e40a78e468e6d51b9e8a875157874e  OpenWrt-ImageBuilder-15.05-ramips-mt7620.Linux-x86_64.tar.bz2
88cab2de7e3d51ffa848fe31eab135b5  ykpatch.tar.gz

trunk/target/linux/ramips

mt7620/profiles/youku.mk
base-files/etc/board.d/01_leds
base-files/etc/board.d/02_network
base-files/lib/ramips.sh
base-files/lib/upgrade/platform.sh
dts/YOUKU-YK1.dts
image/Makefile

其它问题
1.目前还没解决led指示灯


参考文档

感谢各位大神的补丁文件,让菜鸟玩openwrt才有乐趣,谢谢大家的无私提供。

让MT7620完美支持32M SPI Flash(W25Q256) — 兼谈设备驱动中的shutdown方法
http://blog.csdn.net/manfeel/article/details/43530817

针对3.18.20的补丁 /openwrt/trunk/target/linux/ramips/patches-3.18/0064-reset-m25p80-when-shutdown.patch
  1. --- a/drivers/mtd/devices/m25p80.c
  2. +++ b/drivers/mtd/devices/m25p80.c
  3. @@ -256,6 +256,16 @@
  4. {
  5.         struct m25p     *flash = spi_get_drvdata(spi);

  6. +       if ((&flash->spi_nor)->addr_width > 3) {
  7. +       printk(KERN_INFO "m25p80: exit 4-byte address mode\n");
  8. +       flash->command[0] = SPINOR_OP_EX4B;  // exit 4-byte address mode: 0xe9
  9. +       spi_write(flash->spi, flash->command, 1);
  10. +       flash->command[0] = 0x66;  // enable reset
  11. +       spi_write(flash->spi, flash->command, 1);
  12. +       flash->command[0] = 0x99;  // reset
  13. +       spi_write(flash->spi, flash->command, 1);
  14. +       }
  15. +
  16.         /* Clean up MTD stuff. */
  17.         return mtd_device_unregister(&flash->mtd);
  18. }
  19. @@ -319,6 +329,7 @@
  20.         .id_table       = m25p_ids,
  21.         .probe  = m25p_probe,
  22.         .remove = m25p_remove,
  23. +       .shutdown = m25p_remove, // add shutdown method to reset spi flash

  24.         /* REVISIT: many of these chips have deep power-down modes, which
  25.          * should clearly be entered on suspend() to minimize power use.
复制代码


[OpenWrt-Devel] [PATCH] ramips: reset m25p80 when shutdown
http://patchwork.ozlabs.org/patch/545092/
https://www.mail-archive.com/openwrt-devel@lists.openwrt.org/msg35104.html

Adding new device support
https://wiki.openwrt.org/doc/devel/add.new.device

add support for Youku YK1
https://dev.openwrt.org/changeset/47617

[12.7更新ufsd]优酷路由宝openwrt.cc版固件[32M+128M]S-S多播等
https://www.right.com.cn/forum/thread-178330-6-1.html

为路由宝OPENWRT CC版本添加tf卡驱动支持
https://www.right.com.cn/forum/thread-178218-1-1.html

Luci feed
https://wiki.openwrt.org/doc/howto/buildroot.exigence
https://github.com/openwrt/luci/wiki/Download


* 2016年01月22日星期五
- 生成文档

只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应。胡乱输入灌水等操作将会被封禁ID。
 楼主| 发表于 2016-1-22 21:20 | 显示全部楼层
本帖最后由 dato 于 2016-1-22 21:54 编辑

占楼啦。。。


不能通过web更新固件


本帖子中包含更多资源

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

×
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2016-9-24 23:47 | 显示全部楼层
请问楼主LED灯问题解决了吗
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-27 06:52 来自手机 | 显示全部楼层
openwrt提交的补丁关于led的定义是正确的。当时不懂imagebuider的配置文件,导致使用imagebuider合成固件时调用的是openwrt在线的包而不是自己编译的包才出现led不正确的问题。这篇文档已经过时,官方已经不使用svn获得源源,自己去搜一下git版本控制。

点评

明白了,谢谢楼主分享经验。  详情 回复 发表于 2016-10-19 16:34
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

发表于 2016-10-19 16:34 来自手机 | 显示全部楼层
dato 发表于 2016-9-27 06:52
openwrt提交的补丁关于led的定义是正确的。当时不懂imagebuider的配置文件,导致使用imagebuider合成固件时 ...

明白了,谢谢楼主分享经验。
只谈技术、莫论政事!(点击见详情) | 互相尊重、友善交流、切勿过度反应。胡乱输入灌水等操作将会被封禁ID。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

欢迎大家光临恩山无线论坛

只谈技术、莫论政事!切勿转播谣言!为了你也为了他人。
只谈技术、莫论政事!(点击见详情) 切记不要随意传播谣言,把自己的日子过安稳了就行,为了自己好也为了大家好。 恩山无线论坛欢迎您的来访,请互相尊重、友善交流,建议保持一颗平常心看待网友的评论,切勿过度反应。

查看 »

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

GMT+8, 2025-7-10 18:25

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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

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