UEFI booting

Well well, getting UEFI booting to work is definitely giving me a headache. On the disk below (disk0) I installed Clover in the EFI partition disk0s1 of my Yosemite 10.10.1 install but it doesn’t show up in the boot menu:

Last login: Sat Nov 29 20:27:01 on ttys000
Xeon:~ userone$ diskutil list
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            999.3 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
Xeon:~ userone$

Well the immediate solution is to boot into the Build-in EFI Shell and invoke this command – and even this took my a while to find out.

Shell> fs0:EFI\CLOVER\CLOVERX64.efi

And then in the Clover options choose:

  • Add as UEFI boot option.
Colver Boot Options

Colver Boot Options

But I wanted to know whats the cause and if its related to my BIOS (… err UEFI firmware to be correct). So I installed Fedora 20 on anther disk. Well in difference to Colver, Fedora shows up perfectly fine as boot option directly:

IMG_2324If I run the Built-in EFI Shell I get the following output with the “Fedora” disk plugged in:

"Fedora Disk" EFI ShellOr as text:

EFI shell version 2.31 [4.654]
Current running mode 1.1.2
Device manning table
fso :HardDisk - Alias hd33e65535a1 blk0
blk0 :HardDisk - Alias hd33e65535a1 fs0
blkl :HardDisk — Alias: (null)
blk2 :HardDisk - Alias (null)
blk3 :HardDisk - Alias (null)
blk4 :HardDisk — Alias (null)
blk5 :BlockDevice — Alias: (null)
Press ESC in 1 seconds to skip startup.nsh, any other keg to continue.
Shell> _

So this got me started to try out various OSs and to check if it shows up in the boot menu:

Below are some initial results.

Yosemite 10.10.1

This the Built-in EFI Shell output with the “OS X” Yosemite 10.10.1 disk plugged in (doesn’t show up in boot menu):

Yosemite 10.10.1

Yosemite 10.10.1

Built-in EFI Shell output of Yosemite 10.10.1:

EFI Shell version 2.31 [4.654]
Current running mode 1.1.2
Device mapping table
fs0 :HardDisk — Alias hd33b65535a1 blk0
blk0 :HardDisk - Alias hd33b65535a1 fs0
blk1 :HardDisk — Alias (null)
blk2 :HardDisk — Alias (null)
b1k3 :BlockDevice - Alias (null)
Press ESC in 1 seconds to skip startup.nsh, any other keg to continue.
Shell> _

diskutil output of Yosemite 10.10.1:

Last login: Sat Nov 29 20:27:01 on ttys000
Xeon:~ userone$ diskutil list
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI EFI                     209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            999.3 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
Xeon:~ userone$

Parted output of Yosemite 10.10.1:

userone@un:~$ sudo parted /dev/sda -l
Model: ATA WDC WD10EADS-00L (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size   File system  Name                  Flags
 1      20.5kB  210MB   210MB  fat32        EFI System Partition  boot
 2      210MB   1000GB  999GB  hfs+         Macintosh HD
 3      1000GB  1000GB  650MB  hfs+         Recovery HD

blkid output of Yosemite 10.10.1:

userone@un:~$ sudo blkid
/dev/sda1: LABEL="EFI" UUID="67E3-17ED" TYPE="vfat"
/dev/sda2: UUID="3a813953-b791-3843-853f-b031a233f518" LABEL="Macintosh HD" TYPE="hfsplus"
/dev/sda3: UUID="fe432067-44c6-36dd-90d0-67d3bb7e1ea6" LABEL="Recovery HD" TYPE="hfsplus"

Windows 10 Technical Preview 9879

This is what I get with Windows 10 TechnicalPreview-9879-x64 disk plugged in (does show up in boot menu):

Windows 10 TechnicalPreview-9879

Windows 10 TechnicalPreview-9879

Built-in EFI Shell output of Windows 10 TechnicalPreview-9879:

EFI Shell version 2.31 [4.654]
Current running mode 1.1.2
Device mapping table
fs0 :HardDisk - Alias hd33e65535a1 blk0
fs1 :HardDisk - Alias hd33e65535a2 blk1
fs2 :HardDisk - Alias hd33e65535a4 blk2
blk0 :HardDisk - Alias hd33e65535a1 fs0
blk1 :HardDisk - Alias hd33e655353a2 fs1
blk2 :HardDisk - Alias hd33e65535a4 fs2
blk3 :HardDisk - Alias (null)
b1k4 :BlockDevice - Alias (null)
Press ESC in 1 seconds to skip startup.nsh, any other key to continue.
Shell> _

diskutil output of Windows 10 TechnicalPreview-9879:

Last login: Mon Dec  1 22:43:24 on ttys000
Xeon:~ userone$ diskutil list
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *500.1 GB   disk1
   1: DE94BBA4-06D1-4D40-A16A-BFD50179D6AC               314.6 MB   disk1s1
   2:                        EFI NO NAME                 104.9 MB   disk1s2
   3:         Microsoft Reserved                         134.2 MB   disk1s3
   4:       Microsoft Basic Data                         499.6 GB   disk1s4
Xeon:~ userone$

Parted output of Windows 10 TechnicalPreview-9879:

userone@un:~$ sudo parted /dev/sdc -l
Model: ATA WDC WD5000AADS-0 (scsi)
Disk /dev/sdc: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End    Size   File system  Name                          Flags
 1      1049kB  316MB  315MB  ntfs         Basic data partition          hidden, diag
 2      316MB   420MB  105MB  fat32        EFI system partition          boot
 3      420MB   555MB  134MB               Microsoft reserved partition  msftres
 4      555MB   500GB  500GB  ntfs         Basic data partition          msftdata

blkid output of Windows 10 TechnicalPreview-9879:

userone@un:~$ sudo blkid
/dev/sdc1: LABEL="Recovery" UUID="744651444651086E" TYPE="ntfs"
/dev/sdc2: UUID="F853-2FA4" TYPE="vfat"
/dev/sdc4: UUID="F42056312055FB56" TYPE="ntfs"

Ubuntu 14.04.1

This is what I get with the Ubuntu-14.04.1-desktop-amd64 disk plugged in (does show up in boot menu):

Ubuntu-14.04.1 desktop-amd64

Ubuntu-14.04.1 desktop-amd64

Built-in EFI Shell output of Ubuntu-14.04.1:

EFI Shell version 2.31 [4.654]
Current running mode 1.1.2
Device mapping table
fs0 :HardDisk - Alias hd33d65535a1 blk0
blk0 :HardDisk - Alias hd33d65535a1 fs0
blk1 :HardDisk - Alias (null)
blk2 :HardDisk - Alias (null)
blk3 :BlockDevice - Alias (null)
Press ESC in 1 seconds to skip startup.nsh, any other key to continue.
Shell> _

disuktuil output of Ubuntu-14.04.1:

Last login: Mon Dec  1 22:50:20 on console
Xeon:~ userone$ diskutil list
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *40.0 GB    disk1
   1:                        EFI NO NAME                 536.9 MB   disk1s1
   2: 0FC63DAF-8483-4772-8E79-3D69D8477DE4               22.3 GB    disk1s2
   3:                 Linux Swap                         17.1 GB    disk1s3
Xeon:~ userone

Parted output of Ubuntu-14.04.1:

userone@un:~$ sudo parted /dev/sdb -l
Model: ATA WDC WD400BD-75JM (scsi)
Disk /dev/sdb: 40.0GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number  Start   End     Size    File system     Name  Flags
 1      1049kB  538MB   537MB   fat32                 boot
 2      538MB   22.9GB  22.3GB  ext4
 3      22.9GB  40.0GB  17.1GB  linux-swap(v1)

blkid output of Ubuntu-14.04.1:

userone@un:~$ sudo blkid
/dev/sdb1: UUID="C046-68DD" TYPE="vfat"
/dev/sdb2: UUID="5db35bcc-21bd-4940-98dd-741749e105bb" TYPE="ext4"
/dev/sdb3: UUID="9e316101-f472-4543-ac95-b75c38a3a6f0" TYPE="swap"

As I know it, the UEFI boot process uses the ESP (EFI System Partition) to store system bootstrap components. The ESP is a GPT (or MBR) partition with a specific identifier:

GPT: c12a7328-f81f-11d2-ba4b-00a0c93ec93b
MBR: 0xef

and contains a FAT (12,16 or 32) file system with a specified hierarchy and the boot process itself is as follows:

As I understand it, UEFI firmware runs at power up and searches for an OS loader in the EFI system partition. The path to the loader may be set by an EFI environment variable while defaulted to /EFI/BOOT/BOOTX64.EFI. There is a pretty extensive and worth reading article here.

But what seems to make the difference is the 0x800 entry – which is the starting sector… weird.


Clover, UEFI, etc

I am recently trying to switch from Chameleon (which has been my bootloader of choice for 6 years approximately) to Clover.

Turns out while some things are more clear others (which should be the easier ones) are more complex – or just my google-foo left me !

Anyway, while setting up the installer stick for Yosemite was rather simple in setting up, and the installation of Yosemite itself was flawless, getting Clover on the HD itself took my quite a while. And no ! I don’t want to multiboot Windows, Linux, Solaris and OS X ! I just have 1 HFS+ formatted Yosemite disk which I want to boot :).

Well turns out you have to format the EFI partitions 1st and install Clover into it, even if you only want to UEFI boot the HDD.

So first we find the HDD that has OS X installed on a GUID partition table, and look for the EFI partition. Consequently open terminal and type:

sudo -s
type password
diskutil list

So next apply a new filesystem to the EFI partition (be careful to choose the correct one)  and replace the X according to your disk setup. In terminal enter:

newfs_msdos -v EFI /dev/diskXsX

You will get some error about a non character device (which you can ignore):

newfs_msdos: warning: /dev/disk1s1 is not a character device 512 bytes per physical sector
/dev/disk1s1: 409160 sectors in 51145 FAT16 clusters (4096 bytes/cluster)
bps=512 spc=8 res=1 nft=2 rde=512 mid=0xf8 spf=200 spt=32 hds=32 hid=40 drv=0x80 bsec=409600

So if you want to mount it then this works as follows:

mkdir /Volumes/efi
sudo mount -t msdos /dev/diskXsX /Volumes/efi

And that’s it – if your board supports booting from SATA via UEFI. Some boards only support USB UEFI booting 😦

Graphic Card Woes

As recently mentioned ASRock was smart enough to not implement IGP passthrough on the E3C226D2I. Bummer 😦

So I had to find a super slim graphic card which shall fit to my setup. The NVidia NVS 295 was the one I choose in the end. But also then I had to do quite some tweaking. If you look at the picture below you will see that there is not a whole lot of space between the motherboard (bottom of the picture) and the PSU (top of the picture), and exactly between this space the NVidia NVS 295 was planned to sit.


The first thing I actually had to do is to cut a hole into the backplane of my chassis, as the chassis itself was not supposed to support any PCI extension card 😐 .

IMG_2213 IMG_2212

Then I had to cut the metal bracket of the PCI card itself for fitting:

IMG_2211 IMG_2210

And the whole setup together:

IMG_2214 IMG_2220

AMD/ATI RV620 based cards (ATI FireMV 2260)

I recently messed up with my NVidia Quadro NVS 295 and was looking for a replacment. As I wasn’t aware AMD/ATI cards are kind of bitchy on OS X, I got myself a cheap ATI FireMV 2260. Turned out to be a major headache or a challange which I was willing to accept, not knowing anything about OS X graphics driver internals.

So I was trying to read as much as I could on the internet, namely here on insanelymac.com and learnt that my FireMV 2260 has an RV620 based chip.

First thing I did was getting relevant PCI ID for the card, and provided the relevant information to the Chameleon which made it even into the official trunk 🙂

Relevant PCI ID data:


based on lspci -nnvv output:

01:00.0 VGA compatible controller [0300]: ATI Technologies Inc RV620
[FirePro 2260] [1002:95cf] (prog-if 00 [VGA controller])
	Subsystem: ATI Technologies Inc Unknown device [1002:2143]
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-
Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort-
<TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0, Cache Line Size: 64 bytes
	Interrupt: pin A routed to IRQ 16
	Region 0: Memory at <ignored> (64-bit, prefetchable)
	Region 2: Memory at f7e20000 (64-bit, non-prefetchable)
	Region 4: I/O ports at e000
	Expansion ROM at f7e00000 [disabled]
	Capabilities: [50] Power Management version 3
		Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA
		Status: D0 PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [58] Express (v2) Legacy Endpoint, MSI 00
		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1
			ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
			RlxdOrd- ExtTag+ PhantFunc- AuxPwr- NoSnoop+
			MaxPayload 128 bytes, MaxReadReq 128 bytes
		DevSta:	CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x16, ASPM L0s L1, Latency L0
<64ns, L1 <1us
			ClockPM- Suprise- LLActRep- BwNot-
		LnkCtl:	ASPM L0s L1 Enabled; RCB 64 bytes Disabled- Retrain-
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x16, TrErr- Train- SlotClk+ DLActive-
BWMgmt- ABWMgmt-
	Capabilities: [a0] Message Signalled Interrupts: Mask- 64bit+
Queue=0/0 Enable-
		Address: 00000000fee00000  Data: 4074
	Capabilities: [100] #1002
	Capabilities: [95c] #8fa0
	Capabilities: [012] #8000

I kind of got the FireMV 2260 working in Mavericks 10.9.5.  Only with Remote Login to the Machine via Screensharing though as seemingly I can not get the Framebuffer to output to DVI1 or DVI2.


  1. Get Chameleon latest one (not sure how to do it in Clover yet)
  2. Add the device ID to ATIRadeonX2000.kext
  3. Add the device ID AMD2400Controller.kext
  4. Installed the kexts (for ex. via KextWizard)
  5. Boot with GraphicsEnabler=Yes and use AtiConfig=Iago
  6. After that the screen is black (no output on DVI), but remote login to the machine works

post-1089001-0-38893300-1412483936 post-1089001-0-12975900-1412483952 post-1089001-0-34200300-1412483959

I get this to work with 2600, and even 3800 Controllers (if the correct Framebuffer is chosen ie Lamna for 2600). Funny enough this works also with Zonalis and 5000 Controller and a huge / wrong amount of VRAM.


Editing custom personalities for ATI is a must to at least have a (small) chance to get output. There is a cool tool to easily patch ATI personalities: ATI Kext Util.app. Source is here on github or compiled version on insanelymac.

ATI Kext Util.app

Fan woes

In my last post I wrote that I had to replace my initially planned Noctua NH-L9i Low Profile CPU Cooler with a SilverStone Technology Nitrogon NT07-115X.

While both of them are very tiny, unfortunately the Noctua just could not fit into the case as you can see in the pictures below – actually it is only marginally too high: 1-2mm I guess. But well not much I could do about it.

IMG_9412 IMG_9410

SilverStone’s Nitrogon is a very fine piece of engineering too, and fits while still being quite quiet.


If you watch closely I used Noctuas “silencer” cable and it works also on the SilverStone fan. I have to check however carefully how much the lower rpm rate impacts cooling.

Also I guess the HDD which is directly above the fan will get a little warm due to airflow.


Some people commented that in the 2nd picture it looks like the Noctua fits exactly. Well that is true: it looks like it does. In reality however it puts the motherboard under physical stress, and the fans’ blades are also touching already the case, stopping the fan from rotating flawlessly. So it just did not work out good.

My 2nd build

For my latest machine, I had one of those QNAP or Synology NAS systems in mind when planning the whole thing. Of course I want to run OS X on it, while being more powerful, energy efficient and with as little noise as possible (it will sit next to my TV in the living room – in a cupboard though) and with ECC RAMs to ensure data integrity (I just want them !! 🙂 ).

This whole requirements however turned out to be much more difficult to fulfill then I thought it would. For ECC you need – besides the RAM modules of course – a Xeon CPU and (thank you Intel…… NOT !) a board with the correct chipset (c224, c226 in the haswell world) – none of those “gaming” chipsets (H, P, Q, Z, X…) support ECC – still I think this function is rather blocked.

Well then on the other hand, there are not a lot of server boards out there which feature a mini-ITX form factor. Turns out exactly 2!!! as of writing, one of which I ordered, the other one is the ASRock E3C224D2I. Now ASRock on their side also didn’t made my life too easy as they blocked / didn’t implement IGP passthrough even though its part of the chipset c226 (interesting post here, which I unfortunately only found after I ordered it…) while the Xeon 1268L comes with an integrated Intel HD Graphics 4600 😦 . Consequently I had to find a graphic card, which I wanted to passive-cooled to reduce noise (Problem No. 1 nowadays) and is of low-profile (Problem No. 2 nowdays). Nowadays only giga-texel-8GB super-graphic cards are made by AMD/ATI or NVidia.

Now I use the following components (Prices in US$ from Newegg or Amazon):

Overall price: $977.90 – not too bad 🙂

And some pictures:

IMG_9400 IMG_9434IMG_9346IMG_1883