Using echo and cat

Hello,
I am trying to test an external speech synthesizer on my laptop, a MacBook pro running os 10.6 snow leopard. I have a question regarding the echo and cat commands. I wondered if I have to set something up in order to use cat or echo with my doubletalk speech synthesizer. I have my speech synthesizer hooked up to a USB to serial adaptor and my adaptor plugged into a USB port on my laptop. I have tested my synthesizer with a terminal emulator called Kermit. And everything seems to work i.e. my synthesizer produced output, so I believe my synthesizer, my USB to serial adaptor and it's driver, are all working. My question is if I want to use the cat or echo command to send data to my synthesizer do I have to set anything up? Like the speed my synthesizer needs is 9600 baud, would I have to set up my computer in terminal to have a 9600 baud speed? Speed by the way is just an example, I believe the speed is correct. btw I know about VoiceOver.

Have you checked in with the app 'Audio MIDI Setup' to see if perhaps anything there applies. Located in the Utilities folder btw.
Sounds interesting and good luck in any case.

Similar Messages

  • Using iweb and js-kit echo comments without lots of blank spacebelowcomment

    I am using iweb and js-kit echo for comments. When I use this I need to extend the page in order for comments to show up on the page. Before the comments are there the space is blank. How do I get the page to lengthen each time a comment is left.

    The HTML snippet has a fixed width and height of 635x1681 (in your case).
    Just as iWeb pages have a fixed width and height.
    Message was edited by: Wyodor

  • System encryption using LUKS and GPG encrypted keys for arch linux

    Update: As of 2012-03-28, arch changed from gnupg 1.4 to 2.x which uses pinentry for the password dialog. The "etwo" hook described here doesn't work with gnupg 2. Either use the openssl hook below or use a statically compiled version of gnupg 1.4.
    Update: As of 2012-12-19, the mkinitcpio is not called during boot, unless the "install" file for the hook contains "add_runscript". This resulted in an unbootable system for me. Also, the method name was changed from install () to build ().
    Update: 2013-01-13: Updated the hook files using the corrections by Deth.
    Note: This guide is a bit dated now, in particular the arch installation might be different now. But essentially, the approach stays the same. Please also take a look at the posts further down, specifically the alternative hooks that use openssl.
    I always wanted to set up a fully encrypted arch linux server that uses gpg encrypted keyfiles on an external usb stick and luks for root filesystem encryption. I already did it once in gentoo using this guide. For arch, I had to play alot with initcpio hooks and after one day of experimentation, I finally got it working. I wrote a little guide for myself which I'm going to share here for anyone that might be interested. There might be better or easier ways, like I said this is just how I did it. I hope it might help someone else. Constructive feedback is always welcome
    Intro
    Using arch linux mkinitcpio's encrypt hook, one can easily use encrypted root partitions with LUKS. It's also possible to use key files stored on an external drive, like an usb stick. However, if someone steals your usb stick, he can just copy the key and potentially access the system. I wanted to have a little extra security by additionally encrypting the key file with gpg using a symmetric cipher and a passphrase.
    Since the encrypt hook doesn't support this scenario, I created a modifed hook called “etwo” (silly name I know, it was the first thing that came to my mind). It will simply look if the key file has the extension .gpg and, if yes, use gpg to decrypt it, then pipe the result into cryptsetup.
    Conventions
    In this short guide, I use the following disk/partition names:
    /dev/sda: is the hard disk that will contain an encrypted swap (/dev/sda1), /var (/dev/sda2) and root (/dev/sda3) partition.
    /dev/sdb is the usb stick that will contain the gpg encrypted luks keys, the kernel and grub. It will have one partition /dev/sdb1 formatted with ext2.
    /dev/mapper/root, /dev/mapper/swap and /dev/mapper/var will be the encrypted devices.
    Credits
    Thanks to the authors of SECURITY_System_Encryption_DM-Crypt_with_LUKS (gentoo wiki), System Encryption with LUKS (arch wiki), mkinitcpio (arch wiki) and Early Userspace in Arch Linux (/dev/brain0 blog)!
    Guide
    1. Boot the arch live cd
    I had to use a newer testing version, because the 2010.05 cd came with a broken gpg. You can download one here: http://releng.archlinux.org/isos/. I chose the “core“ version. Go ahead and boot the live cd, but don't start the setup yet.
    2. Set keymap
    Use km to set your keymap. This is important for non-qwerty keyboards to avoid suprises with passphrases...
    3. Wipe your discs
    ATTENTION: this will DELETE everything on /dev/sda and /dev/sdb forever! Do not blame me for any lost data!
    Before encrypting the hard disc, it has to be completely wiped and overwritten with random data. I used shred for this. Others use badblocks or dd with /dev/urandom. Either way, this will take a long time, depending on the size of your disc. I also wiped my usb stick just to be sure.
    shred -v /dev/sda
    shred -v /dev/sdb
    4. Partitioning
    Fire up fdisk and create the following partitions:
    /dev/sda1, type linux swap.
    /dev/sda2: type linux
    /dev/sda3: type linux
    /dev/sdb1, type linux
    Of course you can choose a different layout, this is just how I did it. Keep in mind that only the root filesystem will be decrypted by the initcpio. The rest will be decypted during normal init boot using /etc/crypttab, the keys being somewhere on the root filesystem.
    5. Format  and mount the usb stick
    Create an ext2 filesystem on /dev/sdb1:
    mkfs.ext2 /dev/sdb1
    mkdir /root/usb
    mount /dev/sdb1 /root/usb
    cd /root/usb # this will be our working directory for now.
    Do not mount anything to /mnt, because the arch installer will use that directory later to mount the encrypted root filesystem.
    6. Configure the network (if not already done automatically)
    ifconfig eth0 192.168.0.2 netmask 255.255.255.0
    route add default gw 192.168.0.1
    echo "nameserver 192.168.0.1" >> /etc/resolv.conf
    (this is just an example, your mileage may vary)
    7. Install gnupg
    pacman -Sy
    pacman -S gnupg
    Verify that gnupg works by launching gpg.
    8. Create the keys
    Just to be sure, make sure swap is off:
    cat /proc/swaps
    should return no entries.
    Create gpg encrypted keys (remember, we're still in our working dir /root/usb):
    dd if=/dev/urandom bs=512 count=4 | gpg -v --cipher-algo aes256 --digest-algo sha512 -c -a > root.gpg
    dd if=/dev/urandom bs=512 count=4 | gpg -v --cipher-algo aes256 --digest-algo sha512 -c -a > var.gpg
    Choose a strong password!!
    Don't do this in two steps, e.g don't do dd to a file and then gpg on that file. The key should never be stored in plain text on an unencrypted device, except if that device is wiped on system restart (ramfs)!
    Note that the default cipher for gpg is cast5, I just chose to use a different one.
    9. Create the encrypted devices with cryptsetup
    Create encrypted swap:
    cryptsetup -c aes-cbc-essiv:sha256 -s 256 -h whirlpool -d /dev/urandom create swap /dev/sda1
    You should see /dev/mapper/swap now. Don't format nor turn it on for now. This will be done by the arch installer.
    Important: From the Cryptsetup 1.1.2 Release notes:
    Cryptsetup can accept passphrase on stdin (standard input). Handling of new line (\n) character is defined by input specification:
        if keyfile is specified as "-" (using --key-file=- or by positional argument in luksFormat and luksAddKey, like cat file | cryptsetup --key-file=- <action> ), input is processed
          as normal binary file and no new line is interpreted.
        if there is no key file specification (with default input from stdin pipe like echo passphrase | cryptsetup <action> ) input is processed as input from terminal, reading will
          stop after new line is detected.
    If I understand this correctly, since the randomly generated key can contain a newline early on, piping the key into cryptsetup without specifying --key-file=- could result in a big part of the key to be ignored by cryptsetup. Example: if the random key was "foo\nandsomemorebaratheendofthekey", piping it directly into cryptsetup without --key-file=- would result in cryptsetup using only "foo" as key which would have big security implications. We should therefor ALWAYS pipe the key into cryptsetup using --key-file=- which ignores newlines.
    gpg -q -d root.gpg 2>/dev/null | cryptsetup -v -–key-file=- -c aes-cbc-essiv:sha256 -s 256 -h whirlpool luksFormat /dev/sda3
    gpg -q -d var.gpg 2>/dev/null | cryptsetup -v –-key-file=- -c aes-cbc-essiv:sha256 -s 256 -h whirlpool -v luksFormat /dev/sda2
    Check for any errors.
    10. Open the luks devices
    gpg -d root.gpg 2>/dev/null | cryptsetup -v –-key-file=- luksOpen /dev/sda3 root
    gpg -d var.gpg 2>/dev/null | cryptsetup -v –-key-file=- luksOpen /dev/sda2 var
    If you see /dev/mapper/root and /dev/mapper/var now, everything is ok.
    11. Start the installer /arch/setup
    Follow steps 1 to 3.
    At step 4 (Prepare hard drive(s), select “3 – Manually Configure block devices, filesystems and mountpoints. Choose /dev/sdb1 (the usb stick) as /boot, /dev/mapper/swap for swap, /dev/mapper/root for / and /dev/mapper/var for /var.
    Format all drives (choose “yes” when asked “do you want to have this filesystem (re)created”) EXCEPT for /dev/sdb1, choose “no”. Choose the correct filesystem for /dev/sdb1, ext2 in my case. Use swap for /dev/mapper/swap. For the rest, I chose ext4.
    Select DONE to start formatting.
    At step 5 (Select packages), select grub as boot loader. Select the base group. Add mkinitcpio.
    Start step 6 (Install packages).
    Go to step 7 (Configure System).
    By sure to set the correct KEYMAP, LOCALE and TIMEZONE in /etc/rc.conf.
    Edit /etc/fstab:
    /dev/mapper/root / ext4 defaults 0 1
    /dev/mapper/swap swap swap defaults 0 0
    /dev/mapper/var /var ext4 defaults 0 1
    # /dev/sdb1 /boot ext2 defaults 0 1
    Configure the rest normally. When you're done, setup will launch mkinitcpio. We'll manually launch this again later.
    Go to step 8 (install boot loader).
    Be sure to change the kernel line in menu.lst:
    kernel /vmlinuz26 root=/dev/mapper/root cryptdevice=/dev/sda3:root cryptkey=/dev/sdb1:ext2:/root.gpg
    Don't forget the :root suffix in cryptdevice!
    Also, my root line was set to (hd1,0). Had to change that to
    root (hd0,0)
    Install grub to /dev/sdb (the usb stick).
    Now, we can exit the installer.
    12. Install mkinitcpio with the etwo hook.
    Create /mnt/lib/initcpio/hooks/etwo:
    #!/usr/bin/ash
    run_hook() {
    /sbin/modprobe -a -q dm-crypt >/dev/null 2>&1
    if [ -e "/sys/class/misc/device-mapper" ]; then
    if [ ! -e "/dev/mapper/control" ]; then
    /bin/mknod "/dev/mapper/control" c $(cat /sys/class/misc/device-mapper/dev | sed 's|:| |')
    fi
    [ "${quiet}" = "y" ] && CSQUIET=">/dev/null"
    # Get keyfile if specified
    ckeyfile="/crypto_keyfile"
    usegpg="n"
    if [ "x${cryptkey}" != "x" ]; then
    ckdev="$(echo "${cryptkey}" | cut -d: -f1)"
    ckarg1="$(echo "${cryptkey}" | cut -d: -f2)"
    ckarg2="$(echo "${cryptkey}" | cut -d: -f3)"
    if poll_device "${ckdev}" ${rootdelay}; then
    case ${ckarg1} in
    *[!0-9]*)
    # Use a file on the device
    # ckarg1 is not numeric: ckarg1=filesystem, ckarg2=path
    if [ "${ckarg2#*.}" = "gpg" ]; then
    ckeyfile="${ckeyfile}.gpg"
    usegpg="y"
    fi
    mkdir /ckey
    mount -r -t ${ckarg1} ${ckdev} /ckey
    dd if=/ckey/${ckarg2} of=${ckeyfile} >/dev/null 2>&1
    umount /ckey
    # Read raw data from the block device
    # ckarg1 is numeric: ckarg1=offset, ckarg2=length
    dd if=${ckdev} of=${ckeyfile} bs=1 skip=${ckarg1} count=${ckarg2} >/dev/null 2>&1
    esac
    fi
    [ ! -f ${ckeyfile} ] && echo "Keyfile could not be opened. Reverting to passphrase."
    fi
    if [ -n "${cryptdevice}" ]; then
    DEPRECATED_CRYPT=0
    cryptdev="$(echo "${cryptdevice}" | cut -d: -f1)"
    cryptname="$(echo "${cryptdevice}" | cut -d: -f2)"
    else
    DEPRECATED_CRYPT=1
    cryptdev="${root}"
    cryptname="root"
    fi
    warn_deprecated() {
    echo "The syntax 'root=${root}' where '${root}' is an encrypted volume is deprecated"
    echo "Use 'cryptdevice=${root}:root root=/dev/mapper/root' instead."
    if poll_device "${cryptdev}" ${rootdelay}; then
    if /sbin/cryptsetup isLuks ${cryptdev} >/dev/null 2>&1; then
    [ ${DEPRECATED_CRYPT} -eq 1 ] && warn_deprecated
    dopassphrase=1
    # If keyfile exists, try to use that
    if [ -f ${ckeyfile} ]; then
    if [ "${usegpg}" = "y" ]; then
    # gpg tty fixup
    if [ -e /dev/tty ]; then mv /dev/tty /dev/tty.backup; fi
    cp -a /dev/console /dev/tty
    while [ ! -e /dev/mapper/${cryptname} ];
    do
    sleep 2
    /usr/bin/gpg -d "${ckeyfile}" 2>/dev/null | cryptsetup --key-file=- luksOpen ${cryptdev} ${cryptname} ${CSQUIET}
    dopassphrase=0
    done
    rm /dev/tty
    if [ -e /dev/tty.backup ]; then mv /dev/tty.backup /dev/tty; fi
    else
    if eval /sbin/cryptsetup --key-file ${ckeyfile} luksOpen ${cryptdev} ${cryptname} ${CSQUIET}; then
    dopassphrase=0
    else
    echo "Invalid keyfile. Reverting to passphrase."
    fi
    fi
    fi
    # Ask for a passphrase
    if [ ${dopassphrase} -gt 0 ]; then
    echo ""
    echo "A password is required to access the ${cryptname} volume:"
    #loop until we get a real password
    while ! eval /sbin/cryptsetup luksOpen ${cryptdev} ${cryptname} ${CSQUIET}; do
    sleep 2;
    done
    fi
    if [ -e "/dev/mapper/${cryptname}" ]; then
    if [ ${DEPRECATED_CRYPT} -eq 1 ]; then
    export root="/dev/mapper/root"
    fi
    else
    err "Password succeeded, but ${cryptname} creation failed, aborting..."
    exit 1
    fi
    elif [ -n "${crypto}" ]; then
    [ ${DEPRECATED_CRYPT} -eq 1 ] && warn_deprecated
    msg "Non-LUKS encrypted device found..."
    if [ $# -ne 5 ]; then
    err "Verify parameter format: crypto=hash:cipher:keysize:offset:skip"
    err "Non-LUKS decryption not attempted..."
    return 1
    fi
    exe="/sbin/cryptsetup create ${cryptname} ${cryptdev}"
    tmp=$(echo "${crypto}" | cut -d: -f1)
    [ -n "${tmp}" ] && exe="${exe} --hash \"${tmp}\""
    tmp=$(echo "${crypto}" | cut -d: -f2)
    [ -n "${tmp}" ] && exe="${exe} --cipher \"${tmp}\""
    tmp=$(echo "${crypto}" | cut -d: -f3)
    [ -n "${tmp}" ] && exe="${exe} --key-size \"${tmp}\""
    tmp=$(echo "${crypto}" | cut -d: -f4)
    [ -n "${tmp}" ] && exe="${exe} --offset \"${tmp}\""
    tmp=$(echo "${crypto}" | cut -d: -f5)
    [ -n "${tmp}" ] && exe="${exe} --skip \"${tmp}\""
    if [ -f ${ckeyfile} ]; then
    exe="${exe} --key-file ${ckeyfile}"
    else
    exe="${exe} --verify-passphrase"
    echo ""
    echo "A password is required to access the ${cryptname} volume:"
    fi
    eval "${exe} ${CSQUIET}"
    if [ $? -ne 0 ]; then
    err "Non-LUKS device decryption failed. verify format: "
    err " crypto=hash:cipher:keysize:offset:skip"
    exit 1
    fi
    if [ -e "/dev/mapper/${cryptname}" ]; then
    if [ ${DEPRECATED_CRYPT} -eq 1 ]; then
    export root="/dev/mapper/root"
    fi
    else
    err "Password succeeded, but ${cryptname} creation failed, aborting..."
    exit 1
    fi
    else
    err "Failed to open encryption mapping: The device ${cryptdev} is not a LUKS volume and the crypto= paramater was not specified."
    fi
    fi
    rm -f ${ckeyfile}
    fi
    Create /mnt/lib/initcpio/install/etwo:
    #!/bin/bash
    build() {
    local mod
    add_module dm-crypt
    if [[ $CRYPTO_MODULES ]]; then
    for mod in $CRYPTO_MODULES; do
    add_module "$mod"
    done
    else
    add_all_modules '/crypto/'
    fi
    add_dir "/dev/mapper"
    add_binary "cryptsetup"
    add_binary "dmsetup"
    add_binary "/usr/bin/gpg"
    add_file "/usr/lib/udev/rules.d/10-dm.rules"
    add_file "/usr/lib/udev/rules.d/13-dm-disk.rules"
    add_file "/usr/lib/udev/rules.d/95-dm-notify.rules"
    add_file "/usr/lib/initcpio/udev/11-dm-initramfs.rules" "/usr/lib/udev/rules.d/11-dm-initramfs.rules"
    add_runscript
    help ()
    cat<<HELPEOF
    This hook allows for an encrypted root device with support for gpg encrypted key files.
    To use gpg, the key file must have the extension .gpg and you have to install gpg and add /usr/bin/gpg
    to your BINARIES var in /etc/mkinitcpio.conf.
    HELPEOF
    Edit /mnt/etc/mkinitcpio.conf (only relevant sections displayed):
    MODULES=”ext2 ext4” # not sure if this is really nessecary.
    BINARIES=”/usr/bin/gpg” # this could probably be done in install/etwo...
    HOOKS=”base udev usbinput keymap autodetect pata scsi sata usb etwo filesystems” # (usbinput is only needed if you have an usb keyboard)
    Copy the initcpio stuff over to the live cd:
    cp /mnt/lib/initcpio/hooks/etwo /lib/initcpio/hooks/
    cp /mnt/lib/initcpio/install/etwo /lib/initcpio/install/
    cp /mnt/etc/mkinitcpio.conf /etc/
    Verify your LOCALE, KEYMAP and TIMEZONE in /etc/rc.conf!
    Now reinstall the initcpio:
    mkinitcpio -g /mnt/boot/kernel26.img
    Make sure there were no errors and that all hooks were included.
    13. Decrypt the "var" key to the encrypted root
    mkdir /mnt/keys
    chmod 500 /mnt/keys
    gpg –output /mnt/keys/var -d /mnt/boot/var.gpg
    chmod 400 /mnt/keys/var
    14. Setup crypttab
    Edit /mnt/etc/crypttab:
    swap /dev/sda1 SWAP -c aes-cbc-essiv:sha256 -s 256 -h whirlpool
    var /dev/sda2 /keys/var
    15. Reboot
    We're done, you may reboot. Make sure you select the usb stick as the boot device in your bios and hope for the best. . If it didn't work, play with grub's settings or boot from the live cd, mount your encrypted devices and check all settings. You might also have less trouble by using uuid's instead of device names.  I chose device names to keep things as simple as possible, even though it's not the optimal way to do it.
    Make backups of your data and your usb stick and do not forget your password(s)! Or you can say goodbye to your data forever...
    Last edited by fabriceb (2013-01-15 22:36:23)

    I'm trying to run my install script that is based on https://bbs.archlinux.org/viewtopic.php?id=129885
    Decrypting the gpg key after grub works, but then "Devce root already exists." appears every second.
    any idea ?
    #!/bin/bash
    # This script is designed to be run in conjunction with a UEFI boot using Archboot intall media.
    # prereqs:
    # EFI "BIOS" set to boot *only* from EFI
    # successful EFI boot of Archboot USB
    # mount /dev/sdb1 /src
    set -o nounset
    #set -o errexit
    # Host specific configuration
    # this whole script needs to be customized, particularly disk partitions
    # and configuration, but this section contains global variables that
    # are used during the system configuration phase for convenience
    HOSTNAME=daniel
    USERNAME=user
    # Globals
    # We don't need to set these here but they are used repeatedly throughout
    # so it makes sense to reuse them and allow an easy, one-time change if we
    # need to alter values such as the install target mount point.
    INSTALL_TARGET="/install"
    HR="--------------------------------------------------------------------------------"
    PACMAN="pacman --noconfirm --config /tmp/pacman.conf"
    TARGET_PACMAN="pacman --noconfirm --config /tmp/pacman.conf -r ${INSTALL_TARGET}"
    CHROOT_PACMAN="pacman --noconfirm --cachedir /var/cache/pacman/pkg --config /tmp/pacman.conf -r ${INSTALL_TARGET}"
    FILE_URL="file:///packages/core-$(uname -m)/pkg"
    FTP_URL='ftp://mirrors.kernel.org/archlinux/$repo/os/$arch'
    HTTP_URL='http://mirrors.kernel.org/archlinux/$repo/os/$arch'
    # Functions
    # I've avoided using functions in this script as they aren't required and
    # I think it's more of a learning tool if you see the step-by-step
    # procedures even with minor duplciations along the way, but I feel that
    # these functions clarify the particular steps of setting values in config
    # files.
    SetValue () {
    # EXAMPLE: SetValue VARIABLENAME '\"Quoted Value\"' /file/path
    VALUENAME="$1" NEWVALUE="$2" FILEPATH="$3"
    sed -i "s+^#\?\(${VALUENAME}\)=.*$+\1=${NEWVALUE}+" "${FILEPATH}"
    CommentOutValue () {
    VALUENAME="$1" FILEPATH="$2"
    sed -i "s/^\(${VALUENAME}.*\)$/#\1/" "${FILEPATH}"
    UncommentValue () {
    VALUENAME="$1" FILEPATH="$2"
    sed -i "s/^#\(${VALUENAME}.*\)$/\1/" "${FILEPATH}"
    # Initialize
    # Warn the user about impending doom, set up the network on eth0, mount
    # the squashfs images (Archboot does this normally, we're just filling in
    # the gaps resulting from the fact that we're doing a simple scripted
    # install). We also create a temporary pacman.conf that looks for packages
    # locally first before sourcing them from the network. It would be better
    # to do either *all* local or *all* network but we can't for two reasons.
    # 1. The Archboot installation image might have an out of date kernel
    # (currently the case) which results in problems when chrooting
    # into the install mount point to modprobe efivars. So we use the
    # package snapshot on the Archboot media to ensure our kernel is
    # the same as the one we booted with.
    # 2. Ideally we'd source all local then, but some critical items,
    # notably grub2-efi variants, aren't yet on the Archboot media.
    # Warn
    timer=9
    echo -e "\n\nMAC WARNING: This script is not designed for APPLE MAC installs and will potentially misconfigure boot to your existing OS X installation. STOP NOW IF YOU ARE ON A MAC.\n\n"
    echo -n "GENERAL WARNING: This procedure will completely format /dev/sda. Please cancel with ctrl-c to cancel within $timer seconds..."
    while [[ $timer -gt 0 ]]
    do
    sleep 1
    let timer-=1
    echo -en "$timer seconds..."
    done
    echo "STARTING"
    # Get Network
    echo -n "Waiting for network address.."
    #dhclient eth0
    dhcpcd -p eth0
    echo -n "Network address acquired."
    # Mount packages squashfs images
    umount "/packages/core-$(uname -m)"
    umount "/packages/core-any"
    rm -rf "/packages/core-$(uname -m)"
    rm -rf "/packages/core-any"
    mkdir -p "/packages/core-$(uname -m)"
    mkdir -p "/packages/core-any"
    modprobe -q loop
    modprobe -q squashfs
    mount -o ro,loop -t squashfs "/src/packages/archboot_packages_$(uname -m).squashfs" "/packages/core-$(uname -m)"
    mount -o ro,loop -t squashfs "/src/packages/archboot_packages_any.squashfs" "/packages/core-any"
    # Create temporary pacman.conf file
    cat << PACMANEOF > /tmp/pacman.conf
    [options]
    Architecture = auto
    CacheDir = ${INSTALL_TARGET}/var/cache/pacman/pkg
    CacheDir = /packages/core-$(uname -m)/pkg
    CacheDir = /packages/core-any/pkg
    [core]
    Server = ${FILE_URL}
    Server = ${FTP_URL}
    Server = ${HTTP_URL}
    [extra]
    Server = ${FILE_URL}
    Server = ${FTP_URL}
    Server = ${HTTP_URL}
    #Uncomment to enable pacman -Sy yaourt
    [archlinuxfr]
    Server = http://repo.archlinux.fr/\$arch
    PACMANEOF
    # Prepare pacman
    [[ ! -d "${INSTALL_TARGET}/var/cache/pacman/pkg" ]] && mkdir -m 755 -p "${INSTALL_TARGET}/var/cache/pacman/pkg"
    [[ ! -d "${INSTALL_TARGET}/var/lib/pacman" ]] && mkdir -m 755 -p "${INSTALL_TARGET}/var/lib/pacman"
    ${PACMAN} -Sy
    ${TARGET_PACMAN} -Sy
    # Install prereqs from network (not on archboot media)
    echo -e "\nInstalling prereqs...\n$HR"
    #sed -i "s/^#S/S/" /etc/pacman.d/mirrorlist # Uncomment all Server lines
    UncommentValue S /etc/pacman.d/mirrorlist # Uncomment all Server lines
    ${PACMAN} --noconfirm -Sy gptfdisk btrfs-progs-unstable libusb-compat gnupg
    # Configure Host
    # Here we create three partitions:
    # 1. efi and /boot (one partition does double duty)
    # 2. swap
    # 3. our encrypted root
    # Note that all of these are on a GUID partition table scheme. This proves
    # to be quite clean and simple since we're not doing anything with MBR
    # boot partitions and the like.
    echo -e "format\n"
    # shred -v /dev/sda
    # disk prep
    sgdisk -Z /dev/sda # zap all on disk
    #sgdisk -Z /dev/mmcb1k0 # zap all on sdcard
    sgdisk -a 2048 -o /dev/sda # new gpt disk 2048 alignment
    #sgdisk -a 2048 -o /dev/mmcb1k0
    # create partitions
    sgdisk -n 1:0:+200M /dev/sda # partition 1 (UEFI BOOT), default start block, 200MB
    sgdisk -n 2:0:+4G /dev/sda # partition 2 (SWAP), default start block, 200MB
    sgdisk -n 3:0:0 /dev/sda # partition 3, (LUKS), default start, remaining space
    #sgdisk -n 1:0:1800M /dev/mmcb1k0 # root.gpg
    # set partition types
    sgdisk -t 1:ef00 /dev/sda
    sgdisk -t 2:8200 /dev/sda
    sgdisk -t 3:8300 /dev/sda
    #sgdisk -t 1:0700 /dev/mmcb1k0
    # label partitions
    sgdisk -c 1:"UEFI Boot" /dev/sda
    sgdisk -c 2:"Swap" /dev/sda
    sgdisk -c 3:"LUKS" /dev/sda
    #sgdisk -c 1:"Key" /dev/mmcb1k0
    echo -e "create gpg file\n"
    # create gpg file
    dd if=/dev/urandom bs=512 count=4 | gpg -v --cipher-algo aes256 --digest-algo sha512 -c -a > /root/root.gpg
    echo -e "format LUKS on root\n"
    # format LUKS on root
    gpg -q -d /root/root.gpg 2>/dev/null | cryptsetup -v --key-file=- -c aes-xts-plain -s 512 --hash sha512 luksFormat /dev/sda3
    echo -e "open LUKS on root\n"
    gpg -d /root/root.gpg 2>/dev/null | cryptsetup -v --key-file=- luksOpen /dev/sda3 root
    # NOTE: make sure to add dm_crypt and aes_i586 to MODULES in rc.conf
    # NOTE2: actually this isn't required since we're mounting an encrypted root and grub2/initramfs handles this before we even get to rc.conf
    # make filesystems
    # following swap related commands not used now that we're encrypting our swap partition
    #mkswap /dev/sda2
    #swapon /dev/sda2
    #mkfs.ext4 /dev/sda3 # this is where we'd create an unencrypted root partition, but we're using luks instead
    echo -e "\nCreating Filesystems...\n$HR"
    # make filesystems
    mkfs.ext4 /dev/mapper/root
    mkfs.vfat -F32 /dev/sda1
    #mkfs.vfat -F32 /dev/mmcb1k0p1
    echo -e "mount targets\n"
    # mount target
    #mount /dev/sda3 ${INSTALL_TARGET} # this is where we'd mount the unencrypted root partition
    mount /dev/mapper/root ${INSTALL_TARGET}
    # mount target
    mkdir ${INSTALL_TARGET}
    # mkdir ${INSTALL_TARGET}/key
    # mount -t vfat /dev/mmcb1k0p1 ${INSTALL_TARGET}/key
    mkdir ${INSTALL_TARGET}/boot
    mount -t vfat /dev/sda1 ${INSTALL_TARGET}/boot
    # Install base, necessary utilities
    mkdir -p ${INSTALL_TARGET}/var/lib/pacman
    ${TARGET_PACMAN} -Sy
    ${TARGET_PACMAN} -Su base
    # curl could be installed later but we want it ready for rankmirrors
    ${TARGET_PACMAN} -S curl
    ${TARGET_PACMAN} -S libusb-compat gnupg
    ${TARGET_PACMAN} -R grub
    rm -rf ${INSTALL_TARGET}/boot/grub
    ${TARGET_PACMAN} -S grub2-efi-x86_64
    # Configure new system
    SetValue HOSTNAME ${HOSTNAME} ${INSTALL_TARGET}/etc/rc.conf
    sed -i "s/^\(127\.0\.0\.1.*\)$/\1 ${HOSTNAME}/" ${INSTALL_TARGET}/etc/hosts
    SetValue CONSOLEFONT Lat2-Terminus16 ${INSTALL_TARGET}/etc/rc.conf
    #following replaced due to netcfg
    #SetValue interface eth0 ${INSTALL_TARGET}/etc/rc.conf
    # write fstab
    # You can use UUID's or whatever you want here, of course. This is just
    # the simplest approach and as long as your drives aren't changing values
    # randomly it should work fine.
    cat > ${INSTALL_TARGET}/etc/fstab <<FSTAB_EOF
    # /etc/fstab: static file system information
    # <file system> <dir> <type> <options> <dump> <pass>
    tmpfs /tmp tmpfs nodev,nosuid 0 0
    /dev/sda1 /boot vfat defaults 0 0
    /dev/mapper/cryptswap none swap defaults 0 0
    /dev/mapper/root / ext4 defaults,noatime 0 1
    FSTAB_EOF
    # write etwo
    mkdir -p /lib/initcpio/hooks/
    mkdir -p /lib/initcpio/install/
    cp /src/etwo_hooks /lib/initcpio/hooks/etwo
    cp /src/etwo_install /lib/initcpio/install/etwo
    mkdir -p ${INSTALL_TARGET}/lib/initcpio/hooks/
    mkdir -p ${INSTALL_TARGET}/lib/initcpio/install/
    cp /src/etwo_hooks ${INSTALL_TARGET}/lib/initcpio/hooks/etwo
    cp /src/etwo_install ${INSTALL_TARGET}/lib/initcpio/install/etwo
    # write crypttab
    # encrypted swap (random passphrase on boot)
    echo cryptswap /dev/sda2 SWAP "-c aes-xts-plain -h whirlpool -s 512" >> ${INSTALL_TARGET}/etc/crypttab
    # copy configs we want to carry over to target from install environment
    mv ${INSTALL_TARGET}/etc/resolv.conf ${INSTALL_TARGET}/etc/resolv.conf.orig
    cp /etc/resolv.conf ${INSTALL_TARGET}/etc/resolv.conf
    mkdir -p ${INSTALL_TARGET}/tmp
    cp /tmp/pacman.conf ${INSTALL_TARGET}/tmp/pacman.conf
    # mount proc, sys, dev in install root
    mount -t proc proc ${INSTALL_TARGET}/proc
    mount -t sysfs sys ${INSTALL_TARGET}/sys
    mount -o bind /dev ${INSTALL_TARGET}/dev
    echo -e "umount boot\n"
    # we have to remount /boot from inside the chroot
    umount ${INSTALL_TARGET}/boot
    # Create install_efi script (to be run *after* chroot /install)
    touch ${INSTALL_TARGET}/install_efi
    chmod a+x ${INSTALL_TARGET}/install_efi
    cat > ${INSTALL_TARGET}/install_efi <<EFI_EOF
    # functions (these could be a library, but why overcomplicate things
    SetValue () { VALUENAME="\$1" NEWVALUE="\$2" FILEPATH="\$3"; sed -i "s+^#\?\(\${VALUENAME}\)=.*\$+\1=\${NEWVALUE}+" "\${FILEPATH}"; }
    CommentOutValue () { VALUENAME="\$1" FILEPATH="\$2"; sed -i "s/^\(\${VALUENAME}.*\)\$/#\1/" "\${FILEPATH}"; }
    UncommentValue () { VALUENAME="\$1" FILEPATH="\$2"; sed -i "s/^#\(\${VALUENAME}.*\)\$/\1/" "\${FILEPATH}"; }
    echo -e "mount boot\n"
    # remount here or grub et al gets confused
    mount -t vfat /dev/sda1 /boot
    # mkinitcpio
    # NOTE: intel_agp drm and i915 for intel graphics
    SetValue MODULES '\\"dm_mod dm_crypt aes_x86_64 ext2 ext4 vfat intel_agp drm i915\\"' /etc/mkinitcpio.conf
    SetValue HOOKS '\\"base udev pata scsi sata usb usbinput keymap consolefont etwo encrypt filesystems\\"' /etc/mkinitcpio.conf
    SetValue BINARIES '\\"/usr/bin/gpg\\"' /etc/mkinitcpio.conf
    mkinitcpio -p linux
    # kernel modules for EFI install
    modprobe efivars
    modprobe dm-mod
    # locale-gen
    UncommentValue de_AT /etc/locale.gen
    locale-gen
    # install and configure grub2
    # did this above
    #${CHROOT_PACMAN} -Sy
    #${CHROOT_PACMAN} -R grub
    #rm -rf /boot/grub
    #${CHROOT_PACMAN} -S grub2-efi-x86_64
    # you can be surprisingly sloppy with the root value you give grub2 as a kernel option and
    # even omit the cryptdevice altogether, though it will wag a finger at you for using
    # a deprecated syntax, so we're using the correct form here
    # NOTE: take out i915.modeset=1 unless you are on intel graphics
    SetValue GRUB_CMDLINE_LINUX '\\"cryptdevice=/dev/sda3:root cryptkey=/dev/sda1:vfat:/root.gpg add_efi_memmap i915.i915_enable_rc6=1 i915.i915_enable_fbc=1 i915.lvds_downclock=1 pcie_aspm=force quiet\\"' /etc/default/grub
    # set output to graphical
    SetValue GRUB_TERMINAL_OUTPUT gfxterm /etc/default/grub
    SetValue GRUB_GFXMODE 960x600x32,auto /etc/default/grub
    SetValue GRUB_GFXPAYLOAD_LINUX keep /etc/default/grub # comment out this value if text only mode
    # install the actual grub2. Note that despite our --boot-directory option we will still need to move
    # the grub directory to /boot/grub during grub-mkconfig operations until grub2 gets patched (see below)
    grub_efi_x86_64-install --bootloader-id=grub --no-floppy --recheck
    # create our EFI boot entry
    # bug in the HP bios firmware (F.08)
    efibootmgr --create --gpt --disk /dev/sda --part 1 --write-signature --label "ARCH LINUX" --loader "\\\\grub\\\\grub.efi"
    # copy font for grub2
    cp /usr/share/grub/unicode.pf2 /boot/grub
    # generate config file
    grub-mkconfig -o /boot/grub/grub.cfg
    exit
    EFI_EOF
    # Install EFI using script inside chroot
    chroot ${INSTALL_TARGET} /install_efi
    rm ${INSTALL_TARGET}/install_efi
    # Post install steps
    # anything you want to do post install. run the script automatically or
    # manually
    touch ${INSTALL_TARGET}/post_install
    chmod a+x ${INSTALL_TARGET}/post_install
    cat > ${INSTALL_TARGET}/post_install <<POST_EOF
    set -o errexit
    set -o nounset
    # functions (these could be a library, but why overcomplicate things
    SetValue () { VALUENAME="\$1" NEWVALUE="\$2" FILEPATH="\$3"; sed -i "s+^#\?\(\${VALUENAME}\)=.*\$+\1=\${NEWVALUE}+" "\${FILEPATH}"; }
    CommentOutValue () { VALUENAME="\$1" FILEPATH="\$2"; sed -i "s/^\(\${VALUENAME}.*\)\$/#\1/" "\${FILEPATH}"; }
    UncommentValue () { VALUENAME="\$1" FILEPATH="\$2"; sed -i "s/^#\(\${VALUENAME}.*\)\$/\1/" "\${FILEPATH}"; }
    # root password
    echo -e "${HR}\\nNew root user password\\n${HR}"
    passwd
    # add user
    echo -e "${HR}\\nNew non-root user password (username:${USERNAME})\\n${HR}"
    groupadd sudo
    useradd -m -g users -G audio,lp,optical,storage,video,games,power,scanner,network,sudo,wheel -s /bin/bash ${USERNAME}
    passwd ${USERNAME}
    # mirror ranking
    echo -e "${HR}\\nRanking Mirrors (this will take a while)\\n${HR}"
    cp /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.orig
    mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.all
    sed -i "s/#S/S/" /etc/pacman.d/mirrorlist.all
    rankmirrors -n 5 /etc/pacman.d/mirrorlist.all > /etc/pacman.d/mirrorlist
    # temporary fix for locale.sh update conflict
    mv /etc/profile.d/locale.sh /etc/profile.d/locale.sh.preupdate || true
    # yaourt repo (add to target pacman, not tmp pacman.conf, for ongoing use)
    echo -e "\\n[archlinuxfr]\\nServer = http://repo.archlinux.fr/\\\$arch" >> /etc/pacman.conf
    echo -e "\\n[haskell]\\nServer = http://www.kiwilight.com/\\\$repo/\\\$arch" >> /etc/pacman.conf
    # additional groups and utilities
    pacman --noconfirm -Syu
    pacman --noconfirm -S base-devel
    pacman --noconfirm -S yaourt
    # sudo
    pacman --noconfirm -S sudo
    cp /etc/sudoers /tmp/sudoers.edit
    sed -i "s/#\s*\(%wheel\s*ALL=(ALL)\s*ALL.*$\)/\1/" /tmp/sudoers.edit
    sed -i "s/#\s*\(%sudo\s*ALL=(ALL)\s*ALL.*$\)/\1/" /tmp/sudoers.edit
    visudo -qcsf /tmp/sudoers.edit && cat /tmp/sudoers.edit > /etc/sudoers
    # power
    pacman --noconfirm -S acpi acpid acpitool cpufrequtils
    yaourt --noconfirm -S powertop2
    sed -i "/^DAEMONS/ s/)/ @acpid)/" /etc/rc.conf
    sed -i "/^MODULES/ s/)/ acpi-cpufreq cpufreq_ondemand cpufreq_powersave coretemp)/" /etc/rc.conf
    # following requires my acpi handler script
    echo "/etc/acpi/handler.sh boot" > /etc/rc.local
    # time
    pacman --noconfirm -S ntp
    sed -i "/^DAEMONS/ s/hwclock /!hwclock @ntpd /" /etc/rc.conf
    # wireless (wpa supplicant should already be installed)
    pacman --noconfirm -S iw wpa_supplicant rfkill
    pacman --noconfirm -S netcfg wpa_actiond ifplugd
    mv /etc/wpa_supplicant.conf /etc/wpa_supplicant.conf.orig
    echo -e "ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=network\nupdate_config=1" > /etc/wpa_supplicant.conf
    # make sure to copy /etc/network.d/examples/wireless-wpa-config to /etc/network.d/home and edit
    sed -i "/^DAEMONS/ s/)/ @net-auto-wireless @net-auto-wired)/" /etc/rc.conf
    sed -i "/^DAEMONS/ s/ network / /" /etc/rc.conf
    echo -e "\nWIRELESS_INTERFACE=wlan0" >> /etc/rc.conf
    echo -e "WIRED_INTERFACE=eth0" >> /etc/rc.conf
    echo "options iwlagn led_mode=2" > /etc/modprobe.d/iwlagn.conf
    # sound
    pacman --noconfirm -S alsa-utils alsa-plugins
    sed -i "/^DAEMONS/ s/)/ @alsa)/" /etc/rc.conf
    mv /etc/asound.conf /etc/asound.conf.orig || true
    #if alsamixer isn't working, try alsamixer -Dhw and speaker-test -Dhw -c 2
    # video
    pacman --noconfirm -S base-devel mesa mesa-demos
    # x
    #pacman --noconfirm -S xorg xorg-xinit xorg-utils xorg-server-utils xdotool xorg-xlsfonts
    #yaourt --noconfirm -S xf86-input-wacom-git # NOT NEEDED? input-wacom-git
    #TODO: cut down the install size
    #pacman --noconfirm -S xorg-server xorg-xinit xorg-utils xorg-server-utils
    # TODO: wacom
    # environment/wm/etc.
    #pacman --noconfirm -S xfce4 compiz ccsm
    #pacman --noconfirm -S xcompmgr
    #yaourt --noconfirm -S physlock unclutter
    #pacman --noconfirm -S rxvt-unicode urxvt-url-select hsetroot
    #pacman --noconfirm -S gtk2 #gtk3 # for taffybar?
    #pacman --noconfirm -S ghc
    # note: try installing alex and happy from cabal instead
    #pacman --noconfirm -S haskell-platform haskell-hscolour
    #yaourt --noconfirm -S xmonad-darcs xmonad-contrib-darcs xcompmgr
    #yaourt --noconfirm -S xmobar-git
    # TODO: edit xfce to use compiz
    # TODO: xmonad, but deal with video tearing
    # TODO: xmonad-darcs fails to install from AUR. haskell dependency hell.
    # switching to cabal
    # fonts
    pacman --noconfirm -S terminus-font
    yaourt --noconfirm -S webcore-fonts
    yaourt --noconfirm -S fontforge libspiro
    yaourt --noconfirm -S freetype2-git-infinality
    # TODO: sed infinality and change to OSX or OSX2 mode
    # and create the sym link from /etc/fonts/conf.avail to conf.d
    # misc apps
    #pacman --noconfirm -S htop openssh keychain bash-completion git vim
    #pacman --noconfirm -S chromium flashplugin
    #pacman --noconfirm -S scrot mypaint bc
    #yaourt --noconfirm -S task-git stellarium googlecl
    # TODO: argyll
    POST_EOF
    # Post install in chroot
    #echo "chroot and run /post_install"
    chroot /install /post_install
    rm /install/post_install
    # copy grub.efi file to the default HP EFI boot manager path
    mkdir -p ${INSTALL_TARGET}/boot/EFI/Microsoft/BOOT/
    mkdir -p ${INSTALL_TARGET}/boot/EFI/BOOT/
    cp ${INSTALL_TARGET}/boot/grub/grub.efi ${INSTALL_TARGET}/boot/EFI/Microsoft/BOOT/bootmgfw.efi
    cp ${INSTALL_TARGET}/boot/grub/grub.efi ${INSTALL_TARGET}/boot/EFI/BOOT/BOOTX64.EFI
    cp /root/root.gpg ${INSTALL_TARGET}/boot/
    # NOTES/TODO

  • Using slim and xfce4, something crashes on exit

    I recently did a fresh install of Arch onto an older PC that I have. It's running a P4 3.06GHz, an nVidia GeForce FX 5900, and 1GB RAM. Because of the lower resources, I decided to use xfce4 and slim. I have a monitor and TV hooked up through s-video with the "seperate X screen" option. Whenever I logout of xfce (this includes, logout, reboot, shutdown), it goes to a blank black screen with a cursor at the top left and just hangs. I have slim configured to run from inittab, so it picks up after a couple seconds. However, if I run startx from console, and then logout of xfce the system just hangs and wont accept any keyboard input (including ctrl+alt+function to switch run levels). Also, if I choose to shutdown or reboot, the system will do so but the only thing I see is the blank screen until the POST. If I do a startx from console, the logout, I'm able to ssh in from my laptop, login and issue a reboot (again the screen doesn't change until the POST). Also, if I turn the "seperate x screen" option off, and just run the desktop on the monitor, it doesn't freeze. I've worked my way through a number of issues so far, but this one has me completely stumped. I'm not sure if there's something wrong with my configuration or if it's just a problem with the graphics driver. Any advice and/or help is greatly appreciated.
    Here are configuration and log files:
    Xorg.conf
    # nvidia-settings: X configuration file generated by nvidia-settings
    # nvidia-settings: version 1.0 (buildmeister@builder75) Wed Jan 27 03:03:53 PST 2010
    Section "ServerLayout"
    Identifier "X.org Configured"
    Screen 0 "Screen0" 0 0
    Screen 1 "Screen1" RightOf "Screen0"
    InputDevice "Mouse0" "CorePointer"
    InputDevice "Keyboard0" "CoreKeyboard"
    Option "BlankTime" "0"
    Option "StandbyTime" "0"
    Option "SuspendTime" "0"
    Option "OffTime" "0"
    EndSection
    Section "Files"
    ModulePath "/usr/lib/xorg/modules"
    FontPath "/usr/share/fonts/misc"
    FontPath "/usr/share/fonts/100dpi:unscaled"
    FontPath "/usr/share/fonts/75dpi:unscaled"
    FontPath "/usr/share/fonts/TTF"
    FontPath "/usr/share/fonts/Type1"
    EndSection
    Section "Module"
    Load "glx"
    Load "dri2"
    Load "dri"
    Load "dbe"
    Load "record"
    Load "extmod"
    EndSection
    Section "ServerFlags"
    Option "Xinerama" "0"
    EndSection
    Section "InputDevice"
    Identifier "Keyboard0"
    Driver "kbd"
    EndSection
    Section "InputDevice"
    Identifier "Mouse0"
    Driver "mouse"
    Option "Protocol" "auto"
    Option "Device" "/dev/input/mice"
    Option "ZAxisMapping" "4 5 6 7"
    EndSection
    Section "Monitor"
    Identifier "Monitor0"
    VendorName "Unknown"
    Option "DPI" "95 x 96"
    ModelName "CMO CMC 17 AD"
    HorizSync 30.0 - 82.0
    VertRefresh 50.0 - 75.0
    EndSection
    Section "Monitor"
    Identifier "Monitor1"
    VendorName "Unknown"
    ModelName "TV-0"
    HorizSync 28.0 - 33.0
    VertRefresh 43.0 - 72.0
    EndSection
    Section "Device"
    Identifier "Card0"
    Driver "nvidia"
    VendorName "nVidia Corporation"
    BoardName "NV35 [GeForce FX 5900]"
    BusID "PCI:1:0:0"
    EndSection
    Section "Device"
    Identifier "Videocard0"
    Driver "nvidia"
    VendorName "NVIDIA Corporation"
    BoardName "GeForce FX 5900"
    BusID "PCI:1:0:0"
    Screen 0
    EndSection
    Section "Device"
    Identifier "Videocard1"
    Driver "nvidia"
    VendorName "NVIDIA Corporation"
    BoardName "GeForce FX 5900"
    BusID "PCI:1:0:0"
    Screen 1
    EndSection
    Section "Screen"
    Identifier "Screen0"
    Device "Videocard0"
    Monitor "Monitor0"
    DefaultDepth 24
    Option "TwinView" "0"
    Option "TwinViewXineramaInfoOrder" "CRT-0"
    Option "metamodes" "CRT: nvidia-auto-select +0+0"
    SubSection "Display"
    Depth 24
    EndSubSection
    EndSection
    Section "Screen"
    Identifier "Screen1"
    Device "Videocard1"
    Monitor "Monitor1"
    DefaultDepth 24
    Option "TwinView" "0"
    Option "metamodes" "TV: nvidia-auto-select +0+0"
    SubSection "Display"
    Depth 24
    EndSubSection
    EndSection
    slim.conf
    # Path, X server and arguments (if needed)
    # Note: -xauth $authfile is automatically appended
    default_path ./:/bin:/usr/bin:/usr/local/bin
    default_xserver /usr/bin/X
    xserver_arguments -nolisten tcp vt07
    # Commands for halt, login, etc.
    halt_cmd /sbin/shutdown -h now
    reboot_cmd /sbin/shutdown -r now
    console_cmd /usr/bin/xterm -C -fg white -bg black +sb -T "Console login" -e /bin/sh -c "/bin/cat /etc/issue; exec /bin/login"
    #suspend_cmd /usr/sbin/suspend
    # Full path to the xauth binary
    xauth_path /usr/bin/xauth
    # Xauth file for server
    authfile /var/run/slim.auth
    # Activate numlock when slim starts. Valid values: on|off
    # numlock on
    # Hide the mouse cursor (note: does not work with some WMs).
    # Valid values: true|false
    # hidecursor false
    # This command is executed after a succesful login.
    # you can place the %session and %theme variables
    # to handle launching of specific commands in .xinitrc
    # depending of chosen session and slim theme
    # NOTE: if your system does not have bash you need
    # to adjust the command according to your preferred shell,
    # i.e. for freebsd use:
    # login_cmd exec /bin/sh - ~/.xinitrc %session
    login_cmd exec /bin/bash -login ~/.xinitrc %session
    # Commands executed when starting and exiting a session.
    # They can be used for registering a X11 session with
    # sessreg. You can use the %user variable
    sessionstart_cmd /usr/bin/sessreg -a -l $DISPLAY %user
    sessionstop_cmd /usr/bin/sessreg -d -l $DISPLAY %user
    # Start in daemon mode. Valid values: yes | no
    # Note that this can be overriden by the command line
    # options "-d" and "-nodaemon"
    # daemon yes
    # Available sessions (first one is the default).
    # The current chosen session name is replaced in the login_cmd
    # above, so your login command can handle different sessions.
    # see the xinitrc.sample file shipped with slim sources
    sessions xfce4,icewm,wmaker,blackbox
    # Executed when pressing F11 (requires imagemagick)
    screenshot_cmd import -window root /slim.png
    # welcome message. Available variables: %host, %domain
    welcome_msg Welcome to %host
    # Session message. Prepended to the session name when pressing F1
    # session_msg Session:
    # shutdown / reboot messages
    shutdown_msg The system is halting...
    reboot_msg The system is rebooting...
    # default user, leave blank or remove this line
    # for avoid pre-loading the username.
    default_user desktopuser
    # Focus the password field on start when default_user is set
    # Set to "yes" to enable this feature
    focus_password yes
    # Automatically login the default user (without entering
    # the password. Set to "yes" to enable this feature
    auto_login yes
    # current theme, use comma separated list to specify a set to
    # randomly choose from
    current_theme default
    # Lock file
    lockfile /var/lock/slim.lock
    # Log file
    logfile /var/log/slim.log
    slim.log isolated reboot
    /usr/bin/xauth: creating new authority file /var/run/slim.auth
    This is a pre-release version of the X server from The X.Org Foundation.
    It is not supported in any way.
    Bugs may be filed in the bugzilla at http://bugs.freedesktop.org/.
    Select the "xorg" product for bugs you find in this release.
    Before reporting bugs in pre-release versions please check the
    latest version in the X.Org Foundation git repository.
    See http://wiki.x.org/wiki/GitPage for git access instructions.
    X.Org X Server 1.7.5.902 (1.7.6 RC 2)
    Release Date: 2010-03-12
    X Protocol Version 11, Revision 0
    Build Operating System: Linux 2.6.33-ARCH i686
    Current Operating System: Linux ArchDaemon 2.6.32-ARCH #1 SMP PREEMPT Mon Mar 15 20:08:25 UTC 2010 i686
    Kernel command line: root=/dev/disk/by-uuid/49d062ba-9f7b-4d18-98f2-87249f723889 ro 5 acpi_enforce_resources=lax vga=771
    Build Date: 13 March 2010 07:33:22PM
    Current version of pixman: 0.16.6
    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
    Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
    (==) Log file: "/var/log/Xorg.0.log", Time: Fri Mar 19 14:07:00 2010
    (==) Using config file: "/etc/X11/xorg.conf"
    /usr/bin/xauth: creating new authority file /home/desktopuser/.Xauthority
    /usr/bin/startxfce4: X server already running on display :0.0
    /tmp/xrdb_dysqQd:1: error: Unknown #directive "Those"
    # Those are fallback settings, use the ui plugin to change it
    /tmp/xrdb_dysqQd:2: error: Unknown #directive "or"
    # or add your overrides to ~/.Xresources
    /tmp/xrdb_dysqQd:3: error: Unknown #directive "Xft"
    # Xft.hintstyle: hintnone/hintslight/hintmedium/hintfull
    /tmp/xrdb_dysqQd:4: error: Unknown #directive "Xft"
    # Xft hinting: 1/0
    4 errors in preprocessor.
    xrdb: "Xft.hinting" on line 9 overrides entry on line 6
    xrdb: "Xft.hintstyle" on line 11 overrides entry on line 7
    /tmp/xrdb_dysqQd:1: error: Unknown #directive "Those"
    # Those are fallback settings, use the ui plugin to change it
    /tmp/xrdb_dysqQd:2: error: Unknown #directive "or"
    # or add your overrides to ~/.Xresources
    /tmp/xrdb_dysqQd:3: error: Unknown #directive "Xft"
    # Xft.hintstyle: hintnone/hintslight/hintmedium/hintfull
    /tmp/xrdb_dysqQd:4: error: Unknown #directive "Xft"
    # Xft hinting: 1/0
    4 errors in preprocessor.
    xrdb: "Xft.hinting" on line 9 overrides entry on line 6
    xrdb: "Xft.hintstyle" on line 11 overrides entry on line 7
    Agent pid 1617
    xfdesktop[1637]: starting up
    (xfce4-settings-helper:1639): GLib-GObject-CRITICAL **: g_param_spec_flags: assertion `G_TYPE_IS_FLAGS (flags_type)' failed
    (xfce4-settings-helper:1639): GLib-GObject-CRITICAL **: g_object_class_install_property: assertion `G_IS_PARAM_SPEC (pspec)' failed
    slim.log isolated logout
    slim: waiting for X server to shut down..........
    slim: X server slow to shut down, sending KILL signal.
    slim: waiting for server to die
    /usr/bin/xauth: creating new authority file /var/run/slim.auth
    slim: waiting for X server to begin accepting connections
    This is a pre-release version of the X server from The X.Org Foundation.
    It is not supported in any way.
    Bugs may be filed in the bugzilla at http://bugs.freedesktop.org/.
    Select the "xorg" product for bugs you find in this release.
    Before reporting bugs in pre-release versions please check the
    latest version in the X.Org Foundation git repository.
    See http://wiki.x.org/wiki/GitPage for git access instructions.
    X.Org X Server 1.7.5.902 (1.7.6 RC 2)
    Release Date: 2010-03-12
    X Protocol Version 11, Revision 0
    Build Operating System: Linux 2.6.33-ARCH i686
    Current Operating System: Linux ArchDaemon 2.6.32-ARCH #1 SMP PREEMPT Mon Mar 15 20:08:25 UTC 2010 i686
    Kernel command line: root=/dev/disk/by-uuid/49d062ba-9f7b-4d18-98f2-87249f723889 ro 5 acpi_enforce_resources=lax vga=771
    Build Date: 13 March 2010 07:33:22PM
    Current version of pixman: 0.16.6
    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
    Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
    (==) Log file: "/var/log/Xorg.0.log", Time: Fri Mar 19 14:01:03 2010
    (==) Using config file: "/etc/X11/xorg.conf"
    Xorg.0.log
    This is a pre-release version of the X server from The X.Org Foundation.
    It is not supported in any way.
    Bugs may be filed in the bugzilla at http://bugs.freedesktop.org/.
    Select the "xorg" product for bugs you find in this release.
    Before reporting bugs in pre-release versions please check the
    latest version in the X.Org Foundation git repository.
    See http://wiki.x.org/wiki/GitPage for git access instructions.
    X.Org X Server 1.7.5.902 (1.7.6 RC 2)
    Release Date: 2010-03-12
    X Protocol Version 11, Revision 0
    Build Operating System: Linux 2.6.33-ARCH i686
    Current Operating System: Linux ArchDaemon 2.6.32-ARCH #1 SMP PREEMPT Mon Mar 15 20:08:25 UTC 2010 i686
    Kernel command line: root=/dev/disk/by-uuid/49d062ba-9f7b-4d18-98f2-87249f723889 ro 5 acpi_enforce_resources=lax vga=771
    Build Date: 13 March 2010 07:33:22PM
    Current version of pixman: 0.16.6
    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
    Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
    (==) Log file: "/var/log/Xorg.0.log", Time: Fri Mar 19 18:39:41 2010
    (==) Using config file: "/etc/X11/xorg.conf"
    (==) ServerLayout "X.org Configured"
    (**) |-->Screen "Screen0" (0)
    (**) | |-->Monitor "Monitor0"
    (**) | |-->Device "Videocard0"
    (**) |-->Screen "Screen1" (1)
    (**) | |-->Monitor "Monitor1"
    (**) | |-->Device "Videocard1"
    (**) |-->Input Device "Mouse0"
    (**) |-->Input Device "Keyboard0"
    (**) Option "BlankTime" "0"
    (**) Option "StandbyTime" "0"
    (**) Option "SuspendTime" "0"
    (**) Option "OffTime" "0"
    (**) Option "Xinerama" "0"
    (==) Automatically adding devices
    (==) Automatically enabling devices
    (**) FontPath set to:
    /usr/share/fonts/misc,
    /usr/share/fonts/100dpi:unscaled,
    /usr/share/fonts/75dpi:unscaled,
    /usr/share/fonts/TTF,
    /usr/share/fonts/Type1,
    /usr/share/fonts/misc,
    /usr/share/fonts/100dpi:unscaled,
    /usr/share/fonts/75dpi:unscaled,
    /usr/share/fonts/TTF,
    /usr/share/fonts/Type1
    (**) ModulePath set to "/usr/lib/xorg/modules"
    (WW) AllowEmptyInput is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
    (WW) Disabling Mouse0
    (WW) Disabling Keyboard0
    (II) Loader magic: 0x81e4c40
    (II) Module ABI versions:
    X.Org ANSI C Emulation: 0.4
    X.Org Video Driver: 6.0
    X.Org XInput driver : 7.0
    X.Org Server Extension : 2.0
    (++) using VT number 7
    (--) PCI:*(0:1:0:0) 10de:0331:0000:0000 nVidia Corporation NV35 [GeForce FX 5900] rev 161, Mem @ 0xfd000000/16777216, 0xe0000000/134217728, BIOS @ 0x????????/131072
    (--) PCI: (0:2:10:0) 4444:0016:0070:b7f3 Internext Compression Inc iTVC16 (CX23416) MPEG-2 Encoder rev 1, Mem @ 0xf0000000/67108864
    (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
    (II) "extmod" will be loaded. This was enabled by default and also specified in the config file.
    (II) "dbe" will be loaded. This was enabled by default and also specified in the config file.
    (II) "glx" will be loaded. This was enabled by default and also specified in the config file.
    (II) "record" will be loaded. This was enabled by default and also specified in the config file.
    (II) "dri" will be loaded. This was enabled by default and also specified in the config file.
    (II) "dri2" will be loaded. This was enabled by default and also specified in the config file.
    (II) LoadModule: "glx"
    (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
    (II) Module glx: vendor="NVIDIA Corporation"
    compiled for 4.0.2, module version = 1.0.0
    Module class: X.Org Server Extension
    (II) NVIDIA GLX Module 173.14.25 Wed Jan 27 02:59:37 PST 2010
    (II) Loading extension GLX
    (II) LoadModule: "dri2"
    (II) Loading /usr/lib/xorg/modules/extensions/libdri2.so
    (II) Module dri2: vendor="X.Org Foundation"
    compiled for 1.7.5.902, module version = 1.1.0
    ABI class: X.Org Server Extension, version 2.0
    (II) Loading extension DRI2
    (II) LoadModule: "dri"
    (II) Loading /usr/lib/xorg/modules/extensions/libdri.so
    (II) Module dri: vendor="X.Org Foundation"
    compiled for 1.7.5.902, module version = 1.0.0
    ABI class: X.Org Server Extension, version 2.0
    (II) Loading extension XFree86-DRI
    (II) LoadModule: "dbe"
    (II) Loading /usr/lib/xorg/modules/extensions/libdbe.so
    (II) Module dbe: vendor="X.Org Foundation"
    compiled for 1.7.5.902, module version = 1.0.0
    Module class: X.Org Server Extension
    ABI class: X.Org Server Extension, version 2.0
    (II) Loading extension DOUBLE-BUFFER
    (II) LoadModule: "record"
    (II) Loading /usr/lib/xorg/modules/extensions/librecord.so
    (II) Module record: vendor="X.Org Foundation"
    compiled for 1.7.5.902, module version = 1.13.0
    Module class: X.Org Server Extension
    ABI class: X.Org Server Extension, version 2.0
    (II) Loading extension RECORD
    (II) LoadModule: "extmod"
    (II) Loading /usr/lib/xorg/modules/extensions/libextmod.so
    (II) Module extmod: vendor="X.Org Foundation"
    compiled for 1.7.5.902, module version = 1.0.0
    Module class: X.Org Server Extension
    ABI class: X.Org Server Extension, version 2.0
    (II) Loading extension MIT-SCREEN-SAVER
    (II) Loading extension XFree86-VidModeExtension
    (II) Loading extension XFree86-DGA
    (II) Loading extension DPMS
    (II) Loading extension XVideo
    (II) Loading extension XVideo-MotionCompensation
    (II) Loading extension X-Resource
    (II) LoadModule: "nvidia"
    (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
    (II) Module nvidia: vendor="NVIDIA Corporation"
    compiled for 4.0.2, module version = 1.0.0
    Module class: X.Org Video Driver
    (II) NVIDIA dlloader X Driver 173.14.25 Wed Jan 27 02:34:38 PST 2010
    (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
    (II) Primary Device is: PCI 01@00:00:0
    (II) Loading sub module "fb"
    (II) LoadModule: "fb"
    (II) Loading /usr/lib/xorg/modules/libfb.so
    (II) Module fb: vendor="X.Org Foundation"
    compiled for 1.7.5.902, module version = 1.0.0
    ABI class: X.Org ANSI C Emulation, version 0.4
    (II) Loading sub module "wfb"
    (II) LoadModule: "wfb"
    (II) Loading /usr/lib/xorg/modules/libwfb.so
    (II) Module wfb: vendor="X.Org Foundation"
    compiled for 1.7.5.902, module version = 1.0.0
    ABI class: X.Org ANSI C Emulation, version 0.4
    (II) Loading sub module "ramdac"
    (II) LoadModule: "ramdac"
    (II) Module "ramdac" already built-in
    (**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
    (==) NVIDIA(0): RGB weight 888
    (==) NVIDIA(0): Default visual is TrueColor
    (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
    (**) NVIDIA(0): Option "TwinView" "0"
    (**) NVIDIA(0): Option "MetaModes" "CRT: nvidia-auto-select +0+0"
    (**) NVIDIA(0): Option "TwinViewXineramaInfoOrder" "CRT-0"
    (**) NVIDIA(0): Option "DPI" "95 x 96"
    (**) NVIDIA(0): Enabling RENDER acceleration
    (II) NVIDIA(0): Support for GLX with the Damage and Composite X extensions is
    (II) NVIDIA(0): enabled.
    (II) NVIDIA(0): NVIDIA GPU GeForce FX 5900 (NV35) at PCI:1:0:0 (GPU-0)
    (--) NVIDIA(0): Memory: 131072 kBytes
    (--) NVIDIA(0): VideoBIOS: 04.35.20.18.04
    (II) NVIDIA(0): Detected AGP rate: 8X
    (--) NVIDIA(0): Interlaced video modes are supported on this GPU
    (--) NVIDIA(0): Connected display device(s) on GeForce FX 5900 at PCI:1:0:0:
    (--) NVIDIA(0): CMO CMC 17" AD (CRT-0)
    (--) NVIDIA(0): NVIDIA TV Encoder (TV-0)
    (--) NVIDIA(0): CMO CMC 17" AD (CRT-0): 400.0 MHz maximum pixel clock
    (--) NVIDIA(0): NVIDIA TV Encoder (TV-0): 400.0 MHz maximum pixel clock
    (--) NVIDIA(0): TV encoder: NVIDIA
    (II) NVIDIA(0): Display Device found referenced in MetaMode: CRT-0
    (II) NVIDIA(0): Assigned Display Device: CRT-0
    (II) NVIDIA(0): Validated modes:
    (II) NVIDIA(0): "CRT:nvidia-auto-select+0+0"
    (II) NVIDIA(0): Virtual screen size determined to be 1280 x 1024
    (**) NVIDIA(0): DPI set to (95, 96); computed from "DPI" X config option
    (==) NVIDIA(0): Enabling 32-bit ARGB GLX visuals.
    (**) NVIDIA(1): Depth 24, (--) framebuffer bpp 32
    (==) NVIDIA(1): RGB weight 888
    (==) NVIDIA(1): Default visual is TrueColor
    (==) NVIDIA(1): Using gamma correction (1.0, 1.0, 1.0)
    (**) NVIDIA(1): Option "TwinView" "0"
    (**) NVIDIA(1): Option "MetaModes" "TV: nvidia-auto-select +0+0"
    (**) NVIDIA(1): Enabling RENDER acceleration
    (II) NVIDIA(1): NVIDIA GPU GeForce FX 5900 (NV35) at PCI:1:0:0 (GPU-0)
    (--) NVIDIA(1): Memory: 131072 kBytes
    (--) NVIDIA(1): VideoBIOS: 04.35.20.18.04
    (II) NVIDIA(1): Detected AGP rate: 8X
    (--) NVIDIA(1): Interlaced video modes are supported on this GPU
    (--) NVIDIA(1): Connected display device(s) on GeForce FX 5900 at PCI:1:0:0:
    (--) NVIDIA(1): CMO CMC 17" AD (CRT-0)
    (--) NVIDIA(1): NVIDIA TV Encoder (TV-0)
    (--) NVIDIA(1): CMO CMC 17" AD (CRT-0): 400.0 MHz maximum pixel clock
    (--) NVIDIA(1): NVIDIA TV Encoder (TV-0): 400.0 MHz maximum pixel clock
    (--) NVIDIA(1): TV encoder: NVIDIA
    (II) NVIDIA(1): Display Device found referenced in MetaMode: TV-0
    (II) NVIDIA(1): Assigned Display Device: TV-0
    (II) NVIDIA(1): Validated modes:
    (II) NVIDIA(1): "TV:nvidia-auto-select+0+0"
    (II) NVIDIA(1): Virtual screen size determined to be 1024 x 768
    (==) NVIDIA(1): DPI set to (75, 75); computed from built-in default
    (==) NVIDIA(1): Enabling 32-bit ARGB GLX visuals.
    (--) Depth 24 pixmap format is 32 bpp
    (II) NVIDIA(0): Initialized AGP GART.
    (II) NVIDIA(0): Unable to connect to the ACPI daemon; the ACPI daemon may not
    (II) NVIDIA(0): be running or the "AcpidSocketPath" X configuration option
    (II) NVIDIA(0): may not be set correctly. When the ACPI daemon is
    (II) NVIDIA(0): available, the NVIDIA X driver can use it to receive ACPI
    (II) NVIDIA(0): events. For details, please see the "ConnectToAcpid" and
    (II) NVIDIA(0): "AcpidSocketPath" X configuration options in Appendix B: X
    (II) NVIDIA(0): Config Options in the README.
    (II) NVIDIA(0): Setting mode "CRT:nvidia-auto-select+0+0"
    (II) Loading extension NV-GLX
    (II) NVIDIA(0): NVIDIA 3D Acceleration Architecture Initialized
    (II) NVIDIA(0): Using the NVIDIA 2D acceleration architecture
    (==) NVIDIA(0): Backing store disabled
    (==) NVIDIA(0): Silken mouse enabled
    (==) NVIDIA(0): DPMS enabled
    (II) Loading extension NV-CONTROL
    (==) RandR enabled
    (II) NVIDIA(1): Initialized AGP GART.
    (II) NVIDIA(1): Unable to connect to the ACPI daemon; the ACPI daemon may not
    (II) NVIDIA(1): be running or the "AcpidSocketPath" X configuration option
    (II) NVIDIA(1): may not be set correctly. When the ACPI daemon is
    (II) NVIDIA(1): available, the NVIDIA X driver can use it to receive ACPI
    (II) NVIDIA(1): events. For details, please see the "ConnectToAcpid" and
    (II) NVIDIA(1): "AcpidSocketPath" X configuration options in Appendix B: X
    (II) NVIDIA(1): Config Options in the README.
    (II) NVIDIA(1): Setting mode "TV:nvidia-auto-select+0+0"
    (II) NVIDIA(1): NVIDIA 3D Acceleration Architecture Initialized
    (II) NVIDIA(1): Using the NVIDIA 2D acceleration architecture
    (==) NVIDIA(1): Backing store disabled
    (==) NVIDIA(1): Silken mouse enabled
    (==) NVIDIA(1): DPMS enabled
    (==) RandR enabled
    (II) Initializing built-in extension Generic Event Extension
    (II) Initializing built-in extension SHAPE
    (II) Initializing built-in extension MIT-SHM
    (II) Initializing built-in extension XInputExtension
    (II) Initializing built-in extension XTEST
    (II) Initializing built-in extension BIG-REQUESTS
    (II) Initializing built-in extension SYNC
    (II) Initializing built-in extension XKEYBOARD
    (II) Initializing built-in extension XC-MISC
    (II) Initializing built-in extension SECURITY
    (II) Initializing built-in extension XINERAMA
    (II) Initializing built-in extension XFIXES
    (II) Initializing built-in extension RENDER
    (II) Initializing built-in extension RANDR
    (II) Initializing built-in extension COMPOSITE
    (II) Initializing built-in extension DAMAGE
    (II) Initializing extension GLX
    (II) config/hal: Adding input device Macintosh mouse button emulation
    (II) LoadModule: "evdev"
    (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
    (II) Module evdev: vendor="X.Org Foundation"
    compiled for 1.7.3, module version = 2.3.2
    Module class: X.Org XInput Driver
    ABI class: X.Org XInput driver, version 7.0
    (**) Macintosh mouse button emulation: always reports core events
    (**) Macintosh mouse button emulation: Device: "/dev/input/event0"
    (II) Macintosh mouse button emulation: Found 3 mouse buttons
    (II) Macintosh mouse button emulation: Found relative axes
    (II) Macintosh mouse button emulation: Found x and y relative axes
    (II) Macintosh mouse button emulation: Configuring as mouse
    (**) Macintosh mouse button emulation: YAxisMapping: buttons 4 and 5
    (**) Macintosh mouse button emulation: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
    (II) XINPUT: Adding extended input device "Macintosh mouse button emulation" (type: MOUSE)
    (**) Macintosh mouse button emulation: (accel) keeping acceleration scheme 1
    (**) Macintosh mouse button emulation: (accel) acceleration profile 0
    (II) Macintosh mouse button emulation: initialized for relative axes.
    (II) config/hal: Adding input device AT Translated Set 2 keyboard
    (**) AT Translated Set 2 keyboard: always reports core events
    (**) AT Translated Set 2 keyboard: Device: "/dev/input/event1"
    (II) AT Translated Set 2 keyboard: Found keys
    (II) AT Translated Set 2 keyboard: Configuring as keyboard
    (II) XINPUT: Adding extended input device "AT Translated Set 2 keyboard" (type: KEYBOARD)
    (**) Option "xkb_rules" "evdev"
    (**) Option "xkb_model" "evdev"
    (**) Option "xkb_layout" "us"
    (II) config/hal: Adding input device Microsoft Microsoft Wireless Optical Desktop® 1.00
    (**) Microsoft Microsoft Wireless Optical Desktop® 1.00: always reports core events
    (**) Microsoft Microsoft Wireless Optical Desktop® 1.00: Device: "/dev/input/event6"
    (II) Microsoft Microsoft Wireless Optical Desktop® 1.00: Found 9 mouse buttons
    (II) Microsoft Microsoft Wireless Optical Desktop® 1.00: Found scroll wheel(s)
    (II) Microsoft Microsoft Wireless Optical Desktop® 1.00: Found relative axes
    (II) Microsoft Microsoft Wireless Optical Desktop® 1.00: Found x and y relative axes
    (II) Microsoft Microsoft Wireless Optical Desktop® 1.00: Found keys
    (II) Microsoft Microsoft Wireless Optical Desktop® 1.00: Configuring as mouse
    (II) Microsoft Microsoft Wireless Optical Desktop® 1.00: Configuring as keyboard
    (**) Microsoft Microsoft Wireless Optical Desktop® 1.00: YAxisMapping: buttons 4 and 5
    (**) Microsoft Microsoft Wireless Optical Desktop® 1.00: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
    (II) XINPUT: Adding extended input device "Microsoft Microsoft Wireless Optical Desktop® 1.00" (type: KEYBOARD)
    (**) Option "xkb_rules" "evdev"
    (**) Option "xkb_model" "evdev"
    (**) Option "xkb_layout" "us"
    (**) Microsoft Microsoft Wireless Optical Desktop® 1.00: (accel) keeping acceleration scheme 1
    (**) Microsoft Microsoft Wireless Optical Desktop® 1.00: (accel) acceleration profile 0
    (II) Microsoft Microsoft Wireless Optical Desktop® 1.00: initialized for relative axes.
    (II) config/hal: Adding input device Microsoft Microsoft Wireless Optical Desktop® 1.00
    (**) Microsoft Microsoft Wireless Optical Desktop® 1.00: always reports core events
    (**) Microsoft Microsoft Wireless Optical Desktop® 1.00: Device: "/dev/input/event5"
    (II) Microsoft Microsoft Wireless Optical Desktop® 1.00: Found keys
    (II) Microsoft Microsoft Wireless Optical Desktop® 1.00: Configuring as keyboard
    (II) XINPUT: Adding extended input device "Microsoft Microsoft Wireless Optical Desktop® 1.00" (type: KEYBOARD)
    (**) Option "xkb_rules" "evdev"
    (**) Option "xkb_model" "evdev"
    (**) Option "xkb_layout" "us"
    (II) config/hal: Adding input device Power Button
    (**) Power Button: always reports core events
    (**) Power Button: Device: "/dev/input/event2"
    (II) Power Button: Found keys
    (II) Power Button: Configuring as keyboard
    (II) XINPUT: Adding extended input device "Power Button" (type: KEYBOARD)
    (**) Option "xkb_rules" "evdev"
    (**) Option "xkb_model" "evdev"
    (**) Option "xkb_layout" "us"
    (II) config/hal: Adding input device Power Button
    (**) Power Button: always reports core events
    (**) Power Button: Device: "/dev/input/event3"
    (II) Power Button: Found keys
    (II) Power Button: Configuring as keyboard
    (II) XINPUT: Adding extended input device "Power Button" (type: KEYBOARD)
    (**) Option "xkb_rules" "evdev"
    (**) Option "xkb_model" "evdev"
    (**) Option "xkb_layout" "us"
    errors from errors.log, this stuff just repeats
    Mar 19 15:44:43 ArchDaemon kernel: ACPI: I/O resource smsc47m1 [0x680-0x6ff] conflicts with ACPI region IOPM [0x680-0x6ff]
    Mar 19 18:39:21 ArchDaemon kernel: ivtv0: Unable to open firmware v4l-cx2341x-enc.fw (must be 376836 bytes)
    Mar 19 18:39:21 ArchDaemon kernel: ivtv0: Did you put the firmware in the hotplug firmware directory?
    Mar 19 18:39:21 ArchDaemon kernel: ivtv0: Unable to open firmware v4l-cx2341x-enc.fw (must be 376836 bytes)
    Mar 19 18:39:21 ArchDaemon kernel: ivtv0: Did you put the firmware in the hotplug firmware directory?
    Mar 19 18:39:21 ArchDaemon kernel: ivtv0: Failed to initialize on minor 3
    Mar 19 18:39:21 ArchDaemon kernel: ivtv0: Failed to initialize on minor 0
    Mar 19 18:39:21 ArchDaemon kernel: ivtv0: Failed to initialize on minor 1
    Mar 19 18:39:21 ArchDaemon kernel: ivtv0: Failed to initialize on minor 2
    Mar 19 18:39:22 ArchDaemon kernel: ivtv0: Failed to initialize on minor 2
    Mar 19 18:39:22 ArchDaemon kernel: ivtv0: Failed to initialize on minor 0
    Mar 19 18:39:22 ArchDaemon kernel: ivtv0: Failed to initialize on minor 3
    Mar 19 18:39:22 ArchDaemon kernel: ivtv0: Failed to initialize on minor 1
    Mar 19 18:39:22 ArchDaemon kernel: sd 4:0:0:0: [sdb] Assuming drive cache: write through
    Mar 19 18:39:22 ArchDaemon kernel: sd 4:0:0:0: [sdb] Assuming drive cache: write through
    Mar 19 18:39:30 ArchDaemon kernel: sd 4:0:0:0: [sdb] Assuming drive cache: write through
    errors common in auth.log
    Mar 19 13:10:25 ArchDaemon sudo: desktopuser : pam_authenticate: Conversation error ; TTY=unknown ; PWD=/home/desktopuser ; USER=root ; COMMAND=/usr/lib/xfce4/xfsm-shutdown-helper
    Mar 19 13:10:30 ArchDaemon dbus-daemon: Rejected send message, 1 matched rules; type="method_call", sender=":1.10" (uid=1001 pid=1567 comm="exo-mount) interface="org.freedesktop.Hal.Device.Volume" member="Mount" error name="(unset)" requested_reply=0 destination="org.freedesktop.Hal" (uid=0 pid=1336 comm="/usr/sbin/hald))

    I recently did a fresh install of Arch onto an older PC that I have. It's running a P4 3.06GHz, an nVidia GeForce FX 5900, and 1GB RAM. Because of the lower resources, I decided to use xfce4 and slim. I have a monitor and TV hooked up through s-video with the "seperate X screen" option. Whenever I logout of xfce (this includes, logout, reboot, shutdown), it goes to a blank black screen with a cursor at the top left and just hangs. I have slim configured to run from inittab, so it picks up after a couple seconds. However, if I run startx from console, and then logout of xfce the system just hangs and wont accept any keyboard input (including ctrl+alt+function to switch run levels). Also, if I choose to shutdown or reboot, the system will do so but the only thing I see is the blank screen until the POST. If I do a startx from console, the logout, I'm able to ssh in from my laptop, login and issue a reboot (again the screen doesn't change until the POST). Also, if I turn the "seperate x screen" option off, and just run the desktop on the monitor, it doesn't freeze. I've worked my way through a number of issues so far, but this one has me completely stumped. I'm not sure if there's something wrong with my configuration or if it's just a problem with the graphics driver. Any advice and/or help is greatly appreciated.
    Here are configuration and log files:
    Xorg.conf
    # nvidia-settings: X configuration file generated by nvidia-settings
    # nvidia-settings: version 1.0 (buildmeister@builder75) Wed Jan 27 03:03:53 PST 2010
    Section "ServerLayout"
    Identifier "X.org Configured"
    Screen 0 "Screen0" 0 0
    Screen 1 "Screen1" RightOf "Screen0"
    InputDevice "Mouse0" "CorePointer"
    InputDevice "Keyboard0" "CoreKeyboard"
    Option "BlankTime" "0"
    Option "StandbyTime" "0"
    Option "SuspendTime" "0"
    Option "OffTime" "0"
    EndSection
    Section "Files"
    ModulePath "/usr/lib/xorg/modules"
    FontPath "/usr/share/fonts/misc"
    FontPath "/usr/share/fonts/100dpi:unscaled"
    FontPath "/usr/share/fonts/75dpi:unscaled"
    FontPath "/usr/share/fonts/TTF"
    FontPath "/usr/share/fonts/Type1"
    EndSection
    Section "Module"
    Load "glx"
    Load "dri2"
    Load "dri"
    Load "dbe"
    Load "record"
    Load "extmod"
    EndSection
    Section "ServerFlags"
    Option "Xinerama" "0"
    EndSection
    Section "InputDevice"
    Identifier "Keyboard0"
    Driver "kbd"
    EndSection
    Section "InputDevice"
    Identifier "Mouse0"
    Driver "mouse"
    Option "Protocol" "auto"
    Option "Device" "/dev/input/mice"
    Option "ZAxisMapping" "4 5 6 7"
    EndSection
    Section "Monitor"
    Identifier "Monitor0"
    VendorName "Unknown"
    Option "DPI" "95 x 96"
    ModelName "CMO CMC 17 AD"
    HorizSync 30.0 - 82.0
    VertRefresh 50.0 - 75.0
    EndSection
    Section "Monitor"
    Identifier "Monitor1"
    VendorName "Unknown"
    ModelName "TV-0"
    HorizSync 28.0 - 33.0
    VertRefresh 43.0 - 72.0
    EndSection
    Section "Device"
    Identifier "Card0"
    Driver "nvidia"
    VendorName "nVidia Corporation"
    BoardName "NV35 [GeForce FX 5900]"
    BusID "PCI:1:0:0"
    EndSection
    Section "Device"
    Identifier "Videocard0"
    Driver "nvidia"
    VendorName "NVIDIA Corporation"
    BoardName "GeForce FX 5900"
    BusID "PCI:1:0:0"
    Screen 0
    EndSection
    Section "Device"
    Identifier "Videocard1"
    Driver "nvidia"
    VendorName "NVIDIA Corporation"
    BoardName "GeForce FX 5900"
    BusID "PCI:1:0:0"
    Screen 1
    EndSection
    Section "Screen"
    Identifier "Screen0"
    Device "Videocard0"
    Monitor "Monitor0"
    DefaultDepth 24
    Option "TwinView" "0"
    Option "TwinViewXineramaInfoOrder" "CRT-0"
    Option "metamodes" "CRT: nvidia-auto-select +0+0"
    SubSection "Display"
    Depth 24
    EndSubSection
    EndSection
    Section "Screen"
    Identifier "Screen1"
    Device "Videocard1"
    Monitor "Monitor1"
    DefaultDepth 24
    Option "TwinView" "0"
    Option "metamodes" "TV: nvidia-auto-select +0+0"
    SubSection "Display"
    Depth 24
    EndSubSection
    EndSection
    slim.conf
    # Path, X server and arguments (if needed)
    # Note: -xauth $authfile is automatically appended
    default_path ./:/bin:/usr/bin:/usr/local/bin
    default_xserver /usr/bin/X
    xserver_arguments -nolisten tcp vt07
    # Commands for halt, login, etc.
    halt_cmd /sbin/shutdown -h now
    reboot_cmd /sbin/shutdown -r now
    console_cmd /usr/bin/xterm -C -fg white -bg black +sb -T "Console login" -e /bin/sh -c "/bin/cat /etc/issue; exec /bin/login"
    #suspend_cmd /usr/sbin/suspend
    # Full path to the xauth binary
    xauth_path /usr/bin/xauth
    # Xauth file for server
    authfile /var/run/slim.auth
    # Activate numlock when slim starts. Valid values: on|off
    # numlock on
    # Hide the mouse cursor (note: does not work with some WMs).
    # Valid values: true|false
    # hidecursor false
    # This command is executed after a succesful login.
    # you can place the %session and %theme variables
    # to handle launching of specific commands in .xinitrc
    # depending of chosen session and slim theme
    # NOTE: if your system does not have bash you need
    # to adjust the command according to your preferred shell,
    # i.e. for freebsd use:
    # login_cmd exec /bin/sh - ~/.xinitrc %session
    login_cmd exec /bin/bash -login ~/.xinitrc %session
    # Commands executed when starting and exiting a session.
    # They can be used for registering a X11 session with
    # sessreg. You can use the %user variable
    sessionstart_cmd /usr/bin/sessreg -a -l $DISPLAY %user
    sessionstop_cmd /usr/bin/sessreg -d -l $DISPLAY %user
    # Start in daemon mode. Valid values: yes | no
    # Note that this can be overriden by the command line
    # options "-d" and "-nodaemon"
    # daemon yes
    # Available sessions (first one is the default).
    # The current chosen session name is replaced in the login_cmd
    # above, so your login command can handle different sessions.
    # see the xinitrc.sample file shipped with slim sources
    sessions xfce4,icewm,wmaker,blackbox
    # Executed when pressing F11 (requires imagemagick)
    screenshot_cmd import -window root /slim.png
    # welcome message. Available variables: %host, %domain
    welcome_msg Welcome to %host
    # Session message. Prepended to the session name when pressing F1
    # session_msg Session:
    # shutdown / reboot messages
    shutdown_msg The system is halting...
    reboot_msg The system is rebooting...
    # default user, leave blank or remove this line
    # for avoid pre-loading the username.
    default_user desktopuser
    # Focus the password field on start when default_user is set
    # Set to "yes" to enable this feature
    focus_password yes
    # Automatically login the default user (without entering
    # the password. Set to "yes" to enable this feature
    auto_login yes
    # current theme, use comma separated list to specify a set to
    # randomly choose from
    current_theme default
    # Lock file
    lockfile /var/lock/slim.lock
    # Log file
    logfile /var/log/slim.log
    slim.log isolated reboot
    /usr/bin/xauth: creating new authority file /var/run/slim.auth
    This is a pre-release version of the X server from The X.Org Foundation.
    It is not supported in any way.
    Bugs may be filed in the bugzilla at http://bugs.freedesktop.org/.
    Select the "xorg" product for bugs you find in this release.
    Before reporting bugs in pre-release versions please check the
    latest version in the X.Org Foundation git repository.
    See http://wiki.x.org/wiki/GitPage for git access instructions.
    X.Org X Server 1.7.5.902 (1.7.6 RC 2)
    Release Date: 2010-03-12
    X Protocol Version 11, Revision 0
    Build Operating System: Linux 2.6.33-ARCH i686
    Current Operating System: Linux ArchDaemon 2.6.32-ARCH #1 SMP PREEMPT Mon Mar 15 20:08:25 UTC 2010 i686
    Kernel command line: root=/dev/disk/by-uuid/49d062ba-9f7b-4d18-98f2-87249f723889 ro 5 acpi_enforce_resources=lax vga=771
    Build Date: 13 March 2010 07:33:22PM
    Current version of pixman: 0.16.6
    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
    Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
    (==) Log file: "/var/log/Xorg.0.log", Time: Fri Mar 19 14:07:00 2010
    (==) Using config file: "/etc/X11/xorg.conf"
    /usr/bin/xauth: creating new authority file /home/desktopuser/.Xauthority
    /usr/bin/startxfce4: X server already running on display :0.0
    /tmp/xrdb_dysqQd:1: error: Unknown #directive "Those"
    # Those are fallback settings, use the ui plugin to change it
    /tmp/xrdb_dysqQd:2: error: Unknown #directive "or"
    # or add your overrides to ~/.Xresources
    /tmp/xrdb_dysqQd:3: error: Unknown #directive "Xft"
    # Xft.hintstyle: hintnone/hintslight/hintmedium/hintfull
    /tmp/xrdb_dysqQd:4: error: Unknown #directive "Xft"
    # Xft hinting: 1/0
    4 errors in preprocessor.
    xrdb: "Xft.hinting" on line 9 overrides entry on line 6
    xrdb: "Xft.hintstyle" on line 11 overrides entry on line 7
    /tmp/xrdb_dysqQd:1: error: Unknown #directive "Those"
    # Those are fallback settings, use the ui plugin to change it
    /tmp/xrdb_dysqQd:2: error: Unknown #directive "or"
    # or add your overrides to ~/.Xresources
    /tmp/xrdb_dysqQd:3: error: Unknown #directive "Xft"
    # Xft.hintstyle: hintnone/hintslight/hintmedium/hintfull
    /tmp/xrdb_dysqQd:4: error: Unknown #directive "Xft"
    # Xft hinting: 1/0
    4 errors in preprocessor.
    xrdb: "Xft.hinting" on line 9 overrides entry on line 6
    xrdb: "Xft.hintstyle" on line 11 overrides entry on line 7
    Agent pid 1617
    xfdesktop[1637]: starting up
    (xfce4-settings-helper:1639): GLib-GObject-CRITICAL **: g_param_spec_flags: assertion `G_TYPE_IS_FLAGS (flags_type)' failed
    (xfce4-settings-helper:1639): GLib-GObject-CRITICAL **: g_object_class_install_property: assertion `G_IS_PARAM_SPEC (pspec)' failed
    slim.log isolated logout
    slim: waiting for X server to shut down..........
    slim: X server slow to shut down, sending KILL signal.
    slim: waiting for server to die
    /usr/bin/xauth: creating new authority file /var/run/slim.auth
    slim: waiting for X server to begin accepting connections
    This is a pre-release version of the X server from The X.Org Foundation.
    It is not supported in any way.
    Bugs may be filed in the bugzilla at http://bugs.freedesktop.org/.
    Select the "xorg" product for bugs you find in this release.
    Before reporting bugs in pre-release versions please check the
    latest version in the X.Org Foundation git repository.
    See http://wiki.x.org/wiki/GitPage for git access instructions.
    X.Org X Server 1.7.5.902 (1.7.6 RC 2)
    Release Date: 2010-03-12
    X Protocol Version 11, Revision 0
    Build Operating System: Linux 2.6.33-ARCH i686
    Current Operating System: Linux ArchDaemon 2.6.32-ARCH #1 SMP PREEMPT Mon Mar 15 20:08:25 UTC 2010 i686
    Kernel command line: root=/dev/disk/by-uuid/49d062ba-9f7b-4d18-98f2-87249f723889 ro 5 acpi_enforce_resources=lax vga=771
    Build Date: 13 March 2010 07:33:22PM
    Current version of pixman: 0.16.6
    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
    Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
    (==) Log file: "/var/log/Xorg.0.log", Time: Fri Mar 19 14:01:03 2010
    (==) Using config file: "/etc/X11/xorg.conf"
    Xorg.0.log
    This is a pre-release version of the X server from The X.Org Foundation.
    It is not supported in any way.
    Bugs may be filed in the bugzilla at http://bugs.freedesktop.org/.
    Select the "xorg" product for bugs you find in this release.
    Before reporting bugs in pre-release versions please check the
    latest version in the X.Org Foundation git repository.
    See http://wiki.x.org/wiki/GitPage for git access instructions.
    X.Org X Server 1.7.5.902 (1.7.6 RC 2)
    Release Date: 2010-03-12
    X Protocol Version 11, Revision 0
    Build Operating System: Linux 2.6.33-ARCH i686
    Current Operating System: Linux ArchDaemon 2.6.32-ARCH #1 SMP PREEMPT Mon Mar 15 20:08:25 UTC 2010 i686
    Kernel command line: root=/dev/disk/by-uuid/49d062ba-9f7b-4d18-98f2-87249f723889 ro 5 acpi_enforce_resources=lax vga=771
    Build Date: 13 March 2010 07:33:22PM
    Current version of pixman: 0.16.6
    Before reporting problems, check http://wiki.x.org
    to make sure that you have the latest version.
    Markers: (--) probed, (**) from config file, (==) default setting,
    (++) from command line, (!!) notice, (II) informational,
    (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
    (==) Log file: "/var/log/Xorg.0.log", Time: Fri Mar 19 18:39:41 2010
    (==) Using config file: "/etc/X11/xorg.conf"
    (==) ServerLayout "X.org Configured"
    (**) |-->Screen "Screen0" (0)
    (**) | |-->Monitor "Monitor0"
    (**) | |-->Device "Videocard0"
    (**) |-->Screen "Screen1" (1)
    (**) | |-->Monitor "Monitor1"
    (**) | |-->Device "Videocard1"
    (**) |-->Input Device "Mouse0"
    (**) |-->Input Device "Keyboard0"
    (**) Option "BlankTime" "0"
    (**) Option "StandbyTime" "0"
    (**) Option "SuspendTime" "0"
    (**) Option "OffTime" "0"
    (**) Option "Xinerama" "0"
    (==) Automatically adding devices
    (==) Automatically enabling devices
    (**) FontPath set to:
    /usr/share/fonts/misc,
    /usr/share/fonts/100dpi:unscaled,
    /usr/share/fonts/75dpi:unscaled,
    /usr/share/fonts/TTF,
    /usr/share/fonts/Type1,
    /usr/share/fonts/misc,
    /usr/share/fonts/100dpi:unscaled,
    /usr/share/fonts/75dpi:unscaled,
    /usr/share/fonts/TTF,
    /usr/share/fonts/Type1
    (**) ModulePath set to "/usr/lib/xorg/modules"
    (WW) AllowEmptyInput is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
    (WW) Disabling Mouse0
    (WW) Disabling Keyboard0
    (II) Loader magic: 0x81e4c40
    (II) Module ABI versions:
    X.Org ANSI C Emulation: 0.4
    X.Org Video Driver: 6.0
    X.Org XInput driver : 7.0
    X.Org Server Extension : 2.0
    (++) using VT number 7
    (--) PCI:*(0:1:0:0) 10de:0331:0000:0000 nVidia Corporation NV35 [GeForce FX 5900] rev 161, Mem @ 0xfd000000/16777216, 0xe0000000/134217728, BIOS @ 0x????????/131072
    (--) PCI: (0:2:10:0) 4444:0016:0070:b7f3 Internext Compression Inc iTVC16 (CX23416) MPEG-2 Encoder rev 1, Mem @ 0xf0000000/67108864
    (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
    (II) "extmod" will be loaded. This was enabled by default and also specified in the config file.
    (II) "dbe" will be loaded. This was enabled by default and also specified in the config file.
    (II) "glx" will be loaded. This was enabled by default and also specified in the config file.
    (II) "record" will be loaded. This was enabled by default and also specified in the config file.
    (II) "dri" will be loaded. This was enabled by default and also specified in the config file.
    (II) "dri2" will be loaded. This was enabled by default and also specified in the config file.
    (II) LoadModule: "glx"
    (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
    (II) Module glx: vendor="NVIDIA Corporation"
    compiled for 4.0.2, module version = 1.0.0
    Module class: X.Org Server Extension
    (II) NVIDIA GLX Module 173.14.25 Wed Jan 27 02:59:37 PST 2010
    (II) Loading extension GLX
    (II) LoadModule: "dri2"
    (II) Loading /usr/lib/xorg/modules/extensions/libdri2.so
    (II) Module dri2: vendor="X.Org Foundation"
    compiled for 1.7.5.902, module version = 1.1.0
    ABI class: X.Org Server Extension, version 2.0
    (II) Loading extension DRI2
    (II) LoadModule: "dri"
    (II) Loading /usr/lib/xorg/modules/extensions/libdri.so
    (II) Module dri: vendor="X.Org Foundation"
    compiled for 1.7.5.902, module version = 1.0.0
    ABI class: X.Org Server Extension, version 2.0
    (II) Loading extension XFree86-DRI
    (II) LoadModule: "dbe"
    (II) Loading /usr/lib/xorg/modules/extensions/libdbe.so
    (II) Module dbe: vendor="X.Org Foundation"
    compiled for 1.7.5.902, module version = 1.0.0
    Module class: X.Org Server Extension
    ABI class: X.Org Server Extension, version 2.0
    (II) Loading extension DOUBLE-BUFFER
    (II) LoadModule: "record"
    (II) Loading /usr/lib/xorg/modules/extensions/librecord.so
    (II) Module record: vendor="X.Org Foundation"
    compiled for 1.7.5.902, module version = 1.13.0
    Module class: X.Org Server Extension
    ABI class: X.Org Server Extension, version 2.0
    (II) Loading extension RECORD
    (II) LoadModule: "extmod"
    (II) Loading /usr/lib/xorg/modules/extensions/libextmod.so
    (II) Module extmod: vendor="X.Org Foundation"
    compiled for 1.7.5.902, module version = 1.0.0
    Module class: X.Org Server Extension
    ABI class: X.Org Server Extension, version 2.0
    (II) Loading extension MIT-SCREEN-SAVER
    (II) Loading extension XFree86-VidModeExtension
    (II) Loading extension XFree86-DGA
    (II) Loading extension DPMS
    (II) Loading extension XVideo
    (II) Loading extension XVideo-MotionCompensation
    (II) Loading extension X-Resource
    (II) LoadModule: "nvidia"
    (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
    (II) Module nvidia: vendor="NVIDIA Corporation"
    compiled for 4.0.2, module version = 1.0.0
    Module class: X.Org Video Driver
    (II) NVIDIA dlloader X Driver 173.14.25 Wed Jan 27 02:34:38 PST 2010
    (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
    (II) Primary Device is: PCI 01@00:00:0
    (II) Loading sub module "fb"
    (II) LoadModule: "fb"
    (II) Loading /usr/lib/xorg/modules/libfb.so
    (II) Module fb: vendor="X.Org Foundation"
    compiled for 1.7.5.902, module version = 1.0.0
    ABI class: X.Org ANSI C Emulation, version 0.4
    (II) Loading sub module "wfb"
    (II) LoadModule: "wfb"
    (II) Loading /usr/lib/xorg/modules/libwfb.so
    (II) Module wfb: vendor="X.Org Foundation"
    compiled for 1.7.5.902, module version = 1.0.0
    ABI class: X.Org ANSI C Emulation, version 0.4
    (II) Loading sub module "ramdac"
    (II) LoadModule: "ramdac"
    (II) Module "ramdac" already built-in
    (**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
    (==) NVIDIA(0): RGB weight 888
    (==) NVIDIA(0): Default visual is TrueColor
    (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
    (**) NVIDIA(0): Option "TwinView" "0"
    (**) NVIDIA(0): Option "MetaModes" "CRT: nvidia-auto-select +0+0"
    (**) NVIDIA(0): Option "TwinViewXineramaInfoOrder" "CRT-0"
    (**) NVIDIA(0): Option "DPI" "95 x 96"
    (**) NVIDIA(0): Enabling RENDER acceleration
    (II) NVIDIA(0): Support for GLX with the Damage and Composite X extensions is
    (II) NVIDIA(0): enabled.
    (II) NVIDIA(0): NVIDIA GPU GeForce FX 5900 (NV35) at PCI:1:0:0 (GPU-0)
    (--) NVIDIA(0): Memory: 131072 kBytes
    (--) NVIDIA(0): VideoBIOS: 04.35.20.18.04
    (II) NVIDIA(0): Detected AGP rate: 8X
    (--) NVIDIA(0): Interlaced video modes are supported on this GPU
    (--) NVIDIA(0): Connected display device(s) on GeForce FX 5900 at PCI:1:0:0:
    (--) NVIDIA(0): CMO CMC 17" AD (CRT-0)
    (--) NVIDIA(0): NVIDIA TV Encoder (TV-0)
    (--) NVIDIA(0): CMO CMC 17" AD (CRT-0): 400.0 MHz maximum pixel clock
    (--) NVIDIA(0): NVIDIA TV Encoder (TV-0): 400.0 MHz maximum pixel clock
    (--) NVIDIA(0): TV encoder: NVIDIA
    (II) NVIDIA(0): Display Device found referenced in MetaMode: CRT-0
    (II) NVIDIA(0): Assigned Display Device: CRT-0
    (II) NVIDIA(0): Validated modes:
    (II) NVIDIA(0): "CRT:nvidia-auto-select+0+0"
    (II) NVIDIA(0): Virtual screen size determined to be 1280 x 1024
    (**) NVIDIA(0): DPI set to (95, 96); computed from "DPI" X config option
    (==) NVIDIA(0): Enabling 32-bit ARGB GLX visuals.
    (**) NVIDIA(1): Depth 24, (--) framebuffer bpp 32
    (==) NVIDIA(1): RGB weight 888
    (==) NVIDIA(1): Default visual is TrueColor
    (==) NVIDIA(1): Using gamma correction (1.0, 1.0, 1.0)
    (**) NVIDIA(1): Option "TwinView" "0"
    (**) NVIDIA(1): Option "MetaModes" "TV: nvidia-auto-select +0+0"
    (**) NVIDIA(1): Enabling RENDER acceleration
    (II) NVIDIA(1): NVIDIA GPU GeForce FX 5900 (NV35) at PCI:1:0:0 (GPU-0)
    (--) NVIDIA(1): Memory: 131072 kBytes
    (--) NVIDIA(1): VideoBIOS: 04.35.20.18.04
    (II) NVIDIA(1): Detected AGP rate: 8X
    (--) NVIDIA(1): Interlaced video modes are supported on this GPU
    (--) NVIDIA(1): Connected display device(s) on GeForce FX 5900 at PCI:1:0:0:
    (--) NVIDIA(1): CMO CMC 17" AD (CRT-0)
    (--) NVIDIA(1): NVIDIA TV Encoder (TV-0)
    (--) NVIDIA(1): CMO CMC 17" AD (CRT-0): 400.0 MHz maximum pixel clock
    (--) NVIDIA(1): NVIDIA TV Encoder (TV-0): 400.0 MHz maximum pixel clock
    (--) NVIDIA(1): TV encoder: NVIDIA
    (II) NVIDIA(1): Display Device found referenced in MetaMode: TV-0
    (II) NVIDIA(1): Assigned Display Device: TV-0
    (II) NVIDIA(1): Validated modes:
    (II) NVIDIA(1): "TV:nvidia-auto-select+0+0"
    (II) NVIDIA(1): Virtual screen size determined to be 1024 x 768
    (==) NVIDIA(1): DPI set to (75, 75); computed from built-in default
    (==) NVIDIA(1): Enabling 32-bit ARGB GLX visuals.
    (--) Depth 24 pixmap format is 32 bpp
    (II) NVIDIA(0): Initialized AGP GART.
    (II) NVIDIA(0): Unable to connect to the ACPI daemon; the ACPI daemon may not
    (II) NVIDIA(0): be running or the "AcpidSocketPath" X configuration option
    (II) NVIDIA(0): may not be set correctly. When the ACPI daemon is
    (II) NVIDIA(0): available, the NVIDIA X driver can use it to receive ACPI
    (II) NVIDIA(0): events. For details, please see the "ConnectToAcpid" and
    (II) NVIDIA(0): "AcpidSocketPath" X configuration options in Appendix B: X
    (II) NVIDIA(0): Config Options in the README.
    (II) NVIDIA(0): Setting mode "CRT:nvidia-auto-select+0+0"
    (II) Loading extension NV-GLX
    (II) NVIDIA(0): NVIDIA 3D Acceleration Architecture Initialized
    (II) NVIDIA(0): Using the NVIDIA 2D acceleration architecture
    (==) NVIDIA(0): Backing store disabled
    (==) NVIDIA(0): Silken mouse enabled
    (==) NVIDIA(0): DPMS enabled
    (II) Loading extension NV-CONTROL
    (==) RandR enabled
    (II) NVIDIA(1): Initialized AGP GART.
    (II) NVIDIA(1): Unable to connect to the ACPI daemon; the ACPI daemon may not
    (II) NVIDIA(1): be running or the "AcpidSocketPath" X configuration option
    (II) NVIDIA(1): may not be set correctly. When the ACPI daemon is
    (II) NVIDIA(1): available, the NVIDIA X driver can use it to receive ACPI
    (II) NVIDIA(1): events. For details, please see the "ConnectToAcpid" and
    (II) NVIDIA(1): "AcpidSocketPath" X configuration options in Appendix B: X
    (II) NVIDIA(1): Config Options in the README.
    (II) NVIDIA(1): Setting mode "TV:nvidia-auto-select+0+0"
    (II) NVIDIA(1): NVIDIA 3D Acceleration Architecture Initialized
    (II) NVIDIA(1): Using the NVIDIA 2D acceleration architecture
    (==) NVIDIA(1): Backing store disabled
    (==) NVIDIA(1): Silken mouse enabled
    (==) NVIDIA(1): DPMS enabled
    (==) RandR enabled
    (II) Initializing built-in extension Generic Event Extension
    (II) Initializing built-in extension SHAPE
    (II) Initializing built-in extension MIT-SHM
    (II) Initializing built-in extension XInputExtension
    (II) Initializing built-in extension XTEST
    (II) Initializing built-in extension BIG-REQUESTS
    (II) Initializing built-in extension SYNC
    (II) Initializing built-in extension XKEYBOARD
    (II) Initializing built-in extension XC-MISC
    (II) Initializing built-in extension SECURITY
    (II) Initializing built-in extension XINERAMA
    (II) Initializing built-in extension XFIXES
    (II) Initializing built-in extension RENDER
    (II) Initializing built-in extension RANDR
    (II) Initializing built-in extension COMPOSITE
    (II) Initializing built-in extension DAMAGE
    (II) Initializing extension GLX
    (II) config/hal: Adding input device Macintosh mouse button emulation
    (II) LoadModule: "evdev"
    (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
    (II) Module evdev: vendor="X.Org Foundation"
    compiled for 1.7.3, module version = 2.3.2
    Module class: X.Org XInput Driver
    ABI class: X.Org XInput driver, version 7.0
    (**) Macintosh mouse button emulation: always reports core events
    (**) Macintosh mouse button emulation: Device: "/dev/input/event0"
    (II) Macintosh mouse button emulation: Found 3 mouse buttons
    (II) Macintosh mouse button emulation: Found relative axes
    (II) Macintosh mouse button emulation: Found x and y relative axes
    (II) Macintosh mouse button emulation: Configuring as mouse
    (**) Macintosh mouse button emulation: YAxisMapping: buttons 4 and 5
    (**) Macintosh mouse button emulation: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
    (II) XINPUT: Adding extended input device "Macintosh mouse button emulation" (type: MOUSE)
    (**) Macintosh mouse button emulation: (accel) keeping acceleration scheme 1
    (**) Macintosh mouse button emulation: (accel) acceleration profile 0
    (II) Macintosh mouse button emulation: initialized for relative axes.
    (II) config/hal: Adding input device AT Translated Set 2 keyboard
    (**) AT Translated Set 2 keyboard: always reports core events
    (**) AT Translated Set 2 keyboard: Device: "/dev/input/event1"
    (II) AT Translated Set 2 keyboard: Found keys
    (II) AT Translated Set 2 keyboard: Configuring as keyboard
    (II) XINPUT: Adding extended input device "AT Translated Set 2 keyboard" (type: KEYBOARD)
    (**) Option "xkb_rules" "evdev"
    (**) Option "xkb_model" "evdev"
    (**) Option "xkb_layout" "us"
    (II) config/hal: Adding input device Microsoft Microsoft Wireless Optical Desktop® 1.00
    (**) Microsoft Microsoft Wireless Optical Desktop® 1.00: always reports core events
    (**) Microsoft Microsoft Wireless Optical Desktop® 1.00: Device: "/dev/input/event6"
    (II) Microsoft Microsoft Wireless Optical Desktop® 1.00: Found 9 mouse buttons
    (II) Microsoft Microsoft Wireless Optical Desktop® 1.00: Found scroll wheel(s)
    (II) Microsoft Microsoft Wireless Optical Desktop® 1.00: Found relative axes
    (II) Microsoft Microsoft Wireless Optical Desktop® 1.00: Found x and y relative axes
    (II) Microsoft Microsoft Wireless Optical Desktop® 1.00: Found keys
    (II) Microsoft Microsoft Wireless Optical Desktop® 1.00: Configuring as mouse
    (II) Microsoft Microsoft Wireless Optical Desktop® 1.00: Configuring as keyboard
    (**) Microsoft Microsoft Wireless Optical Desktop® 1.00: YAxisMapping: buttons 4 and 5
    (**) Microsoft Microsoft Wireless Optical Desktop® 1.00: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
    (II) XINPUT: Adding extended input device "Microsoft Microsoft Wireless Optical Desktop® 1.00" (type: KEYBOARD)
    (**) Option "xkb_rules" "evdev"
    (**) Option "xkb_model" "evdev"
    (**) Option "xkb_layout" "us"
    (**) Microsoft Microsoft Wireless Optical Desktop® 1.00: (accel) keeping acceleration scheme 1
    (**) Microsoft Microsoft Wireless Optical Desktop® 1.00: (accel) acceleration profile 0
    (II) Microsoft Microsoft Wireless Optical Desktop® 1.00: initialized for relative axes.
    (II) config/hal: Adding input device Microsoft Microsoft Wireless Optical Desktop® 1.00
    (**) Microsoft Microsoft Wireless Optical Desktop® 1.00: always reports core events
    (**) Microsoft Microsoft Wireless Optical Desktop® 1.00: Device: "/dev/input/event5"
    (II) Microsoft Microsoft Wireless Optical Desktop® 1.00: Found keys
    (II) Microsoft Microsoft Wireless Optical Desktop® 1.00: Configuring as keyboard
    (II) XINPUT: Adding extended input device "Microsoft Microsoft Wireless Optical Desktop® 1.00" (type: KEYBOARD)
    (**) Option "xkb_rules" "evdev"
    (**) Option "xkb_model" "evdev"
    (**) Option "xkb_layout" "us"
    (II) config/hal: Adding input device Power Button
    (**) Power Button: always reports core events
    (**) Power Button: Device: "/dev/input/event2"
    (II) Power Button: Found keys
    (II) Power Button: Configuring as keyboard
    (II) XINPUT: Adding extended input device "Power Button" (type: KEYBOARD)
    (**) Option "xkb_rules" "evdev"
    (**) Option "xkb_model" "evdev"
    (**) Option "xkb_layout" "us"
    (II) config/hal: Adding input device Power Button
    (**) Power Button: always reports core events
    (**) Power Button: Device: "/dev/input/event3"
    (II) Power Button: Found keys
    (II) Power Button: Configuring as keyboard
    (II) XINPUT: Adding extended input device "Power Button" (type: KEYBOARD)
    (**) Option "xkb_rules" "evdev"
    (**) Option "xkb_model" "evdev"
    (**) Option "xkb_layout" "us"
    errors from errors.log, this stuff just repeats
    Mar 19 15:44:43 ArchDaemon kernel: ACPI: I/O resource smsc47m1 [0x680-0x6ff] conflicts with ACPI region IOPM [0x680-0x6ff]
    Mar 19 18:39:21 ArchDaemon kernel: ivtv0: Unable to open firmware v4l-cx2341x-enc.fw (must be 376836 bytes)
    Mar 19 18:39:21 ArchDaemon kernel: ivtv0: Did you put the firmware in the hotplug firmware directory?
    Mar 19 18:39:21 ArchDaemon kernel: ivtv0: Unable to open firmware v4l-cx2341x-enc.fw (must be 376836 bytes)
    Mar 19 18:39:21 ArchDaemon kernel: ivtv0: Did you put the firmware in the hotplug firmware directory?
    Mar 19 18:39:21 ArchDaemon kernel: ivtv0: Failed to initialize on minor 3
    Mar 19 18:39:21 ArchDaemon kernel: ivtv0: Failed to initialize on minor 0
    Mar 19 18:39:21 ArchDaemon kernel: ivtv0: Failed to initialize on minor 1
    Mar 19 18:39:21 ArchDaemon kernel: ivtv0: Failed to initialize on minor 2
    Mar 19 18:39:22 ArchDaemon kernel: ivtv0: Failed to initialize on minor 2
    Mar 19 18:39:22 ArchDaemon kernel: ivtv0: Failed to initialize on minor 0
    Mar 19 18:39:22 ArchDaemon kernel: ivtv0: Failed to initialize on minor 3
    Mar 19 18:39:22 ArchDaemon kernel: ivtv0: Failed to initialize on minor 1
    Mar 19 18:39:22 ArchDaemon kernel: sd 4:0:0:0: [sdb] Assuming drive cache: write through
    Mar 19 18:39:22 ArchDaemon kernel: sd 4:0:0:0: [sdb] Assuming drive cache: write through
    Mar 19 18:39:30 ArchDaemon kernel: sd 4:0:0:0: [sdb] Assuming drive cache: write through
    errors common in auth.log
    Mar 19 13:10:25 ArchDaemon sudo: desktopuser : pam_authenticate: Conversation error ; TTY=unknown ; PWD=/home/desktopuser ; USER=root ; COMMAND=/usr/lib/xfce4/xfsm-shutdown-helper
    Mar 19 13:10:30 ArchDaemon dbus-daemon: Rejected send message, 1 matched rules; type="method_call", sender=":1.10" (uid=1001 pid=1567 comm="exo-mount) interface="org.freedesktop.Hal.Device.Volume" member="Mount" error name="(unset)" requested_reply=0 destination="org.freedesktop.Hal" (uid=0 pid=1336 comm="/usr/sbin/hald))

  • Worked example using 'patch' and 'sed' to make a pkg

    I would like this to be reviewed, please. The methododology may need to be standardized a bit more. Also, of course, the way I have used scripts may be a bit controversial. Certainly, anyone who knows what they are doing could easily do without these scripts, but maybe also they are stepping stones to acquiring that sort of proficiency! Also, I would not rule out that the PKGBUILD, itself, can be criticised/ improved with guidance.
    Introduction
    Here is a method for creating patches for Makefiles which uses sed to convert #PREFIX# to $Startdir/pkg in literal path form, so that the build is fully portable. I asked a while back on the forum whether this was possible. Xentac held my hand, while I picked up the method from him. What follows also incorporates some of his cautions about retaining md5sum integrity. (A point about which I earlier had a weak understanding!) My thanks also to dp who sorted me out on the use of $pkgname and $origname.
    Description
    The PKGBUILD method is an example of automation, which these scripts follow in that variables are assigned values and then a template-like feel follows on. Despite this resemblance, you will need to make these two files executable by applying
    $ chmod +x FILENAME
    You will need to execute them in a terminal with the commands
    $ cd YOUR_WORKING_DIRECTORY_PATH
    $ ./Makefiles_ready
    or
    $ ./PATCHMAKER
    This will all work under fakeroot, provided the files have 'user users' permissions. The attached scripts are annotated examples; and enough is provided so that the reader can fabricate his/her own Makefile_new and test out the method for his(her)self.
    I reckon this might be useful practice for learning the technique. I need to mention that for full functionality postfix needs to be installed and set up so that sendmail can work, but a lot of the functionality can be tested without doing this.
    The command for starting the application is
    $ FaxMail
    You can, of course, run it for testing purposes from $startdir/pkg/usr/bin. Note the distinction between $origname and $pkgname, which you will see in the following files.
    Getting Directory and Files Ready
    You could start by making a new directory in $HOME, possibly called 'TESTBED' and by creating empty files named as per the following, ready for copying and pasting. It could also be useful to create a file called HOWTO and paste these notes into it. You will then need to check the 'user users' permissions and to make the two new scripts exucutable.
    Then, you are ready to roll -- completing the whole process with a straight 'makepkg' in the terminal.
    File Contents
    Makefiles_ready
    #! /bin/sh
    # Makefiles_ready... generates two clean copies of the Makefile.
    origname=FaxMail
    pkgver=2.3
    ### RESULTS:-- two appropriately named copies of clean Makefile.
    ### 'Makefile_new.scratch' is so named as a safeguard against
    ### inadvertently overwriting any earlier 'Makefile_new'. So, if you just
    ### want a clean 'Makefile_pristine' with which to make a new patch,
    ### delete the generated 'Makefile_new.scratch'.
    ### REQUIREMENTS:-- Either a downloaded and compressed source file
    ### in the main directory, and appropriate source array in PKGBUILD.
    ### Or just the latter.
    ### NOTES: If there is already a ./src_old, it should first be deleted by
    ### hand. If there is already a $pkgname-$pkgver.pkg.tar.gz, it will need
    ### to be removed or deleted. This script will produce a failed make
    ### but will produce the results we are looking for.
    mv ./src ./src_old
    makepkg -o
    # downloads and extracts files; does not build.
    cp ./src/$origname-$pkgver/Makefile Makefile_new.scratch
    cp Makefile_new.scratch Makefile_pristine
    echo ">> When and if ammended, Makefile_new.scratch "
    echo ">> needs to be renamed as Makefile_new. If you do this"
    echo ">> and you want to retain your earlier Makefile_new, you "
    echo " should first rename it to something like Makefile_prev_new."
    PATCHMAKER
    #! /bin/sh
    # PATCHMAKER... makes a patch file
    origname=FaxMail
    pkgname=faxmail
    pkgver=2.3
    ### RESULTS:-- $pkgname-$pkgver.patch; md5sums
    ### REQUIREMENTS:-- Clean Makefile_pristine; Edited Makefile_new;
    ### PKGBUILD ammended to include $pkgname-$pkgver.patch in source array.
    ### '#PREFIX#' stands in for '$startdir/pkg' -- see the sed command
    ### in PKGBUILD which inserts the required literal path, prior to making
    ### for real.
    ### It is a good idea to look at the patchfile produced here, and checkout by
    ### eye that the lines set for deletion are really from the Makefile_pristine.
    ### The two scripts have worked consistently, according to my tests.
    ### Makefiles_ready can be used to ensure you have clean makefile copies
    ### to start from.
    diff -aur Makefile_pristine Makefile_new >$pkgname-$pkgver.patch
    makepkg -go
    ## tests sources and produce md5sums; does not start the build process.
    echo ">> Check $pkgname-$pkgver.patch"
    echo ">> If it is OK, paste md5sums into PKGBUILD"
    PKGBUILD
    # $Id: PKGBUILD, $
    # Maintainer:
    origname=FaxMail
    pkgname=faxmail
    pkgver=2.3
    pkgrel=1
    pkgdesc="A front end for sending faxes via email."
    url="http://wol.ra.phy.cam.ac.uk/FaxMail/"
    depends=('tcl' 'tk' 'imagemagick' 'postfix')
    makedepends=('tcl' 'tk')
    conflicts=()
    replaces=()
    backup=()
    install=
    source=(ftp://sunsite.unc.edu/pub/Linux/apps/serialcomm/fax/$origname-$pkgver.tar.gz
    ./$pkgname-$pkgver.patch)
    md5sums=('55dc96aee65ccd3bee2ec38bb6ca0ffd' 'b419add4472576a2a4fc4272e8c7da48')
    build() {
    cd $startdir/src/$origname-$pkgver
    patch Makefile $startdir/src/$pkgname-$pkgver.patch
    sed -i "s%#PREFIX#%$startdir/pkg%g" Makefile
    mkdir -p $startdir/pkg/usr/bin/ $startdir/pkg/usr/man/man1/
    $startdir/pkg/usr/info/
    make
    make install
    faxmail-2.3.patch
    --- Makefile_pristine 2004-08-21 20:12:23.000000000 +0100
    +++ Makefile_new 2004-08-20 12:28:29.000000000 +0100
    @@ -3,19 +3,19 @@
    # where can I put the FaxMail wrapper and the tryfax executable
    -INSTALLBINPATH = /usr/local/bin
    +INSTALLBINPATH = #PREFIX#/usr/bin
    # where can I put the FaxMail manual
    -INSTALLMANPATH = /usr/local/man
    +INSTALLMANPATH = #PREFIX#/usr/man
    # where can I put the FaxMail info page. If you don't have gnu info,
    # you can set this to /tmp or something. If you do, remember to add
    # in an entry to the `dir' file.
    -INSTALLINFOPATH = /usr/info
    +INSTALLINFOPATH = #PREFIX#/usr/info
    # what is the toplevel FaxMail directory.
    # Contains the coverage list and FaxMail.tcl script.
    -FAXMAIL_DIR = /usr/local/lib/FaxMail
    +FAXMAIL_DIR = #PREFIX#/usr/lib/FaxMail
    # external program locations
    @@ -23,7 +23,7 @@
    WISH_CMD = /usr/bin/wish
    # where can I find smail or sendmail
    -MAIL_CMD = /usr/lib/sendmail
    +MAIL_CMD = /usr/sbin/sendmail
    # where can I store temporary files
    TMP_DIR = /tmp
    @@ -39,7 +39,7 @@
    CFLAGS =
    LDFLAGS =
    # Uncomment the following line if linking of tryfax fails.
    -#LDFLAGS = -lresolv
    +LDFLAGS = -lresolv

    I have looked at possibilities for executing
    $ makepkg -o -p Makefiles_ready
    and
    $ makepkg -go -p PATCHMAKER
    The second is a serious candidate for doing it that sort of way. The first, however, needs the embedded makepkg and encasing with makepkg therefore executes that process a second time.

  • Load balancing weirdness using NAT and same-metric route

    Hi.
    I'm trying to set up a double-WAN load-balancing scenario:
    I decided to attempt the "multiple same-metric routes with NAT" approach so I went for the example used in the IOS NAT Load-Balancing for Two ISP Connections Configuration Guide [1].
    I decided to use an upside-down Cisco 871-SEC/K9: use Vlan1 and Vlan2 for the routers and Fa4 for the LAN. I am hoping this is not an issue.
    There is this weirdness with some connections, particularly FTP. I pinpointed the problem to the following scenario: if I do a couple of pings to 100.1.1.1 using the FastEthernet4 as the source address, this is what I get in the logs:
    === PING 1 ECHO REQUEST ===
    *Mar 3 04:38:43.521: IP: tableid=0, s=192.168.60.4 (FastEthernet4), d=100.1.1.1 (Vlan1), routed via RIB
    *Mar 3 04:38:43.521: NAT: s=192.168.60.4->10.129.124.2, d=100.1.1.1 [14152]
    *Mar 3 04:38:43.521: IP: s=10.129.124.2 (FastEthernet4), d=100.1.1.1 (Vlan1), g=10.129.124.1, len 60, forward
    *Mar 3 04:38:43.521: ICMP type=8, code=0
    === PING 1 ECHO REPLY ===
    *Mar 3 04:38:45.589: NAT*: s=100.1.1.1, d=10.129.124.2->192.168.60.4 [19824]
    *Mar 3 04:38:45.589: IP: tableid=0, s=100.1.1.1 (Vlan1), d=192.168.60.4 (FastEthernet4), routed via RIB
    *Mar 3 04:38:45.589: IP: s=100.1.1.1 (Vlan1), d=192.168.60.4 (FastEthernet4), g=192.168.60.4, len 60, forward
    *Mar 3 04:38:45.589: ICMP type=0, code=0
    === (something else) ===
    *Mar 3 04:38:52.353: RT: SET_LAST_RDB for 0.0.0.0/0
    OLD rdb: via 10.129.124.33, Vlan2
    NEW rdb: via 10.129.124.1, Vlan1
    === PING 2 ECHO REQUEST ===
    *Mar 3 04:38:52.353: IP: tableid=0, s=192.168.60.4 (FastEthernet4), d=100.1.1.1 (Vlan2), routed via RIB
    *Mar 3 04:38:52.353: NAT: s=192.168.60.4->10.129.124.2, d=100.1.1.1 [14159]
    *Mar 3 04:38:52.353: IP: s=10.129.124.2 (FastEthernet4), d=100.1.1.1 (Vlan2), g=10.129.124.33, len 60, forward
    *Mar 3 04:38:52.353: ICMP type=8, code=0
    === PING 2 ECHO REPLY ===
    *Mar 3 04:38:53.029: NAT*: s=100.1.1.1, d=10.129.124.2->192.168.60.4 [19825]
    *Mar 3 04:38:53.029: IP: tableid=0, s=100.1.1.1 (Vlan1), d=192.168.60.4 (FastEthernet4), routed via RIB
    *Mar 3 04:38:53.033: IP: s=100.1.1.1 (Vlan1), d=192.168.60.4 (FastEthernet4), g=192.168.60.4, len 60, forward
    *Mar 3 04:38:53.033: ICMP type=0, code=0
    In the section "Ping 2 Echo Request" line 2 shows the NAT translating the packet to the address for the first provider but line 3 shows it routing it through the second one.
    In this case, the ICMP packet goes through but it is problematic if the ISP restricts the service by source-address (like RPF) or there is some acceleration mechanism inside the provider cloud, other than just plain routing.
    What am I missing? Here is the relevant part of the configuration. I deliberately disabled CEF to be able to debug the messages, but I *think* this may be altering the actual router behavior. This router does not have a "debug ip cef packet" command.
    no ip cef
    ip dhcp pool lan-side
    import all
    network 192.168.60.0 255.255.255.0
    default-router 192.168.60.1
    domain-name doublewan.local
    dns-server 8.8.8.8 8.8.4.4
    lease infinite
    ip domain name doublewan
    interface FastEthernet0
    !doesn't appear on running-config: vlan 1 is the default access vlan
    !switchport access vlan 1
    interface FastEthernet1
    switchport access vlan 2
    interface FastEthernet2
    shutdown
    interface FastEthernet3
    shutdown
    interface FastEthernet4
    ip address 192.168.60.1 255.255.255.0
    ip nat inside
    ip virtual-reassembly
    no ip route-cache
    duplex auto
    speed auto
    interface Vlan1
    ip address 10.129.124.2 255.255.255.224
    ip nat outside
    ip virtual-reassembly
    no ip route-cache
    interface Vlan2
    ip address 10.129.124.35 255.255.255.224
    ip nat outside
    ip virtual-reassembly
    no ip route-cache
    ip route 0.0.0.0 0.0.0.0 Vlan1 10.129.124.1
    ip route 0.0.0.0 0.0.0.0 Vlan2 10.129.124.33
    ip nat inside source route-map nat1 interface Vlan1 overload
    ip nat inside source route-map nat2 interface Vlan2 overload
    ip access-list standard acl4-nexthop-vlan1
    permit 10.129.124.1
    ip access-list standard acl4-nexthop-vlan2
    permit 10.129.124.33
    route-map nat2 permit 10
    match ip address 102
    match ip next-hop acl4-nexthop-vlan2
    match interface Vlan2
    route-map nat1 permit 10
    match ip address 101
    match ip next-hop acl4-nexthop-vlan1
    match interface Vlan1
    control-plane
    Of course, there is some configuration pending for redundancy and stuff.
    Thanks a lot in advance.
    [1] http://www.cisco.com/c/en/us/support/docs/ip/network-address-translation-nat/100658-ios-nat-load-balancing-2isp.html

    Hello.
    This might be a bug in debug command or the IOS (without ip cef) you use; as routing is done before NAT (inside to outside).
    To make sure it works fine with ip cef, just enable strict uRPF (or just ACL) on .1 and .33 interfaces and see if you see any packet sent over wrong interface.
    PS: please check "sh ip cef 100.1.1.1"; I guess ip cef would tell you "per-destination sharing".

  • Using utl_file and unix pipes

    Hi,
    I'm trying to use utl_file and unix pipes to communicate with a unix process.
    Basically I want the unix process to read off one pipe and give me back the result on a different pipe.
    In the example below the unix process is a dummy one just copying the input to the output.
    I cant get this to work for a single plsql block writing and reading to/from the pipes - it hangs on the first read of the return pipe.
    Any ideas?
    ======== TEST CASE 1 ===============
    create directory tmp as '/tmp';
    on unix:
    cd /tmp
    mknod outpip p
    mknod inpip p
    cat < inpip > outpip
    drop table res;
    create table res (m varchar2(200));
    declare
    l_filehandle_rec UTL_FILE.file_type;
    l_filehandle_send UTL_FILE.file_type;
    l_char VARCHAR2(200);
    begin
    insert into res values ('starting');commit;
    l_filehandle_send := UTL_FILE.fopen ('TMP', 'inpip', 'A', 32000);
    insert into res values ('opened inpip ');commit;
    l_filehandle_rec := UTL_FILE.fopen ('TMP', 'outpip', 'R', 32000);
    insert into res values ('opened outpip ');commit;
    FOR i in 1..10 LOOP
    utl_file.put_line(l_filehandle_send,'line '||i);
    insert into res values ('written line '||i); commit;
    utl_file.get_line(l_filehandle_rec,l_char);
    insert into res values ('Read '||l_char);commit;
    END LOOP;
    utl_file.fclose(l_filehandle_send);
    utl_file.fclose(l_filehandle_rec);
    END;
    in a different sql session:
    select * from res:
    starting
    opened inpip
    opened outpip
    written line 1
    ============ TEST CASE 2 =================
    However If I use 2 different sql session (not what I want to do...), it works fine:
    1. unix start cat < inpip > outpip
    2. SQL session 1:
    set serveroutput on size 100000
    declare
    l_filehandle UTL_FILE.file_type;
    l_char VARCHAR2(200);
    begin
    l_filehandle := UTL_FILE.fopen ('TMP', 'outpip', 'R', 32000);
    FOR i in 1..10 LOOP
    utl_file.get_line(l_filehandle,l_char);
    dbms_output.put_line('Read '||l_char);
    END LOOP;
    utl_file.fclose(l_filehandle);
    END;
    3. SQL session 2:
    set serveroutput on size 100000
    declare
    l_filehandle UTL_FILE.file_type;
    begin
    l_filehandle := UTL_FILE.fopen ('TMP', 'inpip', 'A', 32000);
    FOR i in 1..10 LOOP
    utl_file.put_line(l_filehandle,'line '||i);
    --utl_lock.sleep(1);
    dbms_output.put_line('written line '||i);
    END LOOP;
    utl_file.fclose(l_filehandle);
    END;
    /

    > it hangs on the first read of the return pipe.
    Correct.
    A pipe is serialised I/O device. One process writes to the pipe. The write is blocked until a read (from another process or thread) is made on that pipe. Only when there is a reader for that data, the writer is unblocked and the actual write I/O occurs.
    The reverse is also true. A read on the pipe is blocked until another process/thread writes data into the pipe.
    Why? A pipe is a memory structure - not a file system file. If the write was not blocked the writer process can writes GBs of data into the pipe before a reader process starts to read that data. This will drastically knock memory consumption and performance.
    Thus the purpose of a pipe is to serve as a serialised blocking mechanism between a reader and a writer - allowing one to write data that is read by the other. With minimal memory overheads as the read must be serviced by a write and a write serviced by a read.
    If you're looking for something different, then you can open a standard file in share mode and write and read from it using two different file handles within the same process. However, the file will obviously have a file system footprint ito space (growing until the writer stops and the reader terminates and trashes the file) .
    OTOH a pipe's footprint is minimal.

  • Why can't I use echo "hey" in applescript?

    I'm almost completely new and wonder why applescript is giving me an error when I type in echo "hey".  Yes, I compiled it.

    If that was the complete command you used, "echo" is not an AppleScript statement - it is from one of the command line utilities such as bash.  In order to use it that way, see Apple's tech note on do shell script, or use a regular AppleScript command such as display dialog.

  • ESS and CATS available in ABAP webdynpro

    Hi Friends,
    Currently we are under ECC6.0 with the following SP13.
    SAP_BASIS     700     0013     SAPKB70013     SAP Basis Component
    SAP_ABA                     700     0013     SAPKA70013     Cross-Application Component
    And iam looking is the ESS and CATS are available in ABAP webdynpro , i know thta these are available on JAVA side.
    If i want to get ESS and CATS in ABAP Web dynpro , what we have to do ???
    Could you send me useful links for ESS and CATS in ABAP webdynpro on Portals side.
    Srinivas.

    Thanks To your Reply.
    So we have to live with current ESS which is in Java Iviews on portal side.
    There is no as such ESS availble with SAP SP17 or EP7 side for ABAP web dynpro.
    If we want to make it available , then we have to go for custom development right.
    But Travel & Expenses are available in both JAVA webdynpro and ABAP webdynpro , how come SAP give partly give the package in JAVA and ABAP.
    Please clarify me.
    Srinivas.

  • Regd. ESS and CATS in ABAP webdynpro

    Hi Friends,
    Currently we are under ECC6.0 with the following SP13.
    SAP_BASIS     700     0013     SAPKB70013     SAP Basis Component
    SAP_ABA                     700     0013     SAPKA70013     Cross-Application Component
    And iam looking is the ESS and CATS are available in ABAP webdynpro , i know thta these are available on JAVA side.
    If i want to get ESS and CATS in ABAP Web dynpro , what we have to do ???
    Could you send me useful links for ESS and CATS in ABAP webdynpro on Portals side.
    Srinivas.

    Hai,
    Please find the below links.....
    http://help.sap.com/saphelp_nw04s/helpdata/en/77/3545415ea6f523e10000000a155106/frameset.htm
    https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/c2fad86f-0401-0010-91ac-bdb38595a735
    /people/heidi.geisau/blog/2005/12/21/web-dynpro-abap-goes-live
    http://help.sap.com/saphelp_nw04/helpdata/en/dd/e9863596db1d23e10000009b38f889/frameset.htm
    Regards,
    Yoganand.V

  • Connecting FAX to PSTN line using FXS and FXO ports

    I have 2 cisco 1760 routers with FXS and FXO card installed in each. I have to transport 2 PSTN lines from Head Office to remote loaction using FXS and FXO cards and these lines will be used for  voice calls and FAX( one line each for FAX and voice). I have configured the router for voice lines and it is working fine. Now I am using the same config for running fax machine but it is not working. Can anyone help me out how to configure FAX in this scenario also if anyone can share any sample config. I am attaching my config for both routers. Right now both routers are connected with a cross-over cable for lab test but we will connect them later using satellite connection.
    HO Router (FXO card)
    Current configuration : 1718 bytes
    version 12.3
    service timestamps debug datetime msec
    service timestamps log datetime msec
    no service password-encryption
    hostname Router
    boot-start-marker
    boot-end-marker
    enable password cisco
    no aaa new-model
    resource policy
    mmi polling-interval 60
    no mmi auto-configure
    no mmi pvc
    mmi snmp-timeout 180
    voice-card 2
    voice-card 3
    ip subnet-zero
    ip cef
    no ip dhcp use vrf connected
    no ip domain lookup
    no ftp-server write-enable
    voice class codec 10
    interface FastEthernet0/0
     ip address 10.10.10.1 255.255.255.248
     speed auto
     h323-gateway voip bind srcaddr 10.10.10.1
    ip classless
    no ip http server
    control-plane
    voice-port 2/0
     output attenuation 0
     echo-cancel coverage 32
     no vad
     no comfort-noise
     timeouts interdigit 3
     timeouts call-disconnect 3
     connection plar opx 2001
     description Remote PSTN#:35296913
     music-threshold -70
    voice-port 2/1
     output attenuation 0
     echo-cancel coverage 32
     no vad
     no comfort-noise
     timeouts interdigit 3
     timeouts call-disconnect 3
     connection plar opx 2002
     description Remote PSTN#:35296914
     music-threshold -70
    voice-port 3/0
    voice-port 3/1
    dial-peer voice 2000 voip
     destination-pattern 200.
     no modem passthrough
     voice-class codec 10
     session target ipv4:10.10.10.2
     incoming called-number .
     dtmf-relay cisco-rtp h245-signal h245-alphanumeric
     fax-relay ecm disable
     fax rate 7200
     fax nsf 000000
     no vad
    dial-peer voice 1321 pots
     description line 1
     huntstop
     destination-pattern 1321
     port 2/0
    dial-peer voice 1322 pots
     description line 2
     huntstop
     destination-pattern 1322
     port 2/1
    line con 0
     password cisco
    line aux 0
    line vty 0 4
     password cisco
     login
    end
    Remote Router (FXS Card):
    version 12.3
    service timestamps debug datetime msec
    service timestamps log datetime msec
    no service password-encryption
    hostname Router
    boot-start-marker
    boot-end-marker
    enable password cisco
    mmi polling-interval 60
    no mmi auto-configure
    no mmi pvc
    mmi snmp-timeout 180
    voice-card 2
    voice-card 3
    no aaa new-model
    ip subnet-zero
    ip cef
    no ip domain lookup
    no ftp-server write-enable
    voice class codec 10
    interface FastEthernet0/0
     ip address 10.10.10.2 255.255.255.248
     speed auto
     h323-gateway voip bind srcaddr 10.10.10.2
    interface Ethernet1/0
     no ip address
     shutdown
     half-duplex
    ip classless
    no ip http server
    control-plane
    voice-port 2/0
     description PSTN#:
    voice-port 2/1
     description PSTN#:
    voice-port 3/0
    voice-port 3/1
    dial-peer voice 2001 pots
     description Remote
     huntstop
     destination-pattern 2001
     port 2/0
    dial-peer voice 2002 pots
     description Remote
     huntstop
     destination-pattern 2002
     port 2/1
    dial-peer voice 1320 voip
     destination-pattern 132.
     no modem passthrough
     voice-class codec 10
     session target ipv4:10.10.10.1
     incoming called-number .
     dtmf-relay cisco-rtp h245-signal h245-alphanumeric
     fax-relay ecm disable
     fax rate 7200
     fax nsf 000000
     no vad
    line con 0
     password cisco
    line aux 0
    line vty 0 4
     password cisco
     login
    end

    In your voice class codec 10 there aren't any codecs declared.
    Add G.711 codec in this way:
    voice class codec 10
     codec preference 1 g711alaw
    If the fax communication fails again try to disable T.38 and try fax passthrough mode:
     no fax rate
     modem passthrough nse codec g711alaw
     fax protocol pass-through g711alaw
    Regards.

  • Export Errors - sound echo and sound stoppage

    Hi everyone - I have a bit of an urgent need for help. When I
    preview my slides as a "movie" or export them to HTML, I am faced
    with two errors: at one minute into the script, the sound acquires
    an echo and remains for the rest of the slides. The other issue is
    that the audio simply cuts off after about 2 minutes. I experienced
    these issues separately when performing the same export and preview
    as movie functions.
    The confusing part is that when I preview individual slides,
    neither of the problems are present. So, it is likely that there is
    a problem in the export/preview functions. Can anyone help out?
    Thanks!

    Hello dcdave and welcome to our community.
    I am very sorry to hear that you have experienced audio
    problems with Adobe Captivate. In this first instance I would
    suggest that you try exporting the audio using the Advanced Audio
    Editor (Audio > Advanced Audio...) and playing the audio in the
    built-in audio recorder Sound Recorder. If you don't experience any
    problems playing the audio file here then back in Captivate, delete
    the audio file from the Slide (again you can do this using the
    Advanced Audio Editor) and then import the WAV file back onto your
    slide.
    With regard to the audio stopping, I have seen this numerous
    times. Sometimes you can stop this from occurring by simply
    selecting the audio object on the Timeline moving to the 0.0 marker
    and then back to it's original position. If that doesn't solve the
    probem then try deleting it from Timeline and importing the WAV
    file again.
    Note: You might also want to make sure that the audio file
    has been removed from the Library panel, if not then delete it here
    as well.
    Lastly, whilst you are not experiencing any duplications at
    runtime (when you preview) the most common cause for duplications
    is when you have inserted the audio to the slide and also another
    object such as a text caption. You can check this by showing the
    Advanced Audio Editor and choosing the option
    Show object level audio.
    Regards - Mark

  • Problem in audio conferencing using Flex and FMS3.0

    Hi Everyone,
    I am trying to achieve audio conferencing using Flex and
    FMS3.0
    Currently I am following an approach where all the persons in
    voice conference publish their voice on flash media server using
    NetStream.Publish() function and all persons listen to the streams
    published by all other members in the conference using
    NetStream.Play() function. I am using a shared array on server side
    to keep track of all the persons present in the conference. The
    problem I am facing is that sometimes all the persons are able to
    hear the voice of each other but other times audio of some persons
    is not audible to others. Even if voice comes then there is echo
    and one can hear the sound 3-4 times depending on the amplitude of
    the sound. I have also used Microphone.setUseEchoSuppression(true)
    to suppress the echo but it is not effectively suppressing it. If
    someone has faced similar problems in past please let me know the
    solution. Thanks in advance.
    Regards,
    Pankaj

    I know.. but it was wrapped as jar or war files..
    I searched all over my harddrive to find something named like org.apache or jdbc.clientDriver...and so on..with no result.
    and I unziped derby.jar or derbyclient.jar etc.. also with no result.
    It's like the driver has hiden somewhere like viruses...at least to me..
    Edited by: dewyone on Dec 25, 2007 1:48 PM

  • How to use date and time

    hello,
    how can i use date and time in windows platform for export dumpfile.

    you can use this..
    C:\>echo backup_daily_%date:~4,2%_%date:~7,2%.log
    backup_daily_03_12.log
    may be you will have to adjust ~values to show proper values.
    Hope that will help you
    Anil Malkai

  • Using Automator and Applescript to search and move files to flash drive

    I've used applescript and automator to do simple tasks like watch folders and move files and rename files, but that is about the extent. I am wondering if it is possible to set up a automator service or app that will do several things.
    When a flash drive is plugged it, it will ask for a file to be searched for, then it will search a predetermined directory for files with the word or number in them and then it will copy the found files to the mounted flash drive.
    Any help would be greatly appriciated!
    Thanks!

    As a start, you can use launchd to run a script when a volume is mounted:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
              <key>Label</key>
              <string>com.tonyt.LaunchOnVolMount</string>
              <key>ProgramArguments</key>
              <array>
                        <string>LaunchOnVolMount.sh</string>
              </array>
              <key>QueueDirectories</key>
              <array/>
              <key>StartOnMount</key>
              <true/>
              <key>WatchPaths</key>
              <array/>
    </dict>
    </plist>
    You can then have the LaunchOnVolMount.sh script perform the tasks you need.
    You can incorporate Applescript within the Bash script with osascript:
    #!/bin/bash
    answer=$( osascript -e 'tell app "System Events" to display dialog "What file do you want to search for?" default answer "" ' )
    echo $answer
    I beleive that you can also call an Applescript from launchd

Maybe you are looking for