Poniżej przedstawiam opis instalacji systemu Linux ( dystrybucja MINT ), która została wykonana na komputerze Macbook Air A1304. Dystrybucja Mint wywodzi się z Ubuntu, które z kolei wywodzi się z Debiana. Wybrałem MINTa z uwagi na to, iż po instalacji Ubuntu 14.04 LTS system po kilku minutach zawieszał się. Co ciekawe w wersji LIVE takich „efektów” nie zauważyłem. Natomiast MINT nie sprawiał żadnych kłopotów poza kwestią sterowników WIFI a także nieaktywnymi przyciskami funkcyjnymi do zmiany podświetlania ekranu ( po zmianie sterownika na te od firmy Nvidia ). Oczywiście rozwiązanie tych problemów również przedstawię w poniższym opisie.
Na samym początku należy pamiętać iż samo utworzenie bootowalnego pendrive`a na zasadzie niskopoziomowego kopiowania bajt po bajcie obrazu iso systemu Linux na naszą pamięć masową ( pendrive ) nie wystarczy ! Taka wersja bootowalnego pendrive ruszy na zwykłym PC ale na macach będzie problem z uwagi na EFI. Makowy EFI ( czyli taki rozszerzony BIOS ) nie zobaczy takiego pendriva ! Testowałem na MacBook Air 1304, MacBook A1278 i MacMini i5 2012 – efekt był taki sam czyli NIE WIDZI naszego pendrajwa !
Problem ten rozwiązujemy poprzez instalacje rEFInd bezpośrednio na naszym systemie OS X.
Instalacja rEFInd
- Ściągamy rEFInd: rEFInd
- Rozpakowywujemy ściągnięte archiwum do wygodnej dla nas lokalizacji np. ~/Documents/rEFInd
- Uruchamiamy terminal, wchodzimy do katalogu rEFInd i wpisujemy: sudo sh install.sh
Przygotowanie bootowalnego pendrive`a
- Ściągamy obraz iso dystrybucji ( w naszym wypadku Mint 64Bit ) i zmieniamy nazwę pliku na linux.iso
- W terminalu należy wykonać konwersję iso do img. Dla wygody wchodzimy do katalogu gdzie mamy plik linux.iso
hdiutil convert -format UDRW -o ./linux.img ./linux.iso
- Po konwersji otrzymamy plik linux.img.dmg ( usuwamy rozszerzenie dmg )
- Wkładamy pendrive`a i formatujemy go na FAT32 ! ( w disk utility: MS-DOS FAT )
- Wpisujemy w terminalu: diskutil list i sprawdzamy nr naszego pendrive ( u mnie jest to: disk3 )
- Odmontowujemy pendrive`a: diskutil unmountDisk /dev/diskN gdzie N to nr naszego pena
- Teraz wykorzystamy program do tworzenia lustra ( kopiowanie niskopoziomowe ) obrazu linux.img na naszym penie:
sudo dd -bs=1m if=./linux.img /dev/rdiskN
uwaga: może być diskN lecz dodanie przedroska „r” spowoduje, że proces będzie trwał nieco krócej
- Kiedy program dd skopiuje obraz na naszego pena, odłączamy go wydając polecenie:
diskutil eject /dev/diskN
Instalacja
- Tworzymy 2 partycje, pierwsza dla systemu druga dla pliku wymiany „SWAP”
- Restartujemy komputer i po usłyszeniu dźwięku startowego wciskamy klawisz „option” ( alt ) i trzymamy go przez kilka sekund do pojawienia się bootloadera rEFInd.
- Z menu rEFInd wybieramy naszego pena z instalką Linuxa
- Uruchomi się nam wersja LIVE, którą przed instalacją możemy przetestować. Na pulpicie powinna być ikonka sugerująca proces instalacji – klikamy w nią !
- Cały proces instalacji ogranicza się do klikania w przycisk NEXT i ustawień partycji na które ma zostać zainstalowany system. Powinniśmy mieć 2 partycje EXT4 wskazującą na katalog „/” i partycję SWAP. Wielkość partycji systemowej ustawiłem na 16GB a SWAP na 2GB tak więc tutaj ustawiamy parametry wedle naszych wymagań.
Problem ze sterownikami WIFI
To jest temat rzeka. Miałem z tym nie małe problemy. Na samym początku skorzystałem z okienkowego programu Driver Manager znajdującego się w System Settings.
Można tam wybrać sterowniki dla naszej karty: bcmwl-kernel-source. Przy instalacji tego sterownika nie jest potrzebny dostęp do internetu – sterownik zostanie pobrany z instalki ( musi być oczywiście włożony pendrive z naszą instalką ).
Problem z tym sterownikiem wynikał z tego, że nie zawsze działa – to znaczy często podczas startu systemu nie jest ładowany. Tak więc pozostaje ręczna instalacja właściwego sterownika.
Do połączenia z internetem wykorzystałem zewnętrzny moduł WIFI na USB. Jeśli nie masz takiego urządzenia i nie możesz połączyć się po kablu Ethernet pozostaje ściągnąć potrzebne pakiety na innym komputerze lub systemie z dostępem do sieci.
W moim modelu Macbooka Air znajduje się karta WIFI: Broadcom Corporation BCM4321 802.11a/b/g/n (rev 05)
Sprawdzenie modelu karty:
lspci
Całość wykonamy w konsoli:
sudo apt-get update sudo apt-get --purge remove bcmwl-kernel-source sudo apt-get install firmware-b43-installer
Sprawdzamy czy moduł sterownika został załadowany. Moduł nazywa się: b43
lsmod | grep b43
Jeśli b43 nie ma liście, to ładujemy moduł a w zasadzie moduły, gdyż zostaną załadowane także moduły powiązane z b43:
sudo modprobe -v b43
Jeśli dalej niechciany moduł wl jest aktywny odłączamy go:
sudo modprobe -vr wl
Po tej operacji powinniśmy uzyskać dostęp do sieci WIFI.
Nie możemy także pozwolić aby system ładował podczas startu stary moduł z pakietu bcmwl-kernel-source. Należy dodać go do blacklisty w pliku: /etc/modprobe.d/blacklist
Najprawdopodobniej będzie tam już wpis z nazwą modułu „wl”, w każdym bądź razie musi być wpis: blacklist wl bez znaku # przed dyrektywą blokującą.
Teraz możemy zrestartować system.
Jeśli po restarcie sieć WIFI nie jest dostępna, należy sprawdzić czy w lokalizacji: /etc/modprobe.d/
nie ma plików które blokują ładowanie modułu b43. W moim wypadku był to plik wygenerowany przez stary sterownik ładujący moduł „wl”. Należy go usunąć:
sudo rm /etc/modprobe.d/broadcom-sta-common.conf
Możemy też sprawdzić informacje dotyczącą interfejsu na jakim pracuje nasza karta WIFI ( w moim przypadku był to wlan1 ):
iwconfig
A także przeskanować sieć pod względem dostępnych HotSpotów ( jeśli nie program będzie skanować – czytaj „Dodatkowe uwagi” ) Zamiast wlan1 wpisz swój identyfikator interfejsu na którym pracuje twoja karta.
iwlist wlan1 scan
+ Dodatkowe uwagi
Z uwagi na to iż sam sporo testowałem z różnymi ustawieniami i pakietami powiązanymi z obsługą WIFI, powyższy proces instalacji sterowników nie rozwiązał moich problemów. Oprócz obowiązkowej deinstalacji pakietu bcmwl-kernel-source musiałem wykonać ponowny proces instalacji:
sudo apt-get --reinstall install firmware-b43-installer
Pamiętaj o opcji –reinstall !
I wykonać opisane wcześniej czynności dotyczące usunięcia modułu wl i włączeniem modułu b43
Dodatkowo natknąłem się na dość irytującą sytuację, kiedy sterownik został zainstalowany, ale nie można było pobrać listy dostępnych hotspotów. Tak więc bez skanowania i pobrania listy HotSpotów dalej jesteśmy odcięci od świata 🙂 Nawet jeśli udało mi się uzyskać listę HotSpotów nie udało mi się połączyć z żadnym z nich. Najprawdopodobniej wina leżała po stronie konfliktu pomiędzy modułami wl i b43.
Do sprawdzania stanu modułu WIFI możemy wykorzystać program: Network Manager Tool:
nm-tool
Jeśli wszystko działa poprawnie, to powinniście dostać odpowiedni status:
Type: 802.11 WiFi Driver: b43 State: connected Default: yes
Warto także sprawdzić czy WIFI nie jest zablokowane softwarowo lub hardwarowo za pomocą polecenia:
rfkill list
Jeśli mamy gdzieś nałożoną blokadę należy ją usunąć poleceniem:
rfkill unblock all
W celach diagnostycznych można także spróbować podnieść interfejs:
ifconfig wlan1 up
Przypominam, że w moim przypadku interfejs obsługujący moją kartę identyfikował się nazwą: wlan1 Sprawdzanie nazwy interfejsu zainstalowanych urządzeń WIFI dla przypomnienia: iwconfig
Resetowanie network managera w konsoli:
sudo service network-manager restart
Nie można zbootować systemu OS X
Po instalacji systemu Linux Mint / Ubuntu i po restarcie systemu zamiast rEFInd uruchomi się program rozruchowy GRUB. Niestety po wybraniu opcji odpowiedzialnej za uruchomienie systemu OS X, system się nie uruchomi ! Oczywiście to nie znaczy, że nasza partycja lub system OS X w magiczny sposób zniknął. Jeśli chcemy dostać się do systemu OS X, należy zrestartować komputer i po usłyszeniu dźwięku startu systemu wcisnąć i trzymać przez kilka sekund klawisz: option ( alt ). Wtedy pojawi się „makowe EFI” i pojawi się dysk z naszym systemem OS X.
Problem z uruchomieniem systemu OS X:
panic(cpu 8 caller __TUTAJ ADRES__):pmap_map_bd: invalid kernel address\n Debugger called:... Boot args: boot-uuid=__TUTAJ_ID__ rd=*uuid
Oczywiście taki sposób nie jest zbyt komfortowy.
+ Sposób 1
Należy skonfigurować naszego GRUB`a z poziomu systemu Linux Mint / Ubuntu edytując odpowiedni plik:
sudo nano /etc/grub.d/40-custom
Dopisujemy do pliku poniższy ciąg, który odpowiedzialny jest za dodanie w menu GRUB dodatkowej opcji:
menuentry "Exit to Mac OSX" { exit }
Na koniec aktualizujemy GRUB`a i restartujemy komputer:
sudo update-grub
+ Sposób 2 ( preferowany )
Instalujemy ponownie rEFInd z poziomu systemu OS X. Tak jak zostało to opisane na początku wpisu.
Instalacja sterowników Nvidia
Domyślnie Mint nie instaluje sterowników firmy Nvidia a w przypadku naszego Macbooka Air A1304 będzie to układ Geforce 9400M.
Tutaj sprawa jest dość prosta, uruchamiamy program Driver Manger i zmieniamy sterownik z xserver-x.org-video-nouveau na nvidia-[NUMER WERSJI]
Ewentualnie możemy proces instalacji wykonać poprzez konsole:
sudo apt-get install nvidia-current
+ Brak regulacji podświetlania F1 / F2
Po zmianie sterowników na te od nvidii okazuje się, że nie można zmieniać podświetlania ekranu ( rozjaśniać / ściemniać ) klawiszami funkcyjnymi F1 i F2. Aby rozwiązać ten problem należy zainstalować moduł: nvidiabl ( nvidia backlight ). Instalacje przeprowadzamy w konsoli:
su cd /usr/src git clone https://github.com/guillaumezin/nvidiabl.git cd nvidiabl make dkms-install rmmod apple_bl modprobe nvidiabl
Jeśli moduł apple_bl był zainstalowany to dodajemy go na blacklistę:
echo blacklist apple_bl >> /etc/modprobe.d/blacklist-nouveau.conf
Teraz zmiana podświetlania ekranu za pomocą klawiszy funkcyjnych nie powinna sprawiać problemów. Zarówno rozjaśnianie jak i ściemnianie – działa, niestety jest jedno ale … Maksymalne rozjaśnienie na 100% nie powoduje, że ekran świeci na 100%. Gdzie tkwi problem ? Otóż rozwiązanie tego problemu zajęło mi sporo czasu a było dość trywialne, gdyż wystarczyło dodać jedną opcję do modułu.
Otóż maksymalna wartość podświetlania była ustawiona na 127 jednostek. Informacje na temat pracy modułu znajdują się w lokalizacji:
/sys/class/backlight/nvidia_backlight
Jest tutaj kilka plików a jeden z nich od razu zwrócił moją uwagę: max_brightness. Niestety nie można było dokonać zmian, gdyż w zasadzie to nie są pliki w dosłownym tego słowa znaczeniu. Są to bieżące parametry modułu, siedzące najprawdopodobniej bezpośrednio w pamięci.
Tak więc tutaj tego parametru nie zmienimy. Tak dla ciekawostki podam, że dzięki tym „plikom” można z konsoli zmieniać poziom podświetlenia ekranu, np:
echo 60 | sudo tee /sys/class/backlight/nvidia_backlight/brightn
Należy pamiętać, że jeśli po „echo” damy większą wartość niż 127 ekran już się nie rozjaśni z uwagi na ograniczenie w pliku: max_brightness.
ROZWIĄZANIE:
Odinstalowywujemy moduł nvidiabl i ponownie ładujemy go do pamięci z odpowiednim parametrem:
sudo modprobe -r nvidiabl sudo modprobe nvidiabl max=200
Teraz możemy cieszyć się całym zakresem podświetlania ekranu za pomocą klawiszy funkcyjnych ! 🙂
Podsumowanie
Tak więc instalacja linuxa na macach i jego poźniejsza konfiguracja może przysporzyć nieco problemów. Jednak gra warta jest świeczki w kontekście maków, które mają np. „tylko” 2GB RAM pamięci operacyjnej. Jeśli chodzi o dystrybucję Mint to jestem zachwycony szybkością działania, mimo iż dysk jest talerzowy i to 1.8″ ( 4200RPM ) a więc bardzo wolny. Mimo uruchomionych w tle nie małej ilości procesów i kilku kart przeglądarki FireFox wciąż miałem kilkaset MB wolnej pamięci.
Plik stronicowania SWAP praktycznie w ogóle nie jest używany. Podejrzewam, że i nawet na 1GB RAM`u system działałby dość żwawo. Jak widać niekomercyjne systemy nie mają takich wymagań jak OS X. Ale trzeba też zrozumieć jedno, firma APPLE nie jest instytucją non-profit. Dlatego też każdy najnowszy OS X ma coraz większe wymagania co do sprzętu co skutkuje większą sprzedażą nowych modeli macbook`ów, imac`ów, mac mini czy power power mac`a ;).
Oprócz tego iż, Mint jest dość stabilnym systemem w przeciwieństwie do Ubuntu to jest dodatkowo bardzo ładny pod względem GUI – elegancki, przejrzysty minimalistyczny wygląd. Czego chcieć więcej ? 🙂
Jedno przemyślenie nt. „Instalacja Linuxa MacBook Air ( Mint / Ubuntu ) bootowalny Pendrive”