My Experience Installing Arch Linux 2011.08.19

I will spare you the frustrating first install experience and instead discuss my *slightly* smoother second install experience.  After stumbling around with it the first time and installing random things trying to get a desktop manager installed, I decided to just start over so I deleted the partition and reinstalled Arch Linux from scratch.

First thing is first, in the install experience:

I downloaded the iso from the Arch Linux website on Windows, then promptly tried to figure out how to burn it onto a flash drive.  I didn’t have dd which surprisingly I miss on Windows quite often, so I tried unetbootin.  This sort of booted my computer, but would eventually crash with the error “Waiting for /dev/disk/by-label/… to load” or some other such error.  It would inevitably time out and none of the possible solutions I could find on the internet would work.  Suffice to say, I learned that unetbootin doesn’t work for this iso for some reason.  Instead I used the ever-useful Win32 Disk Imager.  It wants to burn .img files, but for the purposes of this iso (don’t ask me why), you can just type in the name or use the gui to change the filter from *.img to *.* and select your iso file.  This worked for me and allowed me to install Arch Linux (twice).

I have a Windows 7 install already on the hard drive taking up the entire space of the drive.  I learned mid installation that the Arch Linux disk utility (I believe it is cfdisk, can’t believe I already forgot the name) doesn’t shrink partitions like gparted does (the disk utility included in Ubuntu based installers).  So I had to quit and go to Windows to shrink the partition a measly 8GB.  Small, but enough for my purposes.

Next you select your packages.  Arch Linux is all about minimalism so if you know what you’re doing, you can select whatever you want and only get the things on your system that you know you need.  This is unlike many other distro’s that try to “hit the broad side of a barn” by installing everything you could possibly need (in my understanding).  If you don’t know what to install, I highly recommend ‘iw’, and all the base-devel packages (near the bottom, you’ll see them; there’s 12 I believe).  I say to install iw because the Arch Linux Beginner’s guide references iwconfig, but if you don’t install iw then you won’t have it on your system and you’ll be left confused like I was.

Next, you will have the option to modify a few conf files.  My first time around I had no idea what any of them were so I left them blank.  This is a good approach, because it will force you to read wikis and guides and figure out what you need when you inevitably run in to problems later.  I’m going to save you some headache and tell you to modify the mirrorlist file.  Find your country and delete the ‘#’ in front of a couple nearby-looking servers in the list.  This will allow you to use pacman to install things.  Otherwise you’ll just get a series of ‘… not found’ errors when you go to try and install things that will leave you pissed off.

Also, and this is important, SET YOUR ROOT PASSWORD.  Also, DON’T FORGET YOUR ROOT PASSWORD.  There’s not too much else I can say about the rest of the install.  It went smoothly.

Once you finish the install process (which is incredibly short and sort of lacks the “install” portion of the process that Windows and other distros have (ie where you watch a progress bar for 15 minutes) but hey it works and its fast!), you get a command line.  Just type ‘reboot’, and your system will reboot into another command line that will ask you to login.

Login as ‘root’, and use the root password you set during the install process (you did listen to my advice, you know, the words in all caps above, didn’t you?).

Now, if all you want to do is make text files and play with bash tools on your computer, then you’re done! Bash away to your heart’s content! 

If you want to do more with your system, you’re probably going to need to install some things.  To do that, you need an internet connection.  Generally, you can just follow the Beginner’s Guide on the Arch Linux Wiki.  If you have a setup like mine, I’ll tell you what worked for me.  I’ve got a wireless router with a WPA2 Personal password set.  We’re going to use a program called ‘wpa_supplicant’ to connect to this.  I’ve never heard of it before, but that’s never stopped me from breaking things in the past.

First, backup the existing /etc/wpa_supplicant.conf file by typing “mv /etc/wpa_supplicant.conf /etc/wpa_supplicant.conf.bak”

Next, create a new file by typing “wpa_supplicant YOUR_SSID “YOUR_PASSWORD” > /etc/wpa_supplicant.conf”

Next, we will type this command: “wpa_supplicant -B -Dwext -i wlan0 -c /etc/wpa_supplicant.conf”
I’m not sure what it does exactly, but its required.  I can tell you that -Dwext is an argument specifying some sort of driver (probably generic?), -i wlan0 obviously is specifying the interface, which is wlan0 for me, but if you have half a dozen wifi cards on your exotic laptop, then you may want to type “ip addr” and figure out which one you’re going to use and change that argument accordingly.  -c /etc/wpa_supplicant.conf specifies the wpa_supplicant file we created just a moment ago.
Finally, assuming you are running DHCP like I am, you type “dhcpcd wlan0” and you get a series of outputs that should culminate in a recognizable IP address ( for me) and some other cryptic things).  Test out your new connection by pinging something “ping”.  You should get responses back.  If you all you get is dropped packets, you probably don’t have an internet connection.

Great, we have a connection, lets start install all the free linux stuff now!  Not so fast, for some reason, everything is broken and shitty.  The Beginner’s Guide wants you to update pacman, and this is a good idea, except it doesn’t work.  Both times on brand new, haven’t-touched-anything, installs, I got conflicting files errors from a few files that belonged to tzdata.  How do I know they belonged to tzdata?  While searching to try and remedy this error, I discoverd that you can figure out what package a file belongs to by typing “pacman -Qo FILE_PATH”.  All three of the conflicting files belonged to tzdata.  The first thing I tried was updating tzdata.  It told me updating it was a bad idea because pacman needed to be updated, which made me turn green and kill a few innocent bystanders; after all, I couldn’t update pacman because tzdata needed updating, now I can’t update tzdata because pacman needs updated?  Ridiculous.  Poppycock.

At least it gave me the option to ignore this warning and continue anyway, which I did, and flowers and candy promptly materialized and the day was generally happy for another few seconds until I tried doing more things with Arch Linux, when it all turned to shit again.  At least after updating tzdata, I was able to update pacman.  Also, don’t forget that to do the “pacman-key –init” stuff (which you must do, otherwise half your installs will fail for cryptic reasons), you must update pacman first.  I repeatedly tried to do pacman-key –init before updating pacman (and tzdata) and it just told me it didn’t know what the hell pacman-key was, and that I should go **** myself.  After more innocent bystanders were injured in my ragefest, I decided to update pacman, and then afterwards tried the pacman-key –init command, finding to my delight that it now magically worked.  I should note that I’m not trying to replicate the Beginner’s guide here, after pacman-key –init is done (and it takes a LONG, LONG time (protip, type an ‘&’ at the end to make it run in its own terminal and let you play at the command line while it works)), you have to to pacman-key –populate archlinux to finish that process.  I may not mention things like this that don’t give me grief.

Next, update the package list like the wiki says: “pacman -Syy”, then update the entire system “pacman -Syu”.

Add your user “adduser” since its bad to always play as ‘root’.

Now, you get to finally install whatever you want.  At least you get to attempt to do so.  My troubles the first time around were in trying to install an GUI of some sort.  Specifically, I was thinking (stupidly and naively of course) that I could replicate this:  That failed miserably and was the source of my problems.  With that learning experience behind me, I’m going to attempt to install a more conventional GUI and hope it goes more smoothly.  I will try to update this with my experience, but seeing as how I never post to this blog, you shouldn’t hold your breath.  I won’t be responsible for the brain damage that will ultimately ensue, although I firmly believe that Arch Linux would be jointly responsible for that brain damage.

Posted in Uncategorized | Leave a comment

I don’t know what to talk about

I don’t know what to talk about here…  I suppose I could talk more about Xirvir, which I am continuing to work on, but I’m sitting in Contracts class right now.

Posted in Uncategorized | Leave a comment


Check out Xirver, the HTTP Server I wrote about in my previous post at

Posted in Uncategorized | Leave a comment

HTTP Server

I’ve been writing an HTTP server lately and man its hard.  Oh sure writing some piece of crap that will parse some request text is fairly easy.  Writing a system that manages its own memory and can (hopefully) handle thousands of requests per second without slowing down is no easy task.

I’ve reimplemented the same thing 3 times now, starting in C++, then moving to C.  My 3rd implementation is actually very similar to my first implementation.  Its also similar to nginx because we both use buffer chains.  I didn’t discover nginx until partway through the third rewrite.  I’ve also discovered GWAN, but its source code is closed so I can only get tidbits about how it works from its FAQ and forum posts.  I’ve looked at the source for nginx and that thing is convoluted and dense.

My goals for this server are for the source code to be *easy* to read.  Nice long and descriptive variable names plugged into descriptive function names makes the code almost self documenting (HA!).  The parse is pretty complicated though, at least at first glance.

Anyway, I’ve also looked at Mongrel2 which is a pretty cool concept.  Or maybe the website just fooled me.

I would like to write here about how the implementation is going, but I will probably spend far more time actually coding and testing rather than writing.  We’ll see.

Posted in Uncategorized | Leave a comment

Oops, another test

I need a picture to #test this out.6291_10100103089399894_8369906_57350204_3462285_n.jpg

Some bold text will do also.

Posted in Uncategorized | 2 Comments

Texect is awesome

It’s getting large and I can’t remember where I put something and whether or not its been replaced; so this is a #test

Posted in Uncategorized | Leave a comment

Well I haven’t posted to this wordpress blog in a while so here you go: is pretty sweet and getting sweeter by the day so you should definitely check it out!

Posted in Uncategorized | Leave a comment