Tworzę aplikację GUI, która będzie kontrolować mój laptop, aby działał jak hotspot Wi-Fi. Mogę zmienić dystrybucje, więc chcę znaleźć rozwiązanie, które będzie działać ogólnie dla wszystkich dystrybucji. Obecnie robię to na Fedorze 17.
Użycie przycisku „Użyj jako hotspot” NetworkManagera działa bardzo dobrze, aby utworzyć hotspot ad-hoc:

Chcę odtworzyć tę funkcję za pomocą poleceń terminalu.
Poniżej znajdują się dwie metody, które starałem się osiągnąć, ale nie znalazłem jeszcze rozwiązania.
Metoda 1: iwconfig
Korzystając z badań z całej sieci, wypróbowałem następujące polecenie:
# ifconfig wlan0 10.42.0.1 netmask 255.555.255.0 broadcast 10.42.0.255 up
# iwconfig wlan0 essid my-lappy mode ad-hoc key 0123456789
# iptables-restore < saved-hotspot-iptables
# echo 1 > /proc/sys/net/ipv4/ip_forward
# dhclient wlan0
gdzie saved-hotspot-iptablesjest plik, który wygenerowałem za iptables-save > saved-hotspot-iptablespomocą iptables ustawionych przez funkcję „Użyj jako hotspot”.
Metoda 1 Problem
Urządzenia widzą SSID, ale nie mogą się połączyć. Uruchomienie ip aujawnia następujące informacje o wlan0:
...
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state DORMANT qlen 1000
...
Zawiadomienie NO-CARRIERjest obecne, a stan jest DORMANTzamiast UP.
Uruchomienie ifconfig wlan0pokazuje:
...
wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
...
Zauważ, że RUNNINGbrakuje jej jako jednej z flag.
Metoda 2: nmcli
Jeśli przycisk „Użyj jako hotspot” NetworkManagera zostanie naciśnięty co najmniej raz w systemie, /etc/sysconfig/network-scripts/ifcfg-Hotspotzostanie utworzony i mogę użyć następującego polecenia, aby uruchomić działający hotspot:
# ifconfig wlan0 up
# nmcli con up id Hotspot
# iwconfig wlan0 essid my-lappy key 0123456789
Metoda 2 Problem
Jeśli użytkownik nigdy wcześniej nie nacisnął „Użyj jako hotspot” w NetworkManager, nmcli con up id Hotspotnie będzie działać. Patrzyłem, nm-connection-editor --createale nie mogłem znaleźć wielu informacji. Zajrzałem także do ręcznego tworzenia, /etc/sysconfig/network-scripts/ifcfg-Hotspotale ta metoda nie wydaje się elegancka ani rozszerzalna na inne dystrybucje.