恩山无线论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2754|回复: 47

从源码编译支持玩客云的openwrt

[复制链接]
发表于 2019-8-4 20:28 | 显示全部楼层 |阅读模式
本帖最后由 深蓝基因 于 2019-8-4 20:52 编辑

发现论坛各种大佬都在改造玩客云,就把之前研究玩客云改造openwrt的教程分享一下
废话不多说,按下述步骤从源码编译openwrt:

1.下载源码:
链接: https://pan.baidu.com/s/1jtmox_k9VQ81kS7NhEJQAg 提取码: ta1v

2.然后找台linux主机(建议kali 2.0)
解压源码,我将交叉编译链放在了/opt目录,如果主机空间不够的请自行安排,以免撑爆存储
  1. mkdir amlogic
  2. tar -xvf gnutools.tar.bz2 -C /opt
  3. tar -xvf CodeSourcery.tar.bz2 -C /opt
  4. tar -xvf arc-4.8-amlogic-20130904-r2.tar.bz2 -C /opt
  5. tar -xvf openwrt-2015-04-01-8ccfe85432.tar.gz
  6. tar -xvf packages-2015-04-01-6e8e14cd81.tar.gz
  7. tar -xvf oldpackages-2015-04-01-c18fb70da5.tar.gz
  8. export PATH=$PATH:/opt/gnutools/arc2.3-p0/elf32-4.2.1/bin:/opt/gnutools/arc2.3-p0/uclibc-4.2.1/bin:/opt/arc-4.8-amlogic-20130904-r2/bin:/opt/CodeSourcery/Sourcery_G++_Lite/bin:/opt/CodeSourcery/Sourcery_G++_Lite/arm-none-eabi/bin:/opt/CodeSourcery/Sourcery_G++_Lite/arm-none-linux-gnueabi/bin
复制代码

3.然后配置、编译
  1. cd openwrt
  2. make menucofig
  3. make V=s
复制代码

编译完成后,在bin目录下会有生成的kernel、rootfs、u-boot文件
  1. boot.img
  2. openwrt-meson-m8b-m201-rootfs.tar.gz
  3. openwrt-meson-m8b-m8b_m201_1G-u-boot.bin
复制代码

4.制作sd卡启动系统,插图sd卡,这里假设磁盘为sdb
  1. # 写u-boot
  2. dd if=./openwrt-meson-m8b-m8b_m201_1G-u-boot.bin of=/dev/sdb bs=1 count=442
  3. dd if=./openwrt-meson-m8b-m8b_m201_1G-u-boot.bin of=/dev/sdb bs=512 skip=1 seek=1
  4. # 写kernel和cp根文件系统
  5. fdisk /dev/sdb
  6. mkfs.ext2 /dev/sdb1mount /dev/sdb1 /mnt
  7. cp boot.img /mnt
  8. tar -xvf openwrt-meson-m8b-m201-rootfs.tar.gz -C /mnt
  9. sync
  10. umount /mnt
复制代码


5.接下来就是从sd卡启动外置openwrt了
短接emmc的黄圈两脚,加点,观察ttl输出

微信截图_20190804192142.jpg
当出现,如下图字符串时候,可松开短接,不停按回车即可进入sd卡上的u-boot了
Boot from external device

微信截图_20190804192639.jpg

6.然后可以用printenv bootsdcard命令看看有没有该变量,如果有运行
  1. run bootsdcard
复制代码

就可以启动openwrt
如果没有需要设置一下
  1. setenv bootsdargs "bootargs root=/dev/mmcblk0p1 rw rootfstype=ext2 rootwait init=/sbin/init console=ttyS0,115200n8 no_console_suspend cvbsdrv=${cvbs_drv} vdaccfg=${vdac_config} logo=osd1,loaded,${fb_addr},${outputmode},full hdmimode=${hdmimode} cvbsmode=${cvbsmode} hdmitx=${hdmimode}"
  2. setenv bootsdcard "echo Booting ...;run bootsdargs; mmcinfo;ext2load mmc 0 ${loadaddr} boot.img;bootm"
复制代码


然后再运行

至此就进入了openwrt系统
微信截图_20190804193453.png

7.备份原系统
原系统分部有用的主要是bootloader、kernel、boot、system分区,backup及app0、app1、data都是升级时候的备份缓存分区
  1. dd if=/dev/mmcblk1 of=/onecloud.img bs=1M
复制代码
ps:我看到wz1024备份mmcblk1boot0、mmcblk1boot1分区是没用的,虽然写入BOOT Area Partition是可以做成不死u-boot(原理是),但是迅雷貌似没这么做
BOOT Area Partition 1 & 2里都空的,所以不用浪费时间

8.刷bootloader
由于我们可以甩开板载的emmc系统了,所以玩客云砖了也可以从外部启动恢复,前提是做好第7步的备份
这样可以将高版本屏蔽命令的u-boot降级
  1. dd if=u-boot.bin of=/dev/mmcblk1
复制代码

当然也可以按第4步将自己编译的u-boot刷进去,不过led灯可能不亮,我没试

尚存问题:
板载网卡工作不正常,可以起动,但是获取不了ip
按照@jocover 的patch修改了dtb文件,rtl8211f PHY驱动的代码检查了,换上迅雷系统原带的dtb文件也不行,源代码都有了,希望有大佬可以搞定
微信截图_20190804200743.png

ps:迅雷原装内核是3.10.108的,试着移植了@jocover 的armbian内核,但是和armbian启动的效果一样,都是卡在了,之后乱码,不知道是不是和emmc、sd启动有关
[    3.580309@1] amlogic: Kernel Thermal management registered
[    3.585738@1] amlogic-thermal aml_thermal: amlogic thermal probe done

希望有大佬可以搞定

我编译的版本自取
游客,如果您要查看本帖隐藏内容请回复





评分

参与人数 2恩山币 +2 收起 理由
long1983 + 1 不错不错,这个思路应该是可以root的
sunjun1989 + 1 强大的恩山!(以下重复1万次)

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-8-4 21:00 | 显示全部楼层
我觉得我越来越漂了,这么复杂的我竟然打开看了,然而还是没看懂。
来自安卓客户端来自安卓客户端
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-8-5 08:17 | 显示全部楼层
谢谢分享
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-8-5 09:01 来自手机 | 显示全部楼层
大哥的帖,全是经典,必须得顶
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-8-5 16:01 | 显示全部楼层
不错。 。。。。
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-8-5 21:02 | 显示全部楼层
本帖最后由 jocover 于 2019-8-5 21:04 编辑

这个补丁你看看https://gitee.com/jiangwei0402/LibreELEC.tv/blob/f4f0215b36870b5479513c88dd99bd56fd35d33b/projects/S805/patches/linux/011-linux-fix-eth-MAC.patch
原来的dts
  1. ethmac: ethernet@0xc9410000{
  2. compatible = "amlogic,meson8b-rmii-dwmac", "snps,dwmac";
  3. reg = <0xc9410000 0x10000
  4. 0xc1108108 0x4>;
  5. interrupts = <0 8 1>;
  6. interrupt-names = "macirq";
  7. clocks = "clk81";
  8. clock-names = "stmmaceth";
  9. };
复制代码
千兆改成meson8m2-rgmii-dwmac或者meson8b-rgmii-dwmac(没试过)
  1. ethmac: ethernet@0xc9410000{
  2. compatible = "amlogic,meson8m2-rgmii-dwmac", "snps,dwmac";
  3. reg = <0xc9410000 0x10000
  4. 0xc1108108 0x4>;
  5. interrupts = <0 8 1>;
  6. interrupt-names = "macirq";
  7. clocks = "clk81";
  8. clock-names = "stmmaceth";
  9. };
  10. {
复制代码


我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-8-6 08:56 | 显示全部楼层
编译出错呀楼主。。好像报什么feed 25

点评

之前执行  详情 回复 发表于 2019-8-7 09:17
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-8-6 11:13 | 显示全部楼层
谢谢分享
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-8-6 18:03 | 显示全部楼层
本帖最后由 jec123456 于 2019-8-6 18:06 编辑

楼主您的板子不是玩客云3的吧 和我手上的ttl的位置也不同
timg.jpg

点评

好像是的,我的板子上写v1.2  详情 回复 发表于 2019-8-7 09:19
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-8-6 18:07 | 显示全部楼层
请问 这款 应该  短接emmc的哪些地方

点评

详情看这个帖子 https://www.right.com.cn/forum/thread-837057-1-1.html 只是我的机器没办法按他的步骤来。 我的需要加电同时插USB。  详情 回复 发表于 2019-8-7 09:45
百度TTL转usb接线,然后连上终端,插电同时插上USB,狂按回车,速度很快3秒内要按回车。 可能需要先进设备管理器观察一次看看是com多少再选择终端的com口。  详情 回复 发表于 2019-8-7 09:43
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-8-6 23:00 | 显示全部楼层
真能玩,况且这给无法root的提供个思路,挂载emmc可以直接把原系统root掉了
我的恩山、我的无线 The best wifi forum is right here.
发表于 2019-8-7 00:20 | 显示全部楼层
无法启动是怎么回事,,能详细说明下怎么制作SD卡启动吗

Booting ...
Unknown command 'bootargs' - try 'help'
Device: SDIO Port B
Manufacturer ID: 0
OEM: 0
Name: Tran Speed: 20000000
Rd Block Len: 512
SD version 2.0
High Capacity: Yes
Capacity: 15728640000
Boot Part Size: 0
Bus Width: 4-bit
** Can't read partition table on 0:0 **
** Bad partition 1 **
## ANDROID Format IMAGE
## Booting kernel from Legacy Image at 12000000 ...
   Image Name:   Linux-3.10.33
   Image Type:   ARM Linux Kernel Image (gzip compressed)
   Data Size:    6157838 Bytes = 5.9 MiB
   Load Address: 00208000
   Entry Point:  00208000
   Verifying Checksum ... Bad Data CRC
ERROR: can't get kernel image!

点评

参见第4步,你这个日志说u-boot启动成功,但是内核没从sd启动  详情 回复 发表于 2019-8-7 09:22
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2019-8-7 09:17 | 显示全部楼层
ClassHuang 发表于 2019-8-6 08:56
编译出错呀楼主。。好像报什么feed 25
make menucofig
make V=s

之前执行

  1. ./scripts/feeds update -a
  2. ./scripts/feeds install -a
复制代码
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2019-8-7 09:19 | 显示全部楼层
jec123456 发表于 2019-8-6 18:03
楼主您的板子不是玩客云3的吧 和我手上的ttl的位置也不同

好像是的,我的板子上写v1.2
我的恩山、我的无线 The best wifi forum is right here.
 楼主| 发表于 2019-8-7 09:22 | 显示全部楼层
ClassHuang 发表于 2019-8-7 00:20
无法启动是怎么回事,,能详细说明下怎么制作SD卡启动吗

Booting ...

参见第4步,你这个日志说u-boot启动成功,但是内核没从sd启动

点评

第四步的 fdisk /dev/sdb 会弹出 【 Welcome to fdisk (util-linux 2.33.1). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command  详情 回复 发表于 2019-8-7 09:36
我的恩山、我的无线 The best wifi forum is right here.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2019-9-17 01:00

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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