Giter VIP home page Giter VIP logo

pop-arm64's Introduction

Pop!_OS UEFI ARM64 Image

This is a repository that contains scripts for compiling an ARM64 UEFI image for Pop!_OS.

Building

Install dependencies

# Install dependencies
sudo apt-get install debootstrap mtools parted gnupg systemd-container eatmydata rsync git squashfs-tools
# Install dependencies, if your builder system is NOT arm64
sudo apt-get install binfmt-support qemu qemu-user-static

Build everything

cd pop-arm64
# Build the entire live image
sudo ./build-generic.sh

The live GPT image file will be output to build/pop-os.live.img.

Rebuild live image

Note: you must have ran build-generic once already, or at least the non-live scripts!

# Go to the build folder
cd pop-arm64/build
# Re-build the live parts of the image
sudo ../scripts/live/04-setup-live-rootfs.sh && \
	sudo ../scripts/live/05-setup-pool.sh && \
	sudo ../scripts/live/06-build-live-image.sh

Once again, the live GPT image file will be output to build/pop-os.live.img.

Clean

The clean.sh script will do exactly what it says - it will clean up the build folder, except for the cache folder, which is used by debootstrap to cache debs.

cd pop-arm64
# Clean the build folder
./clean.sh

pop-arm64's People

Contributors

absolucy avatar dkowis avatar jackpot51 avatar thefossguy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pop-arm64's Issues

Build fails at setting up Casper Scripts

[info] Synchronizing changes to disk
[info] Setting up casper scripts
sed: can't read /usr/share/initramfs-tools/scripts/casper-bottom/52gnome_initial_setup: No such file or directory
Container pop-os failed with error code 2.

Logging before I look into it.

The script doesn't create the out folder correctly.

The script generates a folder:

out/os
with a file
out/os/pop_base.zip

The installer_data.json is not copied because the script is missing a ../
on the build_installer_layout bash function.

The installer_data.json expects a file to be named pop.zip

Thanks for the script, I'll see if I can install the generated output.

Cannot build image: execv(bash) failed: No such file or directory

NOTE: Please see my last comment

I tried running the script on a Debian ARM64 machine. Installed all dependencies before running.
Is building only possible on PopOS?

Terminal output (no longer relevant)
root@debian-vm:/home/vmuser/popos/pop-arm64# ./build-generic.sh 
+ mkdir -p build
+ cd build
+ ../scripts/01-setup-efi-img.sh
mkfs.fat 4.2 (2021-01-31)
+ ../scripts/02-build-base-rootfs.sh
[info] Bootstrapping Pop!_OS with debootstrap
[bootstrap pop] E: No such script: /usr/share/debootstrap/scripts/jammy
[info] Syncing data to filesystem
[info] Syncing common files to rootfs
[rsync common files] sending incremental file list
[rsync common files] ./
[rsync common files] etc/
[rsync common files] etc/fstab
[rsync common files] etc/hostname
[rsync common files] etc/hosts
[rsync common files] etc/motd
[rsync common files] etc/prime-discrete
[rsync common files] etc/apt/
[rsync common files] etc/apt/sources.list
[rsync common files] etc/apt/sources.list.d/
[rsync common files] etc/apt/sources.list.d/pop-os-ppa.list
[rsync common files] etc/apt/sources.list.d/system.sources
[rsync common files] etc/apt/trusted.gpg.d/
[rsync common files] etc/apt/trusted.gpg.d/pop-os-ppa.gpg
[rsync common files] etc/kernelstub/
[rsync common files] etc/kernelstub/configuration
[rsync common files] etc/modprobe.d/
[rsync common files] etc/modprobe.d/system76-power.conf
[rsync common files] etc/systemd/
[rsync common files] etc/systemd/system/
[rsync common files] etc/systemd/system/first-boot.service
[rsync common files] usr/
[rsync common files] usr/bin/
[rsync common files] usr/bin/first-boot
[rsync common files] 
[rsync common files] sent 5,448 bytes  received 310 bytes  11,516.00 bytes/sec
[rsync common files] total size is 4,131  speedup is 0.72
Can't open /home/vmuser/popos/pop-arm64/build/rootfs.base/etc/passwd: No such file or directory.
[info] Linking systemd to init
+ ../scripts/03-setup-rootfs.sh
[info] Mounting EFI partition
[info] Bind mounting apt cache
[info] Spawning chroot via systemd-nspawn
Spawning container pop-os on /home/vmuser/popos/pop-arm64/build/rootfs.base.
Press ^] three times within 1s to kill container.
execv(bash) failed: No such file or directory
Container pop-os failed with error code 1.

Conflicts in dependencies

The README says that the dependencies are binfmt-support qemu qemu-user-static qemu-user-binfmt, but qemu-user-binfmt and qemu-user-static conflict with each other. :(

Failing to build as-is

Hi!

I wanted to try your package, but found some problems while trying to compile in a docker machine.

First, it assumes that I have "sudo" package installed, which is not ever true (root without sudo), but I can understand that.

However the script doesn't install curl, zip and python3 package, which are requisites.

Also, for some reason, it's mandatory to have a git configuration (mail + user) to run the scripts.


Processing triggers for libc-bin (2.31-0ubuntu9.7) ...
+ build_linux
+ handle_crosscompile
++ uname -m
+ '[' aarch64 '!=' aarch64 ']'
+ test -d linux
+ cd linux
+ git fetch
+ git reset --hard origin/asahi
HEAD is now at 00e23945f Merge branches 'refs/heads/bits/000-devicetree', 'refs/heads/bits/010-mailbox', 'refs/heads/bits/020-t6000-dart', 'refs/heads/bits/030-misc', 'refs/heads/bits/050-nvme', 'refs/heads/bits/060-spi', 'refs/heads/bits/070-audio', 'refs/heads/bits/080-wifi', 'refs/heads/bits/090-spi-hid', 'refs/heads/bits/100-shutdown-notifier', 'refs/heads/bits/110-smc', 'refs/heads/bits/120-spmi', 'refs/heads/bits/130-cpufreq' and 'refs/heads/bits/140-pci-pwren' into asahi
+ git clean -f -x -d
+ curl -s https://tg.st/u/40c9642c7569c52189f84621316fc9149979ee65.patch
+ git am -

*** Please tell me who you are.

Run

  git config --global user.email "[email protected]"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'root@f6c58667963b.(none)')
(23) Failed writing body


These are minor things and for the moment, the script is working correctly.

Will write about it if it works :)

Asahi Alternative Distros list

Hi!

This project is listed in the Asahi Linux wiki as an alternative distro port for Apple Silicon here: https://github.com/AsahiLinux/docs/wiki/SW%3AAlternative-Distros
I was wondering if that still makes sense since the project focus seems to have shifted to generating a general purpose arm64 image.
I couldn't find any documentation on how to use it on Apple Silicon. Is this still supported? Would it make sense to remove it from the list if that is not the case?

Errors running pop_os!

I've found so far:

Wifi not working (It doesn't detect the interface, macbook air)
There are configured repos that doesn't have arm64 support
Doing an apt upgrade will make the distro fail to boot after a restart.
Missing kernel headers on the repos and not installed on the base image.

`check-language-support` command not found during build

[info] Adding language 'ar'
/chroot-base.sh: line 33: check-language-support: command not found
Container pop-os failed with error code 127.

During the build I ran into this problem.

Perhaps language-selector-common needs to be installed in the build environment.

Permission denied failure when running build script

When running the build script in Kali Linux...

...
[download main pool] Fetched 14.8 MB in 2s (7041 kB/s)
[download main pool] W: Download is performed unsandboxed as root as file '/iso/pool/main/kernelstub_3.1.4167484905122.04~851230b_all.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)
/
[info] Synchronizing changes to disk
[info] Setting up casper scripts
sed: can't read /usr/share/initramfs-tools/scripts/casper-bottom/52gnome_initial_setup: No such file or directory
Container pop-os failed with error code 2.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.