├── .gitlab-ci.yml ├── README.md ├── LICENSE └── systeminfos.sh /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | variables: 2 | SYS_INFO_URL: "https://www.mytuxedo.de/remote.php/webdav/systeminfo-sh/systeminfos.sh" 3 | 4 | stages: 5 | - deploy 6 | 7 | upload_mytuxedo: 8 | stage: deploy 9 | only: 10 | refs: 11 | - master 12 | changes: 13 | - systeminfos.sh 14 | script: 15 | - curl -T ./systeminfos.sh --user ${K8S_SECRET_WEBDAV_USER}:${K8S_SECRET_WEBDAV_PASSWORD} ${SYS_INFO_URL} -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # TUXEDO Systeminfos 2 | 3 | Script from TUXEDO Computers to get necessary information of the system for technical support purposes. \ 4 | For more information see [here](https://www.tuxedocomputers.com/en/Notebooks-PCs-systeminfossh.tuxedo). 5 | 6 | **Note:** We do not collect any personal data and no credentials! We only collect information about your hard- and software configuration. 7 | 8 | ## Compatibility 9 | The script uses some distribution specific commands. distribution specific commands are used for the following distributions: 10 | - TUXEDO OS 11 | - Ubuntu 12 | - openSUSE Leap 15.x 13 | - elementary OS 14 | - KDE neon 15 | - Manjaro 16 | - Fedora 17 | 18 | You will only receive official support for TUXEDO OS, Ubuntu and openSUSE Leap 15.x from TUXEDO Computers 19 | 20 | ## Before you running the script 21 | - Check if you got a ticketnumber. If you don't have a ticket number: contact us by e-mail to `tux[at]tuxedocomputers.com` 22 | - Submitted system information **without** valid ticket number can't be processed 23 | 24 | ## What does the script do before collecting? 25 | - Checks if there is an internet connection 26 | - Installs needed extra packages for the listed distributions above 27 | 28 | ## What exactly does the script collect? 29 | 30 | - Kernel version 31 | - USB devices 32 | - PCI devices 33 | - Partitioning 34 | - Network configuration 35 | - Installed drivers/firmware 36 | - Loaded drivers/firmware/modules 37 | - Blocked wireless devices 38 | - Grub bootloader configuration 39 | - Logfile of the boot process 40 | - System messages (dmesg) 41 | - Mainboard functions 42 | - System log file 43 | - Audio devices 44 | - Tomte configuration 45 | 46 | ## What does the script do after collecting? 47 | - Sends the collected system information to TUXEDO 48 | - Removes temporary files 49 | 50 | 51 | ### Run systeminfos.sh in debug mode 52 | *Note:* The debug mode is only for internal testing purposes 53 | - `sudo --preserve-env=HOME /usr/bin/env` 54 | - `sudo SYSINFOS_DEBUG=1 sh systeminfos.sh` 55 | 56 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 2, June 1991 3 | 4 | Copyright (C) 1989, 1991 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 | Preamble 10 | 11 | The licenses for most software are designed to take away your 12 | freedom to share and change it. By contrast, the GNU General Public 13 | License is intended to guarantee your freedom to share and change free 14 | software--to make sure the software is free for all its users. This 15 | General Public License applies to most of the Free Software 16 | Foundation's software and to any other program whose authors commit to 17 | using it. (Some other Free Software Foundation software is covered by 18 | the GNU Lesser General Public License instead.) You can apply it to 19 | your programs, too. 20 | 21 | When we speak of free software, we are referring to freedom, not 22 | price. Our General Public Licenses are designed to make sure that you 23 | have the freedom to distribute copies of free software (and charge for 24 | this service if you wish), that you receive source code or can get it 25 | if you want it, that you can change the software or use pieces of it 26 | in new free programs; and that you know you can do these things. 27 | 28 | To protect your rights, we need to make restrictions that forbid 29 | anyone to deny you these rights or to ask you to surrender the rights. 30 | These restrictions translate to certain responsibilities for you if you 31 | distribute copies of the software, or if you modify it. 32 | 33 | For example, if you distribute copies of such a program, whether 34 | gratis or for a fee, you must give the recipients all the rights that 35 | you have. You must make sure that they, too, receive or can get the 36 | source code. And you must show them these terms so they know their 37 | rights. 38 | 39 | We protect your rights with two steps: (1) copyright the software, and 40 | (2) offer you this license which gives you legal permission to copy, 41 | distribute and/or modify the software. 42 | 43 | Also, for each author's protection and ours, we want to make certain 44 | that everyone understands that there is no warranty for this free 45 | software. If the software is modified by someone else and passed on, we 46 | want its recipients to know that what they have is not the original, so 47 | that any problems introduced by others will not reflect on the original 48 | authors' reputations. 49 | 50 | Finally, any free program is threatened constantly by software 51 | patents. We wish to avoid the danger that redistributors of a free 52 | program will individually obtain patent licenses, in effect making the 53 | program proprietary. To prevent this, we have made it clear that any 54 | patent must be licensed for everyone's free use or not licensed at all. 55 | 56 | The precise terms and conditions for copying, distribution and 57 | modification follow. 58 | 59 | GNU GENERAL PUBLIC LICENSE 60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 61 | 62 | 0. This License applies to any program or other work which contains 63 | a notice placed by the copyright holder saying it may be distributed 64 | under the terms of this General Public License. The "Program", below, 65 | refers to any such program or work, and a "work based on the Program" 66 | means either the Program or any derivative work under copyright law: 67 | that is to say, a work containing the Program or a portion of it, 68 | either verbatim or with modifications and/or translated into another 69 | language. (Hereinafter, translation is included without limitation in 70 | the term "modification".) Each licensee is addressed as "you". 71 | 72 | Activities other than copying, distribution and modification are not 73 | covered by this License; they are outside its scope. The act of 74 | running the Program is not restricted, and the output from the Program 75 | is covered only if its contents constitute a work based on the 76 | Program (independent of having been made by running the Program). 77 | Whether that is true depends on what the Program does. 78 | 79 | 1. You may copy and distribute verbatim copies of the Program's 80 | source code as you receive it, in any medium, provided that you 81 | conspicuously and appropriately publish on each copy an appropriate 82 | copyright notice and disclaimer of warranty; keep intact all the 83 | notices that refer to this License and to the absence of any warranty; 84 | and give any other recipients of the Program a copy of this License 85 | along with the Program. 86 | 87 | You may charge a fee for the physical act of transferring a copy, and 88 | you may at your option offer warranty protection in exchange for a fee. 89 | 90 | 2. You may modify your copy or copies of the Program or any portion 91 | of it, thus forming a work based on the Program, and copy and 92 | distribute such modifications or work under the terms of Section 1 93 | above, provided that you also meet all of these conditions: 94 | 95 | a) You must cause the modified files to carry prominent notices 96 | stating that you changed the files and the date of any change. 97 | 98 | b) You must cause any work that you distribute or publish, that in 99 | whole or in part contains or is derived from the Program or any 100 | part thereof, to be licensed as a whole at no charge to all third 101 | parties under the terms of this License. 102 | 103 | c) If the modified program normally reads commands interactively 104 | when run, you must cause it, when started running for such 105 | interactive use in the most ordinary way, to print or display an 106 | announcement including an appropriate copyright notice and a 107 | notice that there is no warranty (or else, saying that you provide 108 | a warranty) and that users may redistribute the program under 109 | these conditions, and telling the user how to view a copy of this 110 | License. (Exception: if the Program itself is interactive but 111 | does not normally print such an announcement, your work based on 112 | the Program is not required to print an announcement.) 113 | 114 | These requirements apply to the modified work as a whole. If 115 | identifiable sections of that work are not derived from the Program, 116 | and can be reasonably considered independent and separate works in 117 | themselves, then this License, and its terms, do not apply to those 118 | sections when you distribute them as separate works. But when you 119 | distribute the same sections as part of a whole which is a work based 120 | on the Program, the distribution of the whole must be on the terms of 121 | this License, whose permissions for other licensees extend to the 122 | entire whole, and thus to each and every part regardless of who wrote it. 123 | 124 | Thus, it is not the intent of this section to claim rights or contest 125 | your rights to work written entirely by you; rather, the intent is to 126 | exercise the right to control the distribution of derivative or 127 | collective works based on the Program. 128 | 129 | In addition, mere aggregation of another work not based on the Program 130 | with the Program (or with a work based on the Program) on a volume of 131 | a storage or distribution medium does not bring the other work under 132 | the scope of this License. 133 | 134 | 3. You may copy and distribute the Program (or a work based on it, 135 | under Section 2) in object code or executable form under the terms of 136 | Sections 1 and 2 above provided that you also do one of the following: 137 | 138 | a) Accompany it with the complete corresponding machine-readable 139 | source code, which must be distributed under the terms of Sections 140 | 1 and 2 above on a medium customarily used for software interchange; or, 141 | 142 | b) Accompany it with a written offer, valid for at least three 143 | years, to give any third party, for a charge no more than your 144 | cost of physically performing source distribution, a complete 145 | machine-readable copy of the corresponding source code, to be 146 | distributed under the terms of Sections 1 and 2 above on a medium 147 | customarily used for software interchange; or, 148 | 149 | c) Accompany it with the information you received as to the offer 150 | to distribute corresponding source code. (This alternative is 151 | allowed only for noncommercial distribution and only if you 152 | received the program in object code or executable form with such 153 | an offer, in accord with Subsection b above.) 154 | 155 | The source code for a work means the preferred form of the work for 156 | making modifications to it. For an executable work, complete source 157 | code means all the source code for all modules it contains, plus any 158 | associated interface definition files, plus the scripts used to 159 | control compilation and installation of the executable. However, as a 160 | special exception, the source code distributed need not include 161 | anything that is normally distributed (in either source or binary 162 | form) with the major components (compiler, kernel, and so on) of the 163 | operating system on which the executable runs, unless that component 164 | itself accompanies the executable. 165 | 166 | If distribution of executable or object code is made by offering 167 | access to copy from a designated place, then offering equivalent 168 | access to copy the source code from the same place counts as 169 | distribution of the source code, even though third parties are not 170 | compelled to copy the source along with the object code. 171 | 172 | 4. You may not copy, modify, sublicense, or distribute the Program 173 | except as expressly provided under this License. Any attempt 174 | otherwise to copy, modify, sublicense or distribute the Program is 175 | void, and will automatically terminate your rights under this License. 176 | However, parties who have received copies, or rights, from you under 177 | this License will not have their licenses terminated so long as such 178 | parties remain in full compliance. 179 | 180 | 5. You are not required to accept this License, since you have not 181 | signed it. However, nothing else grants you permission to modify or 182 | distribute the Program or its derivative works. These actions are 183 | prohibited by law if you do not accept this License. Therefore, by 184 | modifying or distributing the Program (or any work based on the 185 | Program), you indicate your acceptance of this License to do so, and 186 | all its terms and conditions for copying, distributing or modifying 187 | the Program or works based on it. 188 | 189 | 6. Each time you redistribute the Program (or any work based on the 190 | Program), the recipient automatically receives a license from the 191 | original licensor to copy, distribute or modify the Program subject to 192 | these terms and conditions. You may not impose any further 193 | restrictions on the recipients' exercise of the rights granted herein. 194 | You are not responsible for enforcing compliance by third parties to 195 | this License. 196 | 197 | 7. If, as a consequence of a court judgment or allegation of patent 198 | infringement or for any other reason (not limited to patent issues), 199 | conditions are imposed on you (whether by court order, agreement or 200 | otherwise) that contradict the conditions of this License, they do not 201 | excuse you from the conditions of this License. If you cannot 202 | distribute so as to satisfy simultaneously your obligations under this 203 | License and any other pertinent obligations, then as a consequence you 204 | may not distribute the Program at all. For example, if a patent 205 | license would not permit royalty-free redistribution of the Program by 206 | all those who receive copies directly or indirectly through you, then 207 | the only way you could satisfy both it and this License would be to 208 | refrain entirely from distribution of the Program. 209 | 210 | If any portion of this section is held invalid or unenforceable under 211 | any particular circumstance, the balance of the section is intended to 212 | apply and the section as a whole is intended to apply in other 213 | circumstances. 214 | 215 | It is not the purpose of this section to induce you to infringe any 216 | patents or other property right claims or to contest validity of any 217 | such claims; this section has the sole purpose of protecting the 218 | integrity of the free software distribution system, which is 219 | implemented by public license practices. Many people have made 220 | generous contributions to the wide range of software distributed 221 | through that system in reliance on consistent application of that 222 | system; it is up to the author/donor to decide if he or she is willing 223 | to distribute software through any other system and a licensee cannot 224 | impose that choice. 225 | 226 | This section is intended to make thoroughly clear what is believed to 227 | be a consequence of the rest of this License. 228 | 229 | 8. If the distribution and/or use of the Program is restricted in 230 | certain countries either by patents or by copyrighted interfaces, the 231 | original copyright holder who places the Program under this License 232 | may add an explicit geographical distribution limitation excluding 233 | those countries, so that distribution is permitted only in or among 234 | countries not thus excluded. In such case, this License incorporates 235 | the limitation as if written in the body of this License. 236 | 237 | 9. The Free Software Foundation may publish revised and/or new versions 238 | of the General Public License from time to time. Such new versions will 239 | be similar in spirit to the present version, but may differ in detail to 240 | address new problems or concerns. 241 | 242 | Each version is given a distinguishing version number. If the Program 243 | specifies a version number of this License which applies to it and "any 244 | later version", you have the option of following the terms and conditions 245 | either of that version or of any later version published by the Free 246 | Software Foundation. If the Program does not specify a version number of 247 | this License, you may choose any version ever published by the Free Software 248 | Foundation. 249 | 250 | 10. If you wish to incorporate parts of the Program into other free 251 | programs whose distribution conditions are different, write to the author 252 | to ask for permission. For software which is copyrighted by the Free 253 | Software Foundation, write to the Free Software Foundation; we sometimes 254 | make exceptions for this. Our decision will be guided by the two goals 255 | of preserving the free status of all derivatives of our free software and 256 | of promoting the sharing and reuse of software generally. 257 | 258 | NO WARRANTY 259 | 260 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY 261 | FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN 262 | OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES 263 | PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED 264 | OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 265 | MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS 266 | TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE 267 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, 268 | REPAIR OR CORRECTION. 269 | 270 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 271 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR 272 | REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, 273 | INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING 274 | OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED 275 | TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY 276 | YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER 277 | PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE 278 | POSSIBILITY OF SUCH DAMAGES. 279 | 280 | END OF TERMS AND CONDITIONS 281 | 282 | How to Apply These Terms to Your New Programs 283 | 284 | If you develop a new program, and you want it to be of the greatest 285 | possible use to the public, the best way to achieve this is to make it 286 | free software which everyone can redistribute and change under these terms. 287 | 288 | To do so, attach the following notices to the program. It is safest 289 | to attach them to the start of each source file to most effectively 290 | convey the exclusion of warranty; and each file should have at least 291 | the "copyright" line and a pointer to where the full notice is found. 292 | 293 | 294 | Copyright (C) 295 | 296 | This program is free software; you can redistribute it and/or modify 297 | it under the terms of the GNU General Public License as published by 298 | the Free Software Foundation; either version 2 of the License, or 299 | (at your option) any later version. 300 | 301 | This program is distributed in the hope that it will be useful, 302 | but WITHOUT ANY WARRANTY; without even the implied warranty of 303 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 304 | GNU General Public License for more details. 305 | 306 | You should have received a copy of the GNU General Public License along 307 | with this program; if not, write to the Free Software Foundation, Inc., 308 | 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 309 | 310 | Also add information on how to contact you by electronic and paper mail. 311 | 312 | If the program is interactive, make it output a short notice like this 313 | when it starts in an interactive mode: 314 | 315 | Gnomovision version 69, Copyright (C) year name of author 316 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 317 | This is free software, and you are welcome to redistribute it 318 | under certain conditions; type `show c' for details. 319 | 320 | The hypothetical commands `show w' and `show c' should show the appropriate 321 | parts of the General Public License. Of course, the commands you use may 322 | be called something other than `show w' and `show c'; they could even be 323 | mouse-clicks or menu items--whatever suits your program. 324 | 325 | You should also get your employer (if you work as a programmer) or your 326 | school, if any, to sign a "copyright disclaimer" for the program, if 327 | necessary. Here is a sample; alter the names: 328 | 329 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program 330 | `Gnomovision' (which makes passes at compilers) written by James Hacker. 331 | 332 | , 1 April 1989 333 | Ty Coon, President of Vice 334 | 335 | This General Public License does not permit incorporating your program into 336 | proprietary programs. If your program is a subroutine library, you may 337 | consider it more useful to permit linking proprietary applications with the 338 | library. If this is what you want to do, use the GNU Lesser General 339 | Public License instead of this License. 340 | 341 | -------------------------------------------------------------------------------- /systeminfos.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | LC_ALL=C 3 | LANG=C 4 | LANGUAGE=C 5 | serverURI=https://systeminfo.tuxedo.de/systeminfo.php 6 | infoFileName=systeminfos.txt 7 | lspciFileName=lspcioutput.txt 8 | udevFileName=udevoutput.txt 9 | logFileName=logoutput.txt 10 | normalpackagesFileName=normalpackagesoutput.txt 11 | flatpakpackagesFileName=flatpakpackagesoutput.txt 12 | snappackagesFileName=snappackagesoutput.txt 13 | audioFileName=audiooutput.txt 14 | networkFileName=networkoutput.txt 15 | boardFileName=boardoutput.txt 16 | firmwareFileName=firmwareoutput.txt 17 | tccFileName=tccoutput.txt 18 | modprobeFileName=modprobeoutput.txt 19 | securebootFileName=securebootoutput.txt 20 | tomteFileName=tomteoutput.txt 21 | displayFileName=displayoutput.txt 22 | failogFilename=failogoutput.txt 23 | started=$(date +"%Y-%m-%d %H:%M %Z %:z") 24 | ticketnumber=$1 25 | 26 | if [ $SYSINFOS_DEBUG -eq 1 ]; then 27 | printf "Running in debug mode\n" 28 | else 29 | SYSINFOS_DEBUG=0 30 | fi 31 | 32 | if [ "$(id -u)" -ne 0 ]; then 33 | printf "\e[31msysteminfos.sh muss mit root Rechten ausgefuehrt werden! / systeminfos.sh must be executed with root privileges! \e[1m\n" 34 | printf "\e[37m\e[0m\n" 35 | exec sudo --preserve-env="XDG_SESSION_TYPE,XDG_CURRENT_DESKTOP" su -c "sh '$(basename $0)' $1" 36 | fi 37 | 38 | # NOTE: SYSINFOS_DEBUG is only for internal testing purposes. 39 | if [ $SYSINFOS_DEBUG -eq 1 ]; then 40 | printf "Running in debug mode\n" 41 | else 42 | # Check Internet connection 43 | printf "Ueberpruefe Internetverbindung... / Checking Internet connection... \n" 44 | scriptisonline=$(curl -o /dev/null -I -L -s -w "%{http_code}" https://www.tuxedocomputers.com) 45 | if [ $scriptisonline -eq 200 ]; then 46 | printf "\e[32mOnline\e[0m\n" 47 | printf "\e[37m\e[0m\n" 48 | else 49 | printf "\e[31mOffline! Um das Skript ausfuehren zu koennen ist eine Internetverbindung erforderlich! / Offline! An internet connection is required to run the script! \e[1m\n" 50 | printf "Sollten Sie sich in einem Firmennetzwerk befinden, führen Sie das Skript bitte außerhalb des Firmennetzwerkes erneut aus. / If you are in a corporate network, please run the script again outside the corporate network. \n" 51 | printf "In manchen Firmennetzwerken werden Skripte als nicht vertrauenswürdig eingestuft und blockiert. / In some corporate networks, scripts are classified as untrusted and blocked. \n" 52 | printf "\e[37m\e[0m\n" 53 | exit 1 54 | fi 55 | 56 | # clear terminal window before printing messages 57 | clear 58 | 59 | if [ "$(. /etc/default/locale; echo $LANG)" = "de_DE.UTF-8" ]; then 60 | printf "Das Skript sammelt keinerlei persönliche Daten und keine Zugangsdaten! \n" 61 | printf "Es werden lediglich Informationen über Ihre Hard- und Softwarekonfiguration gesammelt. \n" 62 | printf "Bitte beachten Sie, dass Sie nur für TUXEDO OS und Ubuntu technischen Support von TUXEDO Computers erhalten. \n" 63 | printf "Eventuell auftauchende Fehlermeldungen können Sie ignorieren. \n" 64 | else 65 | printf "The script does not collect any personal data and no access data! \n" 66 | printf "Only information about your hardware and software configuration is collected. \n" 67 | printf "Please note that you will only receive technical support for TUXEDO OS and Ubuntu from TUXEDO Computers. \n" 68 | printf "You can ignore any error messages that may appear. \n" 69 | fi 70 | 71 | # 5 seconds before next textbox. Clear screen again before next textbox appears 72 | sleep 5 73 | clear 74 | 75 | if [ "$(. /etc/default/locale; echo $LANG)" = "de_DE.UTF-8" ]; then 76 | printf "Wie lautet Ihre Ticketnummer? Mit [ENTER] bestätigen \n" 77 | printf "Die Ticketnummer beginnt mit 99 und ist neun Stellen lang \n" 78 | printf "Eingesendete Systeminformationen ohne gültige Ticketnummer können nicht bearbeitet werden und werden unbearbeitet geschlossen \n" 79 | printf "Um eine Ticketnummer zu erhalten, schreiben Sie uns eine E-Mail an tux[at]tuxedocomputer.com mit Ihrem Anliegen. \n" 80 | else 81 | printf "What is your ticket number? Confirm with [ENTER] \n" 82 | printf "The ticket number starts with 99 and is nine digits long \n" 83 | printf "Submitted system information without a valid ticket number can't be processed and will be closed unprocessed \n" 84 | printf "To get an ticket number you can contact us by e-mail to tux[at]tuxedocomputers.com \n" 85 | fi 86 | 87 | if [ -z $ticketnumber ]; then 88 | read -p "Ticket#: " ticketnumber 89 | if [ -z $ticketnumber ]; then 90 | printf "\e[31mKeine Tickernummer angegeben. Beende. / No ticket number given. Quitting. \e[1m\n" 91 | printf "\e[37m\e[0m\n" 92 | exit 1 93 | fi 94 | fi 95 | fi 96 | 97 | if [ "$(. /etc/os-release; echo $NAME)" = "TUXEDO OS" ]; then 98 | apt-get update && apt-get -y install curl zip nvme-cli edid-decode efibootmgr lm-sensors jq > /dev/null 2>&1 99 | printf "Installiere benoetigte Abhaengigkeiten. Bitte warten... / Install required dependencies. Please wait... \n" 100 | elif [ "$(. /etc/os-release; echo $NAME)" = "Ubuntu" ]; then 101 | apt-get update && apt-get -y install curl zip nvme-cli edid-decode efibootmgr lm-sensors jq > /dev/null 2>&1 102 | printf "Installiere benoetigte Abhaengigkeiten. Bitte warten... / Install required dependencies. Please wait... \n" 103 | elif [ "$(. /etc/os-release; echo $NAME)" = "elementary OS" ]; then 104 | apt-get update && apt-get -y install curl zip nvme-cli edid-decode efibootmgr lm-sensors jq > /dev/null 2>&1 105 | printf "Installiere benoetigte Abhaengigkeiten. Bitte warten... / Install required dependencies. Please wait... \n" 106 | elif [ "$(. /etc/os-release; echo $NAME)" = "KDE neon" ]; then 107 | apt-get update && apt-get -y install curl zip nvme-cli edid-decode efibootmgr lm-sensors jq > /dev/null 2>&1 108 | printf "Installiere benoetigte Abhaengigkeiten. Bitte warten... / Install required dependencies. Please wait... \n" 109 | elif [ "$(. /etc/os-release; echo $NAME)" = "Linux Mint" ]; then 110 | apt-get update && apt-get -y install curl zip nvme-cli edid-decode efibootmgr lm-sensors jq > /dev/null 2>&1 111 | printf "Installiere benoetigte Abhaengigkeiten. Bitte warten... / Install required dependencies. Please wait... \n" 112 | elif [ "$(. /etc/os-release; echo $NAME)" = "openSUSE Leap" ]; then 113 | zypper in -y curl zip nvme-cli edid-decode efibootmgr lm_sensors jq > /dev/null 2>&1 114 | printf "Installiere benoetigte Abhaengigkeiten. Bitte warten... / Install required dependencies. Please wait... \n" 115 | elif [ "$(. /etc/os-release; echo $NAME)" = "Fedora Linux" ]; then 116 | dnf in -y curl zip nvme-cli edid-decode efibootmgr lm_sensors jq > /dev/null 2>&1 117 | printf "Installiere benoetigte Abhaengigkeiten. Bitte warten... / Install required dependencies. Please wait... \n" 118 | elif [ "$(. /etc/os-release; echo $NAME)" = "Manjaro Linux" ]; then 119 | pacman -Sy --noconfirm curl zip nvme-cli edid-decode efibootmgr lm_sensors jq > /dev/null 2>&1 120 | printf "Installiere benoetigte Abhaengigkeiten. Bitte warten... / Install required dependencies. Please wait... \n" 121 | else 122 | printf "Nicht unterstuetze Distribution! Ueberspringe... / Unsupported Distribution! Skipping... \n" 123 | fi 124 | 125 | 126 | printf "\n" 127 | if [ $SYSINFOS_DEBUG -eq 1 ]; then 128 | printf "Running in debug mode\n" 129 | else 130 | echo 'Ticketnummer: ' $ticketnumber | tee -a $infoFileName $lspciFileName $udevFileName $logFileName $normalpackagesFileName $audioFileName $networkFileName $boardFileName $firmwareFileName $tccFileName $modprobeFileName $securebootFileName $tomteFileName $displayFileName $failogFilename $flatpakpackagesFileName $snappackagesFileName > /dev/null 2>&1 131 | fi 132 | echo 'systeminfos.sh started at' $started | tee -a $infoFileName $lspciFileName $udevFileName $logFileName $normalpackagesFileName $audioFileName $networkFileName $boardFileName $firmwareFileName $tccFileName $modprobeFileName $securebootFileName $tomteFileName $displayFileName $failogFilename $flatpakpackagesFileName $snappackagesFileName > /dev/null 2>&1 133 | printf "\n\n" | tee -a $infoFileName $lspciFileName $udevFileName $logFileName $normalpackagesFileName $audioFileName $networkFileName $boardFileName $firmwareFileName $tccFileName $modprobeFileName $securebootFileName $tomteFileName $displayFileName $failogFilename $flatpakpackagesFileName $snappackagesFileName > /dev/null 2>&1 134 | 135 | ### $infoFileName Section 136 | 137 | printf "uname -a\n\n" >> $infoFileName 138 | uname -a >> $infoFileName 139 | 140 | printf "\n\n\n" >> $infoFileName 141 | 142 | printf "lsb_release -a\n\n" >> $infoFileName 143 | lsb_release -a >> $infoFileName 144 | 145 | printf "\n\n\n" >> $infoFileName 146 | 147 | printf "lscpu\n\n" >> $infoFileName 148 | lscpu >> $infoFileName 149 | 150 | printf "\n\n\n" >> $infoFileName 151 | 152 | printf "lscpu -e\n\n" >> $infoFileName 153 | lscpu -e >> $infoFileName 154 | 155 | printf "\n\n\n" >> $infoFileName 156 | 157 | printf "free -h\n\n" >> $infoFileName 158 | free -h >> $infoFileName 159 | 160 | printf "\n\n\n" >> $infoFileName 161 | 162 | printf "/sys/power/mem_sleep\n\n" >> $infoFileName 163 | cat /sys/power/mem_sleep >> $infoFileName 164 | 165 | printf "\n\n\n" >> $infoFileName 166 | 167 | printf "lsusb\n\n" >> $infoFileName 168 | lsusb >> $infoFileName 169 | 170 | printf "\n\n\n" >> $infoFileName 171 | 172 | printf "lsblk\n\n" >> $infoFileName 173 | lsblk -d -o NAME,SIZE,TYPE,TRAN >> $infoFileName 174 | 175 | printf "\n\n\n" >> $infoFileName 176 | 177 | printf "fstab\n\n" >> $infoFileName 178 | egrep -iv "cifs|nfs|davfs|http" /etc/fstab >> $infoFileName 179 | 180 | printf "\n\n\n" >> $infoFileName 181 | 182 | printf "disk usage (df -h)\n\n" >> $infoFileName 183 | df -h >> $infoFileName 184 | 185 | printf "\n\n\n" >> $infoFileName 186 | 187 | printf "xinput\n\n" >> $infoFileName 188 | xinput >> $infoFileName 189 | 190 | printf "\n\n\n" >> $infoFileName 191 | 192 | printf "/etc/default/grub\n\n" >> $infoFileName 193 | cat /etc/default/grub >> $infoFileName 194 | 195 | printf "\n\n\n" >> $infoFileName 196 | 197 | printf "/etc/default/grub.d\n\n" >> $infoFileName 198 | cat /etc/default/grub.d/* >> $infoFileName 199 | 200 | printf "\n\n\n" >> $infoFileName 201 | 202 | printf "lsmod\n\n" >> $infoFileName 203 | lsmod >> $infoFileName 204 | 205 | printf "\n\n\n" >> $infoFileName 206 | 207 | if [ -f /etc/modprobe.d/tuxedo_keyboard.conf ]; then 208 | printf "tuxedo_keyboard.conf\n\n" >> $infoFileName 209 | cat /etc/modprobe.d/tuxedo_keyboard.conf >> $infoFileName 210 | printf "\n\n\n" >> $infoFileName 211 | 212 | else 213 | printf "TUXEDO Keyboard scheint nicht installiert zu sein" >> $infoFileName 214 | printf "\n\n\n" >> $infoFileName 215 | 216 | fi 217 | 218 | printf "dkms status\n\n" >> $infoFileName 219 | dkms status >> $infoFileName 220 | 221 | printf "\n\n\n" >> $infoFileName 222 | 223 | printf "upower -d\n\n" >> $infoFileName 224 | upower -d >> $infoFileName 225 | 226 | printf "\n\n\n" >> $infoFileName 227 | 228 | printf "prime-select query\n\n" >> $infoFileName 229 | prime-select query >> $infoFileName 230 | 231 | printf "\n\n\n" >> $infoFileName 232 | 233 | printf "XDG_SESSION_TYPE\n\n" >> $infoFileName 234 | echo $XDG_SESSION_TYPE >> $infoFileName 235 | 236 | printf "\n\n\n" >> $infoFileName 237 | 238 | printf "Desktop\n\n" >> $infoFileName 239 | echo $XDG_CURRENT_DESKTOP >> $infoFileName 240 | 241 | printf "\n\n\n" >> $infoFileName 242 | 243 | printf "Display-Manager\n\n" >> $infoFileName 244 | cat /etc/systemd/system/display-manager.service >> $infoFileName 245 | 246 | printf "\n\n\n" >> $infoFileName 247 | 248 | printf "xrandr\n\n" >> $infoFileName 249 | xrandr >> $infoFileName 250 | 251 | printf "\n\n\n" >> $infoFileName 252 | 253 | printf "lshw\n\n" >> $infoFileName 254 | lshw >> $infoFileName 255 | 256 | printf "\n\n\n" >> $infoFileName 257 | 258 | printf "journalctl -k --grep=tpm\n\n" >> $infoFileName 259 | journalctl -k --grep=tpm >> $infoFileName 260 | 261 | printf "\n\n\n" >> $infoFileName 262 | 263 | if [ -d /sys/class/nvme ]; then 264 | printf "nvme list\n\n" >> $infoFileName 265 | nvme list >> $infoFileName 266 | printf "\n\n\n" >> $infoFileName 267 | fi 268 | 269 | if [ -d /sys/firmware/efi ]; then 270 | printf "efibootmgr\n\n" >> $infoFileName 271 | efibootmgr -v >> $infoFileName 272 | printf "\n\n\n" >> $infoFileName 273 | else 274 | printf "Es wird Legacy genutzt" >> $infoFileName 275 | printf "\n\n\n" >> $infoFileName 276 | fi 277 | 278 | printf "lm-sensors\n\n" >> $infoFileName 279 | sensors >> $infoFileName 280 | 281 | printf "\n\n\n" >> $infoFileName 282 | 283 | if [ -f /sys/devices/platform/tuxedo_keyboard/charging_profile/charging_profile ]; then 284 | printf "charging_profile\n\n" >> $infoFileName 285 | cat /sys/devices/platform/tuxedo_keyboard/charging_profile/charging_profile >> $infoFileName 286 | printf "\n\n\n" >> $infoFileName 287 | 288 | else 289 | printf "Modell unterstuetzt kein charging_profile" >> $infoFileName 290 | printf "\n\n\n" >> $infoFileName 291 | 292 | fi 293 | 294 | if [ -f /sys/devices/platform/tuxedo_keyboard/charging_priority/charging_prio ]; then 295 | printf "charging_prio\n\n" >> $infoFileName 296 | cat /sys/devices/platform/tuxedo_keyboard/charging_priority/charging_prio >> $infoFileName 297 | printf "\n\n\n" >> $infoFileName 298 | 299 | else 300 | printf "Modell unterstuetzt kein charging_prio" >> $infoFileName 301 | printf "\n\n\n" >> $infoFileName 302 | 303 | fi 304 | 305 | if [ -f /sys/class/power_supply/BAT*/charge_type ]; then 306 | printf "charge_type\n\n" >> $infoFileName 307 | cat /sys/class/power_supply/BAT*/charge_type >> $infoFileName 308 | printf "\n\n\n" >> $infoFileName 309 | 310 | printf "charge_control_start_threshold\n\n" >> $infoFileName 311 | cat /sys/class/power_supply/BAT*/charge_control_start_threshold >> $infoFileName 312 | printf "\n\n\n" >> $infoFileName 313 | 314 | printf "charge_control_end_threshold\n\n" >> $infoFileName 315 | cat /sys/class/power_supply/BAT*/charge_control_end_threshold >> $infoFileName 316 | printf "\n\n\n" >> $infoFileName 317 | 318 | printf "available_start_thresholds\n\n" >> $infoFileName 319 | cat /sys/class/power_supply/BAT*/charge_control_start_available_thresholds >> $infoFileName 320 | printf "\n\n\n" >> $infoFileName 321 | 322 | printf "available_end_thresholds\n\n" >> $infoFileName 323 | cat /sys/class/power_supply/BAT*/charge_control_end_available_thresholds >> $infoFileName 324 | printf "\n\n\n" >> $infoFileName 325 | 326 | else 327 | printf "Modell unterstuetzt kein Flexicharger" >> $infoFileName 328 | printf "\n\n\n" >> $infoFileName 329 | 330 | fi 331 | 332 | if [ -d /etc/default/grub.d ]; then 333 | printf "ls -lah /etc/default/grub.d\n\n" >> $infoFileName 334 | ls -lah /etc/default/grub.d >> $infoFileName 335 | printf "\n\n\n" >> $infoFileName 336 | cat /etc/default/grub.d/* >> $infoFileName 337 | printf "\n\n\n" >> $infoFileName 338 | fi 339 | 340 | ### $logFileName Section 341 | 342 | if [ -f /var/log/tuxedo-install.log ]; then 343 | cat /var/log/tuxedo-install.log >> $failogFilename 344 | 345 | else 346 | printf "WebFAI Install-Log konnte nicht gefunden werden.\n" >> $failogFilename 347 | printf "Moeglicherweise handelt es sich um keine WebFAI Installation.\n" >> $failogFilename 348 | 349 | fi 350 | 351 | if [ -f /var/log/fai-tomte.log ]; then 352 | printf "cat /var/log/fai-tomte.log\n\n" >> $logFileName 353 | cat /var/log/fai-tomte.log >> $logFileName 354 | printf "\n\n\n" >> $logFileName 355 | 356 | else 357 | printf "Tomte FAI Log konnte nicht gefunden werden.\n" >> $logFileName 358 | printf "Moeglicherweise handelt es sich nicht um eine WebFAI Installation oder diese Distribution wird nicht von Tomte unterstuetzt.\n" >> $logFileName 359 | printf "\n\n\n" >> $logFileName 360 | 361 | fi 362 | 363 | if [ -f /var/log/tomte/tomte.log ]; then 364 | printf "/var/log/tomte/tomte.log\n\n" >> $logFileName 365 | tail --lines=1000 /var/log/tomte/tomte.log >> $logFileName 366 | printf "\n\n\n" >> $logFileName 367 | 368 | else 369 | printf "Tomte Log konnte nicht gefunden werden.\n" >> $logFileName 370 | printf "Moeglicherweise ist Tomte nicht installiert.\n" >> $logFileName 371 | printf "\n\n\n" >> $logFileName 372 | 373 | fi 374 | 375 | printf "/var/log/syslog\n\n" >> $logFileName 376 | tail --lines=1000 /var/log/syslog >> $logFileName 377 | 378 | printf "\n\n\n\n\n" >> $logFileName 379 | 380 | printf "journalctl --system -e\n\n" >> $logFileName 381 | journalctl --system -e >> $logFileName 382 | 383 | printf "\n\n\n\n\n" >> $logFileName 384 | 385 | printf "/var/log/boot.log\n\n" >> $logFileName 386 | tail --lines=1000 /var/log/boot.log >> $logFileName 387 | 388 | printf "\n\n\n\n\n" >> $logFileName 389 | 390 | printf "/var/log/Xorg.0.log\n\n" >> $logFileName 391 | if [ $(wc --lines /var/log/Xorg.0.log | cut --delimiter=" " --fields=1) -le 2500 ]; then 392 | cat /var/log/Xorg.0.log >> $logFileName 393 | else 394 | head --lines=1250 /var/log/Xorg.0.log >> $logFileName 395 | echo [...] >> $logFileName 396 | tail --lines=1250 /var/log/Xorg.0.log >> $logFileName 397 | fi 398 | 399 | printf "\n\n\n\n\n" >> $logFileName 400 | 401 | printf "dmesg\n\n" >> $logFileName 402 | dmesg >> $logFileName 403 | 404 | printf "\n\n\n\n\n" >> $logFileName 405 | 406 | printf "systemctl status systemd-modules-load.service\n\n" >> $logFileName 407 | systemctl status systemd-modules-load.service >> $logFileName 408 | 409 | ### $boardFileName Section 410 | 411 | printf "BIOS date and time\n\n" >> $boardFileName 412 | cat /sys/class/rtc/rtc0/date >> $boardFileName 413 | printf "\n" >> $boardFileName 414 | cat /sys/class/rtc/rtc0/time >> $boardFileName 415 | 416 | printf "\n\n\n" >> $infoFileName 417 | 418 | printf "find /sys/class/dmi/id/ -maxdepth 1 -type f -print -exec cat {} \; -exec echo \;\n\n" >> $boardFileName 419 | find /sys/class/dmi/id/ -maxdepth 1 -type f -print -exec cat {} \; -exec echo \; >> $boardFileName 420 | 421 | printf "\n\n\n" >> $boardFileName 422 | 423 | printf "dmidecode -t memory\n\n" >> $boardFileName 424 | dmidecode -t memory >> $boardFileName 425 | 426 | printf "\n\n\n" >> $boardFileName 427 | 428 | printf "dmidecode\n\n" >> $boardFileName 429 | dmidecode >> $boardFileName 430 | 431 | ### $lspciFileName Section 432 | 433 | printf "lspci -vvnn\n\n" >> $lspciFileName 434 | lspci -vvnn >> $lspciFileName 435 | 436 | ### $audioFileName Section 437 | 438 | printf "aplay -l\n\n" >> $audioFileName 439 | aplay -l >> $audioFileName 440 | 441 | printf "\n\n\n" >> $audioFileName 442 | 443 | printf "echo 1 > /sys/module/snd_hda_codec/parameters/dump_coef\n" >> $audioFileName 444 | printf "cat /proc/asound/card*/codec*\n\n" >> $audioFileName 445 | echo 1 > /sys/module/snd_hda_codec/parameters/dump_coef 446 | cat /proc/asound/card*/codec* >> $audioFileName 447 | 448 | printf "\n\n\n" >> $audioFileName 449 | 450 | printf "lspci -v | grep -A7 -i "audio"\n\n" >> $audioFileName 451 | lspci -v | grep -A7 -i "audio" >> $audioFileName 452 | 453 | printf "\n\n\n" >> $audioFileName 454 | 455 | printf "pacmd list-sink-inputs\n\n" >> $audioFileName 456 | pacmd list-sink-inputs >> $audioFileName 457 | 458 | printf "\n\n\n" >> $audioFileName 459 | 460 | printf "pa-info\n\n" >> $audioFileName 461 | pa-info >> $audioFileName 462 | 463 | printf "\n\n\n" >> $audioFileName 464 | 465 | printf "arecord -l\n\n" >> $audioFileName 466 | arecord -l >> $audioFileName 467 | 468 | printf "\n\n\n" >> $audioFileName 469 | 470 | printf "fuser -v /dev/snd/*\n\n" >> $audioFileName 471 | fuser -v /dev/snd/* >> $audioFileName 472 | 473 | ### $networkFileName Section 474 | 475 | printf "\n\n\n" >> $networkFileName 476 | 477 | echo 'lspci -nnk | grep -E -A3 -i "Ethernet|Network"' >> $networkFileName 478 | printf "\n\n" >> $networkFileName 479 | lspci -nnk | grep -E -A3 -i "Ethernet|Network" >> $networkFileName 480 | 481 | printf "\n\n\n" >> $networkFileName 482 | 483 | printf "ip addr show\n\n" >> $networkFileName 484 | ip addr show >> $networkFileName 485 | 486 | printf "\n\n\n" >> $networkFileName 487 | 488 | printf "ip route show\n\n" >> $networkFileName 489 | ip route show >> $networkFileName 490 | 491 | printf "\n\n\n" >> $networkFileName 492 | 493 | printf "rfkill list\n\n" >> $networkFileName 494 | rfkill list >> $networkFileName 495 | 496 | printf "\n\n\n" >> $networkFileName 497 | 498 | printf "iwconfig\n\n" >> $networkFileName 499 | iwconfig >> $networkFileName 500 | 501 | printf "\n\n\n" >> $networkFileName 502 | 503 | printf "mmcli\n\n" >> $networkFileName 504 | mmcli -m 0 | grep -v -e "imei:*" -e "equipment id:*" >> $networkFileName 505 | 506 | ### $normalpackagesFileName Section 507 | 508 | printf "\n\n\n" >> $normalpackagesFileName 509 | 510 | # TUXEDO_OS 511 | if [ "$(. /etc/os-release; echo $NAME)" = "TUXEDO OS" ]; then 512 | 513 | printf "sources.list\n\n" >> $normalpackagesFileName 514 | cat /etc/apt/sources.list >> $normalpackagesFileName 515 | 516 | printf "\n\n\n" >> $normalpackagesFileName 517 | 518 | printf "/etc/apt/sources.list.d\n\n" >> $normalpackagesFileName 519 | ls /etc/apt/sources.list.d >> $normalpackagesFileName 520 | 521 | printf "\n\n\n" >> $normalpackagesFileName 522 | 523 | if [ "$(. /etc/os-release; echo $VERSION_ID)" = "24.04" ]; then 524 | printf "/etc/apt/sources.list.d ppa\n\n" >> $normalpackagesFileName 525 | awk 'FNR==1{print ""}1' /etc/apt/sources.list.d/*.sources >> $normalpackagesFileName 526 | else 527 | printf "/etc/apt/sources.list.d ppa\n\n" >> $normalpackagesFileName 528 | cat /etc/apt/sources.list.d/* >> $normalpackagesFileName 529 | fi 530 | 531 | printf "\n\n\n" >> $normalpackagesFileName 532 | 533 | printf "dpkg -l\n\n" >> $normalpackagesFileName 534 | dpkg -l >> $normalpackagesFileName 535 | 536 | printf "\n\n\n" >> $normalpackagesFileName 537 | 538 | printf "dpkg -l | grep tuxedo\n\n" >> $normalpackagesFileName 539 | dpkg -l|grep tuxedo >> $normalpackagesFileName 540 | 541 | printf "\n\n\n" >> $normalpackagesFileName 542 | 543 | printf "dpkg -l | grep nvidia\n\n" >> $normalpackagesFileName 544 | dpkg -l|grep nvidia >> $normalpackagesFileName 545 | 546 | printf "\n\n\n" >> $normalpackagesFileName 547 | 548 | printf "/var/log/apt/history.log\n\n" >> $normalpackagesFileName 549 | cat /var/log/apt/history.log >> $normalpackagesFileName 550 | 551 | # Ubuntu 552 | elif [ "$(. /etc/os-release; echo $NAME)" = "Ubuntu" ]; then 553 | 554 | printf "sources.list\n\n" >> $normalpackagesFileName 555 | cat /etc/apt/sources.list >> $normalpackagesFileName 556 | 557 | printf "\n\n\n" >> $normalpackagesFileName 558 | 559 | printf "/etc/apt/sources.list.d\n\n" >> $normalpackagesFileName 560 | ls /etc/apt/sources.list.d >> $normalpackagesFileName 561 | 562 | printf "\n\n\n" >> $normalpackagesFileName 563 | 564 | if [ "$(. /etc/os-release; echo $VERSION_ID)" = "24.04" ]; then 565 | printf "/etc/apt/sources.list.d ppa\n\n" >> $normalpackagesFileName 566 | awk 'FNR==1{print ""}1' /etc/apt/sources.list.d/*.sources >> $normalpackagesFileName 567 | else 568 | printf "/etc/apt/sources.list.d ppa\n\n" >> $normalpackagesFileName 569 | cat /etc/apt/sources.list.d/* >> $normalpackagesFileName 570 | fi 571 | 572 | printf "\n\n\n" >> $normalpackagesFileName 573 | 574 | printf "dpkg -l\n\n" >> $normalpackagesFileName 575 | dpkg -l >> $normalpackagesFileName 576 | 577 | printf "\n\n\n" >> $normalpackagesFileName 578 | 579 | printf "dpkg -l | grep tuxedo\n\n" >> $normalpackagesFileName 580 | dpkg -l|grep tuxedo >> $normalpackagesFileName 581 | 582 | printf "\n\n\n" >> $normalpackagesFileName 583 | 584 | printf "dpkg -l | grep nvidia\n\n" >> $normalpackagesFileName 585 | dpkg -l|grep nvidia >> $normalpackagesFileName 586 | 587 | printf "\n\n\n" >> $normalpackagesFileName 588 | 589 | printf "/var/log/apt/history.log\n\n" >> $normalpackagesFileName 590 | cat /var/log/apt/history.log >> $normalpackagesFileName 591 | 592 | # elementary OS 593 | elif [ "$(. /etc/os-release; echo $NAME)" = "elementary OS" ]; then 594 | 595 | printf "sources.list\n\n" >> $normalpackagesFileName 596 | cat /etc/apt/sources.list >> $normalpackagesFileName 597 | 598 | printf "\n\n\n" >> $normalpackagesFileName 599 | 600 | printf "/etc/apt/sources.list.d\n\n" >> $normalpackagesFileName 601 | ls /etc/apt/sources.list.d >> $normalpackagesFileName 602 | 603 | printf "\n\n\n" >> $normalpackagesFileName 604 | 605 | printf "/etc/apt/sources.list.d ppa\n\n" >> $normalpackagesFileName 606 | cat /etc/apt/sources.list.d/* >> $normalpackagesFileName 607 | 608 | printf "\n\n\n" >> $normalpackagesFileName 609 | 610 | printf "dpkg -l\n\n" >> $normalpackagesFileName 611 | dpkg -l >> $normalpackagesFileName 612 | 613 | printf "\n\n\n" >> $normalpackagesFileName 614 | 615 | printf "dpkg -l | grep tuxedo\n\n" >> $normalpackagesFileName 616 | dpkg -l|grep tuxedo >> $normalpackagesFileName 617 | 618 | printf "\n\n\n" >> $normalpackagesFileName 619 | 620 | printf "dpkg -l | grep nvidia\n\n" >> $normalpackagesFileName 621 | dpkg -l|grep nvidia >> $normalpackagesFileName 622 | 623 | printf "\n\n\n" >> $normalpackagesFileName 624 | 625 | printf "/var/log/apt/history.log\n\n" >> $normalpackagesFileName 626 | cat /var/log/apt/history.log >> $normalpackagesFileName 627 | 628 | # KDE neon 629 | elif [ "$(. /etc/os-release; echo $NAME)" = "KDE neon" ]; then 630 | 631 | printf "sources.list\n\n" >> $normalpackagesFileName 632 | cat /etc/apt/sources.list >> $normalpackagesFileName 633 | 634 | printf "\n\n\n" >> $normalpackagesFileName 635 | 636 | printf "/etc/apt/sources.list.d\n\n" >> $normalpackagesFileName 637 | ls /etc/apt/sources.list.d >> $normalpackagesFileName 638 | 639 | printf "\n\n\n" >> $normalpackagesFileName 640 | 641 | printf "/etc/apt/sources.list.d ppa\n\n" >> $normalpackagesFileName 642 | cat /etc/apt/sources.list.d/* >> $normalpackagesFileName 643 | 644 | printf "\n\n\n" >> $normalpackagesFileName 645 | 646 | printf "dpkg -l\n\n" >> $normalpackagesFileName 647 | dpkg -l >> $normalpackagesFileName 648 | 649 | printf "\n\n\n" >> $normalpackagesFileName 650 | 651 | printf "dpkg -l | grep tuxedo\n\n" >> $normalpackagesFileName 652 | dpkg -l|grep tuxedo >> $normalpackagesFileName 653 | 654 | printf "\n\n\n" >> $normalpackagesFileName 655 | 656 | printf "dpkg -l | grep nvidia\n\n" >> $normalpackagesFileName 657 | dpkg -l|grep nvidia >> $normalpackagesFileName 658 | 659 | printf "\n\n\n" >> $normalpackagesFileName 660 | 661 | printf "/var/log/apt/history.log\n\n" >> $normalpackagesFileName 662 | cat /var/log/apt/history.log >> $normalpackagesFileName 663 | 664 | # Linux Mint 665 | elif [ "$(. /etc/os-release; echo $NAME)" = "Linux Mint" ]; then 666 | 667 | printf "sources.list\n\n" >> $normalpackagesFileName 668 | cat /etc/apt/sources.list >> $normalpackagesFileName 669 | 670 | printf "\n\n\n" >> $normalpackagesFileName 671 | 672 | printf "/etc/apt/sources.list.d\n\n" >> $normalpackagesFileName 673 | ls /etc/apt/sources.list.d >> $normalpackagesFileName 674 | 675 | printf "\n\n\n" >> $normalpackagesFileName 676 | 677 | printf "/etc/apt/sources.list.d ppa\n\n" >> $normalpackagesFileName 678 | cat /etc/apt/sources.list.d/* >> $normalpackagesFileName 679 | 680 | printf "\n\n\n" >> $normalpackagesFileName 681 | 682 | printf "dpkg -l\n\n" >> $normalpackagesFileName 683 | dpkg -l >> $normalpackagesFileName 684 | 685 | printf "\n\n\n" >> $normalpackagesFileName 686 | 687 | printf "dpkg -l | grep tuxedo\n\n" >> $normalpackagesFileName 688 | dpkg -l|grep tuxedo >> $normalpackagesFileName 689 | 690 | printf "\n\n\n" >> $normalpackagesFileName 691 | 692 | printf "dpkg -l | grep nvidia\n\n" >> $normalpackagesFileName 693 | dpkg -l|grep nvidia >> $normalpackagesFileName 694 | 695 | printf "\n\n\n" >> $normalpackagesFileName 696 | 697 | printf "/var/log/apt/history.log\n\n" >> $normalpackagesFileName 698 | cat /var/log/apt/history.log >> $normalpackagesFileName 699 | 700 | 701 | # openSUSE 702 | elif [ "$(. /etc/os-release; echo $NAME)" = "openSUSE Leap" ]; then 703 | 704 | printf "/etc/zypp/repos.d\n\n" >> $normalpackagesFileName 705 | ls -al /etc/zypp/repos.d/ >> $normalpackagesFileName 706 | 707 | printf "\n\n\n" >> $normalpackagesFileName 708 | 709 | printf "zypper sources lists\n\n" >> $normalpackagesFileName 710 | cat /etc/zypp/repos.d/* >> $normalpackagesFileName 711 | 712 | printf "\n\n\n" >> $normalpackagesFileName 713 | 714 | printf "rpm -qa\n\n" >> $normalpackagesFileName 715 | rpm -qa >> $normalpackagesFileName 716 | 717 | printf "\n\n\n" >> $normalpackagesFileName 718 | 719 | printf "rpm -qa | grep tuxedo\n\n" >> $normalpackagesFileName 720 | rpm -qa | grep tuxedo >> $normalpackagesFileName 721 | 722 | printf "\n\n\n" >> $normalpackagesFileName 723 | 724 | printf "rpm -qa | grep nvidia\n\n" >> $normalpackagesFileName 725 | rpm -qa | grep nvidia >> $normalpackagesFileName 726 | 727 | printf "\n\n\n" >> $normalpackagesFileName 728 | 729 | printf "/var/log/zypp/history\n\n" >> $normalpackagesFileName 730 | cat /var/log/zypp/history >> $normalpackagesFileName 731 | 732 | # Fedora 733 | elif [ "$(. /etc/os-release; echo $NAME)" = "Fedora Linux" ]; then 734 | 735 | printf "/etc/yum.repos.d\n\n" >> $normalpackagesFileName 736 | ls -al /etc/yum.repos.d/ >> $normalpackagesFileName 737 | 738 | printf "\n\n\n" >> $normalpackagesFileName 739 | 740 | printf "dnf sources lists\n\n" >> $normalpackagesFileName 741 | cat /etc/yum.repos.d/* >> $normalpackagesFileName 742 | 743 | printf "\n\n\n" >> $normalpackagesFileName 744 | 745 | printf "rpm -qa\n\n" >> $normalpackagesFileName 746 | rpm -qa >> $normalpackagesFileName 747 | 748 | printf "\n\n\n" >> $normalpackagesFileName 749 | 750 | printf "rpm -qa | grep tuxedo\n\n" >> $normalpackagesFileName 751 | rpm -qa | grep tuxedo >> $normalpackagesFileName 752 | 753 | printf "\n\n\n" >> $normalpackagesFileName 754 | 755 | printf "rpm -qa | grep nvidia\n\n" >> $normalpackagesFileName 756 | rpm -qa | grep nvidia >> $normalpackagesFileName 757 | 758 | printf "\n\n\n" >> $normalpackagesFileName 759 | 760 | printf "/var/log/dnf.log\n\n" >> $normalpackagesFileName 761 | cat /var/log/dnf.log >> $normalpackagesFileName 762 | 763 | printf "/var/log/dnf.librepo.log\n\n" >> $normalpackagesFileName 764 | cat /var/log/dnf.librepo.log >> $normalpackagesFileName 765 | 766 | printf "/var/log/dnf.rpm.log\n\n" >> $normalpackagesFileName 767 | cat /var/log/dnf.rpm.log >> $normalpackagesFileName 768 | 769 | # Manjaro 770 | elif [ "$(. /etc/os-release; echo $NAME)" = "Manjaro Linux" ]; then 771 | 772 | printf "cat /etc/pacman.conf" >> $normalpackagesFileName 773 | cat /etc/pacman.conf >> $normalpackagesFileName 774 | 775 | printf "\n\n\n" >> $normalpackagesFileName 776 | 777 | printf "pacman -Qqe" >> $normalpackagesFileName 778 | pacman -Qqe >> $normalpackagesFileName 779 | 780 | printf "pacman -Qqe | grep tuxedo" >> $normalpackagesFileName 781 | pacman -Qqe | grep tuxedo >> $normalpackagesFileName 782 | 783 | printf "\n\n\n" >> $normalpackagesFileName 784 | 785 | printf "pacman Repo's" >> $normalpackagesFileName 786 | cat /etc/pacman.conf | grep -E 'core|extra|community|multilib' >> $normalpackagesFileName 787 | 788 | printf "\n\n\n" >> $normalpackagesFileName 789 | 790 | cat /var/log/pacman.log >> $normalpackagesFileName 791 | printf "\n\n\n" >> $normalpackagesFileName 792 | 793 | else 794 | printf "Nicht unterstuetze Distribution! Ueberspringe...\n" 795 | printf "Unsupported Distribution! Skipping... \n\n\n" 796 | fi 797 | 798 | ### flatpakpackagesFileName 799 | 800 | printf "flatpak list --app --show-details\n\n" >> $flatpakpackagesFileName 801 | flatpak list >> $flatpakpackagesFileName 802 | 803 | ### snappackagesFileName 804 | 805 | printf "snap list\n\n" >> $snappackagesFileName 806 | snap list >> $snappackagesFileName 807 | 808 | ### $udevFileName Section 809 | 810 | printf "/etc/udev/rules.d/\n\n" >> $udevFileName 811 | ls /etc/udev/rules.d/ >> $udevFileName 812 | 813 | printf "\n\n\n" >> $udevFileName 814 | 815 | printf "/etc/udev/rules.d/ files\n\n" >> $udevFileName 816 | cat /etc/udev/rules.d/* >> $udevFileName 817 | 818 | printf "/lib/udev/rules.d/\n\n" >> $udevFileName 819 | ls /lib/udev/rules.d/ >> $udevFileName 820 | 821 | printf "\n\n\n" >> $udevFileName 822 | 823 | printf "/lib/udev/rules.d/ files\n\n" >> $udevFileName 824 | cat /lib/udev/rules.d/* >> $udevFileName 825 | 826 | # $firmwareFileName Section 827 | 828 | printf "ls -l /lib/firmware\n\n" >> $firmwareFileName 829 | ls -l /lib/firmware >> $firmwareFileName 830 | 831 | printf "\n\n\n" >> $firmwareFileName 832 | 833 | printf "dmesg|grep firmware\n\n" >> $firmwareFileName 834 | dmesg|grep firmware >> $firmwareFileName 835 | 836 | # $tccFileName Section 837 | 838 | printf "/etc/tcc/settings\n\n" >> $tccFileName 839 | cat /etc/tcc/settings | jq >> $tccFileName 840 | 841 | printf "\n\n\n" >> $tccFileName 842 | 843 | printf "/etc/tcc/profiless\n\n" >> $tccFileName 844 | cat /etc/tcc/profiles | jq >> $tccFileName 845 | 846 | printf "\n\n\n" >> $tccFileName 847 | 848 | printf "systemctl is-active tccd.service\n\n" >> $tccFileName 849 | systemctl is-active tccd.service >> $tccFileName 850 | 851 | # $modprobeFileName Section 852 | 853 | printf "/etc/modprobe.d/\n\n" >> $modprobeFileName 854 | ls /etc/modprobe.d/ >> $modprobeFileName 855 | 856 | printf "\n\n\n" >> $modprobeFileName 857 | 858 | printf "/etc/modprobe.d/ files\n\n" >> $modprobeFileName 859 | cat /etc/modprobe.d/* >> $modprobeFileName 860 | 861 | # $securebootFileName section 862 | 863 | printf "mokutil --sb-state\n\n" >> $securebootFileName 864 | mokutil --sb-state >> $securebootFileName 865 | 866 | printf "\n\n\n" >> $securebootFileName 867 | 868 | printf "mokutil --pk\n\n" >> $securebootFileName 869 | mokutil --pk >> $securebootFileName 870 | 871 | printf "\n\n\n" >> $securebootFileName 872 | 873 | printf "mokutil --kek\n\n" >> $securebootFileName 874 | mokutil --kek >> $securebootFileName 875 | 876 | printf "\n\n\n" >> $securebootFileName 877 | 878 | printf "mokutil --db\n\n" >> $securebootFileName 879 | mokutil --db >> $securebootFileName 880 | 881 | printf "\n\n\n" >> $securebootFileName 882 | 883 | printf "mokutil --dbx\n\n" >> $securebootFileName 884 | mokutil --dbx >> $securebootFileName 885 | 886 | printf "\n\n\n" >> $securebootFileName 887 | 888 | printf "mokutil --list-enrolled\n\n" >> $securebootFileName 889 | mokutil --list-enrolled >> $securebootFileName 890 | 891 | printf "\n\n\n" >> $securebootFileName 892 | 893 | printf "mokutil --list-new\n\n" >> $securebootFileName 894 | mokutil --list-new >> $securebootFileName 895 | 896 | printf "\n\n\n" >> $securebootFileName 897 | 898 | printf "mokutil --list-delete\n\n" >> $securebootFileName 899 | mokutil --list-delete >> $securebootFileName 900 | 901 | printf "\n\n\n" >> $securebootFileName 902 | 903 | printf "mokutil --mokx\n\n" >> $securebootFileName 904 | mokutil --mokx >> $securebootFileName 905 | 906 | printf "\n\n\n" >> $securebootFileName 907 | 908 | # $tomteFileName section 909 | 910 | printf "tuxedo-tomte list\n\n" >> $tomteFileName 911 | tuxedo-tomte list >> $tomteFileName 912 | 913 | printf "\n\n\n" >> $tomteFileName 914 | 915 | if [ -f /etc/tomte/AUTOMATIC ]; then 916 | printf "Tomte wird in den vorgesehenen Standardeinstellungen verwendet\n" >> $tomteFileName 917 | printf "\n\n\n" >> $tomteFileName 918 | elif [ -f /etc/tomte/DONT_CONFIGURE ]; then 919 | printf "Tomte ist so konfiguriert, dass nur die als "notwendig" (prerequisite) markierten Module konfiguriert werden\n" >> $tomteFileName 920 | printf "\n\n\n" >> $tomteFileName 921 | elif [ -f /etc/tomte/UPDATES_ONLY ]; then 922 | printf "Tomte ist so konfiguriert, dass nur Aktualisierungen ueber Tomte verarbeitet werden\n" >> $tomteFileName 923 | printf "\n\n\n" >> $tomteFileName 924 | else 925 | printf "Tomte wird in den Standardeinstellungen verwendet\n" >> $tomteFileName 926 | printf "\n\n\n" >> $tomteFileName 927 | fi 928 | 929 | # $displayFileName section 930 | 931 | printf "glxinfo|grep vendor\n\n" >> $displayFileName 932 | glxinfo|grep vendor >> $displayFileName 933 | 934 | printf "\n\n\n" >> $displayFileName 935 | 936 | printf "Display Info (/sys/kernel/debug/dri/*/i1915_display_info)\n\n" >> $displayFileName 937 | grep -A 100 "^Connector info" /sys/kernel/debug/dri/*/i915_display_info >> $displayFileName 938 | 939 | printf "\n\n\n" >> $displayFileName 940 | 941 | printf "Display Info colormgr\n\n" 942 | colormgr get-devices-by-kind display >> $displayFileName 943 | 944 | printf "\n\n\n" >> $displayFileName 945 | 946 | for f in /sys/class/drm/card*-*/edid; do 947 | ls -la /sys/class/drm/card*-*/edid 948 | printf "\n\n" >> $displayFileName 949 | printf "====================\n" >> $displayFileName 950 | printf "Decoding: %s" $f >> $displayFileName 951 | printf "\n" >> $displayFileName 952 | cat $f | edid-decode >> $displayFileName 953 | printf "====================" >> $displayFileName 954 | done 955 | 956 | printf "\n\n\n" >> $displayFileName 957 | 958 | # NOTE: SYSINFOS_DEBUG is only for internal testing purposes. 959 | if [ $SYSINFOS_DEBUG -eq 1 ]; then 960 | printf "Running in debug mode\n" 961 | else 962 | # Rename files 963 | mv $infoFileName systeminfos-$ticketnumber.txt 964 | mv $lspciFileName lspci-$ticketnumber.txt 965 | mv $udevFileName udev-$ticketnumber.txt 966 | mv $logFileName log-$ticketnumber.txt 967 | 968 | if [ "$(. /etc/os-release; echo $VERSION_ID)" = "24.04" ]; then 969 | sed -i '/Signed-By: -----BEGIN PGP PUBLIC KEY BLOCK-----/,/-----END PGP PUBLIC KEY BLOCK----/d' $normalpackagesFileName 970 | mv $normalpackagesFileName packages-normal-$ticketnumber.txt 971 | else 972 | mv $normalpackagesFileName packages-normal-$ticketnumber.txt 973 | fi 974 | 975 | mv $flatpakpackagesFileName packages-flatpak-$ticketnumber.txt 976 | mv $snappackagesFileName packages-snap-$ticketnumber.txt 977 | mv $audioFileName audio-$ticketnumber.txt 978 | mv $networkFileName network-$ticketnumber.txt 979 | mv $boardFileName boardinfo-$ticketnumber.txt 980 | mv $firmwareFileName firmware-$ticketnumber.txt 981 | mv $tccFileName tcc-$ticketnumber.txt 982 | mv $modprobeFileName modprobe-$ticketnumber.txt 983 | mv $securebootFileName secureboot-$ticketnumber.txt 984 | mv $tomteFileName tomte-$ticketnumber.txt 985 | mv $displayFileName display-$ticketnumber.txt 986 | mv $failogFilename failog-$ticketnumber.txt 987 | 988 | zip -9 systeminfos-$ticketnumber.zip *-$ticketnumber.txt 989 | fi 990 | 991 | # NOTE: SYSINFOS_DEBUG is only for internal testing purposes. 992 | if [ $SYSINFOS_DEBUG -eq 1 ]; then 993 | printf "Running in debug mode\n" 994 | else 995 | # Check Internet connection 996 | printf "Ueberpruefe Internetverbindung... / Checking Internet connection... \n" 997 | scriptisonline=$(curl -o /dev/null -I -L -s -w "%{http_code}" https://www.tuxedocomputers.com) 998 | if [ $scriptisonline -eq 200 ]; then 999 | printf "\e[32mOnline\e[0m\n" 1000 | printf "\e[37m\e[0m\n" 1001 | else 1002 | printf "\e[31mOffline! Um die Ergebnisse uebermitteln zu koennen ist eine Internetverbindung erforderlich! / Offline! An Internet connection is required to transmit the results! \e[1m\n" 1003 | printf "\e[37m\e[0m\n" 1004 | rm systeminfos-$ticketnumber.zip *-$ticketnumber.txt 1005 | exit 1 1006 | fi 1007 | fi 1008 | 1009 | # NOTE: SYSINFOS_DEBUG is only for internal testing purposes. 1010 | if [ $SYSINFOS_DEBUG -eq 1 ]; then 1011 | unset LC_ALL 1012 | unset LANG 1013 | unset LANGUAGE 1014 | exit 0; 1015 | else 1016 | curl -k -F "file=@systeminfos-$ticketnumber.zip" $serverURI?ticketnumber=$ticketnumber 1017 | rm systeminfos-$ticketnumber.zip *-$ticketnumber.txt 1018 | fi 1019 | 1020 | if [ "$(. /etc/default/locale; echo $LANG)" = "de_DE.UTF-8" ]; then 1021 | printf "\n" 1022 | printf "Systeminfos erfolgreich uebermittelt. \n" 1023 | printf "Wir werden die eingesendeten Systeminfos nun auswerten und uns bei Ihnen melden. \n" 1024 | printf "Bitte haben Sie etwas Geduld. \n" 1025 | else 1026 | printf "\n" 1027 | printf "Systeminformations successfully transferred. \n" 1028 | printf "We will now evaluate the submitted system information and get back to you. \n" 1029 | printf "Please be patient. \n" 1030 | fi 1031 | 1032 | unset LC_ALL 1033 | unset LANG 1034 | unset LANGUAGE 1035 | 1036 | exit 0; 1037 | --------------------------------------------------------------------------------