Ideapad Y570 - Wifi trouble Arch Linux

Hi,
I've installed Arch Linux on my laptop but somehow, I can't get wifi to work. It is detected by system
(When I ran ip link I can see wlp8s0), but unfotunately, it is set down. Well, when I go to rfkill list all this is my output
0: ideapad_wlan: Wireless LAN
    Soft blocked: no
    Hard blocked: no
1: ideapad_bluetooth: Bluetooth
    Soft blocked: yes
    Hard blocked: no
2: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: yes
I suppose problem is in Hard blocked phy0. Hardware switch on my laptop is turned on (When I turn it of, Hard_blocked is set to yes on all devices. How to fix this issue?
I am not dual booting with Windows 7.
Thank you for answer

Hi,
I've installed Arch Linux on my laptop but somehow, I can't get wifi to work. It is detected by system
(When I ran ip link I can see wlp8s0), but unfotunately, it is set down. Well, when I go to rfkill list all this is my output
0: ideapad_wlan: Wireless LAN
    Soft blocked: no
    Hard blocked: no
1: ideapad_bluetooth: Bluetooth
    Soft blocked: yes
    Hard blocked: no
2: phy0: Wireless LAN
    Soft blocked: no
    Hard blocked: yes
I suppose problem is in Hard blocked phy0. Hardware switch on my laptop is turned on (When I turn it of, Hard_blocked is set to yes on all devices. How to fix this issue?
I am not dual booting with Windows 7.
Thank you for answer

Similar Messages

  • Canon PIXMA MP640 WiFi on Arch Linux x86_64

    I have a Canon PIXMA MP640 series multifunctional device connected wirelessly to my home router. On Windows Vista the device works flawlessly, I can print or scan without any problems. Now I decided to configure at least the printer part on my Arch Linux x86_64, which I dual-boot with Vista on the same laptop.
    I went through the Wiki entry for CUPS and SAMBA. I did install all the necessary packages, that is:
    1) cups (ver. 1.4.6), ghostscript (ver. 9.01), gsfonts (ver. 1.0.7pre44) - for CUPS
    2) cnijfilter-mp640 (ver. 3.20) and its dependencies: cnijfilter-common (ver. 3.00), lib32-libcups, lib32-popt - drivers for this particular model
    3) samba (ver. 3.5.6) and gamin (ver. 0.1.10) – for SAMBA
    Then I added cups and samba to DAEMONS section of the /etc/rc.conf file
    DAEMONS=(@syslog-ng !network @netfs @crond hal alsa wicd bluetooth laptop-mode !openntpd @cups @samba)
    copied Samba configuration file
    cp /etc/samba/smb.conf.default /etc/samba/smb.conf
    in which I changed only one entry – name of my workgroup, and then I restarted my system.
    In System Settings as root I went to Sharing→Samba and checked if everything seems fine – see print screen below.
    http://img854.imageshack.us/img854/300/samba1.png
    Then in Printer Configuration I chosed New network printer and I tried to fill all the boxes with information I have about my printer – see below. I also pointed to the specific .ppd file - /usr/share/cups/model/canonmp640.ppd.
    http://img5.imageshack.us/img5/6650/samba2.png
    The printer name and it's localization I got from my router – see below.
    http://img840.imageshack.us/img840/3982/samba3.png
    As you all see on print screen No 2 I'm getting “Bad URI – need printer name” error from CUPS. I “googled” about it, but still haven't been able to solve this issue. What am I doing wrong?
    Last edited by Zibi1981 (2011-03-07 18:13:31)

    No hints??? I believe it's related to Samba. I don't know how to configure it properly, so it can find my WiFi printer.

  • Troubles with HP OfficeJet 6500 E710n-z on Arch Linux

    Recently, I have tried to use my printer after five months break. It used to run smoothly on Arch Linux with hplip. However, now, I have not managed to make it print properly with hplip again. This is my configuration, as seen from the CUPS web interface:
        Driver: HP Officejet 6500 e710n-z hpijs, 3.12.11 (color, 2-sided printing)
        Connection: hp:/net/Officejet_6500_E710n-z?ip=192.168.1.4
    After trying to print some test page, the jobs listing in the CUPS web interface showed me a error message "Filter failed". I deleted my .cups and .hplip directories in my home folder and reinstalled cups and hplip. The same symptoms appeared again after restarting and a fresh installation.
        HP_Officejet_6500_E710n-z-400     Unknown     Withheld     98k     Unknown     pending since Sat 05 Jan 2013 04:22:46 PM CET     "Filter failed"
    My Arch system is up-to-date. I heard that it might have become necessary to install the hplip-plugin somewhen in the last month for some HP printer models. If I understand the table at the bottom of http://hplipopensource.com/hplip-web/mo … 10n-z.html correctly, then the hplip-plugin is neither required nor available for my printer model. I tested also installing it from AUR, just because it was worth a try (https://aur.archlinux.org/packages/hplip-plugin/), but this made matters worse, having my printer to madly produce almost-empty paper with some crap characters at each page top. As expected, the hplip-plugin was a dead-end, and I uninstalled it to continue some experimentation with printing test pages (all on the same page, mind the trees!). Resuming the printer, CUPS prints
    ***** Unable to open the initial device, quitting.
    Looking at the number of hits on Google, this seems to be one of the favourite error messages. I looked at the output in /var/cups/error_log
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Spooler: cups
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Printer: HP_Officejet_6500_E710n-z
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Shell: /bin/bash
    D [05/Jan/2013:16:39:10 +0100] [Job 407] PPD file: /etc/cups/ppd/HP_Officejet_6500_E710n-z.ppd
    D [05/Jan/2013:16:39:10 +0100] [Job 407] ATTR file:
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Printer model: HP Officejet 6500 e710n-z hpijs, 3.12.11
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Job title: Leafpad job 5
    D [05/Jan/2013:16:39:10 +0100] [Job 407] File(s) to be printed:
    D [05/Jan/2013:16:39:10 +0100] [Job 407] <STDIN>
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Ghostscript extra search path ('GS_LIB'): /usr/share/cups/fonts
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Printing system options:
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Pondering option 'number-up=1'
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Unknown option number-up=1.
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Pondering option 'job-uuid=urn:uuid:ac6ebe82-17e5-3f8f-49ec-01820c35ea2e'
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Unknown option job-uuid=urn:uuid:ac6ebe82-17e5-3f8f-49ec-01820c35ea2e.
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Pondering option 'job-originating-host-name=localhost'
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Unknown option job-originating-host-name=localhost.
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Pondering option 'time-at-creation=1357400341'
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Unknown option time-at-creation=1357400341.
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Pondering option 'time-at-processing=1357400341'
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Unknown option time-at-processing=1357400341.
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Options from the PPD file:
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Pondering option 'InputSlot=Default'
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Pondering option 'Quality=FromPrintoutMode'
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Pondering option 'MediaType=Plain'
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Pondering option 'PageSize=Letter'
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Pondering option 'PrintoutMode=Normal'
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Pondering option 'DryTime=Zero'
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Pondering option 'Duplex=DuplexNoTumble'
    D [05/Jan/2013:16:39:10 +0100] [Job 407] ================================================
    D [05/Jan/2013:16:39:10 +0100] [Job 407] File: <STDIN>
    D [05/Jan/2013:16:39:10 +0100] [Job 407] ================================================
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Filetype: PDF
    D [05/Jan/2013:16:39:10 +0100] [Job 407] PID 28827 (/usr/lib/cups/filter/pdftopdf) exited with no errors.
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Storing temporary files in /var/spool/cups/tmp
    D [05/Jan/2013:16:39:10 +0100] [Job 407] File contains 1 pages
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Starting renderer with command: gs -dFirstPage=1 -q -dBATCH -dPARANOIDSAFER -dQUIET -dNOPAUSE -sDEVICE=ijs -sIjsServer=hpijs -dDEVICEWIDTHPOINTS=612 -dDEVICEHEIGHTPOINTS=792 -sDeviceManufacturer="HEWLETT-PACKARD" -sDeviceModel="HP Color LaserJet 2600n" -dDuplex=true -dTumble=false -r300 -sIjsParams=Quality:Quality=0,Quality:ColorMode=2,Quality:MediaType=0,Quality:PenSet=2,PS:MediaPosition=7 -dIjsUseOutputFD -sOutputFile=- /var/spool/cups/tmp/foomatic-3lyFKy
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Starting process "kid3" (generation 1)
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Starting process "kid4" (generation 2)
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Starting process "renderer" (generation 2)
    D [05/Jan/2013:16:39:10 +0100] [Job 407] JCL: %-12345X@PJL
    D [05/Jan/2013:16:39:10 +0100] [Job 407] <job data>
    D [05/Jan/2013:16:39:10 +0100] [Job 407] prnt/hpijs/hpijs.cpp 269: unable to set device=HP Color LaserJet 2600n, err=48
    D [05/Jan/2013:16:39:10 +0100] [Job 407] prnt/hpijs/hpijs.cpp 290: unable to set device=HP Color LaserJet 2600n, err=48
    D [05/Jan/2013:16:39:10 +0100] [Job 407] renderer exited with status 1
    D [05/Jan/2013:16:39:10 +0100] [Job 407] prnt/hpijs/hpijs.cpp 697: unable to read client data err=-2
    D [05/Jan/2013:16:39:10 +0100] [Job 407] Possible error on renderer command line or PostScript error. Check options.Kid3 exit status: 3
    D [05/Jan/2013:16:39:10 +0100] [Job 407] STATE: +connecting-to-device
    D [05/Jan/2013:16:39:10 +0100] [Job 407] PID 28828 (/usr/lib/cups/filter/foomatic-rip) stopped with status 9.
    Indeed, some errors show up. I find it strange that ghostscript is called with a parameter -sDeviceModel="HP Color LaserJet 2600n" -dDuplex=true even though I clearly have an inkjet printer and no laser printer – and also specified the correct printer model. Also later, I can see the two lines
    D [05/Jan/2013:16:39:10 +0100] [Job 407] prnt/hpijs/hpijs.cpp 269: unable to set device=HP Color LaserJet 2600n, err=48
    D [05/Jan/2013:16:39:10 +0100] [Job 407] prnt/hpijs/hpijs.cpp 290: unable to set device=HP Color LaserJet 2600n, err=48
    which to the best of my knowledge indicates some internal mess. Raising the debug level in cups.conf did not tell me anything new.
    Notably, using the hpcups driver at least makes the printer print pages properly, but the wonderful (mind the trees) duplex-mode seems to only be available when using hpijs when selecting the PPD file in the add printer wizard. That is why I want to stay with the driver mentioned above.
    The trouble for me is that the printing pipeline is so complex and so many components are involved that I have no real good starting point to where exactly post bug reports. I would appreciate if some fellows with the same printer and the same errors could confirm my description. Or even point out how to get that organism to paint ink properly on the paper. Any ideas where to start? Or references to better resources regarding the combo of HP OfficeJet 6500 E710n-z and Arch? Is it just an regression bug and will be fixed? Is my system corrupted in some way? There is lots of open questions I don't quite feel able to answer all by myself. Any hints for troubleshooting appreciated!
    Edit:
    After some more reading and troubleshooting, I have filed the following two bug reports at hplip:
    https://bugs.launchpad.net/hplip/+bug/1096418
    https://bugs.launchpad.net/hplip/+bug/1096421
    Last edited by jeadorf (2013-01-05 19:30:19)

    SCAN ISSUE SOLVED!!!!
    I have an HP Photosmart 6500a Plus printer that is connected via USB to a less than 1 year old Dell XPS 8300 tower running Win 7 64bit Home Premium Edition.  The print function worked fine but scans would halt mid-way through the scan and eventually the software would indicate that it had lost connection with the scanner. 
    After EXTENSIVE testing, I determined that the problem was with the Dell tower and NOT THE PRINTER.  I hooked the printer up to a Dell Inspiron mni-tower running Vista and had NO PROBLEM scanning.  I hooked the printer up to a Gateway laptop running Win 7 Pro and had NO PROBLEM scanning.
    On a hunch, I inserted a POWERED USB hub in between the Dell XPS 8300 tower and the HP Photosmart 6500a Plus and was rewarded with a, first time ever on the XPS 8300, complete and flawless scan.
    I surmise that the HP Photosmart 6500a Plus was not getting the required voltage from the USB on the Dell XPS 8300 tower and that was causing the scan to fail.
    WOOHOO!
    Been chasing this one for several months...

  • Having trouble installing Arch Linux to USB key

    Hello,
    I have read the wiki article, but it doesn't answer my question. I am having trouble installing Arch to a USB key (8GB Sandisk Cruzer). I installled GRUB correctly, it booted, but the flash drive was write-protected. In the fstab file, I have the defaults and noatime flags in there. I have never experienced an error like this, and I don't know how to fix it. I have tried to reboot into the Arch CD and mounted the USB, but it just stalls and displays no output. Obviously, if I boot into my USB (you can still boot into it), and do "nano /etc/fstab", it says that I cannot write. In case you were wondering, I am using the root user. Thank you for all your help!
    EDIT: I have Syslinux, the kernel parameters is RW. If I run mount -o remount,rw /dev/sda1, it tells me something like:
    ata3.00: status: {DRDY ERR}
    ata3.00: error: {IDNF}
    end_request: I/O error, dev sda, sector 21
    Buffer I/o error on device sda1, logical block 0
    EXT4-fs error (device sda1): ext4_remount:4665: Abort forced by user
    I did NOT hit CTRL+C.
    Last edited by aqua123 (2013-09-07 02:01:30)

    I'm a nub, and I think I'll piggy back of aqua's post.  Perhaps we have the same problem
    I have an Asus UX31A with Xubuntu (with grub) currently installed.  I created the bootable USB as per the Arch Wiki UEFI bootable usb page.  I can boot into the main prompt where you can choose "Arch Linux Iso", "shell v1", "shell v2" and "Default prompt."
    Choosing the first option (to get to the the command prompt and begin installing) makes the screen flash once, then just hangs black.  Before the flash I think I see three text lines in the upper left corner, but they flash so fast I can't read them.
    Choosing either of the shell options presents the error:
    "Error loading \EFI\shellx64_v1.efi: Unsupported"  (replace "v1" with "v2" for the other option)
    Any thoughts?

  • Trouble with a wired connection on my fresh Arch Linux Install

    I am a new Arch Linux user. I used to use Ubuntu exclusively, but I'm to the point where I can no longer stand a lot of the issues with the new development and Canonical. Anyways....
    I have a Dell Inspiron 1440 laptop with an RTL8110SC (Module R8169) Ethernet port. (Pardon me if my terminology is wrong; please correct me if it is so I can learn? ) During the install process with the CD that I made, I had no issues connecting to the Internet. However, whenever I boot into my install, there is no connection. I've tried pinging various web pages and nothing will happen. I know that my hardware is compatible, but I do not know what to do next. I've tried everything under the Wiki's Beginner's Guide and the Network Configuration Guide.
    I just realised after I wrote this top portion that it no longer is connecting via CD, either. Pinging is giving me errors about no packets being received.
    Please help me with this matter? I would love to start using Arch Linux!

    Ping is a very basic command that is fundamental to debugging networks at the lowest levels.
    ewaller@odin:~ 1002 %ping 8.8.8.8
    PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
    64 bytes from 8.8.8.8: icmp_seq=1 ttl=50 time=42.7 ms
    64 bytes from 8.8.8.8: icmp_seq=2 ttl=50 time=36.7 ms
    64 bytes from 8.8.8.8: icmp_seq=3 ttl=50 time=36.8 ms
    ^C
    --- 8.8.8.8 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2003ms
    rtt min/avg/max/mdev = 36.721/38.782/42.768/2.819 ms
    ewaller@odin:~ 1003 %
    What we can tell so far..
    You have an Ethernet Interface.
    You have an Ethernet Address.
    You cannot look up domain names (bad)
    We are trying to see if you can see other computers if you know their address.  This will tell us if it is a DNS or a routing problem
    Last edited by ewaller (2012-10-26 22:58:32)

  • [SOLVED] Installing Windows XP after Arch Linux

    I'm not sure at all where to post this, so I've decided to do it here since I have the problem on a laptop... Please move if it should be somewhere else.
    I installed Arch Linux on my new laptop a month ago or so, and am very pleased to have found the very kind of distro I've been looking for. However, I'm having trouble with my graphics (either wine doesn't support it, or the drivers don't have 2D/3D acceleration), and now I want to install Windows XP next to Arch Linux.
    Using a GParted LiveCD, I've repartitioned the harddrive as such: Unpartitioned Space (27GB), Linux (197GB), SWAP (5GB).
    I've also removed the bootable flag from the Linux partition, just to be sure. However, when I try to install Windows XP, it gets stuck after unpacking a bunch of drivers, giving me a bluescreen that tells me to make sure the hardware isn't broken, check my harddrive with CHKDSK /F, or look for viruses. Ofcourse I know none of these are true, since I'm running Arch Linux just fine.
    A friend suggested that maybe my hardware isn't supported by Windows XP, which sounds like the most reasonable explanation so far, but I can't find a list of supported hardware. The M$ homepage basicly says
    "Pentium 233-megahertz (MHz) processor or faster (300 MHz is recommended)"
    for CPU, which doesn't help me at all.
    My hardware is:
    Processor: Intel Celeron 2.2 Ghz
    Memory: 2GB DDR2
    Graphics: Intel 4500MHD
    And the laptop is called an "eMachines E525", though that doesn't say much since there are very, very many called this.
    Can anyone give me any hints as to what I might be doing wrong?
    Last edited by Noxic (2010-05-29 18:44:32)

    Sounds like something I'll want to do. Where did you download the drivers? Do I have to follow some guide? Thanks for the tip
    EDIT:
    Indeed I will want to install AHCI drivers, otherwise Arch Linux fails to boot quite badly. There is also a problem preventing me from booting when I'm using AHCI though;
    At boot, Arch Linux checks /dev/sda1 (NTFS) for errors, and expects to check an ext2 filesystem. Obviously, however, /dev/sda1 is an NTFS filesystem.
    Since it tries to read the NTFS partition as an ext2 filesystem, it panics. Arch Linux then prompts me for the root password (or Ctrl+D to reboot), but I've disabled root login and can therefore do nothing at this point.
    I have a GParted livecd and the Arch Linux livecd, so editing files on any of the filesystem isn't a problem at all, but I don't know what to do at this point. Help?
    Last edited by Noxic (2010-05-29 12:40:33)

  • Debtap - A script to convert .deb packages to Arch Linux packages

    I wrote this script in my free time to help people who, for any reason, want to convert a .deb to an Arch Linux package. It works in a similar way with alien (which converts .deb packages to .rpm packages and vice versa), but, unlike alien, it is focused on accuracy of conversion, trying to translate Debian/Ubuntu packages names to the correct Arch Linux packages names and store them in the dependencies fields of the .PKGINFO metadata in the final package. In other words, it won't only create an Arch package with the data of the original .deb package, but also it will try to create a valid and as accurate as possible .PKGINFO metadata file in the converted package. It uses pkgfile and pacman utilities to achieve this accuracy. The final package can be installed like any local Arch Linux package. Debtap is now available on AUR!
    FAQ
    Q: What "debtap" stands for?
    A: DEB To Arch (Linux) Package
    Q: Isn't better to download an official package or write a PKGBUILD in case I need to compile a package or convert a .deb package to an Arch Linux package?
    A: Sure it is, and I truely encourage you to do so. Debtap was written to create packages that either cannot be compiled (closed source packages) or cannot be built from AUR for various reasons (error during compiling or unavailable files), as a quick 'n' dirty solution and an extra option for creating Arch Linux packages for Arch Linux users.
    Q: So debtap will help me only in case I need to convert specific .deb packages to Arch Linux packages?
    A: No. In case you need to write a new PKGBUILD for a package that already exists in the Debian/Ubuntu distributions, by converting its .deb package to Arch package with debtap, thanks to the packages names translator function inside the script, it can help you determine which dependencies are needed for the package you write the PKGBUILD for and complete the necessary fields.
    Q: What are the minimum requirements to run this script?
    A: You need to have installed these dependencies: bash, binutils (provides ar utility for extracting .deb package), pkgfile, and fakeroot. You must run at least once (preferably recently) "debtap -u" to create/update pkgfile and debtap database (you do this with root privileges).
    Q: Debtap needs a lot of time to convert a package. So, why this is happening?
    A: Like I said, debtap is focused on accuracy. It won't just unpack a .deb package and then repackage its data to an Arch Linux package, ignoring metadata. Depending on the speed of your processor and the package itself, conversion can take from a few seconds to several minutes.
    Q: During conversion I get several warning messages, why?
    A: Debtap cannot be 100% accurate for several reasons,  the main reason for this is the complexity of packages names. If you want to check the freshly generated .PKGINFO and .INSTALL (this is optional file) metadata files or even fix the untranslated packages names inside .PKGINFO, debtap offers you the option to edit these files before compressing the final package.
    Q: How do I use debtap?
    A: The syntax is quite simple actually: debtap [option] package_filename
    For example: debtap world-of-goo-demo_1.0_i386.deb
    Any recommendations or questions for debtap are welcomed!
    Last edited by helix (2015-05-21 22:54:17)

    Hi helix. I've had trouble trying to use your script with ubuntu software from The Open University
    debtap OpenUniversity-ubuntu-0.1.3.20130104.deb
    ==> Extracting package data...
    ==> Fixing possible directories structure differencies...
    ==> Generating .PKGINFO file...
    debtap OpenUniversity-ubuntu-0.1.3.20130104.deb
    ==> Extracting package data...
    ==> Fixing possible directories structure differencies...
    ==> Generating .PKGINFO file...
    :: Enter Packager name:
    NewPepper2013
    :: Enter package license (you can enter multiple licenses comma seperated):
    closed
    :: If you want to edit .PKGINFO file, press (1) For vi (2) For nano (3) For a cu                                                                                                    stom editor or any other key to continue:
    ==> Generating .MTREE file...
    ==> Creating final package...
    xz: unrecognized option '--1-any.pkg.tar'
    xz: Try `xz --help' for more information.
    mv: cannot stat ‘*.xz’: No such file or directory
    ==> Removing leftover files...
    ==> Package successfully created!
    The software is called NewPepper 2013 but i've not been able to find it online except on the ou website.

  • [Bounty] Free Macbook Pro to get Arch Linux running on Amazon's EC2

    First, the details:
    I will purchase a lowest–end Macbook Pro 13″ ($US 1,200 on Apple's store, new) for the first person to deliver to me a working set of step–by–step instructions for installing the latest Arch Linux on top of Amazon's EC2 platform.
    Caveats & Rules:
    - I don't care how long it takes you—there's a good chance I'm doing something absolutely stupid in my noobishness that's causing the problems I've been experiencing; if it takes you half an hour to make a working AMI, and produce instructions to do such… you just won yourself a Macbook Pro for half an hour's work. Booyah!
    - Again, I say, I don't care how long it takes you—if you don't produce a working set of instructions, there will be no payout, even if you spend 200 hours trying (as I already have!). It's a bounty, not a work contract d-:
    - You must provide me with instructions that work for me (as I don't intend to use your AMI, but rather modify the steps that worked for you a bit at a time until I arrive at an AMI configured exactly as I want it). If you arrive at a working AMI, and can reproduce your steps successfully locally, but they can't be made to work for me, I may be able to go about procuring alternative hardware for myself on which to preform the steps, or taking other measures to reproduce your environment; but the bottom line is I will not shell out until I can, personally, produce a working AMI running Arch Linux.
    - The instructions are considered to be "working" when I can successfully SSH into the root account on an instance instantiated from an AMI created by following the instructions using the key generated by EC2.
    - Your instructions must work both for x86_32 and x86_64 instance types; however, this shouldn't be too much of a problem, as (barring any weirdness) anything that works on x86_32 should be easily made to work on x86_64.
    - Instructions that involve instantiating an intermediate bundling host (say, a CentOS or Fedora Core instance) and then installing Arch to a loopback filesystem using a statically–built pacman are much preferred to instructions that involve me having to install and package Arch locally and then ship it up to S3, because my upstream is unimaginably slow and I eventually will need to create something between eight and twenty different AMIs (see below). But anything that works will be accepted.
    - If you don't want a Macbook Pro, alternative payment methods may be arranged, though you need to contact me before you start and arrange these, as there's only so much I can do.
    - If you are in any way confused or unsure of what I'm offering here, please contact me before you start (see below for contact info)
    Backstory:
    I set up the first AMI for Arch Linux on Amazon, but unfortunately, I did some really stupid things (hey, I was completely new to Linux at the time, gimmie a break!). The root filesystem was limited to 1GB, there was a whole bunch of software that really was completely unnecessary (WiFi drivers? on a virtualized server? seriously?), there were no kernel modules provided… and so on.
    So, after running all my stuff on instances of that for a while, I finally got fed up and found the time to start setting up a newer, cleaner AMI. Unfortunately, I made the mistake of deleting my old AMI before starting work on the first. Now I find myself completely unable to create an AMI that will work whatsoever, and I cannot for the life of me figure out why.
    I've already invested 200 or so hours of my personal time since deleting my original, broken AMI; I'm very fed up and in badly need of working instances. I tried every method I could think of; running the Arch installer from a LiveCD locally and then bundling the running (and thus proved working) Arch install and shipping it off to S3; installing Arch on a loopback filesystem locally, cloning it to a local partition, booting to it to ensure it works, and shipping it off to S3; installing Arch on a loopback filesystem on a remote bundling host running CentOS or whatever and then shipping it off to S3… I've tried installing nothing but the essentials, I've tried installing everything the installer offers… I've tried to do my best to remember the exact steps I took the first time around, years ago, and reproduce them exactly… nothing has worked.
    If I take EC2 out of the equation, and install the images I've prepared locally, they work. If I take Arch out of the equation, and install, say, CentOS instead, and then ship it off to EC2, it works. The only time I have problems is when I attempt to install Arch Linux specifically on EC2 specifically; the exact use–case I need.
    I've run into a lot of problems along the way, and fixed them as I go, but I universally end up with an AMI that, once instantiated, does not successfully boot. Worse yet, I get absolutely no output from the console (provided by the ec2-get-console command–line tool) to help me debug the problem. I can't give you any more specifics beyond this to help you, because I don't want to insinuate some idea that will cause you to make some little stupid mistake that I also made, thus dooming the project.
    Contact:
    For more info of any sort, please hit me up on Google Talk or Jabber (… or any other XMPP–federated chat service, or AIM, or ICQ, or MSN, or whatever you like, they all use the same address anyway) at the following address:
    [email protected]
    Edit: I should point out that it would be good form to post here if you're going to make a stab at it, so interested parties know how many people are already making attempts.
    Last edited by elliottcable (2009-07-25 03:59:46)

    drtoki wrote:
    http://blog.mudy.info/2009/04/archlinux-ec2-public-ami/
    lolwat
    from fryguy
    Public AMIs aren't what I need, because I need to mass–produce quite a few AMIs with different custom configurations for different purposes; so I have to be able to start from scratch and arrive at a working AMI *myself*.
    As for the script, I'm sitting down to play with it now; it looks just about exactly like what I've been doing so far. Maybe there's some small thing he did differently that will make it work. Here's hoping it works for me; that'll be a real load off my chest.

  • Dhcp server won't admit my Arch Linux (though Win's have no problems)

    1. Generally my dhcpcd works fine in every network (and always has, I have not changed anything substantial).
    2. Currently I am in a network (for just a couple of weeks) in which it does not.
    3. The network will ignore all my dhcp requests over both network devices, enp1s0 and wlp2s0 (ethernet and wifi)
    4. When trying the same from Windows (dual boot), the dhcp client works brilliantly (i.e. the hardware is fine)
    5. I can force entry into the cable network by simply assigning an IP address and setting netmask and gateway as was configured by dhcp when I tried from Windows
    6. For wifi this does not work. More specifically it works for a brief moment if (and only if) I was connected from Windows immediately before and assign myself the same IP address (I can ping the gateway and also 8.8.8.8). After this moment the network apparently kicks me out (cannot ping anything any more, nothing answers). dhcpcd inform (dhcpcd -s <IP Adress>) does not fare better.
    7. I tried changing some of the settings in dhcpcd.conf that have been given as reasons for similar problems in the forums, archwiki, or somewhere else, including exchanging 'duid' for 'clientid', and commenting out 'require dhcp_server_identifier'. Does not help. My dhcpcd.conf, see below.
    8. dhclient does not work either.
    What I want: Connect to the internet via wifi from Arch.
    I guess this comes down to making the dhcp server believe my Arch was one of the Windowses it is used to. How do I do that?
    I understand that dhcp does not involve clients revealing their operating systems to the servers; but some configurations are likely different between Arch and Windows. I am not used to working with Windows and have no idea how to access the dhcp client configuration settings there (if this is even possible) to get an idea what exactly is different. Here is my dhcpcd.conf - any ideas what exactly about it displeases the server so much or what I might change or add to make the server more pleasantly inclined?
    dhcpcd.conf
    hostname
    clientid
    #duid
    persistent
    option rapid_commit
    option domain_name_servers, domain_name, domain_search, host_name
    option classless_static_routes
    option ntp_servers
    #require dhcp_server_identifier
    nohook lookup-hostname
    noipv4ll
    I would include the logs as well, but they are boring beyond belief, do not contain anything except for dhcpcd trying and failing with timeout.

    Thanks, MoonSwan & ewaller,
    MoonSwan wrote:Windows' IP address and network settings navigate to:  Control Panel -> Network and Internet -> Network Connections -> Click on Device Here (WIFI or LAN) -> Properties and from there you should be able to see the settings you need to figure out what's going on in Windows.
    Found that, There are a lot of "Advanced properties", for instance "Bandwidth Capacity" is set to "11b/g: 20MHz", "BSS Mode" is set to "802.11n Mode", "Fragmentation Threshold" to "2346" (whatever that may mean) ... etc. Unfortunately, I cant copy any of that; most of it also seems rather unimportant; also I left all this on its default setting when I followed the instructions on how to connect to this wifi on Windows.
    However, here is some information I managed to squeeze out of the pathetic, pittyful Windows terminal which they call the "Comand Line"
    C:\Windows\system32> ipconfig /all
    <...>
    Wireless LAN adapter Wireless Network Connection:
    Connection-specific DNS Suffix . : <the network name>
    Description . . . . . . . . . . . : <hardware description> 802.11b/g/n (2.4GHz)
    Physical Address. . . . . . . . . : <the mac address>
    DHCP Enabled. . . . . . . . . . . : Yes
    Autoconfiguration Enabled . . . . : Yes
    Link-local IPv6 Address . . . . . : <some ipv6> %13(Preferred)
    IPv4 Address. . . . . . . . . . . : <the ipv4> (Preferred)
    Subnet Mask . . . . . . . . . . . : <subnet mask>
    Lease Obtained. . . . . . . . . . : Fri, 23. May 2014 19:47:10
    Lease Expires . . . . . . . . . . : Fri, 23. May 2014 21:17:09
    Default Gateway . . . . . . . . . : <gateway ip>
    DHCP Server . . . . . . . . . . . : <some ip that is not part of the local subnet>
    DHCPv6 IAID . . . . . . . . . . . : 319352249
    DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-18-9F-0F-D6-E0-DB-55-CF-26-6
    DNS Servers . . . . . . . . . . . : <a few dns server ip's>
    NetBIOS over Tcpip. . . . . . . . : Enabled
    Tunnel adapter Teredo Tunneling Pseudo-Interface:
    Connection-specific DNS Suffix . :
    Description . . . . . . . . . . . : Teredo Tunneling Pseudo-Interface
    Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
    DHCP Enabled. . . . . . . . . . . : No
    Autoconfiguration Enabled . . . . : Yes
    IPv6 Address. . . . . . . . . . . : <some ipv6> (Preferred)
    Link-local IPv6 Address . . . . . : <another ipv6> %12(Preferred)
    Default Gateway . . . . . . . . . :
    NetBIOS over Tcpip. . . . . . . . : Disabled
    Tunnel adapter 6TO4 Adapter:
    Connection-specific DNS Suffix . : <the network name>
    Description . . . . . . . . . . . : Microsoft 6to4 Adapter
    Physical Address. . . . . . . . . : 00-00-00-00-00-00-00-E0
    DHCP Enabled. . . . . . . . . . . : No
    Autoconfiguration Enabled . . . . : Yes
    IPv6 Address. . . . . . . . . . . : <some ipv6> (Preferred)
    Default Gateway . . . . . . . . . : <another ipv6>
    <yet another ipv6>
    DNS Servers . . . . . . . . . . . : <the same ipv4 dns server ip's as above>
    NetBIOS over Tcpip. . . . . . . . : Disabled
    C:\Windows\system32> netsh wlan show all
    Wireless System Information Summary
    (Time: 23.05.2014 20:38:49 W. Europe Daylight Time)
    =======================================================================
    ============================== SHOW DRIVERS ===========================
    =======================================================================
    Interface name: Wireless Network Connection
    Driver : <hardware description> 802.11b/g/n (2.4GHz)
    Vendor : Broadcom
    Provider : Broadcom
    Date : 21.01.2012
    Version : 6.20.55.31
    INF file : C:\Windows\INF\oem25.inf
    Files : 5 total
    C:\Windows\system32\DRIVERS\BCMWL664.SYS
    C:\Windows\system32\bcmihvsrv64.dll
    C:\Windows\system32\bcmihvui64.dll
    C:\Windows\system32\drivers\vwifibus.sys
    C:\Windows\system32\bcmwlcoi.dll
    Type : Native Wi-Fi Driver
    Radio types supported : 802.11n 802.11g 802.11b
    FIPS 140-2 mode supported : Yes
    Hosted network supported : Yes
    Authentication and cipher supported in infrastructure mode:
    Open None
    Open WEP
    Shared None
    Shared WEP
    WPA2-Enterprise TKIP
    WPA2-Personal TKIP
    WPA2-Enterprise CCMP
    WPA2-Personal CCMP
    WPA2-Enterprise Vendor defined
    WPA2-Enterprise Vendor defined
    Vendor defined Vendor defined
    Vendor defined Vendor defined
    Vendor defined TKIP
    Vendor defined CCMP
    Vendor defined Vendor defined
    Vendor defined Vendor defined
    WPA-Enterprise TKIP
    WPA-Personal TKIP
    WPA-Enterprise CCMP
    WPA-Personal CCMP
    Authentication and cipher supported in ad-hoc mode:
    WPA2-Personal CCMP
    Open None
    Open WEP
    IHV service present : Yes
    IHV adapter OUI : [00 10 18], type: [00]
    IHV extensibility DLL path: C:\Windows\System32\bcmihvsrv64.dll
    IHV UI extensibility ClSID: {aaa6dee9-31b9-4f18-ab39-82ef9b06eb73}
    IHV diagnostics CLSID : {00000000-0000-0000-0000-000000000000}
    =======================================================================
    ============================= SHOW INTERFACES =========================
    =======================================================================
    There is 1 interface on the system:
    Name : Wireless Network Connection
    Description : 802.11b/g/n (2.4GHz)
    GUID : 6d122ca5-cdc2-42d1-a1fb-3754098b19eb
    Physical address : <the mac address>
    State : connected
    SSID : <ssid>
    BSSID : <access point mac address>
    Network type : Infrastructure
    Radio type : 802.11n
    Authentication : WPA2-Enterprise
    Cipher : CCMP
    Connection mode : Auto Connect
    Channel : 1
    Receive rate (Mbps) : 72
    Transmit rate (Mbps) : 72
    Signal : 83%
    Profile : <ssid>
    Hosted network status : Not available
    =======================================================================
    =========================== SHOW HOSTED NETWORK =======================
    =======================================================================
    Hosted network settings
    Mode : Disallowed
    Settings : <Not configured>
    Hosted network status
    Status : Not available
    =======================================================================
    ============================= SHOW SETTINGS ===========================
    =======================================================================
    Wireless LAN settings
    Show blocked networks in visible network list: No
    Only use GP profiles on GP-configured networks: No
    Hosted network mode allowed in WLAN service: No
    Allow shared user credentials for network authentication: Yes
    Block period: Not Configured.
    Auto configuration logic is enabled on interface "Wireless Network Connection"
    =======================================================================
    ============================== SHOW FILTERS ===========================
    =======================================================================
    Allow list on the system (group policy)
    <None>
    Allow list on the system (user)
    <None>
    Block list on the system (group policy)
    <None>
    Block list on the system (user)
    <None>
    =======================================================================
    =========================== SHOW CREATEALLUSER ========================
    =======================================================================
    Everyone is allowed to create all user profiles.
    =======================================================================
    ============================= SHOW PROFILES ===========================
    =======================================================================
    Profiles on interface Wireless Network Connection:
    Group policy profiles (read only)
    <None>
    User profiles
    All User Profile : <ssid>
    <other profile names>
    =======================================================================
    ========================== SHOW PROFILES NAME=* =======================
    =======================================================================
    Profile eduroam on interface Wireless Network Connection:
    =======================================================================
    Applied: All User Profile
    Profile information
    Version : 1
    Type : Wireless LAN
    Name : <ssid>
    Control options :
    Connection mode : Connect automatically
    Network broadcast : Connect only if this network is broadcasting
    AutoSwitch : Do not switch to other networks
    Connectivity settings
    Number of SSIDs : 1
    SSID name : "<ssid>"
    Network type : Infrastructure
    Radio type : [ Any Radio Type ]
    Vendor extension : Not present
    Security settings
    Authentication : WPA2-Enterprise
    Cipher : CCMP
    Security key : Absent
    802.1X : Enabled
    EAP type : Microsoft: Protected EAP (PEAP)
    802.1X auth credential : Machine or user credential
    Cache user information : Yes
    <other profiles ...>
    =======================================================================
    ======================= SHOW NETWORKS MODE=BSSID ======================
    =======================================================================
    Interface name : Wireless Network Connection
    There are 4 networks currently visible.
    SSID 1 : eduroam
    Network type : Infrastructure
    Authentication : WPA2-Enterprise
    Encryption : CCMP
    BSSID 1 : <other access point ssid>
    Signal : 2%
    Radio type : 802.11n
    Channel : 11
    Basic rates (Mbps) : 1 2 5.5 11
    Other rates (Mbps) : 6 9 12 18 24 36 48 54
    BSSID 2 : <other access point ssid>
    Signal : 0%
    Radio type : 802.11n
    Channel : 11
    Basic rates (Mbps) : 1 2 5.5 11
    Other rates (Mbps) : 6 9 12 18 24 36 48 54
    BSSID 3 : <access point ssid>
    Signal : 87%
    Radio type : 802.11n
    Channel : 1
    Basic rates (Mbps) : 1 2 5.5 11
    Other rates (Mbps) : 6 9 12 18 24 36 48 54
    BSSID 4 : <other access point ssid>
    Signal : 0%
    Radio type : 802.11n
    Channel : 1
    Basic rates (Mbps) : 1 2 5.5 11
    Other rates (Mbps) : 6 9 12 18 24 36 48 54
    SSID 2 : <...>
    What I find odd is this "Taredo Tunneling Pseudo-Interface". As a matter of fact, I have not the slightest idea if this is happening inside this local Windows I have here or if this is something real in the network configuration (on the other side of the access point)... It apparently should tunnel IPv6 to IPv4 and/or vice versa. However, why would there be two connections over the same network interface (IPv6 and IPv4)...
    What is odd as well is that the DHCP server is not part of the subnet my Windows is in. It just seems to announce IP, netmask, gateway to the Windows ... (the gateway is in the subnet). Could it be that the Linux dhcp client does not accept something like that. No, that's unlikely, right? dhcpcd -d should have reported this...
    MoonSwan wrote:Btw, love the name,
    Thanks. Likewise
    MoonSwan wrote:it's nice to see such a name after seeing so many that are intentionally hurtful to others of any stripe in a rainbow.
    Actually, I always felt that the Arch Forum is quite tolerant in this respect. (And so is reddit, but of course, you are right, there are places on the internet where you can run into a lot of assholes. Kind of like in the real world... Quite frustrating.)
    ewaller wrote:I guess it could be a MAC problem. but I don't know.
    Unlikely; on windows the mac address is the same.
    ewaller wrote:  Can you get to the router logs? Can you see if the router saw a solicitation?
    no. and given their network configuration I don't suppose the IT people here would be very forthcoming if I asked them. Their helpdesk said that they couldn't help me since my laptop was not one of their computers.
    ewaller wrote:Also, (just a sanity check) are you sure you are connected to the correct access point?  But that does not make sense -- you said this happens on wired as well sad
    Dang.
    I am. It's WPA2 encrypted & I only have access data to this one wifi network. (To avoid confusing everyone with mentioning too many different things, I did not detail this in the original post. I am accessing it using wpa_supplicant running in a terminal; wpa_supplicant works fine says "connection succeeded" etc. So the problem is not in the WPA/ wifi-connection layer but really in the IP/dhcp layer.)
    ewaller wrote:Is this a corporate environment? A school perhaps?
    Yes, a university. They have someone working here who went through great lengths to make it difficult for people to connect to the internet.

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

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

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

  • [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 Myths

    I have recently noticed that online forums and Linux user communities in particular are prone to developing what I'd like to call "technology myths".
    Most of the problems and solutions given on forums are anecdotal in nature. Problems are rarely sourced to the actual code and suggestions are often casual or incomplete which is of course natural for this kind of communication. However, as certain solutions are being repeated without clear feedback, some notions take deeper roots in the collective consciousness thus becoming myths. Let me illustrate with an example.
    How often have you seen people posting glxgears results? How often have you seen people replying "glxgears is not a benchmark"? Could you actually explain why it's not suitable to be one? The explanation is out there.
    Another example could be the myth that exporting INTEL_BATCH=1 increases performance on Intel integrated GPUs. I have seen this in circulation for a long time, despite the fact that the actual code that could be triggered by this environment variable has been removed a long time ago.
    As Arch Linux is rolling-release and a lot of code is being replaced rather rapidly, old and tried solutions are likely to become obsolete fast. I'd like to ask the Community to share their examples of other widely circulated myths and help keep an updated and sourced list of them (https://wiki.archlinux.org/index.php/Myths) so others will not waste their time trying solutions which are sure to fail.

    In my experience, outdated wiki pages tend to propagate this stuff, along with blog entries. The trouble with blog entries is that they're often fire-and-forget, which means that solutions that might have been necessary a while ago are now unsuitable or unnecessary.
    Wiki pages have no such excuse, being more fluid than blogs posts. This is particularly prevalent on the Arch Wiki, as Arch is a distribution with a small number but a large variety of (mostly) technically-experienced users who will often go to great lengths to increase performance or to accomodate for Rube Goldberg machine-like hardware or network setups. Thus, there are a lot of hacks on obscure pages (not, say, the Beginner's Guide or the major pages).
    What we need is a major overhaul and review of many of the shorter and more obscure wiki pages, such as any of the ones under Request:Correction and Request:Expansion. I've "rescued" a few pages from this purgatory, but many pages have sat there for months or years and I do not have the experience or knowledge to improve them. I think that we could gain a great deal from more community awareness about improving the wiki and trying to encourage people to edit more. Rather than the same editors working on more mainstream pages and ignoring or barely touching the more arcane ones, it might be preferable to have people with little editing experience but more technical experience to take a look at some of the pages, capitalizing on the cumulative knowledge of our userbase a bit more.
    Just a thought.

  • 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 (and general Linux) graphics and artists community

    TheBodziO has started a discussion about the (Arch) linux graphics community. That gives me an idea. It would be nice to create an online (sub)community dedicated to graphics, DTP, and photography centered around Arch Linux. For now, I can only offer some ideas, my experience in graphics and DTP, and lots of hosting space on a non-dedicated server.
    The ideas for the (sub)community:
    * an open forum for discussion, not just Arch-related but 'graphics on Linux' in general
    * a wiki for Linux artists
    * a gallery (d'oh!)
    * an Arch LiveCD for graphics artists
    * a dedicated graphics repository
    If you have suggestions and/or are interested to participate, please post below.

    For start I want to say that I'm content that the new thread have been started to discuss the matters of cooperation of designers and developers communities. It's a good sign.
    As foxbunny said the whole idea is *much* more than another art repository. I thought about creating a common ground - a meeting point - for both developers and designers. Developers have the skills to code. Designers have needs and ideas how to speed up/ease their work. Developers create tools that designers use and designers provide feedback and ideas. What I think free software world lacks is an organized way to provide the pan-project and pan-distro connection between these groups.
    To illustrate the whole thing on a simple example: let's assume that I'd love to have a possibility to lock some operations on elements of my project with password. It's because my work will be given to someone else who will be responsible for placing a text in proper places on the design. I don't want to see him to move or delete something accidentally. It's possible that also some other designers will find that feature useful too. Then maybe some developer will be willing to implement that. The trouble is, that if I propose that feature and encourage its implementation in gimp, I would have to repeat the same process for scribus for example. But the idea is common. I want to state it once and see who will catch the bait . To some extent it will promote deeper integration between different projects.
    Today graphic designers have the tools for editing vector graphics, raster graphics some page design tools. These tools often use the same methodologies! There are bezier curves in gimp, inkscape, scribus... whatever yet they are implemented redundantly. Perhaps thanks to one thoughts sharing panel it will be possible to come with some common solutions. Maybe some common libraries or platforms will emerge in time? I think that mentioned meeting point will keep us close to unix philosophy: do it for a single purpose and do it well. In other words I think that it will allow us to have powerful building blocks on which something even better than today state of the art apps could be build.
    I want to at least start some discussion about the issue. Hopefully this will be only a beginning.
    First I want to ask: do you believe that a subcommunity of archers that would be responsible for communication between the developers and designers would be useful? If so then we could more precisely state our goals and code of conduct.
    Designers experience is of the essence if we want to make free software usable for demanding "art" community.
    Last edited by TheBodziO (2007-10-28 20:35:15)

  • 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)

Maybe you are looking for

  • Two great questions, bonus points for solving.

    The most important first, I cannot change any info on any of my songs. This is a real problem, since the volume balancer also does not work, and had to balance manually. Related issue, I cannot check the button to "not play while shuffling." Very imp

  • Custom metadata fields wont export

    I have created two custom metadata fields but they dont export when you export meta for excel, how can I do this?

  • VPD (Row Level Security) Implementation at Middle Layer

    Hi All, Is there any provison to implement Row Level Security at the Entity Object level? We have a table where in some rows need to be displayed based on the user logged in. We are aware of the VPD implementation using a function and adding a policy

  • Adobe reader for mac & fusion

    I'm trying to install adobe reader X 10.1.3 on my mac running os X 10.7.4. Half way through the install this error pops up and stops the install: "Found a higher version adobe reader in the installation location. Installation will terminate." My gues

  • WLS 8.1 SP2

    Is it possible to download just the servicepack, like you could do back withWLS 6.1? Or do you have to download the whole server?