Skip to content

Commit e4d67a8

Browse files
authored
Merge branch 'main' into patch-1
2 parents a613679 + 83b4b62 commit e4d67a8

23 files changed

+738
-124
lines changed

Ubuntu24.04LTS-Setup-amd-fw16.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ sudo apt update && sudo apt upgrade -y && sudo snap refresh
2929

3030
     
3131

32-
### USB-C Video Out from dGPU directly
32+
### (No Longer Needed) USB-C Video Out from dGPU directly
33+
UPDATED: CURRENT FIRMWARE MAKES THIS UNNEEDED, JUST MAKE SURE [YOUR FIRMWARE IS CURRENT](https://guides.frame.work/Guide/Fedora+41+Installation+on+the+Framework+Laptop+16/394?lang=en#s2261).
34+
**With the latest firmware, just connect your display**.
3335

3436
By default, when you attach a USB-C cable to the dGPU port, it will not come out of [D3cold](https://learn.microsoft.com/en-us/windows-hardware/drivers/kernel/device-power-states) - this is by design and is to preserve your battery life during everyday usage.
3537

amdgpu-workarounds/amdgpu_freesync_video/amdgpu_freesync_video.md

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# NO Longer Needed - retaining just in case it resurfaces again
12
## amdgpu.freesync_video=1 parameter workaround Franework Laptop 16 ONLY
23
### For Framework Laptop 16 not providing all of the expected refresh rates in kernels 6.9 and up.
34

132 KB
Loading
+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
340 KB
Loading

disable-accidental-wakeup/readme.md

+77
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
# Disable Accidental Wakeup Script
2+
3+
**Which laptop does this work with:** Framework Laptop 16.
4+
5+
**(Considering this Beta/Testing as I am ironing out some keyboard backlighting behavior)**
6+
7+
>
8+
>
9+
> **NOTE:** This may not disable the keyboard backlighting when you place it into suspend. By default without this script, the keyboard backlight goes out automatically.
10+
With this script,you will need to **Fn space bar to turn off the backlight** before you enter suspend or it may remain on. This is a side effect of the script.
11+
>
12+
>
13+
14+
15+
16+
17+
18+
**The problem:** In some instances, Framework Laptop 16 can accidentally come out of its suspend state. This usually occurs when traveling, walking, taking a bus, placing the laptop into a backpack.
19+
Overall the agreed upon cause is that this happens due to keyboard presses while it's in a state of suspend, thus waking it up.
20+
21+
**The workaround:** Our engineering team has it [on their roadmap](https://community.frame.work/t/responded-waking-from-suspend-w-lid-closed/47497/73?u=matt_hartley) to fix this on the BIOS level, however until that is available this script is a reliable workaround.
22+
23+
**What this script does:** This script creates and enables a systemd service that prevents specific devices from waking the laptop from suspend. It disables wakeup functionality for **keyboard presses, touchpad presses, and lid lift events** by modifying the wakeup settings for USB devices and other relevant system devices. However, it ensures the system can still be brought out of suspend with a power button push.
24+
The script configures the service to run at boot, ensuring these settings are applied consistently, and reloads the systemd daemon to recognize the new service.
25+
26+
**How do I resume from suspend after running this script:** Press the power button one time.
27+
28+
**Does this break functionality:** No, this script does not break functionality as long as it is implemented using this script on Ubuntu LTS or Fedora.
29+
The script ensures that specific wakeup events, such as keyboard presses, touchpad presses, and lid lifts, are disabled, but it leaves the power button functional for resuming the system from suspend.
30+
31+
- Suspend Behavior: The laptop can still enter suspend mode when the lid is closed.
32+
- Resume Behavior: The laptop can be brought out of suspend using the power button.
33+
- Disabled Wakeup Events: Keyboard and touchpad presses, as well as lifting the lid, will no longer wake the system, ensuring the system only resumes through intentional user interaction (e.g., the power button).
34+
35+
**Restoring back to defaults:** Obviously this is not going to be a match for everyone, user habits may change. Therefore wwe also offer a script to restore your suspend configuration back to installation defaults.
36+
This script is provided here as well.
37+
38+
**Will this work on other distros:** Likely yes, I see no reason why it would not assuming paths and so forth match what we are doing here. But it is completely untested.
39+
40+
41+
## Download and activate the Disable Accidental Wakeup Script
42+
43+
Fedora, make sure curl is installed:
44+
45+
```
46+
sudo dnf install curl -y
47+
```
48+
49+
Ubuntu, make sure curl is installed:
50+
51+
```
52+
sudo apt update && sudo apt install curl -y
53+
```
54+
55+
Simply paste in this command into your kernel, press the enter:
56+
(No reboot is needed, it's ready to go after running this script)
57+
58+
```
59+
curl -s https://raw.githubusercontent.com/FrameworkComputer/linux-docs/main/disable-accidental-wakeup/wakeup.sh -o wakeup.sh && clear && sudo bash wakeup.sh
60+
```
61+
62+
![Download the script](https://raw.githubusercontent.com/FrameworkComputer/linux-docs/refs/heads/main/disable-accidental-wakeup/images/install.png)
63+
64+
65+
66+
67+
## Stop, disable and remove the Disable Accidental Wakeup Script
68+
(Including the removal of disable-wakeup.service)
69+
(No reboot is needed, it's ready to go after running this script)
70+
71+
```
72+
curl -s https://raw.githubusercontent.com/FrameworkComputer/linux-docs/refs/heads/main/disable-accidental-wakeup/restore_defaults.sh -o restore_defaults.sh && clear && sudo bash restore_defaults.sh
73+
```
74+
75+
![Removal script](https://raw.githubusercontent.com/FrameworkComputer/linux-docs/refs/heads/main/disable-accidental-wakeup/images/remove.png)
76+
77+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
#!/bin/bash
2+
3+
# Script to restore wakeup functionality and remove custom disable-wakeup.service
4+
# Compatible with Fedora and Ubuntu
5+
6+
# Define the systemd service file path
7+
SERVICE_FILE="/etc/systemd/system/disable-wakeup.service"
8+
9+
# Step 1: Check for root privileges
10+
if [[ $EUID -ne 0 ]]; then
11+
echo "This script must be run as root. Please use sudo."
12+
exit 1
13+
fi
14+
15+
# Step 2: Stop and disable the service
16+
echo "Stopping and disabling the disable-wakeup.service..."
17+
systemctl stop disable-wakeup.service 2>/dev/null
18+
systemctl disable disable-wakeup.service 2>/dev/null
19+
20+
if [[ $? -eq 0 ]]; then
21+
echo "Service stopped and disabled successfully."
22+
else
23+
echo "The service may not exist or was not running. Proceeding..."
24+
fi
25+
26+
# Step 3: Remove the systemd service file
27+
if [[ -f "$SERVICE_FILE" ]]; then
28+
echo "Removing the systemd service file at $SERVICE_FILE..."
29+
rm -f "$SERVICE_FILE"
30+
if [[ $? -eq 0 ]]; then
31+
echo "Service file removed."
32+
else
33+
echo "Failed to remove the service file. Please check permissions."
34+
exit 1
35+
fi
36+
else
37+
echo "Service file not found. Skipping removal."
38+
fi
39+
40+
# Step 4: Reload systemd daemon
41+
echo "Reloading systemd daemon to apply changes..."
42+
systemctl daemon-reload
43+
44+
# Step 5: Restore default wakeup settings
45+
echo "Restoring default wakeup settings for devices..."
46+
for device in /sys/bus/usb/devices/*/power/wakeup; do
47+
if [[ -f "$device" ]]; then
48+
echo "enabled" > "$device"
49+
echo "Restored default wakeup for $device"
50+
fi
51+
done
52+
53+
if [[ -f "/sys/devices/platform/AMDI0010:03/i2c-1/i2c-PIXA3854:00/power/wakeup" ]]; then
54+
echo "enabled" > /sys/devices/platform/AMDI0010:03/i2c-1/i2c-PIXA3854:00/power/wakeup
55+
echo "Restored default wakeup for AMDI0010 device."
56+
fi
57+
58+
find /sys/devices -type f -name 'wakeup' | grep -i PNP0C0D | while read -r wakeup_file; do
59+
echo "enabled" > "$wakeup_file"
60+
echo "Restored default wakeup for $wakeup_file"
61+
done
62+
63+
# Final Step: Notify the user
64+
echo "Restoration complete. All changes made by the disable-wakeup.service have been undone."
65+
echo "If issues persist, verify the wakeup settings manually using: find /sys/devices -name 'wakeup'"
66+

disable-accidental-wakeup/wakeup.sh

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
#!/bin/bash
2+
3+
# Script to create and enable a systemd service to disable wakeup for specific devices at boot
4+
# Compatible with Fedora and Ubuntu
5+
6+
# Define the systemd service file path
7+
SERVICE_FILE="/etc/systemd/system/disable-wakeup.service"
8+
9+
# Step 1: Check for root privileges
10+
if [[ $EUID -ne 0 ]]; then
11+
echo "This script must be run as root. Please use sudo."
12+
exit 1
13+
fi
14+
15+
# Step 2: Create the systemd service file
16+
echo "Creating systemd service file at $SERVICE_FILE..."
17+
cat << 'EOF' > "$SERVICE_FILE"
18+
[Unit]
19+
Description=Disable Wakeup on Devices
20+
After=multi-user.target
21+
22+
[Service]
23+
Type=oneshot
24+
ExecStart=/bin/bash -c "echo disabled > /sys/devices/platform/AMDI0010:03/i2c-1/i2c-PIXA3854:00/power/wakeup"
25+
ExecStartPost=/bin/bash -c "for device in /sys/bus/usb/devices/*/power/wakeup; do echo disabled > \"$device\"; done"
26+
ExecStartPost=/bin/bash -c "find /sys/devices -type f -name 'wakeup' | grep -i PNP0C0D | awk '{print \"echo disabled | sudo tee \" $0}' | bash"
27+
28+
[Install]
29+
WantedBy=multi-user.target
30+
EOF
31+
32+
echo "Systemd service file created."
33+
34+
# Step 3: Reload systemd daemon to recognize the new service
35+
echo "Reloading systemd daemon..."
36+
systemctl daemon-reload
37+
if [[ $? -ne 0 ]]; then
38+
echo "Failed to reload systemd daemon. Exiting."
39+
exit 1
40+
fi
41+
42+
# Step 4: Enable the service to run at boot
43+
echo "Enabling the service to run at boot..."
44+
systemctl enable disable-wakeup.service
45+
if [[ $? -ne 0 ]]; then
46+
echo "Failed to enable the service. Exiting."
47+
exit 1
48+
fi
49+
50+
# Step 5: Optionally start the service immediately
51+
echo "Starting the service to apply changes now..."
52+
systemctl start disable-wakeup.service
53+
if [[ $? -ne 0 ]]; then
54+
echo "Failed to start the service. Check the service logs for details."
55+
exit 1
56+
fi
57+
58+
# Final Step: Notify the user
59+
echo "Setup complete. The disable-wakeup.service is now active and will run at each boot."
60+
echo "To verify the status of the service, use: sudo systemctl status disable-wakeup.service"
61+
echo "To view logs, use: journalctl -u disable-wakeup.service"
62+

dmidecode-and-CPU-info.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
# Fedora 37/38 only
1+
# Fedora Only
22

33
## Copy and paste this into the terminal using your touchpad or mouse, then press enter.
44

55
``
6-
sudo dnf install lshw dmidecode -y && sudo dmidecode | grep -A3 'Vendor:\|Product:' && sudo lshw -C cpu | grep -A3 'product:\|vendor:'
6+
sudo dnf install lshw dmidecode -y && clear && sudo dmidecode | grep -A3 'Vendor:\|Product:' && sudo lshw -C cpu | grep -A3 'product:\|vendor:'
77
``

flatpaks/flatseal-installer.sh

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
#!/bin/bash
2+
3+
# Update and install Flatpak
4+
sudo apt update
5+
sudo apt install -y flatpak
6+
7+
# Add the Flathub repository (if not already added)
8+
sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
9+
10+
# Install Flatseal Flathub
11+
flatpak install flathub com.github.tchx84.Flatseal -y
12+
13+
# Verify the installation
14+
flatpak list | grep Flatseal
15+
16+
echo "Flatseal been installed successfully."
127 KB
Loading

flatpaks/images/flatseal.png

135 KB
Loading

flatpaks/readme.md

+20-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,27 @@
1-
# Mission Center Installer for Ubuntu 24.04
1+
# Flatpaks, what are they?
2+
3+
By design, Flatpaks have limited access to your home folder and system in general. For most applications, this is perfectly fine, though in some cases this may limit the access you need—such as a webcam or microphone for Zoom, or a directory outside your home folder (for example, an external flash/thumb drive). You can extend this access using Flatseal, which itself can be installed via Flatpak.
4+
5+
## Setting up Flatseal
26

37
- Step 1
8+
49
```
5-
sudo apt install curl -y && curl https://raw.githubusercontent.com/FrameworkComputer/linux-docs/main/flatpaks/mission-center-installer.sh | bash
10+
sudo apt install curl -y && \
11+
curl -O https://raw.githubusercontent.com/FrameworkComputer/linux-docs/main/flatpaks/flatseal-installer.sh && \
12+
bash flatseal-installer.sh
613
```
714

8-
- Step 2
15+
Mission Center Installer for Ubuntu 24.04
16+
17+
- Step 1
918

10-
Log out, log back in or reboot
19+
```
20+
sudo apt install curl -y && \
21+
curl -O https://raw.githubusercontent.com/FrameworkComputer/linux-docs/main/flatpaks/mission-center-installer.sh && \
22+
bash mission-center-installer.sh
23+
```
24+
25+
- Step 2
1126

12-
![image](https://raw.githubusercontent.com/FrameworkComputer/linux-docs/main/flatpaks/images/mission.png)
27+
Log out, then log back in or reboot.

framework13/Fedora41-amd-fw13.md

+33-30
Original file line numberDiff line numberDiff line change
@@ -49,26 +49,28 @@ sudo dnf upgrade
4949
&nbsp;
5050
&nbsp;
5151

52+
### Bonus Step (for former Mac users) Reduce Font Scaling to Match Your Needs
5253

54+
We received feedback that for users coming from OS X, installing GNOME Tweaks, browsing to Fonts, and reducing the font size from 1.00 to 0.80 may be preferred.
5355

54-
## Optional and *only if needed* - current AMD Ryzen 7040 Series workarounds to common issues
55-
56-
### To prevent graphical artifacts from appearing:
57-
(Note, this workaround may be unneeded as it is difficult to reproduce, however, if you find you're experiencing [the issue described here](https://bugzilla.redhat.com/show_bug.cgi?id=2247154#c3), you can implement this boot parameter)
58-
59-
60-
- Browse to the horizontal line in the upper left corner, click to open it.
61-
- Type out the word terminal, click to open it.
62-
- Then press the enter key, user password, enter key.
63-
56+
- Goto Displays, set scaling to 200%. This will look too large, so let's fix the fonts.
57+
- Install with:
58+
6459
```
65-
sudo grubby --update-kernel=ALL --args="amdgpu.sg_display=0"
60+
sudo dnf install gnome-tweaks -y
6661
```
67-
> **TIP:** You can use the little clipboard icon to the right of the code to copy to your clipboard.
6862

63+
- Open Tweaks by using the "Super" or Windows key, search tweaks, and enter.
6964

70-
**Reboot**
65+
- At the top, select fonts. Now in that panel, scroll all the way down. Look for Size. Change from 1.00 to 0.80. Close Tweaks.
7166

67+
Note: This is for the displays for the laptop only. This will look super odd on external displays and likely too large even still.
68+
69+
&nbsp;
70+
&nbsp;
71+
&nbsp;
72+
73+
## Optional and *only if needed* - current AMD Ryzen 7040 Series workarounds to common issues
7274

7375
### Buzzing sound from 3.5mm jack
7476

@@ -105,30 +107,31 @@ sudo tee /etc/modprobe.d/alsa.conf <<< "options snd-hda-intel index=1,0 model=au
105107
&nbsp;
106108
&nbsp;
107109

108-
## MediaTek Bluetooth with s2idle workaround
110+
-------------------------------------------------------------------------------
109111

110-
- [Simply visit this page](https://github.com/FrameworkComputer/linux-docs/blob/main/hibernation/kernel-6-11-workarounds/suspend-hibernate-bluetooth-workaround.md#workaround-for-suspendhibernate-black-screen-on-resume-kernel-611) (new tab), copy/paste the one liner, reboot. Now Bluetooth will stop for suspend and resume when you resume from s2idle suspend.
112+
## (No Longer Needed) ~~Optional and *only if needed* - current AMD Ryzen 7040 Series workarounds to common issues~~
111113

112-
&nbsp;
113-
&nbsp;
114-
&nbsp;
115-
### Bonus Step (for former Mac users) Reduce Font Scaling to Match Your Needs
114+
### ~~To prevent graphical artifacts from appearing:~~
115+
~~(Note, this workaround may be unneeded as it is difficult to reproduce, however, if you find you're experiencing [the issue described here](https://bugzilla.redhat.com/show_bug.cgi?id=2247154#c3), you can implement this boot parameter)~~
116116

117-
We received feedback that for users coming from OS X, installing GNOME Tweaks, browsing to Fonts, and reducing the font size from 1.00 to 0.80 may be preferred.
118117

119-
- Goto Displays, set scaling to 200%. This will look too large, so let's fix the fonts.
120-
- Install with:
121-
118+
- ~~Browse to the horizontal line in the upper left corner, click to open it.~~
119+
- ~~Type out the word terminal, click to open it.~~
120+
- ~~Then press the enter key, user password, enter key.~~
121+
122122
```
123-
sudo dnf install gnome-tweaks -y
123+
sudo grubby --update-kernel=ALL --args="amdgpu.sg_display=0"
124124
```
125+
> ~~**TIP:** You can use the little clipboard icon to the right of the code to copy to your clipboard.~~
125126
126-
- Open Tweaks by using the "Super" or Windows key, search tweaks, and enter.
127127

128-
- At the top, select fonts. Now in that panel, scroll all the way down. Look for Size. Change from 1.00 to 0.80. Close Tweaks.
128+
~~**Reboot**~~
129+
130+
131+
132+
133+
## ~~MediaTek Bluetooth with s2idle workaround~~
134+
135+
- ~~[Simply visit this page](https://github.com/FrameworkComputer/linux-docs/blob/main/hibernation/kernel-6-11-workarounds/suspend-hibernate-bluetooth-workaround.md#workaround-for-suspendhibernate-black-screen-on-resume-kernel-611) (new tab), copy/paste the one liner, reboot. Now Bluetooth will stop for suspend and resume when you resume from s2idle suspend.~~
129136

130-
Note: This is for the displays for the laptop only. This will look super odd on external displays and likely too large even still.
131137

132-
&nbsp;
133-
&nbsp;
134-
&nbsp;

0 commit comments

Comments
 (0)