├── Dockerfile ├── INSTALL.BSD.md ├── INSTALL.md ├── LICENSE.md ├── LICENSES ├── BSD-4-Clause └── LGPL-2.1-or-later ├── Makefile ├── NEWS.md ├── OBS ├── PKGBUILD ├── _service ├── appimage.yml ├── debian.changelog ├── debian.control ├── debian.rules ├── hw-probe.appdata.xml ├── hw-probe.desktop ├── hw-probe.dsc └── hw-probe.spec ├── README.md ├── flatpak ├── PERL5_BASE ├── hw-probe.appdata.xml ├── hw-probe.desktop ├── hw-probe.sh └── org.linux_hardware.hw-probe.yaml ├── hw-probe.pl ├── periodic ├── hw-probe.service └── hw-probe.timer └── snap ├── gui └── hw-probe.desktop ├── hw-probe.sh └── snapcraft.yaml /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM alpine:3.16 2 | 3 | RUN apk update \ 4 | && apk add --no-cache perl curl xz dmidecode pciutils usbutils \ 5 | smartmontools hdparm sysstat util-linux lm_sensors acpi iw wireless-tools glib libxrandr zlib eudev-libs libusb libdrm \ 6 | alsa-utils xrandr xdpyinfo xinput acpica iasl perl-libwww i2c-tools hwinfo libx86emu \ 7 | && apk add --no-cache --virtual build-deps git gcc g++ make autoconf automake libtool file bsd-compat-headers libc-dev util-linux-dev flex linux-headers glib-dev libxrandr-dev zlib-dev eudev-dev libusb-dev libdrm-dev i2c-tools-dev kmod-dev \ 8 | && git clone https://git.linuxtv.org/edid-decode.git 2>/dev/null \ 9 | && cd edid-decode \ 10 | && make \ 11 | && find . -type f | perl -lne 'print if -B and -x' | xargs strip \ 12 | && make install \ 13 | && cd .. \ 14 | && rm -fr edid-decode \ 15 | && git clone https://github.com/rockowitz/ddcutil.git \ 16 | && cd ddcutil \ 17 | && git checkout 1.2.2-release \ 18 | && NOCONFIGURE=1 NO_CONFIGURE=1 sh autogen.sh \ 19 | && ./configure --prefix=/usr \ 20 | && make \ 21 | && find . -type f | perl -lne 'print if -B and -x' | xargs strip \ 22 | && make install \ 23 | && cd .. \ 24 | && rm -fr ddcutil \ 25 | && curl -L https://github.com/linuxhw/build-stuff/releases/download/1.6/hw-probe-1.6-AI.tar.gz > hw-probe-1.6-AI.tar.gz \ 26 | && tar -xf hw-probe-1.6-AI.tar.gz \ 27 | && rm -fr hw-probe-1.6-AI.tar.gz \ 28 | && cd hw-probe-1.6-AI \ 29 | && make install \ 30 | && cd .. \ 31 | && rm -fr hw-probe-1.6-AI \ 32 | && apk del build-deps \ 33 | && rm -fr /usr/bin/acpibin /usr/bin/acpiexamples /usr/bin/acpiexec /usr/bin/acpihelp /usr/bin/acpinames /usr/bin/acpisrc /usr/bin/lsusb.py /usr/bin/usbhid-dump \ 34 | && rm -fr /usr/sbin/convert_hd /usr/sbin/check_hd /usr/sbin/mk_isdnhwdb /usr/sbin/getsysinfo /usr/sbin/fancontrol /usr/sbin/pwmconfig /usr/sbin/isadump /usr/sbin/isaset /usr/sbin/ownership /usr/sbin/setpci /usr/sbin/vpddecode /usr/sbin/update-smart-drivedb /usr/sbin/smartd \ 35 | && rm -fr /usr/share/man /usr/share/doc /usr/share/pkgconfig /usr/share/cmake /usr/share/ddcutil \ 36 | && rm -fr /usr/include \ 37 | && rm -fr /usr/lib/pkgconfig /usr/lib/systemd /usr/lib/libddc* \ 38 | && rm -fr /usr/share/perl5/vendor_perl/libwww/*.pod \ 39 | && rm -fr /usr/bin/lwp-* \ 40 | && rm -fr /var/cache/apk/* 41 | 42 | ENV LD_LIBRARY_PATH /usr/lib64:/usr/lib 43 | ENV DISPLAY :0 44 | 45 | ENTRYPOINT ["/usr/bin/hw-probe", "-docker"] 46 | -------------------------------------------------------------------------------- /INSTALL.BSD.md: -------------------------------------------------------------------------------- 1 | INSTALL HOWTO FOR BSD 2 | ===================== 3 | 4 | HW Probe 1.6.6 (Jan 11, 2025) 5 | 6 | This file explains how to install and setup environment for the tool in your computer. 7 | 8 | Just find the name of your BSD variant on this page. 9 | 10 | See more info in the [README.md](README.md). 11 | 12 | 13 | Contents 14 | -------- 15 | 16 | * [ Install on FreeBSD ](#install-on-freebsd) 17 | * [ Install on OpenBSD ](#install-on-openbsd) 18 | * [ Install on NetBSD ](#install-on-netbsd) 19 | * [ Install on helloSystem ](#install-on-hellosystem) 20 | * [ Install on MyBee ](#install-on-mybee) 21 | * [ Install on DragonFly ](#install-on-dragonfly) 22 | * [ Install on MidnightBSD ](#install-on-midnightbsd) 23 | * [ Install on OPNsense ](#install-on-opnsense) 24 | * [ Install on TrueNAS ](#install-on-truenas) 25 | * [ Install on FreeNAS ](#install-on-freenas) 26 | * [ Install on pfSense ](#install-on-pfsense) 27 | * [ Install on XigmaNAS ](#install-on-xigmanas) 28 | * [ Install on other BSD ](#install-on-other-bsd) 29 | * [ Easy way to contribute ](#easy-way-to-contribute) 30 | * [ Run without Installing ](#run-without-installing) 31 | 32 | 33 | Install on FreeBSD 34 | ------------------ 35 | 36 | On FreeBSD and derivatives (GhostBSD, NomadBSD, FuryBSD, TrueOS, PC-BSD, HardenedBSD, DesktopBSD, ArisbluBSD, helloSystem, etc.). 37 | 38 | ###### Latest systems 39 | 40 | For FreeBSD 11.x, 12.x and newer and derivatives install this port: https://www.freshports.org/sysutils/hw-probe/ 41 | 42 | pkg install hw-probe 43 | 44 | or manually: 45 | 46 | cd /usr/ports/sysutils/hw-probe 47 | make install 48 | 49 | Probe your computer: 50 | 51 | hw-probe -all -upload 52 | 53 | ###### From upstream 54 | 55 | Get latest version of the tool: 56 | 57 | fetch http://bsd-hardware.info/hw-probe 58 | 59 | Install dependencies manually: 60 | 61 | pkg install dmidecode smartmontools hwstat lscpu curl perl5 62 | 63 | or automatically: 64 | 65 | perl hw-probe -install-deps 66 | 67 | Probe your computer: 68 | 69 | perl hw-probe -all -upload 70 | 71 | ###### Old systems 72 | 73 | Get the tool from upstream (see above) and install deps in the following way: 74 | 75 | For old FreeBSD releases < 9.3: 76 | 77 | env PACKAGESITE='http://ftp-archive.freebsd.org/pub/FreeBSD-Archive/ports//packages--release/Latest/' pkg_add -r dmidecode smartmontools hwstat cpuid curl perl 78 | 79 | For older FreeBSD releases < 8.0 you need also `usbutil` package to be installed: 80 | 81 | pkg_add -r usbutil 82 | 83 | For older FreeBSD releases < 7.0: 84 | 85 | pkg_add -r p5-Digest-SHA 86 | 87 | Oldest supported FreeBSD version is currently 6.4. 88 | 89 | Probe your computer: 90 | 91 | perl hw-probe -all -upload 92 | 93 | ###### Graphical desktops 94 | 95 | Desktop users should enable `sudo` by installing `sudo` package and adding user to `sudoers` file (https://www.freebsd.org/doc/handbook/security-sudo.html) to preserve user environment variables: 96 | 97 | sudo -E hw-probe -all -upload 98 | 99 | 100 | Install on OpenBSD 101 | ------------------ 102 | 103 | On OpenBSD and derivatives (AdJ, FuguIta, etc.). 104 | 105 | ###### Latest systems 106 | 107 | For OpenBSD, a package is available (see https://cvsweb.openbsd.org/ports/sysutils/hw-probe/): 108 | 109 | pkg_add hw-probe 110 | 111 | Probe your computer: 112 | 113 | hw-probe -all -upload 114 | 115 | ###### From upstream 116 | 117 | Get the tool: 118 | 119 | ftp http://bsd-hardware.info/hw-probe 120 | 121 | Install dependencies manually: 122 | 123 | pkg_add dmidecode smartmontools usbutil lscpu curl 124 | 125 | or automatically: 126 | 127 | perl hw-probe -install-deps 128 | 129 | Probe your computer: 130 | 131 | perl hw-probe -all -upload 132 | 133 | ###### Old systems 134 | 135 | For old OpenBSD releases < 6.5: 136 | 137 | PKG_PATH=https://ftp.nluug.nl/OpenBSD//packages/ pkg_add dmidecode smartmontools usbutil lscpu curl 138 | 139 | 140 | Install on NetBSD 141 | ----------------- 142 | 143 | On NetBSD and derivatives (OS108, etc.). 144 | 145 | Get the tool: 146 | 147 | ftp http://bsd-hardware.info/hw-probe 148 | 149 | Install dependencies manually: 150 | 151 | pkgin install dmidecode smartmontools usbutil curl perl 152 | 153 | or automatically: 154 | 155 | perl hw-probe -install-deps 156 | 157 | Probe your computer: 158 | 159 | perl hw-probe -all -upload 160 | 161 | 162 | Install on helloSystem 163 | ---------------------- 164 | 165 | Pre-installed on helloSystem 0.3.0 and newer. From the menu, launch the __Hardware Probe__ utility and follow the on-screen instructions: 166 | 167 | ![image](https://user-images.githubusercontent.com/2480569/103484839-12564480-4df2-11eb-8c57-d6ee6ef48e2b.png) 168 | 169 | 170 | Install on MyBee 171 | ---------------- 172 | 173 | Pre-installed on MyBee 13.1 and newer. 174 | 175 | 176 | Install on DragonFly 177 | -------------------- 178 | 179 | ###### Latest systems 180 | 181 | For DragonFlyBSD 5.8 and newer install this dport: https://github.com/DragonFlyBSD/DPorts/tree/master/sysutils/hw-probe 182 | 183 | pkg install hw-probe 184 | 185 | Probe your computer: 186 | 187 | hw-probe -all -upload 188 | 189 | ###### From upstream 190 | 191 | Get latest version of the tool: 192 | 193 | fetch http://bsd-hardware.info/hw-probe 194 | 195 | Install dependencies manually: 196 | 197 | pkg install dmidecode smartmontools hwstat lscpu curl perl5 198 | 199 | or automatically: 200 | 201 | perl hw-probe -install-deps 202 | 203 | Probe your computer: 204 | 205 | perl hw-probe -all -upload 206 | 207 | 208 | Install on MidnightBSD 209 | ---------------------- 210 | 211 | ###### Latest systems 212 | 213 | For MidnightBSD 1.2.7 and newer install this mport: https://www.midnightbsd.org/mports/sysutils/hw-probe/ 214 | 215 | mport install hw-probe 216 | 217 | Probe your computer: 218 | 219 | hw-probe -all -upload 220 | 221 | ###### From upstream 222 | 223 | Get latest version of the tool: 224 | 225 | fetch http://bsd-hardware.info/hw-probe 226 | 227 | Install dependencies manually: 228 | 229 | mport install dmidecode smartmontools cpuid curl perl 230 | 231 | or automatically: 232 | 233 | perl hw-probe -install-deps 234 | 235 | Probe your computer: 236 | 237 | perl hw-probe -all -upload 238 | 239 | 240 | Install on OPNsense 241 | ------------------- 242 | 243 | For OPNsense 20.7.8 and newer. 244 | 245 | Install os-hw-probe plugin under Menu->System->Firmware->Plugins. 246 | 247 | 248 | Install on TrueNAS 249 | ------------------ 250 | 251 | For TrueNAS 12 and newer: 252 | 253 | pkg add https://pkg.freebsd.org/FreeBSD:12:amd64/latest/All/lscpu-1.2.0.txz https://pkg.freebsd.org/FreeBSD:12:amd64/latest/All/hwstat-0.5.1.txz https://pkg.freebsd.org/FreeBSD:12:amd64/latest/All/hw-probe-1.6.b2.txz 254 | 255 | Alternatively you can enable FreeBSD repository and install the package from there: 256 | 257 | sed 's/enabled: yes/enabled: no/' /usr/local/etc/pkg/repos/local.conf 258 | sed 's/enabled: no/enabled: yes/' /usr/local/etc/pkg/repos/FreeBSD.conf 259 | pkg install hw-probe 260 | 261 | Probe your computer: 262 | 263 | hw-probe -all -upload 264 | 265 | 266 | Install on FreeNAS 267 | ------------------ 268 | 269 | For FreeNAS 11.x: 270 | 271 | pkg add https://pkg.freebsd.org/FreeBSD:11:amd64/latest/All/lscpu-1.2.0.txz https://pkg.freebsd.org/FreeBSD:11:amd64/latest/All/hwstat-0.5.1.txz https://pkg.freebsd.org/FreeBSD:11:amd64/latest/All/hw-probe-1.6.b2.txz 272 | 273 | Alternatively you can enable FreeBSD repository and install the package from there: 274 | 275 | sed 's/enabled: yes/enabled: no/' /usr/local/etc/pkg/repos/local.conf 276 | sed 's/enabled: no/enabled: yes/' /usr/local/etc/pkg/repos/FreeBSD.conf 277 | pkg install hw-probe 278 | 279 | Probe your computer: 280 | 281 | hw-probe -all -upload 282 | 283 | 284 | Install on pfSense 285 | ------------------ 286 | 287 | For pfSense 2.5.x: 288 | 289 | pkg add https://pkg.freebsd.org/FreeBSD:12:amd64/latest/All/lscpu-1.2.0.txz https://pkg.freebsd.org/FreeBSD:12:amd64/latest/All/hwstat-0.5.1.txz https://pkg.freebsd.org/FreeBSD:12:amd64/latest/All/hw-probe-1.6.b2.txz 290 | 291 | For pfSense 2.4.x: 292 | 293 | pkg add https://pkg.freebsd.org/FreeBSD:11:amd64/latest/All/lscpu-1.2.0.txz https://pkg.freebsd.org/FreeBSD:11:amd64/latest/All/hwstat-0.5.1.txz https://pkg.freebsd.org/FreeBSD:11:amd64/latest/All/hw-probe-1.6.b2.txz 294 | 295 | Alternatively you can enable FreeBSD repository and install the package from there: 296 | 297 | sed 's/enabled: no/enabled: yes/' /usr/local/etc/pkg/repos/pfSense.conf 298 | pkg install hw-probe 299 | 300 | Probe your computer: 301 | 302 | /usr/local/bin/hw-probe -all -upload 303 | 304 | 305 | Install on XigmaNAS 306 | ------------------- 307 | 308 | Install package: 309 | 310 | pkg install hw-probe 311 | 312 | Probe your computer: 313 | 314 | /usr/local/bin/hw-probe -all -upload 315 | 316 | 317 | Install on other BSD 318 | -------------------- 319 | 320 | Get the tool: 321 | 322 | curl -s http://bsd-hardware.info/hw-probe > hw-probe 323 | 324 | On first run the tool will ask to install missed dependencies (perl, dmidecode, smartmontools, lscpu, curl). You can install them manually or automatically with the help of the following option: 325 | 326 | perl hw-probe -install-deps 327 | 328 | Probe your computer: 329 | 330 | perl hw-probe -all -upload 331 | 332 | 333 | Easy way to Contribute 334 | ---------------------- 335 | 336 | Everyone can contribute to the database even without having BSD installed on their computers by writing [helloSystem Live image](https://github.com/helloSystem/ISO/releases) to a USB stick once and then probing all the computers around w/o the need to install or modify anything! 337 | 338 | Just do: 339 | 340 | * Download and write the [helloSystem Live image](https://github.com/helloSystem/ISO/releases) to any USB stick 341 | * Plug it to any computer 342 | * Power on the computer, enter the Boot Menu and select the USB stick 343 | * Connect to WiFi or just plug the Ethernet cable 344 | * From the menu, launch the __Hardware Probe__ utility and follow the on-screen instructions 345 | 346 | Now you can probe all your computers around by booting from this USB stick! 347 | 348 | The same can be done with the help of [NomadBSD Live USB image](https://www.nomadbsd.org/download.html). In this case follow the [FreeBSD instructions](#install-on-freebsd) on it to install and run hw-probe. Note that at first start NomadBSD will run the setup wizard to prepare the USB stick. 349 | 350 | 351 | Run without Installing 352 | ---------------------- 353 | 354 | From Github: 355 | 356 | curl -s https://raw.githubusercontent.com/linuxhw/hw-probe/master/hw-probe.pl | perl 357 | 358 | From upstream (mirror): 359 | 360 | curl -s http://bsd-hardware.info/hw-probe | perl 361 | 362 | 363 | Enjoy! 364 | -------------------------------------------------------------------------------- /INSTALL.md: -------------------------------------------------------------------------------- 1 | INSTALL HOWTO 2 | ============= 3 | 4 | HW Probe 1.6.6 (Jan 11, 2025) 5 | 6 | This file explains how to install and setup environment for the tool in your computer. 7 | 8 | Just find the name of your Linux distribution or BSD variant on this page. 9 | 10 | See more info in the [README.md](README.md). 11 | 12 | 13 | Contents 14 | -------- 15 | 16 | * [ Run without Installing ](#run-without-installing) 17 | * [ Command line to Run ](#command-line-to-run) 18 | * [ Install on Ubuntu ](#install-on-ubuntu) 19 | * [ Install on Debian ](#install-on-debian) 20 | * [ Install on BSD ](#install-on-bsd) 21 | * [ Install on Fedora ](#install-on-fedora) 22 | * [ Install on Manjaro ](#install-on-manjaro) 23 | * [ Install on Acronis Cyber Infrastructure ](#install-on-acronis-cyber-infrastructure) 24 | * [ Install on Alpine ](#install-on-alpine) 25 | * [ Install on Arch Linux ](#install-on-arch-linux) 26 | * [ Install on ArcoLinux ](#install-on-arcolinux) 27 | * [ Install on blackPanther ](#install-on-blackpanther) 28 | * [ Install on CentOS ](#install-on-centos) 29 | * [ Install on Chrome OS ](#install-on-chrome-os) 30 | * [ Install on Clear Linux ](#install-on-clear-linux) 31 | * [ Install on ClearOS ](#install-on-clearos) 32 | * [ Install on EasyOS ](#install-on-easyos) 33 | * [ Install on Endless ](#install-on-endless) 34 | * [ Install on Gentoo ](#install-on-gentoo) 35 | * [ Install on Hefftor ](#install-on-hefftor) 36 | * [ Install on Mageia ](#install-on-mageia) 37 | * [ Install on Navy Linux ](#install-on-navy-linux) 38 | * [ Install on NixOS ](#install-on-nixos) 39 | * [ Install on OpenMandriva ](#install-on-openmandriva) 40 | * [ Install on openSUSE ](#install-on-opensuse) 41 | * [ Install on OpenVZ ](#install-on-openvz) 42 | * [ Install on Oracle Linux ](#install-on-oracle-linux) 43 | * [ Install on PCLinuxOS ](#install-on-pclinuxos) 44 | * [ Install on Puppy ](#install-on-puppy) 45 | * [ Install on QTS ](#install-on-qts) 46 | * [ Install on RHEL ](#install-on-rhel) 47 | * [ Install on ROSA ](#install-on-rosa) 48 | * [ Install on Sabayon ](#install-on-sabayon) 49 | * [ Install on Slackware ](#install-on-slackware) 50 | * [ Install on Solus ](#install-on-solus) 51 | * [ Install on SteamOS ](#install-on-steamos) 52 | * [ Install on Virtuozzo Linux ](#install-on-virtuozzo-linux) 53 | * [ Install on Void Linux ](#install-on-void-linux) 54 | * [ Install from Source ](#install-from-source) 55 | 56 | 57 | Run without Installing 58 | ---------------------- 59 | 60 | You can probe your computer by [AppImage](README.md#appimage), [Docker](README.md#docker), [Snap](README.md#snap), [Flatpak](README.md#flatpak) or [Live CD/USB](README.md#live-cd) without the need to install anything on your host. 61 | 62 | 63 | Command line to Run 64 | ------------------- 65 | 66 | sudo -E hw-probe -all -upload 67 | 68 | 69 | Install on Ubuntu 70 | ----------------- 71 | 72 | On Ubuntu and Ubuntu based Linux distributions (elementary OS, GalliumOS, HamoniKR, KDE neon, Kubuntu, Linuxfx, Linux Lite, Linux Mint, Lubuntu, Makulu Linux, Peppermint, Pop!_OS, Trisquel, Ubuntu Kylin, WindowsFX, Xubuntu, Zorin, etc.). 73 | 74 | ###### Ubuntu package 75 | 76 | The package is available in Ubuntu 20.04 or newer and its derivatives (https://packages.ubuntu.com/focal/hw-probe): 77 | 78 | sudo add-apt-repository universe 79 | sudo apt-get update 80 | sudo apt-get install hw-probe --no-install-recommends 81 | 82 | For older Ubuntu versions try package from Ubuntu 20.04: [hw-probe_1.5-1_all.deb](http://mirrors.kernel.org/ubuntu/pool/universe/h/hw-probe/hw-probe_1.5-1_all.deb) 83 | 84 | ###### Upstream package 85 | 86 | Download Debian package [hw-probe_1.5-1_all.deb](https://github.com/linuxhw/hw-probe/releases/download/1.5/hw-probe_1.5-1_all.deb) and install: 87 | 88 | sudo add-apt-repository universe 89 | sudo apt-get update 90 | sudo apt-get install ./hw-probe_1.5-1_all.deb --no-install-recommends 91 | 92 | ###### Snap 93 | 94 | The [Snap package](README.md#snap) is also available to install and run easily on Ubuntu without the need to install any Deb packages to your system. 95 | 96 | 97 | Install on Debian 98 | ----------------- 99 | 100 | On Debian and Debian based Linux distributions (Kali, LMDE, MX Linux, antiX, Devuan, PureOS, Parrot, Pardus, deepin, BunsenLabs, SolydXK, SparkyLinux, Q4OS, Tails, Raspbian, BigLinux, siduction, Nitrux, Kaisen, etc.). 101 | 102 | Enable sudo by https://wiki.debian.org/sudo if not enabled. 103 | 104 | ###### Debian package 105 | 106 | The package is available in Debian 11 Bullseye or newer and its derivatives (https://packages.debian.org/bullseye/hw-probe): 107 | 108 | sudo apt install hw-probe --no-install-recommends 109 | 110 | ###### Unstable package 111 | 112 | sudo apt-get install debian-archive-keyring 113 | sudo sh -c 'echo deb http://deb.debian.org/debian unstable main > /etc/apt/sources.list.d/debian-sid.list' 114 | sudo apt-get update 115 | sudo apt-get install --no-install-recommends hw-probe 116 | sudo rm -f /etc/apt/sources.list.d/debian-sid.list 117 | sudo apt-get update 118 | 119 | ###### Upstream package 120 | 121 | Download Deb package [hw-probe_1.5-1_all.deb](https://github.com/linuxhw/hw-probe/releases/download/1.5/hw-probe_1.5-1_all.deb) and install: 122 | 123 | sudo apt-get update 124 | sudo dpkg -i ./hw-probe_1.5-1_all.deb 125 | sudo apt-get install -f --no-install-recommends 126 | 127 | 128 | Install on BSD 129 | -------------- 130 | 131 | On FreeBSD and derivatives (GhostBSD, NomadBSD, FuryBSD, TrueOS, PC-BSD, HardenedBSD, FreeNAS, TrueNAS, pfSense, OPNsense, XigmaNAS, DesktopBSD, ArisbluBSD, helloSystem, etc.), OpenBSD and derivatives (AdJ, FuguIta, etc.), NetBSD and derivatives (OS108, etc.), DragonFly and MidnightBSD. 132 | 133 | See [INSTALL.BSD.md](INSTALL.BSD.md). 134 | 135 | 136 | Install on Fedora 137 | ----------------- 138 | 139 | On Fedora 28 or newer and derivatives (Nobara, risiOS, Ultramarine, etc.): 140 | 141 | sudo dnf install hw-probe 142 | 143 | 144 | Install on Manjaro 145 | ------------------ 146 | 147 | On Manjaro 18 or newer and derivatives (Mabox, etc.): 148 | 149 | sudo pacman -S hw-probe 150 | 151 | Try `sudo pacman -Syu` if pacman can't find the package. 152 | 153 | 154 | Install on Acronis Cyber Infrastructure 155 | --------------------------------------- 156 | 157 | Use [AppImage](README.md#appimage) on Acronis Cyber Infrastructure and Virtuozzo Hybrid Infrastructure. 158 | 159 | 160 | Install on Alpine 161 | ----------------- 162 | 163 | sudo apk add --no-cache -X http://dl-cdn.alpinelinux.org/alpine/edge/testing hw-probe 164 | 165 | 166 | Install on Arch Linux 167 | --------------------- 168 | 169 | On Arch Linux and derivatives (Artix, EndeavourOS, RebornOS, Garuda, KaOS, Archman, Bluestar, LaxerOS, etc.): 170 | 171 | ###### From AUR 172 | 173 | When using Live CD/USB you need to add `cow_spacesize=512M` boot option to have enough space. 174 | 175 | Install edid-decode dependency: 176 | 177 | pacman -Syu git binutils fakeroot make gcc 178 | git clone https://aur.archlinux.org/edid-decode-git.git 179 | cd edid-decode-git 180 | makepkg -sri 181 | 182 | Install hardware probe: 183 | 184 | git clone https://aur.archlinux.org/hw-probe.git 185 | cd hw-probe 186 | makepkg -sri 187 | 188 | ###### Upstream package 189 | 190 | Download package [hw-probe-1.5-ArchLinux-any.pkg.tar.xz](https://github.com/linuxhw/hw-probe/releases/download/1.5/hw-probe-1.5-ArchLinux-any.pkg.tar.xz) and install by pacman: 191 | 192 | sudo pacman -U ./hw-probe-1.5-ArchLinux-any.pkg.tar.xz 193 | 194 | 195 | Install on ArcoLinux 196 | --------------------- 197 | 198 | Pre-installed on ArcoLinux v20.11.9 and newer. 199 | 200 | 201 | Install on blackPanther 202 | ----------------------- 203 | 204 | On blackPanther OS 16.2 and newer: 205 | 206 | installing hw-probe 207 | 208 | This command will install all the dependencies as well. 209 | 210 | 211 | Install on CentOS 212 | ----------------- 213 | 214 | On CentOS 9, CentOS 8, CentOS 7 and CentOS 6: 215 | 216 | sudo yum install epel-release 217 | sudo yum install hw-probe 218 | 219 | ###### Old systems 220 | 221 | If installation from EPEL is not possible. 222 | 223 | On early CentOS 7 installations: 224 | 225 | curl https://raw.githubusercontent.com/linuxhw/hw-probe/master/hw-probe.pl | sudo dd of=/usr/bin/hw-probe 226 | sudo chmod +x /usr/bin/hw-probe 227 | sudo yum install -y http://li.nux.ro/download/nux/dextop/el7/x86_64/libx86emu-1.1-2.1.x86_64.rpm 228 | sudo yum install -y http://li.nux.ro/download/nux/dextop/el7/x86_64/hwinfo-20.2-5.3.x86_64.rpm 229 | sudo yum install -y curl dmidecode smartmontools hdparm lm_sensors usbutils pciutils mcelog 230 | 231 | On early CentOS 6 installations: 232 | 233 | curl https://raw.githubusercontent.com/linuxhw/hw-probe/master/hw-probe.pl | sudo dd of=/usr/bin/hw-probe 234 | sudo chmod +x /usr/bin/hw-probe 235 | sudo yum install -y http://mirror.ghettoforge.org/distributions/gf/el/6/gf/x86_64/libx86emu-1.1-1.gf.el6.x86_64.rpm 236 | sudo yum install -y http://mirror.ghettoforge.org/distributions/gf/el/6/gf/x86_64/hwinfo-20.2-1.gf.el6.x86_64.rpm 237 | sudo yum install -y curl dmidecode smartmontools hdparm lm_sensors usbutils pciutils mcelog 238 | 239 | 240 | Install on Chrome OS 241 | -------------------- 242 | 243 | Open settings, turn on support for Linux and open the Linux Terminal. Now use [AppImage](README.md#appimage) or install the [Flatpak](README.md#flatpak). 244 | 245 | 246 | Install on Clear Linux 247 | ---------------------- 248 | 249 | See https://clearlinux.org/software/flathub/hardware-probe 250 | 251 | sudo swupd bundle-add desktop 252 | flatpak install flathub org.linux_hardware.hw-probe 253 | flatpak run org.linux_hardware.hw-probe -all -upload 254 | 255 | 256 | Install on ClearOS 257 | ------------------ 258 | 259 | sudo yum-config-manager --enable clearos-centos 260 | sudo yum-config-manager --enable clearos-epel 261 | sudo yum install hw-probe 262 | 263 | 264 | Install on EasyOS 265 | ----------------- 266 | 267 | Update local database by Menu > Setup > PETget Package Manager > Configure package manager > Update now. 268 | Install `perl-base`, `libhd`, `hwinfo`, `util-linux` and `smartmontools` by Menu > Setup > PETget Package Manager. 269 | 270 | Open the console: 271 | 272 | curl https://raw.githubusercontent.com/linuxhw/hw-probe/master/hw-probe.pl | dd of=/usr/bin/hw-probe 273 | chmod +x /usr/bin/hw-probe 274 | 275 | 276 | Install on Endless 277 | ------------------ 278 | 279 | Search for "Hardware Probe" program in the App Center. 280 | 281 | See https://flathub.org/apps/details/org.linux_hardware.hw-probe 282 | 283 | 284 | Install on Gentoo 285 | ----------------- 286 | 287 | On Gentoo and Gentoo based Linux distributions (CloudReady, Calculate, Funtoo, Redcore, LiGurOS, etc.): 288 | 289 | sudo emerge --ask sys-apps/hw-probe 290 | 291 | ###### Bobwya repository 292 | 293 | With [app-eselect/eselect-repository](https://wiki.gentoo.org/wiki/Eselect/Repository) installed: 294 | 295 | sudo eselect repository enable bobwya 296 | sudo emerge --ask sys-apps/hw-probe 297 | 298 | ###### Manual 299 | 300 | sudo emerge --ask sys-apps/hwinfo 301 | sudo emerge --ask sys-apps/pciutils 302 | sudo emerge --ask sys-apps/usbutils 303 | sudo emerge --ask sys-apps/dmidecode 304 | curl https://raw.githubusercontent.com/linuxhw/hw-probe/master/hw-probe.pl | sudo dd of=/usr/bin/hw-probe 305 | sudo chmod +x /usr/bin/hw-probe 306 | 307 | 308 | Install on Hefftor 309 | ------------------ 310 | 311 | For Hefftor 2021-01 and newer: 312 | 313 | sudo pacman -Syu hw-probe 314 | 315 | 316 | Install on Mageia 317 | ----------------- 318 | 319 | ###### Upstream package 320 | 321 | For Mageia 5 and newer: 322 | 323 | su 324 | urpmi https://github.com/linuxhw/hw-probe/releases/download/1.5/hw-probe-1.5-Mageia5.noarch.rpm edid-decode 325 | 326 | 327 | Install on Navy Linux 328 | --------------------- 329 | 330 | On Navy Linux 8: 331 | 332 | dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm 333 | dnf install hw-probe 334 | 335 | Install on NixOS 336 | ---------------- 337 | 338 | Use [Docker](README.md#docker) or [Flatpak](README.md#flatpak). 339 | 340 | 341 | Install on OpenMandriva 342 | ----------------------- 343 | 344 | Pre-installed on OpenMandriva Lx 4.0 and newer. 345 | 346 | 347 | Install on openSUSE 348 | ------------------- 349 | 350 | On openSUSE Leap 15.5 and newer / Tumbleweed and derivatives (GeckoLinux, etc.): 351 | 352 | sudo zypper install hw-probe 353 | 354 | openSUSE Leap 15.4: 355 | 356 | sudo zypper addrepo https://download.opensuse.org/repositories/hardware/openSUSE_Leap_15.4/ hardware 357 | sudo zypper install hw-probe 358 | 359 | For other versions select and install an RPM package: https://software.opensuse.org/package/hw-probe 360 | 361 | 362 | Install on OpenVZ 363 | ----------------- 364 | 365 | On OpenVZ 9, OpenVZ 8 and OpenVZ 7: 366 | 367 | sudo yum install epel-release --nogpgcheck 368 | sudo yum install hw-probe --nogpgcheck 369 | 370 | 371 | Install on Oracle Linux 372 | ----------------------- 373 | 374 | On Oracle Linux 7: 375 | 376 | sudo yum-config-manager --add-repo=http://download.fedoraproject.org/pub/epel/7/x86_64/ 377 | sudo yum install epel-release 378 | sudo yum install hw-probe 379 | 380 | On Oracle Linux 8 and newer use [AppImage](README.md#appimage). 381 | 382 | 383 | Install on PCLinuxOS 384 | -------------------- 385 | 386 | Use [AppImage](README.md#appimage). 387 | 388 | 389 | Install on Puppy 390 | ---------------- 391 | 392 | The package is available in Puppy 9 and newer (FossaPup64, etc.): 393 | 394 | * Open Menu > Setup > Puppy Package Manager 395 | * Update local package database by Configure > Update database > Update now 396 | * Find hw-probe package and install 397 | 398 | On Puppy 7 XenialPup64 and Puppy 8 BionicPup64: 399 | 400 | Update local package database by Menu > Setup > Puppy Package Manager > Configure > Update database > Update now. 401 | Install `perl-base`, `hwinfo`, `util-linux` and `smartmontools` by Menu > Setup > Puppy Package Manager. 402 | 403 | curl https://raw.githubusercontent.com/linuxhw/hw-probe/master/hw-probe.pl | sudo dd of=/usr/bin/hw-probe 404 | sudo chmod +x /usr/bin/hw-probe 405 | 406 | 407 | Install on QTS 408 | -------------- 409 | 410 | Use [Docker](README.md#docker). 411 | 412 | 413 | Install on RHCOS 414 | ---------------- 415 | 416 | Use [Docker](README.md#docker). 417 | 418 | 419 | Install on RHEL 420 | --------------- 421 | 422 | On RHEL 6-9 and RHEL based Linux distributions (AlmaLinux, CentOS, CloudLinux, Rocky Linux, Scientific Linux, Springdale Linux, etc.): 423 | 424 | sudo yum install epel-release 425 | sudo yum install hw-probe 426 | 427 | 428 | Install on ROSA 429 | --------------- 430 | 431 | Pre-installed on ROSA Fresh R4 and newer. 432 | 433 | 434 | Install on Sabayon 435 | ------------------ 436 | 437 | Use [AppImage](README.md#appimage). 438 | 439 | 440 | Install on Slackware 441 | -------------------- 442 | 443 | On Slackware and Slackware based Linux distributions (Porteus, Slax, etc.). 444 | 445 | Use [AppImage](README.md#appimage), [Docker](README.md#docker) or [Flatpak](README.md#flatpak). 446 | 447 | 448 | Install on Solus 449 | ---------------- 450 | 451 | Use [AppImage](README.md#appimage) or [Flatpak](README.md#flatpak). 452 | 453 | 454 | Install on SteamOS 455 | ------------------ 456 | 457 | Use [AppImage](README.md#appimage) or [Flatpak](README.md#flatpak). 458 | 459 | 460 | Install on Virtuozzo Linux 461 | -------------------------- 462 | 463 | On Virtuozzo Linux 8 and newer: 464 | 465 | sudo dnf install tar epel-release --nogpgcheck 466 | sudo dnf install hw-probe --nogpgcheck 467 | 468 | 469 | Install on Void Linux 470 | --------------------- 471 | 472 | Use [AppImage](README.md#appimage) or [Flatpak](README.md#flatpak). 473 | 474 | 475 | Install from Source 476 | ------------------- 477 | 478 | This command will install the `hw-probe` program in the `PREFIX/bin` system directory: 479 | 480 | sudo make install prefix=PREFIX [/usr, /usr/local, ...] 481 | 482 | To uninstall: 483 | 484 | sudo make uninstall prefix=PREFIX 485 | 486 | ###### Requires 487 | 488 | * Perl 5 489 | * perl-Digest-SHA 490 | * perl-Data-Dumper 491 | * hwinfo (https://github.com/openSUSE/hwinfo or https://pkgs.org/download/hwinfo) 492 | * curl 493 | * dmidecode 494 | * smartmontools (smartctl) 495 | * pciutils (lspci) 496 | * usbutils (lsusb) 497 | * edid-decode 498 | 499 | ###### Recommends 500 | 501 | * libwww-perl (to use instead of curl) 502 | * mcelog 503 | * hdparm 504 | * systemd-tools (systemd-analyze) 505 | * acpica-tools 506 | * drm_info 507 | * mesa-demos 508 | * memtester 509 | * sysstat (iostat) 510 | * cpuid 511 | * rfkill 512 | * xinput 513 | * vainfo 514 | * inxi 515 | * vulkan-utils 516 | * i2c-tools 517 | * opensc 518 | 519 | Enjoy! 520 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | LGPL-2.1-or-later OR BSD-4-Clause -------------------------------------------------------------------------------- /LICENSES/BSD-4-Clause: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014-2020 Andrey Ponomarenko. All rights reserved. 2 | 3 | Redistribution and use in source and binary forms, with or without 4 | modification, are permitted provided that the following conditions are 5 | met: 6 | 7 | 1. Redistributions of source code must retain the above copyright 8 | notice, this list of conditions and the following disclaimer. 9 | 10 | 2. Redistributions in binary form must reproduce the above copyright 11 | notice, this list of conditions and the following disclaimer in 12 | the documentation and/or other materials provided with the 13 | distribution. 14 | 15 | 3. All advertising materials mentioning features or use of this 16 | software must display the following acknowledgement: This product 17 | includes software developed by Andrey Ponomarenko. 18 | 19 | 4. Neither the name of the copyright holder nor the names of its 20 | contributors may be used to endorse or promote products derived 21 | from this software without specific prior written permission. 22 | 23 | THIS SOFTWARE IS PROVIDED BY COPYRIGHT HOLDER "AS IS" 24 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 25 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 26 | PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDER 27 | BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 28 | CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 29 | SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 30 | BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 31 | WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 32 | OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN 33 | IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /LICENSES/LGPL-2.1-or-later: -------------------------------------------------------------------------------- 1 | GNU LESSER GENERAL PUBLIC LICENSE 2 | Version 2.1, February 1999 3 | 4 | Copyright (C) 1991, 1999 Free Software Foundation, Inc. 5 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 6 | Everyone is permitted to copy and distribute verbatim copies 7 | of this license document, but changing it is not allowed. 8 | 9 | [This is the first released version of the Lesser GPL. It also counts 10 | as the successor of the GNU Library Public License, version 2, hence 11 | the version number 2.1.] 12 | 13 | Preamble 14 | 15 | The licenses for most software are designed to take away your 16 | freedom to share and change it. By contrast, the GNU General Public 17 | Licenses are intended to guarantee your freedom to share and change 18 | free software--to make sure the software is free for all its users. 19 | 20 | This license, the Lesser General Public License, applies to some 21 | specially designated software packages--typically libraries--of the 22 | Free Software Foundation and other authors who decide to use it. You 23 | can use it too, but we suggest you first think carefully about whether 24 | this license or the ordinary General Public License is the better 25 | strategy to use in any particular case, based on the explanations below. 26 | 27 | When we speak of free software, we are referring to freedom of use, 28 | not price. Our General Public Licenses are designed to make sure that 29 | you have the freedom to distribute copies of free software (and charge 30 | for this service if you wish); that you receive source code or can get 31 | it if you want it; that you can change the software and use pieces of 32 | it in new free programs; and that you are informed that you can do 33 | these things. 34 | 35 | To protect your rights, we need to make restrictions that forbid 36 | distributors to deny you these rights or to ask you to surrender these 37 | rights. These restrictions translate to certain responsibilities for 38 | you if you distribute copies of the library or if you modify it. 39 | 40 | For example, if you distribute copies of the library, whether gratis 41 | or for a fee, you must give the recipients all the rights that we gave 42 | you. You must make sure that they, too, receive or can get the source 43 | code. If you link other code with the library, you must provide 44 | complete object files to the recipients, so that they can relink them 45 | with the library after making changes to the library and recompiling 46 | it. And you must show them these terms so they know their rights. 47 | 48 | We protect your rights with a two-step method: (1) we copyright the 49 | library, and (2) we offer you this license, which gives you legal 50 | permission to copy, distribute and/or modify the library. 51 | 52 | To protect each distributor, we want to make it very clear that 53 | there is no warranty for the free library. Also, if the library is 54 | modified by someone else and passed on, the recipients should know 55 | that what they have is not the original version, so that the original 56 | author's reputation will not be affected by problems that might be 57 | introduced by others. 58 | 59 | Finally, software patents pose a constant threat to the existence of 60 | any free program. We wish to make sure that a company cannot 61 | effectively restrict the users of a free program by obtaining a 62 | restrictive license from a patent holder. Therefore, we insist that 63 | any patent license obtained for a version of the library must be 64 | consistent with the full freedom of use specified in this license. 65 | 66 | Most GNU software, including some libraries, is covered by the 67 | ordinary GNU General Public License. This license, the GNU Lesser 68 | General Public License, applies to certain designated libraries, and 69 | is quite different from the ordinary General Public License. We use 70 | this license for certain libraries in order to permit linking those 71 | libraries into non-free programs. 72 | 73 | When a program is linked with a library, whether statically or using 74 | a shared library, the combination of the two is legally speaking a 75 | combined work, a derivative of the original library. The ordinary 76 | General Public License therefore permits such linking only if the 77 | entire combination fits its criteria of freedom. The Lesser General 78 | Public License permits more lax criteria for linking other code with 79 | the library. 80 | 81 | We call this license the "Lesser" General Public License because it 82 | does Less to protect the user's freedom than the ordinary General 83 | Public License. It also provides other free software developers Less 84 | of an advantage over competing non-free programs. These disadvantages 85 | are the reason we use the ordinary General Public License for many 86 | libraries. However, the Lesser license provides advantages in certain 87 | special circumstances. 88 | 89 | For example, on rare occasions, there may be a special need to 90 | encourage the widest possible use of a certain library, so that it becomes 91 | a de-facto standard. To achieve this, non-free programs must be 92 | allowed to use the library. A more frequent case is that a free 93 | library does the same job as widely used non-free libraries. In this 94 | case, there is little to gain by limiting the free library to free 95 | software only, so we use the Lesser General Public License. 96 | 97 | In other cases, permission to use a particular library in non-free 98 | programs enables a greater number of people to use a large body of 99 | free software. For example, permission to use the GNU C Library in 100 | non-free programs enables many more people to use the whole GNU 101 | operating system, as well as its variant, the GNU/Linux operating 102 | system. 103 | 104 | Although the Lesser General Public License is Less protective of the 105 | users' freedom, it does ensure that the user of a program that is 106 | linked with the Library has the freedom and the wherewithal to run 107 | that program using a modified version of the Library. 108 | 109 | The precise terms and conditions for copying, distribution and 110 | modification follow. Pay close attention to the difference between a 111 | "work based on the library" and a "work that uses the library". The 112 | former contains code derived from the library, whereas the latter must 113 | be combined with the library in order to run. 114 | 115 | GNU LESSER GENERAL PUBLIC LICENSE 116 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 117 | 118 | 0. This License Agreement applies to any software library or other 119 | program which contains a notice placed by the copyright holder or 120 | other authorized party saying it may be distributed under the terms of 121 | this Lesser General Public License (also called "this License"). 122 | Each licensee is addressed as "you". 123 | 124 | A "library" means a collection of software functions and/or data 125 | prepared so as to be conveniently linked with application programs 126 | (which use some of those functions and data) to form executables. 127 | 128 | The "Library", below, refers to any such software library or work 129 | which has been distributed under these terms. A "work based on the 130 | Library" means either the Library or any derivative work under 131 | copyright law: that is to say, a work containing the Library or a 132 | portion of it, either verbatim or with modifications and/or translated 133 | straightforwardly into another language. (Hereinafter, translation is 134 | included without limitation in the term "modification".) 135 | 136 | "Source code" for a work means the preferred form of the work for 137 | making modifications to it. For a library, complete source code means 138 | all the source code for all modules it contains, plus any associated 139 | interface definition files, plus the scripts used to control compilation 140 | and installation of the library. 141 | 142 | Activities other than copying, distribution and modification are not 143 | covered by this License; they are outside its scope. The act of 144 | running a program using the Library is not restricted, and output from 145 | such a program is covered only if its contents constitute a work based 146 | on the Library (independent of the use of the Library in a tool for 147 | writing it). Whether that is true depends on what the Library does 148 | and what the program that uses the Library does. 149 | 150 | 1. You may copy and distribute verbatim copies of the Library's 151 | complete source code as you receive it, in any medium, provided that 152 | you conspicuously and appropriately publish on each copy an 153 | appropriate copyright notice and disclaimer of warranty; keep intact 154 | all the notices that refer to this License and to the absence of any 155 | warranty; and distribute a copy of this License along with the 156 | Library. 157 | 158 | You may charge a fee for the physical act of transferring a copy, 159 | and you may at your option offer warranty protection in exchange for a 160 | fee. 161 | 162 | 2. You may modify your copy or copies of the Library or any portion 163 | of it, thus forming a work based on the Library, and copy and 164 | distribute such modifications or work under the terms of Section 1 165 | above, provided that you also meet all of these conditions: 166 | 167 | a) The modified work must itself be a software library. 168 | 169 | b) You must cause the files modified to carry prominent notices 170 | stating that you changed the files and the date of any change. 171 | 172 | c) You must cause the whole of the work to be licensed at no 173 | charge to all third parties under the terms of this License. 174 | 175 | d) If a facility in the modified Library refers to a function or a 176 | table of data to be supplied by an application program that uses 177 | the facility, other than as an argument passed when the facility 178 | is invoked, then you must make a good faith effort to ensure that, 179 | in the event an application does not supply such function or 180 | table, the facility still operates, and performs whatever part of 181 | its purpose remains meaningful. 182 | 183 | (For example, a function in a library to compute square roots has 184 | a purpose that is entirely well-defined independent of the 185 | application. Therefore, Subsection 2d requires that any 186 | application-supplied function or table used by this function must 187 | be optional: if the application does not supply it, the square 188 | root function must still compute square roots.) 189 | 190 | These requirements apply to the modified work as a whole. If 191 | identifiable sections of that work are not derived from the Library, 192 | and can be reasonably considered independent and separate works in 193 | themselves, then this License, and its terms, do not apply to those 194 | sections when you distribute them as separate works. But when you 195 | distribute the same sections as part of a whole which is a work based 196 | on the Library, the distribution of the whole must be on the terms of 197 | this License, whose permissions for other licensees extend to the 198 | entire whole, and thus to each and every part regardless of who wrote 199 | it. 200 | 201 | Thus, it is not the intent of this section to claim rights or contest 202 | your rights to work written entirely by you; rather, the intent is to 203 | exercise the right to control the distribution of derivative or 204 | collective works based on the Library. 205 | 206 | In addition, mere aggregation of another work not based on the Library 207 | with the Library (or with a work based on the Library) on a volume of 208 | a storage or distribution medium does not bring the other work under 209 | the scope of this License. 210 | 211 | 3. You may opt to apply the terms of the ordinary GNU General Public 212 | License instead of this License to a given copy of the Library. To do 213 | this, you must alter all the notices that refer to this License, so 214 | that they refer to the ordinary GNU General Public License, version 2, 215 | instead of to this License. (If a newer version than version 2 of the 216 | ordinary GNU General Public License has appeared, then you can specify 217 | that version instead if you wish.) Do not make any other change in 218 | these notices. 219 | 220 | Once this change is made in a given copy, it is irreversible for 221 | that copy, so the ordinary GNU General Public License applies to all 222 | subsequent copies and derivative works made from that copy. 223 | 224 | This option is useful when you wish to copy part of the code of 225 | the Library into a program that is not a library. 226 | 227 | 4. You may copy and distribute the Library (or a portion or 228 | derivative of it, under Section 2) in object code or executable form 229 | under the terms of Sections 1 and 2 above provided that you accompany 230 | it with the complete corresponding machine-readable source code, which 231 | must be distributed under the terms of Sections 1 and 2 above on a 232 | medium customarily used for software interchange. 233 | 234 | If distribution of object code is made by offering access to copy 235 | from a designated place, then offering equivalent access to copy the 236 | source code from the same place satisfies the requirement to 237 | distribute the source code, even though third parties are not 238 | compelled to copy the source along with the object code. 239 | 240 | 5. A program that contains no derivative of any portion of the 241 | Library, but is designed to work with the Library by being compiled or 242 | linked with it, is called a "work that uses the Library". Such a 243 | work, in isolation, is not a derivative work of the Library, and 244 | therefore falls outside the scope of this License. 245 | 246 | However, linking a "work that uses the Library" with the Library 247 | creates an executable that is a derivative of the Library (because it 248 | contains portions of the Library), rather than a "work that uses the 249 | library". The executable is therefore covered by this License. 250 | Section 6 states terms for distribution of such executables. 251 | 252 | When a "work that uses the Library" uses material from a header file 253 | that is part of the Library, the object code for the work may be a 254 | derivative work of the Library even though the source code is not. 255 | Whether this is true is especially significant if the work can be 256 | linked without the Library, or if the work is itself a library. The 257 | threshold for this to be true is not precisely defined by law. 258 | 259 | If such an object file uses only numerical parameters, data 260 | structure layouts and accessors, and small macros and small inline 261 | functions (ten lines or less in length), then the use of the object 262 | file is unrestricted, regardless of whether it is legally a derivative 263 | work. (Executables containing this object code plus portions of the 264 | Library will still fall under Section 6.) 265 | 266 | Otherwise, if the work is a derivative of the Library, you may 267 | distribute the object code for the work under the terms of Section 6. 268 | Any executables containing that work also fall under Section 6, 269 | whether or not they are linked directly with the Library itself. 270 | 271 | 6. As an exception to the Sections above, you may also combine or 272 | link a "work that uses the Library" with the Library to produce a 273 | work containing portions of the Library, and distribute that work 274 | under terms of your choice, provided that the terms permit 275 | modification of the work for the customer's own use and reverse 276 | engineering for debugging such modifications. 277 | 278 | You must give prominent notice with each copy of the work that the 279 | Library is used in it and that the Library and its use are covered by 280 | this License. You must supply a copy of this License. If the work 281 | during execution displays copyright notices, you must include the 282 | copyright notice for the Library among them, as well as a reference 283 | directing the user to the copy of this License. Also, you must do one 284 | of these things: 285 | 286 | a) Accompany the work with the complete corresponding 287 | machine-readable source code for the Library including whatever 288 | changes were used in the work (which must be distributed under 289 | Sections 1 and 2 above); and, if the work is an executable linked 290 | with the Library, with the complete machine-readable "work that 291 | uses the Library", as object code and/or source code, so that the 292 | user can modify the Library and then relink to produce a modified 293 | executable containing the modified Library. (It is understood 294 | that the user who changes the contents of definitions files in the 295 | Library will not necessarily be able to recompile the application 296 | to use the modified definitions.) 297 | 298 | b) Use a suitable shared library mechanism for linking with the 299 | Library. A suitable mechanism is one that (1) uses at run time a 300 | copy of the library already present on the user's computer system, 301 | rather than copying library functions into the executable, and (2) 302 | will operate properly with a modified version of the library, if 303 | the user installs one, as long as the modified version is 304 | interface-compatible with the version that the work was made with. 305 | 306 | c) Accompany the work with a written offer, valid for at 307 | least three years, to give the same user the materials 308 | specified in Subsection 6a, above, for a charge no more 309 | than the cost of performing this distribution. 310 | 311 | d) If distribution of the work is made by offering access to copy 312 | from a designated place, offer equivalent access to copy the above 313 | specified materials from the same place. 314 | 315 | e) Verify that the user has already received a copy of these 316 | materials or that you have already sent this user a copy. 317 | 318 | For an executable, the required form of the "work that uses the 319 | Library" must include any data and utility programs needed for 320 | reproducing the executable from it. However, as a special exception, 321 | the materials to be distributed need not include anything that is 322 | normally distributed (in either source or binary form) with the major 323 | components (compiler, kernel, and so on) of the operating system on 324 | which the executable runs, unless that component itself accompanies 325 | the executable. 326 | 327 | It may happen that this requirement contradicts the license 328 | restrictions of other proprietary libraries that do not normally 329 | accompany the operating system. Such a contradiction means you cannot 330 | use both them and the Library together in an executable that you 331 | distribute. 332 | 333 | 7. You may place library facilities that are a work based on the 334 | Library side-by-side in a single library together with other library 335 | facilities not covered by this License, and distribute such a combined 336 | library, provided that the separate distribution of the work based on 337 | the Library and of the other library facilities is otherwise 338 | permitted, and provided that you do these two things: 339 | 340 | a) Accompany the combined library with a copy of the same work 341 | based on the Library, uncombined with any other library 342 | facilities. This must be distributed under the terms of the 343 | Sections above. 344 | 345 | b) Give prominent notice with the combined library of the fact 346 | that part of it is a work based on the Library, and explaining 347 | where to find the accompanying uncombined form of the same work. 348 | 349 | 8. You may not copy, modify, sublicense, link with, or distribute 350 | the Library except as expressly provided under this License. Any 351 | attempt otherwise to copy, modify, sublicense, link with, or 352 | distribute the Library is void, and will automatically terminate your 353 | rights under this License. However, parties who have received copies, 354 | or rights, from you under this License will not have their licenses 355 | terminated so long as such parties remain in full compliance. 356 | 357 | 9. You are not required to accept this License, since you have not 358 | signed it. However, nothing else grants you permission to modify or 359 | distribute the Library or its derivative works. These actions are 360 | prohibited by law if you do not accept this License. Therefore, by 361 | modifying or distributing the Library (or any work based on the 362 | Library), you indicate your acceptance of this License to do so, and 363 | all its terms and conditions for copying, distributing or modifying 364 | the Library or works based on it. 365 | 366 | 10. Each time you redistribute the Library (or any work based on the 367 | Library), the recipient automatically receives a license from the 368 | original licensor to copy, distribute, link with or modify the Library 369 | subject to these terms and conditions. You may not impose any further 370 | restrictions on the recipients' exercise of the rights granted herein. 371 | You are not responsible for enforcing compliance by third parties with 372 | this License. 373 | 374 | 11. If, as a consequence of a court judgment or allegation of patent 375 | infringement or for any other reason (not limited to patent issues), 376 | conditions are imposed on you (whether by court order, agreement or 377 | otherwise) that contradict the conditions of this License, they do not 378 | excuse you from the conditions of this License. If you cannot 379 | distribute so as to satisfy simultaneously your obligations under this 380 | License and any other pertinent obligations, then as a consequence you 381 | may not distribute the Library at all. For example, if a patent 382 | license would not permit royalty-free redistribution of the Library by 383 | all those who receive copies directly or indirectly through you, then 384 | the only way you could satisfy both it and this License would be to 385 | refrain entirely from distribution of the Library. 386 | 387 | If any portion of this section is held invalid or unenforceable under any 388 | particular circumstance, the balance of the section is intended to apply, 389 | and the section as a whole is intended to apply in other circumstances. 390 | 391 | It is not the purpose of this section to induce you to infringe any 392 | patents or other property right claims or to contest validity of any 393 | such claims; this section has the sole purpose of protecting the 394 | integrity of the free software distribution system which is 395 | implemented by public license practices. Many people have made 396 | generous contributions to the wide range of software distributed 397 | through that system in reliance on consistent application of that 398 | system; it is up to the author/donor to decide if he or she is willing 399 | to distribute software through any other system and a licensee cannot 400 | impose that choice. 401 | 402 | This section is intended to make thoroughly clear what is believed to 403 | be a consequence of the rest of this License. 404 | 405 | 12. If the distribution and/or use of the Library is restricted in 406 | certain countries either by patents or by copyrighted interfaces, the 407 | original copyright holder who places the Library under this License may add 408 | an explicit geographical distribution limitation excluding those countries, 409 | so that distribution is permitted only in or among countries not thus 410 | excluded. In such case, this License incorporates the limitation as if 411 | written in the body of this License. 412 | 413 | 13. The Free Software Foundation may publish revised and/or new 414 | versions of the Lesser General Public License from time to time. 415 | Such new versions will be similar in spirit to the present version, 416 | but may differ in detail to address new problems or concerns. 417 | 418 | Each version is given a distinguishing version number. If the Library 419 | specifies a version number of this License which applies to it and 420 | "any later version", you have the option of following the terms and 421 | conditions either of that version or of any later version published by 422 | the Free Software Foundation. If the Library does not specify a 423 | license version number, you may choose any version ever published by 424 | the Free Software Foundation. 425 | 426 | 14. If you wish to incorporate parts of the Library into other free 427 | programs whose distribution conditions are incompatible with these, 428 | write to the author to ask for permission. For software which is 429 | copyrighted by the Free Software Foundation, write to the Free 430 | Software Foundation; we sometimes make exceptions for this. Our 431 | decision will be guided by the two goals of preserving the free status 432 | of all derivatives of our free software and of promoting the sharing 433 | and reuse of software generally. 434 | 435 | NO WARRANTY 436 | 437 | 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO 438 | WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. 439 | EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR 440 | OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY 441 | KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE 442 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 443 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE 444 | LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME 445 | THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 446 | 447 | 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN 448 | WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY 449 | AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU 450 | FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR 451 | CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE 452 | LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING 453 | RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A 454 | FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF 455 | SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH 456 | DAMAGES. 457 | 458 | END OF TERMS AND CONDITIONS 459 | 460 | How to Apply These Terms to Your New Libraries 461 | 462 | If you develop a new library, and you want it to be of the greatest 463 | possible use to the public, we recommend making it free software that 464 | everyone can redistribute and change. You can do so by permitting 465 | redistribution under these terms (or, alternatively, under the terms of the 466 | ordinary General Public License). 467 | 468 | To apply these terms, attach the following notices to the library. It is 469 | safest to attach them to the start of each source file to most effectively 470 | convey the exclusion of warranty; and each file should have at least the 471 | "copyright" line and a pointer to where the full notice is found. 472 | 473 | 474 | Copyright (C) 475 | 476 | This library is free software; you can redistribute it and/or 477 | modify it under the terms of the GNU Lesser General Public 478 | License as published by the Free Software Foundation; either 479 | version 2.1 of the License, or (at your option) any later version. 480 | 481 | This library is distributed in the hope that it will be useful, 482 | but WITHOUT ANY WARRANTY; without even the implied warranty of 483 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 484 | Lesser General Public License for more details. 485 | 486 | You should have received a copy of the GNU Lesser General Public 487 | License along with this library; if not, write to the Free Software 488 | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 489 | USA 490 | 491 | Also add information on how to contact you by electronic and paper mail. 492 | 493 | You should also get your employer (if you work as a programmer) or your 494 | school, if any, to sign a "copyright disclaimer" for the library, if 495 | necessary. Here is a sample; alter the names: 496 | 497 | Yoyodyne, Inc., hereby disclaims all copyright interest in the 498 | library `Frob' (a library for tweaking knobs) written by James Random 499 | Hacker. 500 | 501 | , 1 April 1990 502 | Ty Coon, President of Vice 503 | 504 | That's all there is to it! 505 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | prefix ?= /usr 2 | tool = hw-probe 3 | tool_dir = $(DESTDIR)$(prefix)/bin 4 | 5 | .PHONY: all 6 | 7 | all: 8 | echo "Nothing to build." 9 | 10 | install: 11 | mkdir -p $(tool_dir) 12 | install -m 755 $(tool).pl $(tool_dir)/$(tool) 13 | 14 | uninstall: 15 | rm -f $(tool_dir)/$(tool) 16 | 17 | clean: 18 | echo "Nothing to clean up." 19 | -------------------------------------------------------------------------------- /NEWS.md: -------------------------------------------------------------------------------- 1 | Contents 2 | -------- 3 | 4 | * [ HW PROBE 1.6 ](#hw-probe-16) 5 | * [ HW PROBE 1.6 BETA ](#hw-probe-16-beta) 6 | * [ HW PROBE 1.5 ](#hw-probe-15) 7 | * [ HW PROBE 1.4 ](#hw-probe-14) 8 | * [ HW PROBE 1.3 ](#hw-probe-13) 9 | * [ HW PROBE 1.2 ](#hw-probe-12) 10 | * [ HW PROBE 1.1 ](#hw-probe-11) 11 | * [ HW PROBE 1.0 ](#hw-probe-10) 12 | 13 | 14 | HW PROBE 1.6 15 | ------------ 16 | 17 | Released on Sep 21, 2021. 18 | 19 | In this release we have properly tested and fixed support for almost all *BSD systems, expanded support for more Linux systems, implemented probing of HP Smart Array and improved decorating of possibly significant data in collected logs. 20 | 21 | LHWM — Linux/BSD Hardware Monitoring feature is publicly available. 22 | 23 | Changes since 1.6 BETA: 24 | 25 | ### New Features 26 | * Support for HP Smart Array 27 | * Introduced 'fixed' status of the device 28 | * Improve decorating of possibly significant data in logs 29 | * Automatically generate and upload report by using systemd timer 30 | * Display size of unknown RAM module(s) as extra device in the list 31 | * Add outgoing http/https proxy support 32 | * Identify Kubuntu, Xubuntu, Lubuntu, Ubuntu Budgie and Ubuntu Mate 33 | * Probe for ofwdump (BSD) 34 | * Probe for sndstat (BSD) 35 | * Collect system build number (BSD) 36 | * Support for helloSystem 37 | * Probe for neofetch 38 | * Identify OPNsense, TrueNAS, XigmaNAS, ArisbluBSD and LibertyBSD (BSD) 39 | * Identify FFS filesystem (BSD) 40 | * Identify wm (BSD) 41 | * Collect `pkg_info -qP` on OpenBSD (BSD) 42 | * Probe for getprop (Android) 43 | * Identifying of video driver (BSD) 44 | * Identifying of LMDE and CryptoDATA 45 | * Probe for /var/log/messages if dmesg output is incomplete 46 | * Probe for drm_info 47 | * Probe for /var/run/dmesg.boot (BSD) 48 | * Identify Trinity and Unity DEs 49 | * Identify more Synaptics fingerprint readers 50 | * Add -show-dmesg option 51 | * Detect computer form-factor on OpenBSD 52 | 53 | ### Bug Fixes 54 | * Final fixes for LHWM — Linux/BSD Hardware Monitoring 55 | * Do not probe for systemctl by default 56 | * Disable automatic upload if no arguments are passed 57 | * Fix identifying of partition scheme 58 | * Fix identifying of LightDM 59 | * Fix identifying of OS version 60 | * Fix identifying of drives and batteries 61 | * Fix decorating of MMC s/n (BSD) 62 | * Decorate user name in systemctl log 63 | * Fix identifying of GhostBSD version 64 | * Fix identifying of memory modules, drives and monitors 65 | * Fix identifying of processor microarchitecture 66 | * Fix identifying of small memory modules 67 | * Fix identifying of notebook computer type (BSD) 68 | * Fix counting of NICs (BSD) 69 | * Fix identifying of computer form-factor 70 | * Fix identifying of DE 71 | * Fix identifying of HWaddr 72 | * Fix identifying of Synaptics fingerprint readers 73 | * Fix decorating of UUID in efibootmgr log 74 | * Fix identifying of computer type 75 | * Fix identifying of Linux distribution 76 | * Fix identifying of CD-ROMs 77 | * Fix identifying of CPU model 78 | * Change memory modules IDs 79 | * Update list of processor microarchitectures 80 | * Fix collector of Xorg log 81 | * Fix identifying of window managers (BSD) 82 | * Do not hang on empty floppy drives (BSD) 83 | * Fix probe of acpidump (BSD) 84 | * Fix anonymization of audit log in dmesg 85 | * Fix anonymization of grub.cfg 86 | * Fix anonymization of private paths 87 | * Fix identifying of PhoenixOS, siduction and NixOS 88 | * Add -m option to inxi probe 89 | * Fix identifying of Devuan 90 | * Fix identifying of video driver (BSD) 91 | * Hide private strings in ifconfig (BSD) 92 | * Fix status of network devices 93 | * Do not handle large boot logs 94 | * Fix collecting of SMART attributes from NVMe drives (BSD) 95 | * Fix identifying of NomadBSD 96 | * Do not require hwstat and lscpu on unknown BSD systems 97 | * Do not require dmidecode on non-x86 systems (pfSense) 98 | * Identify kind of network device properly (BSD) 99 | * Fix -save option to make a probe first 100 | * Fix identifying of motherboard 101 | * Fix identifying of graphics card 102 | * Set status of webcam to default if driver is missed (BSD) 103 | * Identify CPU by sysctl (BSD) 104 | * Identify partitioning scheme by fdisk (BSD) 105 | 106 | ### Other 107 | * Added Debian 11 Live images with hw-probe preinstalled 108 | * Update install instructions for Linux and BSD 109 | 110 | HW PROBE 1.6 BETA 111 | ----------------- 112 | 113 | Released on May 29, 2020 (0e0162f). 114 | 115 | In this release we add support for BSD systems (FreeBSD, OpenBSD, NetBSD, DragonFly, MidnightBSD, GhostBSD, NomadBSD, FreeNAS, pfSense, OS108, etc.), improve identification of hardware devices on board and fix several security issues in collected logs. 116 | 117 | ### New Features 118 | * Support for BSD systems (FreeBSD, OpenBSD, NetBSD, DragonFly, MidnightBSD, GhostBSD, NomadBSD, FreeNAS, pfSense, OS108, etc.) 119 | * Dual license: LGPL-2.1-or-later or BSD-4-Clause 120 | * Probe for monitor DDC by ddcutil 121 | * Probe for display manager 122 | * Probe for locale language 123 | * Support for edid-decode 2020 124 | * Improve identifying of RAM modules 125 | * Improve identifying of hard drives 126 | * Improve identifying of Synaptics fingerprint readers 127 | * Improve identifying of drives 128 | * Improve identifying of OS 129 | * Improve identifying of computer type 130 | * Improve identifying of monitor model 131 | * Improve identifying of DE and display server 132 | * Handle (fix) large probes in a local .tmp_XXX directory instead of /tmp 133 | 134 | ### Bug Fixes 135 | * Fix security issues in df and dmesg 136 | * Hide partial UUIDs in logs 137 | * Hide private strings in efibootmgr and systemctl logs 138 | * Fix identifying of hard drive size 139 | * Fix identifying of MMC drives 140 | * Do not parse inappropriate X11 logs to identify graphics card status 141 | * Fix identifying of OS in Flatpak probes (Chrome OS, Elementary, Fedora and CentOS) 142 | * Fix identifying of unknown mobile broadband devices 143 | * Hide more UUIDs 144 | * Fix leak of username in audit dmesg log, Xorg log and systemctl log 145 | * Make sure hostname is removed from Xorg log 146 | * Fix duplicated PCI devices by SysFS ID 147 | * Identify vendor of NVMe drives properly 148 | * Fix IDs of unknown SSD drives 149 | * Hide /snap/XXX paths 150 | * Hide UUIDs in efibootmgr 151 | * Fix Dockerfile 152 | 153 | ### Other 154 | * Update install instructions 155 | * AppImage: add ddcutil, update edid-decode 156 | * Flatpak: add developer_name to appdata 157 | * Use sudo -E to make probes to preserve DE name 158 | * AppImage: always use built-in smartctl and ddcutil 159 | * Identify probes via termux 160 | * Snap&Flatpak: speedup build 161 | * Snap&Flatpak: update acpica to 20200110 and hwinfo to 21.68 162 | 163 | HW PROBE 1.5 164 | ------------ 165 | 166 | Released on Jan 15, 2020 (200fbb5). 167 | 168 | In this release we significantly improved anonymization of probes, added quick run-time tests for several devices and implemented more detailed identification of hardware devices on board. 169 | 170 | **Summary:** significantly better anonymization of probes, support for MegaRAID and Adaptec RAID, simple run-time tests for memory/HDD/CPU, enabling/disabling of particular probes, better identification of devices/statuses, importing probes by inventory ID, identification of hardware/OS properties, hardware monitoring (Beta), support for universal packages. 171 | 172 | ### New Features 173 | * Add LHWM options (Linux Hardware Monitoring) - COMING SOON! 174 | * Support for MegaRAID (collect SMART attributes of all connected drives) 175 | * Options to enable/disable logs in addition to current log level 176 | * Added simple tests for memory, HDD and CPU 177 | * Measure speed of all drives by default if `-check-hdd` option is specified 178 | * Use `sudo -E` to preserve environment variables 179 | * Improve anonymization of logs 180 | * Hash all UUIDs 181 | * Do not save uploaded data locally by default 182 | * Clarify privacy policy 183 | * Add `-limit-check-hdd` option to limit number of drives to check 184 | * Add `-minimal`/`-maximal` options to easily change logging level 185 | * Add `-confirm-upload-of-hashed-ids` alias for `-upload` option 186 | * Import probes by inventory ID 187 | * Require Email to generate inventory ID 188 | * Display platform devices (for phones, routers, etc.) 189 | * Display MMC drives 190 | * Display real number of equal devices on board 191 | * Probe for MegaRAID (by `storcli`, `megacli` and `megactl`) 192 | * Probe for Adaptec RAID (by `arcconf`) 193 | * Probe for `/lib/firmware` in the maximal log-level mode 194 | * Collect `df -Th` 195 | * Collect `hddtemp` 196 | * Collect `bundle-list` on Clear Linux OS 197 | * Collect packages list on Slackware and Solus 198 | * Collect DE name, display server and system language 199 | * Collect `systemd-analyze` summary 200 | * Collect `nvme smart-log` 201 | * Collect EDID if `edid-decode` is not installed 202 | * Collect output of `opensc-tool` for chipcards 203 | * Collect `Xorg.0.log` in XWayland (latest Ubuntu) 204 | * Collect `/var/log/gpu-manager.log` 205 | * Collect `/etc/system-release` if available 206 | * Collect `/etc/lsb-release` if available 207 | * Identify filesystem 208 | * Identify monitor(s) by X11 log if proprietary driver is used 209 | * Identify DE and display server 210 | * Identify kind of network controllers 211 | * Identify monitor ratio by resolution if physical size is missed 212 | * Identify pixel density of a monitor 213 | * Identify microarch and microcode of CPU 214 | * Identify video memory size 215 | * Identify total space and used space 216 | * Identify screen area and ratio 217 | * Identify subvendor and submodel 218 | * Identify status of a battery 219 | * Identify boot mode (EFI or BIOS) 220 | * Identify nomodeset 221 | * Identify total and used RAM 222 | * Identify dual boot 223 | * Identify CPU op-modes 224 | * Identify OpenVZ, Pop!_OS and KDE neon distributions 225 | * Identify MX Linux properly 226 | * Identify RAM vendor by JEDEC id 227 | * Identify RAM vendor by model prefix 228 | * Identify SecureBoot by `dmesg` 229 | * Identify form-factor by hard drive model 230 | * Identify status of network devices properly 231 | * Identify status for more device types 232 | * Improve identifying of RAM modules, hard drives, monitors, batteries, scanners, DVB cards and fingerprint readers 233 | * Improve identifying of computer type and form-factor 234 | * Improve identifying of SoC vendor and model 235 | * Improve identifying of hard drives 236 | * Improve identifying of monitors 237 | * Improve identifying of RAM modules 238 | * Count NICs and monitors 239 | * Count sockets, cores and threads 240 | * Get missed hard drive size from `lsblk` 241 | * Guess drive kind if missed 242 | * Support for more Synaptics fingerprint readers 243 | * Recursively apply status of device to low-level devices 244 | * Detect status of devices: graphics cards, wifi cards, ethernet cards, bluetooth cards, sound cards, modems, storage controllers, monitors and batteries 245 | * Detect status for more devices: chipcards, fingerprint readers, card readers, dvb cards, web cameras and tv cards 246 | * Allow to run from `STDIN` and w/o any options 247 | * `sudo` is not required for importing of probes anymore 248 | * Extend list of invalid MAC addresses 249 | * Improve output of -show option 250 | * Added -show-devices option 251 | * Access tokens are obsolete 252 | * Print devices list in JSON 253 | * Show probe log by a new option 254 | * Add -save option to make offline probes 255 | * Send probe by `libwww-perl` in case of curl failure 256 | 257 | ### Bug Fixes 258 | * Fix analysis of Adaptec RAID 259 | * Fix identifying of hardware ID (ignore USB network controllers) 260 | * Fix identifying of graphics drivers 261 | * Fix identifying of SecureBoot 262 | * Fix identifying of video card status 263 | * Fix identifying of processor model 264 | * Fix identifying of unknown RAM modules 265 | * Fix identifying of operability status for desktop graphics cards and USB wireless cards 266 | * Fix identifying of monitor resolution 267 | * Fix identifying of OS name 268 | * Fix identifying of product name 269 | * Fix identifying of device drivers in use 270 | * Fix identifying of vendor/model for desktops and servers 271 | * Detect status of graphics cards properly if Xorg log is not available 272 | * Fix status of bridge devices 273 | * Fix status of network cards in case of multiple ethernet interfaces 274 | * Fix status of secondary graphics cards 275 | * Fix status of graphics cards on Gentoo 276 | * Fix counting of duplicated devices on board 277 | * Fix collecting of `Xorg.0.log`, `xorg.conf` and `xorg.conf.d` configs 278 | * Fix EDID parser 279 | * Fix motherboard naming 280 | * Fix naming of unknown memory modules 281 | * Fix IDs of unknown memory modules and batteries 282 | * Do not display batteries of peripheral devices 283 | * Remove `avahi`, `lsinitrd`, `pstree` and `top` from maximal log level 284 | * Probe for `fstab` in the default log level on ROSA Linux 285 | * Fix error handling in the `-fix` option 286 | * Do not try to run `smartctl` on cdroms 287 | * Move `fstab` log from the default logging level to maximal 288 | * Move `modinfo` to the maximal log level 289 | * Move `alsactl` to maximal logging level 290 | * Move `sensors`, `cpuid`, `cpuinfo` and `lscpu` to minimal set of logs 291 | * Move `findmnt` and `mount` to maximal set of logs 292 | * Do not collect `pstree` and `numactl` by default 293 | * Move `sensors`, `meminfo`, `cpuid` and `cpuinfo` probes up 294 | * Hide inet6 addr in `ifconfig` and `ip` outputs 295 | * Hide lvm volume groups in `boot.log`, `lsblk` and `dev` 296 | * Hide paths in `grub` config 297 | * Hide comments in `fstab` 298 | * Hide local paths in `df`, `lsblk`, `findmnt`, `mount`, `fstab` and `boot.log` 299 | * Hide IPs in `dmesg`, `df`, `findmnt`, `mount` and `fstab` 300 | * Hide labels in `lsblk` output 301 | * Hide hostname in `dmesg` output 302 | * Hide all serial strings in the output of `hwinfo` and `usb-devices` 303 | * Skip hiding of commonly used terms 304 | * Security fixes in `dmesg`, `xorg.log`, `dev`, `systemctl`, `systemd-analyze`, `fdisk` and `lsblk` logs 305 | * Decorate occasional hostname in `boot.log` 306 | * Decorate LABEL in `fstab` 307 | * Fix incompatibility with `Perl 5.8` 308 | * Fix incomplete `lspci`/`lsusb` reports 309 | * Fix probes offline view 310 | * Move `hwinfo --framebuffer` probe to maximal log level 311 | * Remove `hwinfo --zip` probe 312 | * Do not remove small `lsblk` and `efibootmgr` logs 313 | * Fix minimal logging level 314 | * Remove spec chars from `boot.log` 315 | * Truncate large `boot.log` (F29, Ubuntu 18) 316 | * Drop `curl --http1.0` option 317 | * Compress probes by `xz -9` 318 | * Run `mcelog` on `x86*` only 319 | * Clear `modinfo` output 320 | * Compacting of `modinfo` log 321 | * Truncate large logs 322 | * Properly detect `hwaddr` 323 | * Clear empty logs 324 | * Use `IO::Interface` if `ip` and `ifconfig` commands are not available 325 | * Use `POSIX::uname` if `uname` command is not available 326 | * Do not use `POSIX` module 327 | * Do not dump `lspci`/`lsusb` errors 328 | * Remove spec chars from device names 329 | * Rename `-get-inventory-id` option to `-generate-inventory` 330 | * Fix `glxgears` test 331 | * Fix collected packages list on Arch Linux 332 | * Order the list of installed RPM packages 333 | 334 | ### Other 335 | 336 | * Add install instructions for Alpine, Arch Linux, blackPanther OS, CentOS 6/7/8, Debian, Fedora, Manjaro, openSUSE, OpenVZ 7, Puppy Linux and RHEL 6/7/8. 337 | * Improve install instructions for Ubuntu, Manjaro, Gentoo and Puppy 338 | * Update `Dockerfile` 339 | * Support for old tgz compressed probes 340 | * Protect `dmesg` log 341 | * Remove error messages from `dmidecode` log 342 | * Support for the new Perl `inxi` 343 | * Added `-high-compress` option for better compression of archive 344 | * Added `-hwinfo-path` option 345 | * Code review by H.Merijn Brand - Tux 346 | 347 | 348 | HW PROBE 1.4 349 | ------------ 350 | 351 | Released on Apr 14, 2018 (3a59093). 352 | 353 | Most significant change in this release is the anonymization of probes on the client-side. Previously "private data" (like IPs, MACs, serials, hostname, username, etc.) was removed on the server-side. But now you do not have to worry how server will handle your "private data", since it's not uploaded at all. You can now upload probes from any computers and servers w/o the risk of security leak. 354 | 355 | **Summary:** improved privacy, faster probing, probe USB drives, probe MegaRAID, probe via sudo, improved detection of hardware, Deb package. 356 | 357 | ### New Features 358 | 1. Remove private information from probe (hostname, IPs, MACs, serials, etc.) on the client side 359 | 2. Up to 3 times faster probing of hardware 360 | 3. Allow to run the tool via `sudo` 361 | 4. Improved detection of LCD monitors, motherboards and drives 362 | 5. Collect SMART info from drives connected by USB 363 | 6. Initial support for probing drives in MegaRAID 364 | 7. Collect info about MMC controllers 365 | 8. Get EDID hex dump from `xrandr` output 366 | 9. Added Debian/Ubuntu package 367 | 10. Collecting logs in C locale 368 | 11. Added `-identify-monitor` and `-fix-edid` private options 369 | 12. Probe for `mcelog`, `slabtop`, `cpuid` and `/proc/scsi` 370 | 13. Added probe of packages list on Arch by pacman 371 | 14. Improved `lsblk` and `iostat` probes 372 | 15. Print warning if X11-related logs are not collected 373 | 16. Renamed `-group` option to `-inventory-id` 374 | 17. Renamed `-get-group` option to `-get-inventory-id` 375 | 18. Update Docker image to Alpine 3.7 376 | 19. Require `perl-Digest-SHA` 377 | 20. Change license to LGPL-2.1+ 378 | 379 | ### Bug Fixes 380 | 1. Fixed `glxgears` test 381 | 2. Do not read monitor vendor names from `pnp.ids` file 382 | 3. Remove empty logs from probes 383 | 4. Fixed detection of HWid 384 | 5. Fixed notebook model names 385 | 6. Do not probe for `blkid` (use `lsblk` instead) 386 | 7. Do not probe for `mount` (use `findmnt` instead) 387 | 388 | 389 | HW PROBE 1.3 390 | ------------ 391 | 392 | Released on Dec 3, 2017 (d192aee). 393 | 394 | ### New Features 395 | 1. Docker image for HW Probe to run anywhere 396 | 2. Detecting NVMe drives 397 | 3. Create offline collections of probes with `-import` option 398 | 4. Collecting logs in C.UTF-8 locale 399 | 5. Added probes: vulkaninfo, iostat, vainfo, uptime, memtester, cpuinfo, i2cdetect, numactl and lsinitrd 400 | 6. Made `-dump-acpi` and `-decode-acpi` public options 401 | 7. Improved support for Alpine Linux 402 | 403 | ### Bug Fixes 404 | 1. Fixed detection of computer vendor/model 405 | 2. Fixed detection of HWid 406 | 3. Fixed collecting of X11 logs 407 | 4. Fixed xdpyinfo probe 408 | 409 | 410 | HW PROBE 1.2 411 | ------------ 412 | 413 | Released on Mar 9, 2017 (c5f178b). 414 | 415 | 1. Use `ip addr` command to detect hwaddr if `ifconfig` command is not available 416 | 2. Fixed `hdparm` and `smartctl` logs 417 | 418 | 419 | HW PROBE 1.1 420 | ------------ 421 | 422 | Released on Sep 28, 2016 (144b0b7). 423 | 424 | 1. Use secure HTTPS connection to upload probes 425 | 2. Detect release of a Linux distribution 426 | 3. Detect real Mac-address 427 | 4. Carefully detect devices on board 428 | 429 | 430 | HW PROBE 1.0 431 | ------------ 432 | 433 | Released on Nov 29, 2015 (4db41d1). 434 | 435 | This is a first public release of the tool, that was used internally for testing hardware compatibility of Linux distributions since 2014. 436 | 437 | -------------------------------------------------------------------------------- /OBS/PKGBUILD: -------------------------------------------------------------------------------- 1 | # Maintainer: Andrey Ponomarenko 2 | 3 | pkgname=hw-probe 4 | pkgver=1.5 5 | pkgrel=1 6 | pkgdesc="Check operability of computer hardware and find drivers" 7 | arch=('any') 8 | url="https://github.com/linuxhw/hw-probe" 9 | license=('LGPLv2.1+') 10 | source=("$pkgname-$pkgver.tar.gz") 11 | sha256sums=('8bb7d6ff272c1412e26fcfd86e9df5c3e34e1584552404b930c281b8498b25ea') 12 | depends=('perl>=5' 'curl' 'perl-libwww' 'hwinfo' 'dmidecode' 'pciutils' 'usbutils' 'smartmontools' 'hdparm' 'net-tools' 'mesa-demos' 'glew' 'lm_sensors' 'lsb-release') 13 | optdepends=('acpica' 'sysstat' 'iw' 'ethtool' 'alsa-utils' 'efibootmgr') 14 | 15 | package() { 16 | cd "$srcdir"/$pkgname-$pkgver 17 | install -dm755 "$pkgdir"/usr 18 | DESTDIR="$pkgdir" make install prefix=/usr 19 | } 20 | -------------------------------------------------------------------------------- /OBS/_service: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /OBS/appimage.yml: -------------------------------------------------------------------------------- 1 | app: hw-probe 2 | 3 | build: 4 | packages: 5 | - tar 6 | - gcc 7 | - make 8 | - flex 9 | - bison 10 | - gcc-c++ 11 | - automake 12 | - Mesa-libGL-devel 13 | - glew-devel 14 | - glu-devel 15 | - libusb-1_0-devel 16 | - libudev-devel 17 | - libkmod-devel 18 | - libuuid-devel 19 | - glib2-devel 20 | - libXrandr-devel 21 | - zlib-devel 22 | 23 | script: 24 | # edid-decode 25 | - tar -xf $BUILD_SOURCE_DIR/edid-decode-20200211.tar.xz -C $BUILD_SOURCE_DIR 26 | - cd $BUILD_SOURCE_DIR/edid-decode-20200211 27 | - sed -i -e 's/ -g / -s /' Makefile 28 | - CPPFLAGS='-std=c++0x' make 29 | - make install DESTDIR=$BUILD_APPDIR 30 | # ddcutil 31 | - tar -xf $BUILD_SOURCE_DIR/ddcutil-20200218.tar.xz -C $BUILD_SOURCE_DIR 32 | - cd $BUILD_SOURCE_DIR/ddcutil-20200218 33 | - ./configure --prefix=/usr ZLIB_LIBS="-lz" 34 | - sed -i -e 's/ -g / -s /' Makefile 35 | - make 36 | - install -D ./src/ddcutil $BUILD_APPDIR/usr/bin/ddcutil 37 | # dmidecode 38 | - tar -xf $BUILD_SOURCE_DIR/dmidecode-3.4.tar.xz -C $BUILD_SOURCE_DIR 39 | - cd $BUILD_SOURCE_DIR/dmidecode-3.4 40 | - sed -i -e 's/ -O2/ -s -O2/' Makefile 41 | - make 42 | - make install prefix=/usr DESTDIR=$BUILD_APPDIR 43 | # lm_sensors 44 | - tar -xf $BUILD_SOURCE_DIR/lm-sensors-3-6-0.tar.gz -C $BUILD_SOURCE_DIR 45 | - cd $BUILD_SOURCE_DIR/lm-sensors-3-6-0 46 | - sed -i -e 's/ -g/ -s/' Makefile 47 | - make install BUILD_STATIC_LIB=0 DEBUG=0 PREFIX=/usr DESTDIR=$BUILD_APPDIR 48 | # libkmod 49 | - tar -xf $BUILD_SOURCE_DIR/kmod-12.tar.gz -C $BUILD_SOURCE_DIR 50 | - cd $BUILD_SOURCE_DIR/kmod-12 51 | - ./configure --disable-debug --disable-python --disable-logging --disable-tools --disable-test-modules --disable-manpages --prefix=/usr 52 | - sed -i -e 's/ -g / -s /' Makefile 53 | - make 54 | - make install DESTDIR=$BUILD_APPDIR 55 | # usbutils 56 | - tar -xf $BUILD_SOURCE_DIR/usbutils-007.tar.gz -C $BUILD_SOURCE_DIR 57 | - cd $BUILD_SOURCE_DIR/usbutils-007 58 | - cp -f $BUILD_SOURCE_DIR/usb.ids . 59 | - ./configure --prefix=/usr 60 | - sed -i -e 's/ -g / -s /' Makefile 61 | - make 62 | - make install DESTDIR=$BUILD_APPDIR 63 | - sed -i -e 's|/usr|././|g' $BUILD_APPDIR/usr/bin/lsusb 64 | # pciutils 65 | - tar -xf $BUILD_SOURCE_DIR/pciutils-3.6.2.tar.gz -C $BUILD_SOURCE_DIR 66 | - cd $BUILD_SOURCE_DIR/pciutils-3.6.2 67 | - cp -f $BUILD_SOURCE_DIR/pci.ids . 68 | - make install PREFIX=/usr DESTDIR=$BUILD_APPDIR SHARED=no LIBKMOD=yes HWDB=no ZLIB=no DNS=no 69 | - sed -i -e 's|/usr|././|g' $BUILD_APPDIR/usr/sbin/lspci 70 | # acpica-unix 71 | - tar -xf $BUILD_SOURCE_DIR/acpica-unix-20220331.tar.gz -C $BUILD_SOURCE_DIR 72 | - cd $BUILD_SOURCE_DIR/acpica-unix-20220331 73 | - make 74 | - make install DESTDIR=$BUILD_APPDIR 75 | # hdparm 76 | - tar -xf $BUILD_SOURCE_DIR/hdparm-9.65.tar.gz -C $BUILD_SOURCE_DIR 77 | - cd $BUILD_SOURCE_DIR/hdparm-9.65 78 | - make 79 | - make install DESTDIR=$BUILD_APPDIR 80 | # smartmontools 81 | - tar -xf $BUILD_SOURCE_DIR/smartmontools-7.3.tar.gz -C $BUILD_SOURCE_DIR 82 | - cd $BUILD_SOURCE_DIR/smartmontools-7.3 83 | - NOCONFIGURE=1 NO_CONFIGURE=1 sh autogen.sh 84 | - ./configure --with-nvme-devicescan --prefix=/usr 85 | - sed -i -e 's/ -g / -s /' Makefile 86 | - make 87 | - make install DESTDIR=$BUILD_APPDIR 88 | # libx86emu 89 | - tar -xf $BUILD_SOURCE_DIR/libx86emu-3.5.tar.gz -C $BUILD_SOURCE_DIR 90 | - cd $BUILD_SOURCE_DIR/libx86emu-3.5 91 | - echo '3.5' > VERSION 92 | - rm -f git2log 93 | - sed -i -e 's/ -g / -s /' Makefile 94 | - make 95 | - make install DESTDIR=$BUILD_APPDIR 96 | # mesa-demos 97 | - tar -xf $BUILD_SOURCE_DIR/mesa-demos-8.1.0.tar.gz -C $BUILD_SOURCE_DIR 98 | - cd $BUILD_SOURCE_DIR/mesa-demos-8.1.0 99 | - ./configure --prefix=/usr 100 | - sed -i -e 's/-lGLEW//' Makefile src/xdemos/Makefile 101 | - make 102 | - cp -fr ./src/xdemos/{glxgears,glxinfo} $BUILD_APPDIR/usr/bin/ 103 | # hwinfo 104 | - tar -xf $BUILD_SOURCE_DIR/hwinfo-22.1.tar.gz -C $BUILD_SOURCE_DIR 105 | - cd $BUILD_SOURCE_DIR/hwinfo-22.1 106 | - echo '22.1' > VERSION 107 | - rm -f git2log 108 | - sed -i -e 's/ -g / -s /' Makefile.common 109 | - CFLAGS="-I$BUILD_APPDIR/usr/include -std=gnu99" LDFLAGS="-L$BUILD_APPDIR/usr/lib64 -L$BUILD_APPDIR/usr/lib -lx86emu" LD_LIBRARY_PATH="$BUILD_APPDIR/usr/lib64:$BUILD_APPDIR/usr/lib" make 110 | - make install DESTDIR=$BUILD_APPDIR 111 | # hw-probe 112 | - tar -xf $BUILD_SOURCE_DIR/hw-probe-1.6-AI.tar.gz -C $BUILD_SOURCE_DIR 113 | - cd $BUILD_SOURCE_DIR/hw-probe-1.6-AI 114 | - make install prefix=$BUILD_APPDIR/usr 115 | # create Perl5 directory 116 | - mkdir -p $BUILD_APPDIR/usr/lib/perl5 117 | # perl-URI 118 | - tar -xf $BUILD_SOURCE_DIR/URI-5.08.tar.gz -C $BUILD_SOURCE_DIR 119 | - cd $BUILD_SOURCE_DIR/URI-5.08 120 | - perl Makefile.PL 121 | - make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 122 | - cp -fr ./INST/SITELIB/* $BUILD_APPDIR/usr/lib/perl5/ 123 | # perl-HTTP-Message 124 | - tar -xf $BUILD_SOURCE_DIR/HTTP-Message-6.37.tar.gz -C $BUILD_SOURCE_DIR 125 | - cd $BUILD_SOURCE_DIR/HTTP-Message-6.37 126 | - perl Makefile.PL 127 | - make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 128 | - cp -fr ./INST/SITELIB/* $BUILD_APPDIR/usr/lib/perl5/ 129 | # perl-Net-HTTP 130 | - tar -xf $BUILD_SOURCE_DIR/Net-HTTP-6.22.tar.gz -C $BUILD_SOURCE_DIR 131 | - cd $BUILD_SOURCE_DIR/Net-HTTP-6.22 132 | - perl Makefile.PL 133 | - make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 134 | - cp -fr ./INST/SITELIB/* $BUILD_APPDIR/usr/lib/perl5/ 135 | # perl-Try-Tiny 136 | - tar -xf $BUILD_SOURCE_DIR/Try-Tiny-0.31.tar.gz -C $BUILD_SOURCE_DIR 137 | - cd $BUILD_SOURCE_DIR/Try-Tiny-0.31 138 | - perl Makefile.PL 139 | - make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 140 | - cp -fr ./INST/SITELIB/* $BUILD_APPDIR/usr/lib/perl5/ 141 | # perl-LWP-MediaTypes 142 | - tar -xf $BUILD_SOURCE_DIR/LWP-MediaTypes-6.02.tar.gz -C $BUILD_SOURCE_DIR 143 | - cd $BUILD_SOURCE_DIR/LWP-MediaTypes-6.02 144 | - perl Makefile.PL 145 | - make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 146 | - cp -fr ./INST/SITELIB/* $BUILD_APPDIR/usr/lib/perl5/ 147 | # perl-HTTP-Date 148 | - tar -xf $BUILD_SOURCE_DIR/HTTP-Date-6.02.tar.gz -C $BUILD_SOURCE_DIR 149 | - cd $BUILD_SOURCE_DIR/HTTP-Date-6.02 150 | - perl Makefile.PL 151 | - make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 152 | - cp -fr ./INST/SITELIB/* $BUILD_APPDIR/usr/lib/perl5/ 153 | # perl-TimeDate 154 | - tar -xf $BUILD_SOURCE_DIR/TimeDate-2.30.tar.gz -C $BUILD_SOURCE_DIR 155 | - cd $BUILD_SOURCE_DIR/TimeDate-2.30 156 | - perl Makefile.PL 157 | - make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 158 | - cp -fr ./INST/SITELIB/* $BUILD_APPDIR/usr/lib/perl5/ 159 | # libwww-perl 160 | - tar -xf $BUILD_SOURCE_DIR/libwww-perl-6.36.tar.gz -C $BUILD_SOURCE_DIR 161 | - cd $BUILD_SOURCE_DIR/libwww-perl-6.36 162 | - perl Makefile.PL 163 | - make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 164 | - cp -fr ./INST/SITELIB/* $BUILD_APPDIR/usr/lib/perl5/ 165 | # perl-parent 166 | - tar -xf $BUILD_SOURCE_DIR/parent-0.238.tar.gz -C $BUILD_SOURCE_DIR 167 | - cd $BUILD_SOURCE_DIR/parent-0.238 168 | - perl Makefile.PL 169 | - make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 170 | - cp -fr ./INST/SITELIB/* $BUILD_APPDIR/usr/lib/perl5/ 171 | # perl-Time-Local 172 | - tar -xf $BUILD_SOURCE_DIR/Time-Local-1.30.tar.gz -C $BUILD_SOURCE_DIR 173 | - cd $BUILD_SOURCE_DIR/Time-Local-1.30 174 | - perl Makefile.PL 175 | - make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 176 | - cp -fr ./INST/SITELIB/* $BUILD_APPDIR/usr/lib/perl5/ 177 | # perl-base 178 | - tar -xf $BUILD_SOURCE_DIR/perl-5.36.0.tar.xz -C $BUILD_SOURCE_DIR 179 | - cd $BUILD_SOURCE_DIR/perl-5.36.0 180 | - sh Configure -de -Dprefix=/ 181 | - sed -i -e 's/ -lnsl / /' Makefile 182 | - make 183 | - install -D ./perl $BUILD_APPDIR/usr/bin/perl 184 | - cd lib && cat $BUILD_SOURCE_DIR/PERL5_BASE | while read i; do mkdir -p $BUILD_APPDIR/usr/lib/perl5/`dirname $i`; cp -fr $i $BUILD_APPDIR/usr/lib/perl5/$i; done 185 | # meta info 186 | - mkdir -p $BUILD_APPDIR/usr/share/metainfo/ 187 | - cp -f $BUILD_SOURCE_DIR/hw-probe.appdata.xml $BUILD_APPDIR/usr/share/metainfo/ 188 | - cp -f $BUILD_SOURCE_DIR/hw-probe.desktop $BUILD_APPDIR/ 189 | - cp -f $BUILD_SOURCE_DIR/hw-probe.png $BUILD_APPDIR/ 190 | # remove unused files 191 | - cd $BUILD_APPDIR 192 | # header files 193 | - rm -fr usr/include 194 | # binaries 195 | - rm -fr usr/bin/{lsusb.py,acpibin,acpiexamples,acpiexec,acpihelp,acpinames,acpisrc,usbhid-dump,sensors-conf-convert} 196 | - rm -fr usr/sbin/{convert_hd,update-usbids.sh,check_hd,mk_isdnhwdb,getsysinfo,fancontrol,pwmconfig,update-pciids,isadump,isaset,ownership,setpci,vpddecode,sensors-detect,update-smart-drivedb,smartd} 197 | # configs 198 | - rm -fr usr/lib/{pkgconfig,systemd,libkmod.la} 199 | - rm -fr usr/lib64/pkgconfig 200 | - rm -fr etc/{sensors.d,smartd*,zypp} 201 | - rm -fr usr/share/{hwinfo,man,doc,pkgconfig,cmake,ddcutil,smartmontools,usb.ids.gz} 202 | - rm -fr usr/etc 203 | # other 204 | - rm -fr var share usr/man 205 | - rm -fr usr/lib/perl5/libwww/*.pod 206 | # strip binaries 207 | - find . -type f | perl -lne 'print if -B and -x' | xargs strip 208 | 209 | -------------------------------------------------------------------------------- /OBS/debian.changelog: -------------------------------------------------------------------------------- 1 | hw-probe (1.5-1) stable; urgency=low 2 | 3 | * Update to 1.5 4 | 5 | -- Andrey Ponomarenko Fri, 17 Jan 2020 22:55:00 +0300 6 | 7 | hw-probe (1.4-1) stable; urgency=low 8 | 9 | * Initial Package on OBS 10 | 11 | -- Andrey Ponomarenko Fri, 20 Jul 2018 16:05:00 +0300 -------------------------------------------------------------------------------- /OBS/debian.control: -------------------------------------------------------------------------------- 1 | Source: hw-probe 2 | Section: utils 3 | Priority: optional 4 | Maintainer: Andrey Ponomarenko 5 | Build-Depends: debhelper (>=9), perl-base (>=5) 6 | Standards-Version: 3.9.6 7 | Homepage: https://github.com/linuxhw/hw-probe 8 | 9 | Package: hw-probe 10 | Architecture: all 11 | Depends: perl-base (>=5), 12 | libwww-perl, 13 | libdigest-sha-perl, 14 | curl, 15 | hwinfo, 16 | dmidecode, 17 | pciutils, 18 | usbutils, 19 | smartmontools, 20 | hdparm, 21 | lm-sensors, 22 | x11-utils, 23 | mesa-utils, 24 | lsb-release, 25 | acpica-tools 26 | Recommends: mcelog, 27 | edid-decode, 28 | memtester, 29 | pnputils, 30 | sysstat, 31 | upower, 32 | fdisk, 33 | alsa-utils, 34 | cpuid, 35 | ethtool, 36 | i2c-tools, 37 | wireless-tools, 38 | iw, 39 | vainfo, 40 | vdpauinfo, 41 | vulkan-utils, 42 | x11-xserver-utils, 43 | xinput 44 | Description: Check operability of computer hardware and find drivers 45 | A tool to check operability of computer hardware and upload result 46 | to the Linux hardware database. 47 | . 48 | Probe — is a snapshot of your computer hardware state and system 49 | logs. The tool checks operability of devices by analysis of logs 50 | and returns a permanent url to view the probe of the computer. 51 | . 52 | The tool is intended to simplify collecting of logs necessary for 53 | investigating hardware related problems. Just run one simple 54 | command in the console to check your hardware and collect all the 55 | system logs at once: 56 | . 57 | sudo -E hw-probe -all -upload 58 | . 59 | By creating probes you contribute to the HDD/SSD Desktop-Class 60 | Reliability Test study: https://github.com/linuxhw/SMART -------------------------------------------------------------------------------- /OBS/debian.rules: -------------------------------------------------------------------------------- 1 | #!/usr/bin/make -f 2 | DH_VERBOSE = 1 3 | DPKG_EXPORT_BUILDFLAGS = 1 4 | include /usr/share/dpkg/default.mk 5 | %: 6 | dh $@ 7 | -------------------------------------------------------------------------------- /OBS/hw-probe.appdata.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | org.linux_hardware.hw-probe 5 | CC-BY-3.0 6 | BSD-2-Clause 7 | Hardware Probe 8 | Check operability of computer hardware and find drivers 9 | Linux Hardware Project 10 | 11 | 12 |

13 | A tool to probe for hardware, check operability and find drivers with 14 | the help of Linux Hardware Database. 15 |

16 |

17 | Probe — is a snapshot of your computer hardware state. 18 | The tool checks operability of devices by analysis of logs, uploads 19 | anonymized hardware info to the database and returns a permanent url 20 | to view the probe of the computer: 21 |

22 |

23 | sudo -E hw-probe -all -upload 24 |

25 |

26 | If some of hardware devices doesn't work due to a missed driver 27 | then the tool will suggest a proper Linux kernel version according 28 | to the LKDDb or third-party drivers. 29 |

30 |
31 | 32 | 33 | 34 | System 35 | 36 | 37 | Utility 38 | 39 | 40 | 41 | org.linux_hardware.hw-probe.desktop 42 | 43 | 44 | 45 | https://github.com/linuxhw/build-stuff/releases/download/1.4/image-2.png 46 | 47 | 48 | https://github.com/linuxhw/build-stuff/releases/download/1.4/image-3.png 49 | 50 | 51 | https://github.com/linuxhw/build-stuff/releases/download/1.4/image-1.png 52 | 53 | 54 | 55 | https://github.com/linuxhw/hw-probe 56 | Linux Hardware 57 | 58 | 59 | hw-probe 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | Hardware Probe Tool 1.6.5 69 | 70 | https://github.com/linuxhw/hw-probe/blob/master/NEWS.md#hw-probe-16 71 | 72 | 73 | 74 |
75 | -------------------------------------------------------------------------------- /OBS/hw-probe.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=Hardware Probe 3 | Comment=Probe for hardware, check operability and find drivers 4 | Exec=hw-probe -appimage 5 | Icon=hw-probe 6 | Terminal=true 7 | Type=Application 8 | StartupNotify=true 9 | Categories=System; 10 | Keywords=HW Probe;Hardware;Probe; -------------------------------------------------------------------------------- /OBS/hw-probe.dsc: -------------------------------------------------------------------------------- 1 | Format: 1.0 2 | Source: hw-probe 3 | Version: 1.5-1 4 | Binary: hw-probe 5 | Maintainer: Andrey Ponomarenko 6 | Architecture: any 7 | Build-Depends: debhelper (>= 4.1.16) 8 | DEBTRANSFORM-TAR: hw-probe-1.5.tar.gz 9 | Files: 10 | d4c886e88ec13c245d6d45c88d2f0b80 113996 hw-probe-1.5.tar.gz -------------------------------------------------------------------------------- /OBS/hw-probe.spec: -------------------------------------------------------------------------------- 1 | Summary: Check operability of computer hardware and find drivers 2 | Name: hw-probe 3 | Version: 1.5 4 | Release: 1 5 | Group: Development/Other 6 | BuildArch: noarch 7 | License: LGPLv2.1+ 8 | URL: https://github.com/linuxhw/hw-probe 9 | Source0: hw-probe-%{version}.tar.gz 10 | Requires: perl 11 | Requires: perl-libwww-perl 12 | Requires: curl 13 | Requires: hwinfo 14 | Requires: dmidecode 15 | Requires: pciutils 16 | Requires: usbutils 17 | Requires: smartmontools 18 | Requires: hdparm 19 | Requires: sysstat 20 | Requires: util-linux 21 | %ifarch %ix86 x86_64 22 | Requires: mcelog 23 | %endif 24 | %if 0%{?suse_version} || 0%{?sle_version} 25 | Requires: sensors 26 | Requires: lsb-release 27 | Requires: Mesa-demo-x 28 | Requires: acpica 29 | %endif 30 | %if 0%{?fedora} 31 | Requires: lm_sensors 32 | Requires: redhat-lsb-core 33 | Requires: mesa-demos 34 | Requires: acpica-tools 35 | %endif 36 | 37 | %define debug_package %{nil} 38 | 39 | %description 40 | A tool to check operability of computer hardware and upload result 41 | to the Linux hardware database. 42 | 43 | Probe — is a snapshot of your computer hardware state and system 44 | logs. The tool checks operability of devices by analysis of logs 45 | and returns a permanent url to view the probe of the computer. 46 | 47 | The tool is intended to simplify collecting of logs necessary for 48 | investigating hardware related problems. Just run one simple 49 | command in the console to check your hardware and collect all the 50 | system logs at once: 51 | 52 | sudo -E hw-probe -all -upload 53 | 54 | By creating probes you contribute to the HDD/SSD Desktop-Class 55 | Reliability Test study: https://github.com/linuxhw/SMART 56 | 57 | %prep 58 | %setup -q -n hw-probe-%{version} 59 | chmod 0644 README.md 60 | 61 | %build 62 | # Nothing to build yet 63 | 64 | %install 65 | mkdir -p %{buildroot}%{_prefix} 66 | make install prefix=%{_prefix} DESTDIR=%{buildroot} 67 | 68 | %clean 69 | rm -rf %{buildroot} 70 | 71 | %files 72 | %defattr(-,root,root,-) 73 | %doc README.md 74 | %{_bindir}/%{name} 75 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | HW PROBE 1.6.6 2 | ============== 3 | 4 | Hardware Probe Tool (hw-probe) — a tool to probe for hardware, check operability and find drivers with the help of Linux hardware database: https://linux-hardware.org 5 | 6 | For BSD users: https://bsd-hardware.info 7 | 8 | 9 | Contents 10 | -------- 11 | 12 | * [ About ](#about) 13 | * [ Install ](#install) 14 | * [ Usage ](#usage) 15 | * [ Review ](#review) 16 | * [ AppImage ](#appimage) 17 | * [ Docker ](#docker) 18 | * [ Live CD/USB ](#live-cd) 19 | * [ Snap ](#snap) 20 | * [ Flatpak ](#flatpak) 21 | * [ Inventory ](#inventory) 22 | * [ Monitoring ](#monitoring) 23 | * [ Periodic run ](#periodic-run) 24 | * [ Offline view ](#offline-view) 25 | * [ ACPI dump ](#acpi-dump) 26 | * [ Operability ](#operability) 27 | * [ Disable logs ](#disable-logs) 28 | * [ Privacy ](#privacy) 29 | * [ License ](#license) 30 | 31 | About 32 | ----- 33 | 34 | Probe — is a snapshot of your computer's hardware state and logs. The tool checks operability of devices by analysis of logs and returns a permanent url to view the probe of the computer. 35 | 36 | Share your probes and logs with Linux/BSD developers in order to debug and fix problems on your computer. Simplify inventory of hardware in your company. Please read more in [our blog](https://forum.linux-hardware.org/). 37 | 38 | If some of your computer devices doesn't work due to a missed driver then the tool will suggest a proper Linux kernel version according to the LKDDb or third-party drivers. 39 | 40 | Sample probe: https://linux-hardware.org/?probe=b394035f90 41 | 42 | You can create a probe of your computer with the help of [AppImage](#appimage), [Docker](#docker), [Snap](#snap), [Flatpak](#flatpak), [Live CD/USB](#live-cd) or RPM/Deb package. 43 | 44 | By creating probes you contribute to the "HDD/SSD Desktop-Class Reliability Test" study: https://github.com/linuxhw/SMART 45 | 46 | 47 | Install 48 | ------- 49 | 50 | You can probe your computer by [AppImage](#appimage), [Docker](#docker), [Snap](#snap), [Flatpak](#flatpak) or [Live CD/USB](#live-cd). 51 | 52 | Also you can install a native package (RPM, Deb, Pkg, etc.) for your Linux distribution or install from source. See install instructions in the [INSTALL.md](INSTALL.md) file. 53 | 54 | See install instructions for BSD in the [INSTALL.BSD.md](INSTALL.BSD.md) file. 55 | 56 | 57 | Usage 58 | ----- 59 | 60 | Create a probe: 61 | 62 | sudo -E hw-probe -all -upload 63 | 64 | 65 | Review 66 | ------ 67 | 68 | You can adjust device statuses in your probe and leave comments. Look for big green REVIEW button on the probe page. 69 | 70 | Look for **'Export template to forum'** link at the bottom of the probe page to generate BBCode review template to post on your favorite forum. Please consider to post your reviews to [Linux Hardware Review](https://forum.linux-hardware.org/) forum. 71 | 72 | 73 | AppImage 74 | -------- 75 | 76 | The portable app that runs anywhere (with `glibc >= 2.17`), no need to install anything. Just download [hw-probe-1.6.5-189-x86_64.AppImage](https://github.com/linuxhw/hw-probe/releases/download/1.6/hw-probe-1.6.5-189-x86_64.AppImage) and run the following command in terminal to probe your computer: 77 | 78 | chmod +x ./hw-probe-1.6.5-189-x86_64.AppImage 79 | sudo -E ./hw-probe-1.6.5-189-x86_64.AppImage -all -upload 80 | 81 | You may need to install `fuse-libs` or `libfuse2` package if it is not pre-installed in your Linux distribution to run appimages. Try [old AppImage](https://github.com/linuxhw/hw-probe/releases/download/1.4/hw-probe-1.4-135-x86_64.AppImage) if you have troubles to run the latest image (e.g. on ancient Linux distributions with `glibc < 2.17`). 82 | 83 | ###### Supported systems 84 | 85 | The [old AppImage](https://github.com/linuxhw/hw-probe/releases/download/1.4/hw-probe-1.4-135-x86_64.AppImage) runs on all 64-bit Linux distributions with `Glibc >= 2.14` including: 86 | 87 | * Ubuntu 12.04 and newer 88 | * Linux Mint 13 and newer 89 | * Debian 8 and newer 90 | * openSUSE 12.0 and newer 91 | * Manjaro 0.8 and newer 92 | * MX Linux 14 and newer 93 | * ROSA Linux R1 and newer 94 | * elementary OS 0.2 and newer 95 | * Fedora 15 and newer (need to add `fuse-libs` package on Fedora 15, 16 and 17) 96 | * RHEL 7 and newer 97 | * CentOS 7 and newer 98 | * Solus 3 and newer 99 | * Puppy Linux 6.0 and newer (Tahr64, XenialPup64, BionicPup64, etc.) 100 | * Clear Linux of any version 101 | * Arch Linux of any version 102 | * EndeavourOS 2019 and newer 103 | * Pop!_OS 17 and newer 104 | * Mageia 2 and newer 105 | * Alt Linux 7 and newer 106 | * Gentoo 12 and newer 107 | * Sabayon 13 and newer 108 | * Slackware 14.2 and newer 109 | * OpenMandriva 3.0 and newer 110 | 111 | 112 | Docker 113 | ------ 114 | 115 | You can easily create a probe on any Linux distribution without installing the tool with the help of the Docker image: 116 | 117 | sudo -E docker run -it \ 118 | -v /dev:/dev:ro \ 119 | -v /lib/modules:/lib/modules:ro \ 120 | -v /etc/os-release:/etc/os-release:ro \ 121 | -v /var/log:/var/log:ro \ 122 | --privileged --net=host --pid=host \ 123 | linuxhw/hw-probe -all -upload 124 | 125 | You may need to run `xhost +local:` before docker run to collect X11 info (xrandr, xinput, etc.). 126 | 127 | Docker hub repository: https://hub.docker.com/r/linuxhw/hw-probe/ 128 | 129 | 130 | Live CD 131 | ------- 132 | 133 | If the tool is not pre-installed in your system or you have troubles with installing the tool or its dependencies (e.g. hwinfo is not available in the repository) then try one of the following Live images with hw-probe pre-installed: [Debian](https://cdimage.debian.org/debian-cd/current-live/amd64/iso-hybrid/), [ArcoLinux](https://sourceforge.net/projects/arcolinux-community-editions/files/) or [OpenMandriva](https://sourceforge.net/projects/openmandriva/files/release/). 134 | 135 | Write the image to USB or CD drive, boot from it on your computer and create a probe (see [Usage](#usage)). 136 | 137 | 138 | Snap 139 | ---- 140 | 141 | Install the universal Linux package: 142 | 143 | sudo snap install hw-probe 144 | 145 | The `hw-probe` command should become available on the command line after installation. If not, try: 146 | 147 | export PATH=$PATH:/snap/bin 148 | 149 | Connect `block-devices` interface to check SMART attributes of drives: 150 | 151 | sudo snap connect hw-probe:block-devices :block-devices 152 | 153 | Now you can create computer probes: 154 | 155 | sudo -E hw-probe -all -upload 156 | 157 | Note: You need a Snap runtime (`snapd` package) and `/snap` symlink to `/var/lib/snapd/snap` (by `sudo ln -s /var/lib/snapd/snap /snap`) in your system to install and run snaps (pre-installed on Ubuntu 16.04 and newer). 158 | 159 | ###### Snap Store 160 | 161 | The app is available in the Snap Store: https://snapcraft.io/hw-probe 162 | 163 | This is a strict snap that runs in a sandbox with limited functionality. Please enable `Access to disk block devices` in `Permissions` in order to check SMART attributes of your drives. 164 | 165 | ###### Supported systems 166 | 167 | See list of supported Linux distributions and installation instructions here: https://snapcraft.io/docs/installing-snapd 168 | 169 | The list of supported Linux distributions includes: 170 | 171 | * Ubuntu 14.04 and newer 172 | * Debian 9 and newer 173 | * Fedora 26 and newer 174 | * Solus 3 and newer 175 | * Zorin 12.3 and newer 176 | 177 | 178 | Flatpak 179 | ------- 180 | 181 | Add a remote: 182 | 183 | flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo 184 | 185 | Install universal package: 186 | 187 | flatpak install flathub org.linux_hardware.hw-probe 188 | 189 | Now you can create computer probes: 190 | 191 | flatpak run org.linux_hardware.hw-probe -all -upload 192 | 193 | Run it as root if you want to check your hard drives health. 194 | 195 | ###### App Center 196 | 197 | Find the `Hardware Probe` application in your App Center (GNOME Software), install it and click on the desktop icon to create a probe. Enable Flatpak plugin (`gnome-software-plugin-flatpak` package for Debian/Ubuntu) and install https://dl.flathub.org/repo/flathub.flatpakrepo if needed. 198 | 199 | ![image](https://user-images.githubusercontent.com/2480569/103484839-12564480-4df2-11eb-8c57-d6ee6ef48e2b.png) 200 | 201 | ###### Flathub 202 | 203 | The app is available in the Flathub: https://flathub.org/apps/details/org.linux_hardware.hw-probe 204 | 205 | ###### Supported systems 206 | 207 | Out of the box: 208 | 209 | * Endless OS 3 and newer 210 | * Linux Mint 18.3 and newer 211 | * Fedora 27 and newer 212 | * CentOS 7.6 GNOME and newer 213 | * Pop!_OS 20.04 and newer 214 | 215 | Need to setup Flatpak (https://flatpak.org/setup/): 216 | 217 | * elementary OS 5 and newer 218 | * Pop!_OS 18.04 and newer 219 | * Solus 3 and newer 220 | * Clear Linux of any version 221 | * Mageia 6 and newer 222 | * openSUSE Leap 15 and newer 223 | * RHEL 7.6 and newer 224 | * Arch Linux 225 | * Chrome OS 226 | 227 | 228 | Inventory 229 | --------- 230 | 231 | Since hw-probe 1.5. 232 | 233 | Request inventory ID: 234 | 235 | hw-probe -generate-inventory -email YOUR@EMAIL 236 | 237 | Mark your probes by this ID: 238 | 239 | sudo -E hw-probe -all -upload -i ID 240 | 241 | Find your computers by the inventory ID on this page: https://linux-hardware.org/?view=computers 242 | 243 | The Email is needed to get notifications if hardware failures are detected on your computer in future probes. 244 | 245 | 246 | Monitoring 247 | ---------- 248 | 249 | LHWM — Linux Hardware Monitoring (c) allows you to monitor most kinds of hardware-related changes (operating system failures, configuration changes and degradation of hardware components) on all your Linux servers or personal stations with E-mail notifications. The service protects your cluster from unexpected hardware failures by regular hardware probing and monitoring of system logs for failures with the help of the Linux-Hardware.org knowledge base. 250 | 251 | All you need is to generate your personal [inventory ID](#inventory) (if you don't have it yet) and start monitoring of each server by one simple command line: 252 | 253 | sudo -E hw-probe -start -i INVENTORY_ID 254 | 255 | The command will add a daily cron job to make a probe of the server and you'll be notified by E-mail in the case of hardware failures or important hardware-related changes detected. 256 | 257 | 258 | Periodic run 259 | ------------ 260 | 261 | If your distribuition is running under systemd and you want to generate and upload hw-probe report periodically, please install: 262 | 263 | cp -a periodic/hw-probe.{service,timer} $(systemdsystemunitdir)/ 264 | 265 | Normally systemd units dir is located at `/usr/lib/systemd/system`. You may want to get systemd unit dir by running `pkg-config --variable=systemdsystemunitdir systemd` 266 | 267 | Enable hw-probe.timer by running: 268 | 269 | systemctl enable --now hw-probe.timer 270 | 271 | This timer will execute one time per month a hw-probe.service that will generate and upload report to the database. 272 | 273 | User may edit hw-probe.timer and change OnCalendar value to execute hw-probe report on different time period (yearly, semiannually, quarterly, etc.). Values lower than month are STRONGLY not recommended. 274 | 275 | 276 | ACPI dump 277 | --------- 278 | 279 | Dump and decode ACPI table: 280 | 281 | sudo -E hw-probe -all -upload -dump-acpi -decode-acpi 282 | 283 | NOTE: `acpica-tools` package should be installed 284 | 285 | 286 | Operability 287 | ----------- 288 | 289 | The tool checks operability of devices on board by analysis of collected log files. 290 | 291 | | Status | Meaning | 292 | |----------|---------| 293 | | works | Driver is found and operates properly (passed static or dynamic tests) | 294 | | limited | Works, but with limited functionality | 295 | | fixed* | Works, fixed by user | 296 | | detected | Device is detected, driver is found, but not tested yet | 297 | | failed | Driver is not found or device is broken | 298 | | malfunc | Error operation of the device or driver | 299 | 300 | *The 'fixed' status is manually assigned by users during [probe review](#review). 301 | 302 | You can perform additional operability sanity tests by the following command: 303 | 304 | sudo -E hw-probe -all -check -upload 305 | 306 | The following tests are executed: 307 | 308 | * graphics test by `glxgears` for both integrated and discrete graphics cards (requires `mesa-demos` package to be installed) 309 | * drive read speed test by `hdparm` for all HDDs and SSDs 310 | * CPU performance test by `dd` and `md5sum` 311 | * RAM memory test by `memtester` 312 | 313 | Execution time is about 1 min for average modern desktop hardware. You can execute particular tests using appropriate options: `-check-graphics`, `-check-hdd`, `-check-cpu` and `-check-memory`. 314 | 315 | 316 | Disable logs 317 | ------------ 318 | 319 | You can disable collecting of unwanted logs by the `-disable A,B,C,...` option. 320 | 321 | For example, to disable collecting of `xdpyinfo` and `xorg.conf` run: 322 | 323 | sudo -E hw-probe -all -upload -disable xdpyinfo,xorg.conf 324 | 325 | 326 | Privacy 327 | ------- 328 | 329 | We do our best to decorate all private information (including the username, machine's hostname, IP addresses, MAC addresses, UUIDs and serial numbers) before uploading to the database. Be aware that this may fail in certain edge cases. 330 | 331 | The tool uploads 32-byte prefix of salted SHA512 hash of MAC addresses and serial numbers to properly identify unique computers and hard drives. UUIDs are decorated in the same way, but formatted like regular UUIDs in order to save readability of logs. All the data is uploaded securely via HTTPS. 332 | 333 | 334 | License 335 | ------- 336 | 337 | This work is dual-licensed under LGPL 2.1 (or any later version) and BSD-4-Clause. 338 | You can choose between one of them if you use this work. 339 | 340 | `SPDX-License-Identifier: LGPL-2.1-or-later OR BSD-4-Clause` 341 | 342 | 343 | Enjoy! 344 | -------------------------------------------------------------------------------- /flatpak/PERL5_BASE: -------------------------------------------------------------------------------- 1 | ./attributes.pm 2 | ./auto/attributes/attributes.so 3 | ./auto/Cwd/Cwd.so 4 | ./auto/Fcntl/Fcntl.so 5 | ./auto/File/Glob/Glob.so 6 | ./auto/Hash/Util/Util.so 7 | ./auto/IO/IO.so 8 | ./auto/List/Util/Util.so 9 | ./AutoLoader.pm 10 | ./auto/POSIX/POSIX.so 11 | ./auto/re/re.so 12 | ./auto/Socket/Socket.so 13 | ./base.pm 14 | ./builtin.pm 15 | ./bytes_heavy.pl 16 | ./bytes.pm 17 | ./Carp/Heavy.pm 18 | ./Carp.pm 19 | ./Config_git.pl 20 | ./Config_heavy.pl 21 | ./Config.pm 22 | ./constant.pm 23 | ./Cwd.pm 24 | ./DynaLoader.pm 25 | ./Errno.pm 26 | ./Exporter/Heavy.pm 27 | ./Exporter.pm 28 | ./Fcntl.pm 29 | ./feature.pm 30 | ./fields.pm 31 | ./File/Basename.pm 32 | ./File/Copy.pm 33 | ./File/Glob.pm 34 | ./FileHandle.pm 35 | ./File/Path.pm 36 | ./File/Spec.pm 37 | ./File/Spec/Unix.pm 38 | ./File/Temp.pm 39 | ./Getopt/Long.pm 40 | ./Hash/Util.pm 41 | ./integer.pm 42 | ./IO/File.pm 43 | ./IO/Handle.pm 44 | ./IO/Pipe.pm 45 | ./IO.pm 46 | ./IO/Seekable.pm 47 | ./IO/Select.pm 48 | ./IO/Socket/INET.pm 49 | ./IO/Socket/IP.pm 50 | ./IO/Socket.pm 51 | ./IO/Socket/UNIX.pm 52 | ./IPC/Open2.pm 53 | ./IPC/Open3.pm 54 | ./lib.pm 55 | ./List/Util.pm 56 | ./locale.pm 57 | ./overloading.pm 58 | ./overload.pm 59 | ./parent.pm 60 | ./POSIX.pm 61 | ./re.pm 62 | ./Scalar/Util.pm 63 | ./SelectSaver.pm 64 | ./Socket.pm 65 | ./strict.pm 66 | ./Symbol.pm 67 | ./Text/ParseWords.pm 68 | ./Text/Tabs.pm 69 | ./Text/Wrap.pm 70 | ./Tie/Hash.pm 71 | ./unicore/Heavy.pl 72 | ./unicore/lib/Age/NA.pl 73 | ./unicore/lib/Age/V11.pl 74 | ./unicore/lib/Age/V20.pl 75 | ./unicore/lib/Age/V30.pl 76 | ./unicore/lib/Age/V31.pl 77 | ./unicore/lib/Age/V32.pl 78 | ./unicore/lib/Age/V40.pl 79 | ./unicore/lib/Age/V41.pl 80 | ./unicore/lib/Age/V50.pl 81 | ./unicore/lib/Age/V51.pl 82 | ./unicore/lib/Age/V52.pl 83 | ./unicore/lib/Age/V60.pl 84 | ./unicore/lib/Age/V61.pl 85 | ./unicore/lib/Age/V70.pl 86 | ./unicore/lib/Alpha/Y.pl 87 | ./unicore/lib/Bc/AL.pl 88 | ./unicore/lib/Bc/AN.pl 89 | ./unicore/lib/Bc/BN.pl 90 | ./unicore/lib/Bc/B.pl 91 | ./unicore/lib/Bc/CS.pl 92 | ./unicore/lib/Bc/EN.pl 93 | ./unicore/lib/Bc/ES.pl 94 | ./unicore/lib/Bc/ET.pl 95 | ./unicore/lib/Bc/L.pl 96 | ./unicore/lib/Bc/NSM.pl 97 | ./unicore/lib/Bc/ON.pl 98 | ./unicore/lib/Bc/R.pl 99 | ./unicore/lib/Bc/WS.pl 100 | ./unicore/lib/BidiC/Y.pl 101 | ./unicore/lib/BidiM/Y.pl 102 | ./unicore/lib/Blk/NB.pl 103 | ./unicore/lib/Bpt/C.pl 104 | ./unicore/lib/Bpt/N.pl 105 | ./unicore/lib/Bpt/O.pl 106 | ./unicore/lib/Cased/Y.pl 107 | ./unicore/lib/Ccc/A.pl 108 | ./unicore/lib/Ccc/AR.pl 109 | ./unicore/lib/Ccc/ATAR.pl 110 | ./unicore/lib/Ccc/B.pl 111 | ./unicore/lib/Ccc/BR.pl 112 | ./unicore/lib/Ccc/DB.pl 113 | ./unicore/lib/Ccc/NK.pl 114 | ./unicore/lib/Ccc/NR.pl 115 | ./unicore/lib/Ccc/OV.pl 116 | ./unicore/lib/Ccc/VR.pl 117 | ./unicore/lib/CE/Y.pl 118 | ./unicore/lib/CI/Y.pl 119 | ./unicore/lib/CompEx/Y.pl 120 | ./unicore/lib/CWCF/Y.pl 121 | ./unicore/lib/CWCM/Y.pl 122 | ./unicore/lib/CWKCF/Y.pl 123 | ./unicore/lib/CWL/Y.pl 124 | ./unicore/lib/CWT/Y.pl 125 | ./unicore/lib/CWU/Y.pl 126 | ./unicore/lib/Dash/Y.pl 127 | ./unicore/lib/Dep/Y.pl 128 | ./unicore/lib/Dia/Y.pl 129 | ./unicore/lib/DI/Y.pl 130 | ./unicore/lib/Dt/Com.pl 131 | ./unicore/lib/Dt/Enc.pl 132 | ./unicore/lib/Dt/Fin.pl 133 | ./unicore/lib/Dt/Font.pl 134 | ./unicore/lib/Dt/Init.pl 135 | ./unicore/lib/Dt/Iso.pl 136 | ./unicore/lib/Dt/Med.pl 137 | ./unicore/lib/Dt/Nar.pl 138 | ./unicore/lib/Dt/Nb.pl 139 | ./unicore/lib/Dt/NonCanon.pl 140 | ./unicore/lib/Dt/Sqr.pl 141 | ./unicore/lib/Dt/Sub.pl 142 | ./unicore/lib/Dt/Sup.pl 143 | ./unicore/lib/Dt/Vert.pl 144 | ./unicore/lib/Ea/A.pl 145 | ./unicore/lib/Ea/H.pl 146 | ./unicore/lib/Ea/Na.pl 147 | ./unicore/lib/Ea/N.pl 148 | ./unicore/lib/Ea/W.pl 149 | ./unicore/lib/Ext/Y.pl 150 | ./unicore/lib/GCB/CN.pl 151 | ./unicore/lib/GCB/EX.pl 152 | ./unicore/lib/GCB/LV.pl 153 | ./unicore/lib/GCB/LVT.pl 154 | ./unicore/lib/GCB/SM.pl 155 | ./unicore/lib/GCB/XX.pl 156 | ./unicore/lib/Gc/Cf.pl 157 | ./unicore/lib/Gc/Cn.pl 158 | ./unicore/lib/Gc/C.pl 159 | ./unicore/lib/Gc/LC.pl 160 | ./unicore/lib/Gc/Ll.pl 161 | ./unicore/lib/Gc/Lm.pl 162 | ./unicore/lib/Gc/Lo.pl 163 | ./unicore/lib/Gc/L.pl 164 | ./unicore/lib/Gc/Lu.pl 165 | ./unicore/lib/Gc/Mc.pl 166 | ./unicore/lib/Gc/Me.pl 167 | ./unicore/lib/Gc/Mn.pl 168 | ./unicore/lib/Gc/M.pl 169 | ./unicore/lib/Gc/Nd.pl 170 | ./unicore/lib/Gc/Nl.pl 171 | ./unicore/lib/Gc/No.pl 172 | ./unicore/lib/Gc/N.pl 173 | ./unicore/lib/Gc/Pd.pl 174 | ./unicore/lib/Gc/Pe.pl 175 | ./unicore/lib/Gc/Pf.pl 176 | ./unicore/lib/Gc/Pi.pl 177 | ./unicore/lib/Gc/Po.pl 178 | ./unicore/lib/Gc/P.pl 179 | ./unicore/lib/Gc/Ps.pl 180 | ./unicore/lib/Gc/Sc.pl 181 | ./unicore/lib/Gc/Sk.pl 182 | ./unicore/lib/Gc/Sm.pl 183 | ./unicore/lib/Gc/So.pl 184 | ./unicore/lib/Gc/S.pl 185 | ./unicore/lib/Gc/Z.pl 186 | ./unicore/lib/Gc/Zs.pl 187 | ./unicore/lib/GrBase/Y.pl 188 | ./unicore/lib/Hex/Y.pl 189 | ./unicore/lib/Hst/NA.pl 190 | ./unicore/lib/IDC/Y.pl 191 | ./unicore/lib/Ideo/Y.pl 192 | ./unicore/lib/IDS/Y.pl 193 | ./unicore/lib/In/2_0.pl 194 | ./unicore/lib/In/2_1.pl 195 | ./unicore/lib/In/3_0.pl 196 | ./unicore/lib/In/3_1.pl 197 | ./unicore/lib/In/3_2.pl 198 | ./unicore/lib/In/4_0.pl 199 | ./unicore/lib/In/4_1.pl 200 | ./unicore/lib/In/5_0.pl 201 | ./unicore/lib/In/5_1.pl 202 | ./unicore/lib/In/5_2.pl 203 | ./unicore/lib/In/6_0.pl 204 | ./unicore/lib/In/6_1.pl 205 | ./unicore/lib/In/6_2.pl 206 | ./unicore/lib/In/6_3.pl 207 | ./unicore/lib/In/7_0.pl 208 | ./unicore/lib/Jg/Ain.pl 209 | ./unicore/lib/Jg/Alef.pl 210 | ./unicore/lib/Jg/Beh.pl 211 | ./unicore/lib/Jg/Dal.pl 212 | ./unicore/lib/Jg/FarsiYeh.pl 213 | ./unicore/lib/Jg/Feh.pl 214 | ./unicore/lib/Jg/Gaf.pl 215 | ./unicore/lib/Jg/Hah.pl 216 | ./unicore/lib/Jg/Lam.pl 217 | ./unicore/lib/Jg/NoJoinin.pl 218 | ./unicore/lib/Jg/Qaf.pl 219 | ./unicore/lib/Jg/Reh.pl 220 | ./unicore/lib/Jg/Sad.pl 221 | ./unicore/lib/Jg/Seen.pl 222 | ./unicore/lib/Jg/Waw.pl 223 | ./unicore/lib/Jg/Yeh.pl 224 | ./unicore/lib/Jt/C.pl 225 | ./unicore/lib/Jt/D.pl 226 | ./unicore/lib/Jt/R.pl 227 | ./unicore/lib/Jt/T.pl 228 | ./unicore/lib/Jt/U.pl 229 | ./unicore/lib/Lb/AI.pl 230 | ./unicore/lib/Lb/AL.pl 231 | ./unicore/lib/Lb/BA.pl 232 | ./unicore/lib/Lb/BB.pl 233 | ./unicore/lib/Lb/CJ.pl 234 | ./unicore/lib/Lb/CL.pl 235 | ./unicore/lib/Lb/CM.pl 236 | ./unicore/lib/Lb/EX.pl 237 | ./unicore/lib/Lb/GL.pl 238 | ./unicore/lib/Lb/ID.pl 239 | ./unicore/lib/Lb/IS.pl 240 | ./unicore/lib/Lb/NS.pl 241 | ./unicore/lib/Lb/OP.pl 242 | ./unicore/lib/Lb/PO.pl 243 | ./unicore/lib/Lb/PR.pl 244 | ./unicore/lib/Lb/QU.pl 245 | ./unicore/lib/Lb/SA.pl 246 | ./unicore/lib/Lb/XX.pl 247 | ./unicore/lib/Lower/Y.pl 248 | ./unicore/lib/Math/Y.pl 249 | ./unicore/lib/NFCQC/M.pl 250 | ./unicore/lib/NFCQC/Y.pl 251 | ./unicore/lib/NFDQC/N.pl 252 | ./unicore/lib/NFDQC/Y.pl 253 | ./unicore/lib/NFKCQC/N.pl 254 | ./unicore/lib/NFKCQC/Y.pl 255 | ./unicore/lib/NFKDQC/N.pl 256 | ./unicore/lib/NFKDQC/Y.pl 257 | ./unicore/lib/Nt/Di.pl 258 | ./unicore/lib/Nt/None.pl 259 | ./unicore/lib/Nt/Nu.pl 260 | ./unicore/lib/Nv/0.pl 261 | ./unicore/lib/Nv/10000.pl 262 | ./unicore/lib/Nv/1000.pl 263 | ./unicore/lib/Nv/100.pl 264 | ./unicore/lib/Nv/10.pl 265 | ./unicore/lib/Nv/11.pl 266 | ./unicore/lib/Nv/1_2.pl 267 | ./unicore/lib/Nv/12.pl 268 | ./unicore/lib/Nv/1_3.pl 269 | ./unicore/lib/Nv/13.pl 270 | ./unicore/lib/Nv/1_4.pl 271 | ./unicore/lib/Nv/14.pl 272 | ./unicore/lib/Nv/15.pl 273 | ./unicore/lib/Nv/16.pl 274 | ./unicore/lib/Nv/17.pl 275 | ./unicore/lib/Nv/1_8.pl 276 | ./unicore/lib/Nv/18.pl 277 | ./unicore/lib/Nv/19.pl 278 | ./unicore/lib/Nv/1.pl 279 | ./unicore/lib/Nv/20.pl 280 | ./unicore/lib/Nv/2_3.pl 281 | ./unicore/lib/Nv/2.pl 282 | ./unicore/lib/Nv/300.pl 283 | ./unicore/lib/Nv/30.pl 284 | ./unicore/lib/Nv/3_4.pl 285 | ./unicore/lib/Nv/3.pl 286 | ./unicore/lib/Nv/40.pl 287 | ./unicore/lib/Nv/4.pl 288 | ./unicore/lib/Nv/50000.pl 289 | ./unicore/lib/Nv/5000.pl 290 | ./unicore/lib/Nv/500.pl 291 | ./unicore/lib/Nv/50.pl 292 | ./unicore/lib/Nv/5.pl 293 | ./unicore/lib/Nv/60.pl 294 | ./unicore/lib/Nv/6.pl 295 | ./unicore/lib/Nv/70.pl 296 | ./unicore/lib/Nv/7.pl 297 | ./unicore/lib/Nv/80.pl 298 | ./unicore/lib/Nv/8.pl 299 | ./unicore/lib/Nv/900.pl 300 | ./unicore/lib/Nv/90.pl 301 | ./unicore/lib/Nv/9.pl 302 | ./unicore/lib/PatSyn/Y.pl 303 | ./unicore/lib/Perl/Alnum.pl 304 | ./unicore/lib/Perl/Assigned.pl 305 | ./unicore/lib/Perl/Blank.pl 306 | ./unicore/lib/Perl/Graph.pl 307 | ./unicore/lib/Perl/_PerlAny.pl 308 | ./unicore/lib/Perl/_PerlCh2.pl 309 | ./unicore/lib/Perl/_PerlCha.pl 310 | ./unicore/lib/Perl/_PerlFol.pl 311 | ./unicore/lib/Perl/_PerlIDC.pl 312 | ./unicore/lib/Perl/_PerlIDS.pl 313 | ./unicore/lib/Perl/_PerlPr2.pl 314 | ./unicore/lib/Perl/_PerlPro.pl 315 | ./unicore/lib/Perl/_PerlQuo.pl 316 | ./unicore/lib/Perl/PerlWord.pl 317 | ./unicore/lib/Perl/PosixPun.pl 318 | ./unicore/lib/Perl/Print.pl 319 | ./unicore/lib/Perl/SpacePer.pl 320 | ./unicore/lib/Perl/Title.pl 321 | ./unicore/lib/Perl/Word.pl 322 | ./unicore/lib/Perl/XPosixPu.pl 323 | ./unicore/lib/QMark/Y.pl 324 | ./unicore/lib/SB/AT.pl 325 | ./unicore/lib/SB/CL.pl 326 | ./unicore/lib/SB/EX.pl 327 | ./unicore/lib/SB/FO.pl 328 | ./unicore/lib/SB/LE.pl 329 | ./unicore/lib/SB/LO.pl 330 | ./unicore/lib/SB/NU.pl 331 | ./unicore/lib/SB/SC.pl 332 | ./unicore/lib/SB/Sp.pl 333 | ./unicore/lib/SB/ST.pl 334 | ./unicore/lib/SB/UP.pl 335 | ./unicore/lib/SB/XX.pl 336 | ./unicore/lib/Sc/Arab.pl 337 | ./unicore/lib/Sc/Armn.pl 338 | ./unicore/lib/Sc/Beng.pl 339 | ./unicore/lib/Sc/Cprt.pl 340 | ./unicore/lib/Sc/Cyrl.pl 341 | ./unicore/lib/Sc/Deva.pl 342 | ./unicore/lib/Sc/Dupl.pl 343 | ./unicore/lib/Sc/Geor.pl 344 | ./unicore/lib/Sc/Gran.pl 345 | ./unicore/lib/Sc/Grek.pl 346 | ./unicore/lib/Sc/Gujr.pl 347 | ./unicore/lib/Sc/Guru.pl 348 | ./unicore/lib/Sc/Hang.pl 349 | ./unicore/lib/Sc/Han.pl 350 | ./unicore/lib/Sc/Hira.pl 351 | ./unicore/lib/Sc/Kana.pl 352 | ./unicore/lib/Sc/Knda.pl 353 | ./unicore/lib/Sc/Latn.pl 354 | ./unicore/lib/Sc/Limb.pl 355 | ./unicore/lib/Sc/Linb.pl 356 | ./unicore/lib/Sc/Mlym.pl 357 | ./unicore/lib/Sc/Mong.pl 358 | ./unicore/lib/Sc/Orya.pl 359 | ./unicore/lib/Sc/Sinh.pl 360 | ./unicore/lib/Sc/Taml.pl 361 | ./unicore/lib/Sc/Telu.pl 362 | ./unicore/lib/Scx/Arab.pl 363 | ./unicore/lib/Scx/Armn.pl 364 | ./unicore/lib/Scx/Beng.pl 365 | ./unicore/lib/Scx/Bopo.pl 366 | ./unicore/lib/Scx/Cakm.pl 367 | ./unicore/lib/Scx/Copt.pl 368 | ./unicore/lib/Scx/Cprt.pl 369 | ./unicore/lib/Scx/Cyrl.pl 370 | ./unicore/lib/Scx/Deva.pl 371 | ./unicore/lib/Scx/Dupl.pl 372 | ./unicore/lib/Scx/Geor.pl 373 | ./unicore/lib/Scx/Gran.pl 374 | ./unicore/lib/Scx/Grek.pl 375 | ./unicore/lib/Scx/Gujr.pl 376 | ./unicore/lib/Scx/Guru.pl 377 | ./unicore/lib/Scx/Hang.pl 378 | ./unicore/lib/Scx/Han.pl 379 | ./unicore/lib/Scx/Hira.pl 380 | ./unicore/lib/Scx/Kana.pl 381 | ./unicore/lib/Scx/Knda.pl 382 | ./unicore/lib/Scx/Latn.pl 383 | ./unicore/lib/Scx/Limb.pl 384 | ./unicore/lib/Scx/Linb.pl 385 | ./unicore/lib/Scx/Mlym.pl 386 | ./unicore/lib/Scx/Mong.pl 387 | ./unicore/lib/Scx/Mymr.pl 388 | ./unicore/lib/Scx/Orya.pl 389 | ./unicore/lib/Scx/Phlp.pl 390 | ./unicore/lib/Scx/Sind.pl 391 | ./unicore/lib/Scx/Sinh.pl 392 | ./unicore/lib/Scx/Syrc.pl 393 | ./unicore/lib/Scx/Tagb.pl 394 | ./unicore/lib/Scx/Takr.pl 395 | ./unicore/lib/Scx/Taml.pl 396 | ./unicore/lib/Scx/Telu.pl 397 | ./unicore/lib/Scx/Thaa.pl 398 | ./unicore/lib/Scx/Tirh.pl 399 | ./unicore/lib/Scx/Yi.pl 400 | ./unicore/lib/Scx/Zinh.pl 401 | ./unicore/lib/Scx/Zyyy.pl 402 | ./unicore/lib/Sc/Zinh.pl 403 | ./unicore/lib/Sc/Zyyy.pl 404 | ./unicore/lib/SD/Y.pl 405 | ./unicore/lib/STerm/Y.pl 406 | ./unicore/lib/Term/Y.pl 407 | ./unicore/lib/UIdeo/Y.pl 408 | ./unicore/lib/Upper/Y.pl 409 | ./unicore/lib/WB/EX.pl 410 | ./unicore/lib/WB/FO.pl 411 | ./unicore/lib/WB/HL.pl 412 | ./unicore/lib/WB/KA.pl 413 | ./unicore/lib/WB/LE.pl 414 | ./unicore/lib/WB/MB.pl 415 | ./unicore/lib/WB/ML.pl 416 | ./unicore/lib/WB/MN.pl 417 | ./unicore/lib/WB/NU.pl 418 | ./unicore/lib/WB/XX.pl 419 | ./unicore/lib/XIDC/Y.pl 420 | ./unicore/lib/XIDS/Y.pl 421 | ./unicore/To/Age.pl 422 | ./unicore/To/Bc.pl 423 | ./unicore/To/Bmg.pl 424 | ./unicore/To/Bpb.pl 425 | ./unicore/To/Bpt.pl 426 | ./unicore/To/Cf.pl 427 | ./unicore/To/Digit.pl 428 | ./unicore/To/Ea.pl 429 | ./unicore/To/Fold.pl 430 | ./unicore/To/GCB.pl 431 | ./unicore/To/Gc.pl 432 | ./unicore/To/Hst.pl 433 | ./unicore/To/Isc.pl 434 | ./unicore/To/Jg.pl 435 | ./unicore/To/Jt.pl 436 | ./unicore/To/Lb.pl 437 | ./unicore/To/Lc.pl 438 | ./unicore/To/Lower.pl 439 | ./unicore/To/Na1.pl 440 | ./unicore/To/NameAlia.pl 441 | ./unicore/To/NFCQC.pl 442 | ./unicore/To/NFDQC.pl 443 | ./unicore/To/NFKCCF.pl 444 | ./unicore/To/NFKCQC.pl 445 | ./unicore/To/NFKDQC.pl 446 | ./unicore/To/Nt.pl 447 | ./unicore/To/Nv.pl 448 | ./unicore/To/PerlDeci.pl 449 | ./unicore/To/SB.pl 450 | ./unicore/To/Sc.pl 451 | ./unicore/To/Scx.pl 452 | ./unicore/To/Tc.pl 453 | ./unicore/To/Title.pl 454 | ./unicore/To/Uc.pl 455 | ./unicore/To/Upper.pl 456 | ./unicore/To/WB.pl 457 | ./utf8_heavy.pl 458 | ./utf8.pm 459 | ./vars.pm 460 | ./warnings.pm 461 | ./warnings/register.pm 462 | ./XSLoader.pm 463 | -------------------------------------------------------------------------------- /flatpak/hw-probe.appdata.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | org.linux_hardware.hw-probe 5 | CC-BY-3.0 6 | BSD-2-Clause 7 | Hardware Probe 8 | Check operability of computer hardware and find drivers 9 | Linux Hardware Project 10 | 11 | 12 |

13 | A tool to probe for hardware, check operability and find drivers with 14 | the help of Linux Hardware Database. 15 |

16 |

17 | Probe — is a snapshot of your computer hardware state. 18 | The tool checks operability of devices by analysis of logs, uploads 19 | anonymized hardware info to the database and returns a permanent url 20 | to view the probe of the computer: 21 |

22 |

23 | flatpak run org.linux_hardware.hw-probe -all -upload 24 |

25 |

26 | Run as root if you want to check health of all your hard drives. 27 |

28 |

29 | If some of hardware devices doesn't work due to a missed driver 30 | then the tool will suggest a proper Linux kernel version according 31 | to the LKDDb or third-party drivers. 32 |

33 |
34 | 35 | 36 | 37 | System 38 | 39 | 40 | Utility 41 | 42 | 43 | 44 | org.linux_hardware.hw-probe.desktop 45 | 46 | 47 | 48 | https://github.com/linuxhw/build-stuff/releases/download/1.4/image-2.png 49 | 50 | 51 | https://github.com/linuxhw/build-stuff/releases/download/1.6/image-4.png 52 | 53 | 54 | https://github.com/linuxhw/build-stuff/releases/download/1.4/image-3.png 55 | 56 | 57 | https://github.com/linuxhw/build-stuff/releases/download/1.4/image-1.png 58 | 59 | 60 | 61 | https://github.com/linuxhw/hw-probe 62 | 63 | 64 | hw-probe 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | Hardware Probe Tool 1.6.5 74 | 75 | https://github.com/linuxhw/hw-probe/blob/master/NEWS.md#hw-probe-16 76 | 77 | 78 | 79 |
80 | -------------------------------------------------------------------------------- /flatpak/hw-probe.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=Application 3 | StartupNotify=true 4 | Name=Hardware Probe 5 | Comment=Probe for hardware, check operability and find drivers 6 | Icon=org.linux_hardware.hw-probe 7 | Exec=hw-probe 8 | Categories=Utility;Development;System; 9 | Keywords=HW Probe;Hardware;Probe; 10 | -------------------------------------------------------------------------------- /flatpak/hw-probe.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | if [ $# -eq 0 ]; then 3 | perl /app/bin/hw-probe-flatpak -flatpak 4 | else 5 | perl /app/bin/hw-probe-flatpak -flatpak "$@" 6 | fi 7 | -------------------------------------------------------------------------------- /flatpak/org.linux_hardware.hw-probe.yaml: -------------------------------------------------------------------------------- 1 | app-id: org.linux_hardware.hw-probe 2 | runtime: org.kde.Platform 3 | runtime-version: "6.2" 4 | sdk: org.kde.Sdk 5 | command: hw-probe 6 | finish-args: 7 | - --share=network 8 | - --device=all 9 | - --filesystem=host:ro 10 | - --filesystem=/var/log:ro 11 | - --filesystem=/sys:ro 12 | - --filesystem=/dev 13 | - --socket=wayland 14 | - --socket=x11 15 | - --env=PATH=/usr/bin:/bin:/usr/sbin:/sbin:/app/bin:/app/sbin 16 | - --env=PERL5LIB=/app/share/perl5:/app/lib/x86_64-linux-gnu/perl-base:/app/lib/i386-linux-gnu/perl-base 17 | - --env=LD_LIBRARY_PATH=/app/lib/x86_64-linux-gnu/:/app/lib/i386-linux-gnu/:/app/lib64:/app/lib 18 | - --env=LC_ALL=C 19 | cleanup: 20 | - /include 21 | - /man 22 | - /share/doc 23 | - /share/man 24 | - /share/hwinfo 25 | - /share/pkgconfig 26 | - /share/usb.ids.gz 27 | - /share/smartmontools 28 | - /share/smartd.service 29 | - /share/PERL5_BASE 30 | - /share/automake* 31 | - /share/info 32 | - /share/aclocal* 33 | - /share/libtool 34 | - /sbin/check_hd 35 | - /sbin/convert_hd 36 | - /sbin/fancontrol 37 | - /sbin/getsysinfo 38 | - /sbin/isadump 39 | - /sbin/isaset 40 | - /sbin/mk_isdnhwdb 41 | - /sbin/ownership 42 | - /sbin/pwmconfig 43 | - /sbin/sensors-detect 44 | - /sbin/setpci 45 | - /sbin/update-pciids 46 | - /sbin/update-usbids.sh 47 | - /sbin/vpddecode 48 | - /sbin/smartd 49 | - /sbin/update-smart-drivedb 50 | - /lib64/pkgconfig 51 | - /lib/pkgconfig 52 | - /lib/debug 53 | - /lib/libltdl* 54 | - /bin/acpibin 55 | - /bin/acpiexamples 56 | - /bin/acpiexec 57 | - /bin/acpihelp 58 | - /bin/acpinames 59 | - /bin/acpisrc 60 | - /bin/kmod 61 | - /bin/lsusb.py 62 | - /bin/sensors-conf-convert 63 | - /bin/usbhid-dump 64 | - /bin/lex 65 | - /bin/automake* 66 | - /bin/aclocal* 67 | - /bin/libtool* 68 | - /etc/init.d 69 | - /etc/smartd_warning.d 70 | - /etc/sensors.d 71 | - /etc/smartd.conf 72 | - /etc/smartd_warning.sh 73 | - /var/lib 74 | - /lib/*.a 75 | - /lib/*.la 76 | - /usr 77 | modules: 78 | - name: automake 79 | buildsystem: simple 80 | build-commands: 81 | - ./configure --prefix=$FLATPAK_DEST 82 | - make -j $FLATPAK_BUILDER_N_JOBS 83 | - make install 84 | sources: 85 | - type: archive 86 | url: https://ftp.gnu.org/gnu/automake/automake-1.15.tar.xz 87 | sha256: 9908c75aabd49d13661d6dcb1bc382252d22cc77bf733a2d55e87f2aa2db8636 88 | - name: libtool 89 | buildsystem: simple 90 | build-commands: 91 | - ./configure --prefix=$FLATPAK_DEST 92 | - make -j $FLATPAK_BUILDER_N_JOBS 93 | - make install 94 | sources: 95 | - type: archive 96 | url: https://ftp.gnu.org/gnu/libtool/libtool-2.4.6.tar.xz 97 | sha256: 7c87a8c2c8c0fc9cd5019e402bed4292462d00a718a7cd5f11218153bf28b26f 98 | - name: edid-decode 99 | buildsystem: simple 100 | build-commands: 101 | - sed -i -e 's/ -g / -s /' Makefile 102 | - make -j $FLATPAK_BUILDER_N_JOBS 103 | - make install DESTDIR=$FLATPAK_DEST bindir=/bin mandir=/share/man 104 | sources: 105 | - type: archive 106 | url: https://github.com/linuxhw/build-stuff/releases/download/1.4/edid-decode-20180622.tar.gz 107 | sha256: ab44c58a3712beca8ffa0ac937dc24d337cb0ecd18e703b4ddf3a10b0df35e1e 108 | - name: dmidecode 109 | buildsystem: simple 110 | build-commands: 111 | - sed -i -e 's/ -O2/ -s -O2/' Makefile 112 | - make -j $FLATPAK_BUILDER_N_JOBS 113 | - find . -type f | perl -lne 'print if -B and -x' | xargs strip 114 | - make install prefix=/ DESTDIR=$FLATPAK_DEST 115 | sources: 116 | - type: archive 117 | url: https://download-mirror.savannah.gnu.org/releases/dmidecode/dmidecode-3.4.tar.xz 118 | sha256: 43cba851d8467c9979ccdbeab192eb6638c7d3a697eba5ddb779da8837542212 119 | - name: iproute2 120 | buildsystem: simple 121 | build-commands: 122 | - ./configure --prefix=/ 123 | - make -j $FLATPAK_BUILDER_N_JOBS 124 | - find . -type f | perl -lne 'print if -B and -x' | xargs strip 125 | - install -D ./ip/ip $FLATPAK_DEST/sbin/ip 126 | sources: 127 | - type: archive 128 | url: https://mirrors.edge.kernel.org/pub/linux/utils/net/iproute2/iproute2-5.9.0.tar.xz 129 | sha256: a25dac94bcdcf2f73316c7f812115ea7a5710580bad892b08a83d00c6b33dacf 130 | - name: lm-sensors 131 | buildsystem: simple 132 | build-commands: 133 | - sed -i -e 's/ -g / -s /' Makefile 134 | - make -j $FLATPAK_BUILDER_N_JOBS 135 | - find . -type f | perl -lne 'print if -B and -x' | xargs strip 136 | - make install BUILD_STATIC_LIB=0 DEBUG=0 PREFIX=/ DESTDIR=$FLATPAK_DEST 137 | sources: 138 | - type: archive 139 | url: https://github.com/lm-sensors/lm-sensors/archive/V3-6-0.tar.gz 140 | sha256: 0591f9fa0339f0d15e75326d0365871c2d4e2ed8aa1ff759b3a55d3734b7d197 141 | - name: libkmod 142 | buildsystem: simple 143 | build-commands: 144 | - ./configure --disable-debug --disable-python --disable-logging --disable-test-modules --disable-manpages --prefix=/ 145 | - sed -i -e 's/ -g / -s /' Makefile 146 | - make -j $FLATPAK_BUILDER_N_JOBS 147 | - find . -type f | perl -lne 'print if -B and -x' | xargs strip 148 | - make install DESTDIR=$FLATPAK_DEST 149 | - install -D ./tools/lsmod $FLATPAK_DEST/bin/lsmod 150 | sources: 151 | - type: archive 152 | url: https://cdn.kernel.org/pub/linux/utils/kernel/kmod/kmod-12.tar.xz 153 | sha256: c6189dd8c5a1e8d9224e8506bd188c0cd5dfa119fd6b7e5869b3640cbe8bf92f 154 | - name: libusb-1 155 | buildsystem: simple 156 | build-commands: 157 | - NOCONFIGURE=1 sh autogen.sh 158 | - ./configure --disable-static --disable-udev --prefix=/ 159 | - sed -i -e 's/ -g / -s /' Makefile 160 | - make -j $FLATPAK_BUILDER_N_JOBS 161 | - find . -type f | perl -lne 'print if -B and -x' | xargs strip 162 | - make install DESTDIR=$FLATPAK_DEST 163 | sources: 164 | - type: archive 165 | url: https://github.com/libusb/libusb/archive/v1.0.22.tar.gz 166 | sha256: 3500f7b182750cd9ccf9be8b1df998f83df56a39ab264976bdb3307773e16f48 167 | - name: usbutils 168 | buildsystem: simple 169 | build-commands: 170 | - sed -i -e 's/usbhid-dump//' Makefile.* 171 | - ./configure --prefix=/ LIBUSB_CFLAGS='-I'$FLATPAK_DEST'/include/libusb-1.0' LIBUSB_LIBS='-L'$FLATPAK_DEST'/lib64 -L'$FLATPAK_DEST'/lib -lusb-1.0' 172 | - sed -i -e 's/ -g / -s /' Makefile 173 | - make -j $FLATPAK_BUILDER_N_JOBS 174 | - find . -type f | perl -lne 'print if -B and -x' | xargs strip 175 | - make install DESTDIR=$FLATPAK_DEST 176 | - sed -i -e 's|/share/usb.ids|/var/tmp/P_USB|' $FLATPAK_DEST/bin/lsusb 177 | sources: 178 | - type: archive 179 | url: https://mirrors.edge.kernel.org/pub/linux/utils/usb/usbutils/usbutils-007.tar.xz 180 | sha256: 7593a01724bbc0fd9fe48e62bc721ceb61c76654f1d7b231b3c65f6dfbbaefa4 181 | - name: pciutils 182 | buildsystem: simple 183 | build-commands: 184 | - make install PREFIX=/ DESTDIR=$FLATPAK_DEST SHARED=no LIBKMOD=no HWDB=no ZLIB=no DNS=no 185 | - sed -i -e 's|/share/pci.ids|/var/tmp/P_PCI|' $FLATPAK_DEST/sbin/lspci 186 | sources: 187 | - type: archive 188 | url: https://github.com/pciutils/pciutils/archive/v3.6.2.tar.gz 189 | sha256: d84d7096a71890f0ddddc50e88ac5a3bc7412bf48d8100fc15857a411564687d 190 | - name: acpica-unix 191 | buildsystem: simple 192 | build-commands: 193 | - make -j $FLATPAK_BUILDER_N_JOBS 194 | - make install DESTDIR=$FLATPAK_DEST PREFIX=/ 195 | sources: 196 | - type: archive 197 | url: https://acpica.org/sites/acpica/files/acpica-unix-20220331.tar.gz 198 | sha256: acaff68b14f1e0804ebbfc4b97268a4ccbefcfa053b02ed9924f2b14d8a98e21 199 | - name: hdparm 200 | buildsystem: simple 201 | build-commands: 202 | - make -j $FLATPAK_BUILDER_N_JOBS 203 | - make install DESTDIR=`pwd`/INST 204 | - install -D INST/sbin/hdparm $FLATPAK_DEST/sbin/hdparm 205 | sources: 206 | - type: archive 207 | url: https://github.com/linuxhw/build-stuff/releases/download/1.6/hdparm-9.65.tar.gz 208 | sha256: d14929f910d060932e717e9382425d47c2e7144235a53713d55a94f7de535a4b 209 | - name: smartmontools 210 | buildsystem: simple 211 | build-commands: 212 | - NOCONFIGURE=1 sh autogen.sh 213 | - ./configure --with-nvme-devicescan --prefix=/ --with-systemdsystemunitdir=/share 214 | - sed -i -e 's/ -g / -s /' Makefile 215 | - make -j $FLATPAK_BUILDER_N_JOBS 216 | - find . -type f | perl -lne 'print if -B and -x' | xargs strip 217 | - make install DESTDIR=$FLATPAK_DEST 218 | sources: 219 | - type: archive 220 | url: https://github.com/linuxhw/build-stuff/releases/download/1.6/smartmontools-7.3.tar.gz 221 | sha256: a544f8808d0c58cfb0e7424ca1841cb858a974922b035d505d4e4c248be3a22b 222 | - name: util-linux 223 | buildsystem: simple 224 | build-commands: 225 | - ./configure --prefix=/ 226 | - sed -i -e 's/ -g / -s /' Makefile 227 | - make -j $FLATPAK_BUILDER_N_JOBS dmesg 228 | - make -j $FLATPAK_BUILDER_N_JOBS lscpu 229 | - make -j $FLATPAK_BUILDER_N_JOBS lsblk 230 | - find . -type f | perl -lne 'print if -B and -x' | xargs strip 231 | - install -D ./dmesg $FLATPAK_DEST/bin/dmesg 232 | - install -D ./lscpu $FLATPAK_DEST/bin/lscpu 233 | - install -D ./lsblk $FLATPAK_DEST/bin/lsblk 234 | sources: 235 | - type: archive 236 | url: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.38/util-linux-2.38.1.tar.xz 237 | sha256: 60492a19b44e6cf9a3ddff68325b333b8b52b6c59ce3ebd6a0ecaa4c5117e84f 238 | - name: libx86emu 239 | buildsystem: simple 240 | build-commands: 241 | - echo '3.5' > VERSION 242 | - rm -f git2log 243 | - sed -i -e 's/ -g / -s /' Makefile 244 | - make -j $FLATPAK_BUILDER_N_JOBS 245 | - find . -type f | perl -lne 'print if -B and -x' | xargs strip 246 | - make install DESTDIR=`pwd`/INST 247 | - cp -fr INST/usr/* $FLATPAK_DEST/ 248 | sources: 249 | - type: archive 250 | url: https://github.com/wfeldt/libx86emu/archive/3.5.tar.gz 251 | sha256: 91da55f5da55017d5a80e2364de30f9520aa8df2744ff587a09ba58d6e3536c8 252 | - name: lex 253 | buildsystem: simple 254 | build-commands: 255 | - NOCONFIGURE=1 sh autogen.sh 256 | - ./configure 257 | - make -j $FLATPAK_BUILDER_N_JOBS 258 | - install -D src/flex $FLATPAK_DEST/bin/lex 259 | sources: 260 | - type: archive 261 | url: https://github.com/linuxhw/build-stuff/releases/download/1.4/flex-20181004.tar.gz 262 | sha256: bd7d248de7792dd2de2089a16b7ea60f94b2056e721e1f0f1b28083f4792e902 263 | - name: perl-uri 264 | buildsystem: simple 265 | build-commands: 266 | - perl Makefile.PL 267 | - make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 268 | - mkdir -p $FLATPAK_DEST/share/perl5/ 269 | - cp -fr ./INST/SITELIB/* $FLATPAK_DEST/share/perl5/ 270 | sources: 271 | - type: archive 272 | url: https://cpan.metacpan.org/authors/id/E/ET/ETHER/URI-5.08.tar.gz 273 | sha256: 7e2c6fe3b1d5947da334fa558a96e748aaa619213b85bcdce5b5347d4d26c46e 274 | - name: perl-http-message 275 | buildsystem: simple 276 | build-commands: 277 | - perl Makefile.PL 278 | - make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 279 | - mkdir -p $FLATPAK_DEST/share/perl5/ 280 | - cp -fr ./INST/SITELIB/* $FLATPAK_DEST/share/perl5/ 281 | sources: 282 | - type: archive 283 | url: https://cpan.metacpan.org/authors/id/O/OA/OALDERS/HTTP-Message-6.37.tar.gz 284 | sha256: 0e59da0a85e248831327ebfba66796314cb69f1bfeeff7a9da44ad766d07d802 285 | - name: perl-net-http 286 | buildsystem: simple 287 | build-commands: 288 | - perl Makefile.PL 289 | - make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 290 | - mkdir -p $FLATPAK_DEST/share/perl5/ 291 | - cp -fr ./INST/SITELIB/* $FLATPAK_DEST/share/perl5/ 292 | sources: 293 | - type: archive 294 | url: https://cpan.metacpan.org/authors/id/O/OA/OALDERS/Net-HTTP-6.22.tar.gz 295 | sha256: 62faf9a5b84235443fe18f780e69cecf057dea3de271d7d8a0ba72724458a1a2 296 | - name: perl-try-tiny 297 | buildsystem: simple 298 | build-commands: 299 | - perl Makefile.PL 300 | - make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 301 | - mkdir -p $FLATPAK_DEST/share/perl5/ 302 | - cp -fr ./INST/SITELIB/* $FLATPAK_DEST/share/perl5/ 303 | sources: 304 | - type: archive 305 | url: https://cpan.metacpan.org/authors/id/E/ET/ETHER/Try-Tiny-0.31.tar.gz 306 | sha256: 3300d31d8a4075b26d8f46ce864a1d913e0e8467ceeba6655d5d2b2e206c11be 307 | - name: perl-lwp-mediatypes 308 | buildsystem: simple 309 | build-commands: 310 | - perl Makefile.PL 311 | - make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 312 | - mkdir -p $FLATPAK_DEST/share/perl5/ 313 | - cp -fr ./INST/SITELIB/* $FLATPAK_DEST/share/perl5/ 314 | sources: 315 | - type: archive 316 | url: https://cpan.metacpan.org/authors/id/G/GA/GAAS/LWP-MediaTypes-6.02.tar.gz 317 | sha256: 18790b0cc5f0a51468495c3847b16738f785a2d460403595001e0b932e5db676 318 | - name: perl-http-date 319 | buildsystem: simple 320 | build-commands: 321 | - perl Makefile.PL 322 | - make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 323 | - mkdir -p $FLATPAK_DEST/share/perl5/ 324 | - cp -fr ./INST/SITELIB/* $FLATPAK_DEST/share/perl5/ 325 | sources: 326 | - type: archive 327 | url: https://cpan.metacpan.org/authors/id/G/GA/GAAS/HTTP-Date-6.02.tar.gz 328 | sha256: e8b9941da0f9f0c9c01068401a5e81341f0e3707d1c754f8e11f42a7e629e333 329 | - name: perl-timedate 330 | buildsystem: simple 331 | build-commands: 332 | - perl Makefile.PL 333 | - make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 334 | - mkdir -p $FLATPAK_DEST/share/perl5/ 335 | - cp -fr ./INST/SITELIB/* $FLATPAK_DEST/share/perl5/ 336 | sources: 337 | - type: archive 338 | url: https://cpan.metacpan.org/authors/id/G/GB/GBARR/TimeDate-2.30.tar.gz 339 | sha256: 75bd254871cb5853a6aa0403ac0be270cdd75c9d1b6639f18ecba63c15298e86 340 | - name: libwww-perl 341 | buildsystem: simple 342 | build-commands: 343 | - perl Makefile.PL 344 | - make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 345 | - mkdir -p $FLATPAK_DEST/share/perl5/ 346 | - cp -fr ./INST/SITELIB/* $FLATPAK_DEST/share/perl5/ 347 | sources: 348 | - type: archive 349 | url: https://cpan.metacpan.org/authors/id/E/ET/ETHER/libwww-perl-6.36.tar.gz 350 | sha256: 75c034ab4b37f4b9506dc644300697505582cf9545bcf2e2079e7263f675290a 351 | - name: perl-parent 352 | buildsystem: simple 353 | build-commands: 354 | - perl Makefile.PL 355 | - make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 356 | - mkdir -p $FLATPAK_DEST/share/perl5/ 357 | - cp -fr ./INST/SITELIB/* $FLATPAK_DEST/share/perl5/ 358 | sources: 359 | - type: archive 360 | url: https://cpan.metacpan.org/authors/id/C/CO/CORION/parent-0.238.tar.gz 361 | sha256: 38f58fdef3e28a194c9c8d0dc5d02672faf93c069f40c5bcb1fabeadbbc4d2d1 362 | - name: perl-time-local 363 | buildsystem: simple 364 | build-commands: 365 | - perl Makefile.PL 366 | - make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 367 | - mkdir -p $FLATPAK_DEST/share/perl5/ 368 | - cp -fr ./INST/SITELIB/* $FLATPAK_DEST/share/perl5/ 369 | sources: 370 | - type: archive 371 | url: https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Time-Local-1.30.tar.gz 372 | sha256: c7744f6b2986b946d3e2cf034df371bee16cdbafe53e945abb1a542c4f8920cb 373 | - name: perl-data-dumper 374 | buildsystem: simple 375 | build-commands: 376 | - perl Makefile.PL 377 | - make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 378 | - chmod 777 -R ./INST 379 | - find ./INST -type f | perl -lne 'print if -B and -x' | xargs strip 380 | - mkdir -p $FLATPAK_DEST/share/perl5/ 381 | - cp -fr ./INST/usr/lib/perl5/*/* $FLATPAK_DEST/share/perl5/ 382 | sources: 383 | - type: archive 384 | url: https://cpan.metacpan.org/authors/id/S/SM/SMUELLER/Data-Dumper-2.161.tar.gz 385 | sha256: 3aa4ac1b042b3880438165fb2b2139d377564a8e9928ffe689ede5304ee90558 386 | - name: PyQt6 387 | buildsystem: simple 388 | build-commands: 389 | - sip-install 390 | --confirm-license 391 | --no-designer-plugin 392 | --no-qml-plugin 393 | --no-tools 394 | --concatenate=1 395 | --no-docstrings 396 | --verbose 397 | --qt-shared 398 | --target-dir=/app/lib/python3.9/site-packages/ 399 | --enable=QtCore 400 | --enable=QtGui 401 | --enable=QtWidgets 402 | sources: 403 | - type: archive 404 | url: https://github.com/linuxhw/build-stuff/releases/download/1.6/PyQt6-6.2.3.tar.gz 405 | sha256: a9bfcac198fe4b703706f809bb686c7cef5f60a7c802fc145c6b57929c7a6a34 406 | modules: 407 | - name: python3-sip 408 | buildsystem: simple 409 | build-commands: 410 | - pip3 install --no-deps --no-use-pep517 --prefix=$FLATPAK_DEST . 411 | sources: 412 | - type: archive 413 | url: https://github.com/linuxhw/build-stuff/releases/download/1.6/sip-6.5.1.tar.gz 414 | sha256: 204f0240db8999a749d638a987b351861843e69239b811ec3d1881412c3706a6 415 | modules: 416 | - name: python-toml 417 | buildsystem: simple 418 | build-commands: 419 | - pip3 install --no-deps --no-use-pep517 --prefix=$FLATPAK_DEST . 420 | sources: 421 | - type: archive 422 | url: https://files.pythonhosted.org/packages/source/t/toml/toml-0.10.0.tar.gz 423 | sha256: 229f81c57791a41d65e399fc06bf0848bab550a9dfd5ed66df18ce5f05e73d5c 424 | - name: python-packaging 425 | buildsystem: simple 426 | build-commands: 427 | - pip3 install --no-deps --no-use-pep517 --prefix=$FLATPAK_DEST . 428 | sources: 429 | - type: archive 430 | url: https://files.pythonhosted.org/packages/source/p/packaging/packaging-20.1.tar.gz 431 | sha256: e665345f9eef0c621aa0bf2f8d78cf6d21904eef16a93f020240b704a57f1334 432 | cleanup: 433 | - "*" 434 | - name: PyQt6_sip 435 | buildsystem: simple 436 | build-commands: 437 | - pip3 install --no-deps --no-use-pep517 --prefix=$FLATPAK_DEST . 438 | sources: 439 | - type: archive 440 | url: https://github.com/linuxhw/build-stuff/releases/download/1.6/PyQt6_sip-13.2.1.tar.gz 441 | sha256: b7bce59900b2e0a04f70246de2ccf79ee7933036b6b9183cf039b62eeae2b858 442 | - name: python-pyparsing 443 | buildsystem: simple 444 | build-commands: 445 | - pip3 install --no-deps --no-use-pep517 --prefix=$FLATPAK_DEST . 446 | sources: 447 | - type: archive 448 | url: https://files.pythonhosted.org/packages/source/p/pyparsing/pyparsing-2.4.6.tar.gz 449 | sha256: 4c830582a84fb022400b85429791bc551f1f4871c33f23e44f353119e92f969f 450 | cleanup: 451 | - "*" 452 | - name: PyQt-builder 453 | buildsystem: simple 454 | build-commands: 455 | - pip3 install --no-deps --no-use-pep517 --prefix=$FLATPAK_DEST . 456 | sources: 457 | - type: archive 458 | url: https://files.pythonhosted.org/packages/8b/5f/1bd49787262ddce37b826ef49dcccf5a9970facf0ed363dee5ee233e681d/PyQt-builder-1.12.2.tar.gz 459 | sha256: f62bb688d70e0afd88c413a8d994bda824e6cebd12b612902d1945c5a67edcd7 460 | cleanup: 461 | - "*" 462 | - name: hwinfo 463 | skip-arches: 464 | - aarch64 465 | - arm 466 | buildsystem: simple 467 | build-commands: 468 | - echo '22.1' > VERSION 469 | - rm -f git2log 470 | - sed -i -e 's/ -g / -s /' Makefile.common 471 | - CFLAGS='-I'$FLATPAK_DEST'/include' LDFLAGS='-L'$FLATPAK_DEST'/lib64 -L'$FLATPAK_DEST'/lib -lx86emu' LD_LIBRARY_PATH=$FLATPAK_DEST'/lib64:'$FLATPAK_DEST'/lib' make 472 | - make install DESTDIR=`pwd`/INST 473 | - cp -fr INST/usr/* $FLATPAK_DEST/ 474 | sources: 475 | - type: archive 476 | url: https://github.com/openSUSE/hwinfo/archive/22.1.tar.gz 477 | sha256: 58fd8ed9b704e4622f5ae28e0b240f905516c255c7d2695169fb2b9dd6d549a9 478 | - name: hwinfo 479 | only-arches: 480 | - aarch64 481 | - arm 482 | buildsystem: simple 483 | build-commands: 484 | - echo '22.1' > VERSION 485 | - rm -f git2log 486 | - sed -i -e 's/ -g / -s /' Makefile.common 487 | - make 488 | - make install DESTDIR=`pwd`/INST 489 | - cp -fr INST/usr/* $FLATPAK_DEST/ 490 | sources: 491 | - type: archive 492 | url: https://github.com/openSUSE/hwinfo/archive/22.1.tar.gz 493 | sha256: 58fd8ed9b704e4622f5ae28e0b240f905516c255c7d2695169fb2b9dd6d549a9 494 | - name: hw-probe 495 | buildsystem: simple 496 | build-commands: 497 | - make install DESTDIR=$FLATPAK_DEST prefix=/ 498 | - mv $FLATPAK_DEST/bin/hw-probe $FLATPAK_DEST/bin/hw-probe-flatpak 499 | - install -m 777 -D flatpak/hw-probe.sh $FLATPAK_DEST/bin/hw-probe 500 | - install -D flatpak/PERL5_BASE $FLATPAK_DEST/share/PERL5_BASE 501 | - install -D flatpak/hw-probe.appdata.xml $FLATPAK_DEST/share/metainfo/org.linux_hardware.hw-probe.appdata.xml 502 | - install -D flatpak/icon-256x256.png $FLATPAK_DEST/share/icons/hicolor/256x256/apps/org.linux_hardware.hw-probe.png 503 | - install -D flatpak/icon-128x128.png $FLATPAK_DEST/share/icons/hicolor/128x128/apps/org.linux_hardware.hw-probe.png 504 | - install -D flatpak/icon-64x64.png $FLATPAK_DEST/share/icons/hicolor/64x64/apps/org.linux_hardware.hw-probe.png 505 | - install -D flatpak/hw-probe.desktop $FLATPAK_DEST/share/applications/org.linux_hardware.hw-probe.desktop 506 | - install -D flatpak/usb.ids $FLATPAK_DEST/share/usb.ids 507 | - install -D flatpak/pci.ids $FLATPAK_DEST/share/pci.ids 508 | sources: 509 | - type: archive 510 | url: https://github.com/linuxhw/build-stuff/releases/download/1.6/hw-probe-1.6-AI.tar.gz 511 | sha256: 8a826d0d36f594542699d26d63b7ce14761f9f0c8bc932429082a120843c637d 512 | - name: hw-probe-pyqt6-gui 513 | buildsystem: simple 514 | build-commands: 515 | - mkdir -p $FLATPAK_DEST/share/hw-probe-pyqt6-gui/ 516 | - mv Resources Hardware\ Probe $FLATPAK_DEST/share/hw-probe-pyqt6-gui/ 517 | - ln -s $FLATPAK_DEST/share/hw-probe-pyqt6-gui/Hardware\ Probe $FLATPAK_DEST/bin/hw-probe-pyqt6-gui 518 | - chmod 777 $FLATPAK_DEST/bin/hw-probe-pyqt6-gui 519 | sources: 520 | - type: archive 521 | url: https://github.com/linuxhw/build-stuff/releases/download/1.6/hw-probe-pyqt6-gui-1.0-AI.tar.gz 522 | sha256: 3a0a09d486a3b813397689e7de2df84b3132e7dab3d6dcda76cc19298b082c9c 523 | - name: perl-base 524 | buildsystem: simple 525 | build-commands: 526 | - sh Configure -de -Dprefix=/ 527 | - make -j $FLATPAK_BUILDER_N_JOBS 528 | - find . -type f | perl -lne 'print if -B and -x' | xargs strip 529 | - install -D ./perl $FLATPAK_DEST/bin/perl 530 | - cd lib && cat $FLATPAK_DEST/share/PERL5_BASE | while read i; do mkdir -p $FLATPAK_DEST/share/perl5/`dirname $i`; cp -fr $i $FLATPAK_DEST/share/perl5/$i; done 531 | sources: 532 | - type: archive 533 | url: https://www.cpan.org/src/5.0/perl-5.36.0.tar.xz 534 | sha256: 0f386dccbee8e26286404b2cca144e1005be65477979beb9b1ba272d4819bcf0 535 | -------------------------------------------------------------------------------- /periodic/hw-probe.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Probe hardware and upload result to Linux hardware database 3 | ConditionVirtualization=false 4 | After=local-fs.target 5 | 6 | [Service] 7 | Type=simple 8 | ExecStart=/usr/bin/hw-probe -all -upload 9 | IOSchedulingClass=idle 10 | Nice=19 11 | IOSchedulingClass=2 12 | IOSchedulingPriority=7 13 | ProtectSystem=full 14 | StandardOutput=null 15 | -------------------------------------------------------------------------------- /periodic/hw-probe.timer: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Monthly hw-probe report 3 | 4 | [Timer] 5 | OnCalendar=monthly 6 | AccuracySec=12h 7 | Persistent=true 8 | OnBootSec=7min 9 | 10 | [Install] 11 | WantedBy=timers.target 12 | -------------------------------------------------------------------------------- /snap/gui/hw-probe.desktop: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Name=Hardware Probe 3 | Comment=Probe for hardware, check operability and find drivers 4 | Exec=hw-probe 5 | Icon=${SNAP}/usr/share/icons/hw-probe.png 6 | Type=Application 7 | StartupNotify=true 8 | Categories=System; 9 | Keywords=HW Probe;Hardware;Probe; 10 | -------------------------------------------------------------------------------- /snap/hw-probe.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | if [ $# -eq 0 ]; then 3 | hw-probe-snap -snap 4 | else 5 | hw-probe-snap -snap "$@" 6 | fi 7 | -------------------------------------------------------------------------------- /snap/snapcraft.yaml: -------------------------------------------------------------------------------- 1 | name: hw-probe 2 | version: 1.6.5-5 3 | summary: Check operability of computer hardware and find drivers 4 | description: > 5 | A tool to probe for hardware, check operability and find drivers 6 | with the help of Linux Hardware Database. 7 | 8 | Probe — is a snapshot of your computer hardware state. 9 | The tool checks operability of devices by analysis of logs and 10 | returns a permanent url to view the probe of the computer: 11 | 12 | hw-probe -all -upload 13 | 14 | If some of your hardware devices does not work due to a missed driver 15 | then the tool will suggest a proper Linux kernel version according 16 | to the LKDDb or third-party drivers. 17 | 18 | Enable all interfaces in Permissions and run as root if you want to 19 | check health of all your hard drives. 20 | 21 | type: app 22 | base: core20 23 | confinement: strict 24 | grade: stable 25 | plugs: 26 | dot-local-share-xorg-logs: 27 | interface: personal-files 28 | read: 29 | - $HOME/.local/share/xorg 30 | apps: 31 | hw-probe: 32 | extensions: [kde-neon] 33 | command: usr/bin/hw-probe 34 | plugs: [hardware-observe, system-observe, block-devices, log-observe, upower-observe, physical-memory-observe, network-observe, raw-usb, mount-observe, opengl, dot-local-share-xorg-logs] 35 | environment: 36 | PATH: $PATH:$SNAP/sbin:$SNAP/usr/sbin:$SNAP/usr/bin:$SNAP/usr/share/hw-probe-pyqt5-gui 37 | PERL5LIB: $SNAP/usr/share/perl5:$SNAP/usr/lib/x86_64-linux-gnu/perl-base:$SNAP/usr/lib/i386-linux-gnu/perl-base 38 | LD_LIBRARY_PATH: $SNAP/lib/x86_64-linux-gnu/:$SNAP/lib/i386-linux-gnu/:$SNAP/usr/lib64:$SNAP/usr/lib:$SNAP/usr/lib/x86_64-linux-gnu:$SNAP/usr/lib/i386-linux-gnu 39 | LC_ALL: C 40 | PYTHONPATH: $SNAP/usr/lib/python3/dist-packages 41 | parts: 42 | edid-decode: 43 | source: https://github.com/linuxhw/build-stuff/releases/download/1.4/edid-decode-20180622.tar.gz 44 | source-type: tar 45 | plugin: make 46 | override-build: | 47 | sed -i -e 's/ -g / -s /' Makefile 48 | make 49 | make install DESTDIR=$SNAPCRAFT_PART_INSTALL 50 | build-packages: 51 | - gcc 52 | - make 53 | prime: 54 | - usr/bin/edid-decode 55 | dmidecode: 56 | source: https://download-mirror.savannah.gnu.org/releases/dmidecode/dmidecode-3.6.tar.xz 57 | source-type: tar 58 | plugin: make 59 | override-build: | 60 | sed -i -e 's/ -O2/ -s -O2/' Makefile 61 | make 62 | make install prefix=/usr DESTDIR=$SNAPCRAFT_PART_INSTALL 63 | find $SNAPCRAFT_PART_INSTALL -type f | perl -lne 'print if -B and -x' | xargs strip 64 | build-packages: 65 | - gcc 66 | - make 67 | stage-packages: 68 | - on armhf: 69 | - dmidecode 70 | - on arm64: 71 | - dmidecode 72 | prime: 73 | - usr/sbin 74 | lm-sensors: 75 | source: https://github.com/lm-sensors/lm-sensors/archive/V3-6-0.tar.gz 76 | source-type: tar 77 | plugin: make 78 | override-build: | 79 | sed -i -e 's/ -g / -s /' Makefile 80 | make 81 | make install BUILD_STATIC_LIB=0 DEBUG=0 PREFIX=/usr DESTDIR=$SNAPCRAFT_PART_INSTALL 82 | find $SNAPCRAFT_PART_INSTALL -type f | perl -lne 'print if -B and -x' | xargs strip 83 | build-packages: 84 | - gcc 85 | - make 86 | prime: 87 | - usr/bin/sensors 88 | - etc/sensors3.conf 89 | - usr/lib/libsensors* 90 | libkmod: 91 | source: https://cdn.kernel.org/pub/linux/utils/kernel/kmod/kmod-25.tar.xz 92 | source-type: tar 93 | plugin: make 94 | override-build: | 95 | ./configure --disable-debug --disable-python --disable-logging --disable-test-modules --disable-manpages --prefix=/usr 96 | sed -i -e 's/ -g / -s /' Makefile 97 | make 98 | make install DESTDIR=$SNAPCRAFT_PART_INSTALL 99 | find $SNAPCRAFT_PART_INSTALL -type f | perl -lne 'print if -B and -x' | xargs strip 100 | build-packages: 101 | - gcc 102 | - make 103 | prime: 104 | - usr/lib/libkmod.so* 105 | usbutils: 106 | source: https://mirrors.edge.kernel.org/pub/linux/utils/usb/usbutils/usbutils-007.tar.xz 107 | source-type: tar 108 | plugin: make 109 | override-build: | 110 | curl https://raw.githubusercontent.com/usbids/usbids/master/usb.ids > usb.ids 111 | sed -i -e 's/usbhid-dump//' Makefile.* configure 112 | ./configure --prefix=/usr 113 | sed -i -e 's/ -g / -s /' Makefile 114 | make 115 | make install DESTDIR=$SNAPCRAFT_PART_INSTALL 116 | find $SNAPCRAFT_PART_INSTALL -type f | perl -lne 'print if -B and -x' | xargs strip 117 | sed -i -e 's|/usr/share/usb.ids|/tmp/HW_PROBE_USB_|' $SNAPCRAFT_PART_INSTALL/usr/bin/lsusb 118 | build-packages: 119 | - gcc 120 | - make 121 | - curl 122 | - libusb-1.0-0-dev 123 | - libudev-dev 124 | prime: 125 | - usr/bin/lsusb 126 | - usr/bin/usb-devices 127 | - usr/share/usb.ids 128 | pciutils: 129 | source: https://github.com/pciutils/pciutils/archive/v3.6.2.tar.gz 130 | source-type: tar 131 | plugin: make 132 | override-build: | 133 | curl https://raw.githubusercontent.com/pciutils/pciids/master/pci.ids > pci.ids 134 | make install PREFIX=/usr DESTDIR=$SNAPCRAFT_PART_INSTALL SHARED=no LIBKMOD=yes HWDB=no ZLIB=no DNS=no 135 | sed -i -e 's|/usr/share/pci.ids|/tmp/HW_PROBE_PCI_|' $SNAPCRAFT_PART_INSTALL/usr/sbin/lspci 136 | build-packages: 137 | - gcc 138 | - make 139 | - curl 140 | - libkmod-dev 141 | - pkg-config 142 | - libtool 143 | prime: 144 | - usr/sbin/lspci 145 | - usr/share/pci.ids 146 | acpica-unix: 147 | source: https://github.com/user-attachments/files/19613932/acpica-unix-20250404.tar.gz 148 | source-type: tar 149 | plugin: make 150 | build-attributes: [no-patchelf] 151 | override-build: | 152 | make 153 | make install DESTDIR=$SNAPCRAFT_PART_INSTALL 154 | build-packages: 155 | - gcc 156 | - make 157 | - bison 158 | prime: 159 | - usr/bin/acpidump 160 | - usr/bin/iasl 161 | - usr/bin/acpixtract 162 | hdparm: 163 | source: https://github.com/linuxhw/build-stuff/releases/download/1.6/hdparm-9.65.tar.gz 164 | source-type: tar 165 | plugin: make 166 | override-build: | 167 | make 168 | make install DESTDIR=$SNAPCRAFT_PART_INSTALL 169 | build-packages: 170 | - gcc 171 | - make 172 | prime: 173 | - sbin/hdparm 174 | smartmontools: 175 | source: https://github.com/linuxhw/build-stuff/releases/download/1.6/smartmontools-7.5.tar.gz 176 | source-type: tar 177 | plugin: make 178 | override-build: | 179 | sh autogen.sh 180 | ./configure --with-nvme-devicescan --prefix=/ 181 | sed -i -e 's/ -g / -s /' Makefile 182 | make 183 | make install DESTDIR=$SNAPCRAFT_PART_INSTALL 184 | find $SNAPCRAFT_PART_INSTALL -type f | perl -lne 'print if -B and -x' | xargs strip 185 | build-packages: 186 | - gcc 187 | - make 188 | - automake 189 | prime: 190 | - sbin/smartctl 191 | libusb-1: 192 | source: https://github.com/libusb/libusb/archive/v1.0.22.tar.gz 193 | source-type: tar 194 | plugin: make 195 | override-build: | 196 | sh autogen.sh 197 | ./configure --disable-static --prefix=/usr 198 | sed -i -e 's/ -g / -s /' Makefile 199 | make 200 | make install DESTDIR=$SNAPCRAFT_PART_INSTALL 201 | find $SNAPCRAFT_PART_INSTALL -type f | perl -lne 'print if -B and -x' | xargs strip 202 | build-packages: 203 | - gcc 204 | - make 205 | - automake 206 | prime: 207 | - usr/lib/libusb*.so* 208 | util-linux: 209 | source: https://mirrors.edge.kernel.org/pub/linux/utils/util-linux/v2.40/util-linux-2.40.2.tar.xz 210 | source-type: tar 211 | plugin: make 212 | override-build: | 213 | ./configure --prefix=/usr --disable-liblastlog2 214 | sed -i -e 's/ -g / -s /' Makefile 215 | make dmesg 216 | make lscpu 217 | make lsblk 218 | mkdir -p $SNAPCRAFT_PART_INSTALL/usr/bin/ 219 | cp -f ./dmesg ./lscpu ./lsblk $SNAPCRAFT_PART_INSTALL/usr/bin/ 220 | find $SNAPCRAFT_PART_INSTALL -type f | perl -lne 'print if -B and -x' | xargs strip 221 | build-packages: 222 | - gcc 223 | - make 224 | - automake 225 | prime: 226 | - usr/bin/dmesg 227 | libx86emu: 228 | source: https://github.com/wfeldt/libx86emu/archive/3.5.tar.gz 229 | source-type: tar 230 | plugin: make 231 | override-build: | 232 | echo '3.2' > VERSION 233 | rm -f git2log 234 | sed -i -e 's/ -g / -s /' Makefile 235 | make 236 | make install DESTDIR=$SNAPCRAFT_PART_INSTALL 237 | find $SNAPCRAFT_PART_INSTALL -type f | perl -lne 'print if -B and -x' | xargs strip 238 | build-packages: 239 | - gcc 240 | - make 241 | hwinfo: 242 | after: [libx86emu] 243 | source: https://github.com/openSUSE/hwinfo/archive/23.2.tar.gz 244 | source-type: tar 245 | plugin: make 246 | override-build: | 247 | echo '23.2' > VERSION 248 | rm -f git2log 249 | sed -i -e 's/ -g / -s /' Makefile.common 250 | CFLAGS='-I'$SNAPCRAFT_STAGE'/usr/include' LDFLAGS='-L'$SNAPCRAFT_STAGE'/usr/lib64 -L'$SNAPCRAFT_STAGE'/usr/lib -lx86emu' make 251 | make install DESTDIR=$SNAPCRAFT_PART_INSTALL 252 | build-packages: 253 | - gcc 254 | - make 255 | - flex 256 | - uuid-dev 257 | prime: 258 | - usr/lib64/libhd* 259 | - usr/lib/libhd* 260 | - usr/share/hwinfo/* 261 | - usr/sbin/hwinfo 262 | perl-uri: 263 | source: https://cpan.metacpan.org/authors/id/E/ET/ETHER/URI-5.08.tar.gz 264 | source-type: tar 265 | plugin: make 266 | override-build: | 267 | perl Makefile.PL 268 | make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 269 | mkdir -p $SNAPCRAFT_PART_INSTALL/usr/share/perl5/ 270 | cp -fr ./INST/SITELIB/* $SNAPCRAFT_PART_INSTALL/usr/share/perl5/ 271 | build-packages: 272 | - make 273 | - perl 274 | perl-http-message: 275 | source: https://cpan.metacpan.org/authors/id/O/OA/OALDERS/HTTP-Message-6.37.tar.gz 276 | source-type: tar 277 | plugin: make 278 | override-build: | 279 | perl Makefile.PL 280 | make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 281 | mkdir -p $SNAPCRAFT_PART_INSTALL/usr/share/perl5/ 282 | cp -fr ./INST/SITELIB/* $SNAPCRAFT_PART_INSTALL/usr/share/perl5/ 283 | build-packages: 284 | - make 285 | - perl 286 | perl-net-http: 287 | source: https://cpan.metacpan.org/authors/id/O/OA/OALDERS/Net-HTTP-6.22.tar.gz 288 | source-type: tar 289 | plugin: make 290 | override-build: | 291 | perl Makefile.PL 292 | make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 293 | mkdir -p $SNAPCRAFT_PART_INSTALL/usr/share/perl5/ 294 | cp -fr ./INST/SITELIB/* $SNAPCRAFT_PART_INSTALL/usr/share/perl5/ 295 | build-packages: 296 | - make 297 | - perl 298 | perl-try-tiny: 299 | source: https://cpan.metacpan.org/authors/id/E/ET/ETHER/Try-Tiny-0.31.tar.gz 300 | source-type: tar 301 | plugin: make 302 | override-build: | 303 | perl Makefile.PL 304 | make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 305 | mkdir -p $SNAPCRAFT_PART_INSTALL/usr/share/perl5/ 306 | cp -fr ./INST/SITELIB/* $SNAPCRAFT_PART_INSTALL/usr/share/perl5/ 307 | build-packages: 308 | - make 309 | - perl 310 | perl-lwp-mediatypes: 311 | source: https://cpan.metacpan.org/authors/id/G/GA/GAAS/LWP-MediaTypes-6.02.tar.gz 312 | source-type: tar 313 | plugin: make 314 | override-build: | 315 | perl Makefile.PL 316 | make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 317 | mkdir -p $SNAPCRAFT_PART_INSTALL/usr/share/perl5/ 318 | cp -fr ./INST/SITELIB/* $SNAPCRAFT_PART_INSTALL/usr/share/perl5/ 319 | build-packages: 320 | - make 321 | - perl 322 | perl-http-date: 323 | source: https://cpan.metacpan.org/authors/id/G/GA/GAAS/HTTP-Date-6.02.tar.gz 324 | source-type: tar 325 | plugin: make 326 | override-build: | 327 | perl Makefile.PL 328 | make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 329 | mkdir -p $SNAPCRAFT_PART_INSTALL/usr/share/perl5/ 330 | cp -fr ./INST/SITELIB/* $SNAPCRAFT_PART_INSTALL/usr/share/perl5/ 331 | build-packages: 332 | - make 333 | - perl 334 | perl-timedate: 335 | source: https://cpan.metacpan.org/authors/id/G/GB/GBARR/TimeDate-2.30.tar.gz 336 | source-type: tar 337 | plugin: make 338 | override-build: | 339 | perl Makefile.PL 340 | make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 341 | mkdir -p $SNAPCRAFT_PART_INSTALL/usr/share/perl5/ 342 | cp -fr ./INST/SITELIB/* $SNAPCRAFT_PART_INSTALL/usr/share/perl5/ 343 | build-packages: 344 | - make 345 | - perl 346 | libwww-perl: 347 | source: https://cpan.metacpan.org/authors/id/E/ET/ETHER/libwww-perl-6.36.tar.gz 348 | source-type: tar 349 | plugin: make 350 | override-build: | 351 | perl Makefile.PL 352 | make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 353 | mkdir -p $SNAPCRAFT_PART_INSTALL/usr/share/perl5/ 354 | cp -fr ./INST/SITELIB/* $SNAPCRAFT_PART_INSTALL/usr/share/perl5/ 355 | build-packages: 356 | - make 357 | - perl 358 | prime: 359 | - usr/share/perl5/LWP 360 | - usr/share/perl5/LWP.pm 361 | perl-parent: 362 | source: https://cpan.metacpan.org/authors/id/C/CO/CORION/parent-0.238.tar.gz 363 | source-type: tar 364 | plugin: make 365 | override-build: | 366 | perl Makefile.PL 367 | make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 368 | mkdir -p $SNAPCRAFT_PART_INSTALL/usr/share/perl5/ 369 | cp -fr ./INST/SITELIB/* $SNAPCRAFT_PART_INSTALL/usr/share/perl5/ 370 | build-packages: 371 | - make 372 | - perl 373 | perl-data-dumper: 374 | source: https://cpan.metacpan.org/authors/id/S/SM/SMUELLER/Data-Dumper-2.161.tar.gz 375 | source-type: tar 376 | plugin: make 377 | override-build: | 378 | perl Makefile.PL 379 | make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 380 | mkdir -p $SNAPCRAFT_PART_INSTALL/usr/share/perl5/ 381 | cp -fr ./INST/usr/lib/*-linux-gnu*/perl/*/* $SNAPCRAFT_PART_INSTALL/usr/share/perl5/ 382 | build-packages: 383 | - make 384 | - perl 385 | perl-time-local: 386 | source: https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Time-Local-1.30.tar.gz 387 | source-type: tar 388 | plugin: make 389 | override-build: | 390 | perl Makefile.PL 391 | make install DESTDIR=`pwd`/INST INSTALLSITELIB=/SITELIB 392 | mkdir -p $SNAPCRAFT_PART_INSTALL/usr/share/perl5/ 393 | cp -fr ./INST/SITELIB/* $SNAPCRAFT_PART_INSTALL/usr/share/perl5/ 394 | build-packages: 395 | - make 396 | - perl 397 | hw-probe: 398 | source: https://github.com/linuxhw/build-stuff/releases/download/1.6/hw-probe-1.6-AI.tar.gz 399 | source-type: tar 400 | plugin: make 401 | override-build: | 402 | make install DESTDIR=$SNAPCRAFT_PART_INSTALL 403 | mv $SNAPCRAFT_PART_INSTALL/usr/bin/hw-probe $SNAPCRAFT_PART_INSTALL/usr/bin/hw-probe-snap 404 | chmod +x snap/hw-probe.sh 405 | cp -f snap/hw-probe.sh $SNAPCRAFT_PART_INSTALL/usr/bin/hw-probe 406 | mkdir -p $SNAPCRAFT_PART_INSTALL/usr/share/icons/ 407 | cp -f flatpak/icon-64x64.png $SNAPCRAFT_PART_INSTALL/usr/share/icons/hw-probe.png 408 | mkdir -p $SNAPCRAFT_PART_INSTALL/usr/share/perl5/File/ 409 | mv $SNAPCRAFT_PART_INSTALL/usr/share/perl/5.*.*/File/Copy.pm $SNAPCRAFT_PART_INSTALL/usr/share/perl5/File/ 410 | build-packages: 411 | - make 412 | - perl 413 | stage-packages: 414 | - perl-base 415 | - perl-modules 416 | prime: 417 | - usr/bin/hw-probe 418 | - usr/bin/hw-probe-snap 419 | - usr/lib/*-linux-gnu/perl-base 420 | - usr/bin/perl 421 | - usr/share/perl5/File/Copy.pm 422 | - usr/share/icons/hw-probe.png 423 | hw-probe-pyqt5-gui: 424 | source: https://github.com/linuxhw/build-stuff/releases/download/1.6/hw-probe-pyqt5-gui-1.2-AI.tar.gz 425 | source-type: tar 426 | plugin: make 427 | override-build: | 428 | mkdir -p $SNAPCRAFT_PART_INSTALL/usr/share/hw-probe-pyqt5-gui/ 429 | chmod +x Hardware\ Probe 430 | cp -fr Resources $SNAPCRAFT_PART_INSTALL/usr/share/hw-probe-pyqt5-gui/ 431 | cp -f Hardware\ Probe $SNAPCRAFT_PART_INSTALL/usr/share/hw-probe-pyqt5-gui/hw-probe-pyqt5-gui 432 | stage-packages: 433 | - python3-sip 434 | - python3-pyqt5 435 | - xdg-utils 436 | prime: 437 | - usr/lib/python3/dist-packages 438 | - usr/share/hw-probe-pyqt5-gui 439 | - usr/bin/xdg-open 440 | - usr/bin/xdg-mime 441 | organize: 442 | etc/sensors3.conf: etc/sensors3.conf.bak 443 | 444 | --------------------------------------------------------------------------------