Arch linux full raid

I am experimenting with arch and mdadm I was using the following guide:
http://linux-101.org/howto/arch-linux-s … tion-guide
I get into trouble (at least I notice it at that point) with the bootloader. find /boot/grub/stage1 returns Error 15: File not found, so running the commands:
grub> device (hd0) /dev/sda
grub> root (hd0,0)
grub> setup (hd0)
naturally result in the same problem.
Any indication what I am doing wrong? Maybe the tutorial is out of date?

Blµb wrote:I think you're missing that 'device (hd0) /dev/sdX defines hd0 to be /dev/sdX, which is once done for sda and then for sdb.
Yes I was/am missing that. I understand what you are saying and you have a point but I still have something daunting:
find /grub/stage1
(hd0,0)
(hd1,0) <---- what's this?
running the guide grub installs went fine but running:
grub> device (hd1) /dev/sdb
grub> root (hd1,0)
grub> setup (h1)
also works. Why?
I only have two harddisks installed, what is (hd1) as I was under the impression that it was /dev/sdb, which now seems to be incorrect...
Very confusing..
Blµb wrote:I'm curious about the md= entries in this guide though. Is the goal of this to not require mdassemble to be run in an initramfs? Because mdadm usually reads from /etc/mdadm.com in the initramfs to assemble the devices.
But what do I know, mdassemble segfaults for my intel imsm raid... so I'm still sticking to DM-raid though maybe this could help... and that doesn't help me in my case either (says "bad raid superblock magic")
You are referring to the "md=" in grub's menu.lst? I also remember this happening in a later stage. The strange thing is that it seems to work though... If you know a better/other guide/tutorial about this subject I would like to know about it.
Thanks allot for the information!
Last edited by whoop (2012-02-29 20:24:30)

Similar Messages

  • Arch Linux doesn't detect RAID of SAS hard drives

    Hello everyone:
    I'm trying to install Arch Linux 2009.08 x86_64 on a server IBM xSeries 206m, which has hard drives connected to a SAS controller card Adaptec AIC-9405.
    I put the disks in RAID 0 and starting the server, I can see on the menu of the RAID controller card that is fine, but when I'm going to make the partitions, I do not see any hard drive.
    Checking with the command dmesg, I found some messages that seem to indicate the failure:
    aic94xx: Adaptec aic94xx SAS/SATA driver version 1.0.3 loaded
    aic94xx 0000:03:04.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
    aic94xx: found Adaptec AIC-9405W SAS/SATA Host Adapter, device 0000:03:04.0
    scsi2 : aic94xx
    aic94xx 0000:03:04.0: firmware: requesting aic94xx-seq.fw
    usb 2-1: configuration #1 chosen from 1 choice
    aic94xx: Failed to load sequencer firmware file aic94xx-seq.fw, error -2
    aic94xx: couldn't init seqs for 0000:03:04.0
    aic94xx: couldn't init the chip
    aic94xx 0000:03:04.0: PCI INT A disabled
    aic94xx: probe of 0000:03:04.0 failed with error -2
    Someone else with the same problem ... anyone know how to fix it ?

    GerBra wrote:
    The error message of missing firmware file in dmesg/messages.log is gone away now?
    Could you place dmesg.log or messages.log somewhere to view them? (Copy these files over network to an
    other machine and load it up to some pastebin service, or attach it here).
    You don't see the raid array when doing a: fdisk -l ?
    Also a: cat /proc/scsi/scsi should also show the array if up and running.
    SCSI modul aic94xx should also have a dir entry in /proc/scsi. Example: my Adaptec 2940 has detailled infos about the controller and device status in:
    cat /proc/scsi/aic7xxx/2
    If you have such a file (the number could differ on your machine) please post it also.
    Maybe it's the best if you open a bugreport in http://bugs.archlinux.org/index/proj6 ....
    Hi GerBra:
    This is the dmesg.log:
    Linux version 2.6.30-ARCH (root@T-POWA-LX) (gcc version 4.4.1 (GCC) ) #1 SMP PREEMPT Fri Jul 31 07:30:28 CEST 2009
    Command line: lang=en locale=en_US.UTF-8 archisolabel=ARCHISO_KE1AECIE ramdisk_size=75%
    KERNEL supported cpus:
    Intel GenuineIntel
    AMD AuthenticAMD
    Centaur CentaurHauls
    BIOS-provided physical RAM map:
    BIOS-e820: 0000000000000000 - 000000000009b800 (usable)
    BIOS-e820: 000000000009b800 - 00000000000a0000 (reserved)
    BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
    BIOS-e820: 0000000000100000 - 00000000bfee0000 (usable)
    BIOS-e820: 00000000bfee0000 - 00000000bfee9000 (ACPI data)
    BIOS-e820: 00000000bfee9000 - 00000000bff00000 (ACPI NVS)
    BIOS-e820: 00000000bff00000 - 00000000c0000000 (reserved)
    BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
    BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
    BIOS-e820: 00000000ff000000 - 0000000100000000 (reserved)
    BIOS-e820: 0000000100000000 - 0000000140000000 (usable)
    DMI present.
    last_pfn = 0x140000 max_arch_pfn = 0x100000000
    MTRR default type: uncachable
    MTRR fixed ranges enabled:
    00000-9FFFF write-back
    A0000-BFFFF uncachable
    C0000-C7FFF write-protect
    C8000-DFFFF uncachable
    E0000-FFFFF write-protect
    MTRR variable ranges enabled:
    0 base 0C0000000 mask FC0000000 uncachable
    1 base 000000000 mask F00000000 write-back
    2 base 100000000 mask FC0000000 write-back
    3 base 0BFF00000 mask FFFF00000 uncachable
    4 disabled
    5 disabled
    6 disabled
    7 disabled
    x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
    e820 update range: 00000000bff00000 - 0000000100000000 (usable) ==> (reserved)
    last_pfn = 0xbfee0 max_arch_pfn = 0x100000000
    e820 update range: 0000000000001000 - 0000000000006000 (usable) ==> (reserved)
    Scanning 1 areas for low memory corruption
    modified physical RAM map:
    modified: 0000000000000000 - 0000000000001000 (usable)
    modified: 0000000000001000 - 0000000000006000 (reserved)
    modified: 0000000000006000 - 000000000009b800 (usable)
    modified: 000000000009b800 - 00000000000a0000 (reserved)
    modified: 00000000000e0000 - 0000000000100000 (reserved)
    modified: 0000000000100000 - 00000000bfee0000 (usable)
    modified: 00000000bfee0000 - 00000000bfee9000 (ACPI data)
    modified: 00000000bfee9000 - 00000000bff00000 (ACPI NVS)
    modified: 00000000bff00000 - 00000000c0000000 (reserved)
    modified: 00000000fec00000 - 00000000fec10000 (reserved)
    modified: 00000000fee00000 - 00000000fee01000 (reserved)
    modified: 00000000ff000000 - 0000000100000000 (reserved)
    modified: 0000000100000000 - 0000000140000000 (usable)
    init_memory_mapping: 0000000000000000-00000000bfee0000
    0000000000 - 00bfe00000 page 2M
    00bfe00000 - 00bfee0000 page 4k
    kernel direct mapping tables up to bfee0000 @ 8000-d000
    init_memory_mapping: 0000000100000000-0000000140000000
    0100000000 - 0140000000 page 2M
    kernel direct mapping tables up to 140000000 @ b000-11000
    RAMDISK: 378e2000 - 37fef5c0
    ACPI: RSDP 00000000000f64f0 00014 (v00 PTLTD )
    ACPI: RSDT 00000000bfee3615 0003C (v01 PTLTD RSDT 06040000 LTP 00000000)
    ACPI: FACP 00000000bfee8e70 00074 (v01 INTEL 06040000 PTL 00000003)
    ACPI: DSDT 00000000bfee384c 05624 (v01 INTEL GLENWOOD 06040000 MSFT 0100000E)
    ACPI: FACS 00000000bfee9fc0 00040
    ACPI: SPCR 00000000bfee8ee4 00050 (v01 PTLTD $UCRTBL$ 06040000 PTL 00000001)
    ACPI: MCFG 00000000bfee8f34 0003C (v01 PTLTD MCFG 06040000 LTP 00000000)
    ACPI: APIC 00000000bfee8f70 00068 (v01 PTLTD APIC 06040000 LTP 00000000)
    ACPI: BOOT 00000000bfee8fd8 00028 (v01 PTLTD $SBFTBL$ 06040000 LTP 00000001)
    ACPI: SSDT 00000000bfee3651 001FB (v01 PmRef CpuPm 00003000 INTL 20030224)
    ACPI: Local APIC address 0xfee00000
    (8 early reservations) ==> bootmem [0000000000 - 0140000000]
    #0 [0000000000 - 0000001000] BIOS data page ==> [0000000000 - 0000001000]
    #1 [0000006000 - 0000008000] TRAMPOLINE ==> [0000006000 - 0000008000]
    #2 [0000200000 - 000082d0d0] TEXT DATA BSS ==> [0000200000 - 000082d0d0]
    #3 [00378e2000 - 0037fef5c0] RAMDISK ==> [00378e2000 - 0037fef5c0]
    #4 [000009b800 - 0000100000] BIOS reserved ==> [000009b800 - 0000100000]
    #5 [000082e000 - 000082e198] BRK ==> [000082e000 - 000082e198]
    #6 [0000008000 - 000000b000] PGTABLE ==> [0000008000 - 000000b000]
    #7 [000000b000 - 000000c000] PGTABLE ==> [000000b000 - 000000c000]
    found SMP MP-table at [ffff8800000f6520] f6520
    [ffffe20000000000-ffffe200045fffff] PMD -> [ffff880028200000-ffff88002c7fffff] on node 0
    Zone PFN ranges:
    DMA 0x00000000 -> 0x00001000
    DMA32 0x00001000 -> 0x00100000
    Normal 0x00100000 -> 0x00140000
    Movable zone start PFN for each node
    early_node_map[4] active PFN ranges
    0: 0x00000000 -> 0x00000001
    0: 0x00000006 -> 0x0000009b
    0: 0x00000100 -> 0x000bfee0
    0: 0x00100000 -> 0x00140000
    On node 0 totalpages: 1048182
    DMA zone: 56 pages used for memmap
    DMA zone: 1688 pages reserved
    DMA zone: 2246 pages, LIFO batch:0
    DMA32 zone: 14280 pages used for memmap
    DMA32 zone: 767768 pages, LIFO batch:31
    Normal zone: 3584 pages used for memmap
    Normal zone: 258560 pages, LIFO batch:31
    ACPI: PM-Timer IO Port: 0x1008
    ACPI: Local APIC address 0xfee00000
    ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
    ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
    ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
    ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
    ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
    IOAPIC[0]: apic_id 2, version 0, address 0xfec00000, GSI 0-23
    ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 high edge)
    ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
    ACPI: IRQ0 used by override.
    ACPI: IRQ2 used by override.
    ACPI: IRQ9 used by override.
    Using ACPI (MADT) for SMP configuration information
    SMP: Allowing 2 CPUs, 0 hotplug CPUs
    nr_irqs_gsi: 24
    PM: Registered nosave memory: 0000000000001000 - 0000000000006000
    PM: Registered nosave memory: 000000000009b000 - 000000000009c000
    PM: Registered nosave memory: 000000000009c000 - 00000000000a0000
    PM: Registered nosave memory: 00000000000a0000 - 00000000000e0000
    PM: Registered nosave memory: 00000000000e0000 - 0000000000100000
    PM: Registered nosave memory: 00000000bfee0000 - 00000000bfee9000
    PM: Registered nosave memory: 00000000bfee9000 - 00000000bff00000
    PM: Registered nosave memory: 00000000bff00000 - 00000000c0000000
    PM: Registered nosave memory: 00000000c0000000 - 00000000fec00000
    PM: Registered nosave memory: 00000000fec00000 - 00000000fec10000
    PM: Registered nosave memory: 00000000fec10000 - 00000000fee00000
    PM: Registered nosave memory: 00000000fee00000 - 00000000fee01000
    PM: Registered nosave memory: 00000000fee01000 - 00000000ff000000
    PM: Registered nosave memory: 00000000ff000000 - 0000000100000000
    Allocating PCI resources starting at c4000000 (gap: c0000000:3ec00000)
    NR_CPUS:16 nr_cpumask_bits:16 nr_cpu_ids:2 nr_node_ids:1
    PERCPU: Embedded 25 pages at ffff880028022000, static data 72352 bytes
    Built 1 zonelists in Zone order, mobility grouping on. Total pages: 1028574
    Kernel command line: lang=en locale=en_US.UTF-8 archisolabel=ARCHISO_KE1AECIE ramdisk_size=75%
    Initializing CPU#0
    NR_IRQS:768
    PID hash table entries: 4096 (order: 12, 32768 bytes)
    Fast TSC calibration using PIT
    Detected 2999.990 MHz processor.
    Console: colour VGA+ 80x25
    console [tty0] enabled
    Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
    Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
    Checking aperture...
    No AGP bridge found
    Calgary: detecting Calgary via BIOS EBDA area
    Calgary: Unable to locate Rio Grande table in EBDA - bailing!
    PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
    Placing 64MB software IO TLB between ffff880020000000 - ffff880024000000
    software IO TLB at phys 0x20000000 - 0x24000000
    Memory: 4034028k/5242880k available (3409k kernel code, 1050152k absent, 157764k reserved, 1239k data, 464k init)
    SLUB: Genslabs=13, HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
    Calibrating delay loop (skipped), value calculated using timer frequency.. 6002.97 BogoMIPS (lpj=9999966)
    Security Framework initialized
    Mount-cache hash table entries: 256
    CPU: Trace cache: 12K uops, L1 D cache: 16K
    CPU: L2 cache: 2048K
    CPU: Physical Processor ID: 0
    CPU: Processor Core ID: 0
    CPU0: Thermal monitoring handled by SMI
    using mwait in idle threads.
    ACPI: Core revision 20090320
    Setting APIC routing to flat
    ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
    CPU0: Intel(R) Pentium(R) 4 CPU 3.00GHz stepping 03
    Booting processor 1 APIC 0x1 ip 0x6000
    Initializing CPU#1
    Calibrating delay using timer specific routine.. 6002.80 BogoMIPS (lpj=9999695)
    CPU: Trace cache: 12K uops, L1 D cache: 16K
    CPU: L2 cache: 2048K
    CPU: Physical Processor ID: 0
    CPU: Processor Core ID: 0
    CPU1: Thermal monitoring enabled (TM1)
    x86 PAT enabled: cpu 1, old 0x7040600070406, new 0x7010600070106
    CPU1: Intel(R) Pentium(R) 4 CPU 3.00GHz stepping 03
    checking TSC synchronization [CPU#0 -> CPU#1]: passed.
    Brought up 2 CPUs
    Total of 2 processors activated (12004.78 BogoMIPS).
    CPU0 attaching sched-domain:
    domain 0: span 0-1 level SIBLING
    groups: 0 1
    CPU1 attaching sched-domain:
    domain 0: span 0-1 level SIBLING
    groups: 1 0
    net_namespace: 1888 bytes
    Booting paravirtualized kernel on bare hardware
    NET: Registered protocol family 16
    ACPI: bus type pci registered
    PCI: MCFG configuration 0: base e0000000 segment 0 buses 0 - 9
    PCI: Not using MMCONFIG.
    PCI: Using configuration type 1 for base access
    bio: create slab <bio-0> at 0
    ACPI: EC: Look up EC in DSDT
    ACPI: Interpreter enabled
    ACPI: (supports S0 S1 S4 S5)
    ACPI: Using IOAPIC for interrupt routing
    PCI: MCFG configuration 0: base e0000000 segment 0 buses 0 - 9
    PCI: MCFG area at e0000000 reserved in ACPI motherboard resources
    PCI: Using MMCONFIG at e0000000 - e09fffff
    ACPI: No dock devices found.
    ACPI Warning (nspredef-0331): \_SB_.PCI0._OSC: Parameter count mismatch - ASL declared 5, ACPI requires 4 [20090320]
    ACPI: PCI Root Bridge [PCI0] (0000:00)
    pci 0000:00:01.0: PME# supported from D0 D3hot D3cold
    pci 0000:00:01.0: PME# disabled
    pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
    pci 0000:00:1c.0: PME# disabled
    pci 0000:00:1c.4: PME# supported from D0 D3hot D3cold
    pci 0000:00:1c.4: PME# disabled
    pci 0000:00:1c.5: PME# supported from D0 D3hot D3cold
    pci 0000:00:1c.5: PME# disabled
    pci 0000:00:1d.0: reg 20 io port: [0x3000-0x301f]
    pci 0000:00:1d.1: reg 20 io port: [0x3020-0x303f]
    pci 0000:00:1d.2: reg 20 io port: [0x3040-0x305f]
    pci 0000:00:1d.7: reg 10 32bit mmio: [0xc0000000-0xc00003ff]
    pci 0000:00:1d.7: PME# supported from D0 D3hot D3cold
    pci 0000:00:1d.7: PME# disabled
    pci 0000:00:1f.0: Force enabled HPET at 0xfed00000
    pci 0000:00:1f.0: quirk: region 1000-107f claimed by ICH6 ACPI/GPIO/TCO
    pci 0000:00:1f.0: quirk: region 1180-11bf claimed by ICH6 GPIO
    pci 0000:00:1f.0: ICH7 LPC Generic IO decode 1 PIO at 0500 (mask 007f)
    pci 0000:00:1f.0: ICH7 LPC Generic IO decode 2 PIO at 0ca0 (mask 000f)
    pci 0000:00:1f.1: reg 10 io port: [0x00-0x07]
    pci 0000:00:1f.1: reg 14 io port: [0x00-0x03]
    pci 0000:00:1f.1: reg 18 io port: [0x00-0x07]
    pci 0000:00:1f.1: reg 1c io port: [0x00-0x03]
    pci 0000:00:1f.1: reg 20 io port: [0x3080-0x308f]
    pci 0000:00:1f.3: reg 20 io port: [0x3060-0x307f]
    pci 0000:00:01.0: bridge io port: [0x00-0xfff]
    pci 0000:00:01.0: bridge 32bit mmio: [0x000000-0x0fffff]
    pci 0000:00:01.0: bridge 64bit mmio pref: [0x000000-0x0fffff]
    pci 0000:02:00.0: PXH quirk detected; SHPC device MSI disabled
    pci 0000:02:00.0: PME# supported from D0 D3hot D3cold
    pci 0000:02:00.0: PME# disabled
    pci 0000:02:00.1: reg 10 32bit mmio: [0xc0100000-0xc0100fff]
    pci 0000:00:1c.0: bridge io port: [0x4000-0x4fff]
    pci 0000:00:1c.0: bridge 32bit mmio: [0xc0100000-0xc02fffff]
    pci 0000:00:1c.0: bridge 64bit mmio pref: [0xc0500000-0xc05fffff]
    pci 0000:03:04.0: reg 10 64bit mmio: [0xc0280000-0xc02bffff]
    pci 0000:03:04.0: reg 18 64bit mmio: [0xc0500000-0xc051ffff]
    pci 0000:03:04.0: reg 20 io port: [0x4000-0x40ff]
    pci 0000:03:04.0: reg 30 32bit mmio: [0x000000-0x07ffff]
    pci 0000:02:00.0: bridge io port: [0x4000-0x4fff]
    pci 0000:02:00.0: bridge 32bit mmio: [0xc0200000-0xc02fffff]
    pci 0000:02:00.0: bridge 64bit mmio pref: [0xc0500000-0xc05fffff]
    pci 0000:04:00.0: reg 10 64bit mmio: [0xc0300000-0xc030ffff]
    pci 0000:04:00.0: PME# supported from D3hot D3cold
    pci 0000:04:00.0: PME# disabled
    pci 0000:00:1c.4: bridge 32bit mmio: [0xc0300000-0xc03fffff]
    pci 0000:00:1c.5: bridge io port: [0x00-0xfff]
    pci 0000:00:1c.5: bridge 32bit mmio: [0x000000-0x0fffff]
    pci 0000:00:1c.5: bridge 64bit mmio pref: [0x000000-0x0fffff]
    pci 0000:0a:04.0: reg 10 32bit mmio: [0xc8000000-0xcfffffff]
    pci 0000:0a:04.0: reg 14 io port: [0x5000-0x50ff]
    pci 0000:0a:04.0: reg 18 32bit mmio: [0xc0400000-0xc040ffff]
    pci 0000:0a:04.0: reg 30 32bit mmio: [0x000000-0x01ffff]
    pci 0000:0a:04.0: supports D1 D2
    pci 0000:00:1e.0: transparent bridge
    pci 0000:00:1e.0: bridge io port: [0x5000-0x5fff]
    pci 0000:00:1e.0: bridge 32bit mmio: [0xc0400000-0xc04fffff]
    pci 0000:00:1e.0: bridge 64bit mmio pref: [0xc8000000-0xcfffffff]
    pci_bus 0000:00: on NUMA node 0
    ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
    ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEG_._PRT]
    ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.EXP1.PXHV._PRT]
    ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.EXP5._PRT]
    ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.EXP6._PRT]
    ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCIB._PRT]
    ACPI: PCI Interrupt Link [LNKA] (IRQs 3 *10 11 14 15)
    ACPI: PCI Interrupt Link [LNKB] (IRQs 3 10 *11 14 15)
    ACPI: PCI Interrupt Link [LNKC] (IRQs 3 10 *11 14 15)
    ACPI: PCI Interrupt Link [LNKD] (IRQs 3 *10 11 14 15)
    ACPI: PCI Interrupt Link [LNKE] (IRQs 3 10 11 14 15) *0, disabled.
    ACPI: PCI Interrupt Link [LNKF] (IRQs 3 10 11 14 15) *0, disabled.
    ACPI: PCI Interrupt Link [LNKG] (IRQs 3 10 11 14 15) *0, disabled.
    ACPI: PCI Interrupt Link [LNKH] (IRQs 3 10 11 14 15) *5
    PCI: Using ACPI for IRQ routing
    pci 0000:00:01.0: BAR 13: can't allocate resource
    pci 0000:00:01.0: BAR 14: can't allocate resource
    pci 0000:00:01.0: BAR 15: can't allocate resource
    pci 0000:00:1c.5: BAR 13: can't allocate resource
    pci 0000:00:1c.5: BAR 14: can't allocate resource
    pci 0000:00:1c.5: BAR 15: can't allocate resource
    NetLabel: Initializing
    NetLabel: domain hash size = 128
    NetLabel: protocols = UNLABELED CIPSOv4
    NetLabel: unlabeled traffic allowed by default
    hpet clockevent registered
    HPET: 3 timers in total, 0 timers will be used for per-cpu timer
    pnp: PnP ACPI init
    ACPI: bus type pnp registered
    pnp: PnP ACPI: found 12 devices
    ACPI: ACPI bus type pnp unregistered
    system 00:01: ioport range 0x800-0x83f has been reserved
    system 00:01: ioport range 0x1000-0x107f has been reserved
    system 00:01: ioport range 0x1180-0x11bf has been reserved
    system 00:01: ioport range 0x4d0-0x4d1 has been reserved
    system 00:01: ioport range 0x500-0x57f has been reserved
    system 00:01: ioport range 0xca8-0xca8 has been reserved
    system 00:01: ioport range 0xcac-0xcac has been reserved
    system 00:01: ioport range 0xfe00-0xfe00 has been reserved
    system 00:01: iomem range 0xfed14000-0xfed17fff has been reserved
    system 00:01: iomem range 0xfed13000-0xfed13fff has been reserved
    system 00:01: iomem range 0xe0000000-0xefffffff has been reserved
    system 00:01: iomem range 0xfed20000-0xfed8ffff has been reserved
    pci 0000:00:01.0: PCI bridge, secondary bus 0000:01
    pci 0000:00:01.0: IO window: disabled
    pci 0000:00:01.0: MEM window: disabled
    pci 0000:00:01.0: PREFETCH window: disabled
    pci 0000:02:00.0: PCI bridge, secondary bus 0000:03
    pci 0000:02:00.0: IO window: 0x4000-0x4fff
    pci 0000:02:00.0: MEM window: 0xc0200000-0xc02fffff
    pci 0000:02:00.0: PREFETCH window: 0x000000c0500000-0x000000c05fffff
    pci 0000:00:1c.0: PCI bridge, secondary bus 0000:02
    pci 0000:00:1c.0: IO window: 0x4000-0x4fff
    pci 0000:00:1c.0: MEM window: 0xc0100000-0xc02fffff
    pci 0000:00:1c.0: PREFETCH window: 0x000000c0500000-0x000000c05fffff
    pci 0000:00:1c.4: PCI bridge, secondary bus 0000:04
    pci 0000:00:1c.4: IO window: disabled
    pci 0000:00:1c.4: MEM window: 0xc0300000-0xc03fffff
    pci 0000:00:1c.4: PREFETCH window: disabled
    pci 0000:00:1c.5: PCI bridge, secondary bus 0000:05
    pci 0000:00:1c.5: IO window: disabled
    pci 0000:00:1c.5: MEM window: disabled
    pci 0000:00:1c.5: PREFETCH window: disabled
    pci 0000:00:1e.0: PCI bridge, secondary bus 0000:0a
    pci 0000:00:1e.0: IO window: 0x5000-0x5fff
    pci 0000:00:1e.0: MEM window: 0xc0400000-0xc04fffff
    pci 0000:00:1e.0: PREFETCH window: 0x000000c8000000-0x000000cfffffff
    pci 0000:00:01.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
    pci 0000:00:01.0: setting latency timer to 64
    pci 0000:00:1c.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
    pci 0000:00:1c.0: setting latency timer to 64
    pci 0000:02:00.0: setting latency timer to 64
    pci 0000:00:1c.4: PCI INT A -> GSI 17 (level, low) -> IRQ 17
    pci 0000:00:1c.4: setting latency timer to 64
    pci 0000:00:1c.5: PCI INT B -> GSI 16 (level, low) -> IRQ 16
    pci 0000:00:1c.5: setting latency timer to 64
    pci 0000:00:1e.0: setting latency timer to 64
    pci_bus 0000:00: resource 0 io: [0x00-0xffff]
    pci_bus 0000:00: resource 1 mem: [0x000000-0xffffffffffffffff]
    pci_bus 0000:01: resource 0 mem: [0x0-0xfff]
    pci_bus 0000:01: resource 1 mem: [0x0-0xfffff]
    pci_bus 0000:01: resource 2 mem: [0x0-0xfffff]
    pci_bus 0000:02: resource 0 io: [0x4000-0x4fff]
    pci_bus 0000:02: resource 1 mem: [0xc0100000-0xc02fffff]
    pci_bus 0000:02: resource 2 pref mem [0xc0500000-0xc05fffff]
    pci_bus 0000:03: resource 0 io: [0x4000-0x4fff]
    pci_bus 0000:03: resource 1 mem: [0xc0200000-0xc02fffff]
    pci_bus 0000:03: resource 2 pref mem [0xc0500000-0xc05fffff]
    pci_bus 0000:04: resource 1 mem: [0xc0300000-0xc03fffff]
    pci_bus 0000:05: resource 0 mem: [0x0-0xfff]
    pci_bus 0000:05: resource 1 mem: [0x0-0xfffff]
    pci_bus 0000:05: resource 2 mem: [0x0-0xfffff]
    pci_bus 0000:0a: resource 0 io: [0x5000-0x5fff]
    pci_bus 0000:0a: resource 1 mem: [0xc0400000-0xc04fffff]
    pci_bus 0000:0a: resource 2 pref mem [0xc8000000-0xcfffffff]
    pci_bus 0000:0a: resource 3 io: [0x00-0xffff]
    pci_bus 0000:0a: resource 4 mem: [0x000000-0xffffffffffffffff]
    NET: Registered protocol family 2
    IP route cache hash table entries: 131072 (order: 8, 1048576 bytes)
    TCP established hash table entries: 262144 (order: 10, 4194304 bytes)
    TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
    TCP: Hash tables configured (established 262144 bind 65536)
    TCP reno registered
    NET: Registered protocol family 1
    Unpacking initramfs...
    Freeing initrd memory: 7221k freed
    Simple Boot Flag at 0x3c set to 0x1
    Scanning for low memory corruption every 60 seconds
    audit: initializing netlink socket (disabled)
    type=2000 audit(1250095030.473:1): initialized
    VFS: Disk quotas dquot_6.5.2
    Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
    msgmni has been set to 7894
    alg: No test for stdrng (krng)
    Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
    io scheduler noop registered
    io scheduler anticipatory registered
    io scheduler deadline registered
    io scheduler cfq registered (default)
    PCI quirk: reroute interrupts for 0x8086:0x032c
    pci 0000:0a:04.0: Boot video device
    pcieport-driver 0000:00:01.0: irq 24 for MSI/MSI-X
    pcieport-driver 0000:00:01.0: setting latency timer to 64
    pcieport-driver 0000:00:1c.0: irq 25 for MSI/MSI-X
    pcieport-driver 0000:00:1c.0: setting latency timer to 64
    pcieport-driver 0000:00:1c.4: irq 26 for MSI/MSI-X
    pcieport-driver 0000:00:1c.4: setting latency timer to 64
    pcieport-driver 0000:00:1c.5: irq 27 for MSI/MSI-X
    pcieport-driver 0000:00:1c.5: setting latency timer to 64
    Linux agpgart interface v0.103
    Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
    serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
    serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
    00:07: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
    00:08: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
    input: Macintosh mouse button emulation as /devices/virtual/input/input0
    PNP: PS/2 Controller [PNP0303:KBC0,PNP0f13:MSE0] at 0x60,0x64 irq 1,12
    serio: i8042 KBD port at 0x60,0x64 irq 1
    serio: i8042 AUX port at 0x60,0x64 irq 12
    mice: PS/2 mouse device common for all mice
    cpuidle: using governor ladder
    cpuidle: using governor menu
    TCP cubic registered
    NET: Registered protocol family 17
    registered taskstats version 1
    Initalizing network drop monitor service
    Freeing unused kernel memory: 464k freed
    input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input1
    Switched to high resolution mode on CPU 1
    Switched to high resolution mode on CPU 0
    SCSI subsystem initialized
    usbcore: registered new interface driver usbfs
    usbcore: registered new interface driver hub
    usbcore: registered new device driver usb
    ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
    ehci_hcd 0000:00:1d.7: PCI INT A -> GSI 23 (level, low) -> IRQ 23
    ehci_hcd 0000:00:1d.7: setting latency timer to 64
    ehci_hcd 0000:00:1d.7: EHCI Host Controller
    ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 1
    ehci_hcd 0000:00:1d.7: debug port 1
    ehci_hcd 0000:00:1d.7: cache line size of 128 is not supported
    ehci_hcd 0000:00:1d.7: irq 23, io mem 0xc0000000
    ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00
    usb usb1: configuration #1 chosen from 1 choice
    hub 1-0:1.0: USB hub found
    hub 1-0:1.0: 6 ports detected
    uhci_hcd: USB Universal Host Controller Interface driver
    uhci_hcd 0000:00:1d.0: PCI INT A -> GSI 23 (level, low) -> IRQ 23
    uhci_hcd 0000:00:1d.0: setting latency timer to 64
    uhci_hcd 0000:00:1d.0: UHCI Host Controller
    uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 2
    uhci_hcd 0000:00:1d.0: irq 23, io base 0x00003000
    usb usb2: configuration #1 chosen from 1 choice
    hub 2-0:1.0: USB hub found
    hub 2-0:1.0: 2 ports detected
    uhci_hcd 0000:00:1d.1: PCI INT B -> GSI 19 (level, low) -> IRQ 19
    uhci_hcd 0000:00:1d.1: setting latency timer to 64
    uhci_hcd 0000:00:1d.1: UHCI Host Controller
    uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 3
    uhci_hcd 0000:00:1d.1: irq 19, io base 0x00003020
    usb usb3: configuration #1 chosen from 1 choice
    hub 3-0:1.0: USB hub found
    hub 3-0:1.0: 2 ports detected
    uhci_hcd 0000:00:1d.2: PCI INT C -> GSI 18 (level, low) -> IRQ 18
    uhci_hcd 0000:00:1d.2: setting latency timer to 64
    uhci_hcd 0000:00:1d.2: UHCI Host Controller
    uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 4
    uhci_hcd 0000:00:1d.2: irq 18, io base 0x00003040
    usb usb4: configuration #1 chosen from 1 choice
    hub 4-0:1.0: USB hub found
    hub 4-0:1.0: 2 ports detected
    libata version 3.00 loaded.
    ata_piix 0000:00:1f.1: version 2.13
    ata_piix 0000:00:1f.1: PCI INT A -> GSI 18 (level, low) -> IRQ 18
    ata_piix 0000:00:1f.1: setting latency timer to 64
    scsi0 : ata_piix
    scsi1 : ata_piix
    aic94xx: Adaptec aic94xx SAS/SATA driver version 1.0.3 loaded
    aic94xx 0000:03:04.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
    ata1: PATA max UDMA/100 cmd 0x1f0 ctl 0x3f6 bmdma 0x3080 irq 14
    ata2: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0x3088 irq 15
    aic94xx: found Adaptec AIC-9405W SAS/SATA Host Adapter, device 0000:03:04.0
    scsi2 : aic94xx
    aic94xx 0000:03:04.0: firmware: requesting aic94xx-seq.fw
    aic94xx: Failed to load sequencer firmware file aic94xx-seq.fw, error -2
    aic94xx: couldn't init seqs for 0000:03:04.0
    aic94xx: couldn't init the chip
    aic94xx 0000:03:04.0: PCI INT A disabled
    aic94xx: probe of 0000:03:04.0 failed with error -2
    ata1.00: ATAPI: HL-DT-STDVD-RAM GSA-H55N, 1.03, max UDMA/66
    ata1.00: limited to UDMA/33 due to 40-wire cable
    ata1.00: configured for UDMA/33
    scsi 0:0:0:0: CD-ROM HL-DT-ST DVD-RAM GSA-H55N 1.03 PQ: 0 ANSI: 5
    ata2: port disabled. ignoring.
    Driver 'sr' needs updating - please use bus_type methods
    sr0: scsi3-mmc drive: 48x/48x writer dvd-ram cd/rw xa/form2 cdda tray
    Uniform CD-ROM driver Revision: 3.20
    sr 0:0:0:0: Attached scsi CD-ROM sr0
    usb 2-1: new low speed USB device using uhci_hcd and address 2
    usb 2-1: configuration #1 chosen from 1 choice
    usbcore: registered new interface driver hiddev
    input: USB Optical Mouse as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.0/input/input2
    generic-usb 0003:04B3:310C.0001: input,hidraw0: USB HID v1.11 Mouse [USB Optical Mouse] on usb-0000:00:1d.0-1/input0
    usbcore: registered new interface driver usbhid
    usbhid: v2.6:USB HID core driver
    ISO 9660 Extensions: RRIP_1991A
    squashfs: version 4.0 (2009/01/31) Phillip Lougher
    aufs 2-standalone.tree-20090601
    loop: module loaded
    aufs test_add:240:mount[635]: uid/gid/perm /tmpfs/mnt/loop0 0/0/0755, 0/0/01777
    aufs test_add:240:mount[648]: uid/gid/perm /tmpfs/mnt/loop2 0/0/0755, 0/0/01777
    rtc_cmos 00:04: RTC can wake from S4
    rtc_cmos 00:04: rtc core: registered rtc_cmos as rtc0
    rtc0: alarms up to one month, y3k, 114 bytes nvram, hpet irqs
    udev: starting version 141
    input: PC Speaker as /devices/platform/pcspkr/input/input3
    intel_rng: FWH not detected
    pci_hotplug: PCI Hot Plug PCI Core version: 0.5
    shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
    input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input4
    ACPI: Power Button [PWRF]
    input: Power Button as /devices/LNXSYSTM:00/device:00/PNP0A03:00/PNP0C0C:00/input/input5
    ACPI: Power Button [PWRB]
    EDAC MC: Ver: 2.1.0 Jul 31 2009
    iTCO_vendor_support: vendor-support=0
    i801_smbus 0000:00:1f.3: PCI INT B -> GSI 19 (level, low) -> IRQ 19
    tg3.c:v3.98 (February 25, 2009)
    tg3 0000:04:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
    tg3 0000:04:00.0: setting latency timer to 64
    tg3 0000:04:00.0: PME# disabled
    eth0: Tigon3 [partno(BCM95721) rev 4101] (PCI Express) MAC address 00:11:25:a4:42:2f
    eth0: attached PHY is 5750 (10/100/1000Base-T Ethernet) (WireSpeed[1])
    eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[1] TSOcap[1]
    eth0: dma_rwctrl[76180000] dma_mask[64-bit]
    sr 0:0:0:0: Attached scsi generic sg0 type 5
    iTCO_wdt: Intel TCO WatchDog Timer Driver v1.05
    iTCO_wdt: Found a ICH7 or ICH7R TCO device (Version=2, TCOBASE=0x1060)
    iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)
    processor ACPI_CPU:00: registered as cooling_device0
    ACPI: Processor [CPU0] (supports 8 throttling states)
    processor ACPI_CPU:01: registered as cooling_device1
    ACPI: Processor [CPU1] (supports 8 throttling states)
    EDAC MC0: Giving out device to 'i3000_edac' 'i3000': DEV 0000:00:00.0
    EDAC PCI0: Giving out device to module 'i3000_edac' controller 'EDAC PCI controller': DEV '0000:00:00.0' (POLLED)
    lp: driver loaded but no devices found
    parport_pc 00:0b: reported by Plug and Play ACPI
    parport0: PC-style at 0x378 (0x778), irq 7, dma 1 [PCSPP,TRISTATE,COMPAT,ECP,DMA]
    lp0: using parport0 (interrupt-driven).
    ppdev: user-space parallel port driver
    This is the messages.log:
    Aug 12 16:37:33 archiso kernel: Linux version 2.6.30-ARCH (root@T-POWA-LX) (gcc version 4.4.1 (GCC) ) #1 SMP PREEMPT Fri Jul 31 07:30:28 CEST 2009
    Aug 12 16:37:33 archiso kernel: Command line: lang=en locale=en_US.UTF-8 archisolabel=ARCHISO_KE1AECIE ramdisk_size=75%
    Aug 12 16:37:33 archiso kernel: KERNEL supported cpus:
    Aug 12 16:37:33 archiso kernel: Intel GenuineIntel
    Aug 12 16:37:33 archiso kernel: AMD AuthenticAMD
    Aug 12 16:37:33 archiso kernel: Centaur CentaurHauls
    Aug 12 16:37:33 archiso kernel: BIOS-provided physical RAM map:
    Aug 12 16:37:33 archiso kernel: BIOS-e820: 0000000000000000 - 000000000009b800 (usable)
    Aug 12 16:37:33 archiso kernel: BIOS-e820: 000000000009b800 - 00000000000a0000 (reserved)
    Aug 12 16:37:33 archiso kernel: BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
    Aug 12 16:37:33 archiso kernel: BIOS-e820: 0000000000100000 - 00000000bfee0000 (usable)
    Aug 12 16:37:33 archiso kernel: BIOS-e820: 00000000bfee0000 - 00000000bfee9000 (ACPI data)
    Aug 12 16:37:33 archiso kernel: BIOS-e820: 00000000bfee9000 - 00000000bff00000 (ACPI NVS)
    Aug 12 16:37:33 archiso kernel: BIOS-e820: 00000000bff00000 - 00000000c0000000 (reserved)
    Aug 12 16:37:33 archiso kernel: BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
    Aug 12 16:37:33 archiso kernel: BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
    Aug 12 16:37:33 archiso kernel: BIOS-e820: 00000000ff000000 - 0000000100000000 (reserved)
    Aug 12 16:37:33 archiso kernel: BIOS-e820: 0000000100000000 - 0000000140000000 (usable)
    Aug 12 16:37:33 archiso kernel: DMI present.
    Aug 12 16:37:33 archiso kernel: last_pfn = 0x140000 max_arch_pfn = 0x100000000
    Aug 12 16:37:33 archiso kernel: x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
    Aug 12 16:37:33 archiso kernel: last_pfn = 0xbfee0 max_arch_pfn = 0x100000000
    Aug 12 16:37:33 archiso kernel: Scanning 1 areas for low memory corruption
    Aug 12 16:37:33 archiso kernel: modified physical RAM map:
    Aug 12 16:37:33 archiso kernel: modified: 0000000000000000 - 0000000000001000 (usable)
    Aug 12 16:37:33 archiso kernel: modified: 0000000000001000 - 0000000000006000 (reserved)
    Aug 12 16:37:33 archiso kernel: modified: 0000000000006000 - 000000000009b800 (usable)
    Aug 12 16:37:33 archiso kernel: modified: 000000000009b800 - 00000000000a0000 (reserved)
    Aug 12 16:37:33 archiso kernel: modified: 00000000000e0000 - 0000000000100000 (reserved)
    Aug 12 16:37:33 archiso kernel: modified: 0000000000100000 - 00000000bfee0000 (usable)
    Aug 12 16:37:33 archiso kernel: modified: 00000000bfee0000 - 00000000bfee9000 (ACPI data)
    Aug 12 16:37:33 archiso kernel: modified: 00000000bfee9000 - 00000000bff00000 (ACPI NVS)
    Aug 12 16:37:33 archiso kernel: modified: 00000000bff00000 - 00000000c0000000 (reserved)
    Aug 12 16:37:33 archiso kernel: modified: 00000000fec00000 - 00000000fec10000 (reserved)
    Aug 12 16:37:33 archiso kernel: modified: 00000000fee00000 - 00000000fee01000 (reserved)
    Aug 12 16:37:33 archiso kernel: modified: 00000000ff000000 - 0000000100000000 (reserved)
    Aug 12 16:37:33 archiso kernel: modified: 0000000100000000 - 0000000140000000 (usable)
    Aug 12 16:37:33 archiso kernel: init_memory_mapping: 0000000000000000-00000000bfee0000
    Aug 12 16:37:33 archiso kernel: init_memory_mapping: 0000000100000000-0000000140000000
    Aug 12 16:37:33 archiso kernel: RAMDISK: 378e2000 - 37fef5c0
    Aug 12 16:37:33 archiso kernel: ACPI: RSDP 00000000000f64f0 00014 (v00 PTLTD )
    Aug 12 16:37:33 archiso kernel: ACPI: RSDT 00000000bfee3615 0003C (v01 PTLTD RSDT 06040000 LTP 00000000)
    Aug 12 16:37:33 archiso kernel: ACPI: FACP 00000000bfee8e70 00074 (v01 INTEL 06040000 PTL 00000003)
    Aug 12 16:37:33 archiso kernel: ACPI: DSDT 00000000bfee384c 05624 (v01 INTEL GLENWOOD 06040000 MSFT 0100000E)
    Aug 12 16:37:33 archiso kernel: ACPI: FACS 00000000bfee9fc0 00040
    Aug 12 16:37:33 archiso kernel: ACPI: SPCR 00000000bfee8ee4 00050 (v01 PTLTD $UCRTBL$ 06040000 PTL 00000001)
    Aug 12 16:37:33 archiso kernel: ACPI: MCFG 00000000bfee8f34 0003C (v01 PTLTD MCFG 06040000 LTP 00000000)
    Aug 12 16:37:33 archiso kernel: ACPI: APIC 00000000bfee8f70 00068 (v01 PTLTD APIC 06040000 LTP 00000000)
    Aug 12 16:37:33 archiso kernel: ACPI: BOOT 00000000bfee8fd8 00028 (v01 PTLTD $SBFTBL$ 06040000 LTP 00000001)
    Aug 12 16:37:33 archiso kernel: ACPI: SSDT 00000000bfee3651 001FB (v01 PmRef CpuPm 00003000 INTL 20030224)
    Aug 12 16:37:33 archiso kernel: (8 early reservations) ==> bootmem [0000000000 - 0140000000]
    Aug 12 16:37:33 archiso kernel: #0 [0000000000 - 0000001000] BIOS data page ==> [0000000000 - 0000001000]
    Aug 12 16:37:33 archiso kernel: #1 [0000006000 - 0000008000] TRAMPOLINE ==> [0000006000 - 0000008000]
    Aug 12 16:37:33 archiso kernel: #2 [0000200000 - 000082d0d0] TEXT DATA BSS ==> [0000200000 - 000082d0d0]
    Aug 12 16:37:33 archiso kernel: #3 [00378e2000 - 0037fef5c0] RAMDISK ==> [00378e2000 - 0037fef5c0]
    Aug 12 16:37:33 archiso kernel: #4 [000009b800 - 0000100000] BIOS reserved ==> [000009b800 - 0000100000]
    Aug 12 16:37:33 archiso kernel: #5 [000082e000 - 000082e198] BRK ==> [000082e000 - 000082e198]
    Aug 12 16:37:33 archiso kernel: #6 [0000008000 - 000000b000] PGTABLE ==> [0000008000 - 000000b000]
    Aug 12 16:37:33 archiso kernel: #7 [000000b000 - 000000c000] PGTABLE ==> [000000b000 - 000000c000]
    Aug 12 16:37:33 archiso kernel: found SMP MP-table at [ffff8800000f6520] f6520
    Aug 12 16:37:33 archiso kernel: Zone PFN ranges:
    Aug 12 16:37:33 archiso kernel: DMA 0x00000000 -> 0x00001000
    Aug 12 16:37:33 archiso kernel: DMA32 0x00001000 -> 0x00100000
    Aug 12 16:37:33 archiso kernel: Normal 0x00100000 -> 0x00140000
    Aug 12 16:37:33 archiso kernel: Movable zone start PFN for each node
    Aug 12 16:37:33 archiso kernel: early_node_map[4] active PFN ranges
    Aug 12 16:37:33 archiso kernel: 0: 0x00000000 -> 0x00000001
    Aug 12 16:37:33 archiso kernel: 0: 0x00000006 -> 0x0000009b
    Aug 12 16:37:33 archiso kernel: 0: 0x00000100 -> 0x000bfee0
    Aug 12 16:37:33 archiso kernel: 0: 0x00100000 -> 0x00140000
    Aug 12 16:37:33 archiso kernel: ACPI: PM-Timer IO Port: 0x1008
    Aug 12 16:37:33 archiso kernel: ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
    Aug 12 16:37:33 archiso kernel: ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
    Aug 12 16:37:33 archiso kernel: ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1])
    Aug 12 16:37:33 archiso kernel: ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1])
    Aug 12 16:37:33 archiso kernel: ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
    Aug 12 16:37:33 archiso kernel: IOAPIC[0]: apic_id 2, version 0, address 0xfec00000, GSI 0-23
    Aug 12 16:37:33 archiso kernel: ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 high edge)
    Aug 12 16:37:33 archiso kernel: ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
    Aug 12 16:37:33 archiso kernel: Using ACPI (MADT) for SMP configuration information
    Aug 12 16:37:33 archiso kernel: SMP: Allowing 2 CPUs, 0 hotplug CPUs
    Aug 12 16:37:33 archiso kernel: PM: Registered nosave memory: 0000000000001000 - 0000000000006000
    Aug 12 16:37:33 archiso kernel: PM: Registered nosave memory: 000000000009b000 - 000000000009c000
    Aug 12 16:37:33 archiso kernel: PM: Registered nosave memory: 000000000009c000 - 00000000000a0000
    Aug 12 16:37:33 archiso kernel: PM: Registered nosave memory: 00000000000a0000 - 00000000000e0000
    Aug 12 16:37:33 archiso kernel: PM: Registered nosave memory: 00000000000e0000 - 0000000000100000
    Aug 12 16:37:33 archiso kernel: PM: Registered nosave memory: 00000000bfee0000 - 00000000bfee9000
    Aug 12 16:37:33 archiso kernel: PM: Registered nosave memory: 00000000bfee9000 - 00000000bff00000
    Aug 12 16:37:33 archiso kernel: PM: Registered nosave memory: 00000000bff00000 - 00000000c0000000
    Aug 12 16:37:33 archiso kernel: PM: Registered nosave memory: 00000000c0000000 - 00000000fec00000
    Aug 12 16:37:33 archiso kernel: PM: Registered nosave memory: 00000000fec00000 - 00000000fec10000
    Aug 12 16:37:33 archiso kernel: PM: Registered nosave memory: 00000000fec10000 - 00000000fee00000
    Aug 12 16:37:33 archiso kernel: PM: Registered nosave memory: 00000000fee00000 - 00000000fee01000
    Aug 12 16:37:33 archiso kernel: PM: Registered nosave memory: 00000000fee01000 - 00000000ff000000
    Aug 12 16:37:33 archiso kernel: PM: Registered nosave memory: 00000000ff000000 - 0000000100000000
    Aug 12 16:37:33 archiso kernel: Allocating PCI resources starting at c4000000 (gap: c0000000:3ec00000)
    Aug 12 16:37:33 archiso kernel: NR_CPUS:16 nr_cpumask_bits:16 nr_cpu_ids:2 nr_node_ids:1
    Aug 12 16:37:33 archiso kernel: PERCPU: Embedded 25 pages at ffff880028022000, static data 72352 bytes
    Aug 12 16:37:33 archiso kernel: Built 1 zonelists in Zone order, mobility grouping on. Total pages: 1028574
    Aug 12 16:37:33 archiso kernel: Kernel command line: lang=en locale=en_US.UTF-8 archisolabel=ARCHISO_KE1AECIE ramdisk_size=75%
    Aug 12 16:37:33 archiso kernel: Initializing CPU#0
    Aug 12 16:37:33 archiso kernel: NR_IRQS:768
    Aug 12 16:37:33 archiso kernel: PID hash table entries: 4096 (order: 12, 32768 bytes)
    Aug 12 16:37:33 archiso kernel: Fast TSC calibration using PIT
    Aug 12 16:37:33 archiso kernel: Detected 2999.990 MHz processor.
    Aug 12 16:37:33 archiso kernel: Console: colour VGA+ 80x25
    Aug 12 16:37:33 archiso kernel: console [tty0] enabled
    Aug 12 16:37:33 archiso kernel: Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
    Aug 12 16:37:33 archiso kernel: Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
    Aug 12 16:37:33 archiso kernel: Checking aperture...
    Aug 12 16:37:33 archiso kernel: No AGP bridge found
    Aug 12 16:37:33 archiso kernel: PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
    Aug 12 16:37:33 archiso kernel: Placing 64MB software IO TLB between ffff880020000000 - ffff880024000000
    Aug 12 16:37:33 archiso kernel: software IO TLB at phys 0x20000000 - 0x24000000
    Aug 12 16:37:33 archiso kernel: Memory: 4034028k/5242880k available (3409k kernel code, 1050152k absent, 157764k reserved, 1239k data, 464k init)
    Aug 12 16:37:33 archiso kernel: SLUB: Genslabs=13, HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
    Aug 12 16:37:33 archiso kernel: Calibrating delay loop (skipped), value calculated using timer frequency.. 6002.97 BogoMIPS (lpj=9999966)
    Aug 12 16:37:33 archiso kernel: Security Framework initialized
    Aug 12 16:37:33 archiso kernel: Mount-cache hash table entries: 256
    Aug 12 16:37:33 archiso kernel: CPU: Trace cache: 12K uops, L1 D cache: 16K
    Aug 12 16:37:33 archiso kernel: CPU: L2 cache: 2048K
    Aug 12 16:37:33 archiso kernel: CPU: Physical Processor ID: 0
    Aug 12 16:37:33 archiso kernel: CPU: Processor Core ID: 0
    Aug 12 16:37:33 archiso kernel: using mwait in idle threads.
    Aug 12 16:37:33 archiso kernel: ACPI: Core revision 20090320
    Aug 12 16:37:33 archiso kernel: Setting APIC routing to flat
    Aug 12 16:37:33 archiso kernel: ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
    Aug 12 16:37:33 archiso kernel: CPU0: Intel(R) Pentium(R) 4 CPU 3.00GHz stepping 03
    Aug 12 16:37:33 archiso kernel: Booting processor 1 APIC 0x1 ip 0x6000
    Aug 12 16:37:33 archiso kernel: Initializing CPU#1
    Aug 12 16:37:33 archiso kernel: Calibrating delay using timer specific routine.. 6002.80 BogoMIPS (lpj=9999695)
    Aug 12 16:37:33 archiso kernel: CPU: Trace cache: 12K uops, L1 D cache: 16K
    Aug 12 16:37:33 archiso kernel: CPU: L2 cache: 2048K
    Aug 12 16:37:33 archiso kernel: CPU: Physical Processor ID: 0
    Aug 12 16:37:33 archiso kernel: CPU: Processor Core ID: 0
    Aug 12 16:37:33 archiso kernel: CPU1: Thermal monitoring enabled (TM1)
    Aug 12 16:37:33 archiso kernel: x86 PAT enabled: cpu 1, old 0x7040600070406, new 0x7010600070106
    Aug 12 16:37:33 archiso kernel: CPU1: Intel(R) Pentium(R) 4 CPU 3.00GHz stepping 03
    Aug 12 16:37:33 archiso kernel: checking TSC synchronization [CPU#0 -> CPU#1]: passed.
    Aug 12 16:37:33 archiso kernel: Brought up 2 CPUs
    Aug 12 16:37:33 archiso kernel: Total of 2 processors activated (12004.78 BogoMIPS).
    Aug 12 16:37:33 archiso kernel: net_namespace: 1888 bytes
    Aug 12 16:37:33 archiso kernel: Booting paravirtualized kernel on bare hardware
    Aug 12 16:37:33 archiso kernel: NET: Registered protocol family 16
    Aug 12 16:37:33 archiso kernel: ACPI: bus type pci registered
    Aug 12 16:37:33 archiso kernel: PCI: MCFG configuration 0: base e0000000 segment 0 buses 0 - 9
    Aug 12 16:37:33 archiso kernel: PCI: Not using MMCONFIG.
    Aug 12 16:37:33 archiso kernel: PCI: Using configuration type 1 for base access
    Aug 12 16:37:33 archiso kernel: bio: create slab <bio-0> at 0
    Aug 12 16:37:33 archiso kernel: ACPI: Interpreter enabled
    Aug 12 16:37:33 archiso kernel: ACPI: (supports S0 S1 S4 S5)
    Aug 12 16:37:33 archiso kernel: ACPI: Using IOAPIC for interrupt routing
    Aug 12 16:37:33 archiso kernel: PCI: MCFG configuration 0: base e0000000 segment 0 buses 0 - 9
    Aug 12 16:37:33 archiso kernel: PCI: MCFG area at e0000000 reserved in ACPI motherboard resources
    Aug 12 16:37:33 archiso kernel: PCI: Using MMCONFIG at e0000000 - e09fffff
    Aug 12 16:37:33 archiso kernel: ACPI: No dock devices found.
    Aug 12 16:37:33 archiso kernel: ACPI Warning (nspredef-0331): \_SB_.PCI0._OSC: Parameter count mismatch - ASL declared 5, ACPI requires 4 [20090320]
    Aug 12 16:37:33 archiso kernel: ACPI: PCI Root Bridge [PCI0] (0000:00)
    Aug 12 16:37:33 archiso kernel: pci 0000:00:01.0: PME# supported from D0 D3hot D3cold
    Aug 12 16:37:33 archiso kernel: pci 0000:00:01.0: PME# disabled
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1c.0: PME# disabled
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1c.4: PME# supported from D0 D3hot D3cold
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1c.4: PME# disabled
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1c.5: PME# supported from D0 D3hot D3cold
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1c.5: PME# disabled
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1d.7: PME# supported from D0 D3hot D3cold
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1d.7: PME# disabled
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1f.0: quirk: region 1000-107f claimed by ICH6 ACPI/GPIO/TCO
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1f.0: quirk: region 1180-11bf claimed by ICH6 GPIO
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1f.0: ICH7 LPC Generic IO decode 1 PIO at 0500 (mask 007f)
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1f.0: ICH7 LPC Generic IO decode 2 PIO at 0ca0 (mask 000f)
    Aug 12 16:37:33 archiso kernel: pci 0000:02:00.0: PXH quirk detected; SHPC device MSI disabled
    Aug 12 16:37:33 archiso kernel: pci 0000:02:00.0: PME# supported from D0 D3hot D3cold
    Aug 12 16:37:33 archiso kernel: pci 0000:02:00.0: PME# disabled
    Aug 12 16:37:33 archiso kernel: pci 0000:04:00.0: PME# supported from D3hot D3cold
    Aug 12 16:37:33 archiso kernel: pci 0000:04:00.0: PME# disabled
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1e.0: transparent bridge
    Aug 12 16:37:33 archiso kernel: ACPI: PCI Interrupt Link [LNKA] (IRQs 3 *10 11 14 15)
    Aug 12 16:37:33 archiso kernel: ACPI: PCI Interrupt Link [LNKB] (IRQs 3 10 *11 14 15)
    Aug 12 16:37:33 archiso kernel: ACPI: PCI Interrupt Link [LNKC] (IRQs 3 10 *11 14 15)
    Aug 12 16:37:33 archiso kernel: ACPI: PCI Interrupt Link [LNKD] (IRQs 3 *10 11 14 15)
    Aug 12 16:37:33 archiso kernel: ACPI: PCI Interrupt Link [LNKE] (IRQs 3 10 11 14 15) *0, disabled.
    Aug 12 16:37:33 archiso kernel: ACPI: PCI Interrupt Link [LNKF] (IRQs 3 10 11 14 15) *0, disabled.
    Aug 12 16:37:33 archiso kernel: ACPI: PCI Interrupt Link [LNKG] (IRQs 3 10 11 14 15) *0, disabled.
    Aug 12 16:37:33 archiso kernel: ACPI: PCI Interrupt Link [LNKH] (IRQs 3 10 11 14 15) *5
    Aug 12 16:37:33 archiso kernel: PCI: Using ACPI for IRQ routing
    Aug 12 16:37:33 archiso kernel: pci 0000:00:01.0: BAR 13: can't allocate resource
    Aug 12 16:37:33 archiso kernel: pci 0000:00:01.0: BAR 14: can't allocate resource
    Aug 12 16:37:33 archiso kernel: pci 0000:00:01.0: BAR 15: can't allocate resource
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1c.5: BAR 13: can't allocate resource
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1c.5: BAR 14: can't allocate resource
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1c.5: BAR 15: can't allocate resource
    Aug 12 16:37:33 archiso kernel: NetLabel: Initializing
    Aug 12 16:37:33 archiso kernel: NetLabel: domain hash size = 128
    Aug 12 16:37:33 archiso kernel: NetLabel: protocols = UNLABELED CIPSOv4
    Aug 12 16:37:33 archiso kernel: NetLabel: unlabeled traffic allowed by default
    Aug 12 16:37:33 archiso kernel: HPET: 3 timers in total, 0 timers will be used for per-cpu timer
    Aug 12 16:37:33 archiso kernel: pnp: PnP ACPI init
    Aug 12 16:37:33 archiso kernel: ACPI: bus type pnp registered
    Aug 12 16:37:33 archiso kernel: pnp: PnP ACPI: found 12 devices
    Aug 12 16:37:33 archiso kernel: ACPI: ACPI bus type pnp unregistered
    Aug 12 16:37:33 archiso kernel: system 00:01: ioport range 0x800-0x83f has been reserved
    Aug 12 16:37:33 archiso kernel: system 00:01: ioport range 0x1000-0x107f has been reserved
    Aug 12 16:37:33 archiso kernel: system 00:01: ioport range 0x1180-0x11bf has been reserved
    Aug 12 16:37:33 archiso kernel: system 00:01: ioport range 0x4d0-0x4d1 has been reserved
    Aug 12 16:37:33 archiso kernel: system 00:01: ioport range 0x500-0x57f has been reserved
    Aug 12 16:37:33 archiso kernel: system 00:01: ioport range 0xca8-0xca8 has been reserved
    Aug 12 16:37:33 archiso kernel: system 00:01: ioport range 0xcac-0xcac has been reserved
    Aug 12 16:37:33 archiso kernel: system 00:01: ioport range 0xfe00-0xfe00 has been reserved
    Aug 12 16:37:33 archiso kernel: system 00:01: iomem range 0xfed14000-0xfed17fff has been reserved
    Aug 12 16:37:33 archiso kernel: system 00:01: iomem range 0xfed13000-0xfed13fff has been reserved
    Aug 12 16:37:33 archiso kernel: system 00:01: iomem range 0xe0000000-0xefffffff has been reserved
    Aug 12 16:37:33 archiso kernel: system 00:01: iomem range 0xfed20000-0xfed8ffff has been reserved
    Aug 12 16:37:33 archiso kernel: pci 0000:00:01.0: PCI bridge, secondary bus 0000:01
    Aug 12 16:37:33 archiso kernel: pci 0000:00:01.0: IO window: disabled
    Aug 12 16:37:33 archiso kernel: pci 0000:00:01.0: MEM window: disabled
    Aug 12 16:37:33 archiso kernel: pci 0000:00:01.0: PREFETCH window: disabled
    Aug 12 16:37:33 archiso kernel: pci 0000:02:00.0: PCI bridge, secondary bus 0000:03
    Aug 12 16:37:33 archiso kernel: pci 0000:02:00.0: IO window: 0x4000-0x4fff
    Aug 12 16:37:33 archiso kernel: pci 0000:02:00.0: MEM window: 0xc0200000-0xc02fffff
    Aug 12 16:37:33 archiso kernel: pci 0000:02:00.0: PREFETCH window: 0x000000c0500000-0x000000c05fffff
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1c.0: PCI bridge, secondary bus 0000:02
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1c.0: IO window: 0x4000-0x4fff
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1c.0: MEM window: 0xc0100000-0xc02fffff
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1c.0: PREFETCH window: 0x000000c0500000-0x000000c05fffff
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1c.4: PCI bridge, secondary bus 0000:04
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1c.4: IO window: disabled
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1c.4: MEM window: 0xc0300000-0xc03fffff
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1c.4: PREFETCH window: disabled
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1c.5: PCI bridge, secondary bus 0000:05
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1c.5: IO window: disabled
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1c.5: MEM window: disabled
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1c.5: PREFETCH window: disabled
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1e.0: PCI bridge, secondary bus 0000:0a
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1e.0: IO window: 0x5000-0x5fff
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1e.0: MEM window: 0xc0400000-0xc04fffff
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1e.0: PREFETCH window: 0x000000c8000000-0x000000cfffffff
    Aug 12 16:37:33 archiso kernel: pci 0000:00:01.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1c.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1c.4: PCI INT A -> GSI 17 (level, low) -> IRQ 17
    Aug 12 16:37:33 archiso kernel: pci 0000:00:1c.5: PCI INT B -> GSI 16 (level, low) -> IRQ 16
    Aug 12 16:37:33 archiso kernel: NET: Registered protocol family 2
    Aug 12 16:37:33 archiso kernel: IP route cache hash table entries: 131072 (order: 8, 1048576 bytes)
    Aug 12 16:37:33 archiso kernel: TCP established hash table entries: 262144 (order: 10, 4194304 bytes)
    Aug 12 16:37:33 archiso kernel: TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
    Aug 12 16:37:33 archiso kernel: TCP: Hash tables configured (established 262144 bind 65536)
    Aug 12 16:37:33 archiso kernel: TCP reno registered
    Aug 12 16:37:33 archiso kernel: NET: Registered protocol family 1
    Aug 12 16:37:33 archiso kernel: Unpacking initramfs...
    Aug 12 16:37:33 archiso kernel: Freeing initrd memory: 7221k freed
    Aug 12 16:37:33 archiso kernel: Simple Boot Flag at 0x3c set to 0x1
    Aug 12 16:37:33 archiso kernel: Scanning for low memory corruption every 60 seconds
    Aug 12 16:37:33 archiso kernel: audit: initializing netlink socket (disabled)
    Aug 12 16:37:33 archiso kernel: type=2000 audit(1250095030.473:1): initialized
    Aug 12 16:37:33 archiso kernel: VFS: Disk quotas dquot_6.5.2
    Aug 12 16:37:33 archiso kernel: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
    Aug 12 16:37:33 archiso kernel: msgmni has been set to 7894
    Aug 12 16:37:33 archiso kernel: alg: No test for stdrng (krng)
    Aug 12 16:37:33 archiso kernel: Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
    Aug 12 16:37:33 archiso kernel: io scheduler noop registered
    Aug 12 16:37:33 archiso kernel: io scheduler anticipatory registered
    Aug 12 16:37:33 archiso kernel: io scheduler deadline registered
    Aug 12 16:37:33 archiso kernel: io scheduler cfq registered (default)
    Aug 12 16:37:33 archiso kernel: PCI quirk: reroute interrupts for 0x8086:0x032c
    Aug 12 16:37:33 archiso kernel: Linux agpgart interface v0.103
    Aug 12 16:37:33 archiso kernel: Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
    Aug 12 16:37:33 archiso kernel: serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
    Aug 12 16:37:33 archiso kernel: serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
    Aug 12 16:37:33 archiso kernel: 00:07: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
    Aug 12 16:37:33 archiso kernel: 00:08: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
    Aug 12 16:37:33 archiso kernel: input: Macintosh mouse button emulation as /devices/virtual/input/input0
    Aug 12 16:37:33 archiso kernel: PNP: PS/2 Controller [PNP0303:KBC0,PNP0f13:MSE0] at 0x60,0x64 irq 1,12
    Aug 12 16:37:33 archiso kernel: serio: i8042 KBD port at 0x60,0x64 irq 1
    Aug 12 16:37:33 archiso kernel: serio: i8042 AUX port at 0x60,0x64 irq 12
    Aug 12 16:37:33 archiso kernel: mice: PS/2 mouse device common for all mice
    Aug 12 16:37:33 archiso kernel: cpuidle: using governor ladder
    Aug 12 16:37:33 archiso kernel: cpuidle: using governor menu
    Aug 12 16:37:33 archiso kernel: TCP cubic registered
    Aug 12 16:37:33 archiso kernel: NET: Registered protocol family 17
    Aug 12 16:37:33 archiso kernel: registered taskstats version 1
    Aug 12 16:37:33 archiso kernel: Initalizing network drop monitor service
    Aug 12 16:37:33 archiso kernel: Freeing unused kernel memory: 464k freed
    Aug 12 16:37:33 archiso kernel: input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input1
    Aug 12 16:37:33 archiso kernel: SCSI subsystem initialized
    Aug 12 16:37:33 archiso kernel: usbcore: registered new interface driver usbfs
    Aug 12 16:37:33 archiso kernel: usbcore: registered new interface driver hub
    Aug 12 16:37:33 archiso kernel: usbcore: registered new device driver usb
    Aug 12 16:37:33 archiso kernel: ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
    Aug 12 16:37:33 archiso kernel: ehci_hcd 0000:00:1d.7: PCI INT A -> GSI 23 (level, low) -> IRQ 23
    Aug 12 16:37:33 archiso kernel: ehci_hcd 0000:00:1d.7: EHCI Host Controller
    Aug 12 16:37:33 archiso kernel: ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 1
    Aug 12 16:37:33 archiso kernel: ehci_hcd 0000:00:1d.7: debug port 1
    Aug 12 16:37:33 archiso kernel: ehci_hcd 0000:00:1d.7: irq 23, io mem 0xc0000000
    Aug 12 16:37:33 archiso kernel: ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00
    Aug 12 16:37:33 archiso kernel: usb usb1: configuration #1 chosen from 1 choice
    Aug 12 16:37:33 archiso kernel: hub 1-0:1.0: USB hub found
    Aug 12 16:37:33 archiso kernel: hub 1-0:1.0: 6 ports detected
    Aug 12 16:37:33 archiso kernel: uhci_hcd: USB Universal Host Controller Interface driver
    Aug 12 16:37:33 archiso kernel: uhci_hcd 0000:00:1d.0: PCI INT A -> GSI 23 (level, low) -> IRQ 23
    Aug 12 16:37:33 archiso kernel: uhci_hcd 0000:00:1d.0: UHCI Host Controller
    Aug 12 16:37:33 archiso kernel: uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 2
    Aug 12 16:37:33 archiso kernel: uhci_hcd 0000:00:1d.0: irq 23, io base 0x00003000
    Aug 12 16:37:33 archiso kernel: usb usb2: configuration #1 chosen from 1 choice
    Aug 12 16:37:33 archiso kernel: hub 2-0:1.0: USB hub found
    Aug 12 16:37:33 archiso kernel: hub 2-0:1.0: 2 ports detected
    Aug 12 16:37:33 archiso kernel: uhci_hcd 0000:00:1d.1: PCI INT B -> GSI 19 (level, low) -> IRQ 19
    Aug 12 16:37:33 archiso kernel: uhci_hcd 0000:00:1d.1: UHCI Host Controller
    Aug 12 16:37:33 archiso kernel: uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 3
    Aug 12 16:37:33 archiso kernel: uhci_hcd 0000:00:1d.1: irq 19, io base 0x00003020
    Aug 12 16:37:33 archiso kernel: usb usb3: configuration #1 chosen from 1 choice
    Aug 12 16:37:33 archiso kernel: hub 3-0:1.0: USB hub found
    Aug 12 16:37:33 archiso kernel: hub 3-0:1.0: 2 ports detected
    Aug 12 16:37:33 archiso kernel: uhci_hcd 0000:00:1d.2: PCI INT C -> GSI 18 (level, low) -> IRQ 18
    Aug 12 16:37:33 archiso kernel: uhci_hcd 0000:00:1d.2: UHCI Host Controller
    Aug 12 16:37:33 archiso kernel: uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 4
    Aug 12 16:37:33 archiso kernel: uhci_hcd 0000:00:1d.2: irq 18, io base 0x00003040
    Aug 12 16:37:33 archiso kernel: usb usb4: configuration #1 chosen from 1 choice
    Aug 12 16:37:33 archiso kernel: hub 4-0:1.0: USB hub found
    Aug 12 16:37:33 archiso kernel: hub 4-0:1.0: 2 ports detected
    Aug 12 16:37:33 archiso kernel: ata_piix 0000:00:1f.1: PCI INT A -> GSI 18 (level, low) -> IRQ 18
    Aug 12 16:37:33 archiso kernel: scsi0 : ata_piix
    Aug 12 16:37:33 archiso kernel: scsi1 : ata_piix
    Aug 12 16:37:33 archiso kernel: aic94xx: Adaptec aic94xx SAS/SATA driver version 1.0.3 loaded
    Aug 12 16:37:33 archiso kernel: aic94xx 0000:03:04.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
    Aug 12 16:37:33 archiso kernel: ata1: PATA max UDMA/100 cmd 0x1f0 ctl 0x3f6 bmdma 0x3080 irq 14
    Aug 12 16:37:33 archiso kernel: ata2: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0x3088 irq 15
    Aug 12 16:37:33 archiso kernel: aic94xx: found Adaptec AIC-9405W SAS/SATA Host Adapter, device 0000:03:04.0
    Aug 12 16:37:33 archiso kernel: scsi2 : aic94xx
    Aug 12 16:37:33 archiso kernel: aic94xx 0000:03:04.0: firmware: requesting aic94xx-seq.fw
    Aug 12 16:37:33 archiso kernel: aic94xx: Failed to load sequencer firmware file aic94xx-seq.fw, error -2
    Aug 12 16:37:33 archiso kernel: aic94xx: couldn't init seqs for 0000:03:04.0
    Aug 12 16:37:33 archiso kernel: aic94xx: couldn't init the chip
    Aug 12 16:37:33 archiso kernel: aic94xx 0000:03:04.0: PCI INT A disabled
    Aug 12 16:37:33 archiso kernel: aic94xx: probe of 0000:03:04.0 failed with error -2
    Aug 12 16:37:33 archiso kernel: ata1.00: ATAPI: HL-DT-STDVD-RAM GSA-H55N, 1.03, max UDMA/66
    Aug 12 16:37:33 archiso kernel: ata1.00: limited to UDMA/33 due to 40-wire cable
    Aug 12 16:37:33 archiso kernel: ata1.00: configured for UDMA/33
    Aug 12 16:37:33 archiso kernel: scsi 0:0:0:0: CD-ROM HL-DT-ST DVD-RAM GSA-H55N 1.03 PQ: 0 ANSI: 5
    Aug 12 16:37:33 archiso kernel: Driver 'sr' needs updating - please use bus_type methods
    Aug 12 16:37:33 archiso kernel: sr0: scsi3-mmc drive: 48x/48x writer dvd-ram cd/rw xa/form2 cdda tray
    Aug 12 16:37:33 archiso kernel: Uniform CD-ROM driver Revision: 3.20
    Aug 12 16:37:33 archiso kernel: usb 2-1: new low speed USB device using uhci_hcd and address 2
    Aug 12 16:37:33 archiso kernel: usb 2-1: configuration #1 chosen from 1 choice
    Aug 12 16:37:33 archiso kernel: usbcore: registered new interface driver hiddev
    Aug 12 16:37:33 archiso kernel: input: USB Optical Mouse as /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1:1.0/input/input2
    Aug 12 16:37:33 archiso kernel: generic-usb 0003:04B3:310C.0001: input,hidraw0: USB HID v1.11 Mouse [USB Optical Mouse] on usb-0000:00:1d.0-1/input0
    Aug 12 16:37:33 archiso kernel: usbcore: registered new interface driver usbhid
    Aug 12 16:37:33 archiso kernel: usbhid: v2.6:USB HID core driver
    Aug 12 16:37:33 archiso kernel: squashfs: version 4.0 (2009/01/31) Phillip Lougher
    Aug 12 16:37:33 archiso kernel: aufs 2-standalone.tree-20090601
    Aug 12 16:37:33 archiso kernel: loop: module loaded
    Aug 12 16:37:33 archiso kernel: aufs test_add:240:mount[635]: uid/gid/perm /tmpfs/mnt/loop0 0/0/0755, 0/0/01777
    Aug 12 16:37:33 archiso kernel: aufs test_add:240:mount[648]: uid/gid/perm /tmpfs/mnt/loop2 0/0/0755, 0/0/01777
    Aug 12 16:37:33 archiso kernel: rtc_cmos 00:04: RTC can wake from S4
    Aug 12 16:37:33 archiso kernel: rtc_cmos 00:04: rtc core: registered rtc_cmos as rtc0
    Aug 12 16:37:33 archiso kernel: rtc0: alarms up to one month, y3k, 114 bytes nvram, hpet irqs
    Aug 12 16:37:33 archiso kernel: udev: starting version 141
    Aug 12 16:37:33 archiso kernel: input: PC Speaker as /devices/platform/pcspkr/input/input3
    Aug 12 16:37:33 archiso kernel: intel_rng: FWH not detected
    Aug 12 16:37:33 archiso kernel: pci_hotplug: PCI Hot Plug PCI Core version: 0.5
    Aug 12 16:37:33 archiso kernel: shpchp: Standard Hot Plug PCI Controller Driver version: 0.4
    Aug 12 16:37:33 archiso kernel: input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input4
    Aug 12 16:37:33 archiso kernel: ACPI: Power Button [PWRF]
    Aug 12 16:37:33 archiso kernel: input: Power Button as /devices/LNXSYSTM:00/device:00/PNP0A03:00/PNP0C0C:00/input/input5
    Aug 12 16:37:33 archiso kernel: ACPI: Power Button [PWRB]
    Aug 12 16:37:33 archiso kernel: EDAC MC: Ver: 2.1.0 Jul 31 2009
    Aug 12 16:37:33 archiso kernel: iTCO_vendor_support: vendor-support=0
    Aug 12 16:37:33 archiso kernel: i801_smbus 0000:00:1f.3: PCI INT B -> GSI 19 (level, low) -> IRQ 19
    Aug 12 16:37:33 archiso kernel: tg3.c:v3.98 (February 25, 2009)
    Aug 12 16:37:33 archiso kernel: tg3 0000:04:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
    Aug 12 16:37:33 archiso kernel: tg3 0000:04:00.0: PME# disabled
    Aug 12 16:37:33 archiso kernel: eth0: Tigon3 [partno(BCM95721) rev 4101] (PCI Express) MAC address 00:11:25:a4:42:2f
    Aug 12 16:37:33 archiso kernel: eth0: attached PHY is 5750 (10/100/1000Base-T Ethernet) (WireSpeed[1])
    Aug 12 16:37:33 archiso kernel: eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[1] TSOcap[1]
    Aug 12 16:37:33 archiso kernel: eth0: dma_rwctrl[76180000] dma_mask[64-bit]
    Aug 12 16:37:33 archiso kernel: sr 0:0:0:0: Attached scsi generic sg0 type 5
    Aug 12 16:37:33 archiso kernel: iTCO_wdt: Intel TCO WatchDog Timer Driver v1.05
    Aug 12 16:37:33 archiso kernel: iTCO_wdt: Found a ICH7 or ICH7R TCO device (Version=2, TCOBASE=0x1060)
    Aug 12 16:37:33 archiso kernel: iTCO_wdt: initialized. heartbeat=30 sec (nowayout=0)
    Aug 12 16:37:33 archiso kernel: processor ACPI_CPU:00: registered as cooling_device0
    Aug 12 16:37:33 archiso kernel: ACPI: Processor [CPU0] (supports 8 throttling states)
    Aug 12 16:37:33 archiso kernel: processor ACPI_CPU:01: registered as cooling_device1
    Aug 12 16:37:33 archiso kernel: ACPI: Processor [CPU1] (supports 8 throttling states)
    Aug 12 16:37:33 archiso kernel: EDAC MC0: Giving out device to 'i3000_edac' 'i3000': DEV 0000:00:00.0
    Aug 12 16:37:33 archiso kernel: EDAC PCI0: Giving out device to module 'i3000_edac' controller 'EDAC PCI controller': DEV '0000:00:00.0' (POLLED)
    Aug 12 16:37:33 archiso kernel: lp: driver loaded but no devices found
    Aug 12 16:37:33 archiso kernel: parport_pc 00:0b: reported by Plug and Play ACPI
    Aug 12 16:37:33 archiso kernel: parport0: PC-style at 0x378 (0x778), irq 7, dma 1 [PCSPP,TRISTATE,COMPAT,ECP,DMA]
    Aug 12 16:37:33 archiso kernel: lp0: using parport0 (interrupt-driven).
    Aug 12 16:37:33 archiso kernel: ppdev: user-space parallel port driver
    Aug 12 16:37:31 archiso init: Entering runlevel: 3
    Aug 12 16:38:08 archiso kernel: tg3 0000:04:00.0: PME# disabled
    Aug 12 16:38:09 archiso kernel: tg3: eth0: Link is up at 100 Mbps, full duplex.
    Aug 12 16:38:09 archiso kernel: tg3: eth0: Flow control is on for TX and on for RX.
    Aug 12 16:42:52 archiso kernel: device-mapper: uevent: version 1.0.3
    Aug 12 16:42:52 archiso kernel: device-mapper: ioctl: 4.14.0-ioctl (2008-04-23) initialised: [email protected]
    Aug 12 16:43:49 archiso kernel: usb 1-4: new high speed USB device using ehci_hcd and address 3
    Aug 12 16:43:50 archiso kernel: usb 1-4: configuration #1 chosen from 1 choice
    Aug 12 16:43:50 archiso kernel: Initializing USB Mass Storage driver...
    Aug 12 16:43:50 archiso kernel: scsi3 : SCSI emulation for USB Mass Storage devices
    Aug 12 16:43:50 archiso kernel: usbcore: registered new interface driver usb-storage
    Aug 12 16:43:50 archiso kernel: USB Mass Storage support registered.
    Aug 12 16:43:55 archiso kernel: scsi 3:0:0:0: Direct-Access Kingston DT 101 II 1.00 PQ: 0 ANSI: 2
    Aug 12 16:43:55 archiso kernel: scsi 3:0:0:0: Attached scsi generic sg1 type 0
    Aug 12 16:43:55 archiso kernel: Driver 'sd' needs updating - please use bus_type methods
    Aug 12 16:43:55 archiso kernel: sd 3:0:0:0: [sda] 7876608 512-byte hardware sectors: (4.03 GB/3.75 GiB)
    Aug 12 16:43:55 archiso kernel: sd 3:0:0:0: [sda] Write Protect is off
    Aug 12 16:43:55 archiso kernel: sda: sda1
    Aug 12 16:43:55 archiso kernel: sd 3:0:0:0: [sda] Attached SCSI removable disk
    I'm following your last instructions  ... no results.

  • [Solved] RAID 0 with Arch Linux and Intel Matrix Storage Manager

    I just bought a brand new DELL Studio desktop and it has 2 500 HD's which I would like to run in RAID 0. I've setup the BIOS to run the RAID 0. Now I want the arch linux installation to recognise the volume. I followed the guide on the wikipage
    http://wiki.archlinux.org/index.php/Ins … _Fake-RAID
    but /dev/mapper doesn't show anything after modprobing the modules and installing dmraid. My controller is a intel matrix storage controller, so what module should I modprobe because sata_sil isn't the right one.
    Regards
    André
    Last edited by fettouhi (2008-12-15 10:57:18)

    you have a separate /boot partition, so your menu.lst must say :
    root (hd0,0) # the partition including /boot
    kernel /vmlinuz26 ... # without leading /boot
    initrd /kernel26.img # without leading /boot
    (in grub, / is the root of the partition that was set with the root command, your vmlinuz26 and kernel26.img are in (hd0,0)/, not in (hd0,0)/boot/)
    did you install from core CD or from FTP ?
    there was a dmraid update few weeks ago that modified device names that dmraid creates :
    it add "p" before the number of the partition (your iws...Volume0 don't change, but your iws...Volume0# change to iws...Volume0p#)
    if you installed from core CD, you will only need to add this "p" when you will upgrade dmraid (or the full system)
    (you will then need to edit both /boot/grub/menu.lst and /etc/fstab)
    if you installed from FTP, you need to add this "p" now, as you installed last version of dmraid

  • Installing Multiple Operating Systems with grub and Arch Linux

    NOTE: Please keep in mind that there are many different ways to achieve this same result using various loop and ramdisk methods, read this with a separate window to jot down your comments and suggestions... this is ongoing for me so any help would be appreciated!
    Read the full article at Install Multiple Os without cds
    This is my first post and I plan on making this topic an official HOWTO with www.tldp.org.
    I have been into the computer security scene since 1990, but I realized that I had very little experience with the various LInux, Unix, and alternative Operating systems out there.
    I have a CD-RW drive but being a struggling computer security researcher I had no money for blank cd-recordables.  What follows is how I managed to install various operating systems on my computer (1 hard drive) without having to burn to a CD the ISO and then boot from that.
    I first partitioned my 120GB harddrive into 10 partitions, the 2nd partition is a small swap and the last partition is extra large because it holds all the ISO images..
    I then wrote a small shell script to automatically download (I love wget!)  the following.
    OpenBSD
    IpCOP
    Libranet
    Arch-Linux
    Fire
    Local Area Security
    Packet Master
    Devil-Linux
    FreeBSD
    Knoppix
    Helix
    Gentoo
    Yoper-Linux
    NetBSD
    RedHat
    Slackware
    The script also downloaded Installation manuals and md5 checksums.. (let me know if I should post... its pretty unsophisticated
    I installed Slackware (personal favorite) on hda1 using my last blank CD-R, note that I do not have a separate boot partitino.  (Should I?).  I also installed grub on the MBR.  I love grub, if you read through the man pages and all info you can find about grub, you can learn a whole lot.  Grub has much more features and capability than lilo, even though lilo comes installed by default with slack.
    I organize my kernel situation as follows...  In my /boot directory, I mkdir KERNEL, CONFIG, MAP, INITRD and that is a good way for me to keep my kernels and everything organized..  Another good way is a separate dir for each new kernel. 
    Since Arch-Linux is a solid distro, I'll use that as a first example.
    Here is the Arch-Linux section of my shell script
    goge Arch-Linux
    $w http://puzzle.dl.sourceforge.net/sourceforge/archlinux/arch-0.6.iso
    $w http://unc.dl.sourceforge.net/sourceforge/archlinux/arch-0.6.md5sum
    $w http://www.archlinux.org/docs/en/guide/install/arch-install-guide.html
    md55
    cat arch-0.6.md5sum
    md5sum arch-0.6.iso
    md55
    The first thing to do is to mount the downloaded ISO image so we can use it as if it were an actual CD.
    mount -t iso9660 -o ro,loop=/dev/loop0 cdimage /mnt/cdrom
    Where cdimage= the ISO image.   EX. /usr/local/src/ISO/Linux/Arch-Linux/arch-0.6.iso
    This mounts the iso as /mnt/cdrom.
    Next you need to copy /mnt/cdrom to a separate partition for the booting process.  So mkfs.ext2 /dev/hda9.  ( I prefer reiserfs or even XFS to ext but if you use something other than ext2 you could run into some problems because some of the installation kernels and initrds don't include support for reiserfs and so can't recognize the files.  Although you could use mkinitrd to create a new initrd with reiserfs support, that might be pushin it IMO...   I use the 9th partition consistently for this.  I know there is a "right" way to copy the /mnt/cdrom files so everything stays the way it is supposed too, using tar or cpio, but I'm lazy so I just do cp -rp.   
    (What is the tar or cpio commands to copy with correct permissions etc??)
    So you mount the 9th partition as whatever, say /mnt/hd and then copy the files.  Now what?
    Now edit your /boot/grub/menu.lst file to include the specific options to boot arch-linux installation. 
    A good idea is to find the isolinux.cfg file somewhere on the distro cd, this will tell you what to include in the menu.lst.
    Here is the section in my menu.lst
    title Arch Install
    root (hd0,8)
    kernel /isolinux/vmlinuz load_ramdisk=1 prompt_ramdisk=0 root=/dev/rd/0
    initrd=/isolinux/initrd.img
    This should be self-explanatory.  The root (hd0,8) is pointing to partition 9.  So the rest of the commands start from partition 9. 
    When you experience problems, remember you can always edit the grub boot options by typing 'e' and then edit the section.  Also, a good idea is to include several variations in your menu.lst so you can easily try other ways to boot efficiently.  And, remember to read up on all the installation guides that come with your distro, specifically, hard-disk installs. 
    There are special cases, Gentoo, has a semi-new compressed filesystem called squashfs.  BTW, this is AWESOME, so check it out.  It has to be compiled into the kernel, so some work is in order, but use this recompile to optimize your kernel.  You can get the squashfs patch for almost any kernel.  I use the latest stable 2.6 kernel.  Squashfs is incredible and although I don't think you need it to install from ISO, you do need it to expand the livecd.squashfs filesystem that comes with the cd.
    Heres a sample Gentoo section from my menu.lst
    title Gentoo Install
    root (hd0,8)
    kernel /isolinux/gentoo root=/dev/ram0
    initrd=/isolinux/gentoo.igz init=/linuxrc acpi=off looptype=squashfs loop=/livecd.squashfs cdroot vga=791 splash=silent
    A nother' tip is the shell that is provided if you experience problems, typically busybox or ash.  The key tools to get you going from here is mount and chroot.  Sometimes you will need to manually create a simulated file system and then chroot into it.  For instance, you might have to create boot, etc, bin, directories on the target partition. 
    I generally install each OS onto the next partition (careful of the logical partition) and add it to my menu.lst after install.  A good idea is after installation, copy the kernel and initrd(if there is one) to the slackware(or whatever) boot partition on hda1.  I copy kernels to /boot/KERNEL/ and initrd's to /boot/INITRD, then menu.lst is more organized...
    You then need to add an updated section to your menu.lst (just comment out the install section for later)
    Here is the finished arch-linux section from menu.lst
    title Arch Linux 6
    root (hd0,2)
    kernel /boot/vmlinuz26 ro root=/dev/hdc3
    This doesn't use my convenient boot/KERNEL/vmlinuz26 as you can tell by setting the root to partition 3.
    ***NOTE: Make a backup of MBR using dd and save to floppy, also backup the partition table to floppy, using cfdisk or parted.  And boot disks (I use 1 with grub, and 1 with slack, and tomsbootdisk) will invariably come in handy.  Tomsbootdisk is recommended, and make the grub boot disk when you install grub.  install to floppy.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    The final result after some fun experimenting, is when I boot, I have a cool grub boot screen come up with the option to boot into whatever OS I want, this is handy for multiple reasons.  One good thing to do after this is to port scan and vuln scan each OS, after you update of course.  Write this stuff down and you will know the weaknesses/strengths of the various OS's. 
    I can boot a custom Firewall, snort, or multiple honeypots using this procedure, as well as a graphical kde environment with a kernel optimized for graphics and my processor/architecture, or an environment devoted to forensics or even an environment suitable for programming.
    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    P.S. Some of the cooler alternative operating systems are BeOS 5, EOS, ER_OS, V2_OS, and my personal favorite Menuet.  Menuet is 100% assembly graphical operating system that fits on a floppy.  Its f'in money!
    This should be a good enough example to get you started, this kind of thing should be learned and not just copied... Knowing how to do this stuff could prove to be exceptionally useful...

    Start by reading all the articles built-in on your Mac - Help > Mac Help, search "printer sharing."
    http://desk.stinkpot.org:8080/tricks/index.php/2008/04/how-to-print-to-a-cups-se rver-from-mac-os-x/
    http://www.macosxhints.com/article.php?story=20080324224027152&query=share%2Bpri nter
    http://members.cox.net/18james/osxprintersharing.html
    http://ubuntuforums.org/archive/index.php/t-56940.html

  • [SOLVED]System Hang in Arch Linux

    I have tried distributions like ubuntu and fedora in hope for finding a stable system . So I move on to Arch Linux
    But this problem also exist on Arch. While using my Arch Linux (including ubuntu and fedora) my system hangs with a black screen with something written on the whole screen which cannot be pasted here as my system hangs and I have to push power button to restart.
    So I check my errors.log file and found these errors
    Jul  8 22:59:24 localhost kernel: [    1.680013] ata3: softreset failed (device not ready)
    Jul  8 22:59:24 localhost kernel: [    7.298612] SP5100 TCO timer: mmio address 0xfec000f0 already in use
    Jul  8 22:59:31 localhost kdm_greet[792]: Cannot load /usr/share/apps/kdm/faces/.default.face: No such file or directory
    I have a HCL K21 pdc notebook
    Note: In Ubuntu my notebook start with ata1: softreset failed error at boot time
    Most often this error occur while watching videos or listening music with VLC
    Last edited by Manuj19 (2011-07-09 10:13:24)

    ewaller wrote:It might be better to just post the output of lspci -nn  It will tell us a great deal more about the hardware related to the PCI bus, including specific chip set identifiers.
    Thanks for suggestion
    Here is output of lspci -nn
    00:00.0 Host bridge [0600]: ATI Technologies Inc Device [1002:5a31] (rev 01)
    00:01.0 PCI bridge [0604]: ATI Technologies Inc RS480 PCI Bridge [1002:5a3f]
    00:04.0 PCI bridge [0604]: ATI Technologies Inc RS480 PCI Bridge [1002:5a36]
    00:05.0 PCI bridge [0604]: ATI Technologies Inc RS480 PCI Bridge [1002:5a37]
    00:06.0 PCI bridge [0604]: ATI Technologies Inc RS480 PCI Bridge [1002:5a38]
    00:07.0 PCI bridge [0604]: ATI Technologies Inc RS480 PCI Bridge [1002:5a39]
    00:12.0 SATA controller [0106]: ATI Technologies Inc SB600 Non-Raid-5 SATA [1002:4380]
    00:13.0 USB Controller [0c03]: ATI Technologies Inc SB600 USB (OHCI0) [1002:4387]
    00:13.1 USB Controller [0c03]: ATI Technologies Inc SB600 USB (OHCI1) [1002:4388]
    00:13.2 USB Controller [0c03]: ATI Technologies Inc SB600 USB (OHCI2) [1002:4389]
    00:13.3 USB Controller [0c03]: ATI Technologies Inc SB600 USB (OHCI3) [1002:438a]
    00:13.4 USB Controller [0c03]: ATI Technologies Inc SB600 USB (OHCI4) [1002:438b]
    00:13.5 USB Controller [0c03]: ATI Technologies Inc SB600 USB Controller (EHCI) [1002:4386]
    00:14.0 SMBus [0c05]: ATI Technologies Inc SBx00 SMBus Controller [1002:4385] (rev 13)
    00:14.1 IDE interface [0101]: ATI Technologies Inc SB600 IDE [1002:438c]
    00:14.2 Audio device [0403]: ATI Technologies Inc SBx00 Azalia (Intel HDA) [1002:4383]
    00:14.3 ISA bridge [0601]: ATI Technologies Inc SB600 PCI to LPC Bridge [1002:438d]
    00:14.4 PCI bridge [0604]: ATI Technologies Inc SBx00 PCI to PCI Bridge [1002:4384]
    01:05.0 VGA compatible controller [0300]: ATI Technologies Inc RC410 [Radeon Xpress 200M] [1002:5a62]
    02:00.0 Ethernet controller [0200]: Atheros Communications Inc. AR5001 Wireless Network Adapter [168c:001c] (rev 01)
    08:01.0 CardBus bridge [0607]: Ricoh Co Ltd RL5c476 II [1180:0476] (rev b3)
    08:01.1 FireWire (IEEE 1394) [0c00]: Ricoh Co Ltd R5C552 IEEE 1394 Controller [1180:0552] (rev 08)
    08:01.2 SD Host controller [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter [1180:0822] (rev 17)
    08:01.3 System peripheral [0880]: Ricoh Co Ltd R5C592 Memory Stick Bus Host Adapter [1180:0592] (rev 08)
    08:07.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ [10ec:8139] (rev 10)
    Last edited by Manuj19 (2011-07-09 07:20:08)

  • [HOWTO] Installing Arch Linux stable release on Acer Aspire One 522

    [This is a work on progress and my first howto ever]
    These steps will teach you how to install ArchLinux x64 stable release (currently 2010.05) on Acer Aspire One 522 from an existing ArchLinux (your desktop computer)
    As you need a 2.6.37+ kernel to make networking work on the AO522, installing stable release as is won't work.
    This Howto borns with the intention to address this problem.
    You need to be familiarized with Linux internals to follow this howto.
    (Expect this howto to become useless with new stable releases of ArchLinux.)
    Remember to make a backup of your Windows 7 Starter system before installing ArchLinux.
    I did a full raw copy of the harddisk by using systemrescuecd, an external harddisk and dd utility:
    Just boot with systemrescuecd
    Mount your external harddisk on /mnt/floppy for example
    Clone harddisk with: dd if=/dev/sda |gzip -c > /mnt/floppy/ao522.img
    This process took me a lot of time since my external harddisk is USB-1 (almost an entire evening)
    Result image was about 22GB size
    This image will restore partition table, boot sector and all data if things go wrong.
    I followed some of the steps from this guide: https://wiki.archlinux.org/index.php/In … ting_Linux
    If you have some Gentoo Linux experience you will find those steps really familiar.
    You will need 2 USB pendrives or similar storage options.
    One is needed to boot into your netbook, and the other to store our custom archlinux build.
    Making an updated ArchLinux system
    1) Make a local dir on your existing linux system
    # mkdir ./newarch
    2) Install pacman database on it
    # pacman -Sy -r ./newarch
    3) Install base system
    # pacman -S base -r ./newarch
    4) Let's chroot inside
    # cp /etc/resolv.conf ./newarch/etc/
    # cp /etc/pacman.d/mirrorlist ./newarch/etc/pacman.d
    # mount -t proc proc ./newarch/proc
    # mount -t sysfs sys ./newarch/sys
    # mount -o bind /dev ./newarch/dev
    # chroot ./newarch /bin/bash
    5) Edit configuration files
    # nano -w /etc/rc.conf
    # nano -w /etc/hosts
    # nano -w /etc/mkinitcpio.conf
    Forget /etc/fstab for now since you don't know what partitions to use yet
    6) Generate kernel image
    # mkinitcpio -p kernel26
    7) Generate locales
    # nano -w /etc/locale.gen
    # locale-gen
    8) Make a tarball with our custom ArchLinux
    # exit
    # umount ./newarch/proc
    # umount ./newarch/dev
    # umount ./newarch/sys
    # tar -cvpf newarch.tar ./newarch
    9) Copy this tarball to an USB pendrive or external harddisk
    10) Boot your netbook with a Linux bootable USB stick (I used systemrescuecd, and remember to pick the x64 bit kernel at grub screen)
    You can use any linux distribution with usb bootable options. I suppose ArchLinux works too
    To install SystemRescueCD on an USB stick follow this tutorial -> SystemRescueCD on usb stick
    Insert the usb stick on your netbook, switch on, hit F2 to enter BIOS menu, and choose to boot from USB as first option. Save and Exit.
    You should be booting into SystemRescueCD without any problem.
    After initialization you will end in a root prompt.
    11) Let's partition the disk
    You will find 3 partitions if this is your first time:
    /dev/sda1 2048 29362175 14680064 27 Hidden NTFS WinRE
    /dev/sda2 * 29362176 29566975 102400 7 HPFS/NTFS/exFAT
    /dev/sda3 29566976 488397167 229312696 7 HPFS/NTFS/exFAT
    My recomendation is to leave sda1 and sda2 intact, as they have the recovery information to restore Windows 7 Starter
    You have plenty of space with sda3, about 230G.
    So run fdisk/cfdisk and delete /dev/sda3
    Now create a 100M partition for boot
    Now create a Extended partition with all the space left
    Now create a 1GB logical partition for swap
    Now create a 10-15 GB  logical partition for root system
    And finally a logical partition for our home partition with all space left
    Your partition table should look like this:
    /dev/sda1 2048 29362175 14680064 27 Hidden NTFS WinRE
    /dev/sda2 * 29362176 29566975 102400 7 HPFS/NTFS/exFAT
    /dev/sda3 29566976 29771775 102400 83 Linux
    /dev/sda4 29771776 488397167 229312696 5 Extended
    /dev/sda5 29773824 31821823 1024000 83 Linux
    /dev/sda6 31823872 63281151 15728640 83 Linux
    /dev/sda7 63283200 488397167 212556984 83 Linux
    12) Create filesystems
    I choosed ext2 for boot, and reiserfs for root and home partitions.
    # mke2fs /dev/sda3
    # mkreiserfs /dev/sda6
    # mkreiserfs /dev/sda7
    # mkswap /dev/sda5
    13) Mount partitions
    # mkdir arch
    # mount /dev/sda6 arch
    # mkdir arch/boot
    # mount /dev/sda3 arch/boot
    # mkdir arch/home
    # mount /dev/sda7 arch/home
    14) Copy our custom ArchLinux build on it
    # mount /dev/sdb1 /mnt/floppy (for example)
    # cd arch
    # tar -xvpf /mnt/flopy/newarch.tar
    15) Configure /etc/fstab
    Mine is as follows:
    devpts /dev/pts devpts defaults 0 0
    shm /dev/shm tmpfs nodev,nosuid 0 0
    /dev/sda3 /boot ext2 defaults 0 1
    /dev/sda6 / reiserfs defaults 0 1
    /dev/sda7 /home reiserfs defaults 0 1
    /dev/sda5 swap swap defaults 0 0
    16) Chroot in your new system
    # mount -t proc proc ./proc
    # mount -t sysfs sys ./sys
    # mount -o bind /dev ./dev
    # chroot ./ /bin/bash
    17) Install grub
    # grub-install
    Edit /boot/grub/menu.lst to suit your needs
    Mine looks like this:
    timeout 5
    default 0
    color light-blue/black light-cyan/blue
    title Arch Linux
    root (hd0,2)
    kernel /vmlinuz26 root=/dev/sda6 ro
    initrd /kernel26.img
    title Arch Linux Fallback
    root (hd0,2)
    kernel /vmlinuz26 root=/dev/sda6 ro
    initrd /kernel26-fallback.img
    title Windows 7 Recovery
    rootnoverify (hd0,0)
    makeactive
    chainloader +1
    As you see, you can restore Windows 7 Starter from Grub.
    18) Change root password
    # passwd
    19) Add a regular  user account
    # useradd -G video,audio,users -m username
    # passwd username
    20) You're done!
    # exit
    # cd ..
    # umount ./arch/proc
    # umount ./arch/dev
    # umount ./arch/sys
    # umount ./arch/boot
    # umount ./arch/
    # reboot
    Remove the usb stick from your netbook.
    If all went ok, you will be inside your new stable and updated ArchLinux system
    Next post is reserved for software configurations specific to the Acer Aspire One 522
    Last edited by tigrezno (2011-04-20 12:22:38)

    Using acpid to achieve the following:
    - Change screen brightness when operating in battery mode
    - Power off when the power button is pressed
    - Suspend when the lid is down
    - Reduce CPU frequency speed to maximize battery usage
    Remember that system suspend is only supported by ati free driver xf86-video-ati
    1) Install acpid daemon and cpufrequtils
    # pacman -S apcid cpufrequtils
    2) edit acpid handler script
    # nano -w /etc/acpi/handler.sh
    Change the following section:
    ac_adapter)
    case "$2" in
    AC)
    case "$4" in
    00000000)
    echo -n $minspeed >$setspeed
    #/etc/laptop-mode/laptop-mode start
    00000001)
    echo -n $maxspeed >$setspeed
    #/etc/laptop-mode/laptop-mode stop
    esac
    *) logger "ACPI action undefined: $2" ;;
    esac
    for:
    ac_adapter)
    case "$2" in
    ACAD)
    case "$4" in
    00000000)
    echo 3 > /sys/devices/virtual/backlight/acpi_video0/brightness
    cpufreq-set -c 0 -f 800Mhz
    cpufreq-set -c 1 -f 800Mhz
    00000001)
    echo 9 > /sys/devices/virtual/backlight/acpi_video0/brightness
    cpufreq-set -c 0 -f 1000Mhz
    cpufreq-set -c 1 -f 1000Mhz
    esac
    *) logger "ACPI action undefined: $2" ;;
    esac
    Make sure you changed AC) for ACAD)
    Now change this other section:
    button/power)
    #echo "PowerButton pressed!">/dev/tty5
    case "$2" in
    PWRF) logger "PowerButton pressed: $2" ;;
    *) logger "ACPI action undefined: $2" ;;
    esac
    with:
    button/power)
    #echo "PowerButton pressed!">/dev/tty5
    case "$2" in
    PWRF) poweroff ;;
    *) logger "ACPI action undefined: $2" ;;
    esac
    Change:
    button/lid)
    #echo "LID switched!">/dev/tty5
    logger "ACPI group/action undefined: $1 / $2"
    for:
    button/lid)
    pm-suspend && /etc/rc.d/network restart
    logger "ACPI group/action undefined: $1 / $2"
    Network restart is used because wlan0 will disconnect from AP after some time. You can try using iwconfig wlan0 essid <ap> key <key> instead of the network script, but haven't tested it myself.
    3) Start acpid and load modules
    # modprobe powernow-k8
    # /etc/rc.d/acpid start
    Add "acpid" to DAEMONS in /etc/rc.conf to start on boot
    Add "powernow-k8" to the modules sections on /etc/rc.conf to load at boot
    Stopping system freezes due to ethernet driver
    The only way people have found to avoid freezes is by blacklisting atheros kernel drivers.
    To do it at boot just edit /etc/rc.conf and change the MODULES line as this:
    MODULES=(!ath9k !atl1c)
    Reboot and you're done, but remember to not press the Wifi key, because it can freeze your system.
    Correctly starting wireless at boot
    I've found that standard scripts wont load properly my wireless lan. It gave an error telling you to use the WIRELESS_TIMEOUT variable and such.
    To solve this, edit /etc/rc.d/network script and change the wi_up function by adding a second iwconfig command like this:
    wi_up()
    eval iwcfg="\$wlan_${1}"
    [[ ! $iwcfg ]] && return 0
    /usr/sbin/iwconfig $iwcfg
    [[ $WIRELESS_TIMEOUT ]] || WIRELESS_TIMEOUT=2
    sleep $WIRELESS_TIMEOUT
    /usr/sbin/iwconfig $iwcfg
    bssid=$(iwgetid $1 -ra)
    It will do the trick and will start at boot correctly. This is not a solution but a fix.
    Adjust Touchpad to disable false taps
    What I did here is defining an area to be ignored. This area are 3 rectangles on top, left and right of the touchpad.
    This means you can write and press space without having the cursor click out of the window and such.
    # synclient AreaLeftEdge=150
    # synclient AreaRightEdge=1300
    # synclient AreaTopEdge=300
    Also, add it to your /etc/X11/xorg.conf.d/10-evdev.conf:
    Section "InputClass"
    Identifier "evdev touchpad catchall"
    MatchIsTouchpad "on"
    MatchDevicePath "/dev/input/event*"
    Driver "evdev"
    Option "AreaTopEdge" "300"
    Option "AreaLeftEdge" "150"
    Option "AreaRightEdge" "1300"
    EndSection
    You can play with those values. They just work for me.
    Last edited by tigrezno (2011-04-23 13:49:48)

  • Arch linux through vmware in dual boot

    Hi guys,
    I've reinstalled arch again on a fake (intel) raid system with dual boot with Windows 7. Right now arch runs just fine natively on the machine, but I want to set it up so I can run it from vmware in windows as well. I have most things figured out but I have a small problem which I have yet to tackle.
    Natively the disks are mapped through dmraid in the following manner (etc/fstab):
    /dev/mapper/isw_cidbgaibjd_Systemp3 /boot ext2 defaults 0 1
    /dev/mapper/isw_cidbgaibjd_Systemp5 swap swap defaults 0 0
    /dev/mapper/isw_cidbgaibjd_Systemp6 / ext4 defaults 0 1
    /dev/mapper/isw_cidbgaibjd_Systemp2 /mnt/Win7 ntfs-3g defaults 0 0
    /dev/mapper/isw_cidbgaibjd_Datap1 /mnt/Data ntfs-3g defaults 0 0
    To access from vmware in Win7 I have set up vmware to map the physical (raid) drive where the arch partitions are for the virtual machine. The difference is that in Win7 the raid drive /dev/mapper/isw_cidbgaibjd_System is seen as /dev/sda (vmware abstracts the raid drive as a regular scsi/sata drive).
    I've used mkinitcpio to generate a separate profile "kernel26-vmware" to load different hooks to boot arch linux in a virtual machine and create a separate runlevel (runlevel 7) to load different daemons at boot and added a new entry in grub to load the kernel26-vmware mkinitcpio image and go into runlevel 7. The only problem remaining is to switch out /etc/fstab so that it loads proper device paths to the raid drive partitions e.g.:
    /dev/sda3 /boot ext2 defaults 0 1
    /dev/sda5 swap swap defaults 0 0
    /dev/sda6 / ext4 defaults 0 1
    /dev/sda2 /mnt/Win7 ntfs-3g defaults 0 0
    /dev/sdb1 /mnt/Data ntfs-3g defaults 0 0
    So the question is, is there anyway to tell mkinitcpio to rewrite fstab at boot with what I want depending on if I'm booting arch natively through dual boot, or booting from vmware in Win7? I've seen that mkinitcpio has "FILES" directive which enables it to load additional custom files. Can this be used to load two separate fstabs and a small script that will ovewrite /etc/fstab on boot?
    Last edited by digivampire (2009-09-24 17:32:48)

    Nevermind, I figured out the solution. Since UUIDs are preserved on the filesystem, setting fstab to use /dev/disk/by-uuid... works when booting both native and from vmware.

  • I386 Arch Linux ?

    Hi,
    I've been using Arch linux on my main machine for a few months now, and really like it. I like the "currentness" of it, as well as it's minimalist approach.
    I have an old 80486DX2 66Mhz with 20MB of RAM which I occasionally fire up to play with networking things, as I work as a network engineer. I'd really like to be able to install a minimal copy of Arch Linux on it. Of course I can't, because the Arch Linux distro is i686 or greater. I've got a 10GB hard drive in it, so disk space isn't an issue. I currently have an old version of Debian on it.
    I'd like to suggest creating "base-line PC" Arch distro, that is compiled only using i386 CPU instructions, allowing it to run on all generation 32 bit PCs. This would allow us Arch fans to run Arch on older computers we might have lying around.
    Regards,
    Mark.

    deficite wrote:I really like how you have no option to disagree with you at all, you either have to agree with you or vote that you don't know what a 486 is (Which is quite odd, because I know of quite a few rednecks in my school who even know what a 486 is)
    Was having a small amount of fun with the poll option.:-) Having used Linux since early 1993, and having come across people in another forum asking what version of Linux would run on such as slow machine as a P3 550, I was amused to ask if people knew what an 80486 was.
    Anyway, I think it's a waste of effort IMHO. A computer that old would probably not have a large HDD, and Arch requires >90MB for a full base install (of course you COULD strip things out). I remember the 486DX-33 we had only had like a 150MB hard drive or something, if even that much, and it came with 4MB of RAM (I upped it to 32MB after my dad found a broken computer in a storage unit next to ours a few years ago )
    It's possible to run large HDDs in machines that old, I have a 10GB drive in the 80486 I have. Once Linux starts, it talks directly to the disk, so BIOS limitations disappear. All you need to do is configure the BIOS with the largest sized HDD it supports, and make sure the bootloader and the kernel reside within that part of the disk. This was the technique we used to use to get around the 512MB limit in the BIOS. I think actual IDE hardware limits kick in once you require LBA access to the disk, and from very rusty memory, that is something like 37GB.
    20MB of RAM, which was also popular enough (4 x 1MB SIMMs, 4x4MB SIMMs), should be is enough to run a base Linux install(plenty actually, I used to run Linux on a 486 with 8MB of RAM, with X windows. I'd have 0.5MB left to run applications, however with fast swapping to a SCSI disk, it was quite useable).
    I guess you could run a server or two on it or something, but do you really want to spend all that effort porting Arch to 386 when you could just run another distro. There are distros made specifically for running servers on old hardware.
    Yes, but then it wouldn't be running Arch, would it. :-)

  • Arch Linux on SmartQ (V5II) -looking to start project-

    Upfront I will note that I am not skilled enough to accomplish this alone at my current level.  I will learn what I can in order to achieve this task, so any and all links to tutorials and ideas on how to get this working will be taken and put through heavy consideration.  Primary concern will be getting a working "livecd" cloned image (basically, all the most standard core packages to get a working Arch Linux with USB Keyboard and mouse support, then build from there till I get X and all the nice features of the V5(II) working, and branch out from there  Will probably look into repartitioning the NAND so I can have a complete and full install (probably preserve Android for being boot from SD, which is fine since it's a complete dual-boot which requires rebooting to switch anyway)  As of now, I am referencing the development tutorial for SmartQ, tutorials for building firmware images from plugapps (nice Arch port to ARM devices) and whatever information I can gather from someone on the Arch Linux forums who has recently ported it to the newest ARM processor type (v7, if I'm not mistaken).  All links will be provided at the bottom of this post.
    My guess is that I will have to approach this with a "Linux From Scratch" mindset of compiling the kernel, busybox and whatever else I need to get a working base install (which, from there, I can compile everything else natively on the actual device)to the point where I reach a working system with gui, basic tools, maybe a game or two, and whatever else would constitute being enough for "firmware" status.  I guess, my only question ahead of all that is how do I go about making the "base install" firmware to build up from?  Secondary question to that is, once I get a nice setup, how do I take that (all being on the actual V5II) and remaster THAT into a firmware that I can then post online for others to test?  I already have my homework cut out for me, so I'll be reading what i can to figure this out while anybody and everybody here throws me tutorial links and ideas on how I can accomplish this each step of the way...  We shall see where this train takes us.
    SmartQ Linux Development Guild: https://docs.google.com/View?id=ddtx8wk … skpm&pli=1
    PlugApps Development Portal: http://www.plugapps.com/index.php5?titl … evelopment
    Arch Forum post for developer who ported Arch Linux to the v7 ARM processor: https://bbs.archlinux.org/viewtopic.php?id=59638
    can't think of anything else at this point, but I will categorize links the best I can to morph them into somewhat of a workflow process and group the help aids to each relevant step along the way.  Anyone interested in helping, feel free to join in on the fun..  Will be looking that the ArchMobile stuff and incorporating what I can into my project... maybe this will help revive the ArchMobile project as well...

    If you are a new programmer then Python is a good place to start.  Install WingIDE 101 from the AUR for a good beginner's IDE for that.
    Think Python is a free book to get started with (PDF or HTML download on that page and you can buy the dead tree if you want)
    If you want to do programming that requires fast code above all else then C++ is the standard.  Code::Blocks is a good IDE for that.  Be sure to install "base-devel" and "gdb" to go along with it.
    Programming - Principles and Practice Using C++ is a dead tree book for C++, you have to buy it but that is offset by the fact that its author is also the author of the C++ language.

  • Arch Linux Rocks! A Follow Up

    A week and a half ago, I took the plunge and installed Arch 0.7.1 (Noodle). I posted a thread here on that day called "And the Odyssey Begins - First Impressions of Arch Linux".
    It is a week and a half later, and I am a confirmed believer. I have retired my previous distro (SuSE 9.3) and use Arch exclusively. Noodle is amazing. It is the FASTEST linux distribution I have ever used: fast in terms of boot time from grub prompt to full desktop and fast in terms of the speed with which applications launch and run. Everything is significantly, noticably faster than it was under SuSE on the same hardware. Truly amazing.
    But that is not all. By and large, everything I have tried on Noodle JUST WORKS! All my physical devices JUST WORK, including the usually troublesome ones like my webcam. I have had almost no issues getting everything up and running. I had a brief issue with sound (my fault - didn't add my non root user to group "audio"), but that was it.
    ...and multimedia - it all JUST WORKS. I can't tell you how much trouble I had to go to in order to get other distros to do basic stuff like play MP3s or MPGs. In Noodle, I installed XMMS, MPlayer and gxine, and all my media JUST WORKS. Again, amazing.
    ...and then there is package management. Why can't everyone have a package manager that is as simple, fast and effective as pacman? pacman is a real winner! ...not to mention the impressive selection of packages that are available. I have been able to find almost everything I normally use in the repository. The few I haven't been able to find I have been able to build from source easily, without all the usual fussing about.
    Arch is the linux I have been looking for. It is fast, stable, capable and supported by a great bunch of folks here in the forums. My hat is off to those who created and maintain this great distro, and to everyone here in the forums. I have found a new home.

    Can you expand on that? What does qpkg do?
    I had one bad experience with AUR and haven't gotten back to it yet. I followed the instructions I found somewhere (Wiki, forum, somewhere - don't remember any more), dowloaded the package, and attempted to build. My screen flooded with compile errors and I just gave up - I figured that if I had to fight with compile errors, I might as well do it with the good 'ol
    ./configure, make, make install
    route, rather than adding the complexity of a (to me) unknown build system on top of it. So far, I haven't needed to go back. Arch is *so* good (i.e. follows normal standards, everything is where it should be) that pretty much everything I have tried to build from source the usual way has worked like a champ.
    I think it was qamix that I was trying to build this way, by the way. Eventually I built it myself from source via the ./configure, make, make install route. There were *lots* of compile errors this way too, but I fixed them all and got it to build. Perhaps the version in AUR was suffering from the same problems.
    If qpkg is in AUR, and it sounds interesting, perhaps I will give this a whirl again.
    Meantime, to get back on topic for a moment, it is a few weeks later now since my Arch install, and I remain incredibly impressed with it. The best part is the speed. I feel like I've gotten a new CPU that is twice as fast. Arch not only ROCKS, it RACES!

  • Arch Linux Pacman Proxy Script

    Since my Arch box has no internet connection (yes, I'm that much of a masochist), I wrote a bash script to act as a proxy of sorts for pacman, at least as regards downloading. It took a while to get it working (intermittent web access and all) but here it finally is, as promised.
    It works well for me, and I only hope that it will help anyone else in the same situation (if there is anyone else in the same situation).
    The script has various options to explain everything you need to know, but here's a quick word of warning: it only works on POSIX-compatible computers (i.e. no Wintendows, usually) and the proxy box needs to have bash, wget, tar, grep and sed installed. I don't see this as being a problem, but if I'm wrong, tell me all about it.
    #!/bin/bash
    readonly VER="2.1"
    readonly wgetVER=`wget -V|sed '1!d'`
    # DEBUG levels:
    # Set to 0 for ALERT-level messages only
    # Set to 1 for INFO-level messages (I prefer this)
    # Set to 2 for DEBUG-level messages
    # Set to 3 for all messages
    readonly DEBUG=0
    # Set DEBUGLOG=1 to print ALERT, INFO and DEBUG messages to DEBUG.log
    readonly DEBUGLOG=0
    readonly COLOUR=true
    if [[ $COLOUR == true ]] ; then
    readonly red='\e[31m'
    readonly warn='\e[31;7m '
    readonly green='\e[32m'
    readonly lgreen='\e[32;1m'
    readonly yellow='\e[33;1m'
    readonly lblue='\e[34;1m'
    readonly dull='\e[0m' ; fi
    # Sticky details:
    # tar seems very slow (vfat? transform? USB?)
    function bugspray {
    [[ -z $2 ]] && verbosity=1 || verbosity=$2
    if (( DEBUG >= verbosity )) ; then
    (( $2 == 0 )) && intro="${warn}ALERT${dull} | "
    (( $2 == 1 )) && intro=" INFO | "
    (( $2 > 1 )) && intro=" ${yellow}DEBUG${dull} | "
    echo -e "$intro$1"
    (( DEBUGLOG == 1 )) && echo "`date +%F_%T` | $1">>log-alpps/DEBUG.log ; fi ; }
    function compare_versions {
    # Requires two ordinary, untweaked version strings, first local, second distant
    if [[ -z $2 ]] ; then
    bugspray "compare_versions didn't receive two variables." 2 ; fi
    update='no'
    [[ -z $2 ]] && return
    local localversion=(`echo $1|sed -r 's/([[:alpha:]]+)/ \1 /g;s/[\.:~_-]/ /g'`)
    local distantversion=(`echo $2|sed -r 's/([[:alpha:]]+)/ \1 /g;s/[\.:~_-]/ /g'`)
    local max=$((${#distantversion[*]}))
    bugspray "localversion: ${localversion[*]}; distantversion: ${distantversion[*]}" 2
    for (( x=0 ; (( x < $max )) ; $((x++)) )) ; do
    bugspray "local version part: `echo ${localversion[$x]}` | distant version part: `echo ${distantversion[$x]}`" 2
    if [[ `echo ${localversion[$x]}|grep -E '^[0-9]*$'` && `echo ${distantversion[$x]}|grep -E '^[0-9]*$'` ]] ; then
    bugspray "Numerical comparison" 2
    bugspray "localver (${localversion[$x]}) less than distantver (${distantversion[$x]}): $(( 10#${localversion[$x]} < 10#${distantversion[$x]} ))" 3
    # Different compare methods for numbers, single letters and multiple letters.
    if (( 10#${localversion[$x]} < 10#${distantversion[$x]} )) ; then
    update='yes'
    break ; fi ; fi
    if [[ `echo ${localversion[$x]}|grep -E '^[[:alpha:]]$'` && `echo ${distantversion[$x]}|grep -E '^[[:alpha:]]$'` ]] ; then # single letter -> compare
    bugspray "Lexicographical comparison" 2
    bugspray "localver (${localversion[$x]}) less than distantver (${distantversion[$x]}): [[ ${localversion[$x]} < ${distantversion[$x]} ]]" 3
    if [[ ${localversion[$x]} < ${distantversion[$x]} ]] ; then
    update='yes'
    break ; fi ; fi
    if [[ `echo ${localversion[$x]}|grep -E '^[[:alpha:]]+$'` && `echo ${distantversion[$x]}|grep -E '^[[:alpha:]]+$'` ]] ; then # string -> drop
    # cvs / git / beta -> what are the rules?
    bugspray "Sequence of letters. Not treating as version number." 2 ; fi
    done ; }
    function find_dependencies {
    # Determine existence via unique path
    bugspray "+ ${lgreen}Building download list for package \"$1\"${dull}" 1
    local packagename
    local dlfile
    local package_found=no
    if [[ `ls .temp-alpps/*.db/$1-* 2>/dev/null` ]] ; then
    bugspray "Analogous package-name file(s) found" 2
    for x in `ls .temp-alpps/*.db/$1-*/desc` ; do
    bugspray "Checking $x" 2
    packagename=`sed -r '/%NAME%/,+1!d;/%NAME%/d' $x`
    if [[ j$packagename == j$1 ]] ; then
    bugspray "Exact match found: $packagename = $1" 2
    dlfile=`sed '/%FILENAME%/,+1!d;/%FILENAME%/d' $x`
    local distantversion=`sed '/%VERSION%/,+1!d;/%VERSION%/d' $x`
    local package_full=$packagename-$distantversion
    local the_repo=`echo $x|sed -r 's/.temp-alpps\/(.*)\.db.*/\1/'`
    local the_path=`echo $x|sed -r 's/desc//'`
    unplus=`echo $packagename|sed 's/\+/\\\+/g'`
    local local_version=`sed -r '/^'$unplus' /!d;s/.* //' .temp-alpps/snapshot.state`
    package_found=yes
    break ; fi ; done ; fi
    if [[ -z $dlfile ]] ; then
    bugspray "Exact match not found -> looking for replacements." 2
    if ! [[ -z `grep $1 .temp-alpps/*.db/*/depends` ]] ; then
    local provisional=`grep $1 .temp-alpps/*.db/*/depends|sed -r 's/\/depends.*//'`
    for package in $provisional ; do
    local providence=`sed -r '/%PROVIDES%/,/^$/!d;/%PROVIDES%/d;/^$/d;s/>.*//;s/=.*//' $package/depends`
    for y in $providence ; do
    if [[ j$y == j$1 ]] ; then
    # But what about when several packages provide the same thing and ALPPS picks the wrong one? Can it happen?
    local newdep=`sed -r '/%NAME%/,+1!d;/%NAME%/d' $package/desc`
    bugspray " -> Package \"$newdep\" provides \"$1\"." 1
    find_dependencies $newdep
    break 2 ; fi ; done ; done
    if [[ -z $newdep ]] ; then
    bugspray "${warn}Warning:${dull} package \"$1\" not found in database." 0 ; fi ; fi ; fi
    bugspray "package: $1 | package_found = $package_found" 2
    # Add file to download_list if not up to date and if not already present
    if [[ j$package_found == jyes ]] ; then
    local already_got_one=no
    unplus=`echo $dlfile|sed 's/\+/\\\+/g'`
    [[ `echo $download_files|grep $unplus` ]] && already_got_one="yes" && bugspray "${green}Package in queue${dull}" 1
    [[ `ls downloads/$dlfile 2>/dev/null` ]] && already_got_one="yes" && bugspray "${green}Package proxied${dull}" 1
    compare_versions $local_version $distantversion
    bugspray "compare_versions says: $update" 2
    ! [[ -z $local_version || $update == yes ]] && already_got_one="yes" && bugspray "${green}Package already installed and up-to-date${dull}" 1
    if [[ j$already_got_one != jyes ]] ; then
    bugspray "${green}Confirm downloading${dull}" 1
    download_files+="$dlfile "
    download_array[${dlfile}]=$the_repo
    bugspray "Checking for further dependencies" 2
    if [[ -a $the_path/depends && `grep -E '^%DEPENDS%$' $the_path/depends` ]] ; then
    local dependency=`sed -r '/%DEPENDS%/d;/^$/q' $the_path/depends`
    bugspray "Dependencies of \"$packagename\":$dependency" 3
    for x in $dependency ; do
    # Is this dependency already installed? Sort-of the same as higher up; it just saves time here.
    local depname=`echo $x|sed -r 's/>.*//;s/=.*//'`
    local depminver=`echo $x|sed -r 's/.*>//'`
    bugspray "Dependency name: \"$depname\"" 2
    if ! [[ `grep -E '^$depname ' .temp-alpps/snapshot.state` ]] ; then
    find_dependencies $depname ; fi ; done
    else
    bugspray "${lblue}End of the line${dull}: package \"$packagename\" has no dependencies." 2
    true ; fi ; fi ; fi ; }
    function failover_fetch {
    echo "Downloading `echo $1|sed 's/.*\///'`"
    [[ -d log-alpps/ ]] || mkdir log-alpps/
    [[ -z $success ]] || unset success
    for mirror in $(<.temp-alpps/snapshot.mirrorlist) ; do
    # If DEBUG>0, shouldn't redirect output
    url=`echo $mirror|sed 's/$arch/'$arch'/;s/$repo/'${download_array[$1]}'/'`/$1
    bugspray "Connecting to $url" 2
    wget -o .temp-alpps/very-temp-log -U "Arch Linux Pacman Proxy Script version $VER / $wgetVER" -P downloads/ $url && success=true
    cat .temp-alpps/very-temp-log>>log-alpps/download.log
    rm -f .temp-alpps/very-temp-log
    if [[ -n $success ]] ; then
    bugspray "Download: \$success = true" 2
    break ; fi ; done
    if [[ -z $success ]] ; then
    bugspray "${warn}FAIL:${dull} $1 not accessible on known mirrors." 0 ; fi ; }
    case $1 in
    warranty)
    echo
    echo -e " ${green}Warranty${dull}"
    echo -e " ${green}========${dull}"
    echo " This program is free software. It comes without any warranty, to"
    echo " the extent permitted by applicable law. You can redistribute it"
    echo " and/or modify it under the terms of the Do What The Fuck You Want"
    echo " To Public License, Version 2, as published by Sam Hocevar. See"
    echo " http://sam.zoy.org/wtfpl/COPYING for more details."
    echo
    howto)
    echo
    echo -e " ${green}How to use ALPPS${dull}"
    echo -e " ${green}================${dull}"
    echo -e " ${yellow}+ Step 0${dull}: prime the engine"
    echo " On your offline box, copy the ALPPS script onto a removable medium, cd into"
    echo " it's directory, then run it with the \"init\" option. This essentially"
    echo " takes a snapshot of your system, package-wise. Your removable medium is"
    echo " now ready for use!"
    echo -e " ${yellow}+ Step 1${dull}:"
    echo " On the proxy box the first order of business is to download and decompress"
    echo " the current package lists. You can do this with the \"fetchdb\" option."
    echo -e " ${yellow}+ Step 1 alt${dull}:"
    echo " If you want to download the package lists without decompressing them,"
    echo " \"fetchdb simple\" will do this. It's a lot quicker, but please keep"
    echo " in mind that you cannot then do anything in step 2."
    echo -e " ${yellow}+ Step 2${dull}:"
    echo " If you want to download packages (and why wouldn't you?), the easiest way"
    echo " is to prepare a simple text file containing the names of the packages you"
    echo " want, one on each line. Run ALPPS with the option \"fetch <filename>\" and"
    echo " sit back and wait until it's done. Don't worry about dependencies: ALPPS"
    echo " handles them automatically."
    echo -e " ${yellow}+ Step 2 alt${dull}:"
    echo " As a convenience, \"fetch full\" will download all the packages needed to"
    echo " update the offline box."
    echo -e " ${yellow}+ Step 3${dull}:"
    echo " Finally, back on your offline box, run ALPPS again with the \"install\""
    echo " option. This will update the package list and copy the package files into"
    echo " local cache. You can now run \"pacman -S <package names>\" to finish"
    echo " installing the packages."
    # ALPPS no longer installs the packages, just caches them locally.
    # Not entirely sure why; it just felt too klutzy.
    echo -e " ${yellow}+ Step 4${dull}:"
    echo " You will now probably want to delete all the stuff you no longer need. Run"
    echo " ALPPS with the option \"clean\". This won't touch your request file(s). It"
    echo -e " ${red}WILL${dull} delete log files, so if you want to keep them, back them up first."
    echo " Next time you do this, don't forget to run ALPPS with \"init\" again."
    echo
    bugs)
    echo
    echo -e " ${green}Where this goes wrong${dull}"
    echo -e " ${green}=====================${dull}"
    echo " + ALPPS is a bit slow when packages have many dependencies. It's a recursive"
    echo " shell script: what did you expect?"
    echo " + It only uses the settings in /etc/pacman.conf. If your conf file is"
    echo " elsewhere, you're SOL. Similarly, the repositories are all taken from"
    echo " /etc/pacman.d/mirrorlist. If you added any custom repositories in"
    echo " /etc/pacman.conf (or any other file), ALPPS ignores them."
    echo " + As it stands, ALPPS only works when the proxy box has bash, wget, sed,"
    echo " grep and tar installed. The offline box needs bash, pacman and sed (in"
    echo " theory, this shouldn't be a problem...)."
    echo " + There is as yet no way of handling package groups, short of listing every"
    echo " member of the group."
    echo " + I don't think ALPPS will ever be able to handle AUR packages. Of course, if"
    echo " you're compiling AUR packages, you probably won't need something like this!"
    echo
    faq)
    echo
    echo -e " ${green}Frequently Asked Questions${dull}"
    echo -e " ${green}==========================${dull}"
    echo
    echo -e " ${red}Q:${dull} Can I run the whole thing off a USB stick?"
    echo -e " ${lblue}A:${dull} Certainly."
    echo
    echo -e " ${red}Q:${dull} Can I use a non-POSIX computer as a proxy (e.g. Windows)?"
    echo -e " ${lblue}A:${dull} Probably not, unless that computer has a POSIX-compatibility layer"
    echo " installed (such as Cygwin) with bash, wget, tar, sed and grep."
    echo
    echo -e " ${red}Q:${dull} Do I need to download the package list, waste time updating my computer,"
    echo " then go back again to download the packages I want?"
    echo -e " ${lblue}A:${dull} Nope! You can update the packagelist database and download piping-hot"
    echo " fresh packages, all in one sitting."
    echo -e " ${red}Q:${dull} You mean I won't have to futz around with package lists that keep updating"
    echo " ten minutes after I download them?"
    echo -e " ${lblue}A:${dull} Exactly. Nice, isn't it?"
    echo
    echo -e " ${red}Q:${dull} Does this thing handle SSL and signed packages?"
    echo -e " ${lblue}A:${dull} ALPPS uses SSL if:"
    echo " - the mirror has an https address (at present, none do), and"
    echo " - wget on the proxy box is compiled with SSL support"
    echo " Concerning signed packages: no, but then again, it doesn't need to. ALPPS"
    echo " downloads packages; it's pacman's responsibility to verify them. Your"
    echo " system remains safe (or as safe as it ever was, at any rate)."
    echo -e " ${red}Q:${dull} What about gpg keys? I need to get them."
    echo -e " ${lblue}A:${dull} ...maybe later, say, in version 3."
    echo
    echo -e " ${red}Q:${dull} ALPPS says it \`prepares databases´. Can pacman still use them after this?"
    echo -e " ${lblue}A:${dull} Yes, it can. In fact, what ALPPS does is extract the databases into a"
    echo " temp directory, without altering the original .db files."
    echo
    echo -e " ${red}Q:${dull} Where can I contact you?"
    echo -e " ${lblue}A:${dull} For constructive, useful questions and comments: [email protected] and"
    echo " be sure to mention Arch Linux in the subject."
    echo " For flames, trolling, spam and the like, visit your local bitbucket."
    echo
    todo)
    echo
    echo -e " ${green}What's next?${dull}"
    echo -e " ${green}============${dull}"
    echo -e " + I ${red}might${dull} be able to extend the reach of this thing to the AUR."
    echo " Yes, I know I said ALPPS couldn't (in \"bugs\"), but I've learned"
    echo " something new since then. It'll be tricky, though, since the AUR web"
    echo " interface delivers results in python. While this should be a Good Thing,"
    echo " bash isn't very good at handling python-format lists and dicts."
    echo
    -v|ver|version|--ver|--version)
    echo -e "${lgreen}Arch Linux pacman proxy script${dull} | ${yellow}version $VER${dull}"
    dl_list) # Debugging
    (( DEBUG == 0 )) && echo "the \"dl_list\" option is only for debugging" && exit 0
    arch=$(<.temp-alpps/snapshot.architecture)
    unset download_files
    unset download_array
    declare -A download_array
    find_dependencies $2
    bugspray "Download list: $download_files" 3
    echo "Download list v2:"
    for x in $download_files ; do
    bugspray " File \"$x\" from repo \"${download_array[$x]}\"" 3
    echo " Full URL: http://mirror.archlinux.org/${download_array[$x]}/os/$arch/$x" ; done
    verint) # Debugging
    (( DEBUG == 0 )) && echo "the \"verint\" option is only for debugging" && exit 0
    for x in `ls .temp-alpps/*/$2-*/desc` ; do
    packagename=`sed -r '/%NAME%/,+1!d;/%NAME%/d' $x`
    if [[ j$packagename == j$2 ]] ; then
    bugspray "Unique package-name file found: $packagename=$2" 2
    distantversion=`sed '/%VERSION%/,+1!d;/%VERSION%/d' $x`
    dlfile=`sed '/%FILENAME%/,+1!d;/%FILENAME%/d' $x`
    package_full=$packagename-$distantversion
    the_repo=`echo $x|sed -r 's/.temp-alpps\/(.*)\.db.*/\1/'`
    the_path=`echo $x|sed -r 's/desc//'`
    local_version=`sed -r '/^'$packagename' /!d;s/.* //' .temp-alpps/snapshot.state`
    break ; fi ; done
    echo "full package filename: $dlfile"
    echo "Comparing local ($local_version) and distant ($distantversion) versions of $2..."
    compare_versions $local_version $distantversion
    #compare_versions 2.5beta3-2 2.5cvs4-1
    echo "...and the verdict is: $update"
    init)
    x=`uname -m`
    if [[ -x /usr/bin/pacman ]] ; then
    [[ -d .temp-alpps ]] || mkdir .temp-alpps/
    pacman -Q>.temp-alpps/snapshot.state
    sed -r '/^Se/!d;s/Server = //' /etc/pacman.d/mirrorlist>.temp-alpps/snapshot.mirrorlist
    sed -r '/^\[/!d;/options/d;s/\[(.*)\]/\1/' /etc/pacman.conf>.temp-alpps/snapshot.repositories
    sed -r '/^Architecture/!d;s/^.*= //' /etc/pacman.conf>.temp-alpps/snapshot.architecture
    [[ ! -s .temp-alpps/snapshot.architecture || auto == $(<.temp-alpps/snapshot.architecture) ]] && $x>.temp-alpps/snapshot.architecture
    sed -r '/^SyncFirst/!d;s/.*= //;s/ /\n/g' /etc/pacman.conf>.temp-alpps/snapshot.prioritypackages
    echo "Current state recorded."
    else
    echo "You seem to be running ALPPs on an unsupported system."
    echo "ALPPS is the ${lgreen}Arch Linux Pacman Proxy Script${dull} and simply"
    echo "won't run properly on a non-pacman OS (except when proxying)."
    echo "Aborting. Sorry."
    exit 1 ; fi
    fetchdb)
    [[ -d downloads ]] || mkdir downloads
    arch=$(<.temp-alpps/snapshot.architecture)
    declare -A download_array
    for repo in $(<.temp-alpps/snapshot.repositories) ; do
    download_array[${repo}.db]=$repo
    location="${repo}.db"
    failover_fetch $location ; done
    if [[ j$2 != jsimple ]] ; then
    [[ -d log-alpps ]] || mkdir log-alpps
    [[ -a syncfirst ]] && rm -f syncfirst
    echo "Preparing databases for local processing. This might take a while."
    for x in $(<.temp-alpps/snapshot.repositories) ; do
    echo "Preparing $x.db"
    if [[ -a downloads/$x.db ]] ; then
    [[ -d .temp-alpps/$x.db ]] || mkdir .temp-alpps/$x.db/
    tar -xzC .temp-alpps/$x.db/ -f downloads/$x.db --transform 's/:/§/' --no-same-owner && echo "$x database ready for use."
    else
    echo -e "Database $x.db is missing. Skipping. This will probably cause problems." ; fi ; done
    # SyncFirst package warning
    [[ -z $download_list ]] || unset download_list
    [[ -a syncfirst ]] && rm -f syncfirst
    for x in $(<.temp-alpps/snapshot.prioritypackages) ; do
    find_dependencies $x ; done
    bugspray "download_files: $download_files" 2
    if [[ ! -z $download_files ]] ; then
    echo "New version(s) of SyncFirst package(s):"
    for x in $(<.temp-alpps/snapshot.prioritypackages) ; do
    [[ ! -z `echo $download_files|grep $x` ]] && echo "- $x" && echo $x>>syncfirst ; done
    echo "Package names placed in 'syncfirst'. Don't forget to download them!" ; fi ; fi
    fetch)
    for x in $(<.temp-alpps/snapshot.repositories) ; do
    if ! [[ -d .temp-alpps/$x.db/ ]] ; then
    bugspray "You must first download a fresh database with the \"fetchdb\" option" 0
    exit 1 ; fi ; done
    arch=$(<.temp-alpps/snapshot.architecture)
    unset download_array
    declare -A download_array
    unset download_files
    if [[ $2 == full ]] ; then
    echo " Building full upgrade list. This will almost certainly take a while."
    echo " Please wait..."
    for y in `sed -r 's/^(.*) .*/\1/' .temp-alpps/snapshot.state` ; do
    bugspray "Examining $y" 1
    find_dependencies $y ; done
    elif [[ -a $2 ]] ; then
    echo " Determining dependencies. This might take a while. Please wait."
    for y in $(<$2) ; do
    bugspray "Examining $y" 1
    find_dependencies $y ; done
    else
    echo " Error: you should provide a list-file or the keyword \"full\"."
    echo " (see 'alpps.sh howto', step 2)"
    exit 1 ; fi
    if [[ -z $download_files ]] ; then
    echo " No files to download: either none found, or all found are up to date."
    else
    [[ -d downloads ]] || mkdir downloads
    for x in $download_files ; do
    failover_fetch $x ; done ; fi
    install)
    dbpath=`sed -r '/^DBPath/!d;s/^.*= //' /etc/pacman.conf`
    [[ -z $dbpath ]] && dbpath="/var/lib/pacman/"
    bugspray "dbpath: $dbpath" 2
    echo " Updating databases"
    cp -ft ${dbpath}sync/ downloads/*.db
    cachedir=`sed -r '/^CacheDir/!d;s/^.*= //' /etc/pacman.conf`
    [[ -z $cachedir ]] && cachedir="/var/cache/pacman/pkg/"
    echo " Caching packages"
    cp -f downloads/*.pkg.tar.xz $cachedir
    echo
    echo " Don't forget to install/update your packages."
    echo " Exercise proper caution."
    echo " Have fun!"
    clean)
    echo "Cleaning up. This might take a while."
    rm -fr .temp-alpps/ && echo "Buffer directory deleted" || echo "Problem deleting buffer directory '.temp-alpps/'"
    rm -fr log-alpps/ && echo "Log directory deleted" || echo "Problem deleting 'log-alpps/'"
    rm -fr downloads/ && echo "Downloaded packages deleted" || echo "Problem deleting 'downloads/'"
    echo
    echo -e " ${lgreen}Arch Linux pacman proxy script${dull}"
    echo
    echo -e " ${green}Description${dull}"
    echo -e " ${green}===========${dull}"
    echo -e " This is a bash script to fetch and install packages for an offline Arch box"
    echo " using another, online box as a proxy of sorts. So far, this only works if"
    echo " the proxy box has bash, wget, tar, sed and grep installed."
    echo " It's probably also entirely unsafe, incompatible and will destroy your box"
    echo " in a fiery blaze if you try to use it (you know the drill)."
    echo
    echo -e " ${green}Options${dull}"
    echo -e " ${green}=======${dull}"
    echo " init Step 0 (as it were): take a snapshot of your system"
    echo " fetchdb Step 1: download the packagelist database"
    echo " fetch <file> Step 2: download requested packages"
    echo " install Step 3: update your system"
    echo " clean Step 4: delete any unneeded files"
    echo
    echo " howto More detailed instructions"
    echo " bugs Problems and future plans"
    echo " faq As it says"
    echo " warranty (in case it ever becomes necessary)"
    echo " version (to be honest, I wasn't expecting to go beyond v1-rc or so)"
    echo " help You're reading it, doofus :^)"
    echo
    # dl_list Test the find_dependencies function"
    # verint Test the compare_versions function"
    esac

    AnimaInvicta wrote:
    Since my Arch box has no internet connection (yes, I'm that much of a masochist), I wrote a bash script to act as a proxy of sorts for pacman, at least as regards downloading. It took a while to get it working (intermittent web access and all) but here it finally is, as promised.
    It works well for me, and I only hope that it will help anyone else in the same situation (if there is anyone else in the same situation).
    The script has various options to explain everything you need to know, but here's a quick word of warning: it only works on POSIX-compatible computers (i.e. no Wintendows, usually) and the proxy box needs to have bash, wget, tar, grep and sed installed. I don't see this as being a problem, but if I'm wrong, tell me all about it.
    #!/bin/bash
    readonly VER="2.1"
    readonly wgetVER=`wget -V|sed '1!d'`
    # DEBUG levels:
    # Set to 0 for ALERT-level messages only
    # Set to 1 for INFO-level messages (I prefer this)
    # Set to 2 for DEBUG-level messages
    # Set to 3 for all messages
    readonly DEBUG=0
    # Set DEBUGLOG=1 to print ALERT, INFO and DEBUG messages to DEBUG.log
    readonly DEBUGLOG=0
    readonly COLOUR=true
    if [[ $COLOUR == true ]] ; then
    readonly red='\e[31m'
    readonly warn='\e[31;7m '
    readonly green='\e[32m'
    readonly lgreen='\e[32;1m'
    readonly yellow='\e[33;1m'
    readonly lblue='\e[34;1m'
    readonly dull='\e[0m' ; fi
    # Sticky details:
    # tar seems very slow (vfat? transform? USB?)
    function bugspray {
    [[ -z $2 ]] && verbosity=1 || verbosity=$2
    if (( DEBUG >= verbosity )) ; then
    (( $2 == 0 )) && intro="${warn}ALERT${dull} | "
    (( $2 == 1 )) && intro=" INFO | "
    (( $2 > 1 )) && intro=" ${yellow}DEBUG${dull} | "
    echo -e "$intro$1"
    (( DEBUGLOG == 1 )) && echo "`date +%F_%T` | $1">>log-alpps/DEBUG.log ; fi ; }
    function compare_versions {
    # Requires two ordinary, untweaked version strings, first local, second distant
    if [[ -z $2 ]] ; then
    bugspray "compare_versions didn't receive two variables." 2 ; fi
    update='no'
    [[ -z $2 ]] && return
    local localversion=(`echo $1|sed -r 's/([[:alpha:]]+)/ \1 /g;s/[\.:~_-]/ /g'`)
    local distantversion=(`echo $2|sed -r 's/([[:alpha:]]+)/ \1 /g;s/[\.:~_-]/ /g'`)
    local max=$((${#distantversion[*]}))
    bugspray "localversion: ${localversion[*]}; distantversion: ${distantversion[*]}" 2
    for (( x=0 ; (( x < $max )) ; $((x++)) )) ; do
    bugspray "local version part: `echo ${localversion[$x]}` | distant version part: `echo ${distantversion[$x]}`" 2
    if [[ `echo ${localversion[$x]}|grep -E '^[0-9]*$'` && `echo ${distantversion[$x]}|grep -E '^[0-9]*$'` ]] ; then
    bugspray "Numerical comparison" 2
    bugspray "localver (${localversion[$x]}) less than distantver (${distantversion[$x]}): $(( 10#${localversion[$x]} < 10#${distantversion[$x]} ))" 3
    # Different compare methods for numbers, single letters and multiple letters.
    if (( 10#${localversion[$x]} < 10#${distantversion[$x]} )) ; then
    update='yes'
    break ; fi ; fi
    if [[ `echo ${localversion[$x]}|grep -E '^[[:alpha:]]$'` && `echo ${distantversion[$x]}|grep -E '^[[:alpha:]]$'` ]] ; then # single letter -> compare
    bugspray "Lexicographical comparison" 2
    bugspray "localver (${localversion[$x]}) less than distantver (${distantversion[$x]}): [[ ${localversion[$x]} < ${distantversion[$x]} ]]" 3
    if [[ ${localversion[$x]} < ${distantversion[$x]} ]] ; then
    update='yes'
    break ; fi ; fi
    if [[ `echo ${localversion[$x]}|grep -E '^[[:alpha:]]+$'` && `echo ${distantversion[$x]}|grep -E '^[[:alpha:]]+$'` ]] ; then # string -> drop
    # cvs / git / beta -> what are the rules?
    bugspray "Sequence of letters. Not treating as version number." 2 ; fi
    done ; }
    function find_dependencies {
    # Determine existence via unique path
    bugspray "+ ${lgreen}Building download list for package \"$1\"${dull}" 1
    local packagename
    local dlfile
    local package_found=no
    if [[ `ls .temp-alpps/*.db/$1-* 2>/dev/null` ]] ; then
    bugspray "Analogous package-name file(s) found" 2
    for x in `ls .temp-alpps/*.db/$1-*/desc` ; do
    bugspray "Checking $x" 2
    packagename=`sed -r '/%NAME%/,+1!d;/%NAME%/d' $x`
    if [[ j$packagename == j$1 ]] ; then
    bugspray "Exact match found: $packagename = $1" 2
    dlfile=`sed '/%FILENAME%/,+1!d;/%FILENAME%/d' $x`
    local distantversion=`sed '/%VERSION%/,+1!d;/%VERSION%/d' $x`
    local package_full=$packagename-$distantversion
    local the_repo=`echo $x|sed -r 's/.temp-alpps\/(.*)\.db.*/\1/'`
    local the_path=`echo $x|sed -r 's/desc//'`
    unplus=`echo $packagename|sed 's/\+/\\\+/g'`
    local local_version=`sed -r '/^'$unplus' /!d;s/.* //' .temp-alpps/snapshot.state`
    package_found=yes
    break ; fi ; done ; fi
    if [[ -z $dlfile ]] ; then
    bugspray "Exact match not found -> looking for replacements." 2
    if ! [[ -z `grep $1 .temp-alpps/*.db/*/depends` ]] ; then
    local provisional=`grep $1 .temp-alpps/*.db/*/depends|sed -r 's/\/depends.*//'`
    for package in $provisional ; do
    local providence=`sed -r '/%PROVIDES%/,/^$/!d;/%PROVIDES%/d;/^$/d;s/>.*//;s/=.*//' $package/depends`
    for y in $providence ; do
    if [[ j$y == j$1 ]] ; then
    # But what about when several packages provide the same thing and ALPPS picks the wrong one? Can it happen?
    local newdep=`sed -r '/%NAME%/,+1!d;/%NAME%/d' $package/desc`
    bugspray " -> Package \"$newdep\" provides \"$1\"." 1
    find_dependencies $newdep
    break 2 ; fi ; done ; done
    if [[ -z $newdep ]] ; then
    bugspray "${warn}Warning:${dull} package \"$1\" not found in database." 0 ; fi ; fi ; fi
    bugspray "package: $1 | package_found = $package_found" 2
    # Add file to download_list if not up to date and if not already present
    if [[ j$package_found == jyes ]] ; then
    local already_got_one=no
    unplus=`echo $dlfile|sed 's/\+/\\\+/g'`
    [[ `echo $download_files|grep $unplus` ]] && already_got_one="yes" && bugspray "${green}Package in queue${dull}" 1
    [[ `ls downloads/$dlfile 2>/dev/null` ]] && already_got_one="yes" && bugspray "${green}Package proxied${dull}" 1
    compare_versions $local_version $distantversion
    bugspray "compare_versions says: $update" 2
    ! [[ -z $local_version || $update == yes ]] && already_got_one="yes" && bugspray "${green}Package already installed and up-to-date${dull}" 1
    if [[ j$already_got_one != jyes ]] ; then
    bugspray "${green}Confirm downloading${dull}" 1
    download_files+="$dlfile "
    download_array[${dlfile}]=$the_repo
    bugspray "Checking for further dependencies" 2
    if [[ -a $the_path/depends && `grep -E '^%DEPENDS%$' $the_path/depends` ]] ; then
    local dependency=`sed -r '/%DEPENDS%/d;/^$/q' $the_path/depends`
    bugspray "Dependencies of \"$packagename\":$dependency" 3
    for x in $dependency ; do
    # Is this dependency already installed? Sort-of the same as higher up; it just saves time here.
    local depname=`echo $x|sed -r 's/>.*//;s/=.*//'`
    local depminver=`echo $x|sed -r 's/.*>//'`
    bugspray "Dependency name: \"$depname\"" 2
    if ! [[ `grep -E '^$depname ' .temp-alpps/snapshot.state` ]] ; then
    find_dependencies $depname ; fi ; done
    else
    bugspray "${lblue}End of the line${dull}: package \"$packagename\" has no dependencies." 2
    true ; fi ; fi ; fi ; }
    function failover_fetch {
    echo "Downloading `echo $1|sed 's/.*\///'`"
    [[ -d log-alpps/ ]] || mkdir log-alpps/
    [[ -z $success ]] || unset success
    for mirror in $(<.temp-alpps/snapshot.mirrorlist) ; do
    # If DEBUG>0, shouldn't redirect output
    url=`echo $mirror|sed 's/$arch/'$arch'/;s/$repo/'${download_array[$1]}'/'`/$1
    bugspray "Connecting to $url" 2
    wget -o .temp-alpps/very-temp-log -U "Arch Linux Pacman Proxy Script version $VER / $wgetVER" -P downloads/ $url && success=true
    cat .temp-alpps/very-temp-log>>log-alpps/download.log
    rm -f .temp-alpps/very-temp-log
    if [[ -n $success ]] ; then
    bugspray "Download: \$success = true" 2
    break ; fi ; done
    if [[ -z $success ]] ; then
    bugspray "${warn}FAIL:${dull} $1 not accessible on known mirrors." 0 ; fi ; }
    case $1 in
    warranty)
    echo
    echo -e " ${green}Warranty${dull}"
    echo -e " ${green}========${dull}"
    echo " This program is free software. It comes without any warranty, to"
    echo " the extent permitted by applicable law. You can redistribute it"
    echo " and/or modify it under the terms of the Do What The Fuck You Want"
    echo " To Public License, Version 2, as published by Sam Hocevar. See"
    echo " http://sam.zoy.org/wtfpl/COPYING for more details."
    echo
    howto)
    echo
    echo -e " ${green}How to use ALPPS${dull}"
    echo -e " ${green}================${dull}"
    echo -e " ${yellow}+ Step 0${dull}: prime the engine"
    echo " On your offline box, copy the ALPPS script onto a removable medium, cd into"
    echo " it's directory, then run it with the \"init\" option. This essentially"
    echo " takes a snapshot of your system, package-wise. Your removable medium is"
    echo " now ready for use!"
    echo -e " ${yellow}+ Step 1${dull}:"
    echo " On the proxy box the first order of business is to download and decompress"
    echo " the current package lists. You can do this with the \"fetchdb\" option."
    echo -e " ${yellow}+ Step 1 alt${dull}:"
    echo " If you want to download the package lists without decompressing them,"
    echo " \"fetchdb simple\" will do this. It's a lot quicker, but please keep"
    echo " in mind that you cannot then do anything in step 2."
    echo -e " ${yellow}+ Step 2${dull}:"
    echo " If you want to download packages (and why wouldn't you?), the easiest way"
    echo " is to prepare a simple text file containing the names of the packages you"
    echo " want, one on each line. Run ALPPS with the option \"fetch <filename>\" and"
    echo " sit back and wait until it's done. Don't worry about dependencies: ALPPS"
    echo " handles them automatically."
    echo -e " ${yellow}+ Step 2 alt${dull}:"
    echo " As a convenience, \"fetch full\" will download all the packages needed to"
    echo " update the offline box."
    echo -e " ${yellow}+ Step 3${dull}:"
    echo " Finally, back on your offline box, run ALPPS again with the \"install\""
    echo " option. This will update the package list and copy the package files into"
    echo " local cache. You can now run \"pacman -S <package names>\" to finish"
    echo " installing the packages."
    # ALPPS no longer installs the packages, just caches them locally.
    # Not entirely sure why; it just felt too klutzy.
    echo -e " ${yellow}+ Step 4${dull}:"
    echo " You will now probably want to delete all the stuff you no longer need. Run"
    echo " ALPPS with the option \"clean\". This won't touch your request file(s). It"
    echo -e " ${red}WILL${dull} delete log files, so if you want to keep them, back them up first."
    echo " Next time you do this, don't forget to run ALPPS with \"init\" again."
    echo
    bugs)
    echo
    echo -e " ${green}Where this goes wrong${dull}"
    echo -e " ${green}=====================${dull}"
    echo " + ALPPS is a bit slow when packages have many dependencies. It's a recursive"
    echo " shell script: what did you expect?"
    echo " + It only uses the settings in /etc/pacman.conf. If your conf file is"
    echo " elsewhere, you're SOL. Similarly, the repositories are all taken from"
    echo " /etc/pacman.d/mirrorlist. If you added any custom repositories in"
    echo " /etc/pacman.conf (or any other file), ALPPS ignores them."
    echo " + As it stands, ALPPS only works when the proxy box has bash, wget, sed,"
    echo " grep and tar installed. The offline box needs bash, pacman and sed (in"
    echo " theory, this shouldn't be a problem...)."
    echo " + There is as yet no way of handling package groups, short of listing every"
    echo " member of the group."
    echo " + I don't think ALPPS will ever be able to handle AUR packages. Of course, if"
    echo " you're compiling AUR packages, you probably won't need something like this!"
    echo
    faq)
    echo
    echo -e " ${green}Frequently Asked Questions${dull}"
    echo -e " ${green}==========================${dull}"
    echo
    echo -e " ${red}Q:${dull} Can I run the whole thing off a USB stick?"
    echo -e " ${lblue}A:${dull} Certainly."
    echo
    echo -e " ${red}Q:${dull} Can I use a non-POSIX computer as a proxy (e.g. Windows)?"
    echo -e " ${lblue}A:${dull} Probably not, unless that computer has a POSIX-compatibility layer"
    echo " installed (such as Cygwin) with bash, wget, tar, sed and grep."
    echo
    echo -e " ${red}Q:${dull} Do I need to download the package list, waste time updating my computer,"
    echo " then go back again to download the packages I want?"
    echo -e " ${lblue}A:${dull} Nope! You can update the packagelist database and download piping-hot"
    echo " fresh packages, all in one sitting."
    echo -e " ${red}Q:${dull} You mean I won't have to futz around with package lists that keep updating"
    echo " ten minutes after I download them?"
    echo -e " ${lblue}A:${dull} Exactly. Nice, isn't it?"
    echo
    echo -e " ${red}Q:${dull} Does this thing handle SSL and signed packages?"
    echo -e " ${lblue}A:${dull} ALPPS uses SSL if:"
    echo " - the mirror has an https address (at present, none do), and"
    echo " - wget on the proxy box is compiled with SSL support"
    echo " Concerning signed packages: no, but then again, it doesn't need to. ALPPS"
    echo " downloads packages; it's pacman's responsibility to verify them. Your"
    echo " system remains safe (or as safe as it ever was, at any rate)."
    echo -e " ${red}Q:${dull} What about gpg keys? I need to get them."
    echo -e " ${lblue}A:${dull} ...maybe later, say, in version 3."
    echo
    echo -e " ${red}Q:${dull} ALPPS says it \`prepares databases´. Can pacman still use them after this?"
    echo -e " ${lblue}A:${dull} Yes, it can. In fact, what ALPPS does is extract the databases into a"
    echo " temp directory, without altering the original .db files."
    echo
    echo -e " ${red}Q:${dull} Where can I contact you?"
    echo -e " ${lblue}A:${dull} For constructive, useful questions and comments: [email protected] and"
    echo " be sure to mention Arch Linux in the subject."
    echo " For flames, trolling, spam and the like, visit your local bitbucket."
    echo
    todo)
    echo
    echo -e " ${green}What's next?${dull}"
    echo -e " ${green}============${dull}"
    echo -e " + I ${red}might${dull} be able to extend the reach of this thing to the AUR."
    echo " Yes, I know I said ALPPS couldn't (in \"bugs\"), but I've learned"
    echo " something new since then. It'll be tricky, though, since the AUR web"
    echo " interface delivers results in python. While this should be a Good Thing,"
    echo " bash isn't very good at handling python-format lists and dicts."
    echo
    -v|ver|version|--ver|--version)
    echo -e "${lgreen}Arch Linux pacman proxy script${dull} | ${yellow}version $VER${dull}"
    dl_list) # Debugging
    (( DEBUG == 0 )) && echo "the \"dl_list\" option is only for debugging" && exit 0
    arch=$(<.temp-alpps/snapshot.architecture)
    unset download_files
    unset download_array
    declare -A download_array
    find_dependencies $2
    bugspray "Download list: $download_files" 3
    echo "Download list v2:"
    for x in $download_files ; do
    bugspray " File \"$x\" from repo \"${download_array[$x]}\"" 3
    echo " Full URL: http://mirror.archlinux.org/${download_array[$x]}/os/$arch/$x" ; done
    verint) # Debugging
    (( DEBUG == 0 )) && echo "the \"verint\" option is only for debugging" && exit 0
    for x in `ls .temp-alpps/*/$2-*/desc` ; do
    packagename=`sed -r '/%NAME%/,+1!d;/%NAME%/d' $x`
    if [[ j$packagename == j$2 ]] ; then
    bugspray "Unique package-name file found: $packagename=$2" 2
    distantversion=`sed '/%VERSION%/,+1!d;/%VERSION%/d' $x`
    dlfile=`sed '/%FILENAME%/,+1!d;/%FILENAME%/d' $x`
    package_full=$packagename-$distantversion
    the_repo=`echo $x|sed -r 's/.temp-alpps\/(.*)\.db.*/\1/'`
    the_path=`echo $x|sed -r 's/desc//'`
    local_version=`sed -r '/^'$packagename' /!d;s/.* //' .temp-alpps/snapshot.state`
    break ; fi ; done
    echo "full package filename: $dlfile"
    echo "Comparing local ($local_version) and distant ($distantversion) versions of $2..."
    compare_versions $local_version $distantversion
    #compare_versions 2.5beta3-2 2.5cvs4-1
    echo "...and the verdict is: $update"
    init)
    x=`uname -m`
    if [[ -x /usr/bin/pacman ]] ; then
    [[ -d .temp-alpps ]] || mkdir .temp-alpps/
    pacman -Q>.temp-alpps/snapshot.state
    sed -r '/^Se/!d;s/Server = //' /etc/pacman.d/mirrorlist>.temp-alpps/snapshot.mirrorlist
    sed -r '/^\[/!d;/options/d;s/\[(.*)\]/\1/' /etc/pacman.conf>.temp-alpps/snapshot.repositories
    sed -r '/^Architecture/!d;s/^.*= //' /etc/pacman.conf>.temp-alpps/snapshot.architecture
    [[ ! -s .temp-alpps/snapshot.architecture || auto == $(<.temp-alpps/snapshot.architecture) ]] && $x>.temp-alpps/snapshot.architecture
    sed -r '/^SyncFirst/!d;s/.*= //;s/ /\n/g' /etc/pacman.conf>.temp-alpps/snapshot.prioritypackages
    echo "Current state recorded."
    else
    echo "You seem to be running ALPPs on an unsupported system."
    echo "ALPPS is the ${lgreen}Arch Linux Pacman Proxy Script${dull} and simply"
    echo "won't run properly on a non-pacman OS (except when proxying)."
    echo "Aborting. Sorry."
    exit 1 ; fi
    fetchdb)
    [[ -d downloads ]] || mkdir downloads
    arch=$(<.temp-alpps/snapshot.architecture)
    declare -A download_array
    for repo in $(<.temp-alpps/snapshot.repositories) ; do
    download_array[${repo}.db]=$repo
    location="${repo}.db"
    failover_fetch $location ; done
    if [[ j$2 != jsimple ]] ; then
    [[ -d log-alpps ]] || mkdir log-alpps
    [[ -a syncfirst ]] && rm -f syncfirst
    echo "Preparing databases for local processing. This might take a while."
    for x in $(<.temp-alpps/snapshot.repositories) ; do
    echo "Preparing $x.db"
    if [[ -a downloads/$x.db ]] ; then
    [[ -d .temp-alpps/$x.db ]] || mkdir .temp-alpps/$x.db/
    tar -xzC .temp-alpps/$x.db/ -f downloads/$x.db --transform 's/:/§/' --no-same-owner && echo "$x database ready for use."
    else
    echo -e "Database $x.db is missing. Skipping. This will probably cause problems." ; fi ; done
    # SyncFirst package warning
    [[ -z $download_list ]] || unset download_list
    [[ -a syncfirst ]] && rm -f syncfirst
    for x in $(<.temp-alpps/snapshot.prioritypackages) ; do
    find_dependencies $x ; done
    bugspray "download_files: $download_files" 2
    if [[ ! -z $download_files ]] ; then
    echo "New version(s) of SyncFirst package(s):"
    for x in $(<.temp-alpps/snapshot.prioritypackages) ; do
    [[ ! -z `echo $download_files|grep $x` ]] && echo "- $x" && echo $x>>syncfirst ; done
    echo "Package names placed in 'syncfirst'. Don't forget to download them!" ; fi ; fi
    fetch)
    for x in $(<.temp-alpps/snapshot.repositories) ; do
    if ! [[ -d .temp-alpps/$x.db/ ]] ; then
    bugspray "You must first download a fresh database with the \"fetchdb\" option" 0
    exit 1 ; fi ; done
    arch=$(<.temp-alpps/snapshot.architecture)
    unset download_array
    declare -A download_array
    unset download_files
    if [[ $2 == full ]] ; then
    echo " Building full upgrade list. This will almost certainly take a while."
    echo " Please wait..."
    for y in `sed -r 's/^(.*) .*/\1/' .temp-alpps/snapshot.state` ; do
    bugspray "Examining $y" 1
    find_dependencies $y ; done
    elif [[ -a $2 ]] ; then
    echo " Determining dependencies. This might take a while. Please wait."
    for y in $(<$2) ; do
    bugspray "Examining $y" 1
    find_dependencies $y ; done
    else
    echo " Error: you should provide a list-file or the keyword \"full\"."
    echo " (see 'alpps.sh howto', step 2)"
    exit 1 ; fi
    if [[ -z $download_files ]] ; then
    echo " No files to download: either none found, or all found are up to date."
    else
    [[ -d downloads ]] || mkdir downloads
    for x in $download_files ; do
    failover_fetch $x ; done ; fi
    install)
    dbpath=`sed -r '/^DBPath/!d;s/^.*= //' /etc/pacman.conf`
    [[ -z $dbpath ]] && dbpath="/var/lib/pacman/"
    bugspray "dbpath: $dbpath" 2
    echo " Updating databases"
    cp -ft ${dbpath}sync/ downloads/*.db
    cachedir=`sed -r '/^CacheDir/!d;s/^.*= //' /etc/pacman.conf`
    [[ -z $cachedir ]] && cachedir="/var/cache/pacman/pkg/"
    echo " Caching packages"
    cp -f downloads/*.pkg.tar.xz $cachedir
    echo
    echo " Don't forget to install/update your packages."
    echo " Exercise proper caution."
    echo " Have fun!"
    clean)
    echo "Cleaning up. This might take a while."
    rm -fr .temp-alpps/ && echo "Buffer directory deleted" || echo "Problem deleting buffer directory '.temp-alpps/'"
    rm -fr log-alpps/ && echo "Log directory deleted" || echo "Problem deleting 'log-alpps/'"
    rm -fr downloads/ && echo "Downloaded packages deleted" || echo "Problem deleting 'downloads/'"
    echo
    echo -e " ${lgreen}Arch Linux pacman proxy script${dull}"
    echo
    echo -e " ${green}Description${dull}"
    echo -e " ${green}===========${dull}"
    echo -e " This is a bash script to fetch and install packages for an offline Arch box"
    echo " using another, online box as a proxy of sorts. So far, this only works if"
    echo " the proxy box has bash, wget, tar, sed and grep installed."
    echo " It's probably also entirely unsafe, incompatible and will destroy your box"
    echo " in a fiery blaze if you try to use it (you know the drill)."
    echo
    echo -e " ${green}Options${dull}"
    echo -e " ${green}=======${dull}"
    echo " init Step 0 (as it were): take a snapshot of your system"
    echo " fetchdb Step 1: download the packagelist database"
    echo " fetch <file> Step 2: download requested packages"
    echo " install Step 3: update your system"
    echo " clean Step 4: delete any unneeded files"
    echo
    echo " howto More detailed instructions"
    echo " bugs Problems and future plans"
    echo " faq As it says"
    echo " warranty (in case it ever becomes necessary)"
    echo " version (to be honest, I wasn't expecting to go beyond v1-rc or so)"
    echo " help You're reading it, doofus :^)"
    echo
    # dl_list Test the find_dependencies function"
    # verint Test the compare_versions function"
    esac
    I've always resorted to use VPN, then I started using cntlm, this looks very useful (and a lot of work on your part!) Thanks alot!
    DoctorZeus

  • Arch Linux running on Asus Transformer T100/T100TA... sort of.

    I'm not really asking for help here (can't find an appropriate place to put this post), but more to show off my accomplishment with this tablet.
    As the thread title says, I've gotten Arch Linux to run on the Asus T100TA which is a quite annoying little thing. I haven't documented the steps myself, however, I remember exactly what I have done, and in order to get the live image to at least run on this tablet, here are the steps I did:
    (you'll maybe need 2 USB drives, seems to be the easiest way)
    1. Create an ISO using the archiso set as you normally would (except you won't really need the ISO itself) OR if you can figure it out yourself, install the base image to the USB drive (either architecture will do, but I recommend i686 since the processor is 32 bit as well)
    https://wiki.archlinux.org/index.php/Archiso
    This step will be unnecessary as of May, as the live images onwards on the main download site will already contain the 3.14 or newer kernels.
    2. After the image building successfully finishes, copy all the contents from (PROFILE)/work/iso/ (except root-image squashfs files) to a FAT32 formatted USB drive (1). This is to simply create a bootloader drive that will allow us for later swapping the USB drives.
    3. Download an ia32 version of grub. Any will do as long as it can boot up on the tablet.
    http://www.supergrubdisk.org/category/download/supergrub2diskdownload/
    This one works, download the standalone IA-32/i386 EFI and paste it in (USB Drive (1))/EFI/boot/bootia32.efi .
    (use latest versions, no matter if it's unstable)
    4. Now you need to make a grub.cfg. The one I made looks like this
    menuentry 'Arch Linux i686'{
    echo 'Loading Linux core repo kernel ...'
    linux /arch/boot/i686/vmlinuz noefi nomodeset archisobasedir=arch archisolabel=ARCH_201404
    echo 'Loading initial ramdisk ...'
    initrd /arch/boot/i686/archiso.img
    menuentry 'Arch Linux x86_64'{
    echo 'Loading Linux core repo kernel ...'
    linux /arch/boot/x86_64/vmlinuz noefi nomodeset archisobasedir=arch archisolabel=ARCH_201404
    echo 'Loading initial ramdisk ...'
    initrd /arch/boot/x86_64/archiso.img
    NOTE: If you're using a later live image build, I advise to change the date accordingly. It's not necessary to do so, since the mount by label doesn't work, however, I like to keep everything intact.
    noefi flag seems unnecessary as well, though I have added it to prevent some kernel panics from happening, for just in case. It works without it, still, however you need the nomodeset flag or else you'll get a black screen!
    I'm not entirely sure where the grub.cfg goes, but I've put it in USB Drive(1)/boot/grub/ , /EFI/grub/ and in /EFI/boot/grub/ just to make it sure that it works.
    5. Create an ext2/3/4 (recommended ext2 for flash drives, not to wear it out) USB drive (2) and copy the arch folder to the root of the USB drive (2)
    ---- BOOT PROCESS ----
    Before this step, ensure that Secure Boot is set to OFF in the Aptio setup. Otherwise it will throw up an error in a red box crying it's not signed.
    6. Plug in the USB drive (1) into a USB port and while powering on the tablet, tilt the escape key to pop up a boot menu.
    7. Select UEFI: (your USB drive (1))
    8. GRUB 2 will pop up. If you're running the SuperGrubDisk version, you're gonna have to go to Everything and then scroll down until it says something like
    (hd0, msdos1)/boot/grub/grub.cfg
    and click on it to open the configuration data manually created.
    9. Simply select your desired version of Arch Linux live distro to boot.
    10. VOILAaa, not really... It'll pop up with a mount error saying it's a wrong FS to mount. This is where you plug in your USB drive (2) in place of the first one.
    11. Type in:
    # mount /dev/sda1 /run/archiso/bootmnt
    # exit
    12. Congratulations, you're running Arch Linux on your ASUS Transformer T100TA tablet!
    This is as far as I have went into running it. Installing it on a HDD would require mounting the mmcblk partitions, which I haven't looked into yet. For a start, I'd just recommend installing it on a USB drive, though you'd have to own one of the USB OTG converters or a USB hub. The screen is spammed with the mmcblk0rpmb timeout errors though and that is annoying. It stops after a while when it stops trying. Reboot doesn't work either, seems like acpi is broken.
    You could do it with a single usb drive, though it requires some knowledge of this tablet's EFI because it disallowed me from running a kernel on another partition other than FAT32. Grub pops up with an error:
    can't unload EFI services
    or something like that.
    I've also tried putting the USB Drive (2) in during grub and it pops up with an error with invalid sector sizes. That was to be expected.
    btw I know it's my first post, I'm just here to share this with you. I never had the need to ask for help but when absolutely necessary.
    PICS OF IT RUNNING
    Some USB devices aren't visible, like the camera.
    A custom partition layout without the recovery partitions. Yours may differ.
    Last edited by xan1242 (2014-04-13 22:54:46)

    I haven't tried much other than getting this live image to run on this machine. I'll attempt to install the base image using my desktop computer with the appropriate drivers and see how that goes. (or just install the wifi driver)
    That guy really made it to work much better than I imagined it to work at all! I'll see what can be done using the same drivers, though running Ubuntu seems tempting as well. He even got the touchscreen to work, which is really awesome. It seems that he also merged the drivers into the kernel image, which is going to be a challenge in Arch.
    Since he's using the 64 bit build of Ubuntu, I'll try it with x86_64 Arch as well to try and use his guide to make the drivers to work.
    EDIT: I have successully installed the base to an external drive and booted it on the tablet, however since the base was installed externally on another machine, I need to regenerate initrd. It boots on the fallback ramdisk, but still no wifi and the screen is spammed even more with the timeout errors. I've seen topics on Raspberry Pi having a similar issue and that it was repaired using some kernel flags, but I am not sure if those will work with the tablet. Also, using the bootflags jfwells used on Ubuntu work here as well, and gives full resolution output now. Wifi doesn't work. ip link doesn't give any signs of a wifi card present.
    EDIT2: Got Arch up and running relatively nicely on the tablet now. Though it is in the same state as the last edit in terms of functionality, it works I'd say well enough to be considered usable. I couldn't make the wireless card to work, for some strange reason, so I got a RT73 USB card (Edimax EW-7318USg to be precise, had to use 2 USB ports) and installed stuff on to the tablet. I ran X without a desktop manager, and the X apps worked fine, even with the touch screen (emulating a mouse, no right click) and I ran XFCE4 on it without a problem (with compositing).
    It simply needs more developed drivers on it, that's mostly it. The state is exactly the same as Ubuntu 14.04 that jfwells made to work (minus the wifi). I haven't played with the sound, either, due to the warning he posted, but I believe it works as it does in Ubuntu.
    The steps I made are as follows:
    1. Simply made another live ISO with the archiso set
    2. dd'd the image to a USB drive
    3. On the second USB drive I created two GPT partitions (200 - 300 MB for ESP, everything else ext2)
    4. Booted the live archiso USB drive
    5. Installed the base to the second USB drive while being mounted like this: ext2 partition -> /mnt and ESP -> /mnt/boot
    6. Installed GRUB x86_64-efi to simply generate a configuration
    7. Installed wireless utilities as well as everything else needed to make it to work
    8. To ensure bootability on the tablet, again, I put the IA32 GRUB to the ESP in /EFI/boot/bootia32.efi
    9. I have edited the grub.cfg, can't exactly remember with what, but this is what it looks like
    ### BEGIN /etc/grub.d/10_linux ###
    menuentry 'Arch Linux, with Linux core repo kernel' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-core repo kernel-true-(hd0,gpt2)' {
    set gfxpayload=keep
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='hd0,gpt1'
    echo 'Loading Linux core repo kernel ...'
    linux /vmlinuz-linux root=/dev/sda2 video=VGA-1:1368x768e reboot=pci,force sdhci.debug_quirks=0x8000 rw quiet
    echo 'Loading initial ramdisk ...'
    initrd /initramfs-linux.img
    menuentry 'Arch Linux, with Linux core repo kernel (Fallback initramfs)' --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-core repo kernel-fallback-(hd0,gpt2)' {
    set gfxpayload=keep
    insmod gzio
    insmod part_msdos
    insmod ext2
    set root='hd0,gpt1'
    echo 'Loading Linux core repo kernel ...'
    linux /vmlinuz-linux root=/dev/sda2 video=VGA-1:1368x768e reboot=pci,force sdhci.debug_quirks=0x8000 rw quiet
    echo 'Loading initial ramdisk ...'
    initrd /boot/initramfs-linux-fallback.img
    ### END /etc/grub.d/10_linux ###
    I simply added the kernel flags jfwells added. It needs that root flag, or else it will not boot. I can't figure out the UUIDs though. It will reboot, but it will not shut down.
    10. Boot up your second USB drive on the tablet and... IMPORTANT - Boot with the fallback ramdisk - or else you're going to experience non functional input
    11. After booting it, you'll get the annoying mmcblk timeout spamming the screen. I haven't figured out how to fix it, but to hide it, type in
    # dmesg -n 1
    12. Generate another ramdisk (forgot the command, but search function should serve you)
    13. Reboot with the normal ramdisk now.
    14. After setting up the wireless connection, rock on with the pacman!
    At this point I installed a bunch of stuff, like Intel GPU drivers, xorg, xfce4, ntfs-3g, gparted,  and among other stuff I personally test stuff with.
    I couldn't mount the mmcblk partitions to at least somehow be able to edit data on the Windows partitions or the disk as a whole.
    Anybody willing to help getting Arch to run on this tablet is welcome.
    EDIT3: Internal WiFi working! Simply added "sdhci.debug_quirks=0x8000" flag.
    Last edited by xan1242 (2014-04-13 23:35:26)

  • Mondo rescue and mindi patched for Arch Linux

    Mondo rescue is a disaster recovery tool.
    Last year, I wanted to test mondo rescue for the first time, but I found there was no official package and no PKGBUILD  in AUR.
    So I had to build one and upload it to AUR. But soon I found there were a lot of problems related to the lack of compatibility with Arch Linux.
    I had to deep in the code and made some patches that turned it usable in Arch system.
    Mondo version 2.2.9.5-2, and mindi-2.0.7.6-3 are now full compatible with Arch (at least for me).
    That's why I'm asking Arch users (if someone interested) to test mondo and mindi PKGBUILD's and give your feedback to help me to improve it.
    mondo AUR - http://aur.archlinux.org/packages.php?ID=38366
    mindi AUR - http://aur.archlinux.org/packages.php?ID=38365
    mindi-busybox - http://aur.archlinux.org/packages.php?ID=38364
    mondorescue website - http://www.mondorescue.org/
    Thank's for your feedback.

    You are right! The server is down :-(
    This server was an alternative I found for the original one that was also down at that time.
    Now http://www.hello-penguin.com/software.htm is up again, but I had some problems downloading source code with pacman.
    This is a little frustrating when servers are up and down intermittently.
    So, I made a mirror in my own server where buffer-1.19.tar.gz can be downloaded too, and uploaded a new version PKBUILD to AUR (http://aur.archlinux.org/packages.php?ID=38363).
    PKGBUILD now downloads source code from this alternative server, but if you wish, you can edit PKGBUILD and chose the original one (in the commented line).
    Hope this can be solved now.

  • Installing Arch on a RAID (for dummies)

    Playing with RAID's is fun for all the family, and makes things go faster.
    this is how I (re)installed Arch Linux, in a simple RAID configuration.
    Ingredients
    ===========
    1. Two 160GB drives
    2. Arch Linux CD (Dont Panic)
    Planning
    ========
    1. root partition on a RAID 1 setup (mirroring)
    2. home partition on a RAID 0 setup (striping)
    3. swap partition on a RAID 0 setup (striping)
    in this kinda setup, one disk can fry, but the system will still boot and function normally.
    home will be lost for ever, but I always back it up anyway (and so should you).
    *Important* - make sure your two IDE drives are not connected to the same cable, setup one as a primary master and the second as a secondary master.
    The works
    =========
    1. Boot the machine using the setup CD.
    2. Using cfdisk, partition the two drives exactly the same:
       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *           1        4863    39062016   83  Linux
    /dev/sda2            4864       17021    97659135   83  Linux
    /dev/sda3           17022       17083      498015   82  Linux swap / Solaris
    I chose 40GB for root, 100GB for home (results in 200GB), and 1GB for swap.
    Do exactly the same on the second drive /dev/sdb
    3. create the RAIDs using mdadm:
    modprob raid1
    modprob raid0
    mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sda1 /dev/sdb1
    mdadm --create /dev/md1 --level=0 --raid-devices=2 /dev/sda2 /dev/sdb2
    mdadm --create /dev/md2 --level=0 --raid-devices=2 /dev/sda3 /dev/sdb3
    4. create filesystems on the partitions:
    mkfs.xfs /dev/md0
    mkfs.xfs /dev/md1
    mkswap /dev/md2
    5. mount the root partition on /mnt
    mount /dev/md0 /mnt
    6. start the setup program
    /arch/setup
    7. select all base packages
    8. install packages
    9. configure:
    choose configure system and then, edit mkinitcpio.conf modules section:
    MODULES="ata_generic ata_piix raid1 raid0 xfs"
    In this line, I only added "raid1 raid0 xfs" to the modules.
    then, edit mkinitcpio.conf hooks section, and add the RAID stuff after that:
    HOOKS="base udev raid autodetect pata scsi sata usbinput keymap filesystems"
    md=0,/dev/sda1,/dev/sdb1
    md=1,/dev/sda2,/dev/sdb2
    md=2,/dev/sda3,/dev/sdb3
    In the hooks line, I have added the raid hook before autodetect
    10. install the kernel
    choose install kernel from the menu.
    11. Install grub
    choose install bootloader then grub
    edit the grub entry to:
    # (0) Arch Linux
    title  Arch Linux  [/boot/vmlinuz26]
    root   (hd0,0)
    kernel /boot/vmlinuz26 root=/dev/md0 ro md=0,/dev/sda1,/dev/sdb1
    initrd /boot/kernel26.img
    install grub to /dev/sda
    when prompted about root partition choose /dev/sda1
    when prompted about RAID stuff choose no
    do exactly the same on /dev/sdb
    12. exit the setup program
    13. fix mdadm.conf
    mdadm -D --scan >>/mnt/etc/mdadm.conf
    14. fix fstab
    add this to /mnt/etc/fstab:
    /dev/md0                /       xfs     defaults                0       0
    /dev/md1                /home   xfs     defaults                0       0
    /dev/md2                swap    swap    defaults                0       0
    15. reboot and install the rest of the system
    16. make sure all is well:
    cat /proc/mdstat
    Personalities : [raid1] [raid0] [linear] [multipath] [raid6] [raid5] [raid4] [raid10]
    md2 : active raid0 sda3[0] sdb3[1]
          995840 blocks 64k chunks
    md1 : active raid0 sda2[0] sdb2[1]
          195318016 blocks 64k chunks
    md0 : active raid1 sdb1[1] sda1[0]
          39061952 blocks [2/2] [UU]
    mount
    /dev/md0 on / type xfs (rw)
    /dev/md1 on /home type xfs (rw)
    make sure swap is on:
    cat /proc/swaps
    Filename                                Type            Size    Used    Priority
    /dev/md2                                partition       995832  0       -1
    17. If things go wrong, you can reassemble the RAIDs after booting from the setup CD, dont recreate them:
    mdadm --reassemble /dev/md0 /dev/sda1 /dev/sdb1
    for more reading, consult the WIKI: http://wiki.archlinux.org/index.php/Ins … AID_or_LVM
    Last edited by daf666 (2008-03-08 20:36:42)

    Sorry for the late reply clickit, I guess you might have fixed it already.
    There is a mistake in the guide, I will correct it now, the types in these lines should be --level=0
    mdadm --create /dev/md1 --level=1 --raid-devices=2 /dev/sda2 /dev/sdb2
    mdadm --create /dev/md2 --level=1 --raid-devices=2 /dev/sda3 /dev/sdb3
    Very sorry about that, but that does not cause your problem, because it would have created a mirror RAID instaed of a stripe.
    Your BIOS has nothing to do with the Linux software RAID, the RAID settings you see in BIOS are probably to enable the on-board RAID controller you have.
    The grub part is tricky, you have to make sure whats in the configuration file is according to the setup that you have (not just copy from the guide).
    Also keep in mind that if you have SATA, things might look different and the setup might need to be different.
    PS - regarding swap, since I wrote the guide I removed the swap space and instead I use a swap file on the RAID0.. I guess it the same because my system  rarely uses swap anyway
    Last edited by daf666 (2007-10-17 21:31:59)

  • [SOLVED] Chrome OS + Arch w/ full system encryption: Is it possible?

    I want to dual boot Chrome OS and Arch on a Chromebook. More importantly, I want to run Arch with full system encryption, such as with dm-crypt.
    As I understand it, in order to use full disk encryption, /boot must be a non-encrypted partition. If I didn't want to dual boot CrOS, this wouldn't be a problem. If I change the partitioning, it's unlikely that CrOS will boot.
    Has anyone successfully dual booted Chrome OS and Arch with full-disk encryption? And, if so, I'd appreciate your guidance. Thanks!!
    [edit] yes. Very straightforward, just read the Wiki
    Last edited by Watney (2015-05-26 03:21:50)

    What is your threat model?
    Owe, and no you can not have hidden-volume with dm-crypt.
    If you really want to have a secure OS to boot to.
    You should make a small partition on your drive.
    Put the tails linux OS .iso on it
    https://tails.boum.org/
    Then configure GRUB2 to boot the .iso file.
    https://tails.boum.org/forum/LiveUSB__4 … __feature/
    Now get a micro SD card and encrypt that for keeping data on.
    Then if you have to destroy the data, you just snap the micro SD card in a few pieces, but if you don't have time to destroy it then it is at least encrypted.
    If you are really worried about like the NSA or FBI getting your data... You probaly should not even have the data in the USA at all.
    Instead, rent a VPS in like Malaysia, Russia, Hong Kong, bla, bla bla...
    Pay for the VPS with BitCoin, Bitcoin you bought on #bitcoin-otc freenode IRC channel, that you connected to though the freenode TOR-HIdden Service IRC server. You will also want to do some bitcoin Tumbling before you use it. To tumble the bitcoin. You could simply transfer the bitcoin to an account on silkroadvb5piz3r.onion  then transfer the bitcoin back to you.
    .... OWE, and configure your bitcoin client to connect to the bitcoin network through TOR.
    Only connect to the VPS through TOR.
    Create a TOR-Hidden service to host SSH on the VPS
    Then use like sshfs to mount a remote directory on that VPS.
    Then create a TrueCrypt volume on that sshfs mounted directory, and keep your data in that.
    ===========
    How far down the rabbit hole do you want to go?
    Last edited by hunterthomson (2012-11-13 01:48:12)

Maybe you are looking for