Skip to content

Commit bfa528c

Browse files
authored
Update readme.md
## Framework Enhanced Diagnostic Tool aka "combined.sh" This intelligent diagnostic script collects and analyzes system logs from your Framework laptop, automatically detecting hardware issues and providing actionable recommendations in plain English. It's specifically designed for Framework laptops with model-aware analysis and Framework-specific troubleshooting guidance.
1 parent f209a7c commit bfa528c

File tree

1 file changed

+193
-73
lines changed

1 file changed

+193
-73
lines changed

log-helper/readme.md

Lines changed: 193 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -1,129 +1,249 @@
1+
## Framework Enhanced Diagnostic Tool aka "combined.sh"
2+
3+
This intelligent diagnostic script collects and analyzes system logs from your Framework laptop, automatically detecting hardware issues and providing actionable recommendations in plain English. It's specifically designed for Framework laptops with model-aware analysis and Framework-specific troubleshooting guidance.
4+
5+
## Table of Contents
6+
7+
- [TL;DR - Quick Start](#tldr---quick-start)
8+
- [Key Features](#key-features)
9+
- [Which distros does this work on?](#which-distros-does-this-work-on)
10+
- [How to use this tool?](#how-to-use-this-tool)
11+
- [Prerequisites](#prerequisites)
12+
- [Quick Start](#quick-start)
13+
- [Diagnostic Options](#diagnostic-options)
14+
- [1. Last X Minutes](#1-last-x-minutes-)
15+
- [2. Last 24 Hours](#2-last-24-hours-)
16+
- [3. Specific Time Range](#3-specific-time-range-)
17+
- [4. Filter Previously Created Log File](#4-filter-previously-created-log-file-)
18+
- [Understanding the Results](#understanding-the-results)
19+
- [System Information](#-system-information)
20+
- [Intelligent Recommendations](#-intelligent-recommendations)
21+
- [Pattern Analysis](#-pattern-analysis)
22+
- [Framework-Specific Features](#-framework-specific-features)
23+
- [Example Output](#example-output)
24+
- [When to Contact Support](#when-to-contact-support)
25+
- [Quick Commands](#quick-commands)
26+
- [Framework Resources](#framework-resources)
27+
- [Advanced Information](#advanced-information)
28+
29+
### TL;DR - Quick Start
30+
31+
**Download and run immediately:**
32+
```bash
33+
curl -s https://raw.githubusercontent.com/FrameworkComputer/linux-docs/main/log-helper/combined.sh -o combined.sh && chmod +x combined.sh && bash combined.sh
34+
```
135

2-
## Framework Log Helper aka "combined.sh"
36+
Choose option 1 or 2, check the "INTELLIGENT RECOMMENDATIONS" section in the output for actionable solutions.
337

4-
This script collects and analyzes system logs from your computer, helping Framework support to identify potential issues or errors.
5-
It can also gather logs from specific time ranges or filter existing logs for keywords, providing summaries of potential problems related to graphics, networking, and critical sytem errors.
38+
---
639

7-
### Which distros does this work on?
40+
### Key Features
841

9-
**This is tested to work with the following Linux distros.**
42+
- **🔍 Intelligent Issue Detection**: Automatically identifies GPU hangs, thermal problems, WiFi issues, USB connection problems, and more
43+
- **🖥️ Framework-Specific Analysis**: Detects your exact Framework model and provides model-specific recommendations
44+
- **📋 Plain English Recommendations**: Translates technical errors into clear, actionable advice
45+
- **🌡️ Real-Time Hardware Monitoring**: Shows current temperatures, power status, and connectivity
46+
- **⚡ Smart Noise Filtering**: Focuses on actual problems, ignoring routine system operations
47+
- **🔧 Comprehensive Hardware Detection**: Identifies your GPU, WiFi card, storage, RAM, and expansion cards
1048

11-
- Ubuntu
12-
- Fedora
13-
- Bazzite/Project Bluefin (curl is installed already)
14-
- (This "should work" on anything using curl with sane paths to dmesg and journalctl)
49+
### Which distros does this work on?
1550

16-
### How to use this tool?
51+
**This tool works with all major Linux distributions and automatically installs required packages:**
1752

18-
####
19-
- [Deep dive into how it works](https://github.com/FrameworkComputer/linux-docs/blob/main/log-helper/how-it-works.md#how-it-works).
20-
- [Troubleshooting common issues](https://github.com/FrameworkComputer/linux-docs/blob/main/log-helper/how-it-works.md#troubleshooting).
53+
- **Ubuntu/Debian/Linux Mint** (officially supported by Framework)
54+
- **Fedora** (officially supported by Framework)
55+
- **Bazzite/Project Bluefin** (officially supported by Framework)
56+
- **Arch Linux/Manjaro/EndeavourOS** (community supported)
57+
- **openSUSE Tumbleweed/Leap** (community supported)
58+
- **NixOS** (community supported)
59+
- **Pop!_OS** (community supported)
2160

22-
**For customer self-support, this is useful in that you can grab your logs from any of the three options:**
61+
### How to use this tool?
2362

24-
### Install Curl
63+
#### Prerequisites
2564

26-
Curl should already be installed, but just in case:
65+
Most systems already have curl installed. If needed:
2766

28-
#### Fedora
29-
```
67+
**Fedora:**
68+
```bash
3069
sudo dnf install curl -y
3170
```
3271

33-
or
72+
**Ubuntu/Debian:**
73+
```bash
74+
sudo apt install curl -y
75+
```
76+
77+
**Bazzite/Bluefin:** Already included, no installation needed.
3478

35-
#### Ubuntu
79+
#### Quick Start
80+
81+
**Download and run the diagnostic tool:**
82+
```bash
83+
curl -s https://raw.githubusercontent.com/FrameworkComputer/linux-docs/main/log-helper/combined.sh -o combined.sh && chmod +x combined.sh && bash combined.sh
3684
```
37-
sudo apt install curl -y
85+
86+
**For future runs:**
87+
```bash
88+
./combined.sh
3889
```
3990

40-
or
91+
### Diagnostic Options
4192

42-
#### Bazzite or Bluefin
93+
#### 1. Last X Minutes ⏰
94+
**Best for recent issues**
4395

44-
Simply goto the next step below to run it, nothing else needs to be added.
96+
- Select option `1`
97+
- Enter the number of minutes (e.g., `30` for issues that happened 30 minutes ago)
98+
- The tool will analyze logs from that timeframe and provide recommendations
4599

46-
#### (Either distro) Then run:
100+
![Last X Minutes](https://raw.githubusercontent.com/FrameworkComputer/linux-docs/refs/heads/main/log-helper/images/1.png "Last X Minutes")
47101

48-
```
49-
curl -s https://raw.githubusercontent.com/FrameworkComputer/linux-docs/main/log-helper/combined.sh -o combined.sh && clear && bash combined.sh
50-
```
102+
![Finshed scan](https://raw.githubusercontent.com/FrameworkComputer/linux-docs/refs/heads/main/log-helper/images/2.png "Finshed scan")
51103

52-
<br />
104+
**Example use cases:**
105+
- Graphics crashed while gaming
106+
- WiFi suddenly disconnected
107+
- System became unresponsive
108+
- Thermal throttling during heavy workload
53109

54-
#### Running the script in the future
110+
#### 2. Last 24 Hours 📅
111+
**Best for ongoing or intermittent issues**
55112

56-
>After the install, you can run going forward with the following in the HOME directory. So merely opening a terminal and running this will work if the original script has not been moved.<br />
113+
- Select option `2`
114+
- Analyzes the full day of system logs
115+
- Identifies patterns like recurring WiFi drops or thermal cycling
57116

58-
```
59-
bash combined.sh
60-
```
61-
<br /><br />
117+
**Example use cases:**
118+
- Random system freezes throughout the day
119+
- Intermittent USB connection issues
120+
- Gradual performance degradation
121+
- Battery or charging problems
122+
123+
#### 3. Specific Time Range 🎯
124+
**Best when you know exactly when the issue occurred**
125+
126+
- Select option `3`
127+
- Enter start time: `YYYY-MM-DD HH:MM` (24-hour format)
128+
- Enter end time: `YYYY-MM-DD HH:MM`
62129

63-
----------------------------------------------------------
130+
**Example:**
131+
- Start: `2025-01-15 14:30` (Jan 15, 2:30 PM)
132+
- End: `2025-01-15 15:00` (Jan 15, 3:00 PM)
64133

65-
#### Last X Minutes (How many minutes ago do you wish to gather logs from)
134+
#### 4. Filter Previously Created Log File 🔍
135+
**For advanced analysis of existing logs**
66136

67-
- Paste in the code mentioned previously, press enter, type in option 1.
137+
- Run after creating a log file with options 1-3
138+
- Search for specific keywords or phrases
139+
- Creates `filtered_log.txt` with matching entries
68140

69-
- Type in the Enter the number of minutes you wish to gather logs from.
70-
>For example, if the issue happened about 15 minutes ago, you might choose to type in 25 to gather logs from 25 minutes ago. This gives you a buffer of time in case you're not sure.
141+
### Understanding the Results
71142

72-
- Once the minutes are typed into the terminal as shown below (using your number keys), press enter. Enter your sudo password when prompted.
143+
The diagnostic tool creates `combined_log.txt` with several sections:
73144

74-
- First progress bar will run, then the second one. Once completed, the log file combined_log.txt will appear in your home directory.
75-
<br />
145+
#### 🔧 System Information
146+
- Framework model detection
147+
- Hardware specifications (GPU, WiFi, RAM, storage)
148+
- Current temperatures and power status
149+
- Linux distribution compatibility status
76150

77-
![Last X Minutes](https://raw.githubusercontent.com/FrameworkComputer/linux-docs/main/log-helper/images/1.gif "Last X Minutes")
151+
#### ⚡ Intelligent Recommendations
152+
**Color-coded by severity:**
78153

79-
<br /><br />
154+
- **🔴 IMMEDIATE**: Stop using immediately (dangerous temperatures, hardware faults)
155+
- **🟠 URGENT**: Address soon (GPU crashes, memory issues, storage problems)
156+
- **🟡 IMPORTANT**: Should fix (USB issues, WiFi problems, audio issues)
157+
- **🔵 INFORMATIONAL**: Status updates (distro compatibility, normal thermal behavior)
158+
- **🟢 PREVENTIVE**: Proactive suggestions (elevated temperatures, minor issues)
80159

81-
----------------------------------------------------------
160+
#### 📊 Pattern Analysis
161+
- WiFi stability (tracks disconnection frequency)
162+
- USB connection reliability
163+
- GPU stability monitoring
164+
- Thermal management effectiveness
82165

83-
#### Last 24 hours (As it says, 24 hours from this moment of logs)
166+
#### 🎯 Framework-Specific Features
84167

85-
- Paste in the code mentioned previously, press enter, type in option 2.
86-
>This will run a bit slower, depending on your log(s) size.
168+
**Model-Aware Recommendations:**
169+
- Framework Laptop 13: 60W charger verification
170+
- Framework Laptop 16: 180W charger verification + GPU module checks
171+
- Framework Desktop: Power supply diagnostics
172+
- Expansion card troubleshooting
87173

88-
- First progress bar will run, then the second one. Once completed, the log file combined_log.txt will appear in your home directory.
174+
**Thermal Management:**
175+
- Modern AMD (7040+ series): Higher temperature tolerance (95°C normal)
176+
- Intel processors: Conservative thresholds (80°C watch point)
177+
- Model-specific cooling guidance
89178

90-
<br /><br />
91-
----------------------------------------------------------
179+
**Hardware Detection:**
180+
- MediaTek WiFi cards (MT7921/MT7925)
181+
- Intel WiFi cards (iwlwifi)
182+
- AMD GPUs (RDNA 2/3)
183+
- Intel integrated graphics
184+
- Framework expansion cards
92185

93-
#### Specific time range
186+
### Example Output
94187

95-
- Paste in the code mentioned previously, press enter, type in option 3.
188+
![Details](https://raw.githubusercontent.com/FrameworkComputer/linux-docs/refs/heads/main/log-helper/images/4.png "Details")
96189

97-
- You will be asked for a START TIME. This is the beginning period you wish to gather logs from. Enter in the date and time in this format: YYYY-MM-DD HH:MM and then press enter.
98-
>You do not need to add minutes (MM) if you do not want to - this works fine with YYYY-MM-DD HH instead. Time must be military time. So for 2pm for example, that would be 14:00.
99190

100-
**For all of the above examples, your log will be sent to combined_log.txt in your home directory.**
191+
```
192+
🖥️ Framework Laptop 16 - checking GPU module and enhanced thermal envelope
193+
🌡️ Current CPU: 67°C via Tctl (Modern AMD: runs hot by design - watch at 90°C, throttles at 95°C, critical at 100°C, emergency at 105°C)
194+
✅ No issues detected
195+
196+
🔵 INFORMATIONAL Status:
197+
• [DISTRO_COMPATIBILITY] ✅ Your Linux distribution (fedora 42) is officially supported and tested by Framework for your Framework Laptop 16 → You should have the best experience and full hardware support
198+
```
101199

200+
### When to Contact Support
102201

103-
**Note, each time you collect logs, you will be overwriting the previous combined_log.txt file.**
202+
![Intelligent recommendations](https://raw.githubusercontent.com/FrameworkComputer/linux-docs/refs/heads/main/log-helper/images/3.png "Intelligent recommendations")
104203

105-
![Specific Time Range](https://raw.githubusercontent.com/FrameworkComputer/linux-docs/main/log-helper/images/2.gif "Specific Time Range")
204+
**Contact Framework Support if you see:**
205+
- Multiple 🔴 IMMEDIATE or 🟠 URGENT recommendations
206+
- Repeated GPU crashes or system freezes
207+
- Hardware fault messages (Machine Check, MCE errors)
208+
- Persistent thermal issues despite cleaning
106209

107-
<br /><br />
108-
----------------------------------------------------------
210+
**Include these files with your support ticket:**
211+
- `combined_log.txt` (the full diagnostic report)
212+
- Screenshots of any error messages
213+
- Description of when the issue occurs
109214

110-
#### Filter previously created log file
215+
### Quick Commands
111216

112-
>This is an option used by support and those who know what they're look for. Looking at your logs, you are going to see a ton of verbose messages. 99.9% of the "errors" or warnings you see are fine. This is normal. Even some of the items that appear in "Focused Summary of Potential Issues" and "General Summary of Potential Issues (excluding gnome-shell errors)" are fine. We simply want to gather everything that logs collect. And while the summaries are verbose, they are not an automatic indication that anything is wrong. For newer users, we recommend leaving option 4 to Framework Support staff.
217+
After running the diagnostic:
113218

114-
- Collect logs using one of the methods indicated above. Note, each time you collect logs, you will be overwriting the previous combined_log.txt file.
219+
```bash
220+
# View full report
221+
cat combined_log.txt
115222

116-
- Paste in the code mentioned previously, press enter, type in option 4.
223+
# View only recommendations
224+
grep -A 20 "INTELLIGENT RECOMMENDATIONS" combined_log.txt
225+
226+
# Monitor temperatures in real-time
227+
watch -n 2 sensors
228+
229+
# Check current system status
230+
sensors
231+
```
117232

118-
- You will be asked two questions; do you wish to grep for a keyword or a key phrase.
119-
> Make your selection if you are familiar with Linux. If you are not, this is an ideal time to stop, open a support ticket. When support replies, send them the combined_log.txt file in your home directory.
233+
### Framework Resources
120234

121-
- If you selected Grep for a key phrase, type in the phrase without any quotes. Press enter.
235+
**Support & Documentation:**
236+
- **Support Center**: https://frame.work/support
237+
- **Linux Guides**: https://frame.work/linux
238+
- **Community Forum**: https://community.frame.work/
239+
- **Knowledge Base**: https://knowledgebase.frame.work/categories/linux-S1IUEcFbkx
240+
- **Linux Tools and Scripts**: https://knowledgebase.frame.work/linux-on-framework-tools-and-scripts-rymax1Jdyg
241+
- **Framework Guides**: https://guides.frame.work/
242+
- **Enhanced WiFi Analyzer**: https://github.com/FrameworkComputer/linux-docs/tree/main/Enhanced-WiFi-Analyzer
122243

123-
- If you selected Grep for a keyword, type in the keyword without. Press enter.
244+
### Advanced Information
124245

125-
- Your filtered_log.txt located in your home directory file will contain your query.
126-
-
127-
![Filter Previously Created Log File](https://raw.githubusercontent.com/FrameworkComputer/linux-docs/main/log-helper/images/3.gif "Filter Previously Created Log File")
246+
- [Deep dive into how it works](https://github.com/FrameworkComputer/linux-docs/blob/main/log-helper/how-it-works.md#how-it-works)
247+
- [Troubleshooting common issues](https://github.com/FrameworkComputer/linux-docs/blob/main/log-helper/how-it-works.md#troubleshooting)
128248

129-
<br /><br />
249+
**Note:** Each diagnostic run overwrites the previous `combined_log.txt` file. Save important reports before running again.

0 commit comments

Comments
 (0)