Contents |
I mange distributioner af Linux kontrolleres netværksforbindelsen af NetworkManager-dæmonen; den kan konfigureres af brugeren. I KDE er KNetworkManagmer (til KDE 3 og KDE 4) og Network Management (til KDE 4) de vigtigste brugerflader til NetworkManager.
For at rapportere en fejl i Network Management skal du angive følgende information:
Og meget vigtigt: Kan du etablere forbindelse med en anden klient? For eksempel nm-applet under GNOME eller cnetworkmanager fra konsollen. Hvis du kan det, så prøv venligst at vedhæfte tilsvarende information som beskrevet i slutningen af denne artikel.
På de fleste stationære Linux-maskiner er Network Manager den øverste i en stor og skrøbelig stak af komponenter. Det er nødvendigt for at kunne håndtere det enorme antal forskellige konfigurationer. Når en opkobling mislykkes kan der være mange forskellige årsager overalt i stakken, men symptomerne vil typisk være noget i retnig af "Connection got to 28% and then failed". Fejl, som rapporteres til bugs.kde.org bliver triaged for at finde ud af, hvor i stakken fejlen optræder, sådan at den kan rettes af de, der er ansvarlige.
Trådløs hardware har et forbløffende stort antal fejl. Disse håndteres i det næste lag, hvis du er heldig.
Den egentlige driver, som kontrollerer hardwaren findes her. Her er der også mange interessante fejl. Efter at et standard MAC-lag til trådløs forbindelse blev føjet til Linux-kernen, så er situationen blevet bedre. Noget hardware har ingen Linux-driver, så man kontrollerer den ved brug af værktøjet ndiswrapper, som indlæser Windows-drivere med deres fejl. Du kan se outputtet i systemloggen, og du kan komme i kontakt med driveren ved hjælp af kommandoerne i iwtools.
wpa_supplicant er et værktøj, som har kontakt med driveren på lavt niveau og udbyder indstillinger for autentfikation og kryptering. Det er opensource og generelt af høj kvalitet. Før NetworkManager skulle brugere konfigurere det manuelt med kontrolfiler i /etc. På den måde kom nogle brugere en gang imellem i vanskeligheder. Det logger sædvanligvis til /var/log/wpa_supplicant.log. Nutildags kontrolleres det for det meste af....
I de fleste almindelige Linux-distributioner er NetworkManager den centrale systemdæmonen for netværksdelen. Den har rodprivilegier, har kontrol over de lavere niveauer og giver klienter, som kører i en brugersession, mulighed for at kontrollere visse ting via DBUS. Den skriver i /var/log. NM kontrollerer også DHCP-klienter om nødvendigt og overskriver etc/resolv.conf med den DNS-server, som den har konfigureret. NetworkManager frembyder også en tjeneste i Systemindstillinger, som er ansvarlig for at læse din distributions netværkskonfigurationsfil (for hele systemet) og sende den videre til NetworkManager.
KNetworkManager til KDE 4, Network Management Plasmoid under KDE 4, KNetworkManager under KDE 3, nm-applet under GNOME og cnetworkmanager som sidste udvej. Disse er ansvarlige for
Selv om disse er de mest synlige dele af systemet, så har de mindst betydning for at foretage en succefuld opkobling. Eftersom de har den samme bindelse til NetworkManager, så kan de let erstatte hinanden.
Start i toppen af stakken og arbejd dig nedad. Når du finder noget, som virker, så har du fundet stedet, hvor problemet opstår. Når du løber tør for ting, der kan ændres, så overlad resten til eksperter (formentlig det ansvarlige team hos din Linux-distribution).
Hvis du læser dette, så har du været i stand til at ave en opkobling med en anden NetworkManager-klient.
Først skal du sikre dig, at du ikke kører en anden klient samtidig med Network Management. Dette kan føre til uforudsigelige resultater. Hvis du gør, så skal du fjerne og genstarte Network Management. Du kan køre den udenfor Plasma vedplasmoidviewer networkmanagementhvis du vil.
Du bør nu prøve at finde ud af, hvordan den forbindelse, som Network Management giver dig afviger fra den, som den anden klient giver. Hvis du bygger Network Management fra kildekoden, så kan du bruge værktøjet 'qdbusfornm', som er en version af qdbus, som er udvidet til at håndtere NM's datatyper.
Hvis du ikke byggede den fra kildekoden, så erstat blot./qdbusfornm --systemmed
qdbus --system --literali kommandoen nedenfor. Det er lidt mere vanskeligt at læse, men giver dig det samme output. Hvis du bruger
qdbus --system --literalså tag dig venligst tid til at formattere outputtet, sådan at der kun er en nøgle per linje, ligesom outputtet fra qdbusornm herunder. Det er let nok, selv om det tager lidt tid, så det er bedre at du gør det end at en udvikler skal gøre det.
Værdien 0 nedenfor identificerer forbindelsen. Den kan du ændre indtil du finder den relevante forbindelse, hvis du har mere end en.
./qdbusfornm --system org.freedesktop.NetworkManagerUserSettings /org/freedesktop/NetworkManagerSettings/0 org.freedesktop.NetworkManagerSettings.Connection.GetSettings
returnerer
a{sa{sv}}(==802-11-wireless==
band: bg
mode: infrastructure
security: 802-11-wireless-security
ssid: opensuse-guest
==802-11-wireless-security==
auth-alg: open
key-mgmt: wpa-psk
wep-tx-keyidx: 0
==connection==
autoconnect: true
id: openSUSE
type: 802-11-wireless
uuid: {951cc7d9-1fa0-4525-9ab7-7199849e1b19}
==ipv4==
dns-search:
method: auto
)
Gentag nu, idet du bruger den anden klient, som virker, kopier begge sæt optputs og vedhæft dem sikkert til en fejlrapport til bugs.kde.org. Med denne information vil vi hurtigt være i stand til at finde en løsning.
Hvis du kommer ud for et sammenbrud, så bør du installerer debuggingsymboler og lave et backtrace. I Kubuntu skal du tilføje debugarkivet og installere plasma-widget-networkmanagement-dbgsym.