Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add build for ARM64 machines #233

Open
shasheene opened this issue Jun 16, 2021 · 7 comments
Open

Add build for ARM64 machines #233

shasheene opened this issue Jun 16, 2021 · 7 comments
Assignees
Labels
enhancement New feature or request

Comments

@shasheene
Copy link
Member

shasheene commented Jun 16, 2021

It makes sense for Rescuezilla to have an ISO image based on ARM64, which is an increasingly popular architecture that in some cases (like the Apple M1 Mac) is displacing the Intel 64-bit architectures (x86_64, known in the Linux world as ‘amd64’) that has been dominant since about 2006.

This would be useful to boot Rescuezilla on a large number of environments: single board-computers (eg, Raspberry Pi), ARM64-based chromebooks, ARM64-based servers, Apple M-chip based Macs and more.

A Rescuezilla user has already tried to create an ARM64 build (task #226), which in theory should proceed relatively smoothly when run on native ARM64 hardware with the correct parameters (but I haven't yet tried this). I believe the big issue with adding a ARM64 version is the bootstrapping process for each ARM64 computer is different and not standardized, so it may not be possible to easily support all devices like it is for AMD64 systems.

It’s worth noting Clonezilla doesn’t have an official ARM build yet, but some users have called for it. It's also worth noting Debian itself has an ARM64-build available, but it’s not immediately clear what target machines it can run on.

Adding support for a new CPU architecture will mean the automated testing suite for Rescuezilla's long-term maintainability (task #151) is more important than ever.

Additional related issues:
Bring back 32-bit (i386) version to support computers from before ~2006 (task #232)
Apple File System (APFS) filesystem aware backup/restore (task #65)
Use Python virtualenv rather than relying on system-wide Python version (task #120)

@oam7575
Copy link
Contributor

oam7575 commented Aug 18, 2021

For what its worth using this issue #226 as a starting point I was able to successfully modify the build scripts and have an entire ISO build on a R Pi 3B.

Success being measured as the scripts completed, an ISO was generated and I didn't see any warnings.

This was managed by ripping out many bits that did not appear to apply to the R Pi and changing code and packages to be ARM64 specific.

With that said; I was unable to get the system to boot and display correctly as something was missing for the display / HDMI configuration on boot ( I missed something; but haven't looked closer into it ).

Additionally due to the nature of ARM machines I am not sure that I really see a practical usage case as the R Pi and many similar systems have removeable SD Card storage that can be cloned via more practical methods ( considering the target usage case ) .

Due to the nature of the required changes IF an ARM port was warranted and desired my suggestion would be to fork the code into an x86 / x64 branch and an ARM / Everything else branch. Mostly to keep things a little cleaner.

I have not uploaded any code and do not indend to make a pull request etc; however I am happy to supply my changes if desired.

@shasheene
Copy link
Member Author

Great work! While there's no need to make a Pull Request, it's definitely worthwhile to push your code as a branch onto your Rescuezilla fork.

My understanding is the issue with ARM is (unlike standard PCs) the bootstrapping process is not standardized across hardware. Ubuntu does have an official ARM64 so to start with I will try to match the behavior of those images.

@oam7575
Copy link
Contributor

oam7575 commented Aug 18, 2021

I started with the Ubuntu ARM / R PI repository.
Unfortunately for me it appears the R Pi 3 is only supported by server versions ( no XOrg etc ) leading to me missing something.

Oh as an aside; I was unable to build / cross compile ( ARM code not wanting to run on X64 vm )
I had to run the whole thing on my Pi it was Slooooooooooooow even when running on SSD via USB 3

If you were really really keen you could probably put the whole thing into a QEMU ARM vm and emulate it there - but I'm not that keen ;)

Edit:
The Pi has currently been repurposed; however I'll clean up the changes and create a separate fork at some stage as a reference.

@shasheene
Copy link
Member Author

Yes, testing in Qemu emulation environment will be a key part of my (initial) development and testing.

I will be implementing a command-line interface for Rescuezilla very soon.

But right now virtualized environments is where the bulk of testing will take place (so same CPU architecture as the host). Soon with automated scripts that connect to the VM over SSH and use the upcoming command-line interface.

The virtualized environments run on the same architecture as the host, so for the future ARM build the hardware could perhaps be a RPi, Apple M1 Mac or a ARM-based cloud server. I also have a relatively recent ARM-based Chromebook, and a much older ARM-based Chromebook that I hope to test Rescuezilla on too.

@mzky
Copy link
Contributor

mzky commented Aug 23, 2021

Is there any help for Rescuezilla

clonezilla for Arm:
http://free.nchc.org.tw/clonezilla-live/experimental/arm/2.6.6-11/
The relevant posts:
https://forum.pine64.org/showthread.php?tid=9656

@vikingforties
Copy link

Confirmed that Clonezilla experimental Arm64 ISOs will live boot Ampere Altra based platforms.

@victorhooi
Copy link

I can also confirm that the Clonezilla ARM64 builds from here:

https://free.nchc.org.tw/clonezilla-live/experimental/arm/

worked for me on an Ampere ARM64 box.

(In my case, I just needed the nvme-cli tool to unbrick a cheap Teamgroup Phison SSD that had somehow bricked itself, after being changed from a 512 byte to 4KB LBA).

Would be great if Rescuezilla could be offered in ARM64 as well!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants