|
本帖最后由 深蓝基因 于 2019-8-4 20:52 编辑
发现论坛各种大佬都在改造玩客云,就把之前研究玩客云改造openwrt的教程分享一下
废话不多说,按下述步骤从源码编译openwrt:
1.下载源码:
链接: https://pan.baidu.com/s/1jtmox_k9VQ81kS7NhEJQAg 提取码: ta1v
2.然后找台linux主机(建议kali 2.0)
解压源码,我将交叉编译链放在了/opt目录,如果主机空间不够的请自行安排,以免撑爆存储
- mkdir amlogic
- tar -xvf gnutools.tar.bz2 -C /opt
- tar -xvf CodeSourcery.tar.bz2 -C /opt
- tar -xvf arc-4.8-amlogic-20130904-r2.tar.bz2 -C /opt
- tar -xvf openwrt-2015-04-01-8ccfe85432.tar.gz
- tar -xvf packages-2015-04-01-6e8e14cd81.tar.gz
- tar -xvf oldpackages-2015-04-01-c18fb70da5.tar.gz
- 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.然后配置、编译
- cd openwrt
- make menucofig
- make V=s
复制代码
编译完成后,在bin目录下会有生成的kernel、rootfs、u-boot文件
- boot.img
- openwrt-meson-m8b-m201-rootfs.tar.gz
- openwrt-meson-m8b-m8b_m201_1G-u-boot.bin
复制代码
4.制作sd卡启动系统,插图sd卡,这里假设磁盘为sdb
- # 写u-boot
- dd if=./openwrt-meson-m8b-m8b_m201_1G-u-boot.bin of=/dev/sdb bs=1 count=442
- dd if=./openwrt-meson-m8b-m8b_m201_1G-u-boot.bin of=/dev/sdb bs=512 skip=1 seek=1
- # 写kernel和cp根文件系统
- fdisk /dev/sdb
- mkfs.ext2 /dev/sdb1mount /dev/sdb1 /mnt
- cp boot.img /mnt
- tar -xvf openwrt-meson-m8b-m201-rootfs.tar.gz -C /mnt
- sync
- umount /mnt
复制代码
5.接下来就是从sd卡启动外置openwrt了
短接emmc的黄圈两脚,加点,观察ttl输出
当出现,如下图字符串时候,可松开短接,不停按回车即可进入sd卡上的u-boot了
Boot from external device
6.然后可以用printenv bootsdcard命令看看有没有该变量,如果有运行
就可以启动openwrt
如果没有需要设置一下
- 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}"
- setenv bootsdcard "echo Booting ...;run bootsdargs; mmcinfo;ext2load mmc 0 ${loadaddr} boot.img;bootm"
复制代码
然后再运行
至此就进入了openwrt系统
7.备份原系统
原系统分部有用的主要是bootloader、kernel、boot、system分区,backup及app0、app1、data都是升级时候的备份缓存分区
- 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降级
- dd if=u-boot.bin of=/dev/mmcblk1
复制代码
当然也可以按第4步将自己编译的u-boot刷进去,不过led灯可能不亮,我没试
尚存问题:
板载网卡工作不正常,可以起动,但是获取不了ip
按照@jocover 的patch修改了dtb文件,rtl8211f PHY驱动的代码检查了,换上迅雷系统原带的dtb文件也不行,源代码都有了,希望有大佬可以搞定
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
希望有大佬可以搞定
我编译的版本自取
链接: https://pan.baidu.com/s/1iF1P63c1_RiJf2i3ASXnsg 提取码: cyy5
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
评分
-
查看全部评分
|