Open ja apparaat
- June 27, 2016
- 0
Waarom zou je Linux op een Mac Mini willen zetten? Goeie vraag. Feit is dat ik het gedaan heb en de procedure dusdanig uitdagend was dat ik er ook maar gelijk een artikel in de serie “Open je apparaat” aan ga wijden.
Nu is het natuurlijk zo dat het bedrijf Apple op zijn zachtst gezegd een gespannen relatie heeft met het fenomeen Open Source. Aan de ene kant is Apple betrokken in verschillende open source projecten, waarvan CUPS wellicht één van de belangrijkste is. Maar aan de andere kant bestaat de motor van Mac OS X uit een BSD-variant. Dat is natuurlijk geen open source, maar het heeft in elk geval een sterke affiniteit met Linux. Uiteraard maakt Apple natuurlijk hele mooie apparaatjes, die voor heel veel geld verkocht worden. Als er een bedrijf is waar het niet gaat om de open source gedachte, dan is het wel Apple. En misschien is dat juist een leuke reden om te kijken of het misschien iets verder geopend kan worden.
De Mac Mini heeft wel een paar goede argumenten om ingezet te worden als kleine server. Het apparaat is zo stil dat je niet door hebt dat het ergens in je huis staat en de hardware specificaties zijn niet fenomenaal, maar goed genoeg. Voor niet al te veel geld heb je een apparaat met 4 GB RAM en een (niet heel erg snelle) 500GB harde schijf en dual core CPU met hyperthreading. Goed genoeg om er een serieuze webserver op te draaien dus.
Installatie
Voordat je nu heel enthousiast zelf aan het werk gaat om je iMac te openen en er Linux op te zetten, is een kleine kanttekening wel op zijn plaats. Er zijn verschillende versies van de iMac in omloop en ze zijn niet allemaal voor dit artikel geschikt. Dit artikel is gebaseerd op een Mac Mini, die in de zomer van 2014 door Apple als nieuw verkocht werd. Heb je een ander model in huis? Dan kan het zomaar zijn dat je daar hele andere ervaringen mee hebt. Dat is overigens ook de bron van heel veel verwarring op internet. Er zijn verschillende mensen, die geprobeerd hebben de Mac Mini te openen en die mensen hebben verschillende procedures gedocumenteerd. Deze naslagwerken werkten in de tijd waarin het geschreven werd wellicht prima, maar voor het specifieke model dat voor dit artikel gebruikt is, faalden ze in elk geval kansloos. Dus ben ik zelf maar aan het werk gegaan. Niets zo leuk als Russisch roulette spelen met een apparaat dat je net voor 655 Euro gekocht hebt…
De eerste uitdaging met recente Mac Mini’s is dat er geen optisch schijfstation in zit. Dat is op zich een uitdaging waar prima mee te werken valt. In plaats daarvan kun je immers ook uitstekend een Linux-distributie op een USB-stick zetten en daar vanaf booten. Aldus geschiedde en in eerste instantie werd het betreffende model gestart van een CentOS 6.nogwat bootable USB-stick. Dat ging prima, tot op het moment dat gezocht werd naar de harde schijf. Die werd namelijk niet gevonden.
Dat CentOS 6.x moeite heeft met het vinden van een bruikbare schijf in een Mac Mini heeft waarschijnlijk te maken met het feit dat de harde schijf is ingericht met GPT-partities. En daar snapte CentOS 6 in elk geval nog niets van. Nu is GPT iets dat voor een deel in de BIOS zit en voor een deel op schijf staat. En als iets op een schijf staat en die schijf kan verder wel gevonden worden, kun je het er ook af gooien. Daar hebben we op Linux een mooie opdracht voor:
*** LISTING ***
dd if=/dev/zero of=/dev/sda
*** EINDE LISTING ***
Pas later begreep ik het enorme risico dat daarmee genomen werd. Sommige computers gebruiken naast GPT ook UEFI om van op te starten en als dat het geval is, kan het zomaar zijn dat je niet anders kan dan GPT-schijven gebruiken. Als dat het geval is, heeft het te maken met secure boot, een feature dat vaak via de CMOS setup uitgezet kan worden. Gelukkig was dit niet het geval voor de Mac Mini en werkte het na het radicaal verwijderen van alle informatie van de harde schijf ineens gewoon wel. De schijf werd gevonden en CentOS 6.x installeerde prima.
De volgende vraag is dan natuurlijk of naast CentOS 6.x ook de 7.x versies van dit populaire besturingssysteem op een Mac Mini geïnstalleerd kunnen worden. Dat was dus geen enkel probleem.
Hardwareherkenning
Nu is tegenwoordig de Linux-kernel wel zo open dat veel installaties op PC-achtige hardware gewoon lukken. De interessantste vraag is daarmee nog wel onbeantwoord: hoe zit het met ondersteuning van devices, die in dat apparaat voorkomen? Zeker bij een leverancier als Apple is het twijfelachtig of alle devices netjes een driver hebben, die het vanuit een serverbesturingssysteem als CentOS gewoon doen. Daar komt dan overigens wel het voordeel van CentOS om de hoek kijken. CentOS is een soort van open versie van Red Hat Enterprise Linux, die 99% hetzelfde is als RHEL. Er zijn echter een paar verschillen, waaronder een bredere hardware ondersteuning.
Op CentOS zijn de eisen voor een hardware driver om opgenomen te worden in het besturingssysteem iets minder strikt dan dat ze op RHEL zijn. Dat is waarschijnlijk de reden waarom de lijst met ondersteunde devices, zoals getoond door de opdracht lspci -v indrukwekkend is (zie listing 2). Zelfs de VGA-compatible controller met ingebakken Apple Inc. subsysteem wordt netjes herkend en werkt gewoon. Ook een klassieke lastpak als de driver voor de Broadcom NetXtreme netwerkkaart werkt gewoon op basis van de tg3 driver.
*** LISTING 2 ***
00:1f.2 SATA controller: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode] (rev 04)
Subsystem: Intel Corporation Device 7270
Kernel driver in use: ahci
00:1f.3 SMBus: Intel Corporation 7 Series/C210 Series Chipset Family SMBus Controller (rev 04)
Subsystem: Intel Corporation Device 7270
01:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM57766 Gigabit Ethernet PCIe (rev 01)
Subsystem: Broadcom Corporation NetXtreme BCM57766 Gigabit Ethernet PCIe
Kernel driver in use: tg3
01:00.1 SD Host controller: Broadcom Corporation BCM57765/57785 SDXC/MMC Card Reader (rev 01)
Subsystem: Broadcom Corporation Device 0000
Kernel driver in use: sdhci-pci
*** EINDE LISTING 2 ***
*** ONDERSCHRIFT LISTING 2 ***
Listing 2: Met lspci -v zie je vooral heel veel hardware devices waarvoor gewoon netjes een kernel module geladen kon worden.
*** EINDE ONDERSCHRIFT LISTING 2 ***
Moraal van dit verhaal? Een Mac Mini doet het uitstekend met een serverbesturingssysteem als CentOS 7 en eigenlijk is er niet zo heel veel spannends aan om het geheel aan de praat te krijgen. Rest natuurlijk nog de vraag of je het ook zou moeten willen. Zoals eerder in dit blad beschreven: voor een webserver voldoet een Mac Mini prima, maar als je er echt spannende dingen mee wilt doen, loont het de moeite om het model wat zwaarder uit te voeren. En daar blinkt een Mac Mini nu net niet in uit…
In het volgende artikel uit deze reeks gaan we kijken naar een andere computer: een gloednieuwe Toshiba laptop waarop UEFI inclusief secure boot gebruikt wordt. To be continued…