From ea7f65725ed8d50cbd5e1eb2206a32e02d012419 Mon Sep 17 00:00:00 2001 From: Alexander Shaduri Date: Tue, 8 Feb 2022 15:28:13 +0400 Subject: [PATCH] Updated github pages and README.md. --- README.md | 118 ++++++------------- docs/Support.md | 86 -------------- docs/_config.yml | 6 + docs/downloads.md | 75 ++++++++++++ docs/index.html.redirecting | 5 - docs/index.md | 150 +----------------------- docs/index.md.stock | 37 ------ docs/{Screenshots.md => screenshots.md} | 6 +- docs/{Smart.md => smart.md} | 7 +- docs/software_requirements.md | 26 ++++ docs/support.md | 46 ++++++++ docs/supported_hardware.md | 21 ++++ docs/troubleshooting.md | 70 +++++++++++ docs/usage.md | 61 ++++++++++ 14 files changed, 347 insertions(+), 367 deletions(-) delete mode 100644 docs/Support.md create mode 100644 docs/downloads.md delete mode 100644 docs/index.html.redirecting mode change 100644 => 120000 docs/index.md delete mode 100644 docs/index.md.stock rename docs/{Screenshots.md => screenshots.md} (77%) rename docs/{Smart.md => smart.md} (94%) create mode 100644 docs/software_requirements.md create mode 100644 docs/support.md create mode 100644 docs/supported_hardware.md create mode 100644 docs/troubleshooting.md create mode 100644 docs/usage.md diff --git a/README.md b/README.md index eaf0e12..32e3178 100644 --- a/README.md +++ b/README.md @@ -3,12 +3,12 @@ ***Hard disk drive and SSD health inspection tool*** -[![license: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) -![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/ashaduri/gsmartcontrol) +[![Generic badge](https://img.shields.io/badge/Homepage-gsmartcontrol.shaduri.dev-brightgreen.svg)](https://gsmartcontrol.shaduri.dev) +![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/ashaduri/gsmartcontrol?label=Version) +[![license: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) \ +![Platforms](https://img.shields.io/badge/Platforms-linux%20%7C%20windows%20%7C%20macos%20%7C%20*bsd-blue) +[![Packaging status](https://repology.org/badge/tiny-repos/gsmartcontrol.svg?header=Software%20distributions%20and%20repositories)](https://repology.org/project/gsmartcontrol/versions) \ [![Codacy Badge](https://api.codacy.com/project/badge/Grade/528f4f7aaf0e446abf7e55d2affc7bec)](https://app.codacy.com/gh/ashaduri/gsmartcontrol?utm_source=github.com&utm_medium=referral&utm_content=ashaduri/gsmartcontrol&utm_campaign=Badge_Grade_Settings) -![Platforms](https://img.shields.io/badge/platforms-linux%20%7C%20windows%20%7C%20macos%20%7C%20*bsd-blue) -[![Packaging status](https://repology.org/badge/tiny-repos/gsmartcontrol.svg?header=software%20distributions%20and%20repositories)](https://repology.org/project/gsmartcontrol/versions) - --- @@ -21,88 +21,40 @@ Technology) data on modern hard disk and solid-state drives. It allows you to inspect the drive's SMART data to determine its health, as well as run various tests on it. + +## Downloads + +The [Downloads](https://gsmartcontrol.shaduri.dev/downloads.html) page contains +all the available packages of GSmartControl. + + +## Features +- automatically reports and highlights any anomalies; +- allows enabling/disabling SMART; +- supports configuration of global and per-drive options for smartctl; +- performs SMART self-tests; +- displays drive identity information, capabilities, attributes, device statistics, etc...; +- can read in smartctl output from a saved file, interpreting it as a read-only virtual device; +- works on most smartctl-supported operating systems; +- has extensive help information. + + +### Supported Hardware + GSmartControl supports ATA drives (both PATA and SATA), various USB to -ATA bridges and drives behind some RAID controllers: -* Adaptec (Linux, some models only) -* Areca (Linux, Windows) -* HP CCISS (Linux) -* HP hpsa / hpahcisr (Linux) -* Intel Matrix Storage (CSMI) (Linux, Windows, FreeBSD) -* LSI 3ware (Linux, Windows) -* LSI MegaRAID (Windows) - -Note: Smartmontools supports even more RAID Controllers. The drives -behind such controllers can be manually added to GSmartControl using -"Add Device..." functionality or `--add-device` command-line option. -See [Supported RAID Controllers](https://www.smartmontools.org/wiki/Supported_RAID-Controllers). +ATA bridges, and drives behind some RAID controllers. +Please see the +[Supported Hardware](https://gsmartcontrol.shaduri.dev/supported_hardware.html) page +for more information. -## Software Requirements - -Note: If using the official Windows package, no additional software is required. - -### Build Requirements -* [pcre1](https://www.pcre.org) -* [GTK+ 3](https://www.gtk.org), version 3.4 or higher -* [Gtkmm](https://www.gtkmm.org), version 3.4 or higher - -### Runtime Requirements -* [smartmontools](https://www.smartmontools.org/) -* xterm (optional) - -### Supported Operating Systems -* Linux - All the popular configurations should work. -* FreeBSD - Tested with DesktopBSD / x86. -* NetBSD - Tested with NetBSD / x86. -* OpenBSD - Tested with OpenBSD / x86-64. -* DragonFlyBSD - Code written but no testing has been performed yet. Expected -to work without any issues. -* Windows Vista SP2 (32-bit and 64-bit), Windows 7 SP1, Windows Server 2008, -Windows 8.1, Windows 10. The Windows port uses pd0, pd1, etc... -for physical drives 0, 1, etc... . -* Mac OS X. -* Solaris. -* QNX - Code written but no testing has been performed yet. - - -## Usage - -### Command-Line Options - -GSmartControl inherits options from GTK+ and other libraries, so be sure to -run it with `--help` option to get a full list of accepted parameters. -Note: The Windows version may not have a text output at all, so `--help` and -similar arguments won't have any effect. - -The most important parameters are: - -`-?`, `--help` - Show help options. - -`-l`, `--no-locale` - Don't use system locale. - -`-V`, `--version` - Display version information. - -`--no-scan` - Don't scan devices on startup. - -`--no-hide-tabs` - Don't hide non-identity tabs when SMART is disabled. Useful -for debugging. - -`--add-virtual ` - Load smartctl data from file, creating a virtual drive. You -can specify this option multiple times. - -`--add-device ::[::]` - Add a device to device list. -This option is useful with `--no-scan` to list certain drives only. You can specify -this option multiple times. -Example: -`--add-device /dev/sda --add-device /dev/twa0::3ware,2 --add-device -'/dev/sdb::::-T permissive'`. - -`-v`, `--verbose` - Enable verbose logging; same as `--verbosity-level 5`. - -`-q`, `--quiet` - Disable logging; same as `--verbosity-level 0`. - -`-b`, `--verbosity-level` - Set verbosity level \[0-5]. +### Supported Platforms +GSmartControl supports all major desktop operating systems, including +Linux, Windows, macOS, FreeBSD, and other BSD-style operating systems. +Please see the +[Software Requirements](https://gsmartcontrol.shaduri.dev/software_requirements.html) page +for more information. ## Copyright and Licensing diff --git a/docs/Support.md b/docs/Support.md deleted file mode 100644 index 859e6bc..0000000 --- a/docs/Support.md +++ /dev/null @@ -1,86 +0,0 @@ -# GSmartControl - Support - -## Reporting Bugs - -Please report bugs at [GSmartControl's GitHub Page](https://github.com/ashaduri/gsmartcontrol). - -If it is a SMART or drive-related problem, please try to test it with smartctl first. -Chances are, the problem you're experiencing is not tied to GSmartControl, -but is a drive firmware or smartctl problem. For example, to see complete -information about your /dev/sda drive, type the following in a terminal -emulator (as root, using sudo or su): -``` -smartctl -x /dev/sda -``` -**Note:** If using Windows, the device name should be `/dev/pd1` for the -second physical drive, etc... Run cmd as administrator first. - -If you still think it's a GSmartControl issue, please collect the following -information about your system. Without it, it may be very hard or impossible to fix the bug. - -- Which operating system you use (for example, openSUSE Leap 15.3). -- Which version of GTK and Gtkmm you have installed. Finding this out is very -distribution-specific. For example, on openSUSE it would be `rpm -q gtk3 gtkmm3`. -Some distributions have `gtkmm30` instead. You may also search them in your -distribution's graphical package manager, if there is one. -- Execution log from the program, if possible. To obtain it, run the program -with `-v` option, e.g. (type the following in a terminal emulator or Run dialog): - ``` - gsmartcontrol-root -v - ``` -- Perform the steps needed to reproduce the bug, then go to -"Options -> View Execution Log", and click "Save All". -**Note:** On Windows, `-v` switch is on by default. -- Detailed description of steps you performed when the bug occurred. - -Once you have this information, please open an issue on -[GitHub's Issue Tracker](https://github.com/ashaduri/gsmartcontrol/issues). -I may refer you to smartmontools support if it's a bug in smartmontools -and not GSmartControl. - -## Contact -You may contact me (Alexander Shaduri) directly at [ashaduri@gmail.com](mailto:ashaduri@gmail.com). - - -## Troubleshooting - -### Known Issues - -- Only ATA drives (both PATA and SATA), various USB to ATA bridges -and drives behind some RAID controllers are supported for now. -The main reasons for this are: - - We can't support drives which don't work with smartmontools. - This affects drives which don't support SMART or don't export SMART data - correctly (e.g. some USB enclosures, RAIDs, etc...). - - Smartctl's output for SCSI drives is completely different compared to ATA. - Also, SCSI drives are rarely found in desktop systems and the servers rarely - have X11 / Gtkmm running, so this is a low priority task. -- Immediate Offline Tests are not supported. I haven't found a way to reliably -monitor them. Besides, they run automatically anyway if Automatic Offline -Data Collection is enabled. -- Testing is only supported on drives which correctly report their progress -information in capabilities. -- Not all drives support disabling Automatic Offline Data Collection, even -if they report otherwise. Unfortunately, there's no way to detect such drives. - -### Smartctl Options -GSmartControl tries its best to guard the user from having to specify smartctl options. -However, this is not always possible due to drive firmware bugs, unimplemented -features, and so on. The -[smartctl manual page](https://www.smartmontools.org/browser/trunk/smartmontools/smartctl.8.in) -contains all the information you may need when dealing with smartctl. - -Additional information is available at [smartmontools.org](https://smartmontools.org) - -### Permission Problems -You need to be root/Administrator to perform anything useful with GSmartControl. -This is needed because most operating systems prohibit direct access to -hardware to users with non-administrative privileges. - -In Windows, UAC is automatically invoked when you run it. In other operating -systems, running gsmartcontrol-root (or using the desktop icon) will -automatically launch gsmartcontrol using the system's preferred su -mechanism - PolKit, kdesu, gnomesu, etc... - -Please don't set the "setuid" flag on smartctl binary. It is considered -a security risk. diff --git a/docs/_config.yml b/docs/_config.yml index 1b619ae..bf84b43 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -1 +1,7 @@ remote_theme: rundocs/jekyll-rtd-theme + +title: GSmartControl +description: Hard disk drive and SSD health inspection tool + +exclude: + - CNAME diff --git a/docs/downloads.md b/docs/downloads.md new file mode 100644 index 0000000..28e7e37 --- /dev/null +++ b/docs/downloads.md @@ -0,0 +1,75 @@ +# Downloads + +**Note to article writers:** When posting GSmartControl download links, please +link to this page instead of the individual files below. This way the users will always get +the latest version. + + +## Binary and Distribution-specific Packages + +### Linux + +Most Linux distributions already include GSmartControl in their repositories. +[Repology](https://repology.org/project/gsmartcontrol/versions) maintains a list +of GSmartControl packages available in each distribution. + +If the package contained in your favourite distribution or repository is not up-to-date yet, our own +[OBS Project Directory](http://download.opensuse.org/repositories/home:/alex_sh:/gsmartcontrol:/stable_latest/) +contains the latest GSmartControl packages for a number of Linux distributions. Please see +the [instructions](https://software.opensuse.org//download.html?project=home%3Aalex_sh%3Agsmartcontrol%3Astable_latest&package=gsmartcontrol) +for installing these packages. + +### Windows + +#### Windows Vista or Later + +- 32-bit installer **(use this if unsure)**: +[gsmartcontrol-1.1.4-win32.exe](https://github.com/ashaduri/gsmartcontrol/releases/download/v1.1.4/gsmartcontrol-1.1.4-win32.exe). +- 32-bit zip (portable): [gsmartcontrol-1.1.4-win32.zip](https://github.com/ashaduri/gsmartcontrol/releases/download/v1.1.4/gsmartcontrol-1.1.4-win32.zip). + + +- 64-bit installer: [gsmartcontrol-1.1.4-win64.exe](https://github.com/ashaduri/gsmartcontrol/releases/download/v1.1.4/gsmartcontrol-1.1.4-win64.exe). +- 64-bit zip (portable): [gsmartcontrol-1.1.4.win64.zip](https://github.com/ashaduri/gsmartcontrol/releases/download/v1.1.4/gsmartcontrol-1.1.4-win64.zip). + +#### Outdated: Windows XP, 2000 and 2003 + +The last version of GSmartControl that supports Windows XP, 2000 and 2003 +is **0.9.0**: +- Outdated 32-bit installer: [gsmartcontrol-0.9.0.exe](https://github.com/ashaduri/gsmartcontrol/releases/download/v0.9.0/gsmartcontrol-0.9.0.exe). +- Outdated 32-bit zip (portable): [gsmartcontrol-0.9.0-win32.zip](https://github.com/ashaduri/gsmartcontrol/releases/download/v0.9.0/gsmartcontrol-0.9.0-win32.zip). + + +### FreeBSD + +GSmartControl is [available](http://www.freshports.org/sysutils/gsmartcontrol) in the ports system. +Use `cd /usr/ports/sysutils/gsmartcontrol/ && make install clean` to install the port. +Use `pkg_add -r gsmartcontrol` to add the package. + + +### macOS / Darwin + +- [Homebrew](https://brew.sh/) project maintains +[package for GSmartControl](https://formulae.brew.sh/formula/gsmartcontrol). +See the [Usage](usage.md) page for information on how to run it. +- the [MacPorts](https://www.macports.org/) project also maintains a +[package for GSmartControl](https://github.com/macports/macports-ports/blob/master/sysutils/gsmartcontrol/Portfile). + + +### Live CD / DVD / USB / ... + +- [GParted Live](http://gparted.org/livecd.php) is an excellent bootable distribution +which includes GSmartControl. + + +## Source Code + +The latest source package: +[gsmartcontrol-1.1.4.tar.bz2](https://github.com/ashaduri/gsmartcontrol/releases/download/v1.1.4/gsmartcontrol-1.1.4.tar.bz2) \ +SHA1 sum: 770705e2a9d3a8000c6ca7d675be3339aa5cee7a + +If you're interested in development, you can check the +[GitHub Project](https://github.com/ashaduri/gsmartcontrol) page. + + +## Older Versions +Check the [GitHub Releases](https://github.com/ashaduri/gsmartcontrol/releases) page for older releases. diff --git a/docs/index.html.redirecting b/docs/index.html.redirecting deleted file mode 100644 index 42e19e3..0000000 --- a/docs/index.html.redirecting +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/docs/index.md b/docs/index.md deleted file mode 100644 index 6a52340..0000000 --- a/docs/index.md +++ /dev/null @@ -1,149 +0,0 @@ -# GSmartControl - -***Hard disk drive and SSD health inspection tool*** - ---- - -## Description - -[GSmartControl](https://gsmartcontrol.shaduri.dev) -is a graphical user interface for smartctl (from [smartmontools](https://www.smartmontools.org/) -package), which is a tool for -querying and controlling [SMART](https://en.wikipedia.org/wiki/S.M.A.R.T.) -(Self-Monitoring, Analysis, and Reporting -Technology) data on modern hard disk and solid-state drives. It allows you to -inspect the drive's SMART data to determine its health, as well as run various -tests on it. - - -## Features -- automatically reports and highlights any anomalies; -- allows enabling/disabling SMART; -- supports configuration of global and per-drive options for smartctl; -- performs SMART self-tests; -- displays drive identity information, capabilities, attributes, device statistics, etc...; -- can read in smartctl output from a saved file, interpreting it as a read-only virtual device; -- works on most smartctl-supported operating systems; -- has extensive help information. - - -## Supported Hardware - -GSmartControl supports ATA drives (both PATA and SATA), various USB to -ATA bridges and drives behind some RAID. - -See [Smartmontools USB Device Support](http://www.smartmontools.org/wiki/Supported_USB-Devices) -page for an (incomplete) list of supported USB to ATA bridges. - -GSmartControl supports the following RAID controllers: -- Adaptec (Linux, some models only) -- Areca (Linux, Windows) -- HP CCISS (Linux) -- HP hpsa / hpahcisr (Linux) -- Intel Matrix Storage (CSMI) (Linux, Windows, FreeBSD) -- LSI 3ware (Linux, Windows) -- LSI MegaRAID (Windows) - -Note: Smartmontools supports even -[more RAID Controllers](https://www.smartmontools.org/wiki/Supported_RAID-Controllers). -The drives behind such controllers can be manually entered in GSmartControl using -Add Device... functionality or `--add-device` command-line option. - - -## Downloads - -[GSmartControl at Repology](https://repology.org/project/gsmartcontrol/versions) - - -## Software Requirements - -### Supported Operating Systems -* Linux -* Windows Vista SP2 (32-bit and 64-bit) or later. The Windows port uses pd0, pd1, etc... -for physical drives 0, 1, etc... . -* FreeBSD -* NetBSD -* OpenBSD -* DragonFlyBSD -* macOS. -* Solaris. -* QNX - Code written but no testing has been performed yet. - -### Build Requirements -* [pcre1](https://www.pcre.org) -* [GTK+ 3](https://www.gtk.org), version 3.4 or higher -* [Gtkmm](https://www.gtkmm.org), version 3.4 or higher - -### Runtime Requirements -**Note:** Windows packages already include all the required software. -* [Smartmontools](https://www.smartmontools.org/) -* xterm (optional, needed to run `update-smart-drivedb`) - - -## Usage - -On Linux and Unix systems, use the desktop menu entry. Alternatively, you can -run `gsmartcontrol-root`, which invokes GSmartControl using your desktop's `su` mechanism. - -**Note for macOS:** When installed using Homebrew, GSmartControl can be run by -typing `gsmartcontrol` in Terminal. If all you get is `Command not found`, please run -a `brew doctor` command first. - - -### Command-Line Arguments - -**Note:** The Windows version may not output any text to a command-line window, -so `--help` and similar arguments will be of no help. - -The most important arguments are: - -`-?`, `--help` - Show help options. - -`-V`, `--version` - Display version information. - -`--no-scan` - Don't scan devices on startup. - -`--add-virtual ` - Load smartctl data from file, creating a virtual drive. You -can specify this option multiple times. - -`--add-device ::[::]` - Add a device to device list. -This option is useful with `--no-scan` to list certain drives only. You can specify -this option multiple times. -Example: -`--add-device /dev/sda --add-device /dev/twa0::3ware,2 --add-device -'/dev/sdb::::-T permissive'`. - -`-v`, `--verbose` - Enable verbose logging; same as `--verbosity-level 5`. - -`-q`, `--quiet` - Disable logging; same as `--verbosity-level 0`. - -`-b`, `--verbosity-level` - Set verbosity level \[0-5]. - -#### Advanced Arguments - -`-l`, `--no-locale` - Don't use system locale. - -`--no-hide-tabs` - Don't hide non-identity tabs when SMART is disabled. Useful -for debugging. - - - -## Copyright and Licensing - -GSmartControl is Copyright (C) 2008 - 2022 Alexander Shaduri [ashaduri@gmail.com](mailto:ashaduri@gmail.com) and contributors. - -GSmartControl is licensed under the terms of -[GNU General Public License Version 3](https://www.gnu.org/licenses/gpl-3.0.en.html). - -This program is free software: you can redistribute it and/or modify it under -the terms of version 3 of the GNU General Public License as published by the -Free Software Foundation. - -This program is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -A PARTICULAR PURPOSE. See the GNU General Public Licenses for more details. - -This product includes icons from Crystal Project, -copyright 2006-2007 Everaldo Coelho [www.everaldo.com](https://www.everaldo.com). -Crystal Project icons are licensed under [GNU LGPL](https://www.gnu.org/licenses/lgpl-3.0.en.html). - diff --git a/docs/index.md b/docs/index.md new file mode 120000 index 0000000..32d46ee --- /dev/null +++ b/docs/index.md @@ -0,0 +1 @@ +../README.md \ No newline at end of file diff --git a/docs/index.md.stock b/docs/index.md.stock deleted file mode 100644 index 96829ae..0000000 --- a/docs/index.md.stock +++ /dev/null @@ -1,37 +0,0 @@ -## Welcome to GitHub Pages - -You can use the [editor on GitHub](https://github.com/ashaduri/gsmartcontrol/edit/main/docs/index.md) to maintain and preview the content for your website in Markdown files. - -Whenever you commit to this repository, GitHub Pages will run [Jekyll](https://jekyllrb.com/) to rebuild the pages in your site, from the content in your Markdown files. - -### Markdown - -Markdown is a lightweight and easy-to-use syntax for styling your writing. It includes conventions for - -```markdown -Syntax highlighted code block - -# Header 1 -## Header 2 -### Header 3 - -- Bulleted -- List - -1. Numbered -2. List - -**Bold** and _Italic_ and `Code` text - -[Link](url) and ![Image](src) -``` - -For more details see [GitHub Flavored Markdown](https://guides.github.com/features/mastering-markdown/). - -### Jekyll Themes - -Your Pages site will use the layout and styles from the Jekyll theme you have selected in your [repository settings](https://github.com/ashaduri/gsmartcontrol/settings). The name of this theme is saved in the Jekyll `_config.yml` configuration file. - -### Support or Contact - -Having trouble with Pages? Check out our [documentation](https://docs.github.com/categories/github-pages-basics/) or [contact support](https://support.github.com/contact) and we’ll help you sort it out. diff --git a/docs/Screenshots.md b/docs/screenshots.md similarity index 77% rename from docs/Screenshots.md rename to docs/screenshots.md index 36a4402..5bd695e 100644 --- a/docs/Screenshots.md +++ b/docs/screenshots.md @@ -1,7 +1,7 @@ -# GSmartControl - Screenshots +# Screenshots -**Note:** These screenshots may have been taken with an older version -of GSmartControl. However, no significant interface changes have been made since then. +**Note:** Some of these screenshots may have been taken with an older version +of GSmartControl. ## Main window - All drives pass the health self-check diff --git a/docs/Smart.md b/docs/smart.md similarity index 94% rename from docs/Smart.md rename to docs/smart.md index 56a39e5..a6f3740 100644 --- a/docs/Smart.md +++ b/docs/smart.md @@ -1,10 +1,9 @@ -# GSmartControl - What is SMART? +# What is SMART? -### Short answer SMART is a technology which provides hard disk drives with methods to predict certain kinds of failures with certain chance of success. -### Long answer +## Long answer Self-Monitoring, Analysis, and Reporting Technology, or SMART, is a monitoring system for hard drives to detect and report various indicators @@ -17,7 +16,7 @@ which may report valuable information. It may even automatically scan the disk surface in when the drive is idle, repairing the defects while reallocating the data to more safe areas. -While having SMART sounds really good, there are some nuances to +While having SMART sounds perfect, there are some nuances to consider. One of the common pitfalls is that it may create a false sense of security. That is, a perfectly good SMART data is NOT an indication that the drive won't fail the next minute. The reverse is also true - some diff --git a/docs/software_requirements.md b/docs/software_requirements.md new file mode 100644 index 0000000..66d36a1 --- /dev/null +++ b/docs/software_requirements.md @@ -0,0 +1,26 @@ +# Software Requirements + +**Note:** If using the official Windows package, no additional software is required. + +## Supported Operating Systems +* Linux +* Windows Vista SP2 (32-bit and 64-bit) or later. The Windows port uses pd0, (pd1, ...) +for physical drives 0, (1, ...). +* FreeBSD +* NetBSD +* OpenBSD +* DragonFlyBSD +* macOS. +* Solaris. +* QNX - Code written but no testing has been performed yet. + +## Build Requirements +* [pcre1](https://www.pcre.org). +* [GTK+ 3](https://www.gtk.org), version 3.4 or higher. +* [Gtkmm](https://www.gtkmm.org), version 3.4 or higher. + +## Runtime Requirements +**Note:** The Windows packages already include all the required software. +* [Smartmontools](https://www.smartmontools.org/). Windows users have an option to +install a separate version of smartmontools on their systems, and GSmartControl will automatically use it. +* xterm (optional, needed to run `update-smart-drivedb` on Linux / Unix systems). diff --git a/docs/support.md b/docs/support.md new file mode 100644 index 0000000..0932a2a --- /dev/null +++ b/docs/support.md @@ -0,0 +1,46 @@ +# Support + + +## Reporting Bugs + +Please report issues at GSmartControl's +[Issue Tracker](https://github.com/ashaduri/gsmartcontrol/issues) on GitHub. + + +## Before Filing an Issue + +Please see the [Troubleshooting](troubleshooting.md) page before reporting any issues. + +If it is a SMART or drive-related problem, please try to test it with smartctl first. +Chances are, the problem you're experiencing is not tied to GSmartControl, +but is a drive firmware or smartctl problem. For example, to see complete +information about your `/dev/sda` drive, type the following in a terminal +emulator (as `root`, using `sudo` or `su`): +``` +smartctl -x /dev/sda +``` +**Note:** If using Windows, the device name should be `/dev/pd1` for the +second physical drive, etc... Run `cmd` as administrator first. + +If you still think it's a GSmartControl issue, please collect the following +information about your system: + +- Which operating system you use (for example, openSUSE Leap 15.3). +- Which version of GTK and Gtkmm you have installed. Finding this out is very +distribution-specific. For example, on openSUSE it would be `rpm -q gtk3 gtkmm3`. +Some distributions have `gtkmm30` instead. You may also search them in your +distribution's graphical package manager, if there is one. +- Execution log from the program, if possible. To obtain it, run the program +with `-v` option, e.g. (type the following in a terminal emulator or Run dialog): + ``` + gsmartcontrol-root -v + ``` +- Perform the steps needed to reproduce the bug, then go to +"Options -> View Execution Log", and click "Save All". +**Note:** On Windows, `-v` switch is on by default. +- Detailed description of steps you performed when the bug occurred. + + +## Contact +You may contact me (Alexander Shaduri) directly at [ashaduri@gmail.com](mailto:ashaduri@gmail.com). + diff --git a/docs/supported_hardware.md b/docs/supported_hardware.md new file mode 100644 index 0000000..f15cfb3 --- /dev/null +++ b/docs/supported_hardware.md @@ -0,0 +1,21 @@ +# Supported Hardware + +GSmartControl supports ATA drives (both PATA and SATA), various USB to +ATA bridges and drives behind some RAID. + +See [Smartmontools USB Device Support](http://www.smartmontools.org/wiki/Supported_USB-Devices) +page for an (incomplete) list of supported USB to ATA bridges. + +GSmartControl supports the following RAID controllers: +- Adaptec (Linux, some models only) +- Areca (Linux, Windows) +- HP CCISS (Linux) +- HP hpsa / hpahcisr (Linux) +- Intel Matrix Storage (CSMI) (Linux, Windows, FreeBSD) +- LSI 3ware (Linux, Windows) +- LSI MegaRAID (Windows) + +Note: Smartmontools supports even +[more RAID Controllers](https://www.smartmontools.org/wiki/Supported_RAID-Controllers). +The drives behind such controllers can be manually entered in GSmartControl using +Add Device... functionality or `--add-device` command-line option. diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md new file mode 100644 index 0000000..9e0387b --- /dev/null +++ b/docs/troubleshooting.md @@ -0,0 +1,70 @@ + +# Troubleshooting + +Please see the [Support](support.md) page for information on how to report issues. + + +## Known Limitations + +- Only ATA drives (both PATA and SATA), various USB to ATA bridges +and drives behind some RAID controllers are supported for now. +The main reasons for this are: + - We can't support drives which don't work with smartmontools. + This affects drives which don't support SMART or don't export SMART data + correctly (e.g. some USB enclosures, RAIDs, etc...). + - Smartctl's output for SCSI drives is completely different compared to ATA. + Also, SCSI drives are rarely found in desktop systems and the servers rarely + have X11 / Gtkmm running, so this is a low priority task. +- Immediate Offline Tests are not supported. I haven't found a way to reliably +monitor them. Besides, they run automatically anyway if Automatic Offline +Data Collection is enabled. +- Testing is only supported on drives which correctly report their progress +information in their list of capabilities. +- Not all drives support disabling Automatic Offline Data Collection, even +if they report otherwise. Unfortunately, there's no way to detect such drives. + + +## Custom Smartctl Options +GSmartControl tries its best to guard the user from having to specify smartctl options. +However, this is not always possible due to drive firmware bugs, unimplemented +features, and so on. + +GSmartControl provides the ability to specify custom options to smartctl. The +[smartctl manual page](https://www.smartmontools.org/browser/trunk/smartmontools/smartctl.8.in) +contains detailed information on these options. Additional information is available +at [smartmontools.org](https://smartmontools.org). + + +## Permission Problems +You need to be root/Administrator to perform anything useful with GSmartControl. +This is needed because most operating systems prohibit direct access to +hardware to users with non-administrative privileges. + +In Windows, UAC is automatically invoked when you run it. In other operating +systems, running `gsmartcontrol-root` (or using the desktop icon) will +automatically launch gsmartcontrol using the system's preferred su +mechanism - `PolKit`, `kdesu`, `gnomesu`, etc... + +Please **do not** set the `setuid` flag on smartctl binary. It is considered +a security risk. + + +## SMART Does Not Stay Enabled +Specifications say that once you set a SMART-related property, it will +be preserved across reboots. So, when you, say, enable SMART and +Automatic Offline Data Collection, both will stay enabled until you disable them. + +However, BIOS, your operating system, your other operating systems +(if present), and various startup programs may affect that. For example, +BIOS may enable SMART each time you start your computer, so if you +disabled SMART previously, it will be re-enabled on reboot. + +The easiest way to work around this is to set the desired settings on +system startup. You may use `smartctl` or `smartd` to do that. For example, +to enable both SMART and Automatic Offline Data Collection on `/dev/sda`, +one would write the following to the system startup script (e.g. `boot.local`, +`rc.local` or similar on Linux): +``` +smartctl -s on -o on /dev/sda +``` +For more information, see `smartctl` and `smartd` [documentation](https://smartmontools.org). diff --git a/docs/usage.md b/docs/usage.md new file mode 100644 index 0000000..f7cb71b --- /dev/null +++ b/docs/usage.md @@ -0,0 +1,61 @@ +# Usage + +## Launching GSmartControl on Desktop + +### Linux and Unix +On Linux and Unix systems, please use the desktop menu entry. Alternatively, you can +run `gsmartcontrol-root`, which invokes GSmartControl using your desktop's `su` mechanism. + +### Windows +Simply install GSmartControl and run it from the Start menu. + +### macOS +When installed using Homebrew, GSmartControl can be run by +typing `gsmartcontrol` in Terminal. If all you get is `Command not found`, please run +a `brew doctor` command first. + + +## Command-Line Options + +**Note:** The Windows version may not output any text to a command-line window, +so `--help` and similar options will be of no help. + +The most important options are: + +`-?`, `--help` - Show help options. + +`-V`, `--version` - Display version information. + +`--no-scan` - Don't scan devices on startup. + +`--add-virtual ` - Load smartctl data from file, creating a virtual drive. You +can specify this option multiple times. + +`--add-device ::[::]` - Add a device to device list. +This option is useful with `--no-scan` to list certain drives only. You can specify +this option multiple times. +Example: +`--add-device /dev/sda --add-device /dev/twa0::3ware,2 --add-device +'/dev/sdb::::-T permissive'`. + +`-v`, `--verbose` - Enable verbose logging; same as `--verbosity-level 5`. + +`-q`, `--quiet` - Disable logging; same as `--verbosity-level 0`. + +`-b`, `--verbosity-level` - Set verbosity level \[0-5]. + + +### Advanced Options + +`-l`, `--no-locale` - Don't use system locale. + +`--no-hide-tabs` - Don't hide non-identity tabs when SMART is disabled. Useful +for debugging. + + +## Smartctl Options + +GSmartControl provides the ability to specify custom options to smartctl. The +[smartctl manual page](https://www.smartmontools.org/browser/trunk/smartmontools/smartctl.8.in) +contains detailed information on these options. Additional information is available +at [smartmontools.org](https://smartmontools.org).