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 /efi mount point for newer Arch/SystemD setups #43

Merged
merged 1 commit into from Sep 27, 2020
Merged

Add /efi mount point for newer Arch/SystemD setups #43

merged 1 commit into from Sep 27, 2020

Conversation

t3hmrman
Copy link
Contributor

@t3hmrman t3hmrman commented Sep 25, 2020

@jacobgkau jacobgkau requested a review from a team September 25, 2020 20:35
Copy link
Member

@jacobgkau jacobgkau left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

bootctl checks for the ESP at /boot, /efi, and /boot/efi, so it makes sense for us to check all three locations as well. I confirmed this change does not affect a Pop!_OS system or an Ubuntu system with the default /boot/efi mountpoint. I'm approving for those reasons.

However, since #29, we check the output of bootctl --print-esp-path, and only use the static list if we can't find the ESP from bootctl. I've installed Arch on a system with the ESP at /efi, and bootctl --print-esp-path returns /efi; additionally, I'm able to schedule a firmware update successfully using sudo system76-firmware-cli schedule or using the Firmware Manager gtk app (when started as root), without needing to apply this change.

bootctl is provided by the systemd package in Arch, and should be installed on any Arch system since it's part of the base package group. If you're having trouble applying a firmware update on Arch, what does bootctl --print-esp-path output and what does sudo system76-firmware-cli schedule output?

@jacobgkau jacobgkau requested a review from a team September 25, 2020 22:32
@t3hmrman
Copy link
Contributor Author

t3hmrman commented Sep 27, 2020

Hey @jacobgkau

However, since #29, we check the output of bootctl --print-esp-path, and only use the static list if we can't find the ESP from bootctl. I've installed Arch on a system with the ESP at /efi, and bootctl --print-esp-path returns /efi; additionally, I'm able to schedule a firmware update successfully using sudo system76-firmware-cli schedule or using the Firmware Manager gtk app (when started as root), without needing to apply this change.

Thanks for noting this, I was unaware of this functionality

bootctl is provided by the systemd package in Arch, and should be installed on any Arch system since it's part of the base package group. If you're having trouble applying a firmware update on Arch, what does bootctl --print-esp-path output and what does sudo system76-firmware-cli schedule output?

$ bootctl --print-esp-path
/efi
$ sudo system76-firmware-cli schedule
Automatic transition: P950Ex -> P950Ex
downloading tail
opening download cache
downloading manifest.json
downloading system76-firmware-update.tar.xz
downloading oryp5_c044c8818e6e5cefaf8f6c6e306773b41f1d5e8310c19dd76cd2ff4a32080d32.tar.xz
loading changelog.json
Ok("./changelog.json")
Automatic transition: P950Ex -> P950Ex
"efibootmgr" "--quiet" "--delete-bootnext"
Could not delete BootNext: No such file or directory
"efibootmgr" "--quiet" "--delete-bootnum" "--bootnum" "1776"
Could not delete variable: No such file or directory
removing /efi/system76-firmware-update
extracting system76-firmware-update.tar.xz to /efi/system76-firmware-update.NUdsJJ529obN
Ok("./")
Ok("./boot.efi")
Ok("./res/")
Ok("./res/firmware.nsh")
Ok("./res/shell.efi")
Ok("./res/splash.bmp")
extracting oryp5_c044c8818e6e5cefaf8f6c6e306773b41f1d5e8310c19dd76cd2ff4a32080d32.tar.xz to /efi/system76-firmware-update.NUdsJJ529obN/firmware
Ok("./")
Ok("./changelog.json")
Ok("./ec.rom")
Ok("./firmware.rom")
Ok("./fparts.txt")
Ok("./fpt.efi")
Ok("./meset.efi")
Ok("./uecflash.efi")
moving /efi/system76-firmware-update.NUdsJJ529obN to /efi/system76-firmware-update
/dev/nvme0n1 1
"efibootmgr" "--quiet" "--create-only" "--bootnum" "1776" "--disk" "/dev/nvme0n1" "--part" "1" "--loader" "\\system76-firmware-update\\boot.efi" "--label" "system76-firmware-update"
"efibootmgr" "--quiet" "--bootnext" "1776"
Firmware update scheduled. Reboot your machine to install.

Both of these look fine to me (now) but this patch might actually not have been necessary -- when I was trying to fix my system I found that I did not have /efi mounted properly.

I installed the version from the AUR (with no patches) just now, and system76-firmware-cli schedule worked just fine. I think the defining issue here was that I did not have my EFI directory mounted properly. I updated the Arch Wiki entry for the Oryx Pro as well.

Please feel free to close this PR -- as this change seems to not strictly necessary -- it is unlikely that people with properly configured and mounted /efi directories would run into this.

Copy link
Member

@ids1024 ids1024 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we have a list of possible efi partition paths here, it might as well include /efi, so it seems reasonable to merge. I'm not sure if it's likely, but there may be some systems without bootctl, and with it mounted at /efi. This certainly shouldn't do any harm.

@ids1024 ids1024 merged commit b42369b into pop-os:master Sep 27, 2020
@t3hmrman
Copy link
Contributor Author

Thanks to all for the hard work, transparency and pushing the boundaries on Linux-on-laptops. I am loving my Oryx Pro. This is by far the easiest/best/most cross distro experience I've had with a linux software/hardware vendor. Appreciate the support for distros like Arch which are a little off the beaten path.

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

Successfully merging this pull request may close these issues.

None yet

3 participants