Monthly Archive for March, 2011

Linux on Mac with multiple drives – by Larry Edwards

Larry has been following my original post about running Linux on a Mac Pro with multiple drives, and had some dramas himself. He kindly posted his findings in a comment on that thread, so I’m re-posting them here as they might be helpful for someone else.

Here’s a short how-to on installing Linux (running under BIOS emulation) on a Mac Pro with multiple disks. I’ve done this with both RHEL6 and Kubuntu 10.10. RHEL6 requires a third party tool, Kubuntu does not.

One thing to note is that fan control under Linux is less sophisticated than under OS X. Under OS X, my Mac Pro is usually almost silent, whereas with both Linux versions, the fans are always quite noticeable, although not as loud as my old Dell PC.

My setup:

2010 2.66 GHz 12 Core Mac Pro
4 disks, the disks in the first two drive bays make up a RAID mirror
Mac OS X 10.6.6 installed on the RAID mirror

Goal: install Linux, in particular RHEL6, on the disk in the 3rd drive bay of my Mac Pro

WARNING: mistakes or errors in the following can cause you to lose all your data. Follow the procedure at your own risk, and backup any and all disks that contain data that matters to you. This worked for me, it may not work for you.

Preliminary Preparation for RHEL6 (you’ll need Xcode installed)
————————————————

1) Download the rEFIt 0.14 source code:

http://sourceforge.net/projects/refit/files/rEFIt/0.14/refit-src-0.14.tar.gz/download

2) Move the downloaded tar file to some place reasonable and double-click to extract the archive contents. This should create a refit-src-0.14 directory.

3) Open a terminal and go to the refit-src-0.14/gptsync sub-directory.

4) Compile the source code: make -f Makefile.unix

If you have the 10.4 SDK installed, this will fail and you’ll have to edit Makefile.unix, commenting out lines that refer to:

/Developer/SDKs/MacOSX10.4u.sdk.

5) This should create two executables:

gptsync
showpart

6) Now in the terminal, sudo tcsh (or sudo bash) to get admin privileges, and move the executables to somewhere useful, e.g., /usr/sbin.

Procedure for installing RHEL6
———————–

1) Run the “Boot Camp Assistant” app. At the “Create or Remove a Windows Partition” dialog select the disk you will use for Linux, press “Continue” (“Erase and Create a Single Partition for Windows” should be the only possible action) and enter an administrator username/password. When you get to the “Start Windows Installation” dialog, press the “Quit & Install Later” button and exit the program.

Using Boot Camp Assistant is probably not really necessary, everything it does should be possible with “diskutil” and “gpt” command line tools. I use it because it quickly puts the disk in a known correct state.

2) Run the “Disk Utility” app. Select the disk you just initialized with Boot Camp Assistant and select and delete the large Windows MS-DOS (FAT) partition.

At this point you have two options, one: 1) use the Disk Utility app (or diskutil command line tool) to create the desired partition layout for Linux, or 2) create the partition layout within the Linux installer. I assume the latter in the following.

3) Reboot, booting off the RHEL6 installation disk (I used a DVD).

4) Proceed with the installation and when it comes time to partition the disk, choose “Create Custom Layout”. In the free space on your intended Linux disk, create the desired partition layout. I’ve had success with a Linux+swap partition layout (i.e., “/” and swap), a boot+Linux+swap layout, and LVM.

5) When the RHEL6 installation is finished, reboot into Mac OS X.

6) Open a terminal and sudo tcsh or sudo bash to get admin privileges. To determine which device is associated with your Linux disk, run:

diskutil list

Note: the device associated with a specific disk changes across reboots in Mac OS X!

From the commandline run:

gptsync /dev/diskN

where /dev/diskN is the device associated your Linux disk. If you created a Linux+swap partition layout you should see output similar to:

Current GPT partition table:
# Start LBA End LBA Type
1 40 409639 EFI System (FAT)
2 411648 3848329215 Basic Data
3 3848329216 3907028991 Linux Swap

Current MBR partition table:
# A Start LBA End LBA Type
1 1 3907029167 ee EFI Protective

Status: MBR table must be updated.

Proposed new MBR partition table:
# A Start LBA End LBA Type
1 1 409639 ee EFI Protective
2 * 411648 3848329215 83 Linux
3 3848329216 3907028991 82 Linux swap / Solaris

May I update the MBR as printed above? [y/N]

Type ‘y’ and hit return.

That’s it. Your Linux disk should now be an option appearing as “Windows” when you hold down the option key on boot.

NOTE: I occasionally experience a hang after selecting the RHEL6 disk and initiating the boot. There is a short amount of disk activity, and then nothing. The grey screen with the disk icons remains up. I’ve never seen this with Kubuntu, just RHEL6. RHEL6 uses an older GRUB version, so possibly a GRUB bug, although I see a similar problem mentioned in forums on dual booting Windows on Macs (e.g., http://www.insanelymac.com/forum/index.php?showtopic=201737)

Procedure for installing Kubuntu/Ubuntu 10.10
————————————-

For Kubuntu/Ubuntu installation, you don’t need the rEFIt gptsync. The following describes a Kubuntu 10.10 install, I assume Ubuntu 10.10 is essentially identical.

1) Initialize the Linux disk as with RHEL6, but after you delete the Windows partition created by the Boot Camp Assistant app, in the Disk Utility app, create the desired Linux partition layout in the free space. I’ve only tried a Linux+swap layout, but others should work. I usually select the ExFat format for the partitions because that seems to allow more flexibility in sizing than, say, MS-DOS FAT (the format shouldn’t be critical since it will be changed below). Alternatively, use the diskutil command line tool to create the partition layout.

2) Reboot using the Kubuntu 10.10 install disk and proceed with the installation.

3) At the “Allocate drive space” dialog, select “Specify partitions manually (advanced)”

4) In the “Prepare partitions” dialog, look for the Linux drive. It should contain a small ~200MB EFI partition followed by the Linux and swap partitions you created.

5) Select the partition you want to use as the main Linux partition. A small “Edit Partition” dialog should pop up. Select “Ext4″ from the “Use as:” menu, press the “Format the partition” check-box, and the mount point should be /.

6) Select the partition you want to use as swap. In the “Edit partition” dialog, select “swap area” as the “Use as:” choice.

7) Back at the Prepare partitions” dialog, select the “Device for boot loader installation”. You can choose the disk device, for Master Boot Record (MBR) installation or the Linux partition device for Volume Boot Record (VBR) installation (both seem to work, I usually use the MBR). For example, if your Linux disk is /dev/sdb and your Linux partition is /dev/sdb2, choose the /dev/sdb for MBR installation, /dev/sdb2 for VBR. Then press the “Install Now” button.

8) Continue with the installation till done, and reboot.

That’s it. Your Linux disk should now be an option appearing as “Windows” when you hold down the option key on boot.

Kororaa 14 (Nemo) Beta 5 released

Kororaa 14 (Nemo) Beta 5 has been released for download, in 32 and 64 bit with KDE and GNOME. If you’ve been waiting to try out Kororaa, this is the version to test!

Kororaa 14 (Nemo) GNOME desktop

I have finally packaged up all of the system changes we make, into RPMs in the Kororaa repository. This means future changes can be pushed out via updates – theoretically, no need to re-install when the new release comes out (unless you want to).

This version is recommended for all new installs. For existing installations, you can update get these changes by installing the following packages:
sudo yum install kororaa*

New features:

  • Update to Firefox 4 by default for KDE and GNOME
  • Packaged all Kororaa system changes into RPM repository

Bug fixes:

  • Fixed missing dictionaries in LibreOffice

We’d love to hear your feedback on the forums, so download it today! :-)

Thanks!

Kororaa 14 (Nemo) Beta 4 released

Kororaa 14 (Nemo) Beta 4 has been released for download, in 32 and 64 bit with KDE and GNOME.
Note: SourceForge mirrors still haven’t picked up the new Beta4 ISOs, so it will be slow. Try to pick a mirror closer to you, if you can. Hopefully this will be fixed soon.. but it’s out of my control

In this release, we have made RPM packages for all the extra apps and extras that Kororaa installs. The Kororaa RPM repository is now online and all future changes will be pushed automatically through system updates.

This version is recommended for all new installs. For existing installations, you can update get these changes by installing the following packages:
sudo yum install kororaa*

New features:

  • Latest packages including updated kernel, latest KDE, and GNOME
  • Packaged all Kororaa apps (inc. Firefox addons) and extras into RPM repository
  • Change default Firefox home page, add links to Kororaa forums, etc.
  • Added Audacity for KDE (already in GNOME)
  • Added AAC support (via faac)
  • Added liveusb-creator back
  • Back-in-time backup tool for KDE (still deja-dup for GNOME)
  • Dropped gnome-mplayer for VLC under GNOME
  • Added Miro (internet TV) to KDE
  • Complete “Ubuntu like” authentication with admin user

Bug fixes:

  • Removed KDE Plasma theme for Firefox under GNOME

We’d love to hear your feedback on the forums, so download it today! :-)

Thanks!

Microsoft “licenses its patents” to Android manufacturers, sues if they don’t agree

There’s never been any evidence that Microsoft goes after Linux based products, right? Hog wash.

Well, now it’s just Tom Tom all over again. So, we know that Microsoft has numerous patent licensing programs in place, including exFAT, FAT, .NET (Novell), and now Android. We know that Microsoft claims that Linux violates a few hundred of their patents. We know that as a part of these licensing agreements, companies sign a Non Disclosure Agreement so that they can’t let everyone else know the details. We know that if companies don’t agree to this extortion, Microsoft sues them.

Despite all this evidence, people still think .NET technology in Linux is not a risk. Wake up and smell the bananas, you morons.

Microsoft states that Android infringes on their intellectual property:

The Android platform infringes a number of Microsoft’s patents, and companies manufacturing and shipping Android devices must respect our intellectual property rights.

Microsoft has a patent licensing program in place for Android, which companies like HTC have signed:

To facilitate that we have established an industry-wide patent licensing program for Android device manufacturers. HTC, a market leader in Android smartphones, has taken a license under this program.

Microsoft is suing Barnes & Noble, Foxconn and Inventec (link above) because they did not take a license.

Microsoft Corp. today filed legal actions…against Barnes & Noble, Inc. and its device manufacturers, Foxconn International Holdings Ltd. and Inventec Corporation, for patent infringement by their Android-based e-reader and tablet devices that are marketed under the Barnes & Noble brand… We have tried for over a year to reach licensing agreements with Barnes & Noble, Foxconn and Inventec. Their refusals to take licenses leave us no choice but to bring legal action to defend our innovations and fulfill our responsibility to our customers, partners, and shareholders to safeguard the billions of dollars we invest each year to bring great software products and services to market

You know what will happen now. They will settle and Microsoft will continue this racket.

-c

On becoming a Fedora maintainer

Recently, Rahul Sandaram (Fedora dev and creator of the Omega Fedora Remix) offered to sponsor me to become a Fedora maintainer, which I accepted. A day or so later I pushed my first updates into Fedora for deja-dup – the package I now co-maintain while I learn the ropes.

Previously, one would become a maintainer by first submitting a new package and thereby overtime demonstrating an understanding of the Fedora packaging process and guidelines. However recently a new system was approved whereby one could become a co-maintainer of an existing package, instead. This requires being sponsored by an existing maintainer, which Rahul was for me.

It’s quite a big task, but Rahul was very helpful and patient while I learned about the process. There is a lot of information on the Fedora Wiki but I found there wasn’t really a single place which provided a nice overview, broke down each section in detail, and then explained all the steps required. So that (along with my cautious nature) meant it took a dozen or so clarifying emails back and forth between Rahul and myself.

When I got my first understanding and taste of the system though, I’ve gotta say, I was quite impressed. The scale of the system and architecture and how it all works is amazing. The build files (RPM spec files) of all the packages in Fedora are kept under their own git repository. Hooks into this git system and special build tools manage the whole process. All in all, this automation makes it quite seamless.

So after reading and doing everything Rahul sent to me, I started on my journey.

There are two development systems to update now – rawhide (development tree) and F15 (the upcoming version). I wanted to update both of these to the latest upstream version, 17.90. I also wanted to update the stable Fedora 14 package to an upstream bug-fix release, version 16.1.1.

Cloning deja-dup from the git repo put me in the rawhide branch by default. I updated the spec file – increasing the version, adding python-cloudfiles as a new dependency, and putting in a detailed changelog. I then committed that to my local git repo with a comment linking to upstream. I then pulled those changes from rawhide into the f15 branch and updated f14.

commit bb1a5daa9feea74640fd84a0174e74e4e83ad34b
Author: Christopher Smart
Date: Sat Mar 5 21:23:07 2011 +1100
    
     Updated to upstream bugfix version 16.1.1.
     "This release fixes a bug in the just-released 16.1 that caused help
     documentation to not be translated."
     https://launchpad.net/deja-dup/+announcement/7239

Next I needed to test these packages, so I built a source RPM from the spec for each version. I discovered that one can either do a mock build on their local machine, or use Koji to do a scratch build on Fedora’s online build system. I did both, which worked well.

Using Koji meant I needed to first push my changes back to Fedora first though (or so I thought), so I was hesitant to do it without first checking with Rahul. This was the sort of thing that was emailed back and forth – I didn’t fully understand the system and didn’t want to break anything! For example, in order to test my F14 update I had to push back to the git repo – but what if I made a mistake in the process? Would my build on Koji push this broken package onto everyone’s system?

Fortunately, no. Once all the updating of the spec file and building is complete, the maintainer has to formally submit it into the update process before anything will happen. In addition, each package must then pass approval by other maintainers before it is approved and pushed out. You can see why it took some back and forth between Rahul and myself – I wanted to be sure I wasn’t going to do some damage :-)

Along the way I discovered new automated ways of doing things, such as validating a spec file, automatically downloading the source tarball to update the spec file, then uploading it to the Fedora build system.

In the end though, I think that I have a pretty good grasp of the overall process and am quite excited by the prospect of becoming a Fedora maintainer. I’m hoping that deja-dup comes out with a new update soon, so that I can do another update!

I’m still a little hesitant to go and change things – I don’t want to do the wrong thing or step on anyone’s toes. I did however create my own page on the Fedora Wiki, complete with a hackergotchi, of course.

So once again, thanks to Rahul for his patience and guidance :-)

Kororaa 14 Beta3 – Remove KDE themed Firefox in GNOME

I accidentally included the KDE Oxygen theme for the GNOME version of Beta3 (it was correct in Beta2). This means that GNOME users of Kororaa will get a KDE themed Firefox – not quite what I had in mind! KDE users don’t need to do anything, and should have a nice, pretty Firefox.

So, thanks to Arv3n for posting it in the forums, I have fixed it for the next release, but you can also fix it yourself in Beta3. Here’s how.

System wide (for any new accounts created):
sudo rm -Rf /usr/lib*/firefox-3.6/defaults/profile/extensions/\{C1F83B1E-D6EE-11DE-B441-1AD556D89593\}
sudo rm -Rf /usr/lib*/firefox-3.6/defaults/profile/extensions/plasmanotify@andreas-demmer.de
sudo sed -i '/.*oxygen.*/d' /usr/lib*/firefox-3.6/defaults/profile/prefs.js

Your account, close Firefox and run:
rm -Rf ~/.mozilla/firefox/*/extensions/\{C1F83B1E-D6EE-11DE-B441-1AD556D89593\}
rm -Rf ~/.mozilla/firefox/*/extensions/plasmanotify@andreas-demmer.de
sed -i '/.*oxygen.*/d' ~/.mozilla/firefox/*/prefs.js

Sorry about that!!!

-c

Kororaa 14 (Nemo) Beta3 released

Kororaa 14 (Nemo) Beta3 has been released for download, in 32 and 64 bit with KDE and GNOME.

It is recommended to back up your data and perform a fresh install as this fixes several important bugs.

New features:

  • Latest packages including updated kernel, latest KDE, and GNOME
  • Added Kdenlive video editor to KDE
  • Added HandBrake ripper
  • Set previews for various file types in Dolphin (KDE)
  • Added Fedora printer configuration tool to KDE
  • Added deja-dup backup tool
  • Replaced PiTiVi with OpenShot in GNOME
  • Fixed Elementary theme issue under Nautilus in GNOME
  • PolicyKit tweaks for printing, should be seamless (please test!)

Bug fixes:

  • Lots :-)
  • Problem with new users being added to wheel group
  • Dropped Livna repository due to unreliability
  • Fixed bugs in add-removes-extras script

We’d love to hear your feedback on the forums, so download it today! :-)

Thanks!