On a Hg622 I have been trying dymaic blob swapping between 030, 033-normal Hg622 version, 035 and 038. I followed Asbokid's guide to this.
The HG622 does not support TFTP to move things in and out but if a usb stick is inserted it is mounted and facilitates very easy transfers. I can swap between 030, 033 and 035 and they all work fine in the HG622. However with 038 I get "segmentation fault" on starting it. I assume 038 has structural differences that the others lack.
Further to these tests I can get the same segfault on running xdslcmd by dynamically swapping the xdslcmd file in /bin on an HG622 into a HG612 with the 038 BLOB. Conversely if I dynamically swap the 038 version of xdslcmd to an HG622, xdslcmd then requests a lib file not on the Hg622. Dynamically swapping in that file in /lib seems to get the new xdslcmd fully working on the HG622, the new xdslcmd has the maxrate options in it but I have not tested those specific options on the usual 033 blob. Unfortunately when I try to also dynamically swap the BLOB which is in /etc it runs out of memory!!! By then I would have full copies of /bin/ /lib and /etc in /tmp so that is not really surprising.
Linux is quite a mystery to me and I wonder if there any way to mount just part of the directories, ideally just the specific files in question over each other. Or if not a logical way to achieve a swap of the new file in the rw file system with just the relevant file in the read only file system. Please can anyone offer advice?
If it is not possible dynamically it might work if the firmware image was rebuilt with these changes in the filesystem. However as noted above my tries at rebuilds bricks the device at the moment and needs a JTAG recovery!!
edit: In fact if the samba files in /bin are deleted there is room for a copy of /etc as well. However it does not help. I guess the segfault with 038 may be linked to kernel having been rebuilt in the latest 038 firmware. i.e a swap of the BLOB to previous firmware versions may simply not work.