Skip to content

Commit 2738ac9

Browse files
authored
Add workaround for Ubuntu 25.10 tablet mode bug
Added a temporary workaround for a bug in tablet mode on Ubuntu 25.10, including instructions for enabling and disabling the workaround. CCing @JohnAZoidberg - I will file the ticket tomorrow.
1 parent f401e0c commit 2738ac9

File tree

1 file changed

+115
-0
lines changed

1 file changed

+115
-0
lines changed

framework12/Ubuntu-25-04-accel-ubuntu25.04.md

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,118 @@ Then you can check if screen rotation works:
2626
```
2727

2828
> Tablet rotation mode should work immediately. Howver if for some reason it does not, reboot then test rotation again. Remember to flip the the screen completely back to test rotation properly.
29+
30+
31+
---------------------------------------------------
32+
33+
### Temporary workaround for a 25.10 tablet mode bug
34+
35+
I will be getting this in front of engineering, _but in the meantime_. this is a workaround based [on this thread](https://community.frame.work/t/ubuntu-25-10-on-framework-laptop-12/77416/16?u=matt_hartley).
36+
37+
This has been heavily tested and provides an immediate workaround for now.
38+
39+
Terminal, paste, enter, password when prompted, done. **No ./script stuff.**
40+
41+
**Enable workaround**
42+
43+
```
44+
sudo bash -c '
45+
46+
echo "Creating /usr/local/sbin/reload-soc-module.sh..."
47+
{
48+
mkdir -p /usr/local/sbin &&
49+
cat << "EOF" > /usr/local/sbin/reload-soc-module.sh
50+
#!/bin/bash
51+
echo "Removing soc_button_array..."
52+
if ! rmmod soc_button_array 2>/dev/null; then
53+
echo "Warning: soc_button_array was not loaded or could not be removed."
54+
fi
55+
56+
echo "Loading soc_button_array..."
57+
if ! modprobe soc_button_array; then
58+
echo "ERROR: Failed to load soc_button_array module."
59+
exit 1
60+
fi
61+
62+
echo "soc_button_array reloaded successfully."
63+
EOF
64+
} || { echo "ERROR: Failed to create reload-soc-module.sh"; exit 1; }
65+
66+
chmod +x /usr/local/sbin/reload-soc-module.sh
67+
68+
echo "Creating systemd service..."
69+
{
70+
cat << "EOF" > /etc/systemd/system/reload-soc-module.service
71+
[Unit]
72+
Description=Ubuntu 25.10 workaround to reload soc_button_array
73+
After=network.target
74+
75+
[Service]
76+
Type=simple
77+
ExecStart=/usr/local/sbin/reload-soc-module.sh
78+
79+
[Install]
80+
WantedBy=multi-user.target
81+
EOF
82+
} || { echo "ERROR: Failed to create systemd service file"; exit 1; }
83+
84+
echo "Reloading systemd..."
85+
if ! systemctl daemon-reload; then
86+
echo "ERROR: systemctl daemon-reload failed."
87+
exit 1
88+
fi
89+
90+
echo "Enabling service..."
91+
if ! systemctl enable reload-soc-module.service; then
92+
echo "ERROR: Failed to enable reload-soc-module.service"
93+
exit 1
94+
fi
95+
96+
echo "Starting service..."
97+
if ! systemctl start reload-soc-module.service; then
98+
echo "ERROR: Failed to start reload-soc-module.service"
99+
exit 1
100+
fi
101+
102+
echo "SUCCESS: soc_button_array reload service installed and running."
103+
104+
'
105+
```
106+
107+
**Later on when a fix has been provided, this is the undo method**
108+
109+
```
110+
sudo bash -c '
111+
112+
echo "Stopping reload-soc-module.service..."
113+
if ! systemctl stop reload-soc-module.service 2>/dev/null; then
114+
echo "Warning: Service was not running or could not be stopped."
115+
fi
116+
117+
echo "Disabling reload-soc-module.service..."
118+
if ! systemctl disable reload-soc-module.service 2>/dev/null; then
119+
echo "Warning: Service could not be disabled (may not exist)."
120+
fi
121+
122+
echo "Removing service file..."
123+
if ! rm -f /etc/systemd/system/reload-soc-module.service; then
124+
echo "ERROR: Could not remove /etc/systemd/system/reload-soc-module.service"
125+
exit 1
126+
fi
127+
128+
echo "Removing /usr/local/sbin/reload-soc-module.sh..."
129+
if ! rm -f /usr/local/sbin/reload-soc-module.sh; then
130+
echo "ERROR: Could not remove /usr/local/sbin/reload-soc-module.sh"
131+
exit 1
132+
fi
133+
134+
echo "Reloading systemd..."
135+
if ! systemctl daemon-reload; then
136+
echo "ERROR: systemctl daemon-reload failed."
137+
exit 1
138+
fi
139+
140+
echo "Undo complete: soc reload workaround fully removed - REBOOT."
141+
142+
'
143+
```

0 commit comments

Comments
 (0)