Instalacja Linuxa MacBook Air ( Mint / Ubuntu ) bootowalny Pendrive

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

  1. Ściągamy obraz iso dystrybucji ( w naszym wypadku Mint 64Bit ) i zmieniamy nazwę pliku na linux.iso
  2. 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
  3. Po konwersji otrzymamy plik linux.img.dmg ( usuwamy rozszerzenie dmg )
  4. Wkładamy pendrive`a i formatujemy go na FAT32 ! ( w disk utility: MS-DOS FAT )
  5. Wpisujemy w terminalu: diskutil list i sprawdzamy nr naszego pendrive ( u mnie jest to: disk3 )
  6. Odmontowujemy pendrive`a: diskutil unmountDisk /dev/diskN gdzie N to nr naszego pena
  7. 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

  8. Kiedy program dd skopiuje obraz na naszego pena, odłączamy go wydając polecenie:
    diskutil eject /dev/diskN

Instalacja

  1. Tworzymy 2 partycje, pierwsza dla systemu druga dla pliku wymiany „SWAP”

    Partycja systemowa i SWAP

    Disk Utility

  2. 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.
  3. Z menu rEFInd wybieramy naszego pena z instalką Linuxa
  4. Uruchomi się nam wersja LIVE, którą przed instalacją możemy przetestować. Na pulpicie powinna być ikonka sugerująca proces instalacji – klikamy w nią !
  5. 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

Problem z uruchomieniem OS X z GRUB`a

Problem z uruchomieniem OS X z GRUB`a

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
Po uruchomieniu komputera i sygnale przytrzymaj klawisz Option ( alt )

Po uruchomieniu komputera i sygnale przytrzymaj klawisz Option ( alt )

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]

Program zawiera się w "System Settings" ( Ustawienia Systemowe ) lub w konsoli: driver-manager

Program zawiera się w „System Settings” ( Ustawienia Systemowe ) lub w konsoli: driver-manager

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

Dodaj komentarz