Webconverger / webc

Webconverger's curated chroot from which updates originate
https://webconverger.org/upgrade/
73 stars 37 forks source link

Wireless configuration fail completely. Seems like it does not check iwconfig #177

Closed sebastiannielsen closed 11 years ago

sebastiannielsen commented 11 years ago

I tried to set up a wireless config to my Galaxy S4 hotspot.

boot config for wireless are set to: wpa-ssid=galaxys4 wpa-key-mgmt=NONE

Booting in debug and checking /etc/network/interfaces show nothing except for lo and eth0. ifconfig shows only lo and eth0. iwconfig however, shows lo, eth0 and eth1, where eth1 has wireless extensions.

Checking the git code for wireless seems like its only checking ifconfig for presence of the wireless card.

Manually connecting wireless with: iwconfig eth1 essid galaxys4 dhclient eth1

works wonderfully. so theres no driver problem. Maybe your code should check iwconfig aswell, seems like unconnected wireless ifaces are hidden. Also maybe a boot config called "force-iface=XXXXX" where you can force a interface to be used regardless of its presence in ifconfig and iwconfig.

kaihendry commented 11 years ago

As you can see from the simple script https://github.com/Webconverger/webc/blob/master/etc/webc/wireless

Your wireless config must have been written to /etc/network/interfaces. Could you please http://webconverger.org/debug further Sebastian?

sebastiannielsen commented 11 years ago

Debugged more:

The file /etc/network/interfaces does not contain the string "wireless config", thus the sed line does not have any effect on file. Appending "wireless config" to /etc/network/interfaces and running /etc/webc/wireless manually, will add the 2 entires: wpa-ssid galaxys4 [TAB]wpa-key-mgmt NONE

to the file.

sebastiannielsen commented 11 years ago

Uploaded a youtube video of the bug: http://www.youtube.com/watch?v=kc99dzsYaEg

its not ready yet, about 30 min upload time left.

sebastiannielsen commented 11 years ago

I would suggest the following changes: Adding the line "#wireless config" to the end of /etc/network/interfaces. Change the line 58 in /etc/webc/wireless from: sed -i "s,wireless config,$wirelesscfg,g" /etc/network/interfaces

to sed -i "s,#wireless config,$wirelesscfg,g" /etc/network/interfaces

It would be better to have it as a comment in case /etc/webc/wireless would fail in some way, so to not leave a broken wired config incase wireless fails.

kaihendry commented 11 years ago

I don't understand how your /etc/network/interfaces does not look anything like https://github.com/Webconverger/webc/blob/master/etc/network/interfaces

Something must be clobbering it! Did you remove skipconfig?

Your video misses cat /proc/cmdline :)

kaihendry commented 11 years ago

Hey @sebastiannielsen , did you manage to look at it again?

sebastiannielsen commented 11 years ago

cat /proc/cmdline = inird=/live/initrd.img nopersistent noroot quickreboot uiet splash boot=live debug wpa-ssid=galaxys4 wpa-key-mgmt=NONE homepage=http://www.frilagret.se noblank noconfig locale=sv xkb=-layoutt%20se kioskresetstation=10 noupgrade noescape showcursor iptables=-I%20OUTPUT%20-d%2088.198.64.227%20-j%20REJECT iptables=-I%20OUTPUT%20-d%20108.62.197.93%20-j%20REJECT iptables=-I%20OUTPUT%20-d%20108.162.196.93%20-j%20REJECT BOOT_IMAGE=/live/vmlinuz

what is skipconfig and where shoud it be located? I dont find it in boot API?

sebastiannielsen commented 11 years ago

Oops a spelling error, typed the whole cmdline manually, but its really "layout" and not "layoutt".

kaihendry commented 11 years ago

Can you do a reduced example?

For example, just using the Live version:

sebastiannielsen commented 11 years ago

did try that. Same result now.

wec@webconverger:/$ sudo -i root@webconverger:~# cat /proc/cmdline initrd=/live/initrd.img boot=live-ssid=galaxys44 wpa-key-mgmt=NONE BOOT_IMAGE=/live/vmlinuz root@webconverger:~# cat /etc/network/interfaces auto lo iface lo inet loopback

allow-hotplug eth0 iface eth0 inet dhcp

root@webconverger:~#

sebastiannielsen commented 11 years ago

however appending skipconfig does yield correct network configuration.

What does skipconfig really do?

sebastiannielsen commented 11 years ago

skipconfig and such "hidden" boot API should really be documented in http://webconverger.org/API/

Im using a custom bootloader with a "permanent" config that I did construct completely from http://webconverger.org/API/ to increase security, so I don't have webconverger to contact the config service. Thats why I have iptables rules in place blocking request to webconverger config service too.

kaihendry commented 11 years ago

skipconfig is part of live-config and not the Webconverger API. You could use noconfig to disable the configuration service.