Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
wlan-Benennung + wlan-Schönheitsfehler
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German)
View previous topic :: View next topic  
Author Message
flo_02_mu
n00b
n00b


Joined: 06 Aug 2004
Posts: 73

PostPosted: Mon Apr 25, 2005 4:04 pm    Post subject: wlan-Benennung + wlan-Schönheitsfehler Reply with quote

Hallo!

Folgendes Szenario:
Ich verwende einen Laptop, der zu Hause an einer Dockingstation hängt und über
diese einen Netzwerkanschluss hat. Das Netzwerk wird dann als eth0 richtig
erkannt und funktioniert.
Wenn ich an der Uni bin hab ich diese Dockingstation jedoch nicht dabei,
folglich keinen "verdrahteten" Netzwerkanschluss, sondern eine wlan-pcmcia
Karte, die mit dem orinoco_cs-Modul wunderbar funktioniert.
ABER: Da ich ja ja nur entweder verdrahtet oder wlan betreibe, bekommt die
wlan-Karte beim einstecken ebenfalls wieder eth0 zugewiesen. Dies ist äußerst
unpraktisch, da damit die ganze Konfiguration per init-scripte (baselayout
1.11.9-r1) durcheinanderkommt.

Meine bisherige Lösung:
In /usr/src/linux/drivers/net/wireless/orinoco_cs.c vor
Code:
SET_NETDEV_DEV(dev, &handle_to_dev(handle));

ein
Code:
sprintf(dev->name, "wlan0");

einfügen. Das führt dazu, dass die wlan-Karte immer den Namen wlan0 bekommt,
statt ethX. Funktioniert zwar, aber irgendwie finde ich das unbefriedigend,
v.A. weil man jeden neuen Kernel erst patchen muss. Gibt es hier keine bessere
Möglichkeit? Vllt. eine Modul-Option oder so?

Was mich noch stört:
Wenn ich die Karte einstecke, dann wird richtigerweise versucht das script
/etc/init.d/net.wlan0 zu starten. Dies geht anstandslos, solange ich
Verbindung zum AP habe. Das weiß ich jedoch beim einstecken leider noch nicht.
;) Habe ich keine Verbindung, so hagelt es Fehlermeldungen, denn dann kann
logischerweise kein dhcpcd anlaufen, etc. Gibt es hier keine Möglichkeit zu
sagen: "Führe das Script aus - wenn keine Verbindung besteht, unterbreche,
sobald Verbindung besteht, mach weiter"?

Letzter Schönheitsfehler:
Beim Abziehen der wlan-Karte bekomme ich die Meldung: "cardmgr + wlan0: error
fetching interface information: Device not found" (Was ja auch logisch ist,
das Device is' ja schon "abgezogen" ;)) Lässt sich hier eine elegantere Lösung
finden?

- Flo
Back to top
View user's profile Send private message
flo_02_mu
n00b
n00b


Joined: 06 Aug 2004
Posts: 73

PostPosted: Sun May 01, 2005 10:28 am    Post subject: Reply with quote

Ist meine Vorgehensweise wirklich so selten? ;)

- Flo
Back to top
View user's profile Send private message
theche
Guru
Guru


Joined: 26 Feb 2004
Posts: 512

PostPosted: Sun May 01, 2005 10:37 am    Post subject: Reply with quote

wenn du die kabelnetzwerkkarte fest in den kernel reinbaust oder das modul zuerst lädst sollte diese karte immer eth0 bekommen.
_________________
Stellt euch vor, es geht, und keiner bekommt's hin! --theche, der gefragt worden ist, was sein nick bedeuten soll...
Back to top
View user's profile Send private message
TheSmallOne
Guru
Guru


Joined: 22 Jan 2005
Posts: 467
Location: Germany

PostPosted: Sun May 01, 2005 12:23 pm    Post subject: Reply with quote

Hm, ist nicht genau wegen dieser Benennungsproblematik udev erfunden worden?

Vielleicht solltest du dich da mal einlesen.
Back to top
View user's profile Send private message
flo_02_mu
n00b
n00b


Joined: 06 Aug 2004
Posts: 73

PostPosted: Sun May 01, 2005 12:32 pm    Post subject: Reply with quote

Das mit dem einkompilieren müsste eigentlich klappen, stimmt. Versuch ich später mal...
Aber bei udev hab ich eigentlich keine Hoffnung, denn Netzwerk-Devices tauchen ja nicht unter /dev auf, die bennent der Kernel / das entsprechende Modul quasi selbst. Ich lass mich da aber gerne eines Besseren belehren. :)

- Flo
Back to top
View user's profile Send private message
firefly
Watchman
Watchman


Joined: 31 Oct 2002
Posts: 5315

PostPosted: Sun May 01, 2005 12:53 pm    Post subject: Reply with quote

mit udev an sich gehts nicht.
Man kann aber mit udev + nameif( kann network devices anhand ihrer MAC-Adresse umbenennen, ist in net-tools)
eine regel erstellen.

Code:
$  udevinfo -p /sys/class/net/eth0/ -a
 looking at class device '/sys/class/net/eth0':
    SUBSYSTEM="net"
    SYSFS{addr_len}="6"
    SYSFS{address}="00:40:45:08:2d:49"
    SYSFS{broadcast}="ff:ff:ff:ff:ff:ff"
    SYSFS{features}="0x0"
    SYSFS{flags}="0x1002"
    SYSFS{ifindex}="2"
    SYSFS{iflink}="2"
    SYSFS{mtu}="1500"
    SYSFS{tx_queue_len}="1000"
    SYSFS{type}="1"


so könnte eine udev-regel aussehen:
Code:
SUBSYSTEM="net", SYSFS{address}="00:40:45:08:2d:49", PROGRAM="/sbin/nameif wlan0 00:40:45:08:2d:49"


mit diese regel wird das netzwerk device mit der Mac-Adresse "00:40:45:08:2d:49" in wlan0 umbenannt

gruß

firefly
_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
firefly
Watchman
Watchman


Joined: 31 Oct 2002
Posts: 5315

PostPosted: Sun May 01, 2005 12:59 pm    Post subject: Reply with quote

man kann auch eine generelle regel in udev aufstellen und die eigentliche konfiguration in /etc/mactab vornehmen.
(syntax der mactab siehe man nameif)

anstelle von
Code:
SUBSYSTEM="net", SYSFS{address}="00:40:45:08:2d:49", PROGRAM="/sbin/nameif wlan0 00:40:45:08:2d:49"


für jedes device, das hier
Code:
SUBSYSTEM="net", PROGRAM="/sbin/nameif -c /etc/mactab"


gruß

firefly
_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
flo_02_mu
n00b
n00b


Joined: 06 Aug 2004
Posts: 73

PostPosted: Sun May 01, 2005 1:56 pm    Post subject: Reply with quote

Das mit nameif ist eigentlich genial, funktioniert auch - was das Umbenennen betrifft. Aber anscheinend für PCMCIA nicht ganz geeignet, denn sobald man die Karte einsteckt versucht der cardmgr "network start eth0" auszuführen... und währenddessen benennt udev erst das device um. Schade eigentlich, die Lösung hätte mir gut gefallen. Aber mit dem fest einkompilierten Netzwerktreiber kann ich auch leben.

Weiß jemand was zu dem anderen Problem? Also zum (fort/)ausführen von /etc/init.d/net.wlan0, sobald ein AP in Reichweite ist?

- Flo
Back to top
View user's profile Send private message
firefly
Watchman
Watchman


Joined: 31 Oct 2002
Posts: 5315

PostPosted: Sun May 01, 2005 2:01 pm    Post subject: Reply with quote

du könntest das für die pcmcia karte den nameif command auch in /etc/conf.d/net einfügen, und zwar so:

in der /etc/conf.d/net kann man folgende funktionen definieren: preup, predown, postup und postdown
(steht in der net .example alles drinn).

gruß

firefly
_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
firefly
Watchman
Watchman


Joined: 31 Oct 2002
Posts: 5315

PostPosted: Sun May 01, 2005 2:08 pm    Post subject: Reply with quote

diese funktionen in /etc/conf.d/net gibt es erst ab baselayout-1.11.9

gruß

firefly
_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
flo_02_mu
n00b
n00b


Joined: 06 Aug 2004
Posts: 73

PostPosted: Sun May 01, 2005 2:32 pm    Post subject: Reply with quote

Hmm...
also das mit dem einkompilieren / Modul zuerst laden funktioniert doch nicht. Eigentlich auch klar, Der Netzwerkanschluss hängt an der Dockingstation, ist also physikalisch nicht vorhanden, wenn diese nicht dranhängt. Und was nicht vorhanden ist, kann auch kein eth0 werden. ;)

Mit den preup-Funktionen wird das irgendwie auch nix... sobald ich die Karte einstecke wird vom cardmgr "./network start eth0" ausgeführt. Woher der cardmgr das eth0 nimmt ist mir allerdings ein wenig rätselhaft.

- Flo
Back to top
View user's profile Send private message
firefly
Watchman
Watchman


Joined: 31 Oct 2002
Posts: 5315

PostPosted: Sun May 01, 2005 2:58 pm    Post subject: Reply with quote

Wenn das so aussieht könntest du entwerder das network-script in /etc/pcmcia so anpassen das nameif vor dem starten des eigentlichen net.* scriptes ausgeführt wird plus starten des passenden scriptes

oder folgendes:

- Du erstellst einen zusätzlichen virtuellen Runlevel(einfach einen ordner in /etc/runlevels erstellen)
- kopierst den inhalt von /etc/conf.d/net in 2 dateien z.b /etc/conf.d/net.wireless und /etc/conf.d/net.network.
die du entsprechen konfiguierst(in net.wirelss die wireless konfiguration, als eht0, und in net.network für den anschluss an der docking-station)
- erstellst dir eine start-script, welches eine symlink von /etc/conf.d/net auf net.network oder net.wireless setzt. das start-script muss vor pcmcia und den net.* scripten gestartet werden beim booten.
- in den neuen Runlevel kopierst den inhalt von default und zusätzlich dein start-script per rc-update.
- zum schluss musst du nur noch den bootmanager so konfiguieren, das du beim starten auswählen kannst in welchen virtuellen runlevel gestartet werden soll auser default(das geht über den kernel-parameter softlevel, welcher von einem der gentoo-boot-scripten im boot-runlevel ausgewertet wird).

wenn du hilfe brauchst beim erstellen des scriptes meld dich einfach :)

gruß

firefly
_________________
Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum