We have moved to a new Sailfish OS Forum. Please start new discussions there.
12

Filesystem level clone onto another Jolla Phone leaves wireless non functional [Solved: via blocklevel clone] [not relevant]

asked 2017-02-17 16:37:06 +0200

Tajo gravatar image

updated 2017-05-07 17:46:19 +0200

I have two Jolla Phones, one with a broken screen. To migrate all data from the broken device to the other I booted them into recovery mode and performed a filesystem level copy (rsync) of the root filesystem /dev/mmcblk0p28 and the /home subvolume.

After adapting the filesystem UUID in /etc/fstab (since I did not reformat or do a blocklevel copy) the new device boots fine with the old data, but when I try to enable WLAN I only get the error message "Networking is not available. Please restart device". Bluetooth works, I have not tried GSM yet.

Where else are hardware specific files which I should keep? Are there other btrfs subvolumes or partitions with that data? Would a blocklevel copy of certain partitions help or would I risk bricking the phone?

Edit:

I gave up on the filesystem level and copied all raw partitions. I initially wanted to follow the partition list peremen posted and only do low-level clones of the non-boot and non-recovery partitions, but I ended up copying all of them in the end. Note that I left /dev/mmcblk0 alone and copied over all the p1-p28 partitions individually (via netcat/nc). The WLAN connections had to be re-entered because the MAC-Address changed, but everything worked. The source phone was on v2.0.1.11, the target phone maybe had that version once, but was reset to 1.x, afterwards I upgraded to 2.1.0.11.

edit retag flag offensive reopen delete

The question has been closed for the following reason "question is not relevant or outdated" by chemist
close date 2017-05-08 22:18:37.441568

Comments

1

Has anybody successsfully cloned a Jolla Phone using USB or through a desktop terminal, offload old phone, load onto new phone?

I did a simple copy paste entire /nemo/HOME directory which was a disaster because on the new phone the permissions werent properly applied based on original file settings and i had to recursively fix all the messed up folder, file permissions.

DarkTuring ( 2017-02-20 05:10:10 +0200 )edit
1

@DarkTuring:

i made a dd once and it worked after some smaler issues: link text

BlaeX ( 2017-02-20 16:19:32 +0200 )edit

@BlaeX thats great, could you walk me and Tajo through your process and describe the issues you faced?

DarkTuring ( 2017-02-20 18:14:13 +0200 )edit

@DarkTuring: jupp, i write it together this weekend

BlaeX ( 2017-02-24 14:46:49 +0200 )edit

@BlaeX: I ended up doing practically the same, nc -l -p 1234 < /dev/mmcblk0pXY to dump the data in recovery mode over the USB-IP connection and the equivalent to write it again.

Tajo ( 2017-05-07 17:48:49 +0200 )edit

4 Answers

Sort by » oldest newest most voted
4

answered 2017-02-17 17:13:10 +0200

peremen gravatar image

I think this is Wi-Fi kernel module version mismatch, since the kernel and Wi-Fi kernel module stays in the different partition. One of the solution could be transplanting BOOT partition to the new device.

edit flag offensive delete publish link more
2

answered 2017-03-02 00:26:44 +0200

Tajo gravatar image

updated 2017-03-05 15:25:12 +0200

No success. I could not identify a boot partition @peremen, running file on most of the blockdevs just said data. I did find a few more partitions apart from the one ones in the main btrfs (of which I did not touch the factory ones).

btrfs subvolume list /
ID 257 gen 292083 top level 5 path @
ID 258 gen 292083 top level 5 path @home
ID 263 gen 125238 top level 5 path factory-@
ID 264 gen 125238 top level 5 path factory-@home


/dev/mmcblk0p18 on /firmware type vfat (ro,relatime,uid=1000,gid=1000,fmask=0337,dmask=0227,codepage=cp437,iocharset=iso8859-1,shortname=lower,errors=remount-ro)
/dev/mmcblk0p19 on /drm type ext4 (rw,nosuid,nodev,relatime,data=ordered)
/dev/mmcblk0p25 on /persist type ext4 (ro,nosuid,nodev,relatime,data=ordered)
/dev/mmcblk0p9 on /var/systemlog type ext4 (rw,nosuid,nodev,relatime,data=ordered)

The /persist partition has WCNSS_qcom_cfg.ini / WCNSS_qcom_wlan_nv0.bin/1.bin/2.bin but these blobs were already identical on both devices. Maybe the MAC-address of the hardware is stored in non-text elsewhere?

I found /run/blkid/blkid.tab with more partition-uuids, but even after copying the original back in place and clearning out /var/lib/connman/ I had no luck. Either there is more data stored in one of the non-filesystem partitions or in some other storage location.

Where does the recovery shell start from? Could I brick my device by doing a blocklevel-dd of /dev/mmcblk0 or all sub-partitions or can I always restore the original disk content provided I saved it somewhere?

Edit: Following the advice of peremen, I also copied the /dev/mmcblk0p20 partition over from the original phone, but no luck either: the phone would not even boot. What also did not work was keeping this partition unchanged and then restoring /boot and /lib/modules after initially overwriting it with files from the other phone.

edit flag offensive delete publish link more

Comments

Please check the partition table of Jolla here: https://talk.maemo.org/showthread.php?p=1404348

What I've meant for the boot partition is /dev/mmcblk0p20. Recovery shell starts from /dev/mmcblk0p21. Both are using the Android bootimg format, so it might be identified as "data". As you can see they are not mounted on the operating system, but exists as a separate partition.

peremen ( 2017-03-02 13:28:41 +0200 )edit
2

answered 2017-03-05 16:11:42 +0200

chemist gravatar image

updated 2017-03-05 16:13:50 +0200

Iirc you need to change the MAC in all connman files (files, foldernames, filenames), I moved from Jolla1 to Jolla1 several times and that is actually the only thing that does break always without anything you can do about. And you do not need anything but partition 28 - this does work with Jolla1->Jolla1 only (just so I said that)! The devices should also be at the same version to prevent firmware mismatch, so bring the receiving device to the same version as the donor first.

edit flag offensive delete publish link more
2

answered 2017-03-05 16:39:25 +0200

coderus gravatar image

just reinstall kernel modules package using mobile data

edit flag offensive delete publish link more

Question tools

Follow
3 followers

Stats

Asked: 2017-02-17 16:37:06 +0200

Seen: 863 times

Last updated: May 07 '17