About the Scripts :: What They Are and Do.
This is just a brief introduction to what each script does. For more in-depth information, check the various other parts of this site, and follow the links that lead you to where you might find what you need to know.
Overview of the Core Functionality of the Scripts
What is smxi?
smxi is an interactive script designed to help people maintain their systems. It supports Debian (Stable, Testing, and Sid) and true Debian based distros (such as, but not limited to, AntiX, Aptosid, Epidemic, Linux Mint Debian [LMDE], Mepis). It does not support Ubuntu based distros because there are too many differences between Debian and Ubuntu.
There is an online smxi manual that might answer any further questions you have.
Smxi script features
Smxi is a feature rich, powerful script, and has the following primary features and options:
- System Upgrades (dist-upgrade / upgrade)
- Kernel upgrades / kernel module upgrades
- Automatated video card driver installation (plus any needed patches), especially non-free drivers like nVidia and AMD/ATI fglrx
- Installing extra software (including building a desktop/server from scratch, starting with just the base Debian system)
- Removing certain software
- Cleaning up your system (cleaning up apt archives, removing kernels/ kernel modules, cleaning system cruft, etc)
- Tweaking your system, mozilla configurations, installing some small graphics tweaks, etc.
smxi also launches, with the proper start information, 2 stand-alone script modules, sgfxi (the Video Driver Installer script), and svmi (the Virtual Machine Installer script), if you select the options to do that. Both of these scripts can also be run alone.
For a more expansive list of what it does, including the order the features appear in smxi, and a full listing of the script navigation, see the smxi navigation page. For a shorter version of its features, and the basic story behind smxi, see the smxi story page.
Always check out the script help menu option -h (eg: sxmi -h) to see what options are available, with further explanations.
What is sgfxi (simple graphics installer - s gfx i)
The primary purpose of sgfxi is to install non-free graphics drivers. It also supports removing non-free graphics drivers and replacing them with the free version. To do this it cleans out the system of any previous drivers, then installs the latest versions of the driver you have requested.
Support for Ubuntu and Arch Linux has been added to sgfxi, so now it should work in most areas in Debian, Ubuntu, and Arch.
sgfxi also runs as a module of smxi, which is run via the Graphics Install section, which basically just selects the most commonly used and most useful start options for sgfxi, and then starts sgfxi with those options.
Some nice features of that are if you install a new kernel with smxi, smxi will retain that data, then send it to sgfxi, which allows you to install the video driver to the new kernel prior to rebooting, which lets you do a full system upgrade prior to rebooting.
There is an online sgfxi manual that might answer any further questions you have.
Most commonly used features
The following shows the main steps and options most people find useful. See sgfxi -h for full listing of options.
- Offers latest stable drivers, as well as beta nVidia drivers. Generally new drivers are added as soon as I become aware of them. If I've failed to add a new driver, simply post a note and let me know about it on the sgfxi feature request thread. Or, if you see the user h2-gw on the smxi irc channel: irc.oftc.net channel #smxi you can alert me there too.
- Automatically determines correct driver type for your specific card. This feature has very good support for nVidia non-free drivers, Intel, nVidia, and ATI Xorg drivers, plus a few others. In other words, if you use a legacy nVidia card, it will determine what driver to install for that card, automatically.
- Cleans up system of all previous drivers prior to install.
- Automatic install of latest nVidia beta driver: sgfxi -cB
Note: this only installs latest beta if latest beta is a higher version number than current stable for your card type. The nVidia Beta driver data is also dynamically generated from nVidia itself, so any new Beta driver will automatically be added to the script beta driver data.
- Automatic install using Debian/Ubuntu method of non-free driver install (using m-a (Debian) or dkms (Ubuntu)): sgfxi -s (or, for nVidia: sgfxi -cs)
- Direct binary install (sgfxi) for AMD/ATI, from the fglrx run package. You can also (Debian/Ubuntu only) try the distro driver package constructor sgfxi -D, if you have problems with the default binary method, or prefer to use the distro packages. Both methods do not always work for all distros.
- Configures xorg.conf for your driver choice, including some common settings. Does NOT use the nVidia or ATI auto configuration tools because they tend to be very messy and unreliable.
- Install a wide range of free Xorg drivers. This will also remove any previously installed non-free drivers, and update your xorg.conf to use the new driver.
Major known issues
There are some fairly consistent, known, issues, that haven't changed much over time. Here's a brief listing of them:
- Erratic fglrx (ATI non-free driver) support and function. This is not a reliable driver in terms of installation, new kernel/xorg support. If you have problems with the standard sgfxi binary run package installation method, try the deb constructor method, try the sgfxi -D method that creates and installs deb packages.
- fglrx only intermittently supports Debian Sid, so if you have a solid working setup, do NOT randomly upgrade your system without first checking to make sure the driver actually works with the latest Xorg and Kernel.
- Debian Testing/Stable: nVidia Debian method (m-a etc...) install of non-free drivers doesn't always work because Testing/Stable don't have the required nVidia non-free packages, which are considered bugs by definition. This changes so check to see if your release version has those packages in it. However, the direct, non Debian method install works fine for Stable, Testing, and Sid/Unstable, so it doesn't really matter.
What can I say? Maintaining this script is a lot of work, ongoing, the driver vs kernel environment is constantly changing and evolving, and new drivers with new issues are constantly appearing. If you like and appreciate the work that is required to keep sgfxi up to date, and to keep the driver install process reasonably pain free and simple, please consider making a donation. Every bit helps.
Bugs and Problems
Please remember that nVidia and Fglrx (ATI) are non-free drivers. This means that there is only one type of bug that I can deal with: install / xorg configuration issues. All other bugs, ie, the driver has issues, glitches, etc, have to be handled on their respective support forums. Please use the following resources to file bug reports in the appropriate place, ie, where they will actually do some good.
Please spend your bug reporting time well by selecting the proper resource and posting your issues there.
- sgfxi bug forum - Use this to report INSTALL issues, or Xorg configuration problems. No other support is possible, becaues I don't write either the Xorg or the non-free drivers.
- nVidia support forums - Please post all driver bugs there, they do no good anywhere else. The nVidia developers read that and respond, so if you want your driver bugs and failures actually addressed, file the bug report there. Make sure to first read the how to file a bug report thread first. Hint: zip up the generated nvidia bug log to make it uploadable to the nvnews forums, otherwise it's too big.
- AMD/ATI Fglrx support forums - This is where the official support happens, for what it's worth, which isn't very much. Look for Bridgeman's postings, he's an ATI developer, and he's fairly reasonable, though perpetually in denial about the systemic weaknesses in the fglrx driver install package. You can also check out their Free radeonhd Xorg driver forums to see the status of those.
Error and Install Logs
Because of the complexity of debugging driver install issues, the following logs are available for debugging purposes:
- sgfxi install logs: /var/log/sgfxi/sgfxi.log
- nVidia install logs: /var/log/nvidia-installer.log
For sgfxi install failures and issues, please post a copy of the sgfxi.log at http://paste.debian.net, then copy the link and post it in the sgfxi bug forum. Do NOT paste the error log directly, it's far too big.
What is svmi
svmi is a fairly simple script that downloads and installs, or updates, your Vmware or VirtualBox virtual machines.
You can start it either as a stand-alone script (ie: svmi), or from smxi. See svmi -h for full options.
svmi has a basic group of functions, which let you maintain and install VirtualBox ose, non-ose, and Vmware Player. I do not have any plans of expanding this functionality due to the difficulty of tracking over years the various specific packages and methods.
Note: installing Vmware will remove previous versions, and so will Vbox installs. Ie, if you have Vbox ose installed, and installl Vbox non-ose, your Vbox ose will get removed.
- Install VirtualBox ose (open source edition). This is a Debian package, installed via apt.
- Install Virtualbox non-ose. This downloads and installs the non free version of VirtualBox
- Install VmWare Addons. This doesn't always work, but I try to keep it somewhat up to date.
- Install VmWare Player. Downloads and installs Vmware Player.
- Rebuild kernel modules for VirtualBox, if needed. Note: apt installed VirtualBox gets its modules automatically updated via smxi, or you can do it manually here.
- Vmware now handles its module rebuilding the first time you start it after a kernel update. Nice work Vmware team.
And that's about it, virtual machine installs made easy.
What is rbxi
rbxi is a cross platform tool designed to help you set up a range of backup jobs, using a wide range of options and configurations. It features full readme documentation, and requires a manual setup of its user data file in order to achieve greatest possible script flexibility and utility.
This is not a trivially easy script to set up, but once set up, it should require few further changes, unless your backup requirements change.
It should work on any system that has rysnc or rdiff-backup, Bash, and Gnu sed and grep. In other words, it should work on pretty much all Linux kernel running systems, and possibly some BSD type systems, including OSX.
See the rbxi install how to for details on how to install the script package.
rbxi works with either rsync or rdiff-backup, though I find for any network backup, rdiff-backup is just too slow to be of much utility.
Because of the complexity of setting it up, I'm not going to write much more here, though I have created a dedicated rbxi setup and configuration how to in the main docs section.
rbxi primary components and features
The main rbxi.tar.bz2 package contains the following components:
- Primary script directory, which contains all of the following: rbxi/
- Core script: rbxi/rbxi. This features an updating feature so you can update the core engine if newer versions exist, without updating your configuration files.
- The rbxi configuration data directory: rbxi/rbxi-data
- The primary user configuration file: rbxi/rbxi-data/rbxi-values
This file contains a lot of notes and tips about how to setup the variables there.
- Exclude files for all backup options, both rsync and rdiff-backup: rbxi/rbxi-data/excludes-....
NOTE: rsync and rdiff-backup do NOT use the same syntax in these files. rdiff-backup also does not allow comments in its exclude files.
- The basic readme for setup instructions: rbxi/rbxi-data/readme-rbxi.txt (soon to be readme-rbxi.htm)
An evolving how to setup rdiff-backup or rysnc backup jobs using rbxi.
Also check rbxi -h for more information on the various options, but the readme-rbxi file is really required to set this up and get it working.
What is inxi
inxi is a really fun little (well, ok, it's not little anymore, it's getting pretty big) Bash script that lets you get all kinds of system information, either in your console/terminal/shell, or in your IRC client.
inxi allows a wide range of output options depending on which parameters you start it with. It is a fork of locsmif's largely unmaintained (and in my opinion, unmaintainable), yet very clever, infobash script.
inxi is a read-only script, in other words, it will not change or modify anything in your system, it merely tries to read from a variety of sources information about your system, so you can show and see what you want in an easy to use format.
See the inxi install how to for details on how to install the script.
inxi options and features
See inxi -h for full list of supported output options.
- inxi - with no arguments, shows just one line of main system data.
- inxi -b - shows basic system information
- inxi -F - shows fuller system output. In general, avoid using this on IRC channels because it's quite verbose.
- inxi -v <0-6> - -v 0 through -v 6 shows a variety of outputs, the bigger the number, the more output, -v 0 shows the same as inxi alone; inxi -v 1 shows the same as inxi -b.
- Line by line outputs, see inxi -h for current options. Shows things like CPU information (-C), Machine information, like motherboard/bios data (-M - version 1.6.0 or later), Graphics (-G), Network (-N), Hard Disk (-D), Partition (-p), System Information (-S or -I), and other fun stuff. There are also a few stand-alone options like -r and -t. But read the help (-h or --help)
Like all the other scripts, inxi -U will update to the latest svn version.
inxi is a group project
Unlike the other scripts on this page, inxi is co-developed, a group project, primarily with trash80 on the programming side. But the nice people at irc.oftc.net channel #linux-smokers-club all really have to be considered to be co-developers because of their non-stop enthusiasm and willingness to provide real time testing and debugging of inxi development.
Without a wide range of diverse Linux kernel based Free Desktop systems to test on, we could never have gotten inxi to be as reliable and solid as it's turning out to be.
And of course, locsmif, who figured out a lot of the core methods, logic, and tricks used in inxi, has to be considered as a primary author as well, even if inxi has been officially forked from his infobash script.
Sample -F output
Here's a sample taken from the 1.6.5 release, using inxi -Flz. -l shows disk labels for, in this case, -P, which shows basic partition data (-p shows full partitions in system), -z turns on output filtering, which filters mac address of network cards, IP addresses, and username /home directories.
inxi -Flz System: Host my-box Kernel 2.6.38-7.dmz.1-liquorix-686 i686 (32 bit) Desktop KDE 3.5.10 (Qt 3.3.8b) Distro sidux-20070102-d:1 Machine: Mobo ASRock model A770DE+ Bios American Megatrends version P1.70 date 09/07/2010 CPU: Dual core AMD Athlon 64 X2 5000+ (-MCP-) cache 1024 KB flags (lm nx sse sse2 sse3 svm) bmips 10375.2 Clock Speeds: (1) 2600.00 MHz (2) 2600.00 MHz Graphics: Card: nVidia G86 [GeForce 8400 GS] bus-ID: 02:00.0 X.Org 1.7.7 driver loaded: nvidia Resolution firstname.lastname@example.org GLX Renderer GeForce 8400 GS/PCI/SSE2/3DNOW! GLX Version 3.3.0 NVIDIA 275.09 Direct Rendering Yes Audio: Card ATI SBx00 Azalia (Intel HDA) driver HDA Intel bus-ID: 00:14.2 Sound: Advanced Linux Sound Architecture Version 1.0.23 Network: Card Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller driver r8169 v: 2.3LK-NAPI port c800 bus-ID: 01:00.0 IF: eth0 state: up speed: 1000 Mbps duplex: full mac: <filter> Disks: HDD Total Size: 810.2GB (71.5% used) 1: /dev/sda ST380817AS 80.0GB 39C 2: /dev/sdb WDC_WD3200JD 320.1GB 46C 3: /dev/sdc ST3160827AS 160.0GB 39C 4: /dev/sdd ST3250824AS 250.1GB 42C Partition: ID:/ size: 13G used: 9.4G (79%) fs: ext3 dev: /dev/sda1 label: my-box-root-1 ID:/home size: 20G used: 9.0G (47%) fs: ext3 dev: /dev/sdc9 label: my-box-home-1 ID:swap-1 size: 2.10GB used: 0.00GB (0%) fs: swap dev: /dev/sda8 label: swap-restore Sensors: System Temperatures: cpu: 45.5C mobo: 43.0C gpu: 0.0:66C Fan Speeds (in rpm): cpu: 2191 fan-1: 1074 fan-3: 0 fan-5: 835 Info: Processes 207 Uptime 12:46 Memory 1262.2/3166.5MB Runlevel 3 Client Shell inxi 1.6.5