齐心NAS简介及刷机
- 齐心NAS(SY-100)简介
- 出厂系统简介
- 刷机方案简介
- 刷机方案1(不拆机U盘玩转istore、群晖和原厂系统多启动)
- 刷机方案2(硬改spi方案)
- 群晖系统(spi和U盘通用)启动后优化
- 其他进阶教程(没有变砖不用看)
齐心NAS简介及刷机 Link to heading
齐心NAS(SY-100)简介 Link to heading
- 没错就是做文具的那个齐心,这个产品在官网仍有简介,显示已下架,网址显示是b2b产品
- 简单看下官方简介
- 其它需要说明的 经测试,齐心的官方app已经不能使用。 经拆机显示,内部存储方案为nand,使用mx30LF2G18AC的256M芯片,内存为2颗K4B4G1646E 512M DDR3芯片,总内存1GB 做工和外观真心不错,硬盘架结合了按压弹出和热插拔的设计,螺丝孔兼容3.5寸硬盘和2.5寸硬盘,接触硬盘部分还有硅胶防震机制
出厂系统简介 Link to heading
-
原机自带的是基于realtek sdk的openwrt,不出意外的意外就是内核4.4,op版本15.05,root密码是1234
-
原系统下,支持raid管理,支持transsmition下载,支持samba,支持ftp等常用nas功能。
-
安装软件,开启ssh 原系统删除了ssh,并且是英文,我们来开启op15的软件安装 1.选择system-software菜单,点击configuration选项卡,原来是这样的
2.在configuration填入
arch all 100 arch rtd1295 200 arch arm64 300
在feeds里填入
src/gz chaos_calmer_base https://archive.openwrt.org/chaos_calmer/15.05/arm64/generic/packages/base src/gz chaos_calmer_luci https://archive.openwrt.org/chaos_calmer/15.05/arm64/generic/packages/luci src/gz chaos_calmer_management https://archive.openwrt.org/chaos_calmer/15.05/arm64/generic/packages/management src/gz chaos_calmer_packages https://archive.openwrt.org/chaos_calmer/15.05/arm64/generic/packages/packages src/gz chaos_calmer_routing https://archive.openwrt.org/chaos_calmer/15.05/arm64/generic/packages/routing src/gz chaos_calmer_telephony https://archive.openwrt.org/chaos_calmer/15.05/arm64/generic/packages/telephony
3.改完后是这样的
4.点击update list ,可以安装部分软件了,比如dropbear,luci*zh-cn语言包
刷机方案简介 Link to heading
- 由于nand存储方案限制,目前基于rtd1296的芝杜和istoreos都是使用emmc存储方案,硬件限制无法刷机。如果硬改emmc,则可以通过简单修改dtb刷入istoreos,同时主板上有hdmi焊盘,如果补齐hdmi接口和相关电路,理论也可以刷入芝杜。由于涉及硬改复杂,不在本次刷机探讨范围。
- 刷群晖,这个机器的硬件配置和外观最适合nas系统,也是本次探讨的主要内容
- 不拆机器,利用ssh修改原厂uboot的env。该env经过我设计和测试,就是能启动U盘群晖就启动群晖,如果U盘不存在就启动原厂系统,从而实现不拆及双系统。启动群晖的原理是,在一个有spi的机器上进行正常安装后重启时,可将硬盘文件和spi引导文件备份出来,分别写入U盘和硬盘,并用boot引导U盘的群晖引导(对应spi备份),配合硬盘备份,能够使群晖系统认为已经完成安装,从而实现群晖系统启动。唯一的缺陷是无法更新系统,因为在更新系统中必须要写入spi,而不硬改的机器没有spi。具体文件和刷机流程请参见刷机方案1
- 直接硬改,主板上有空spi焊盘,焊接群晖支持的spi flash型号,建议为w25q64,然后改动启动电阻,使soc直接从spi启动。改完后,所有启动流程与白裙一致,因而也可以升级,如果sn和mac正确,就可以qc。具体方法和流程请参考刷机方案2. 3.上述两个方案启动不通系统的原理都是基于uboot,设计不同uboot启动命令而已,spi boot方案比原厂boot多了lzma功能和spi读写功能,因而可以启动spi系统,所有boot都支持启动U盘istore、群晖,nand铁威马。
刷机方案1(不拆机U盘玩转istore、群晖和原厂系统多启动) Link to heading
1.下载网盘中不拆机文件夹中的comix-istore-ds218.img.gz,文件地址:链接:https://pan.baidu.com/s/1Bw-CecPLjwOThpmdwuna8A?pwd=5hm5 提取码:5hm5
使用balancetcher将这个文件写入 U盘(大于4G),无需解压写入,软件支持自动解压并写入
2.将写好的U盘插入机器,并确保没有硬盘插入,开机且按照原厂教程安装dropbear并ssh登录
3.将U盘中支持多启动的factory写入写入nand(已经安装过原群晖启动的,如果需要多启动,直接与新用户一样更新factory),并验证
写入命令为
dd if=/mnt/sda1/factory.bin of=/dev/mtdblock0 bs=$((0x20000)) seek=38 count=4 conv=notrunc
root@OpenWrt:# dd if=/mnt/sda1/factory.bin of=/dev/mtdblock0 bs=$((0x20000)) seek=38 count=4 conv=notrunc
4+0 records in
4+0 records out
524288 bytes (524 kB) copied, 0.176786 s, 3.0 MB/s
使用factory load和list命令验证,可以看到boot_syno,syno_bootargs,boot_istore,bootcmd变为如下所示,先启动U盘istore,失败后启动U盘群晖,再失败后启动原厂op
root@OpenWrt# factory load
argc = 2
argv = factory load
root@OpenWrt# factory list
……前面省略
boot_syno=fatload usb 0 $audio_loadaddr /ds218/bluecore.audio;fatload usb 0 $fdt_loadaddr /ds218/comix4ds218.dtb;fatload usb 0 $rootfs_loadaddr /ds218/rd.bin;ping 192.168.1.254;go all;
syno_bootargs=setenv bootargs "ip=off console=ttyS0,115200 root=/dev/md0 rw syno_castrated_xhc=xhci-hcd.5.auto@1 syno_usb_vbus_gpio=102@xhci-hcd.2.auto@0,19@xhci-hcd.5.auto@0,16@xhci-hcd.8.auto@0 syno_hw_version=DS218 hd_power_on_seq=2 ihd_num=2 phys_memsize=1024 netif_num=1 audio_version=1012363 syno_fw_version=M.506 sn=1830QEN339808 mac1=0011328CE51F"
boot_istore=fatload usb 0 $audio_loadaddr /istore/bluecore.audio;fatload usb 0 $fdt_loadaddr /istore/comix-rtd-129x.dtb;go all;
bootcmd=usb start;if fatload usb 0 $kernel_loadaddr /istore/rtd129x.image;then run boot_istore;else if fatload usb 0 $kernel_loadaddr /ds218/Image;then run syno_bootargs;run boot_syno;fi;fi;bootr;
……后面省略
===============
4.第三部验证成功的不用进行该步骤,只有factroy list验证发现这四个变量缺少,可能是刚好存储factory的nand位置有坏块,需要下面步骤。 同时,上述方案仅适用于原厂boot,因为写入的是nand存储,可以通过拆机,连接ttl,直接进uboot手动设置这四个变量,uboot保存时会跳过nand坏块 手动命令方式设置多启动通用nand原厂boot、spiboot,也就是改了spi的机器同样可以使用下面命令设置从U盘启动istore和群晖。 第一步是按照主板图连接ttl,用串口软件打开,设置为115200,8n1 第二步插电同时按按esc中断uboot 第三步手动设置env,输入命令前先按2个回车,因为首条命令总是错误
Checking default environment
Hit Esc or Tab key to enter console mode or rescue linux: 0
——————can’t find tmp/factory/recovery
Press Esc Key
Enter console mode, disable watchdog …
Realtek>
nknown command ‘ry ‘help’
Realtek>
Realtek> setenv boot_syno ‘fatload usb 0 $audio_loadaddr /ds218/bluecore.audio;fatload usb 0 $fdt_loadaddr /ds218/comix4ds218.dtb;fatload usb 0 $rootfs_loadaddr /ds218/rd.bin;ping 192.168.1.254;go all;’
Realtek> setenv syno_bootargs ‘setenv bootargs “ip=off console=ttyS0,115200 root=/dev/md0 rw syno_castrated_xhc=xhci-hcd.5.auto@1 syno_usb_vbus_gpio=102@xhci-hcd.2.auto@0,19@xhci-hcd.5.auto@0,16@xhci-hcd.8.auto@0 syno_hw_version=DS218 hd_power_on_seq=2 ihd_num=2 phys_memsize=1024 netif_num=1 audio_version=1012363 syno_fw_version=M.506 sn=1830QEN339808 mac1=0011328CE51F”‘
Realtek> setenv boot_istore ‘fatload usb 0 $audio_loadaddr /istore/bluecore.audio;fatload usb 0 $fdt_loadaddr /istore/comix-rtd-129x.dtb;go all;’
Realtek> setenv bootcmd ‘usb start;if fatload usb 0 $kernel_loadaddr /istore/rtd129x.image;then run boot_istore;else if fatload usb 0 $kernel_loadaddr /ds218/Image;then run syno_bootargs;run boot_syno;fi;fi;bootr;’
Realtek> saveenv
Saving Environment to FACTORY…
[ENV] Writing to Factory…
[FAC] factory_save: NAND
[FAC] Save to nand OK
done
可以用print验证,还是那四条必须有
5.启动istore 直接重启机器,U盘在机器上即可进入istore 由于镜像按最小原则设置,默认U盘镜像的overlay可写分区只有2G,可以使用op扩容命令对第三分区进行扩容 第一步,系统安装好后,在主页中,进入“终端”
在“终端”里登录root账号,输入密码
第三步,执行“parted /dev/sdx"命令,其中sdx要改成U盘的盘符
第四步,上面的3就是软件包所在的分区,也就是需要扩容的分区。执行命令“resizepart”,”Partition number? “处输入“3”,然后是“yes"。”End? ? “后面输入需要扩容的大小,也可以直接输入-1MiB,代表使用整个U盘
第五步,输入quit退出
第六步,输入resize2fs -p /dev/sdx3,执行resize2fs对文件系统进行扩容
重启后可以看到可以使用分区大小变成U盘实际大小,愉快的使用docker等功能
6.启动群晖
- 下载网盘中不拆机文件夹中的ds218hdd.bin.gz,不用解压,再次使用balancetcher直接写入要使用的群晖硬盘中
(linux下可以直接dd命令还原
gzip -dc ds218hdd.bin.gz | dd of=/dev/sda
,win用户请忽略本括号) - 将引导U盘插入电脑,打开第一个盘符,任意改名istore文件夹
插上U盘和硬盘,开机即可进入群晖(需要说明的是首次启动可能需要10分钟,耐心等6分钟以后再访问)正常会进入首次启动界面
如果你进入了找不到硬盘界面,请换个曹位再通电。
7.三个系统切换总结为,不插U盘启动原厂;插入U盘就启动istore;如果将istore文件夹改名,就启动群晖。需要说明的是由于没有拆机无法刷uboot,原机器的uboot和群晖系统均不支持pwm,所以,这种方案的风扇是全速的,并且不可调。
刷机方案2(硬改spi方案) Link to heading
拆机流程 Link to heading
该需要拆机,机器做工很好,很难拆,附上拆机方案,仍需要一定耐心和动手能力
- 拧下后面板的四个六角螺丝,取下后面板
- 拧开左右侧盖固定螺丝
- 取下远离主板侧盖(前视右侧盖板,后视左侧盖板),这个盖板只有两个卡笋在如图位置,需要用薄一点的撬片往上撬,卡笋松开后能听到声音,然后向后面板方向推,即可取下该侧板
- 拧下硬盘笼与另一侧盖板的固定螺丝,连同前面板、主板、硬盘笼一同从另一侧盖板中取出
主义取下螺丝后,前面板(包括主板和硬盘笼)与该侧板还有一处卡笋,需要边慢慢用力把侧板向两侧掰,一遍适当用力分离前面板和侧板
- 硬盘笼取出是这个样子,然后主板固定螺丝拧下,就能取下主板
- 主板图
TTL接法(非必须,可用于折腾,研究,救砖) Link to heading
1.通过ttl(usb转uart,3.3v)连接机器,并将ttl插入电脑,使用设备管理器查看串口号
2.使用串口软件(包括不限于putty,Xshell等)演示以putty为例,波特率115200,8N1
3.主板上电开机(注意,如果你主板没有接开关面板将会直接关机,请连接前面板通电)会直接进入openwrt后台,回车激活控制台
定制固件 Link to heading
- 准备spi芯片,w25q64fv或者w25q64jv,用编程器配合软件读取芯片的uid
最简单的编程器如下图,ch341可以用,某宝带编程夹子20左右
连接好编程器和芯片(也可以先焊接)使用编程器软件(链接:https://pan.baidu.com/s/1obRcF68Cvojy42t4ujLADg?pwd=ch39 提取码:ch39)直接读取uid 运行编程器工具
选择工具脚本目录下的read_w25_UID.pas
选择区段
点击运行,在下面的窗口能看到uid
- 提供uid给稍息,制作spi固件
- 将固件用编程器软件写入
打开编程对应的编程软件,基本步骤为识别-擦除-查空-编程
硬改流程 Link to heading
- 按照拆机主板图将上述spi芯片焊接到主板
- 修改启动顺序,使芯片从spi启动
完成上述硬改,即可启动群晖
硬改方案启动其它系统 Link to heading
spi方案自动刷入nand铁威马并启动nand铁威马 Link to heading
1.将afw,comix4tos.dtb,initrd,kernel,shaoxi_rtd129x_boot.scr五个文件放入fat32单分区的U盘 前四个文件与不是spi引导方案通用,见群文件 nandtos_shaoxi_rtd129x_boot.zip解压并重命名为shaoxi_rtd129x_boot.scr 2.插入U盘,按住reset,然后通电,待电源指示灯闪烁即可松开reset 3.机器会自动刷nand,自动重启,等待3到5分钟即可启动铁威马 需要注意的是,以上U盘操作只需要一次,刷入完成后不再需要U盘。请及时拔掉。 其他:启动tos后U盘不好用,是由于铁威马的led驱动时写死的gpio,dtb改不了,而铁威马的led驱动与齐心的U盘供电刚好有冲突,解决方案,ssh登录到铁威马后台,运行rm /lib/modules/4.4.18-g8bcbd8a-dirty/led_drv_rtd1296.ko,删除这个led指示灯驱动即可。
spi方案启动U盘istore Link to heading
可选方案1:按照刷机方案一的第4步,手动命令开始,后面步骤通用spi方案和原厂方案。 可选方案2:
spi方案恢复启动群晖 Link to heading
不管spi方案改了启动nand铁威马还是U盘istore,都可以脚本恢复默认启动群晖 只需要把default-shaoxi_rtd129x_boot.zip解压获得default_shaoxi_rtd129x_boot.scr,将其改名为shaoxi_rtd129x_boot.scr,放入U盘,按住reset,然后通电,待电源指示灯闪烁即可松开reset,会自动恢复启动spi群晖
群晖系统(spi和U盘通用)启动后优化 Link to heading
1.由于风扇的pwm引脚在常电区,且群晖不支持pwm,为了保证风扇pwm可调,我在uboot中设置转速为40%,群晖系统不再进行管理,所以默认关机也不会关闭风扇,可以配合脚本实现关机自动关风扇。
控制面板-任务计划-新增-触发的任务-用户自定义的脚本
在事件中选择关机,用户选择root
关机脚本中填入
echo 123 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio123/direction
echo 0 > /sys/class/gpio/gpio123/value
2.优化关闭不必要功能,可选,不影响使用
在群晖控制面板开启ssh
使用ssh软件登录群晖,并切换到root用户
sudo -i
执行下列命令,主要是重定位日志到内存,关闭蜂鸣器、风扇、led等群晖靠mcu控制的功能,开启网络唤醒,关闭磁盘兼容性检查,根据实际需要运行
sed -i 's/\/var\/log\/scemd.log/\/tmp\/scemd.log/g' /etc.defaults/syslog-ng/patterndb.d/scemd.conf
sed -i 's/support_buzzer="yes"/support_buzzer="no"/g' /etc.defaults/synoinfo.conf
sed -i 's/support_fan="yes"/support_fan="no"/g' /etc.defaults/synoinfo.conf
sed -i 's/enable_fan_debug="0x0"/enable_fan_debug="0x1"/g' /etc.defaults/synoinfo.conf
sed -i 's/support_fan_adjust_dual_mode="yes"/support_fan_adjust_dual_mode="no"/g' /etc.defaults/synoinfo.conf
sed -i 's/support_wol="no"/support_wol="yes"/g' /etc.defaults/synoinfo.conf
sed -i 's/support_led_behavior_v2="yes"/support_led_behavior_v2="no"/g' /etc.defaults/synoinfo.conf
sed -i 's/support_led_brightness_adjustment="yes"/support_led_brightness_adjustment="no"/g' /etc.defaults/synoinfo.conf
sed -i 's/support_disk_compatibility="yes"/support_disk_compatibility="no"/g' /etc.defaults/synoinfo.conf
- 洗白
注意,洗白仅支持spi方案,也就是刷机方案2
方法1:可以直接使用矿神的cm360一键洗白脚本https://imnks.com/7267.html
方法2:手动修改
在编程器固件偏移量0x7ef000,第一行市前6字节是mac,后面跟着校验和(可能是一字节或两字节),第四行市sn的ascii码和校验和的ascii码。mac和sn的校验和计算方法与其它型号通用。我直接引用一张别的机器的计算方法图。替换后,再刷一遍就行了。
经测试,换了ds218的sn后,可以qc,可以硬件转码,怎么获得sn就八仙过海各显神通了。 方法3:直接使用矿渣论坛 “kuangzha”的“猫盘群晖超级简单修改【SN MAC】 工具3.0””,经验证,方法和教程可用与本机器。
其他进阶教程(没有变砖不用看) Link to heading
线刷教程(可用于写入bootloader,救砖)原厂bootloader文件在网盘里 Link to heading
1.下载bpi-w2刷机工具
2.安装驱动,在工具目录下,已经装过的不用二次安装
3.关闭刷机软件情况下,将要刷写的uboot重命名为bootloader.tar,并覆盖刷机软件Tempfile下的bootloader.tar后再打开软件
4.软件操作顺序
- 选择刷nand
- 选择ddr类型2ddr3_1G
- 不要选择镜像文件,不要选择镜像文件
- 设置刷写选项,勾选”only upgrade bootloader”
5.启动刷机
- 短接SW1(拆机图中的开关)插入双公头usb线(一头电脑,一头接主板靠近reset的usb口)此时刷机工具会有反应(不用插电)
- 点击绿色小人开始刷机,一定要等到这个图标后再过一分钟(原因未知,太早拔线uboot无法启动)
如果你此时连接了ttl,后台看到的nand读写是这样的,如果没有ttl请忽略
需要注意的是,如果你多次尝试线刷,始终显示进度为0,后台ttl显示的spi init,就没反映了
因为短接开关默认启动spi,刷机默认是spi,这时候可以ttl下用nand erase 擦除nand boot再线刷,此时就不用短接按键,默认进入线刷模式
Realtek> nand erase 0xc0000 0x480000
NAND erase: device 0 offset 0x0, size 0x480000
Erasing at 0x520000 -- 100% complete.
OK
Realtek>
切记不能擦除0x0000-0x20000的空间,这里放着flash识别信息(就是flash的基本信息),bootrom启动的时候需要读取,如果错误擦除,就算线刷也无法启动uboot,需要用ctrl+q模式救砖
(对于完整刷机包,就直接选择刷机包就行,不过nand方案没有看到过刷机包)
ctrl-q模式终极救砖 Link to heading
-
下载软件包,包括hw,uboot和串口工具(必须使用win的hyperterm,其他串口工具在该模式下传输均失败)
-
按照上文所述连接电脑和板子的ttl
-
运行hyperterm,设置串口号和参数
-
同时按住ctrl键和q键,同时插入电源,进入bootrom模式,当终端界面出现’ d/g/r ‘ 后就松掉
-
输入 “h” 然后发送硬件配置二进制文件 (01hwsetting) 在 Y-modem 模式
-
等待传输完成, 然后输入下面的参数:
s 98007058 00020000
-
输入d,同样用y-moderm传送02uboot
-
传输完成后,输入g即可运行uboot,同时立即连续按住esc,确保中断uboot
-
使用uboot的nand命令重新写入原来的备份的boot_mtd.bin
可以使用loady命令直接串口加载
或者放入U盘,使用
usb start;fatload usb 0 0x3000000 boot_mtd.bin
命令从U盘加载,结构都是将这个文件加载到了内存的0x3000000这给位置
然后使用nand命令写入nand的0x0位置,大小为0x4c0000,命令为
nand erase 0x0 0x4c0000 nand write 0x3000000 0x0 0x4c0000
完成后即可断电重启,或者使用reset命令重启,救砖完成,又可以线刷或者uboot设置了