Witam!
Mój laptop to HP Pavilion dv6748us (wskazówki tu zawarte mogą być przydatne także do innych modeli z serii dv6700 lub podobnych z procesorami AMD Turion), na którym zainstalowałem wersję testing Debiana (stabilna netinstall nie chciała się zainstalować z powodu braku sterowników do karty sieciowej...). Zdecydowałem się napisać tego posta, ponieważ trochę czasu musiałem poświęcić na przystosowywanie go do współpracy z Debianem, a że wszystko zapisywałem co i jak robić, doszedłem do wniosku, że podzielę się tym z innymi na forum. Opiszę tu 3 rzeczy, nad którymi należy popracować, aby w pełni można się było cieszyć z Debiana. A więc po kolei.
Polecenia poprzedzone znakiem $ wykonuje się jako zwykły użytkownik, natomiast polecenia po znaku # jako root (polecenie: $ su).
1. Karta sieciowa nVidia MCP67 ($ lspci | grep Ethernet):
Kod: Zaznacz cały
00:0a.0 Ethernet controller: nVidia Corporation MCP67 Ethernet (rev a2)
Problem z tą kartą polega na tym, że system nieprawidłowo odczytuje jej adres MAC i za każdym razem podczas startu tworzy nowy interfejs sieciowy, i tak po 10 restartach mamy po kolei eth1, eth2,... eth10. Od razu dodam, że wpis typu:
Kod: Zaznacz cały
allow-hotplug eth0
iface eth0 inet dhcp
hwaddress ether 00:1e:68:07:b5:af
auto eth0
w pliku /etc/network/interfaces nie pomaga. Za każdym razem dane o nowym interfejsie zapisywane są do pliku /etc/udev/rules.d/z25_persistent-net.rules. Po jego usunięciu, utworzeniu na nowo i restarcie systemu wszystko jest w porządku. ¯eby nie robić tego za każdym razem, należy utworzyć skrypt o podanej zawartości i uruchamiać go przy starcie systemu (jak to zrobić opisane jest w jego treści):
Kod: Zaznacz cały
#!/bin/sh
#***Uruchamianie skryptów podczas startu systemu:***
#1. Skopiować skrypt do katalogu init.d: # cp moj_skrypt /etc/init.d/
#2. Nadać prawa do wykonywania: # chmod +x /etc/init.d/moj_skrypt
#3. Stworzyć dowiązania: # update-rc.d /etc/init.d/moj_skrypt defaults
rm /etc/udev/rules.d/z25_persistent-net.rules
touch /etc/udev/rules.d/z25_persistent-net.rules
Wadą tego rozwiązania jest to, że jeśli nie mamy podłączonego kabla sieciowego, to przy starcie, system może (ale niekoniecznie) próbować przez dłuższy czas wysyłać pakiety DHCPDISCOVER. Wtedy należy wcisnąć Ctrl + C i system dalej będzie się uruchamiał normalnie. Po za tym, jeśli przy starcie systemu nie podłączymy kabla sieciowego, to musimy zrestartować system, aby mieć połączenie z siecią po jego podłączeniu... Nie jest to zapewne eleganckie rozwiązanie, ale za to proste i skuteczne.
2. Karta wi-fi Broadcom BCM4328 ($ lspci | grep Network):
Kod: Zaznacz cały
03:00.0 Network controller: Broadcom Corporation BCM4328 802.11a/b/g/n (rev 03)
Na dzień dzisiejszy (kwiecień 2008) model ten nie jest jeszcze wspierany przez sterowniki linuksowe. Niby powinno być łatwo zainstalować przez ndiswrappera sterowniki z Visty i powinno działać. ALE... Po pierwsze po zainstalowaniu ndiswrappera z repozytoriów podczas instalacji pojawiają się błędy (trzeba skompilować źródła), a po drugie sterowniki ze strony HP nie działają --- trzeba pożyczyć od konkurencji (ze strony DELL'a). A zatem do dzieła.
Do kompilacji ze źródeł ndiswrapper'a potrzebne będą linux-headers oraz parę innych pakietów:
Kod: Zaznacz cały
# aptitude update
# aptitude install linux-headers-$(uname -r) // uname -r sprawdza wersje jądra do którego maja być zainstalowane nagłówki
# aptitude install dh-make fakeroot gcc-3.4 build-essential // pozostałe pakiety potrzebne do kompilacji ndiswrapper'a
Następnie należy pobrać pliki źródłowe ndiswrapper'a wersji stabilnej ze strony:
http://sourceforge.net/projects/ndiswrapper/. Należy zapisać plik .tar.gz na dysk, rozpakować go, wejść do rozpakowanego katalogu, ewentualnie pozbyć się poprzednich wersji, skompilować i zainstalować:
Kod: Zaznacz cały
$ tar xzvf ndiswrapper-1.52.tar.gz
$ cd ndiswrapper-1.52
$ make distclean clean
$ make
# make install
Po zainstalowaniu ndiswrapper'a należy pobrać plik ze sterownikami ze strony DELLa...
http://ftp.us.dell.com/network/R151517.EXE. Plik do zainstalowania pobrany ze strony DELLa nazywa się ''bcmwl5.inf''. Aby dostać się do tego pliku, należy rozpakować ściągnięty plik EXE (polecenie unzip jest dostępne po zainstalowaniu pakietu o tej samej nazwie):
Kod: Zaznacz cały
$ wget [url]http://ftp.us.dell.com/network/R151517.EXE[/url]
$ mkdir dell_driver
$ unzip -a R151517.EXE -d dell_driver/
$ cd dell_driver/DRIVER/
# ndiswrapper -i bcmwl5.inf
# ndiswrapper -l // opcjonalne- sprawdza, czy sterownik został zainstalowany
# ndiswrapper -m
# modprobe ndiswrapper
W tym momencie, po przesunięciu suwaka włączającego kartę wi-fi, dioda obok powinna zmienić kolor z pomarańczowego na niebieski. Jeśli po restarcie systemu, po włączeniu suwaka dioda nie będzie się świeciła na niebiesko, należy powtórzyć polecenie:
Aby nie wykonywać tego za każdym razem, należy dodać tą linijkę:
do skryptu uruchamianego podczas startu systemu, czyli np.: dopisać ją do skryptu naprawiającego kartę sieciową ethernetową (punkt 1.) lub stworzyć nowy skrypt i uruchamiać go podczas startu systemu (co i jak opisane w pukcie 1.).
Do zarządzania kartą sieciową wi-fi polecam pakiet wlassistant, który można pobrać stąd (niestety w wersji testing go nie ma, trzeba pobrać wersję dla Sida --- działa bez zarzutu).
http://packages.debian.org/sid/wlassistant
3. Karta dźwiękowa nVidia MCP67 ($ lspci | grep Audio):
Kod: Zaznacz cały
00:07.0 Audio device: nVidia Corporation MCP67 High Definition Audio (rev a1)
Na deser, karta dźwiękowa. Po instalacji alsy z repozytoriów, dźwięk w laptopie działa. ALE po włożeniu słuchawek głośniki nie wyciszają się... Standardowy wpis:
w plikach /etc/modprobe.d/alsa-base i/lub /etc/modprobe.d/sound nie rozwiązywał problemu. Aby to naprawić należy skompilować alsę ze źródeł, lekko modyfikując jeden z plików źródłowych. No to do roboty.
Na początek należy odisntalować alsę dostępną z repozytoriów (jeśli ktoś taką instalował oczywiście):
Kod: Zaznacz cały
# aptitude purge alsa-base
# aptitude purge alsa-utils
Potem sprawdzamy jaki mamy Subsystem Id:
Kod: Zaznacz cały
$ cat /proc/asound/card0/codec#0 | grep Subsystem
Mój wynik to:
Następnie odwiedzamy stronę alsy
http://www.alsa-project.org/main/index.php/Main_Page i pobieramy alsa-driver-1.0.16 (piszę akurat o tej wersji, która teraz jest dostępna --- może w przyszłych już tego problemu nie będzie). Tworzymy katalog /usr/src/alsa, kopiujemy tam pobrany plik, przechodzimy do tego katalogu, rozpakowujemy plik i modyfikujemy plik alsa-driver-1.0.16/alsa-kernel/pci/hdapatch_conexant.c, a więc:
Kod: Zaznacz cały
# mkdir /usr/src/alsa
# cp alsa-driver-1.0.16.tar.bz2 /usr/src/alsa
# cd /usr/src/alsa
# tar xjvf alsa-driver-1.0.16.tar.bz2
# nano alsa-driver-1.0.16/alsa-kernel/pci/hda/patch_conexant.c
Około linijki 860 będzie parę linijek tego typu (lub podobnych):
Kod: Zaznacz cały
SND_PCI_QUIRK(0x103c, 0x30a5, "HP", CXT5045_LAPTOP_HPSENSE),
Należy dopisać jedną własną, analogiczną do powyższej, dopisując swój model laptopa oraz wstawiając swój Subsystem ID w odpowiedni sposób tak jak np.: u mnie (raczej nie ma to znaczenia, ale na wszelki wypadek dałem swoją linijkę na początku definicji struktury):
Kod: Zaznacz cały
SND_PCI_QUIRK(0x103c, 0x30cf, "HP DV6748us", CXT5045_LAPTOP_HPSENSE),
Dalej, udajemy się do odpowiedniego katalogu i kompilujemy alsę z odpowiednimi parametrami:
Kod: Zaznacz cały
# cd /usr/src/alsa/alsa-driver-1.0.16
# ./configure --prefix=/usr --with-cards=hda-intel --with-card-options=hda-codec-conexant
# make
# make install
W tym momencie powinniśmy zrestartować nasz system. Po restarcie należy odinstalować i zainstalować z odpowiednimi opcjami moduł snd-hda-intel (przed jego usunięciem należy zakończyć wszelkie procesy związane z dźwiękiem):
Kod: Zaznacz cały
# lsof /dev/snd/*
# kill NUMER_PROCESU (numer w kolumnie PID)
# rmmod snd-hda-intel
# modprobe snd-hda-intel model=laptop
Po instalacji alsy, miksery są wyciszone, więc aby mieć dźwięk należy pobawić się mikserami. W KDE (jeśli ktoś jeszcze czegoś takiego nie ma) będzie to kmix, w GNOME zapewne jakiś podobny:
Po za wyjściem ''Master'' trzeba ustawić na maksymalną wartość także ''PCM''. Od teraz po podłączeniu słuchawek dźwięk w głośnikach będzie się wyciszał. PRAWIE wszystko jest już dobrze, ponieważ teraz nie działa mnie tylko jeszcze wbudowany mikrofon, ale za to ten od słuchawek działa w porządku, a o to mnie chodziło.
Prawdopodobnie w przyszłości te problemy znikną (oby!), ale póki co trzeba z nimi walczyć, mam nadzieję, że komuś się to przyda.
Pozdrawiam,
Przemek.
P.S. Jakby ktoś chciał zainstalować Windowsa XP na sprzęcie tego typu, to polecam stronkę:
http://www.fastfs.com/help_pages/hp%20downgrade.htm
gdyż niestety sterowników pod ten system na stronie producenta brak...