openSUSE

OpenSUSE specific

Speed up tips for (suse) linux installation

Speed up Linux installation

Tip: Speeding up the install time on SUSE Linux Applies to:

   * Novell Linux Desktop 9
   * Open Enterprise Server
   * SUSE Linux Professional 9.3
   * SUSE Linux 10
   * SUSE Linux Enterprise Server

SYNOPSIS: hdparm - get/set hard disk parameters

DESCRIPTION:

This cool solution will show you how it is possible to speed up the install time of your CD-ROM installation of SUSE Linux by using Linux shell command hdparm. hdparm is an a command line interface to various ATA/IDE hard disk device drivers.1 Warning, 'hdparm' may force your system to use higher values without regards to your hardware's limitations. It is a risk to use this program improperly and may cause damage to your systems. Please use extreme caution and do not exceed your hardwares limitations. Additionally WE TAKE NO RESPONSIBILITY FOR DAMAGED HARDWARE OR CORRUPTED DATA.

Know bugs are listed on Source Forge's website see notes for information

The following steps are needed to use hdparm in the installation of your SuSE LINUX system. Please note that this command only works with IDE devices, CDROMS and Hard-drives.

hdparm /dev/hda thenENTER

You will see something similar to this.

/dev/hda:
multcount = 16 (on)
IO_support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 0 (off)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 9726/255/63, sectors = 156250000, start =34523 

hdparm -c1 -d1 -m1 /dev/hda ENTER

Comparing the differences from the last time, you should now see that mulcount is set to 1, or on, IO support is now 32 bit and.using_dma is turned on.

/dev/hda:
multcount = 1 (on)
IO_support = 1 (32-bit)
unmaskirq = 0 (off)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 9726/255/63, sectors = 156250000, start = 0

When you complete your desired changes to your devices, you can return to the installation screen by using the Alt+F7.

muticount -m is used to get or set the sector count for a device that supports multiple sector IO.

IO support -s is used to set the IO setting on a device. Most devices are set to use 16bit. By setting this to 1 it turns on 32bit IO for faster transfers of information.

Using_dma -a by default this is turned off. DMA or Direct Memory Access is way to control system memory without using the CPU.

If you would like more information about hdparm; browse the official hdparm website at http://sourceforge.net/projects/hdparm/ or additional options may be found in the man pages. You now have the knowledge to decrease your installation times by exerting control over your IDE devices with the hdparm Linux shell command. If you have any questions about this Cool Solution, feel free to drop me an email anytime at tvickers@idltechnology.comDit e-mailadres wordt beschermd tegen spam bots, u heeft Javascript nodig om het te bekijken .

ABOUT THE AUTHOR:

Tony Vickers is the CTO and founder of IDL technology Group, Inc. IDL has been helping companies implement Enterprise Open Source Technologies since 1994. For more information, please visit us on the web located at www.idltechnology.com

Notes

1. Lord, Mark and Leppikangas, Tomi. "hdparm(8)." (Linux man page, 2005), 1.

Barr, Joe. "Hdparm and the Zen of data transfer Monday December," Enterprise Linux on the web, 07 October 2005.

<http://enterprise.linux.com/article.pl?sid=04/12/14/166253&tid=89> (December 20, 2004).

Flickenger, Rob. "Speeding up Linux Using hdparm." Linux Dev Center on the web, 07 October 2005.

<http://www.linuxdevcenter.com/pub/a/linux/2000/06/29/hdparm.html> (June 29, 2000).

Lord, Mark. "hdparm(8)." <http://sourceforge.net/projects/hdparm/ hdparm> (April, 2005).

KNOWN BUGS:

  1.

     ATA security options does not always work, error message: Problem issuing security command: Cannot allocate memory (http://sourceforge.net/tracker/?atid=736682&group_id=136732&func=browse).
  2.

     hdparm -t with 2 disks: WD (hdb) and Seagate(hda). hdparm -t /dev/hda -Timing buffered disk reads: -1504 MB in xxx seconds = MB/sec an infinite value (http://sourceforge.net/tracker/?atid=736682&group_id=136732&func=browse).

  1.

     When making 6.0 or 6.1 an "987: IDE_DRIVE_TASK_OUT undeclared" error occur(http://sourceforge.net/tracker/?atid=736682&group_id=136732&func=browse).
  2.

     Acoustic management for SAMSUNG SP1614N disk the -M option to control the acoustic level, but it seems non-functional (http://sourceforge.net/tracker/?atid=736682&group_id=136732&func=browse).

Problem w/ ZEN/rug/rpm database

'''Problem w/ ZEN/rug/rpm database

this problem is obsolete, it happened with OpenSUSE 10.2 and is no longer an issue in 10.3

Things to try when your openSUSE gets errors with the package database:

rm -rf /var/tmp/* && rczmd restart && rug refresh 

works around the problem. I'm not sure how to reproduce it though. It seems to happen randomly.

Speedup Package Management

Speeding up the package manager

Package Management is one part of the system where massive databases are thrown around, changed incrementally and is generally used heavily. Due to incremental nature of modifications it will cause the databases used to fragment, both internally (in the database blob) and externally (on the disk).

In openSUSE 10.3 we have two kinds of databases for package management.

Defragment internally

For the ZYPP cache database:
sqlite3 /var/cache/zypp/zypp.db vacuum
Or alternatively regenerate it from scratch:
rm /var/cache/zypp/zypp.db ; zypper refresh
After largish update it is helpful to run rpm --rebuilddb once.
This is just necessary after lots of packages changed/updated/installed and takes some time (10 minutes on a Laptop).

Defragment externally

While Linux filesystems try to not create heavily fragmented files, the slow increasing nature of the databases used in packagemanagement has fragmentation patterns.

So to best way to get rid of it, is to recreate the files using the pattern:

cp file file.new  # check for errors!
rm file
mv file.new file
Either remove it and regenerate it using zypper refresh or just apply
the cp/rm/mv on /var/cache/zypp/zypp.db.
Use the cp/rm/mv trick on /var/lib/rpm/Packages, Basenames, Filemd5s, Dirnames

Sample script

#!/bin/sh
sqlite3 /var/cache/zypp/zypp.db vacuum
rpm --rebuilddb         # takes long
for fn in       /var/cache/zypp/zypp.db \
                /var/lib/rpm/Packages   \
                /var/lib/rpm/Filemd5s   \
                /var/lib/rpm/Dirnames   \
                /var/lib/rpm/Basenames
do
        cp $fn $fn.new || exit 1
        rm $fn
        mv $fn.new $fn
done

zypp,rpm,speed,package management

C C C

Keyboard setting for diacritical characters

In KDE:

Regional settings

keyboard layout

xkb options | enable

compose key position | menu is compose

Monitor an OpenSUSE system

Disable hardware polling for CD-drives

hal cdrom polling hal is a core component of the various desktop environments and deals with all sorts of hardware interaction. One component of the hal daemon is the part where it polls the cdrom drive regularly (as often as once every two seconds!) to see if the user has inserted a CD. This is used, for example, to automatically open a new window with a file browser for the CD.

Such regular polling will keep the hardware awake somewhat; the amount of power consumed depends on the exact type of CDROM drive. It also depends on the presence of the ALPM feature.

If you rarely or never insert CDs (for example because the machine in question is a server located 3000 miles away), you can save some power by stopping this polling.

Current versions of hal have a special command for this:

hal-disable-polling --device /dev/scd0

Note that this means that you will not get a pop-up window if you insert a CD. To enable this polling again, use the this command:

hal-disable-polling --device /dev/scd0 --enable-polling

Newer SATA-based CDROM drives have the capability to notify the machine when a CD gets inserted, making polling unnecessary. Both the kernel and hal are currently undergoing development to detect and support this capability, so that polling is not needed at any time for these devices.

Install all updates using zypper

Install all updates using Zypper

The following command gives you ALL updates:

zypper up -t package

How to locally cache zypper update files

How to locally cache zypper update files

Maybe someday you try zypper dup to actualize your distribution and in middle of process it fail, because you are disconnected or some packages is actualized before you download it (especially on factory this can happen). It is more safety download packages at first and then install from this local files.

How todo this is little tricky, at first you must enable caching downloaded files (I do it only for remote connection):

   zypper mr –keep-packages –remote

So now you cache all downloaded files and now try testing run of dup. Trick is that all packages download for that test is cached.

   zypper dup –dry-run

Now if you have slow connection I reccomend also disable autorefresh for all repositories, because if repository is refreshed before dup, you can easily find that some packages is newer than package in cache and you must download it.

   zypper mr –all –no-refresh

Now is everything prepared for zypper dup, which use files from cache. Cache can take quite lot of disk space, so after dup you can clean it.

   zypper clean

And thats all. This features work from OpenSuse 11 and you can also use this trick for zypper update or zypper install.

Check and install media formats

1. Check if there are missing dependencies

Code:

     # LC_ALL=C zypper ve
     Reading installed packages...
     Dependencies of all installed packages are satisfied.

2. Check if there are packages installed from the VideoLAN repository

Code:

     $ rpm -qa --queryformat '%{NAME} -> %{VENDOR}\n' | grep -i VideoLAN
     libdvdcss -> VideoLAN Project (http://www.videolan.org)

Only libdvdcss should be installed from the VideoLAN repository.

3. Check your basic multimedia packages

Code:

     $ rpm --verify --query --all 'libav*' 'libpostproc*' 'libswscale*'

If it return anything there is a problem, check man rpm for details. No need to reinstall to be sure, this check is 100% sure.

4. Verify you have xine installed and installed from Packman

Code:

     $ rpm --query --queryformat '%{NAME}-%{VERSION}-%{RELEASE}-%{ARCH} -> %{VENDOR}\n' libxine1 libxine1-codecs
     libxine1-1.1.15-44.pm.0-x86_64 -> packman.links2linux.de
     libxine1-codecs-1.1.15-44.pm.0-x86_64 -> packman.links2linux.de

5. Check your xine packages

Code:

     $ rpm --verify --query --all '*xine*'

6. Verify you have all the gstreamer plugins (codecs) installed and installed from Packman

Code:

     $ rpm --query --queryformat '%{NAME}-%{VERSION}-%{RELEASE}-%{ARCH} -> %{VENDOR}\n' gstreamer-0_10-ffmpeg gstreamer-0_10-fluendo-mp3 gstreamer-0_10-fluendo-mpegdemux gstreamer-0_10-fluendo-mpegmux gstreamer-0_10-plugins-bad gstreamer-0_10-plugins-base gstreamer-0_10-plugins-good gstreamer-0_10-plugins-good-extra gstreamer-0_10-plugins-ugly
     gstreamer-0_10-ffmpeg-0.10.5-42.pm.1-x86_64 -> packman.links2linux.de
     gstreamer-0_10-fluendo-mp3-0.10.7-42.pm.2-x86_64 -> packman.links2linux.de
     gstreamer-0_10-fluendo-mpegdemux-0.10.15-42.pm.1-x86_64 -> http://packman.links2linux.de
     gstreamer-0_10-fluendo-mpegmux-0.10.4-42.pm.1-x86_64 -> packman.links2linux.de
     gstreamer-0_10-plugins-bad-0.10.8-42.pm.1-x86_64 -> packman.links2linux.de
     gstreamer-0_10-plugins-base-0.10.21-42.pm.1-x86_64 -> packman.links2linux.de
     gstreamer-0_10-plugins-good-0.10.10-42.pm.3-x86_64 -> packman.links2linux.de
     gstreamer-0_10-plugins-good-extra-0.10.10-42.pm.3-x86_64 -> packman.links2linux.de
     gstreamer-0_10-plugins-ugly-0.10.10-42.pm.1-x86_64 -> packman.links2linux.de

7. Check your gstreamer packages

Code:

     $ rpm --verify --query --all '*gst*'

8. Check your MPlayer package

Code:

     $ rpm --verify MPlayer

9. Check your VLC packages

Code:

     $ rpm --verify --query --all '*vlc*'
     .....UG.    /usr/bin/qvlc
     .....UG.    /usr/bin/svlc
     .....UG.    /usr/lib64/vlc/gui/libqt4_plugin.so

Like you see in this case there is a problem, but it's just a permissions problem. Anyway it's a packaging problem I'm going to report to Packman so they can fix it.

10. Check your w32codec package

Code:

     $ rpm --verify w32codec-all
     package w32codec-all is not installed

Note that this package only adds support for some rare formats, and only works on 32bits systems. On a x86-64 system it will not make any difference.

If after checking all this you are unable to fix your problem open a thread in this forum. But copy & paste (yes, c&p no just "everything seems ok") the commands from this post and your results, so we know you followed them correctly. And also give us a copy of your installed packages... don't say "I have xine from Packman", prove it!!! Code:

$ rpm --query --all 'libav*' 'libpostproc*' 'libswscale*' '*xine*' '*gst*' MPlayer '*vlc*' | grep -v avahi | sort                                                                                      
amarok-xine-1.4.10-100.pm.1                                                                                    
gstreamer-0_10-0.10.21-42.pm.3                                                                                 
gstreamer-0_10-ffmpeg-0.10.5-42.pm.1                                                                           
gstreamer-0_10-fluendo-mp3-0.10.7-42.pm.2                                                                      
gstreamer-0_10-fluendo-mpegdemux-0.10.15-42.pm.1                                                               
gstreamer-0_10-fluendo-mpegmux-0.10.4-42.pm.1
gstreamer-0_10-lang-0.10.21-42.pm.3
gstreamer-0_10-plugins-bad-0.10.8-42.pm.1
gstreamer-0_10-plugins-bad-lang-0.10.8-42.pm.1
gstreamer-0_10-plugins-base-0.10.21-42.pm.1
gstreamer-0_10-plugins-base-lang-0.10.21-42.pm.1
gstreamer-0_10-plugins-farsight-0.12.9-0.pm.3
gstreamer-0_10-plugins-good-0.10.10-42.pm.3
gstreamer-0_10-plugins-good-extra-0.10.10-42.pm.3
gstreamer-0_10-plugins-ugly-0.10.10-42.pm.1
gstreamer-0_10-plugins-ugly-lang-0.10.10-42.pm.1
gstreamer-0_10-utils-0.10.21-42.pm.3
gstreamer-utils-0.10.21-42.pm.3
kdemultimedia3-video-xine-3.5.10-5.21
libavc1394-0-0.5.3-104.1
libavcodec52-0.4.9.15866svn-20081117.pm.2304
libavdevice52-0.4.9.15866svn-20081117.pm.2304
libavformat52-0.4.9.15866svn-20081117.pm.2304
libavogadro0-0.8.1-18.1
libavutil49-0.4.9.15866svn-20081117.pm.2304
libgstapp-0_10-0-0.10.8-42.pm.1
libgstinterfaces-0_10-0-0.10.21-42.pm.1
libgstreamer-0_10-0-0.10.21-42.pm.3
libpostproc51-0.4.9.15866svn-20081117.pm.2304
libswscale0-0.4.9.15866svn-20081117.pm.2304
libvlc2-0.9.6-0.pm.1
libvlccore0-0.9.6-0.pm.1
libxine1-1.1.15-44.pm.0
libxine1-aa-1.1.15-44.pm.0
libxine1-codecs-1.1.15-44.pm.0
MPlayer-1.0rc2_r27637-3.pm.3
phonon-backend-gstreamer-0_10-4.2.0-53.3
phonon-backend-xine-4.1.3-59.11
vlc-0.9.6-0.pm.1
vlc-noX-0.9.6-0.pm.1
vlc-qt-0.9.6-0.pm.1
xinetd-2.3.14-115.1
xine-ui-0.99.5-161.1  

And to avoid problems... the most important thing I can say you: even if YaST/zypper/updater gives you such an option... **NEVER** ignore a dependency. Change vendor is ok, ignore dependencies never is a good idea.

Boot options in suse grub

install=http://provisioning/.......... --> where to boot OS from
autoyast=http://provisioning/......... --> where to get autoyast file from

Zypper tips

To check from which repo package came from

# rpm -qa --qf '%-20{NAME} %-20{VENDOR}\n' 'libav*5[678]'

To install only packages from one repo

#zypper in -r pvdm-kde43 amarok

Change the behaviour of download-install-download-install-download to download all-install all

modify /etc/zypp/zypp.conf and find and change:

commit.downloadMode = DownloadInAdvance

upgrading your system using 'zypper dup'

zypper dup -from repo -r, --repo <alias|#|URI>    Load only the specified repository.
zypper dup -r 5 -r 6 -r 7

=if you want to find a certain file:=

zypper in 'libqtiff.so()(64bit)'
Reading installed packages...
'libqt4-x11' providing 'libqtiff.so()(64bit)' is already installed.
Nothing to do.

if you want to install a certain version:

zypper in MozillaFirefox \>= 3

Other examples:

zypper in yast*                     # install all yast modules
zypper in -t pattern lamp_server    # install lamp_server pattern (packages  needed for a LAMP server) 
zypper in vim -emacs                # install vim and remove emacs in one go
zypper in amarok packman:libxine1   # install libxine1 from packman and  amarok from any repo
zypper in bitchx-1.1-81.x86_64.rpm  # install bitchx rpm from local directory
zypper in -f subversion             # force reinstallation of subversion

search packages

zypper search -s --match-exact virtualbox-ose
Reading installed packages...
S | Name           | Type    | Version    | Arch   | Repository
--+----------------+---------+------------+--------+------------------------------------
v | virtualbox-ose | package | 1.6.2-2.1  | x86_64 | VirtualBox OSE
i | virtualbox-ose | package | 1.5.6-33.1 | x86_64 | openSUSE-11.1-Oss
v | virtualbox-ose | package | 1.5.6-20.5 | x86_64 | VirtualBox OSE (
v | virtualbox-ose | package | 1.6.2-2.1  | i586   | VirtualBox OSE
v | virtualbox-ose | package | 1.5.6-33.1 | i586   | openSUSE-11.1-Oss
v | virtualbox-ose | package | 1.5.6-20.3 | i586   | VirtualBox OSE

patterns

list patterns:

zypper patterns

information on packages

zypper if amarok

Information for package amarok:
Repository: @System
Name: amarok
Version: 2.2.0-38.1
Arch: x86_64
Vendor: obs://build.opensuse.org/KDE
Installed: Yes
Status: up-to-date
Installed Size: 24.2 MiB
Summary: Media Player for KDE
Description:
Amarok is a media player for all kinds of media. This includes MP3, Ogg
Vorbis, audio CDs, podcasts and streams. Play lists can be stored in
.m3u or .pls files.

Other examples:

zypper info -t patch MozillaFirefox    # show information about 'MozillaFirefox' patch
zypper patch-info MozillaFirefox       # the same as above
zypper info -t pattern lamp_server     # show info about 'lamp_server' pattern
zypper info -t product openSUSE-FTP    # show info about specified product

dependencies

what-provides or wp

To list all providers of specified capability, do:

 zypper wp firefox
 Reading installed packages...
 S | Name           | Type    | Version     | Arch   | Repository
 --+----------------+---------+-------------+--------+------------------
 i | MozillaFirefox | package | 3.0-0.1     | x86_64 | Updates for 11.1
 v | MozillaFirefox | package | 2.9.95-25.1 | x86_64 | openSUSE-11.1-Oss
 v | MozillaFirefox | package | 3.0-0.1     | i586   | Updates for 11.1
 v | MozillaFirefox | package | 2.9.95-25.1 | i586   | openSUSE-11.1-Oss

Regarding optional dependencies, we do have them, and use them. They're enabled by default. To avoid the several hundred unexpected packages like in the example in the article you can use zypper with --no-recommends or turn them off in the zypper.conf config file.

The zypper summary before an installation distinguishes between hard dependencies and recommends, so you can see what turning recommends off would have saved you even if you didn't.

package locks

To lock all packages starting with 'yast2', do:

zypper al 'yast2*'
Reading installed packages...
Specified lock has been successfully added

To list currently active locks:

zypper ll
# | Name             | Type    | Repository
--+------------------+---------+-----------
1 | libpoppler3      | package | (any)
2 | libpoppler-glib3 | package | (any)
3 | yast*            | package | (any)

To remove a lock, do:

zypper rl yast2-packager

Other examples:

zypper al zypper                   # lock package 'zypper' (exact match)
zypper al -r repo-oss virtualbox*  # restrict the lock to 'repo-oss'  repository (allowing installation from others)
zypper rl 3                        # remove lock by number

rpm examples

# rpm -qi  amarok                 Show details of package
# rpm -qf  /usr/sbin/sshd         Shows where file came from
# rpm -qR openssh-server          Show dependencies - What do I need for this package to work?
# rpm --whatrequires initscripts  Find reverse dependencies - What will break if I remove this package
# rpm -qip                        Show details of not yet installed package
# rpm --verify openssh-server     Find out if any files in the package have been modified since install.
# rpm -qlv postfix                list all files in a rpm

Improve the font rendering - using subpixel hinting

zypper ar -f  http://download.opensuse.org/repositories/home:/muzlocker/openSUSE_11.4/ smoothfonts
zypper dup -r smoothfonts

Things to do after a fresh installation of openSUSE 11.4

This guide is a summary of the steps I take to customize a default installation of openSUSE.

This particular guide was rewritten for openSUSE 11.2, but most stuff should be applicable to other versions as well.

first: repos

first, type

# zypper lr -d
# | Alias        | Name                  | Enabled | Refresh | Priority | Type | URI                                                             |  Service
 -+--------------+-----------------------+---------+---------+----------+------+-----------------------------------------------------------------+--------
1 | repo-debug   | openSUSE-11.3-Debug   | No      | Yes     |   99     | NONE | http://download.opensuse.org/debug/distribution/11.3/repo/oss/  |
2 | repo-non-oss | openSUSE-11.3-Non-Oss | Yes     | Yes     |   99     | NONE | http://download.opensuse.org/distribution/11.3/repo/non-oss/    |
3 | repo-oss     | openSUSE-11.3-Oss     | Yes     | Yes     |   99     | NONE | http://download.opensuse.org/distribution/11.3/repo/oss/        |
4 | repo-source  | openSUSE-11.3-Source  | No      | Yes     |   99     | NONE | http://download.opensuse.org/source/distribution/11.3/repo/oss/ |
5 | repo-update  | openSUSE-11.3-Update  | Yes     | Yes     |   99     | NONE | http://download.opensuse.org/update/11.3/                       |

zypper rr < number of repo | name of repo | alias of repo>

zypper ar -f http://download.videolan.org/pub/videolan/vlc/SuSE/11.2/ vlc
zypper ar -f http://ftp.skynet.be/pub/packman/suse/11.2/ packman

zypper ar -f http://download.opensuse.org/repositories/KDE:/43/openSUSE_11.2/ kde43
zypper ar -f http://download.opensuse.org/repositories/KDE:/KDE4:/Community/openSUSE_11.2_KDE_43/ kde43community

zypper ar -f http://download.opensuse.org/repositories/KDE:/KDE4:/Factory:/Desktop/openSUSE_11.2/ kde44
zypper ar -f http://download.opensuse.org/repositories/KDE:/KDE4:/Community/openSUSE_11.2/ kde44comm
zypper ar -f http://download.opensuse.org/repositories/KDE:/KDE4:/Playground/openSUSE_11.2/ kde44play

In the end you should have the following repos:

  1. oss
  2. non-oss
  3. update
  4. kde43 or kde44
  5. kde43community or kde44comm
  6. packman
  7. vlc
  8. nvidia/ATI

Kernel stuff

Install this stuff now, because sooner or later you will need them. And sometimes the install/compile of a kernel module will fail without these

zypper in -y kernel-source linux-kernel-headers kernel-syms make gcc

utils

zypper in -y mc findutils-locate nmap

For multimedia stuff:

# zypper in -y flash-player mplayer ffmpeg a52dec mencoder x264 faac w32codec-all vlc

optional:

# zypper in -y gstreamer-0_10-plugins-good xine-browser-plugin swfdec-browser-plugin gxine-browser-plugin gstreamer-0_10-plugins-bad mplayerplug-in libxine1-codecs

Language:

zypper in -y ispell-dutch myspell-dutch

If you have installed from liveCD, localization may be missing:

zypper in -y kde4-l10n-nl kde4-l10n-nl-data kde4-l10n-nl-doc

firefox:

KDE:

KDE_USE_IPV6="no"

# zypper in kde4-windeco-aurorae kde4-windeco-chromi kde4-windeco-crystal kde4-windeco-dekorator kde4-windeco-nitrogen

and go to System Settings / Appearance / Windows / choose for example the aurorae theme engine with the example theme

Yast2:

OOo

Printer configuration

Power settings

network mounts

Repos

lap088:/home/pvdm # cat /etc/zypp/repos.d/*
[packman]
name=Packman
enabled=1
autorefresh=1
baseurl=http://packman.inode.at/suse/openSUSE_12.1
type=rpm-md
gpgcheck=1
gpgkey=http://packman.inode.at/suse/openSUSE_12.1/repodata/repomd.xml.key
keeppackages=0
[pvdm-garmin]
name=pvdm-garmin
enabled=1
autorefresh=1
baseurl=http://download.opensuse.org/repositories/Application:/Geo/openSUSE_12.1/
type=rpm-md
[pvdm-kde48-extra]
name=pvdm-kde48-extra
enabled=1
autorefresh=1
baseurl=http://pvdm.xs4all.nl/kde48extra/
type=rpm-md
keeppackages=0
[pvdm-kde48]
name=pvdm-kde48
enabled=1
autorefresh=1
baseurl=http://pvdm.xs4all.nl/kde48/
type=rpm-md
keeppackages=0
[pvdm-kernel]
name=pvdm-kernel
enabled=1
autorefresh=1
baseurl=http://pvdm.xs4all.nl/kernel/
type=rpm-md
keeppackages=0
[pvdm-nntpgrab]
name=pvdm-nntpgrab
enabled=0
autorefresh=1
baseurl=http://www.openftd.org/releases/openSUSE_12.1
type=rpm-md
keeppackages=0
[pvdm-smoothfonts]
name=pvdm-smoothfonts
enabled=1
autorefresh=1
baseurl=http://download.opensuse.org/repositories/home:/muzlocker/openSUSE_12.1/
type=rpm-md
keeppackages=0
[repo-non-oss]
name=Non-Oss
enabled=1
autorefresh=1
baseurl=http://download.opensuse.org/distribution/12.1/repo/non-oss/
path=/
type=yast2
keeppackages=0
[repo-oss]
name=Oss
enabled=1
autorefresh=1
baseurl=http://download.opensuse.org/distribution/12.1/repo/oss/
path=/
type=yast2
keeppackages=0
[Updates]
name=PvdM Updates
enabled=1
autorefresh=1
baseurl=http://pvdm.xs4all.nl/update/12.1/
path=/
type=rpm-md
keeppackages=0

Touchpad

hp.com tydelijk1 uitgebruide ww met CAPS johan(2) en cijfers

borderlinx pvdmjoomla uit cijf

Things to do after a fresh installation of openSUSE 12.1

This guide is a summary of the steps I take to customize a default installation of openSUSE.

This particular guide was rewritten for openSUSE 11.2, but most stuff should be applicable to other versions as well.

first: repos

first, type

# zypper lr -d

zypper rr < number of repo or name of repo or alias of repo>

zypper ar -f http://packman.inode.at/suse/openSUSE_12.1 packman

In the end you should have the following repos:

# zypper lr --uri
# | Alias                              | Name                               | Enabled | Refresh | URI                                                         
--+------------------------------------+------------------------------------+---------+---------+-------------------------------------------------------------
1 | Updates-for-openSUSE-12.1-12.1-1.4 | Updates for openSUSE 12.1 12.1-1.4 | Yes     | Yes     | http://download.opensuse.org/update/12.1/                   
2 | packman                            | Packman repository (openSUSE_12.1) | Yes     | No      | http://packman.inode.at/suse/openSUSE_12.1                  
3 | repo-non-oss                       | openSUSE-12.1-Non-Oss              | Yes     | Yes     | http://download.opensuse.org/distribution/12.1/repo/non-oss/
4 | repo-oss                           | openSUSE-12.1-Oss                  | Yes     | Yes     | http://download.opensuse.org/distribution/12.1/repo/oss/    

Kernel stuff

Install this stuff now, because sooner or later you will need them. And sometimes the install/compile of a kernel module will fail without these

zypper in -y kernel-source linux-kernel-headers kernel-syms make gcc

utils

zypper in -y mc findutils-locate nmap yakuake krusader chromium clementine vlc unetbootin p7zip krename

For multimedia stuff & codecs:

# zypper in -y flash-player flashplayer-kde4 mplayer ffmpeg a52dec mencoder x264 faac w32codec-all lame kdemultimedia4-thumbnailers

optional:

# zypper in -y gstreamer-0_10-plugins-good xine-browser-plugin swfdec-browser-plugin gxine-browser-plugin gstreamer-0_10-plugins-bad gstreamer-0_10-plugins-ugly mplayerplug-in libxine1-codecs k3b-codecs gstreamer-0_10-ffmpeg

for windows movies in webbrowser:

# zypper in gnome-mplayer gecko-mediaplayer

fonts

To install MS fonts so that LibreOffice documents looks closer to those on my colleagues' screen, execute the following (as root):

zypper in fetchmsttfonts

Language:

zypper in -y ispell-dutch myspell-dutch

If you have installed from liveCD, localization may be missing:

zypper in -y kde4-l10n-nl kde4-l10n-nl-data kde4-l10n-nl-doc

firefox:

KDE:

KDE_USE_IPV6="no"

(probably already is)

Yast2:

OOo

Printer configuration

Power settings

network mounts

Radeon

- The Radeon hardware was tested with the following non-stock options:

It is silly that these non-default options are still needed for the open-source driver that AMD officially supports, but that is how it stands right now.

- With the Nouveau driver the main performance-boosting item at this point is forcing the graphics card manually into its highest performance level / clock state. The Nouveau driver continues to leave the graphics core / memory / shader clocks at whatever the video BIOS to sets them at when initializing, unlike the NVIDIA binary driver that dynamically changes the performance levels based upon GPU load and other factors. Therefore, with most modern NVIDIA hardware having multiple performance levels, to get the GPU at the correct frequencies for 3D use you need to manually force them to the higher state. Meanwhile you need to hope that the NVIDIA driver properly supports re-clocking for your GPU and that once re-clocked you don't experience any rendering corruption or stability problems. Re-clocking involves loading the Nouveau DRM driver with a special command-line parameter and writing the desired performance level to a sysfs node. This information is covered in detail in Nouveau Reclocking: Buggy, But Can Boost Performance. I long for the day when the Nouveau driver properly supports re-clocking across all modern NVIDIA GPUs and can be enabled by default to be done automatically.

How to have the latest kernel in openSUSE

It is possible to have the latest kernel in openSUSE. However, there are a few thing you must consider. These will be discussed below.

We will be using the command line tool zypper to update to the latest kernel, because it is easier than YaST :D

stock kernels

OpenSUSE is installed (from DVD or wherever from) with a kernel called the 'stock' kernel. Sometimes this kernel is also referred to the GA kernel. This kernel remains the same for the whole time that that specific openSUSE version is supported, and is only updated with security issues and occasional bug fixes. This is called backporting. These updated stock-kernels appear in the update channel just as normal updates, so you should install them, just as other updates.

This is a list of the latest openSUSE versions and their stock kernels:

openSUSE version:    stock-kernel
12.2                 3.4.6-2.10
12.1                 3.1.9 upgraded to 3.1.10 for security/bugfixes
11.4                 2.6.37

kernel versions

openSUSE has the option to run other 'flavours' of the kernel. These include:

Usually, for a desktop/laptop system, you run the default or the desktop flavour.

keeping older kernel versions as fallback

It is good practice, when you enable the kernel-head repo and thus recieve the latest and greatest kernel, to keep some previous kernel(s) at hand to use as a fallback scenario. These kernels will appear in your grub menu so you will be able to choose them when booting up your machine.

Fortunately, zypper supports this with a few configuration options. It is possible for instance to instruct zypper to keep the stock kernel, the latest kernel, and the latest but one and to remove all others. That is cool, right?

The magic is in the file /etc/zypp/zypp.conf. There are two options there:

multiversion = provides:multiversion(kernel)
multiversion.kernels = latest,oldest

The first line enables the mutiple installation of kernels simultaniously. This is not possible by default, so this option is necessary.

The second has several options:

## Comma separated list of kernel packages to keep installed in parallel, if the
## above multiversion variable is set. Packages can be specified as
## 2.6.32.12-0.7 - Exact version to keep
## latest        - Keep kernel with the highest version number
## latest-N      - Keep kernel with the Nth highest version number
## running       - Keep the running kernel
## oldest        - Keep kernel with the lowest version number (the GA kernel)
## oldest+N      - Keep kernel with the Nth lowest version number
##
## Default: Do not delete any kernels if multiversion = provides:multiversion(kernel) is set
#multiversion.kernels = latest,oldest

So, if you want to keep the stock kernel and the latest kernel, use:

multiversion.kernels = latest,oldest

If you want to keep the stock kernel, the latest and the kernel before that, use:

multiversion.kernels = latest,oldest,latest-1

enabling the kernel head repository

To receive the latest kernel, you must create an additional repo to download from.

zypper ar -f http://download.opensuse.org/repositories/Kernel:/HEAD/standard/ kernel-repo

This command add a new repository (ar), enables refresh (-f), provides the URL, and a name (kernel-repo).

This repository always contains the lastest development kernel, i.e. 3.4.0-rc6-1-desktop. Do not expect to find older versions there, it is always the latest and only the latest build!

This repo is the same for all openSUSE version,

updating from the new repo

To actually download and install the new kernel, you must do a special update. This is called a distribution-upgrade. Don't worry, this won't update your entire installation! We will instruct zypper to only use updated packages from the kernel-repo we just created. A normal 'zypper up' won't replace packages from a different repo then the one it was originally installed from.

Issue the command:

zypper dup -r kernel-repo

This tells zypper to do a dist-upgrade from the kernel-repo, so only your new kernel files will be installed alongside the old ones, if you have properly configured the zypp.conf file.

check check double check

After you have completed these instructions, you can check which kernels you have installed:

rpm -qa | grep kernel

The output of that command on my system at time of this writing:

#rpm -qa | grep kernel | sort
kernel-default-devel-3.4.rc3-3.1.x86_64
kernel-default-devel-3.4.rc6-1.1.x86_64
kernel-desktop-3.4.rc3-3.1.x86_64
kernel-desktop-3.4.rc6-1.1.x86_64
kernel-desktop-devel-3.4.rc3-3.1.x86_64
kernel-desktop-devel-3.4.rc6-1.1.x86_64
kernel-devel-3.4.rc3-3.1.noarch
kernel-devel-3.4.rc6-1.1.noarch
kernel-source-3.4.rc3-3.1.noarch
kernel-source-3.4.rc6-1.1.noarch
kernel-syms-3.4.rc3-3.1.x86_64
kernel-syms-3.4.rc6-1.1.x86_64
kernel-xen-devel-3.4.rc3-3.1.x86_64
kernel-xen-devel-3.4.rc6-1.1.x86_64

As you can see, I have 2 kernels installed at the moment: 3.4.rc3 and 3.4.rc6. (The rest of the packages are necessary for other purposes, like Virtualbox.)

Fixing desktop freezes on large copies

Now this may or may not be specific to openSUSE, but here it is anyway:

I suffered from desktop lockups when copying large files, for instance from the wireless network to usb. THis was especially noticable in dolphin.

Even though I suspected it at first, now it appears that it is not dolphin that is acting up, it is the 'hugepage' option in the kernel.

So, how do we tweak it? Simpel. The following lines will do the trick as root:

echo never >/sys/kernel/mm/transparent_hugepage/defrag
echo 0 > /sys/kernel/mm/transparent_hugepage/khugepaged/defrag

-edit-

echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo madvise > /sys/kernel/mm/transparent_hugepage/enabled

KDE font settings

Fonts:

  1. 9
  2. 9
  3. 8
  4. 8
  5. 9
  6. 8
  7. 9
  8. 9

3,4 & 6

How to make the screen brightness keys work again in KDE

How to make button for screen brightness work on your laptop in KDE

When I started using a newer kernel in openSUSE 13.2, I noticed the buttons for screen brightness were no longer functioning on my laptop. This is verry annoying, so I decided to do something about it. I am using KDE. I will try to write the instructions as generic as possible, so that it will hopefully work in your situation too. This is a HP ELitebook 8570p.

find the right entry

First, we have to find the screen device, which is located somewhere in the /sys/devices/pci0000:00 directory.

Somewhere in this directory is a file located with the name 'brightness'. Let's find it. So, as root:

# find /sys/devices/pci0000:00 -name "brightness"
/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-LVDS-1/radeon_bl0/brightness
/sys/devices/pci0000:00/0000:00:1c.2/0000:24:00.1/leds/mmc0::/brightness
/sys/devices/pci0000:00/0000:00:1c.3/0000:25:00.0/leds/phy0-led/brightness

Remember, your output is probably different from what I got here.

I have a radeon card, so the first line contains the device we will be working with.

When you read the content of the 'file', you get the current brightness level:

# cat /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-LVDS-1/radeon_bl0/brightness
235

The value lies somewhere between 0 and 255, it's a one byte value.

You can test if this work for you by writing (still as root) a different value to that file: (remember to substitute the file for your graphics card)

# echo 200 > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-LVDS-1/radeon_bl0/brightness

If this works, you should see the brightness change, and you can go to the next step.

edit: for samsung rv720: "echo 8 > /sys/class/backlight/samsung/brightness" to restore the brightness. edit2: newer kernel uses this: echo 100 > /sys/class/backlight/nv_backlight/brightness

create the scripts

I created a simple QAD(quick and Dirty) 3 line script to read that value and increase it.

I put the script in my home user's bin directory:

user> vi ~/bin/brp

br=$(cat /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-LVDS-1/radeon_bl0/brightness)
br=$((br+10))
echo $br > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-LVDS-1/radeon_bl0/brightness

I called it 'brp' which is nice and short and stands for 'brightness plus' Note that I increase the value by 10 otherwise it would not change enough. You can vary that value of course to get finer control or get faster adjustment.

I created a similar script called brm which decreases the value:

user> vi ~/bin/brm

And paste the content

br=$(cat /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-LVDS-1/radeon_bl0/brightness)
br=$((br-10))
echo $br > /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-LVDS-1/radeon_bl0/brightness

# chmod +x brm brp

Now, the problem is that this file /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-LVDS-1/radeon_bl0/brightness may only be written by root. Notice that all commands manipulating the file so far have been executed as root. But you should have created the 2 script files brp and brm as your normal user account.

To make the file world writeable:

# chmod 777 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-LVDS-1/radeon_bl0/brightness

This will make the 2 scripts which are executed as your useraccount able to write to this file.

configure KDE

Then, lastly, redefine the keys on your laptop for screen brightness to point to your script:

Repeat this for the brightness up script file, so you end up with 2 shortcuts.

And that's it. This should work. Happy screening!

configure crontab

Oh, and after a reboot, the chmod 777 of the brightness file is needed again. So I did a dirty hack and added this to my crontab:

*/3 * * * *     root    chmod 777 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-LVDS-1/radeon_bl0/brightness

Snapper

Introduction

This article assumes you will be using Snapper with the Btrfs filesystem.

During a fresh install of openSUSE, the default is to use Btrfs on root, meaning / and the filesystem XFS on /home. If you select the option to not seperate /home during openSUSE install, the default is for everything, including /home, to be under Btrfs.

If you decide to use Btrfs & Snapper (default) during a fresh openSUSE install, it will automatically configure Snapper for you. This automatic configuration of Snapper means that snapshots will be made automatically when you use YaST2 and/or zypper. Please read section Software Requirements below for caveat.

You may convert EXT3 & EXT4 filesystems to Btrfs to take advantage of Snapper. Using Snapper on EXT4 filesystem is highly discouraged.

Important Details

The default behaviour when Snapper is configured to run on root, meaning /, is to exclude every Btrfs subvolume. This the same behaviour as on SUSE Enterprise. This means that if you have the subvolume /srv Snapper will not snapshot anything in /srv unless told specifically by you to do so. This also means that if you add a subvolume to / at any point in time, it will be excluded from Snapper's default snapshot behaviour.

Always be root when using Snapper or YaST2, unless otherwise specified.

YaST2 comes with a Snapper module called yast2-snapper and may be used to check and manipulate snapshots. It does not, however, have the ability to change Snapper configurations. That must be done in the terminal.

Taking snapshots is automatically enabled if the root partition (/) is big enough (approximately more than 8GB). Please remember: taking snapshots on partitions other than / is not enabled by default.

To see what subvolumes are created under / and therefore see which directories (subvolumes) are excluded from the default snapshots behaviour:

# btrfs subvolume list /

To have Snapper create a snapshot of a subvolume, you can either do it manually one-time via the snapper program, or create a new snapper config file. More information in the tutorial.

Software Requirements

You always need this package:

 snapper

If you use YaST2 to install, update or remove packages and want to have snapper automatically create snapshots when you use this tool:

 yast2-snapper

If you use zypper to install, update or remove packages and want to have snapper automatically create snapshots when you use this tool:

 snapper-zypp-plugin

If you want to have the ability for advanced btfs snapshot boot menu management:

 grub2-snapper-plugin

WARNING: the above packages are not always installed by default. What gets installed depends on what choices you make during the openSUSE installation process. Make sure you have the appropriate (usually that means all) packages listed above installed before making changes to your system, otherwise you may be in for a surprise when snapper does not automatically create snapshots you thought it would.

Snapper Basic Usage

Snapper is not restricted to creating and managing snapshots automatically by configuration; you can also create snapshot pairs ("before and after") or single snapshots manually using either the command line tool or the YaST module.

All Snapper operations are carried out for an existing configuration. You can only take snapshots of partitions or volumes for which a configuration exists. By default the system configuration (root) is used. If you want to create or manage snapshots for your own configuration you need to explicitly choose it. Use the Current Configuration drop-down box in YaST or specify the -c on the command line (snapper -c MYCONFIG COMMAND).

List all snapshots for the default configuration (root)

 snapper list

or

 snapper ls

Show which files and directories have been changed between snapshots

For files/directories changed between snapshot 21 and 22:

 snapper status 21..22

You can also show what files and directories have been changed from snapshot 41 going back to 39:

 snapper status 41..39

The output consists of a string encoding the status followed by the filename. The characters of the status string are:

  1. "+" means the file was created
  2. "-" means the file was deleted
  3. "c" means the content of the file has changed
  4. "t" means the type of the file has changed (e.g. from regular file to directory)
  5. "p" means the permissions are have changed
  6. "u" means the user ownership has changed
  7. "g" means the group ownership has changed
  8. "x" means the extended attribute information has changed
  9. "a" means the ACL information has changed
  10. "." means no change

Show the diff (difference in actual files) between snapshots

For diff between snapshot 71 and 72:

 snapper diff 71..72

You can also use this command to show the difference between a specific file. For example to show the diff from snapshot 71 to 72 only for file /etc/zypp/zypp.conf you would do the following:

 snapper diff 71..72 /etc/zypp/zypp.conf

Cleanup Algorithms

Unless you have a good reason to do otherwise, you should always specify the cleanup algorithm when creating a snapshot, otherwise the snapshot will never be deleted unless you do it manually. You do this by adding the following to your snapper commands:

 --cleanup-algorithm <number|timeline|empty-pre-post>

The following commands assume you will be creating snapshots on the default system configuration (root). As mentioned above, if you want to use the non-default configuration, add the following the the snapshot commands:

 -c MYCONFIG

Create a snapshot of the type pre and prints the snapshot number. First command needed to create a pair of snapshots used to save a "before" and "after" state.

 snapper create --type pre --print-number --description "Before the Apache config cleanup" --cleanup-algorithm number

Create a snapshot of the type post paired with the pre snapshot number 30. Second command needed to create a pair of snapshots used to save a "before" and "after" state.

 snapper create --type post--pre-number 30 --description "After the Apache config cleanup" --cleanup-algorithm number

Creates a stand-alone snapshot (type single) for the default (root) configuration with a description. Because no cleanup-algorithm is specified, the snapshot will never be deleted automatically.

 snapper create --description "Snapshot for week 2 2014"

Deleting Snapshots

Delete snapshot 65 for the default (root) configuration:

 snapper delete 65

Snapper Tutorial

First let us check how YaST has configured snapper:

# snapper list-configs
Config | Subvolume
-------+----------
root   | /  

As you can see YaST has created a snapper config called "root" for your root file system. You can see what snapshots exist:

# snapper list
Type   | # | Pre # | Date                         | Cleanup  | Description |  Userdata
-------+---+-------+------------------------------+----------+-------------+---------
single | 0 |       |                              |          | current     |         
single | 1 |       | Tue 22 Nov 2011 10:30:02 CET | timeline | timeline    |

Snapshot #0 always refers to the current system. There might already be several other snapshots depending on the uptime of your system and on whether you already used YaST or zypper.

Now we want to try snapper as a undo tool for YaST. First we run YaST:

# yast2 system_settings

Within YaST enable the SysReq. After you have finished YaST you see two new snapshots:

# snapper list
Type   | # | Pre # | Date                         | Cleanup  | Description          | Userdata
-------+---+-------+------------------------------+----------+----------------------+---------
single | 0 |       |                              |          | current              |         
single | 1 |       | Tue 22 Nov 2011 10:30:02 CET | timeline | timeline             |         
pre    | 2 |       | Tue 22 Nov 2011 10:41:28 CET | number   | yast system_settings |         
post   | 3 | 2     | Tue 22 Nov 2011 10:41:49 CET | number   |                      |

Types of Snapshots

It's time to explain the type of snapshots. Snapper creates a snapshot before and after YaST runs, these snapshots are called pre and post respectively. The post snapshots knows which pre snapshots belongs to it. By having a pre and post snapshot we can see what changes happened to the file system while YaST was running. Single snapshots have no special relationship to other snapshots.

Seeing What Has Changed (YaST)

Using snapper, it is easy to see what has changed while YaST was running. To do so you have to pass the number of the pre and post snapshot:

# snapper status 2..3
c... /etc/sysctl.conf

The 'c' means that the content of the file has changed.

We can also see the diff of the file:

# snapper diff 2..3
--- /.snapshots/2/snapshot/etc/sysctl.conf      2011-11-22 10:35:43.355493753 +0100
+++ /.snapshots/3/snapshot/etc/sysctl.conf      2011-11-22 10:41:47.019512185 +0100
@@ -17,7 +17,7 @@
 # See sysctl.conf(5) and sysctl(8) for more information
 #
 ####
-kernel.sysrq = 0
+kernel.sysrq = 1
 net.ipv4.ip_forward = 0
 net.ipv4.tcp_syncookies = 1
 net.ipv6.conf.all.forwarding = 0

So, if you don't like the change done by YaST and want to revert it call:

# snapper undochange 2..3
create:0 modify:1 delete:0
undoing change...
undoing change done

But note that snapper does not tell the kernel about the change like YaST did so you must either do so yourself or reboot.

Adding /home To Snapper

During installation YaST does not setup a snapper config for /home. We can do so manually:

# snapper -c home create-config /home

Whenever you want to use snapper for /home you must provide the option -c home.

Now you can see what files have changed since the last hourly snapshot:

# snapper -c home list
Type   | # | Pre # | Date                         | Cleanup  | Description | Userdata
-------+---+-------+------------------------------+----------+-------------+---------
single | 0 |       |                              |          | current     |         
single | 1 |       | Tue 22 Nov 2011 11:30:01 CET | timeline | timeline    |         

# snapper -c home status 1..0
comparing snapshots... done
+... /home/tux/just-married.jpg

The '+' sign means that the file is new.

Manually Creating A Snapshot

If you manually want to create a snapshot use:

# snapper -c home create --description "before the big cleanup"

YaST Snapper GUI

Finally yast2-snapper provides a YaST UI for snapper.

Troubleshooting

Logs

Snapper logs can be found in /var/log/snapper.log, check this file if you are having issues as it may contain useful troubleshooting information.

Snapper Videos

Snapper Quick Overview (4min)

Greg Kroah-Hartman & SUSE Linux Enterprise Product Manager Demo Snapper (~7min)

Snapper, Btrfs & LVM Presentation (22min)

Ansible

Snapper PvdM

Show configs:

# snapper list-configs

Create snapshot:

# snapper -c home create --description "/home snapshot"

View snapshots:

# snapper -c home ls

delete snapper config

# snapper -c home delete-config 

If that does not work:

Kde over ssh

$ export XDG_CURRENT_DESKTOP=kde
$ dolphin

Change root's theme

$ pkexec env "DISPLAY=$DISPLAY" "XAUTHORITY=$XAUTHORITY" "QT_QPA_PLATFORMTHEME=kde" systemsettings

then change theme as normal.

Upgrade using patch

Using patch

A small patch file is usually made available for a minor version upgrade. You'll need to download patch to use this Manually download and extract the patch file from the dumps site or follow the directions with wget below. Patches are incremental, you can not skip a version.

  1. cd to your main MediaWiki directory (the one with LocalSettings.php)
  1. Download the patch file and unzip it.
  1. Use patch -p1 --dry-run to check what will be changed (e.g., patch -p1 --dry-run -i mediawiki-x.xx.x.patch)
  1. If all is well, run patch again without --dry-run
  1. Check your Special:Version and you should see the new version number in place.

KDE apps look ugly and missing icons over ssh

 Re: Qt5 apps look ugly over SSH X forwarding
Sat May 06, 2017 8:10 am
In the remote SSH session:

Code: Select all
    export XDG_CURRENT_DESKTOP=kde

Things to do after a fresh installation of OpenSUSE

This guide is a summary of the steps I take to customize a default installation of openSUSE.

This particular guide was rewritten for openSUSE 11.2, but most stuff should be applicable to other versions as well.

first: repos

first, type

# zypper lr -d
# | Alias        | Name                  | Enabled | Refresh | Priority | Type | URI                                                             |  Service
 -+--------------+-----------------------+---------+---------+----------+------+-----------------------------------------------------------------+--------
1 | repo-debug   | openSUSE-11.3-Debug   | No      | Yes     |   99     | NONE | http://download.opensuse.org/debug/distribution/11.3/repo/oss/  |
2 | repo-non-oss | openSUSE-11.3-Non-Oss | Yes     | Yes     |   99     | NONE | http://download.opensuse.org/distribution/11.3/repo/non-oss/    |
3 | repo-oss     | openSUSE-11.3-Oss     | Yes     | Yes     |   99     | NONE | http://download.opensuse.org/distribution/11.3/repo/oss/        |
4 | repo-source  | openSUSE-11.3-Source  | No      | Yes     |   99     | NONE | http://download.opensuse.org/source/distribution/11.3/repo/oss/ |
5 | repo-update  | openSUSE-11.3-Update  | Yes     | Yes     |   99     | NONE | http://download.opensuse.org/update/11.3/                       |

zypper rr < number of repo | name of repo | alias of repo>

zypper ar -f http://download.videolan.org/pub/videolan/vlc/SuSE/11.2/ vlc
zypper ar -f http://ftp.skynet.be/pub/packman/suse/11.2/ packman

zypper ar -f http://download.opensuse.org/repositories/KDE:/43/openSUSE_11.2/ kde43
zypper ar -f http://download.opensuse.org/repositories/KDE:/KDE4:/Community/openSUSE_11.2_KDE_43/ kde43community

zypper ar -f http://download.opensuse.org/repositories/KDE:/KDE4:/Factory:/Desktop/openSUSE_11.2/ kde44
zypper ar -f http://download.opensuse.org/repositories/KDE:/KDE4:/Community/openSUSE_11.2/ kde44comm
zypper ar -f http://download.opensuse.org/repositories/KDE:/KDE4:/Playground/openSUSE_11.2/ kde44play

In the end you should have the following repos:

  1. oss
  2. non-oss
  3. update
  4. kde43 or kde44
  5. kde43community or kde44comm
  6. packman
  7. vlc
  8. nvidia/ATI

Kernel stuff

Install this stuff now, because sooner or later you will need them. And sometimes the install/compile of a kernel module will fail without these

zypper in -y kernel-source linux-kernel-headers kernel-syms make gcc

utils

zypper in -y mc findutils-locate nmap

For multimedia stuff:

# zypper in -y flash-player mplayer ffmpeg a52dec mencoder x264 faac w32codec-all vlc

optional:

# zypper in -y gstreamer-0_10-plugins-good xine-browser-plugin swfdec-browser-plugin gxine-browser-plugin gstreamer-0_10-plugins-bad mplayerplug-in libxine1-codecs

Language:

zypper in -y ispell-dutch myspell-dutch

If you have installed from liveCD, localization may be missing:

zypper in -y kde4-l10n-nl kde4-l10n-nl-data kde4-l10n-nl-doc

firefox:

KDE:

KDE_USE_IPV6="no"

# zypper in kde4-windeco-aurorae kde4-windeco-chromi kde4-windeco-crystal kde4-windeco-dekorator kde4-windeco-nitrogen

and go to System Settings / Appearance / Windows / choose for example the aurorae theme engine with the example theme

Yast2:

OOo

Printer configuration

Power settings

network mounts

Updating OpenSUSE in-place using zypper dup

What Why When How

1. Update the system first

Update your current running system with the latest patches. This will ensure that the update process will function correctly and no bugs exist in the rpm/zypper stack. If your system is already patched, continue with the next step If you haven't done so, enable an update repository and bring your system up-2-date.

# zypper addrepo --check --name 'openSUSE-11.1-Update' http://download.opensuse.org/update/11.1/ repo-update
# zypper ref -f && zypper up

After the update a reboot may be required. Make sure this step is successful before proceeding!

2. Delete non standard repos

In this step we need to disable all non-standard OpenSUSE repositories, leaving only the OSS and NON-OSS and an update channel.

# zypper lr -d

Here you will see the repos and their URLs. remove *ALL* the URLS that are not the stanard repos, so remove PackMan, VLC, buildservice repos, google repos, KDE repos, etc etc....

# zypper rr 

replace the number with the number displayed in the first column of the 'zypper lr -d' command In the end you will have just 3 repos: update, OSS and NONOSS.

3. Edit the repos with the new location

Now we will bring the 3 repo's URLs to the desired new version.

# cd /etc/zypp/repos.d/

use vi or your favourite editor to edit the 3 files there.

Modify the line with 'baseurl' to use the new location, so change the 11.1 into 11.2. While you're there, you can also modify the line with 'name' and maybe the first line between the brackets.

When you're done, you should have 3 files representing the 3 new repos.

4. Update the zypper program itself first

Enter the following commands:

# zypper ref -f
# zypper in zypper

5. Do the actual upgrade

We will download all packages locally first, to make sure the upgrade goes smoothly and uninterrupted.

Make sure you have enough space in /var !! Check with

# df -h

and see if the free space on / (or /var) is more then the next command states at the bottom summary, before you give the final go:

# zypper dup -d

Then start the upgrade:

# zypper dup

After this, you can add the repos you had before, like Packman etc. Make sure you add the repos for the new version. Then, do another 'zypper dup', use dup because packages may require a vendor change.

Repositories in openSUSE - The current state

#  | Alias     | Name      | Enabled | Refresh | Priority | Type   | URI                                                                               
---+-----------+-----------+---------+---------+----------+--------+-----------------------------------------------------------------------------------
1  | OSS       | OSS       | Yes     | Yes     |   99     | yast2  | http://download.opensuse.org/distribution/11.2/repo/oss/                          
2  | VLC       | VLC       | Yes     | Yes     |   99     | rpm-md | http://download.videolan.org/pub/videolan/vlc/SuSE/11.2/                                  
3  | Wine      | Wine      | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/repositories/Emulators:/Wine/openSUSE_11.2/                  
4  | ati       | ati       | Yes     | Yes     |   99     | rpm-md | http://www2.ati.com/suse/11.2/                                                            
5  | faccont   | FacCont   | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/repositories/openSUSE:Factory:Contrib/standard               
6  | moz       | moz       | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/repositories/mozilla/openSUSE_11.2/                          
7  | nonoss    | NonOSS    | Yes     | Yes     |   99     | yast2  | http://download.opensuse.org/distribution/11.2/repo/non-oss/                              
8  | ooounst   | ooounst   | Yes     | Yes     |   99     | rpm-md | http://download.opensuse.org/repositories/OpenOffice.org:/UNSTABLE/openSUSE_11.2/         
9  | openftd   | openftd   | Yes     | Yes     |   99     | rpm-md | http://www.openftd.org/releases/testing/openSUSE_11.2                                     
10 | p-kde44   | p-kde44   | Yes     | Yes     |   98     | rpm-md | http://pvdm.xs4all.nl/kde44/                                                              
11 | p-kdecomm | p-kdecomm | Yes     | Yes     |   99     | rpm-md | http://pvdm.xs4all.nl/kde44community                                                      
12 | p-kdeplay | p-kdeplay | Yes     | Yes     |   99     | rpm-md | http://pvdm.xs4all.nl/kde44playground                                                     
13 | p-oss     | p-oss     | Yes     | Yes     |   99     | yast2  | http://pvdm.xs4all.nl/opensuse112_64/                                                     
14 | p-up      | p-up      | Yes     | Yes     |   99     | rpm-md | http://pvdm.xs4all.nl/update/11.2/                                                        
15 | packman   | Packman   | Yes     | Yes     |   99     | rpm-md | http://ftp.skynet.be/pub/packman/suse/11.2/                                               

Software regelmatig te checken

Upgrading the system to a newer version using zypper dup

Warning: this procedure only works on openSUSE 11.1+

This procedure I have written is based on the official openSUSE wiki. I have made it more compact and readable.

As root:

1. check that you have an update repo, that is is enabled, and update the system using

#zypper up

2. disable all current repos using

#zypper mr --all --disable

3. add the new repos, for 11.3 the commands are:

 zypper addrepo --name "openSUSE-11.3 OSS" http://download.opensuse.org/distribution/11.3/repo/oss/ repo-11.3-oss
 zypper addrepo --name "openSUSE-11.3 Non-OSS" http://download.opensuse.org/distribution/11.3/repo/non-oss/ repo-11.3-non-oss
 zypper addrepo --name "openSUSE-11.3 Updates" http://download.opensuse.org/update/11.3/ repo-11.3-update

4. add 3rd party repos you had before, like packman, but be careful not to add conflicting repos. Check they are the 11.3 version!

5. perform a repo refresh using:

# zypper ref -f

6. do the actual upgrade, by downloading all the packages first and then installing (this is safer):

# zypper dup --download "in-advance"

Be sure to check the 'packages to downgrade' and 'packages to remove' part of the list.

6a. I noticed, and this is not in the official wiki, that the last commandline did not do the actual install, it did only the download. So you have to run

# zypper dup 

7. afterwards you can review all the repos (using # yast2 repositories) and remove the ones from the old version we disabled in step 2.

8. add any repo you miss here and you're done!