pop-os / system76-power

System76 Power Management
GNU General Public License v3.0
566 stars 70 forks source link

Sharing two Pop_OS installs on same machine, different drives, causes conflicts when switching graphics #223

Open kylebakerio opened 3 years ago

kylebakerio commented 3 years ago

Distribution (run cat /etc/os-release): 20.10

Related Application and/or Package Version (run apt policy $PACKAGE NAME):

Issue/Bug Description: When I have a 'persistent' liveboot usb pop install, and manage it from the same machine that I have an install on the nvme, when switching graphics from either install I see the other install affected.

Steps to reproduce (if you know):

setup:

Install pop to a drive on the machine (let's call this the 'normal' install) Install pop (persistent, full install, not just 'live' like a recovery install) to a usb drive. (let's call this the 'usb' install)

method 1

Boot into either (let's say usb). when in usb, switch to a mode neither your 'normal' nor 'usb' install is not in, e.g., 'hybrid' or 'compute' if your usb and normal installs are both in intel or nvidia. now, attempt to boot into your 'normal' install.

I am doing this explicitly to create a sandboxed environment to debug my intel issues on my machine without affecting my working install, but it seems I can't do that. What's going on here? Is something being written to bios or something? Or is some script gone waaay rogue?

different way that's more 'convenient':

method 2

boot into 'normal' install. use chroot method to get 'usb' install in a terminal. e.g.,

sudo mount /dev/sda3 /mnt
sudo mount /dev/sda1 /mnt/boot/efi
for i in /dev /dev/pts /proc /sys /run; do sudo mount -B $i /mnt$i; done
sudo cp -n /etc/resolv.conf /mnt/etc/

sudo chroot /mnt

now, check mode of both installs with sudo system76-power graphics. In my experience, they seem to always report the same. Now try updating the usb install in the terminal with, e.g., sudo system76-power graphics hybrid Now check your install by clicking the battery in the top right. It'll be changed.

Expected behavior: Separate installs should not affect each other

Other Notes: Even weirder, I am pretty sure I switched to 'intel' on my usb install, and then found that both of my installs were in 'hybrid'. When I tried switching just the usb to 'nvidia', I found that my 'normal' install also went to nvidia (which is what it originally was before I selected 'intel' while in the usb install...).

Btw, I can confirm that I am indeed correctly chroot and not just running this locally, because system76 -V on my normal install gives me 1.1.16, while on the usb install / chroot terminal I get 1.1.14. (At first I just assumed I hadn't done the chroot steps correctly or something.)

kylebakerio commented 3 years ago

I just saw this again. This time, trying to switch my usb install into 'integrated' caused my local install I was working from to switch to 'compute'--and not 'will switch to compute on restart', but just claim to be in "compute" right now. (It is of course incorrect--if it was in compute mode, I wouldn't have any external monitor function, since those are hardwired to my nvidia card). Note that I had to 'lock' the screen and then log back in for this to be visible in the battery drop down gui.

When I then checked the usb install through the chroot terminal, it was also in compute, not integrated as I had selected.

Because I'm afraid trying to boot into compute or integrated will break my install in a way I don't know how to recover, I then switched my local install I was working from into hybrid from the battery drop-down gui.

Sure enough, in the chroot terminal I could see that my usb install was then also switched to hybrid.

Here's a photo to show what the result is in the end:

nvidia-hybrid-compute