joi, 9 ianuarie 2014

Lenovo M5400 şi Manjaro Linux

De vreo trei săptămâni sunt deţinătorul şi utilizatorul unui laptop Lenovo M5400. Nu o să scriu aici un articol lung despre acesta, ci doar câteva hack-uri pentru a îmbunătăţi compatibilitatea acestuia cu Linux, sistem de operare care - din păcate - nu rulează fără probleme pe acest sistem. Scopul e să ajut vreun utilizator al acestui laptop rătăcit pe acest blog căutând soluţii cât şi să îmi ajute mie, în caz că într-o zi îmi voi reinstala OS-ul.


1. Boot
Release-ul actual al acestei distribuţii nu boot-ează deloc pe acest laptop. Cumva versiunile mai vechi merg, însă driverul video de la Intel e nerecunoscut aşa că, cel puţin iniţial, nu vă veţi putea bucura de o interfaţă grafică. Folosiţi cel puţin Manjaro 0.8.9 (aflat în stadiu alpha la momentul scrierii acestui articol) pentru compatibilitate cu acest laptop (de altfel, Linux Mint a funcţionat fără probleme, chiar şi în release-ul lor actual).

2. WiFi
Nici pe Ubuntu, nici pe Manjaro adaptorul WiFi nu e recunoscut în mod implicit. Din păcate veţi avea nevoie să conectaţi laptop-ul la internet prin cablu (sau prin telefonul mobil, cum am făcut-o eu) şi să instalaţi pachetul broadcom-wl-dkms pentru ca adaptorul să funcţioneze sub Linux.

3. laptop-mode-tools
Nu mai reţin dacă acest pachet e preinstalat în Manjaro. laptop-mode-tools e un pachet ce ajută la economisirea de energie sub Linux. Chiar dacă e preinstalat sau îl instalaţi dumneavoastră, acesta trebuie apoi activat: systemctl enable laptop-mode.service

Update: laptop-mode-tools cauzează o problemă cu închiderea laptop-ului (vezi punctul 5). Ca alternativă puteţi instala tlp sau powerdown.

4. nVidia Optimus
Majoritatea laptop-urilor cu chipset nVidia suportă Optimus, tehnologie ce ajută la optimizarea consumului de resurse prin utilizarea unui procesor grafic mai modest în performanţe dar mai blând cu consumul de energie (prelungind astfel autonomia bateriei) şi utilizarea puternicului GPU nVidia doar atunci când e necesar (la rularea de aplicaţii 3D). Linux suportă această tehnologie, pentru aceasta fiind necesară instalarea bumblebee. Pe Arch/Manjaro modulele noi instalate nu sunt activate automat (din motive de performanţă) aşa că nu uitaţi să rulaţi un systemctl enable bumblebeed.service după instalarea pachetului, dacă vreţi ca procesorul grafic de la nVidia să fie dezactivat atunci când nu mai e nevoie de el.

5. Laptop-ul se restartează la shutdown
Update: în final problema s-a dovedit a venit de la laptop-mode-tools, despre care am scris mai sus. Dezinstalarea acestuia (atenţie, simpla dezactivare a serviciului se pare că nu duce la eliminarea problemei) a rezolvat problema cu restartarea în loc de închiderea laptop-ului.

6. Bluetooth
Adaptorul Bluetooth nu este nici el recunoscut de Manjaro. Pentru a-l pune în funcţiune avem nevoie să apelăm la un mic hack şi totodată avem nevoie de firmware-ul acestuia, pe care îl puteţi descărca de aici.

Mai întâi facem sistemul să recunoască adaptorul:
modprobe btusb
echo "105b e065" >> /sys/bus/usb/drivers/btusb/new_id
Valorile dintre ghilimele le puteţi afla rulând un lsusb sau usb-devices şi identificând de acolo ID-urile corespunzătoare adaptorului vostru.

Apoi încărcăm firmware-ul. Pentru aceasta vom avea nevoie de un mic progrămel numit brcm_patchram_plus_usb pe care îl puteţi descărca din AUR (numele pachetului: brcm_patchram_plus-git). Copiaţi fişierul BCM43142A0_001.001.011.0122.0147.hcd descărcat mai sus în /usr/lib/firmware/ (ca să îl avem la îndemână) şi apoi încărcaţi-l executând:
brcm_patchram_plus_usb --patchram /usr/lib/firmware/BCM43142A0_001.001.011.0122.0147.hcd hci0
unde hci0 este denumirea device-ului pe care o aflaţi executând hciconfig.

Ca să nu fie necesar să rulaţi aceste comenzi de fiecare dată, creeaţi un fişier /etc/systemd/system/btusb.service iar în acesta scrieţi:

[Unit]
Description=Enable Broadcom BT at boot
[Service]
ExecStart=/bin/sh -c '/sbin/modprobe btusb; echo "105b e065" >> /sys/bus/usb/drivers/btusb/new_id; brcm_patchram_plus_usb --patchram /usr/lib/firmware/BCM43142A0_001.001.011.0122.0147.hcd hci0'
[Install]
WantedBy=multi-user.target

După salvarea fişierului executaţi systemctl enable btusb.service pentru a activa serviciul.

7. Touchpad
Uneori touchpad-ul se mai blochează în modul de scroll, deşi nu este atins decât cu un deget. Din păcate singura rezolvare la asta e să folosiţi un mouse sau să rulaţi rmmod psmouse && modprobe psmouse de fiecare dată când apare această problemă.

Update: problema se reproduce şi pe Windows, şi nu doar eu sunt un caz special. Mai multe persoane au raportat probleme cu touchpad-ul la acest model. Atâta vreme cât nu e o problemă atât cu driver-ul din Linux cât şi cu cel din Windows, probabil că nu vom vedea acest defect rezolvat prea curând. O mare bilă neagră pentru Lenovo.

3 comentarii :

Anonim spunea...

Sunt șanse ca să faci o modalitate ușoară de a instala TV-MAXE pt un începător care vrea să treacă pe Manjaro Linux?

Ovidiu Niţan spunea...

TV-Maxe e în AUR, iar instalarea acestuia e floare la ureche atât în Arch, cât şi în Manjaro.

Robert spunea...

Eu am reușit instalarea lui tv-maxe în Manjaro, deși sunt utilizator de ubuntu, printr-un search pe google și copierea a vreo două comenzi în terminal. Apoi se urmărește instalarea dependințelor dacă este nevoie și cam atât. Am făcut asta deși am luat contact cu Manjaro pentru prima dată...(uite aici: http://johnnyntm.blogspot.ro/2013/08/tv-maxe-instalat-in-manjaro-linux.html)