pop-os / pop

A project for managing all Pop!_OS sources
https://system76.com/pop
2.43k stars 84 forks source link

Feature Request - ARM 32/64 bit Support #1400

Open sigkill opened 3 years ago

sigkill commented 3 years ago

Not a bug or issue - but wondering if there is a process for building an ARM version of POP-os available, or if there is any interest in doing so?

Would love to have a build that can run on some of my ARM based systems - including some of the NVIDIA Tegra and Jetson hardware, Raspberry Pi, and possible support for the Apple M1 processor based systems.

ids1024 commented 3 years ago

I don't think there's really any intention to do this. In principle it's not too complicated since Ubuntu offers ARM packages; we would just need to build our packages for ARM. But that means twice as many CI builds, twice as much to test (or more likely, it would just go untested.)

possible support for the Apple M1 processor based systems

As I understand, Apple intends for it to not support other operating systems, just like iPhones. So not likely viable in the immediate future anyway, except within an emulator (which I believe they support or intend to support).

sigkill commented 3 years ago

I would love to run Pop on my Nvidia Jetson and Raspberry Pi ... Stupid question - I know Ubuntu was talking of 64 bit only support, will Pop OS also be 64 bit only as well?

Regarding testing, if its helpful I have some hardware I could donate for getting the kind of testing done, or it's possible to build docker images for ARM, and have those automatically tested via qemu.

I'd really love to work towards getting something other than Apple OS on the M1 based systems, but a Raspberry Pi 4 would be a great starting point.

Please let me know if there's any way I could help. If you have any build scripts, or anything similar to how Kali has build scripts in place for migrating to other hardware.

mmstick commented 3 years ago

As an owner of a 2.2 GHz overclocked Raspberry Pi 400, Pop!_OS would be far too heavy to run on it.

dmccaffery commented 3 years ago

Apple's hypervisor supports native arm64 on Apple Silicon. It doesn't support x86_64 emulation (rosetta 2) within the hypervisor. ARM is starting to make inroads as both a server and desktop platform.

I think its worth the effort to support ARM in the long term as I believe the architecture will become increasingly prevalent as a desktop platform over time.

francoposa commented 3 years ago

Another vote for Raspberry Pi support, if only to have a nice RPi alternative to Ubuntu that is not pushing Canonical's snaps or the proprietary snap store.

thefossguy commented 3 years ago

You should forget about installing Pop OS on any Raspberry Pi models for the following reasons:

But this doesn't rule out the need for Pop OS on an ARM CPU. The moment I get my hands on a desktop-class ARM PC, I'm doing everything I can to run Pop OS on it! <3

ct-taylor commented 3 years ago

Really sad to see I can't use Pop!_OS in a vm on my new macbook without taking the ARM->x86 performance hit

mikeroySoft commented 2 years ago

VMware Fusion (tech preview) now supports aarch64 VMs on M1 devices, it would be great to be able to run Pop!_OS in virtual machines =)

Also, drivers are also in 5.14, and open-vm-tools and open-vm-tools-desktop are both in Ubuntu upstream now.

ryanwhite36 commented 2 years ago

I’m running Parallels on my M1 Mac and would love an option to run Pop!_OS. Best of both worlds

kode54 commented 2 years ago

Hmm, Pop! OS now distributes a RasPi 4 image, but no generic UEFI image for aarch64.

sigkill commented 2 years ago

Hmm, Pop! OS now distributes a RasPi 4 image, but no generic UEFI image for aarch64.

So close!

sigkill commented 2 years ago

Could you technically take the Raspberry Pi 4 image, and build a kernel using the aarch64 build instructions? I think you might be able to tarball the entire root and then dump that to an image, bootstrap and build the kernel, and install it as you would on other hardware.

thefossguy commented 2 years ago

Could you technically take the Raspberry Pi 4 image, and build a kernel using the aarch64 build instructions? I think you might be able to tarball the entire root and then dump that to an image, bootstrap and build the kernel, and install it as you would on other hardware.

That would assume that Pop!_OS is using the mainline kernel. Which it is not. It is using the kernel that Ubuntu uses, which in turn is the rpi kernel (https://github.com/raspberrypi/linux).

I haven't taken a look at the build script [yet] but I guess you could use the Ubuntu base that is aarch64-generic and add the pop packages on top of it since the packages are only architecture specific and not tied to the Raspberry Pi itself.

Edit: messing with the iso repo (https://github.com/pop-os/iso) and I realized that the installer (and other system76 drivers+packages) need to be compiled with aarch64 as target arch (if they aren't already in the arm64 repos yet); I am assuming that at least the installer is not available as an aarch64 bin package yet

devotoare commented 2 years ago

I would also like to throw in my vote for this. Would be really nice to running in Parallels on MacOS (which I'm forced to use for work).

spaceface777 commented 2 years ago

In case anyone finds this helpful: I was able to install the arm64 version of Pop!_OS in Parallels a couple of months ago (when the Raspberry Pi image was released, pretty much) and have been using it since then, and it's been quite stable the entire time (apart from a few minor issues that also apply to the Pi itself, such as pop-os/raspi-img#8). What I did was to first install Ubuntu Server, and then add the Pop!_OS APT repositories, and install pop-desktop-raspi on top of that, thus working around the missing generic arm64 kernel binary.

Those same steps should work on any other arm64 device, as long as Ubuntu Server (or any other version of Ubuntu) can be installed first, though - although I haven't personally tested it, there should nothing Parallels-specific in the process. If anyone else is willing to give this a shot, I created a brief guide that explains what I did in more detail: https://spaceface.dev/pop-os-m1.

While I cannot guarantee that it will also work for others reliably (or at all), if anyone else is willing to give it a shot, hopefully the guide could be a useful first step in that direction.

thunderdw commented 2 years ago

Thanks for the detailed guide @spaceface777! I was able to get Pop!_OS up and running in Parallels with no real issues, super easy and straightforward process.

sigkill commented 2 years ago

Super happy this is a thing now!

ColsterJ commented 2 years ago

Working well so far, thank you @spaceface777! It would be great to see this supported officially.

devotoare commented 2 years ago

In case anyone finds this helpful: I was able to install the arm64 version of Pop!_OS in Parallels a couple of months ago (when the Raspberry Pi image was released, pretty much) and have been using it since then, and it's been quite stable the entire time (apart from a few minor issues that also apply to the Pi itself, such as pop-os/raspi-img#8). What I did was to first install Ubuntu Server, and then add the Pop!_OS APT repositories, and install pop-desktop-raspi on top of that, thus working around the missing generic arm64 kernel binary.

Those same steps should work on any other arm64 device, as long as Ubuntu Server (or any other version of Ubuntu) can be installed first, though - although I haven't personally tested it, there should nothing Parallels-specific in the process. If anyone else is willing to give this a shot, I created a brief guide that explains what I did in more detail: https://spaceface.dev/pop-os-m1.

While I cannot guarantee that it will also work for others reliably (or at all), if anyone else is willing to give it a shot, hopefully the guide could be a useful first step in that direction.

Works pretty good. Only issue I've found is that "Desktop" is missing from the Settings app so I cannot change anything related to cosmic or workspaces after the initial setup. Maybe there's a way to run the initial setup again at least?

Edit: Pop Shop also doesn't load any apps.

jacobgkau commented 2 years ago

Maybe there's a way to run the initial setup again at least?

You can run initial setup at any time with these commands:

rm .config/gnome-initial-setup-done
/usr/libexec/gnome-initial-setup --existing-user

(After you run the first command, if you skip the second command, then you may see GNOME Initial Setup start auto-launching on login until you complete it.)

All of the options in the Desktop section can also be changed in the terminal via gsettings keys. It looks like the desktop widget is built for arm64, but the patched GNOME Control Center including it is failing to build for arm64, which is why you aren't seeing the section show up. (You would be getting Ubuntu's GNOME Control Center instead, which does not include the desktop widget.)

ravichandraveeramachaneni commented 1 year ago

I’m running Parallels on my M1 Mac and would love an option to run Pop!_OS. Best of both worlds

Were you able to run it ? @ryanwhite36

Daasin commented 9 months ago

Seems tricky to get running on RPI5, but I see no reason why the hardware couldn't handle it with an overclock

Dygear commented 8 months ago

Using the Pico Debug Probe connected to the UART port on the Raspberry Pi 5, when using the Raspberry Pi 4 Pop_OS image, I get the following.

Trying partition: 0
type: 16 lba: 2048 'mkfs.fat' '  V       ^ ' clusters 65211 (8)
rsc 8 fat-sectors 256 root dir cluster 1 sectors 32 entries 512
FAT16 clusters 65211
[sdcard] autoboot.txt not found
Trying partition: 0
type: 16 lba: 2048 'mkfs.fat' '  V       ^ ' clusters 65211 (8)
rsc 8 fat-sectors 256 root dir cluster 1 sectors 32 entries 512
FAT16 clusters 65211
Read config.txt bytes     1211 hnd 0x7
[sdcard] pieeprom.upd not found
usb_max_current_enable default 0 max-current 5000
[sdcard] bcm2712-rpi-5-b.dtb not found
Device-tree file "bcm2712-rpi-5-b.dtb" not found.

The installed operating system (OS) does not indicate support for Raspberry Pi 5
Update the OS or set os_check=0 in config.txt to skip this check.

I set the os_check=0 in the config.txt file as it stated and tried again.

Read config.txt bytes     1222 hnd 0x4341
[sdcard] pieeprom.upd not found
usb_max_current_enable default 0 max-current 5000

NOTICE:  BL31: v2.6(release):v2.6-239-g2a9ede0bd
NOTICE:  BL31: Built : 14:26:57, Jun 22 2023

Unfortunately, that did not produce booting Pi. Looks like there is no hand off between the firmware and the kernel. Or if there is, it immediately faults and we see no output. I tried coping the contents of the bootfs on a Raspberry Pi 5 image into the same folder / partition as the config.txt file to give the PopOS image all of the latest stuff from the Raspberry Pi foundation, but that did not work either. Going to bounce off this for the moment and try to make progress or something else.

vddo commented 6 months ago

Is there anything going on with arm64 now that asahi Linux is doing so well? Upvoted because I’d love to have pop on my Mac.