I thought I'd share some of the problems and subsequent workarounds/tips I found
while working with karmic. I originally installed kubuntu alpha3, which
actually gave me fewer problems than the final release, due to some last minute
changes they made, particularly with upstart. But overall karmic is running
well for me, and has been for months.
Most of this applies to ubuntu in general. A few sections are Kubuntu only.
Update: For an updated version of some of the scripts below,
visit my blog at http://igurublog.wordpress.com/
Table of Contents: (most are automated scripts)
USB STICK INSTALL
CREATE ROOT USER
ROOT USER SETTINGS
INSTALL SUN JAVA 64 BIT
INSTALL GOOGLE EARTH
DISABLE SSH-AGENT
DISABLE OTHER AGENTS
DISABLE GPG-AGENT IN GPG
DISABLE KDM AUTOSTART
GRUB2 MODS
OPENOFFICE COLOR FIX
SSD CHANGES
INSTALL TOR
DISABLE NEPOMUK, SOPRANO, AND AKONADI
BROTHER PRINTER DRIVER
SCANPIC SCRIPT
RESIZE AND EMAIL PIC
SETUP VNC4SERVER
DISABLE USB (WEBCAM) AUDIO
I always do a fresh install. I have been building a post-install script which
does most of the work of 'upgrading'. I do a fresh install, then run my script
which installs additional software, makes assorted changes and fixes, and copies
config files from my old system so I don't have to setup everything from
scratch. This has really worked well - I highly recommend this method. One
nice thing about linux is that lots of things can be done from the command line.
And once you can do something from the command line, you can paste those
commands into a script. Many of the scripts below are actually excerpts from my
post-install script. If you string them together or have a master script that
runs these scripts in series, you can easily build your own post-install script.
I used to keep notes on all my post-install changes, but I found myself doing
the same thing over and over, so now I just put my notes in script form. (Tip:
If you maintain more than one system that has different setup requirements, you
can use the $HOSTNAME environment variable to determine which system the script
is running on.)
In case you are a beginner, scripts are simply text files, so you can paste any
scripts below into a text editor, save them, and run them with "bash
scriptname". With some scripts you need to run them with "sudo bash scriptname"
(which gives the script admin priviledges - use with care).
You probably won't want to do all of these modifications as is, but you may want
some of them as is, and you may want to modify others for your purposes.
WARNING: It is up to you to research these issues to determine if the
modification is appropriate for your uses. Some of these changes are for
advanced users only, so if you don't understand it reasonably well, don't do it.
I recommend backing up your system first...
http://en.wikibooks.org/wiki/How_To_...rating_Systems
USB STICK INSTALL
I have installed kubuntu karmic alpha3, alpha4, and final on two systems. For
one I use the alternate install CD. The other system will not boot from its CD
drive (MB SATA issue), so I use a USB stick install. Here is how I got that to
work...
CREATE ROOT
Below is a script which will create (enable) the root user on K/Ubuntu, if so
desired. Run it with sudo. First you will be prompted for your existing user
password (for sudo), then you will be prompted twice for your new root password.
Note: Ubuntu does not enable the root user for security reasons. If you are
uncertain about this, research the pros and cons of enabling the root user
before making this change.
ROOT USER SETTINGS
Whether or not the root user is enabled on your Ubuntu, there will still be root
user settings, such as settings for KDE programs you run as root, your package
manager, etc. Here is the portion of my post-install script that copies these
settings from my old system to my new system. (If you use Gnome, you can add in
that settings folder as well.) You must pass the script the location of your
old system root folder (/) on the command line. For example if your old system
is mounted on /mnt/sda3: sudo post-install /mnt/sda3 This folder name should
not contain spaces or other weird characters. Alternatively, you could just
copy the entire /root folder, but I like to be minimalist about it in case other
things change in /root between releases.
INSTALL SUN JAVA 64 BIT
Below is my method for installing the 64 bit version of Sun Java. I don't know
if this is the most efficient method now, but it works for me.
First, visit http://java.sun.com/javase/downloads/index.jsp and download the
latest JRE, selecting Linux64 as your OS. This script is based on using
jre-6*-linux-x64.bin
This script will install Java and will enable the plugin in Firefox. Place this
script in the same folder as the java bin file, and run it from that folder with
sudo.
References:
http://ubuntuforums.org/showthread.p...+plugin+64+bit
INSTALL GOOGLE EARTH
This script installs Google Earth, running the install script as a user (more
safe), yet installing it to /opt/google-earth and then making it owned by root
(to prevent mischief). Run this script as user, and choose to install to
/opt/google-earth in the dialog.
DISABLE SSH-AGENT
ssh-agent is setup by default on Ubuntu to make it easier for people who want
it, but IMO it introduces potential security issues and is best not used unless
you explicitly want it. If you don't know what it is, you don't need it. This
script will disable it from starting.
DISABLE OTHER AGENTS
There are other agents run by default in Ubuntu which make it easier to automate
password entry (pinentry-qt4 and gnupg-agent), but which introduce potential
security hazards. Also, a new kerneloops daemon has been added which
automatically reports kernel issues to a maintenance site. The following
command will uninstall these:
DISABLE GPG-AGENT IN GPG
This script will disable the message that gpg-agent is not available when
running gpg (once gpg-agent has been removed above). This script should be run
by each user on the system, not with sudo.
DISABLE KDM AUTOSTART
This is an obscure change which you probably DON'T want to do. In some cases it
is desirable to have a system boot into a console instead of automatically
starting X and KDE. NOTE: If you make this change, you will need to login and
start KDM manually when your system boots!
In prior versions of Kubuntu, including karmic alpha3, you made this change by
removing the kdm startup link in the appropriate /etc/rc#.d runlevel. However,
in karmic final that no longer works due to the use of upstart. kdm must now be
disabled in /etc/init. Note that this change may not be permanent - you may
need to run this command again after some system updates. If you use Gnome, I
think the same general method works for inhibiting gdm autostart.
To prevent X and KDM from starting automatically:
Once you make the change above, you can start kdm manually after boot by logging
in as root (if enabled) or as a user and entering the command:
GRUB2 MODS
This script makes a few changes to the grub2 boot menu by editing
/etc/default/grub and then running update-grub. Comment out (put a # before)
any changes you don't want. This script must be run with sudo.
To undo the above changes use these commands:
OPENOFFICE COLOR FIX
Karmic sets the OpenOffice colors to KDE or Gnome colors. This is especially a
problem will color-coded spreadsheets, because the background colors set in the
spreadsheet no longer show. If you DON'T want OpenOffice to use your desktop
colors, this script will make that change. You may need to run this script
again if OO or your desktop is updated.
SSD CHANGES
If your desktop system has an SSD (solid state drive), there are certain changes
that are recommended to minimize the number of writes to the drive. These
changes include changing the kernel dirty page writeback time, changing the
commit time in fstab, using a ramdrive for /tmp /var/log and /var/tmp, changing
the scheduler for the SSD drive, and using a non-SSD drive for your swap
partition.
FYI: Installing Ubuntu to an SSD drive creates a remarkable change in
system performance - boot time and program startup times are drastically
reduced. I highly recommend the investment - I have never before seen a single
hardware change that affected performance as much as an SSD. Get a good quality
one such as the OCZ Vertex. I've been using this SSD for over 6 months and it's
excellent. 30G is plenty for a few system partitions, then use a regular hard
drive for your data.
Note: karmic final introduced a bug which was not present in alpha3. The
mountall command now will not mount a ramdrive to /var/log and /var/tmp in fstab
- you get a "waiting for tmpfs" message which interrupts the boot process. You
can read more on this issue here:
https://bugs
.launchpad.net/ubuntu/+source/mountall/+bug/431040 It currently says
there "fix released" but don't believe it - this bug is still present in karmic
final. As a result, it is now necessary to either mount /var to another drive,
or mount them after fstab. I have chosen to mount them after fstab, in part
because it makes the system faster, but this solution is imperfect. Kernel and
system logs which are started before rc.local runs may not be visible using this
method. I am using this method and haven't had an issue thus far, but choose
whatever solution works best for you. I am providing this method in case you
want to use it.
Also note that all of these changes can be made to a non-SSD system - using a
ramdrive may speed up your system somewhat, and can also be used for greater
security (the contents of /tmp are gone when the system is shutdown).
The script below will make the above changes EXCEPT for changing the fstab
commit time, and EXCEPT for moving your swap partition to another drive. It is
recommended that you add a commit= to each fstab line which mounts your SSD
partitions. For example, this line in /etc/fstab:
might become
The script below does NOT make the above change to fstab - do that manually.
However, this script does add a /tmp ramdrive mount in fstab. Also, it assumes
that only /dev/sda is an SSD drive. Read the comments in the script to see
exactly what changes are being made. Also note that this script will REPLACE
your /etc/rc.local. If you have customized it, you will want to add your
customizations back in after running it.
This script must be run with sudo.
UPDATE: Please see the modified versions of these scripts below:
http://kubuntuforums.net/forums/inde...3939#msg203939
Reboot your machine after running the above script. You can test the SSD
changes with the script below. You may need to modify it for your system. No
output indicates no problems found.
Another good test is to see what files on the / filesystem have changed in the
last 3 minutes. If you find a file which is always listed, even with no user
activity, then this could reduce the life and performance of your SSD. You may
want to change where that file is stored.
References:
https://wiki.ubuntu.com/Asus_P5QC#UP...SSD%29%20Added
http://ubuntuforums.org/showthread.php?t=839998
http://starcubetech.blogspot.com/200...on-ubuntu.html
https://bugs.launchpad.net/ubuntu/+s...ll/+bug/431040
TOR
tor is no longer in the ubuntu repos, and the noreply.org repo may not work due
to dependencies no longer in karmic. The following method uses an unofficial
PPA to install tor. Please read the tor project page carefully before using
tor, as there are additional setup requirements for effective use:
http://www.torproject.org/docs/debian.html.en
And the PPA homepage:
https://launchpad.net/~sevenmachines/+archive/tor
Run with sudo...
Additional info on tor availability in karmic:
http://ubuntuforums.org/archive/inde...t-1153938.html
NEPOMUK, SOPRANO, AND AKONADI
These are servers used by KDE4 for tagging and indexing of files. Some programs
you may use, such as music players or desktop search programs, may rely on them.
However, some people don't use them and don't want them slowing down their
system and consuming (considerable) RAM and CPU. These programs can be
extremely difficult to remove or disable - unfortunately it's not as simple as
removing them with apt-get. For example, apt-get doesn't even have a package
installed with the name 'nepomuk'. The KDE developers seem to be going out of
their way to make them mandatory, for whatever reasons, even though they are of
limited use to many people and can slow systems down considerably.
The script below is a work in progress and a hack- my crude attempt to disable
these programs from loading. If you have any input on methods I would be
interested to hear it. This script is brutal and will probably need to be run
again after system updates. Use at your own risk - I haven't had any problems
with it thus far, but you may use different software than I, and thus may be
affected differently.
First, if using KDE visit System Settings|Advanced|Desktop Search. Uncheck the
boxes to disable Nepomuk and Strigi.
Hopefully, the script below will disable these programs so they cannot be
started. Run with sudo.
BROTHER PRINTER DRIVER
This script installs the Brother drivers for the Brother MFC-7420
printer/scanner (64 bit). I'm including it since it can easily be modified for
other Brother printers. It makes installation a snap and the printer is even
automatically added to CUPS. This script also fixes the 'can only scan as root'
problem.
First, download the following files from
http://solutions.brother.com/linux/en_us/
Note that the scanner driver is for 64 bit. If your files differ, you will need
to modify the script.
Next, place the script in the same folder, and run the script with sudo from that folder.
SCANPIC SCRIPT
Below is a script which scans pics and documents of various sizes from the
command line. It is written for the Brother MFC-7420 scanner, but can easily be
modified to work with other scanners. Just change the device= line to your
device name, and you may also need to adjust the default offset. I wrote this
when I was scanning hundreds of old pics of various sizes and I wanted to do it
quickly from the command line.
Before running this script, run
RESIZE AND EMAIL PIC (REPIC SCRIPT)
This is a script for resizing pic(s), and can also send a pic to an email in
Kmail. I see they've finally added this email ability to Kubuntu, but this
script gives you more control over the size, etc.
You can add a menu item with the command "repic --email %U" so that you can
right-click on a pic (or pics) in your file manager and email it (them), or add
entries to resize it to different sizes. For example, right-click and Open
with... "Resize to 800x800".
Before running this script, run
Note that this script rotates the original pic if needed. If you don't want
this, uncomment the jhead line.
SETUP VNC4SERVER
Below is a script which sets up vnc4server on Kubuntu karmic. This is based on
the guide here:
http://ubuntuforums.org/archive/inde...t-1078497.html
This setup allows you to login to KDE remotely using a command like
You will be presented with the KDM greeter. If you close the VNC window and
reconnect, you will be in the same KDE session, unless you logged out (resumable
session).
Run this script with sudo, then reboot. Note that you will be asked to set your
VNC password. If you already have a VNC password file, you can comment out that
line.
VERY IMPORTANT: The server-args line in the service Xvnc entry of this script
has been broken up so this post is not so wide. You MUST put it back into one line
or it will not work. Each argument is separated by a space, and the fonts list is
comma-separated. I will also post this script as a file attachment in a reply below,
which will contain the correct server-args= line unbroken. I recommend downloading
that instead of the version below.:
DISABLE USB AUDIO
Some webcams have microphones in them which can be used to eavesdrop. If you
have such a webcam and want to disable its microphone, the following method
works. Note: this will probably disable any USB microphone or possibly any USB
audio device, not just webcams.
First, save this script (the original version of which was written by Landon
Curt Noll) as "usbaudiooff":
Then issue these three commands:
Reboot, and the microphone should be disabled. You can confirm this with
Output should be nothing. As long as lsmod does not report "snd_usb_audio" running, the USB audio should be disabled.
To re-enable USB audio:
Hope you get some use out of these - let me know if you encounter any bugs.
while working with karmic. I originally installed kubuntu alpha3, which
actually gave me fewer problems than the final release, due to some last minute
changes they made, particularly with upstart. But overall karmic is running
well for me, and has been for months.
Most of this applies to ubuntu in general. A few sections are Kubuntu only.
Update: For an updated version of some of the scripts below,
visit my blog at http://igurublog.wordpress.com/
Table of Contents: (most are automated scripts)
USB STICK INSTALL
CREATE ROOT USER
ROOT USER SETTINGS
INSTALL SUN JAVA 64 BIT
INSTALL GOOGLE EARTH
DISABLE SSH-AGENT
DISABLE OTHER AGENTS
DISABLE GPG-AGENT IN GPG
DISABLE KDM AUTOSTART
GRUB2 MODS
OPENOFFICE COLOR FIX
SSD CHANGES
INSTALL TOR
DISABLE NEPOMUK, SOPRANO, AND AKONADI
BROTHER PRINTER DRIVER
SCANPIC SCRIPT
RESIZE AND EMAIL PIC
SETUP VNC4SERVER
DISABLE USB (WEBCAM) AUDIO
I always do a fresh install. I have been building a post-install script which
does most of the work of 'upgrading'. I do a fresh install, then run my script
which installs additional software, makes assorted changes and fixes, and copies
config files from my old system so I don't have to setup everything from
scratch. This has really worked well - I highly recommend this method. One
nice thing about linux is that lots of things can be done from the command line.
And once you can do something from the command line, you can paste those
commands into a script. Many of the scripts below are actually excerpts from my
post-install script. If you string them together or have a master script that
runs these scripts in series, you can easily build your own post-install script.
I used to keep notes on all my post-install changes, but I found myself doing
the same thing over and over, so now I just put my notes in script form. (Tip:
If you maintain more than one system that has different setup requirements, you
can use the $HOSTNAME environment variable to determine which system the script
is running on.)
In case you are a beginner, scripts are simply text files, so you can paste any
scripts below into a text editor, save them, and run them with "bash
scriptname". With some scripts you need to run them with "sudo bash scriptname"
(which gives the script admin priviledges - use with care).
You probably won't want to do all of these modifications as is, but you may want
some of them as is, and you may want to modify others for your purposes.
WARNING: It is up to you to research these issues to determine if the
modification is appropriate for your uses. Some of these changes are for
advanced users only, so if you don't understand it reasonably well, don't do it.
I recommend backing up your system first...
http://en.wikibooks.org/wiki/How_To_...rating_Systems
USB STICK INSTALL
I have installed kubuntu karmic alpha3, alpha4, and final on two systems. For
one I use the alternate install CD. The other system will not boot from its CD
drive (MB SATA issue), so I use a USB stick install. Here is how I got that to
work...
Code:
# Download your preferred DESKTOP install image (NOT alternate CD). I used # kubuntu-9.10-desktop-amd64.iso # install unetbootin - a USB stick image creator sudo apt-get install unetbootin # insert stick and find out what the device name is sudo fdisk -l # Zero out USB stick MBR (DESTRUCTIVE): # This step may not be required # NOTE! Change "sdx1" below to your USB stick designation # BE CAREFUL! Make sure you have the right device name sudo umount /dev/sdx1 # change sdx1 sudo dd if=/dev/zero of=/dev/sdx1 bs=512 count=1 # change sdx1 # Format the USB stick - use the right device name! # This step may not be required sudo mkfs.vfat /dev/sdx1 # change sdx1 sync # Reinsert and mount the USB stick # run unetbootin unetbootin # Select the Diskimage|ISO option and click the # "..." button to select the iso file # Select your USB drive # Click OK to start
Below is a script which will create (enable) the root user on K/Ubuntu, if so
desired. Run it with sudo. First you will be prompted for your existing user
password (for sudo), then you will be prompted twice for your new root password.
Note: Ubuntu does not enable the root user for security reasons. If you are
uncertain about this, research the pros and cons of enabling the root user
before making this change.
Code:
#!/bin/bash echo echo 'This script will create a root user (must be run with sudo)' user=`whoami` if [ "$user" != "root" ]; then echo 'createroot: must be run with sudo' exit 1 fi passwd root test=`grep 'Defaults.*env_reset,rootpw' /etc/sudoers` if [ "$test" = "" ]; then chmod u+w /etc/sudoers sed -i 's/^Defaults env_reset/Defaults env_reset,rootpw/' /etc/sudoers grep '^Defaults' /etc/sudoers chmod u-w /etc/sudoers else echo 'createroot: /etc/sudoers already contains ",rootpw" - no change' fi
Whether or not the root user is enabled on your Ubuntu, there will still be root
user settings, such as settings for KDE programs you run as root, your package
manager, etc. Here is the portion of my post-install script that copies these
settings from my old system to my new system. (If you use Gnome, you can add in
that settings folder as well.) You must pass the script the location of your
old system root folder (/) on the command line. For example if your old system
is mounted on /mnt/sda3: sudo post-install /mnt/sda3 This folder name should
not contain spaces or other weird characters. Alternatively, you could just
copy the entire /root folder, but I like to be minimalist about it in case other
things change in /root between releases.
Code:
#!/bin/bash # must be run with sudo if [ "$1" = "" ]; then echo 'Usage: post-install SOURCE' exit fi if [ ! -e "$1/root" ]; then echo "Error: invalid source folder $1" exit fi src="$1" mkdir -p /root/.synaptic cp $src/root/.synaptic/synaptic.conf /root/.synaptic cp -a $src/root/.gnupg /root cp -a $src/root/.kde /root cp -a $src/root/.local /root
Below is my method for installing the 64 bit version of Sun Java. I don't know
if this is the most efficient method now, but it works for me.
First, visit http://java.sun.com/javase/downloads/index.jsp and download the
latest JRE, selecting Linux64 as your OS. This script is based on using
jre-6*-linux-x64.bin
This script will install Java and will enable the plugin in Firefox. Place this
script in the same folder as the java bin file, and run it from that folder with
sudo.
Code:
#!/bin/bash # must be run with sudo # Install Java 64 bit using jre-6u*-linux-x64.bin in current folder if [ -e /usr/lib/jvm/jre* ]; then echo 'SKIPPED: already installed' else j64=`ls -1 jre-6u*-linux-x64.bin | sort -r | head -n 1` if [ ! -e $j64 ]; then echo 'FAILED java64: missing jre-6u*-linux-x64.bin' else mkdir /usr/lib/jvm cp $j64 /usr/lib/jvm/ cd /usr/lib/jvm/ chmod a+x $j64 j64base=`basename $j64` ./$j64base rm /usr/lib/jvm/$j64base javaver=`ls -1 /usr/lib/jvm | sort -r | head -n 1` if [ "$javaver" != "" ]; then ln -sf /usr/lib/jvm/$javaver/lib/amd64/libnpjp2.so /usr/lib64/firefox-addons/plugins/ fi fi fi
http://ubuntuforums.org/showthread.p...+plugin+64+bit
INSTALL GOOGLE EARTH
This script installs Google Earth, running the install script as a user (more
safe), yet installing it to /opt/google-earth and then making it owned by root
(to prevent mischief). Run this script as user, and choose to install to
/opt/google-earth in the dialog.
Code:
#!/bin/bash # run as user, NOT sudo # Install Google Earth user=`whoami` if [ "$user" = "root" ]; then echo 'Do not run as root' exit fi ge=`ls -1 GoogleEarthLinux*.bin | sort -r | head -n 1` if [ ! -e $ge ]; then wget [url]http://dl.google.com/earth/client/current/GoogleEarthLinux.bin[/url] ge=`ls -1 GoogleEarthLinux*.bin | sort -r | head -n 1` if [ "$ge" = "" ]; then echo 'Error: download failed' exit fi fi if [ -e $ge ]; then sudo apt-get install ia32-libs # needed for 64 bit machines sudo rm -rf /opt/google-earth sudo mkdir /opt/google-earth sudo chmod ugo+rwx /opt/google-earth echo 'Choose to install to /opt/google-earth' bash $ge sudo chown -R root:root /opt/google-earth sudo chmod -R go-w /opt/google-earth if [ ! -e /opt/google-earth/googleearth-bin ]; then echo 'FAILED: missing /opt/google-earth/googleearth-bin' fi else echo 'Error: Not downloaded' fi
DISABLE SSH-AGENT
ssh-agent is setup by default on Ubuntu to make it easier for people who want
it, but IMO it introduces potential security issues and is best not used unless
you explicitly want it. If you don't know what it is, you don't need it. This
script will disable it from starting.
Code:
#!/bin/bash # disable ssh-agent from auto starting sudo sed -i 's/^\(use-ssh-agent.*\)/\#\1/' /etc/X11/Xsession.options sudo sed -i 's/^\(use-agent.*\)/\#\1/' /root/.gnupg/gpg.conf
There are other agents run by default in Ubuntu which make it easier to automate
password entry (pinentry-qt4 and gnupg-agent), but which introduce potential
security hazards. Also, a new kerneloops daemon has been added which
automatically reports kernel issues to a maintenance site. The following
command will uninstall these:
Code:
sudo apt-get purge pinentry-qt4 gnupg-agent kerneloops-daemon
This script will disable the message that gpg-agent is not available when
running gpg (once gpg-agent has been removed above). This script should be run
by each user on the system, not with sudo.
Code:
#!/bin/bash # disable gpg-agent in gpg.conf user=`whoami` sed -i 's/^\(use-agent.*\)/\#\1/' /home/$user/.gnupg/gpg.conf
This is an obscure change which you probably DON'T want to do. In some cases it
is desirable to have a system boot into a console instead of automatically
starting X and KDE. NOTE: If you make this change, you will need to login and
start KDM manually when your system boots!
In prior versions of Kubuntu, including karmic alpha3, you made this change by
removing the kdm startup link in the appropriate /etc/rc#.d runlevel. However,
in karmic final that no longer works due to the use of upstart. kdm must now be
disabled in /etc/init. Note that this change may not be permanent - you may
need to run this command again after some system updates. If you use Gnome, I
think the same general method works for inhibiting gdm autostart.
To prevent X and KDM from starting automatically:
Code:
sudo mv -f /etc/init/kdm.conf /etc/init/kdm.conf-disabled
in as root (if enabled) or as a user and entering the command:
Code:
sudo kdm && exit
This script makes a few changes to the grub2 boot menu by editing
/etc/default/grub and then running update-grub. Comment out (put a # before)
any changes you don't want. This script must be run with sudo.
Code:
#!/bin/bash # must be run with sudo # grub2 changes # make a backup copy of /etc/default/grub if [ ! -e /etc/default/grub-orig ]; then cp -a /etc/default/grub /etc/default/grub-orig fi # disable recovery entries from appearing on boot menu test=`grep '^GRUB_DISABLE_LINUX_RECOVERY=true' /etc/default/grub` if [ "$test" = "" ]; then echo 'GRUB_DISABLE_LINUX_RECOVERY=true' >> /etc/default/grub fi # change the boot menu timeout to 5 seconds (is 10 by default) sed -i 's/^GRUB_TIMEOUT=.*/GRUB_TIMEOUT=5/' /etc/default/grub # don't hide the boot menu timeout counter sed -i 's/^GRUB_HIDDEN_TIMEOUT_QUIET=.*/GRUB_HIDDEN_TIMEOUT_QUIET=false/' /etc/default/grub # change splash and quiet to nosplash to observe boot messages sed -i 's/^GRUB_CMDLINE_LINUX_DEFAULT=.*/GRUB_CMDLINE_LINUX_DEFAULT="nosplash"/' /etc/default/grub # rebuild the boot menu (update /boot/grub/grub.cfg) update-grub
Code:
cp /etc/default/grub-orig /etc/default/grub update-grub
Karmic sets the OpenOffice colors to KDE or Gnome colors. This is especially a
problem will color-coded spreadsheets, because the background colors set in the
spreadsheet no longer show. If you DON'T want OpenOffice to use your desktop
colors, this script will make that change. You may need to run this script
again if OO or your desktop is updated.
Code:
#!/bin/bash # openoffice color fix # [url]http://www.rebelzero.com/fixes/openofficeorg-dark-theme-workaround-with-ubuntu-804/8[/url] test=`grep "export OOO_FORCE_DESKTOP=none" /usr/lib/openoffice/program/soffice` if [ "$test" = "" ]; then sudo sed -i -n '1h;1!H;${;g;s/#!\/bin\/sh\x0A/#!\/bin\/sh\x0Aexport OOO_FORCE_DESKTOP=none\x0A/;p;}' /usr/lib/openoffice/program/soffice; fi
SSD CHANGES
If your desktop system has an SSD (solid state drive), there are certain changes
that are recommended to minimize the number of writes to the drive. These
changes include changing the kernel dirty page writeback time, changing the
commit time in fstab, using a ramdrive for /tmp /var/log and /var/tmp, changing
the scheduler for the SSD drive, and using a non-SSD drive for your swap
partition.
FYI: Installing Ubuntu to an SSD drive creates a remarkable change in
system performance - boot time and program startup times are drastically
reduced. I highly recommend the investment - I have never before seen a single
hardware change that affected performance as much as an SSD. Get a good quality
one such as the OCZ Vertex. I've been using this SSD for over 6 months and it's
excellent. 30G is plenty for a few system partitions, then use a regular hard
drive for your data.
Note: karmic final introduced a bug which was not present in alpha3. The
mountall command now will not mount a ramdrive to /var/log and /var/tmp in fstab
- you get a "waiting for tmpfs" message which interrupts the boot process. You
can read more on this issue here:
https://bugs
.launchpad.net/ubuntu/+source/mountall/+bug/431040 It currently says
there "fix released" but don't believe it - this bug is still present in karmic
final. As a result, it is now necessary to either mount /var to another drive,
or mount them after fstab. I have chosen to mount them after fstab, in part
because it makes the system faster, but this solution is imperfect. Kernel and
system logs which are started before rc.local runs may not be visible using this
method. I am using this method and haven't had an issue thus far, but choose
whatever solution works best for you. I am providing this method in case you
want to use it.
Also note that all of these changes can be made to a non-SSD system - using a
ramdrive may speed up your system somewhat, and can also be used for greater
security (the contents of /tmp are gone when the system is shutdown).
The script below will make the above changes EXCEPT for changing the fstab
commit time, and EXCEPT for moving your swap partition to another drive. It is
recommended that you add a commit= to each fstab line which mounts your SSD
partitions. For example, this line in /etc/fstab:
Code:
/dev/sda1 / ext3 noatime,errors=remount-ro 0 1
Code:
/dev/sda1 / ext3 noatime,errors=remount-ro,commit=240 0 1
However, this script does add a /tmp ramdrive mount in fstab. Also, it assumes
that only /dev/sda is an SSD drive. Read the comments in the script to see
exactly what changes are being made. Also note that this script will REPLACE
your /etc/rc.local. If you have customized it, you will want to add your
customizations back in after running it.
This script must be run with sudo.
UPDATE: Please see the modified versions of these scripts below:
http://kubuntuforums.net/forums/inde...3939#msg203939
Code:
#!/bin/bash # must be run with sudo # setup changes for SSD # modify /etc/sysctl.conf to change kernel dirty page writeback time test=`grep '\# I added to reduce disk activity' /etc/sysctl.conf` if [ "$test" = "" ]; then if [ ! -e /etc/sysctl.conf-orig ]; then cp -a /etc/sysctl.conf sysctl.conf-orig fi echo >> /etc/sysctl.conf echo '# I added to reduce disk activity to 240 seconds' >> /etc/sysctl.conf echo 'vm.dirty_ratio = 40' >> /etc/sysctl.conf echo 'vm.dirty_background_ratio = 1' >> /etc/sysctl.conf echo 'vm.dirty_writeback_centisecs = 24000' >> /etc/sysctl.conf fi # Note: if you DON'T have a laptop, uncomment the line below # to prevent changes possibly being undone #chmod -x /usr/lib/pm-utils/power.d/laptop-mode # edit fstab to mount ramdrive to /tmp test=`grep '^tmpfs.*\/tmp.*tmpfs' /etc/fstab` if [ "$test" = "" ]; then if [ ! -e /etc/fstab-orig ]; then cp -a /etc/fstab /etc/fstab-orig fi echo >> /etc/fstab echo '# I added to reduce disk activity' >> /etc/fstab echo 'tmpfs /tmp tmpfs defaults,noatime,size=1000M,mode=1777 0 0' >> /etc/fstab echo '# The following lines are disabled because of the bug in mountall' >> /etc/fstab echo '# These may be mounted in /etc/rc.local instead' >> /etc/fstab echo '# See [url]https://bugs.launchpad.net/ubuntu/+source/mountall/+bug/431040'[/url] >> /etc/fstab echo '#tmpfs /var/log tmpfs defaults,noatime,size=200M,mode=0755 0 0' >> /etc/fstab echo '#tmpfs /var/tmp tmpfs defaults,noatime,size=500M,mode=1777 0 0' >> /etc/fstab echo '#tmpfs /var/spool/postfix/public tmpfs defaults,noatime,size=50K,mode=1777 0 0' >> /etc/fstab fi # Replace rc.local for SSD changes if [ ! -e /etc/rc.local-orig ]; then cp -a /etc/rc.local /etc/rc.local-orig fi cat << EOF > /etc/rc.local #!/bin/bash # above must be #!/bin/bash not default /bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. # mount ramdrives to /var/log /var/tmp and /var/spool/postfix/public for dir in "/var/log" "/var/tmp" "/var/spool/postfix/public" ; do test=`mount | grep " on $dir "` if [ "$test" = "" ]; then sz="50K" md="1777" case "$dir" in /var/log ) sz="200M" md="0755" ;; /var/tmp ) sz="500M" md="1777" ;; /var/spool/postfix/public ) sz="50K" md="1777" ;; esac mount -t tmpfs -o size=$sz,noatime,mode=$md tmpfs $dir fi done # recreate default log folders for common apps to prevent hangs on startup # Note: you may need to add more folders to this list if your programs don't start for dir in apparmor apt cups dist-upgrade fsck installer news samba unattended-upgrades tor; do mkdir -p /var/log/$dir chmod go+rwx /var/log/$dir done # You may need to change the permissions or ownership on some log folders # For example (uncomment to activate) #chown debian-tor:debian-tor /var/log/tor # Set sda to use deadline scheduler # Note: if these changes don't seem to take, try pasting them into a root console # (or with sudo) manually once then reboot echo deadline > /sys/block/sda/queue/scheduler echo 1 > /sys/block/sda/queue/iosched/fifo_batch exit 0 EOF chmod u+x /etc/rc.local # If you run postfix, change postfix startup script so that rc.local runs first # Note: This may need to be repeated if postfix is upgraded test=`grep 'bash /etc/rc.local' /etc/init.d/postfix` if [ "$test" = "" ]; then sed -i -n ' 1h 1!H $ { g s/case "$1" in\x0A start)\x0A/case "$1" in\x0A start)\x0Abash \/etc\/rc.local\x0A/ p } ' /etc/init.d/postfix; fi exit
changes with the script below. You may need to modify it for your system. No
output indicates no problems found.
Code:
#!/bin/bash # Test SSD settings echo '###########################################################################' test=`cat /proc/mounts | grep "^/ .*commit="` if [ "$test" = "" ]; then echo 'BAD: cat /proc/mounts | grep "^/ .*commit="' fi test=`cat /proc/sys/vm/dirty_ratio` if [ "$test" != "40" ]; then echo 'BAD: cat /proc/sys/vm/dirty_ratio' fi test=`cat /proc/sys/vm/dirty_background_ratio` if [ "$test" != "1" ]; then echo 'BAD: cat /proc/sys/vm/dirty_background_ratio' fi test=`cat /proc/sys/vm/dirty_writeback_centisecs` if [ "$test" != "24000" ]; then echo 'BAD: cat /proc/sys/vm/dirty_writeback_centisecs' fi test=`cat /sys/block/sda/queue/scheduler | grep "[deadline]"` if [ "$test" = "" ]; then echo 'BAD: cat /sys/block/sda/queue/scheduler' fi test=`cat /sys/block/sda/queue/iosched/fifo_batch` if [ "$test" != "1" ]; then echo 'BAD: cat /sys/block/sda/queue/iosched/fifo_batch' fi test=`mount | grep "tmpfs on /var/log "` if [ "$test" = "" ]; then echo 'BAD: mount | grep "tmpfs on /var/log "' fi test=`mount | grep "tmpfs on /var/tmp "` if [ "$test" = "" ]; then echo 'BAD: mount | grep "tmpfs on /var/tmp "' fi test=`mount | grep "tmpfs on /tmp "` if [ "$test" = "" ]; then echo 'BAD: mount | grep "tmpfs on /tmp "' fi test=`mount | grep "tmpfs on /var/spool/postfix/public "` if [ "$test" = "" ]; then echo 'BAD: mount | grep "tmpfs on /var/spool/postfix/public "' fi
last 3 minutes. If you find a file which is always listed, even with no user
activity, then this could reduce the life and performance of your SSD. You may
want to change where that file is stored.
Code:
find / -xdev -cmin -3 # show files changed in last 3 minutes
https://wiki.ubuntu.com/Asus_P5QC#UP...SSD%29%20Added
http://ubuntuforums.org/showthread.php?t=839998
http://starcubetech.blogspot.com/200...on-ubuntu.html
https://bugs.launchpad.net/ubuntu/+s...ll/+bug/431040
TOR
tor is no longer in the ubuntu repos, and the noreply.org repo may not work due
to dependencies no longer in karmic. The following method uses an unofficial
PPA to install tor. Please read the tor project page carefully before using
tor, as there are additional setup requirements for effective use:
http://www.torproject.org/docs/debian.html.en
And the PPA homepage:
https://launchpad.net/~sevenmachines/+archive/tor
Run with sudo...
Code:
#!/bin/bash # must be run with sudo # Install tor torsrc="deb [url]http://ppa.launchpad.net/sevenmachines/tor/ubuntu[/url] karmic main" torkey=61E46227 torprint=454FEDB228E1455D687C9CBE35DA01C261E46227 # See [url]https://launchpad.net/~sevenmachines/+archive/tor[/url] # See [url]http://www.torproject.org/docs/debian.html.en[/url] test=`grep "$torsrc" /etc/apt/sources.list` if [ "$test" = "" ]; then echo "$torsrc" >> /etc/apt/sources.list fi gpg --keyserver keys.gnupg.net --recv $torkey gpg --export $torprint | sudo apt-key add - apt-get update apt-get install tor tor-geoipdb tsocks
http://ubuntuforums.org/archive/inde...t-1153938.html
NEPOMUK, SOPRANO, AND AKONADI
These are servers used by KDE4 for tagging and indexing of files. Some programs
you may use, such as music players or desktop search programs, may rely on them.
However, some people don't use them and don't want them slowing down their
system and consuming (considerable) RAM and CPU. These programs can be
extremely difficult to remove or disable - unfortunately it's not as simple as
removing them with apt-get. For example, apt-get doesn't even have a package
installed with the name 'nepomuk'. The KDE developers seem to be going out of
their way to make them mandatory, for whatever reasons, even though they are of
limited use to many people and can slow systems down considerably.
The script below is a work in progress and a hack- my crude attempt to disable
these programs from loading. If you have any input on methods I would be
interested to hear it. This script is brutal and will probably need to be run
again after system updates. Use at your own risk - I haven't had any problems
with it thus far, but you may use different software than I, and thus may be
affected differently.
First, if using KDE visit System Settings|Advanced|Desktop Search. Uncheck the
boxes to disable Nepomuk and Strigi.
Hopefully, the script below will disable these programs so they cannot be
started. Run with sudo.
Code:
#!/bin/bash # must be run with sudo # disable nepomuk, soprano, akonadi killall nepomukserver mkdir -p /usr/share/autostart/disabled # disable nepomukserver # [url]http://sidux.com/PNphpBB2-viewtopic-t-12116.html[/url] # also see /usr/share/kde4/services ? sudo mv -f /usr/share/autostart/nepomukserver.desktop /usr/share/autostart/disabled 2> /dev/null sudo mv -f /usr/bin/nepomuk-rcgen /usr/bin/nepomuk-rcgen-x 2> /dev/null sudo mv -f /usr/bin/nepomukserver /usr/bin/nepomukserver-x 2> /dev/null sudo mv -f /usr/bin/nepomukservicestub /usr/bin/nepomukservicestub-x 2> /dev/null chmod ugo-x /usr/bin/nepomuk* # disable soprano sudo mv -f /usr/bin/sopranocmd /usr/bin/sopranocmd-x 2> /dev/null sudo mv -f /usr/bin/sopranod /usr/bin/sopranod-x 2> /dev/null chmod ugo-x /usr/bin/soprano* # disable akonadi sudo mv -f /usr/bin/akonadiserver /usr/bin/akonadiserver-x 2> /dev/null chmod ugo-x /usr/bin/akonadi*
This script installs the Brother drivers for the Brother MFC-7420
printer/scanner (64 bit). I'm including it since it can easily be modified for
other Brother printers. It makes installation a snap and the printer is even
automatically added to CUPS. This script also fixes the 'can only scan as root'
problem.
First, download the following files from
http://solutions.brother.com/linux/en_us/
Note that the scanner driver is for 64 bit. If your files differ, you will need
to modify the script.
Code:
brmfc7420lpr-2.0.1-1.i386.deb cupswrapperMFC7420-2.0.1-2.i386.deb brscan2-0.2.4-0.amd64.deb
Code:
#!/bin/bash # must be run with sudo # Install Brother MFC-7420 MFC drivers if [ -e /usr/share/cups/model/MFC7420.ppd ]; then echo 'SKIPPED printer driver: already installed' else dpkg -i --force-all --force-architecture brmfc7420lpr-2.0.1-1.i386.deb mkdir /usr/share/cups/model/ dpkg -i --force-all --force-architecture cupswrapperMFC7420-2.0.1-2.i386.deb # [url]http://solutions.brother.com/linux/sol/printer/linux/linux_faq-2.html#142[/url] ln -s /usr/lib/libbrcomplpr2.so /usr/lib32/libbrcomplpr2.so fi if [ -e /usr/lib64/libbrscandec2.so ]; then echo 'SKIPPED scanner driver: already installed' else dpkg -i brscan2-0.2.4-0.amd64.deb fi # fix can only scan as root problem sed -i 's/^\(SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device",.* MODE=\).*/\1"0666"/' /lib/udev/rules.d/50-udev-default.rules echo 'Visit [url]http://localhost:631'[/url]
Below is a script which scans pics and documents of various sizes from the
command line. It is written for the Brother MFC-7420 scanner, but can easily be
modified to work with other scanners. Just change the device= line to your
device name, and you may also need to adjust the default offset. I wrote this
when I was scanning hundreds of old pics of various sizes and I wanted to do it
quickly from the command line.
Before running this script, run
Code:
sudo apt-get install sane sane-utils imagemagick
Code:
#!/bin/bash argsneeded=1 # Defaults device="brother2" colmode="24bit Color" size="2560x2560" quality="90" res="600" rotate=0 form="full" x="" y="" l="12" t="4.5" bright="" contrast="" help () { echo "Scans pic to jpg file on Brother MFC-4720" echo "Requires: sane-utils imagemagick" echo "Usage: scanpic [OPTIONS] outputfilename" echo 'Example: scanpic --opt 4x6v,bw --size 1280x1280 output.jpg' echo ' scans 4x6 vertical B&W print to 1280x1280(max) jpeg' echo ' with standard offset' echo "Options:" echo " --opt <option>,<option>,... image options (see below)" echo " --size <width>x<height> max final size (pixels) (overrides opt)" echo " [default 2560x2560]" echo " --quality <0...100> jpeg quality (overrides opt)" echo " [default 90]" echo " --dims <width>x<height> scan size (mm) (overrides opt)" echo " [default full]" echo " --offset <width>x<height> offset (mm) (overrides opt)" echo " [default 12x4.5mm]" echo " --res <dpi> resolution dpi (overrides opt)" echo " [default 600]" echo " --rotate <degrees> rotation (overrides opt) [default 0]" echo " --bright <-50...50%> scan brightness (overrides opt)" echo " --contrast <-50...50%> scan contrast (overrides opt)" echo "opt arguments:" echo ' bw color mode "Black & White"' echo ' gray color mode "True Gray"' echo ' col color mode "24bit Color" [default]' echo ' page scan size 8.5x11" gray - no offset' echo ' walletv scan size 44x64mm vertical' echo ' pocketv scan size 60x85mm vertical' echo ' pocketh scan size 85x60mm horiz' echo ' 3.5x5v scan size 3.5x5" vertical' echo ' 3.5x5h scan size 3.5x5" horiz' echo ' 3.5x5sv scan size 3.5x5" (smaller than 5") vertical' echo ' 3.5x5sh scan size 3.5x5" (smaller than 5") horiz' echo ' 4.25x3.5h scan size 4.25x3.5" horiz' echo ' 4x6v scan size 4x6" vertical' echo ' 4x6h scan size 4x6" horiz' echo ' 4x10 scan size 4x10" (place vertical)' echo ' 5x7 vscan size 5x7" vertical' echo ' 5x7h scan size 5x7" horiz' echo ' 8x10v scan size 8x10" vertical' echo ' 8x10h scan size 8x10" horiz (place vertical)' echo ' polaroidh Polaroid horiz' exit } #Process arguments index=0 while [ "$1" != "" ]; do if [ "${1:0:1}" = "-" ]; then case "$1" in --help | -help ) help ;; --opt ) if [ "$2" == "" ]; then echo Option $1 requires argument exit fi opt="$2" while [ -n "$opt" ] do # get subopt subopt=${opt%%,*} newopt=${opt#*,} if [ "$newopt" == "$opt" ]; then opt="" else opt="$newopt" fi case "$subopt" in bw ) colmode="Black & White";; gray ) colmode="True Gray";; col ) colmode="24bit Color";; page ) form=$subopt l=0 t=0 x=220 y=278 res=300 size="1280x1280" colmode="True Gray" ;; walletv ) form=$subopt l=13 t=4.5 x=44 y=64 ;; pocketv ) form=$subopt l=13 t=4.5 x=60 y=85 ;; pocketh ) form=$subopt l=13 t=4.5 x=85 y=60 ;; 4.25x3.5h ) form=$subopt l=13 t=4.5 x=110 y=89 ;; 3.5x5sv ) form=$subopt l=13 t=4.5 x=89 y=125 ;; 3.5x5sh ) form=$subopt l=13 t=4.5 x=125 y=89 ;; 3.5x5h ) form=$subopt l=13 t=4.5 x=130 y=89 ;; 3.5x5v ) form=$subopt l=13 t=4.5 x=89 y=130 ;; polaroidh ) form=$subopt l=18 t=14.5 x=91 y=68 ;; 4x6v ) form=$subopt l=12 t=4.5 x=101 y=152 ;; 4x6h ) form=$subopt l=12 t=5 x=152 y=101 ;; 5x7v ) form=$subopt l=12 t=5 x=126 y=178 ;; 5x7h ) form=$subopt l=12 t=5 x=178 y=126 ;; 4x10 ) form=$subopt l=12 t=4.5 x=101 y=250.8 rotate=90 ;; 8x10v ) form=$subopt l=12 t=4.5 x=206 y=252 ;; 8x10h ) form=$subopt l=12 t=4.5 x=206 y=252 rotate=90 ;; * ) echo Unrecognized --opt $subopt exit ;; esac done shift ;; --size ) if [ "$2" == "" ]; then echo Option $1 requires argument exit fi size="$2" shift ;; --res ) if [ "$2" == "" ]; then echo Option $1 requires argument exit fi res="$2" shift ;; --bright ) if [ "$2" == "" ]; then echo Option $1 requires argument exit fi bright="--brightness=$2" shift ;; --contrast ) if [ "$2" == "" ]; then echo Option $1 requires argument exit fi contrast="--contrast=$2" shift ;; --quality ) if [ "$2" == "" ]; then echo Option $1 requires argument exit fi quality="$2" shift ;; --rotate ) if [ "$2" == "" ]; then echo Option $1 requires argument exit fi rotate="$2" shift ;; --dims ) if [ "$2" == "" ]; then echo Option $1 requires argument exit fi arg="$2" x=${arg%x*} y=${arg#*x} if (( x == 0 )) || (( y == 0 )); then echo "Option $1 requires <width>x<height> argument" exit fi shift ;; --offset ) if [ "$2" == "" ]; then echo Option $1 requires argument exit fi arg="$2" l=${arg%x*} t=${arg#*x} if (( x == 0 )) || (( y == 0 )); then echo "Option $1 requires <width>x<height> argument" exit fi shift ;; * ) echo Unknown option $1 exit ;; esac else let "index+=1" case $index in 1 ) outfile="$1" ;; * ) echo Too many arguments exit ;; esac fi shift done if (( index < $argsneeded )); then help fi # Get pathname and filename filename=`basename "$outfile"` xx=${#filename} #len yy=${#outfile} #len pathname="${outfile:0:((yy-xx))}" if [ "$pathname" == "" ]; then pathname="." fi echo "Form: $form" if [ "$x" == "" ] || [ "$y" == "" ]; then echo "Scan Size: full (215.88 x 355.567 mm)" x="" y="" else echo "Scan Size: $x x $y mm" fi echo "Scan Offset: $l x $t mm" echo "Resolution: $res" echo "Color Mode: $colmode" echo "Device: $device" echo "Rotation: $rotate degrees" echo "JPEG Size: $size (max)" echo "JPEG Quality: $quality" echo tmpfile="$pathname/scanpic-temp.pnm" rm -f "$tmpfile" if [ "$x" == "" ]; then scanimage --device=$device --mode="$colmode" --resolution=$res $bright $contrast --format=pnm --progress -l $l -t $t > "$tmpfile" else scanimage --device=$device --mode="$colmode" --resolution=$res $bright $contrast --format=pnm --progress -l $l -t $t -x $x -y $y > "$tmpfile" fi echo echo Scan complete. Converting... if [ "$rotate" = "0" ]; then convert "$tmpfile" -resize ">$size" -filter Lanczos -quality $quality "$outfile" else convert "$tmpfile" -resize ">$size" -filter Lanczos -quality $quality -rotate $rotate "$outfile" fi rm -f $tmpfile echo Done. exit
This is a script for resizing pic(s), and can also send a pic to an email in
Kmail. I see they've finally added this email ability to Kubuntu, but this
script gives you more control over the size, etc.
You can add a menu item with the command "repic --email %U" so that you can
right-click on a pic (or pics) in your file manager and email it (them), or add
entries to resize it to different sizes. For example, right-click and Open
with... "Resize to 800x800".
Before running this script, run
Code:
sudo apt-get install imagemagick jhead
this, uncomment the jhead line.
Code:
#!/bin/bash tmp=/tmp argsneeded=1 size="2560x2560" quality=85 dstfile="" verbose=0 verb="" replace=0 remove=0 rotate=0 movetmp=0 email=0 attaches="" # Set the field seperator to a newline - allows for quoted wildcards IFS=" " help () { echo "Resizes jpg file(s) if larger than size (first rotates original if needed)" echo "Usage: repic [OPTIONS] FILE ..." echo "Option: --size ###x### [default $size]" echo "Option: --quality ## [default $quality]" echo "Option: --replace [overwrite original files]" echo "Option: --remove [remove original files]" echo "Option: --rotate [only auto-rotate original, no resize]" echo "Option: --verbose" echo "Option: --tmp [Move output file(s) to $tmp]" echo "Option: --email [Create an email message, 1024x768 in $tmp]" echo "Note: Options must be placed before files" exit } index=0 while [ "$1" != "" ]; do if [ "${1:0:1}" = "-" ]; then case "$1" in --help ) help ;; --size ) if [ "$2" == "" ]; then echo Option $1 requires argument exit fi size="$2" shift ;; --quality ) if [ "$2" == "" ]; then echo Option $1 requires argument exit fi quality="$2" shift ;; --verbose ) verbose=1 verb="-verbose" ;; --replace ) replace=1 ;; --remove ) remove=1 ;; --rotate ) rotate=1 ;; --tmp ) movetmp=1 ;; --email ) email=1 size="1024x768" ;; * ) echo Unknown option $1 exit ;; esac else for i in $1 ; do let "index+=1" srcfile="$i" # Rotate original if (( verbose == 1 )); then echo jhead -autorot '"'$srcfile'"' fi jhead -autorot "$srcfile" if (( rotate == 0 )); then # remove extension srcbase=`basename "$srcfile" .jpg` srcbase=`basename "$srcbase" .jpeg` srcbase=`basename "$srcbase" .JPG` srcbase=`basename "$srcbase" .JPEG` #get pathname filename="${srcfile##*/}" x=${#filename} #len y=${#srcfile} #len pathname=${srcfile:0:((y-x))} # Create resize tmpfile="$pathname$srcbase-resizetmp.jpg" if (( verbose == 1 )); then echo convert '"'$srcfile'"' $verb -resize '">'$size'"' -filter Lanczos -quality $quality '"'$tmpfile'"' fi convert "$srcfile" $verb -resize ">$size" -filter Lanczos -quality $quality "$tmpfile" errcode="$?" if [ -e "$tmpfile" ] && [ "$errcode" == "0" ]; then # Determine new size resize=`identify -format '%wx%h' "$tmpfile"` origsize=`identify -format '%wx%h' "$srcfile"` if [ "$resize" == "" ]; then resize="ERROR" fi else echo "ERROR: convert produced no output and/or error code $errcode" if (( verbose == 0 )); then echo convert '"'$srcfile'"' $verb -resize '">'$size'"' -filter Lanczos -quality $quality '"'$tmpfile'"' fi exit fi if [ "$resize" == "$origsize" ]; then if (( email == 1 )); then # add to email message attaches="$attaches --attach \"$srcfile\"" fi echo Not resizing $srcfile if (( verbose == 1 )); then echo rm -f '"'$tmpfile'"' fi rm -f "$tmpfile" else if (( replace == 1 )); then dstfile="$srcfile" else dstfile="$pathname$srcbase-[$resize].jpg" fi if (( verbose == 1 )); then echo mv '"'$tmpfile'"' '"'$dstfile'"' fi mv "$tmpfile" "$dstfile" # Rotate dst (just in case) if (( verbose == 1 )); then echo jhead -autorot '"'$dstfile'"' fi jhead -autorot "$dstfile" if (( remove == 1 )) && (( replace == 0 )); then # Remove original if (( verbose == 1 )); then echo rm -f '"'$srcfile'"' fi rm -f "$srcfile" fi if (( movetmp == 1 )); then # Move to tmp mv "$dstfile" "$tmp" dstfile="$tmp/"`basename $dstfile` fi if (( email == 1 )); then # add to email message attaches="$attaches --attach \"$dstfile\"" fi fi if (( verbose == 1 )); then echo fi fi done fi shift done if (( index < $argsneeded )); then help fi if (( email == 1 )) && [ -n "$attaches" ]; then # workaround kmail command line parse bugs echo "#!/bin/bash" > $tmp/repic-kmail-tmp.sh echo kmail -s "Pics" --composer $attaches >> $tmp/repic-kmail-tmp.sh bash $tmp/repic-kmail-tmp.sh rm $tmp/repic-kmail-tmp.sh fi exit #In k menu editor use %U to send list: # repic --email %U # Krusader User Action example: <action name="repic-email" > <title>Repic Email</title> <tooltip>Repic Email</tooltip> <icon>internet-mail</icon> <command>/user/scripts/repic --email %aList("Selected")%</command> <availability> <filename> <show>*.jpg</show> <show>*.jpeg</show> </filename> </availability> </action>
Below is a script which sets up vnc4server on Kubuntu karmic. This is based on
the guide here:
http://ubuntuforums.org/archive/inde...t-1078497.html
This setup allows you to login to KDE remotely using a command like
Code:
krdc 192.168.1.100:5901
reconnect, you will be in the same KDE session, unless you logged out (resumable
session).
Run this script with sudo, then reboot. Note that you will be asked to set your
VNC password. If you already have a VNC password file, you can comment out that
line.
VERY IMPORTANT: The server-args line in the service Xvnc entry of this script
has been broken up so this post is not so wide. You MUST put it back into one line
or it will not work. Each argument is separated by a space, and the fonts list is
comma-separated. I will also post this script as a file attachment in a reply below,
which will contain the correct server-args= line unbroken. I recommend downloading
that instead of the version below.:
Code:
#!/bin/bash # must be run with sudo # Setup vnc4server sudo apt-get install xinetd vnc4server /etc/init.d/xinetd stop killall -w Xvnc # edit /etc/kde4/kdm/kdmrc sed -i -n ' 1h 1!H $ { g s/\[Xdmcp\].*Willing=\/etc\/kde4\/kdm\/Xwilling/\[Xdmcp\]\x0AEnable\=true\x0APort\=177\x0AXaccess=\/etc\/kde4\/kdm\/Xaccess\x0AWilling=\/etc\/kde4\/kdm\/Xwilling/ p } ' /etc/kde4/kdm/kdmrc; # edit /etc/kde4/kdm/Xaccess sed -i 's/^\#\*.*\#any host can get a login window/\* \#any host can get a login window/' /etc/kde4/kdm/Xaccess sed -i 's/^\#\*.*CHOOSER BROADCAST.*\#any indirect host can get a chooser/\* CHOOSER BROADCAST #any indirect host can get a chooser/' /etc/kde4/kdm/Xaccess # Create /etc/xinetd.d/Xvnc - modify as needed # IMPORTANT: The server-args line below have been broken up so this post is not so wide. You MUST # put it back into one line or it will not work. Each entry is separated by a space, and the fonts list is # comma-separated. cat << EOF > /etc/xinetd.d/Xvnc service Xvnc { type = UNLISTED disable = no socket_type = stream protocol = tcp wait = yes user = root server = /usr/bin/Xvnc server_args = -inetd :1 -query 127.0.0.1 -geometry 1220x915 -depth 16 -once -fp /usr/share/fonts/X11/misc,/usr/share/fonts/X11/100dpi/:unscaled,/usr/share/fonts/X11/75dpi/:unscaled, /usr/share/fonts/X11/Type1,/usr/share/fonts/X11/100dpi,/usr/share/fonts/X11/75dpi, /var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType -DisconnectClients=1 -NeverShared passwordFile=/root/.vncpasswd -extension XFIXES port = 5901 } EOF # Setup vnc password echo 'Enter your new VNC password:' vncpasswd /root/.vncpasswd chmod go-rwx /root/.vncpasswd /etc/init.d/xinetd start echo 'Reboot may be required'
Some webcams have microphones in them which can be used to eavesdrop. If you
have such a webcam and want to disable its microphone, the following method
works. Note: this will probably disable any USB microphone or possibly any USB
audio device, not just webcams.
First, save this script (the original version of which was written by Landon
Curt Noll) as "usbaudiooff":
Code:
#!/bin/bash # # usbaudiooff Disable USB audio so that non-USB sound will not be confused # # chkconfig: 2345 04 04 # description: Remove the USB audio module # # See: [url]http://www.saillard.org/linux/pwc/[/url] for support or # [url]www.isthe.com/chongo/tech/comp/pwc/index.html[/url] for hints. # # Placed in the public domain by Landon Curt Noll # # chongo (Share and enjoy! :-)) [url]www.isthe.com/chongo/index.html[/url] # Modified for Kubuntu from # [url]http://isthe.com/chongo/tech/comp/pwc/rh8.0.html#disable_usb_audio[/url] # Source function library. #??? . /etc/rc.d/init.d/functions # setup AUDIO_FOUND="`/sbin/lsmod | /bin/grep '^snd_usb_audio '`" # See how we were called. case "$1" in start|restart|reload) echo -n "Disable USB audio: " if [ -z "$AUDIO_FOUND" ]; then passed "Disable USB audio -" else /sbin/rmmod snd_usb_audio RETVAL=$? if [ "$RETVAL" -eq 0 ]; then echo success "Disable USB audio -" else echo failure "Disable USB audio -" fi fi echo ;; stop) RETVAL=0 ;; status) echo -n "Looking for the USB audio module: $AUDIO_FOUND" RETVAL=0 echo ;; *) echo "Usage: usbaudiooff {start|stop|reload|status}" RETVAL=1 ;; esac exit $RETVAL
Code:
sudo cp usbaudiooff /etc/init.d sudo chmod u+rwx,go-w+rx /etc/init.d/usbaudiooff sudo update-rc.d usbaudiooff defaults
Code:
lsmod | grep snd_usb_audio
To re-enable USB audio:
Code:
update-rc.d -f usbaudiooff remove
Hope you get some use out of these - let me know if you encounter any bugs.
Comment