Thursday, August 22, 2013

Is freedom worth the fight

Is freedom worth anything? Countries fought for freedom and several others continue to do so. Do they know the value of freedom? Countries which have been free from eternity, do they know the value of freedom? Countries who fought and are fighting, in that country do everybody know what freedom is or what are they going to do when they "get" it. Do everybody in the country fight for it? Do everybody in the country want it? Are people so much engrossed in their "walled garden" that they dont want to skip the ecstasy of staying in a "walled garden"? Are people programmed to such an extent that they dont want to look beyond the garden? Are they getting whatever they want in that garden? Is it only "that much" they pine for or made to pine for? The infinite human brain, is it reduced to the pea sized brain of the dinasour? Are human capabilities going back? Can freedom wake people from their walled gardens and make them to look beyond the garden? Can freedom yield brains with capabilities as huge as the dark energy. Is freedom the panacea for all the problems in the world? Will freedom allow the human brain to overcome the law of least resistance?

Are people, who fight for freedom, fight for everybody, or for an elite group of enlightened people. Is fighting for freedom and interpreting it, the job of an elite group of people? Is the largesse independent of the freedom school of thought? Is the largesse there just to enjoy the benifits of the struggle by this elite group of freedom fighters? And after getting the much sought out freedom, is the largesse free to carry on enjoying in their walled garden. Is that the aim of the struggle? Were there no people who were happy slaving around just to keep themselves and their walled garden happy? Are the largesse supposed to continue with status quo without any inhibitions, without any contributions back to the society? Are people fighting for freedom in their own "walled garden"?

Is creativity, improvement, social attributes, general good, world citizen, not embedded in the spirit of freedom? Is freedom a seperate word? Is the word freedom in its own "walled garden" Is it an "ideology" which the largesse dont understand or they think that they should not understand, or they think that it is not their job? Is the present societal setup such that people are made to forget the value of freedom and made slavery a more shiny word to use? Are the largesse happy with the perpetual freedom handed over to them by the big corporations? Do the corporations change the scope and meaning of it every now and then?

Ok. So, You have freedom. How many are using it? Has it affected the brain usage of the largesse in any way? You tell me, this is what freedom is about. In summary you are making these statements

I am whatever I am, however I am, I will be "I"
I will strive to be "me"
I am here to prove Newtons laws of motion
I will resist, if futile, I will take an equillibrium position taking the least resistance path
If not acted upon, but still the external environment is changing, I will not, why should I, I am happy with whatever I am
I will try with all my effort to make the environment around me a shield so strong, I cannot be acted upon
I love me being elitely me
I think of only myself
I am happy that the knowledge of the world is free because of freedom. But I dont want freedom. I am happy with me not knowing anthing about freedom.
I am in a free world but I dont care about freedom
I use all the facilities coming with freedom
I dont care about all the drawbacks it has. Oh, come on, when I didnt care much about freedom do i care about the lack of it
The society is just there. It was created in a fraction of a second. Mankind is whatever it is, just like that created again, in a fraction of a second.
I have my place on this planet. But, that is not the result of freedom. It was just there.
I am happy with my walled garden. I dont care how it was raised. It may be full of holes, I am happy with it.
I dont have any problem in staying in a walled garden full of loopholes to be exploited.
I care a damn about freedom or the lack of it.

Long live "Freedom"

Monday, August 12, 2013

AOSP on Sony xperia Z

Disclaimer: I dont take any responsibility for the damage of your equipment. If you point your ire at me, I will have the last laugh. USE THE INFO AT YOUR OWN RISK.

Sony android phone team has taken the android philosophy very seriously. This is one team within sony which is passionate w.r.t idea, philosophy and legality of FLOSS. If we compare the android and the GNU/Linux eco-system, I would sum up the relation between them by using Android/Linux for android and GNU/Linux for the desktop OS which we are familiar with. While GNU used the Linux kernel for coming up with a complete Desktop OS, Google built the UI shell and other mobile telephony stack over the Linux kernel. But, the similarity ends there.

The two components of GNU/Linux are licensed with "free as in freedom" philosophy with the GPL.(Though the linux kernel is licensed with GPL V2 and the GNU utils are mostly licensed with the latest GPL version). The source code of the original program and all its improvements are always and should be made available in source form for public consumption.

If we come to Android/Linux, the first part is licensed under the Apache license. This is a permissive licensing philosophy, wherein, the original source and its improvements "may" be provided in source form if the author wishes, or else the source can be withheld and only the binaries "may" be provided for public consumption. So, the author, google, and other mobile manufacturers who licence android from google are not compelled to share the original source code(scripted by google) or any variations of it for use by various mobile manufacturers with the general public. The result is, if google wants to put out the source for its newest shiny android version it will, if it is not in a mood to do it, then also, google is honoring the apache license. The second part, the linux kernel, is licensed under GPL v2, google and all the mobile manufacturers have to honor the license and give out the kernel with all their additions and alterations for public consumption.

This post is about sony, let us continue. Sony is the only phone manufacturer which honors the GPL for the linux kernel meticulously, it is almost like clockwork. Even if the sony mobile team has released a beta kernel for a specific device, the source is out within a week. But, But, with Xperia S, sony took their commitment to the FLOSS philosophy a step ahead. They went ahead and release the "android" portion of the OS also for public consumption, again, of course under the apache license. There your are. You have the entire gamot of source code of "Android/Linux" in your hands, now, Go Play.

Once the sony smartphone team released the source for xperia Z, their flagship phone for 2013(while other manufacturers closely guard their flagship phones for nearly a year by not releasing the kernel source which they are supposed to do with the release of the device), I had decided that will be my next phone. It does not match with my primary requirement of hardware keyboard, but, the hardware specs was awesome and the purple color was beautiful on this phone.

The XDA forums is full of various spins of upmarket roms with "n" number of customizations. You will be spoilt for choice. Only one rom of mention still struggling is the MIUI. But devs are on it and I definitely believe they will succeed in running it on the Z.

Oh, let us get back to our topic, FLOSS. Google releases the source code after baking the lates version of the android OS in-house. It is released under the label "AOSP" ie, the Android Open Source Project. This will be the most generic tree of the source. Normally, it would be difficult to compile this vanilla version as it is and run it on a phone. It would be missing the device specific code required to get it running on a specific phone. The other missing thing, vital, would be the binaries which are required to use the all the hardware(SoC) properly.

Now, we have a completely new word here, binary, yes all FLOSS enthusiasts hate it. Every manufacturer makes use of an Arm SoC or an Intel SoC. The manufacturer provides the drivers for these hardware components. But, the hardware manufacturers dont play well with the FLOSS philosophy. They guard their hardware, its implementation and usage with hawk eyes. The driver are always release in the form of blobs(Binary large objects). They have to be linked in during the compile stage of the rom to result in a fully working rom to be installed on your device.

We now have one non-freedom component on our otherwise "free as i freedom" system. But, we are somewhat ok with it.(Apologies to RMS). Anybody can compile an AOSP rom for the xperia z. The sources are at github with clear instructions for building it. You just have to have good bandwidth, patience, building on GNU/Linux (64 bit)(building on windows,..... forget it) and a lot of googling to use the experience of developers over the XDA forums.

If you dont want to compile it, An XDA developer going by the username pabx, has done it for us. Before I proceed, if you are an XDA member go and thank him. If you have a paypal account donate to him. This rom compiled/developed by him is awesome. It is one of the minimal rom I have seen and used. When I backed it up with CWM, with all my usual apps installed, the backup size was, believe it (or not), 560MB. How awesome is that. Compare it with the stock rom whic is approx 1.7GB. Now, that is light. But do remember that it is minus all the bells and whistles. It may not be visually appealing compared to the stock rom. Few quirks might be lurking here and there. My major quirks were two. One, the volume is awfully low(Stock rom with purexaudio is awesome. Hear it to believe it). Two, Plugging an earpiece without mic will result in phone calls not being audible both for the caller and the receptor. The number two problem does not exist for earpiece with mic(for eg, the sony supplied one). One more issue is the video playback. On the stock rom it is great even when the processor is underclocked to 800MHz with the hardware decoder. On the AOSP rom you have to use the software decoder for better performance.

How do we install this awesome effort on our phone?

Before you unlock your bootloader, try this tool. This is to backup the TA partition which is required for the Bravia Engine to work(Just remember that the Bravia engine comes into play when you watch a video or photographs. Otherwise the BE does not do anything during the general use of the device.) I have not tried this. But please go through the thread. It is quite big and intimidating. I did backup the TA partition but not tried to restore it back. But there are numerous examples on the thread where people have restored the TA partition and got back the BE. Please do remember that for restoring the TA, you should be back on "pure" stock(kernel and the rom).

If possible make an .ftf of your current stock rom or download one(Just in case)
Install flashtool
Install fastboot drivers from within the flashtool installation(The installer is in C:/flashtool/drivers). Double click the .exe in that folder. If you are using windows 7 or windows 8 go here)

1. Unlock your bootloader go here
2. Root the device go here
3. Install CWM recovery go here
4. Backup the stock rom with CWM recovery brief intro
5. Enter CWM and clear data, cache and dalvik cache
6. shutdown the phone
7. Connect one end of the USB cable to the computer and plug in the phone end of the cable to the phone while simultaneously pressing and holding the volume up button
8. Download pabx's effort from here
9. Extract the archive (unzip pabx_aosp_yuga*.zip) to c:\flashtool\x10_flasher_lib\
10. Open the cmd window on windows and change directory to x10_flasher_lib

run the command below
fastboot devices

 -- It should list the device name (not exactly the name of the device) If you get an output, then continue, otherwise you have problems regarding fastboot drivers. If you get an output, run these commands(wait for completion of the command befor entering another)

fastboot flash boot boot.img
fastboot flash system system.img

If this is an initial installation,
also run:

fastboot flash userdata userdata.img

# NOTE: The above command will wipe all your data and the internal SD card - only do this on first-install of this rom.

Now run
fastboot reboot  ---Or just disconnnect and reboot

Now, we have to root this rom. Download superuser and copy it to the external sd card of your device. reboot the device, press the volume up button continously as the phone reboots, you will enter CWM(the swiss army knife). Choose Install zip/Install from external sd card and choose the file.


Now you are rooted with an AOSP rom.

Now, we should boot into pure vanilla experience. Of course, you need google apps like the play store, gmail, maps etc... Download this, copy to external sd card and repeat the procedure for installing it via cwm.


You now have the play store. Go ahead and install your favorite apps.


To get more realestate from your phone, edit the build.prop in /system with root explorer and change the lcd density to 320.

Operating the phone using the softkeys at the bottom of this huge phone is tricky. Install LMT launcher. start the app, start the service, click the option of start this app at boot. Then edit the build.prop in /system and add the following line at the bottom



If the media players are not able to save the album details and they show empty libraries, then Edit file /system/etc/permissions/platform.xml

    Find text

        group gid="sdcard_rw"

    And replace it with
permission name="android.permission.WRITE_EXTERNAL_STORAGE"         group gid="sdcard_rw"
        group gid="media_rw"   ---> Only this line is to be added in the format exactly as in the file with the arrows and the backslashes


    Make it with caution. XMLs are very syntax sensitive. Any mistake may make your phone inoperable.

Thanks to all the users and fantastic devs at XDA for bringing in excitement into the phone arena. The info has been culled from various resources. If any user/dev requires a mention please comment. It will be immediately updated.

UPDATE: 12.11.2013:   Owing to un-ethical kang of pabx's rom, his builds and discussion will now happen
He has succesfully compiled kitkat for our device. The most important of all we now have double tap to wake for our xperia z thanx to championswimmer, dev at the xda. It is now available for this AOSP rom also. For further instructions please visit the above link and also visit his thread on xda. 

Sunday, August 4, 2013

Installing Arch GNU/Linux on Macbok air Version 4.2(Late 2011) part 4

Disclaimer: I dont take any responsibility for the damage of your equipment. If you point your ire at me, I will have the last laugh. USE THE INFO AT YOUR OWN RISK.

 So, you have now rebooted to your liberated computing experience and have started loving to being master. Let us continue


add the line below in settings - settings-manager-session and startup-application autostart
/usr/bin/xfwm4 &


Create 8GB swapfile instead of a swap partition(which we did not create while installing)
in the root partition.

dd if=/dev/zero of=/swapfile bs=1024 count=8388608  -- Red hat recommends twice the ram
if you are going to use the hibernate feature. If not you can halve the size of the swapfile
But, I believe that air users would love to use the hibernate feature. With hibernate the
entire ram contents are dumped to the swap partition and is read back when brought back
from hibernation.

swap is responsible for many a hacks on Unix/Linux systems. Restrict permissions
by using

chown root:root /swapfile
chmod 0600 /swapfile

mkswap /swapfile   -- To convert the file to swap file type
swapon /swapfile   -- To start using the file as swap, now.

To use the swapfile at every boot up

/swapfile swap swap defaults 0 0


#echo 100 | tee  /sys/class/leds/smc\:\:kbd_backlight/brightness  --- for full backlight brightness
#echo 00 | tee  /sys/class/leds/smc\:\:kbd_backlight/brightness  --- for backlight off


To use it with Arch, you simply need to install the xf86-video-intel package, this has the SNA patch included and should work with the most recent Xorg. It's then a simple case of creating /etc/X11/xorg.conf.d/20-intel.conf and adding:

Section "Device"

Identifier "Intel Graphics"
Driver "intel"
Option "AccelMethod" "sna"


check your log to see if SNA is being used with the below command:

cat /var/log/Xorg* | grep SNA


To make all these changes, open up a terminal and run:

sudo nano -w /etc/fstab

Then for all SSD devices in your system remove 'relatime' if present and add 'noatime,nodiratime,discard' so it looks something like this:

/dev/sda   /   ext4   noatime,nodiratime,discard,errors=remount-ro 0 1


echo 0 > /pro/sys/vm/swappiness


    echo noop > /sys/block/sdX/queue/scheduler

Or better, use udev rules to check for rotational media.

#'deadline' is recommended by the author of CFQ for SSDs, replace it with 'noop' if you want.

    Create a file with a name like 10-ssd.rules in /etc/udev/rules.d containing:

# set a larger readahead size
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/read_ahead_kb}="1024"

# set deadline scheduler for non-rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"

now, verify the scheduler

$ cat /sys/block/sda/queue/scheduler  -- The output would be. The selected scheduler is indicated in brackets.

noop [deadline] cfq

Replace "relatime" with "noatime" to stop the system from writing the last access times as discussed above. Next, add the following lines to fstab to put temporary and log files in RAM instead of on the solid state drive:

tmpfs   /tmp       tmpfs   defaults,noatime,mode=1777   0  0
tmpfs   /var/log   tmpfs   defaults,noatime,mode=0755   0  0
tmpfs   /var/spool tmpfs   defaults,noatime,mode=1777   0  0
tmpfs   /var/tmp   tmpfs   defaults,noatime,mode=1777   0  0


Comment all time related lines in /etc/rc.conf


and other time related entered in the previous steps

run   hwclock -w --localtime as root
It will create a file /etc/adjtime
cat /etc/adjtime
you should get some output with LOCAL in the end



emacs /etc/locale.gen
uncomment en_IN UTF8

emacs /etc/locale.conf
add the following

export LANG=en_IN.UTF-8

run this command   hwclock --systohc --localtime

sound getting disabled once in a while

Keep using the system for a week/fortnight it will get repaired automatically


If the fn keys stop working for changing the display brightness then,

run the following commands

cat /sys/class/backlight/max_brightness
cat /sys/class/backlight/brightness

enter a value from 0 to max_brightness to change the brightness by

#echo 245 | tee brightness

Increase or decrease based on requirement.

UPDATE: The aboe step is not required. since brightness can be easily adjusted via plugins in xfce.

Frequency driver issues

Linux 2.9 and above are using the newest frequency driver called intel-pstate. This is for newer cpus. Tha macbook air was running hot. So remove it until the previous old processors are supported by this driver.
1. add intel_pstate=disable to the kernel line
2. echo acpi-cpufreq >/etc/modules-load.d/acpi-cpufreq.conf

If you dont like the colored borders behind the names of icons on the desktop do this

 It is possible you may have a .gtkrc-2.0 file already. If so, the
following lines can be added to it. Otherwise you will need to make this
file yourself and paste the below lines in the .gtkrc-2.0 file.

To make the file, just open a text editor and paste the following:

style "xfdesktop-icon-view" {
    XfdesktopIconView::label-alpha = 0
widget_class "*XfdesktopIconView*" style "xfdesktop-icon-view"

So you want to connect your latest android smartphone

 Install packages gvfs gvfs-afc gvfs-mtp for automounting of USB devices
But just remember that mtp sucks on GNU/Linux as well as windows.

Thats it folks!!!. I dont think I have forgotten anything. All the best with your freedom.

Installing Arch GNU/Linux on Macbok air Version 4.2(Late 2011) part 3

Disclaimer: I dont take any responsibility for the damage of your equipment. If you point your ire at me, I will have the last laugh. USE THE INFO AT YOUR OWN RISK.

So, You are not used to being a master. You are used to situations where you adapt yourself to the Operating system(Master) and tells what you should be doing. So, be careful, what happens from now on is different. You tell the Operating system what is to be done and how it is to be done.

Let us begin.

After successful boot u will be logged in as root with the root prompt. Type the commands below as described. Majority of this info has been culled from the Arch wiki.

# nano /etc/hostname
enter your hostname press ^o and ^x to exit

# nano /etc/locale.gen

en_US.UTF-8 UTF-8
en_GB.UTF-8 UTF-8

# locale-gen
# export LANG=de_DE.UTF-8

select your wifi connection from the list given. It will prompt for the password. Give the password and you are connected to the public network.

#cgdisk /dev/sda

Be careful here. remember the partition scheme you had decided in the beginning. delete the partition you had created in osx for linux. Now create a partition and select the type as "linux". cgdisk is an ncurses interface for the gdisk tool. I created only one partition. cgdisk manages a GPT parititon table, rather than the traditional MBR-style partitions. If swap is required we can always create swap on a file in the regular file system. Remember the partition number you created. You can always find out the partition number by

#lsblk /dev/sda

format it to your favorite file system

#mkefs.ext4 /dev/sda5

mount the partition

#mount /dev/sda5 /mnt

Since we are on an efi system, we have to mount the first partition

# mkdir /mnt/boot/efi
# mount /dev/sdax /mnt/boot/efi

 Select a mirror

Before installing, you may want to edit the mirrorlist file and place your preferred mirror first. A copy of this file will be installed on your new system by pacstrap as well, so it's worth getting it right.

# nano /etc/pacman.d/mirrorlist

    Alt+6 to copy a Server line.
    PageUp key to scroll up.
    Ctrl+U to paste it at the top of the list.
    Ctrl+X to exit, and when prompted to save changes, press Y and Enter to use the same filename.

If you want, you can make it the only mirror available by getting rid of everything else (using Ctrl+K), but it's usually a good idea to have a few more, in case the first one goes offline.
Tip: Use the Mirrorlist Generator to get an updated list for your country. HTTP mirrors are faster than FTP, because of something called keepalive. With FTP, pacman has to send out a signal each time it downloads a package, resulting in a brief pause.

 Install the base system

The base system is installed using the pacstrap script.

# pacstrap /mnt base base-devel

 Generate an fstab

Generate an fstab file with the following command. If you prefer to use UUIDs or labels, add the -U or -L option, respectively. It's also a good idea to check it before continuing:

# genfstab -p /mnt > /mnt/etc/fstab
# nano /mnt/etc/fstab

 Chroot and configure the base system

Next, we chroot into our newly installed system:

# arch-chroot /mnt

At this stage of the installation, you will configure the primary configuration files of your Arch Linux base system. These can either be created if they do not exist, or edited if you wish to change the defaults.


Locales are used by glibc and other locale-aware programs or libraries for rendering text, correctly displaying regional monetary values, time and date formats, alphabetic idiosyncrasies, and other locale-specific standards.

There are two files that need editing: locale.gen and locale.conf.

    The locale.gen file is empty by default (everything is commented out) and you need to remove the # in front of the line(s) you want. You may uncomment more lines than just English (US), as long as you choose their UTF-8 encoding:

# nano /etc/locale.gen

en_US.UTF-8 UTF-8
de_DE.UTF-8 UTF-8

# locale-gen

This will run on every glibc upgrade, generating all the locales specified in /etc/locale.gen.

    The locale.conf file doesn't exist by default. Setting only LANG should be enough. It will act as the default value for all other variables.

# echo LANG=en_US.UTF-8 > /etc/locale.conf
# export LANG=en_US.UTF-8

Note: If you set some other language than English at the beginning of the install, the above commands would be something like:

# echo LANG=de_DE.UTF-8 > /etc/locale.conf
# export LANG=de_DE.UTF-8

To use other LC_* variables, first run locale to see the available options. An advanced example can be found here.
Warning: Using the LC_ALL variable is strongly discouraged because it overrides everything.

Timezone Available time zones and subzones can be found in the /usr/share/zoneinfo// directories.

To view the available , check the directory /usr/share/zoneinfo/:

# ls /usr/share/zoneinfo/

Create a symbolic link /etc/localtime to your zone file /usr/share/zoneinfo// using this command:

ln -s /usr/share/zoneinfo/Asia/Calcutta /etc/localtime


A list of available services (and their running status) can be found using the command:

# rc.d list


Add your hostname in /etc/hostname:

# echo myhostname > /etc/hostname


     Install the required packages:

# pacman -S wireless_tools netctl

If you use WPA/WPA2 encryption, install:

# pacman -S wpa_supplicant wpa_actiond
#pacman -S dialog(for using wifi-menu it is a dependency)

initrd will be generated automatically during the install

#modprobe dm-mod

     Connect to the network with wifi-menu (optionally checking the interface name with ip link, but usually it's wlan0), which will generate a profile file in /etc/network.d named after the SSID. There are also templates available in /etc/network.d/examples/ for manual configuration.

# wifi-menu


For 64-bit aka x86_64 UEFI firmware:

# pacman -S grub-efi-x86_64

The UEFI system partition will need to be mounted at /boot/efi/ for the GRUB(2) install script to detect it:

# mkdir -p /boot/efi
# mount -t vfat /dev/sdXY /boot/efi

Install GRUB UEFI application to /boot/efi/EFI/arch_grub and its modules to /boot/grub/x86_64-efi (recommended) using:

# modprobe dm-mod
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=arch_grub --recheck --debug
# mkdir -p /boot/grub/locale
# cp /usr/share/locale/en\@quot/LC_MESSAGES/ /boot/grub/locale/

While using a manually created grub.cfg is absolutely fine, automatically generating one is recommended:
Tip: To automatically search for other operating systems on your computer, install os-prober before generating it:

# pacman -S os-prober

# grub-mkconfig -o /boot/grub/grub.cfg

After all this a .efi is installed in /dev/sda1/EFI/arch_boot/
This will read the grub.cfg in /boot/grub/grub.cfg

#passwd    change the root password

pacman -S xorg xorg-apps xorg-drivers xorg-fonts

#mkdir /home/vanisri
#useradd vanisri
#passwd vanisri
#chown  -R  $USER:$USER  $HOME


Hold the option button. This will choose the previous working refit screen. Here select osX. Once in osX re-install refit.
Hold the option button and see everything is fine.
Now you will get back the old refit which you have been using previous to installing arch. This is required since the step to install grub discussed above installed grub to the efi partition thereby overwriting the previous refit and you boot directly into grub instead of refit.

pacman -S xfce4 xfce4-goodies
pacman -S gstream.....
pacman -S firefox
pacman -S flashplugin
pacman -S alsa_utils alsa_oss ffmpeg alsa_plugins libva-driver-intel ttf-dejavu
#cat /etc/group
#gpasswd -a vanisri audio (Like this add yourself to the other groups)

pacman -S lightdm

pacman -Syu

#emacs /etc/rc.conf

To display the correct time.

To check whether time is set properly

run the commands below
# hwclock --show
$ date

Both the commands should show the same time. Else run the following

# hwclock --hctosys

Now check the two commands above. They should be the same.

That completes a near 90 percent of Arch GNU/Linux installation on the Macbook air. Little more tips/adjustments/betterments in the next post.

Installing Arch GNU/Linux on Macbok air Version 4.2(Late 2011) part 2

 Disclaimer: I dont take any responsibility for the damage of your equipment. If you point your ire at me, I will have the last laugh. USE THE INFO AT YOUR OWN RISK.

To start, let me make a very strong statement about the state of support for the hardware of this version of Macbook air. The Linux kernel has "Out of the Box" support for all the hardware on this version. So, If you choose any distro which has excellent efi support and the latest bleeding edge Linux kernel you are good to go and try any distro.

I have gone with Arch GNU/Linux and I am loving it. The capability of hand tuning what you want on your laptop or desktop with Arch GNU/Linux is awesome. Coming from Debian GNU/Linux, where there is "flowing" installer where you chose all the options and then finalize the installation, it was different when my arch installer just dropped me to the root prompt and stood there blinking for my command. The exact way how a computing experience should be, You, the user, is the master.

Please go through all the resources I have linked in the previous post. Form your own procedure then You can fine tune it with any gotchas you find in my writeup. Let me be clear here that majority of what I have written here is verbatim copy of the Arch wiki. All the gratitude/thanks/kudos go to the Arch community of devs and users.


    Download the most recent archboot ISO
    Write the ISO to a USB stick using dd or unetbootin(hugely recomended) or burn it to a CD/DVD.
    Prepare hard drive in OSX: (shrink your OSX partition in Disk Utility)

Download refit.dmg(the image file for a mac). Install it on the mac osx
reboot the air and hold the option(alt)key on the keyboard when u hear the start up sound.Boot into osx and reboot two to three times in the same way.
Now plugin the usb stick created and reboot(I would suggest you to get hold of an external dvd r/w, Yes, U can use any USB external dvd r/w. Because I have heard users comment that the dd method is not the best for efi based systems).

Reboot the air and press the option(alt) button at the startup sound.
Wait for a few seconds while refit loads and shows all the bootable files on the air. You will have two images whose logo will be that of a cd disc. One will be named windows and the other will be something like efi.. with the same logo(only the recent arch images have two options)
Select the image with the efi.. on it. Dont do anything on the terminal, wait for 6 seconds, arch will bootup and give you the root prompt and wait for its master's commands.

Be Carful here, Dont select the windows one as suggested in the above guides. There will be some extra steps since grub doesnt play well with efi.
Allow arch to boot.

Now go here

GNU/Linux on Apple Macbook Air 4.2 (Late 2011) part 1

 Disclaimer: I dont take any responsibility for the damage of your equipment. If you point your ire at me, I will have the last laugh. USE THE INFO AT YOUR OWN RISK.

This post is my continuation of my earlier post where I drooled over the hardware implementation of Macbook air. After that post I have seen all the notebook manufacturers try to make a clone and majority have failed except for the samsung versions which have better connectivity options compared to the Air. But Macbook air is still the king in lightweight laptops. Why do I drool over the Airs being a hardcore freedom software evangelist? Hardware, exquisitely crafted hardware.

Let us get down to freeing the Macbook air from propreitory software it is running. I have chosen Arch GNU/Linux as my GNU OS of choice having read reports of it running beatifully on Mac hardware and not interested in running the Microsoft of the windows world, Ubuntu GNU/Linux.
Coming from Debian GNU/Linux, I saw that the ncurses interface for installing the basic OS is very similar. There was a shocker waiting for me. After downloading the latest x86_64 build, I connected the external DVD drive borrowed from my friend and booted it. What happens, The installer starts and dumps me into a root prompt. Thats it. I have installed slackware GNU/Linux and Debian GNU/Linux with neat installers though still ncurses based.

Time to search the public network. Now I see that the ncurses installer has been done away with. You have to install everything manually. Ofcourse there are lot of tools provided by the Arch GNU/Linux project to make the process simple and straight forward. At this juncture I would like to mention about the Arch WIKI. This is one of the most detailed wiki documentation I have gone through seconded or equalled only by the Gentoo GNU/Linux wiki.The wiki is written beautifully and is very easy to comprehend by anybody with a basic GNU/Linux background. In the process, I chrooted to another GNU/Linux installation for the first time and the raw power of the UNIX philosophy hit me on my face. KUDOS to all the "freeedom" developers.

Here are the links/resources/works/efforts I made use of in liberating my Macbook Air.

The next post will be having all the gory details of installing Arch GNU/Linux on the Macbook air.