Lint-wifi

From Openmoko

(Difference between revisions)
Jump to: navigation, search
(Description)
 
(49 intermediate revisions by 16 users not shown)
Line 2: Line 2:
  
 
==Description==
 
==Description==
lint-wifi is a relatively simplistic application written in PyGTK for the Neo Freerunner.  It aims to create a GUI-based method for associating with wireless networks, and provide various bits of connection-related information and control.  It is designed to work without a stylus, except when entering passwords (which are normally stored).
+
lint-wifi is a relatively simplistic application written in PyGTK for the Neo FreeRunner.  It aims to create a GUI-based method for associating with wireless networks, and provide various bits of connection-related information and control.
It is at the moment intended to do ''nothing'' unless a button is pushed.
+
  
It will be released ''soon''.
+
Lint-wifi was created by Jeffrey Malone in Jul 2008, but since then it seems to be abandoned. Because of this, a new project was started: '''lint-wifi2'''. The program now runs on the OpenMoko '''2008.12''', it fixes some issues, adds some functionalities and provides an .opk package for an easy install.
  
 +
If Jeffrey will regain interest in the project, surely we can merge lint-wifi and lint-wifi2 and mantain a single project.
 +
 +
===Installation===
 +
 +
'''Lint-wifi''' has a [http://projects.openmoko.org/projects/lint-wifi2/ project page].
 +
You can download the source tarball or the '''OpenMoko package''' from the [http://projects.openmoko.org/frs/?group_id=304 Files page], or browse the source tree from the [http://projects.openmoko.org/scm/?group_id=304 Subversion page].
 +
 +
You are encouraged to install the program and report any issue via the [http://projects.openmoko.org/tracker/?group_id=304 Tracker page].
 +
 +
====wpa_supplicant.conf====
 +
lint-wifi requires /etc/wpa_supplicant/wpa_supplicant.conf to be present. This works for me (tm)
 +
 +
<code>
 +
<pre>
 +
update_config=1
 +
ctrl_interface=DIR=/var/run/wpa_supplicant
 +
ap_scan=1
 +
</pre>
 +
</code>
 +
 +
The first line is necessary if you want wpa_supplicant to able to rewrite the file itself when you add or edit some access point configuration. I needed the third one to get scanning to work.
 +
 +
====Compiling wpa_lint====
 +
lint-wifi is a python script, you can just copy lint-wifi.py to your phone and make it executable. It relies on wpa_lint however wich is written in C, so you need to compile it.
 +
 +
On Debian/Ubuntu grab openmoko-toolchain_0.20080521-ubuntu6_i386.deb (see [http://andreasdalsgaard.blogspot.com/2008/07/openmoko-development-in-5-minutes.html]). Edit the Makefile for wpa_lint, at the top comment out the line starting with gcc= and add the line
 +
gcc = arm-angstrom-linux-gnueabi-gcc
 +
 +
Now just do make and copy the resulting wpa_lint to your phone. Don't forget to make it executable. You should put it in any directory pointed by the superuser PATH (e.g. /usr/sbin/).
  
 
==Requirements==
 
==Requirements==
 
There are several requirements needed to run lint-wifi:
 
There are several requirements needed to run lint-wifi:
 
* PyGTK
 
* PyGTK
* A valid wpa_supplicant.conf in /etc/wpa_supplicant/wpa_supplicant.conf
+
* A valid [http://wiki.openmoko.org/wiki/GTA02_WLAN#Sample_wpa_supplicant.conf wpa_supplicant.conf] in /etc/wpa_supplicant/wpa_supplicant.conf
  
 +
==Known bugs==
 +
 +
If launching 'lint-wifi.py' fails with '''NameError: name 'init' is not defined''', then
 +
edit the file ''/usr/lib/python2.5/site-packages/gtk-2.0/gtk/__init__.py'', go to line 82 and add an underscore in front of the "init()" so that it reads "_init()". Reference  [http://lists.openmoko.org/nabble.html#nabble-tc1128064%7Ca1128064].
 +
 +
'''Even the WiFi is off, the icon is still there in illume bar'''. This is a known bug, see ticket [https://docs.openmoko.org/trac/ticket/1742 #1742].
  
 
=Tour=
 
=Tour=
  
==Layout==
+
Lint-wifi is broken into pages, each page offering various bits of information or control. Below are the screenshot of some pages.
lint-wifi is broken into pages, each page offering various bits of information or control. Below are the pages, as they exist at version .1A
+
  
 
==AP List==
 
==AP List==
[[Image:aplist.png]]
+
[[Image:Lint-wifi2_aplist.png|thumb|256px|Lint-wifi: Access Point List]]
  
 
AP List will show APs that can currently be seen.  They will initially be ordered by how wpa_supplicant feels are best.
 
AP List will show APs that can currently be seen.  They will initially be ordered by how wpa_supplicant feels are best.
 
Columns include:
 
Columns include:
* essid
+
* '''SSID'''
* Enc -- Consisting of "WPA", "WEP" and "off"
+
* '''Enc''' -- Encryption, consisting of "WPA", "WEP" or "off"
* Signal
+
* '''Signal''' -- Signal strenght
* Chan
+
* '''Chan''' -- WiFi Channel
* S -- indicating State or Status:
+
* '''S''' -- Indicating network status:
** C: Connected
+
** '''C''': Connected
** K: Known/configured (eg, password is stored) and enabled
+
** '''K''': Known/configured (eg, password is stored) and enabled
** D: Known/configured and disabled
+
** '''D''': Known/configured and disabled
** -: Unknown
+
** '''-''': Unknown
* Mode -- At present is unused, will indicate Managed/Infrastructure vs Ad-Hoc
+
* '''Mode''' -- At present is unused, will indicate Managed/Infrastructure vs Ad-Hoc
  
 
Buttons:
 
Buttons:
* Scan
+
* '''Scan''' -- Scan for WiFi networks
* Dis/Connect -- Dis/connect to selected AP (See [[lint-wifi|Auto Mode]] for an important usage note!)
+
* '''Edit''' -- Edits the settings of APs configured or visible
* New/Del -- Presently unused, will support defining and deleting networks
+
* '''WiFi Off''' -- Toggle power to the WiFi device
* Exit
+
* '''Exit''' -- Exit the program
 +
<br style="clear:both" />
 +
 
 +
==Connection Edit==
 +
[[Image:Lint-wifi2_edit.png|thumb|256px|Lint-wifi: Connection Edit Page]]
 +
 
 +
Select a connection and click the Edit button to set the password. Checking the '''Save''' checkbox will issue the '''save_config''' command to the '''wpa_supplicant''' process, which will rewrite the /etc/wpa_supplicant/wpa_supplicant.conf file.
 +
<br style="clear:both" />
  
 
==Status==
 
==Status==
[[Image:status.png]]
+
[[Image:Lint-wifi2 status.png|thumb|256px|Lint-wifi: Status Page]]
  
 
The Status page will primarily indicate the configured status of eth0.
 
The Status page will primarily indicate the configured status of eth0.
  
 
The Renew DHCP button can be used to nudge udhcpc into renewing.
 
The Renew DHCP button can be used to nudge udhcpc into renewing.
For a description of [[lint-wifi|Auto Mode]], see below.
+
An "Enable All APs" button enables all that APs set to disabled.
 +
<br style="clear:both" />
  
 
==Conn==
 
==Conn==
[[Image:conn.png]]
+
[[Image:Lint-wifi2_connection.png|thumb|256px|Lint-wifi: Connection Page]]
  
 
The Conn page shows information related to the associated AP.
 
The Conn page shows information related to the associated AP.
 +
<br style="clear:both" />
  
 
==Config==
 
==Config==
Config is at present empty, but will contain various lint-wifi configuration options, such as support for hiding certain columns in the AP List.
+
Allow hiding certain columns in the AP List.
 
+
<br style="clear:both" />
=Auto Mode=
+
Auto Mode (my name for it) is wpa_supplicant's default mode of operation, and allows it to connect to any network it sees available.
+
 
+
The Dis/connect button on the AP List page can disable Auto Mode if you tell it to connect to a known AP (connecting to an unknown one will not disable it).
+
This is due to the fact that wpa_supplicant assumes it knows best in selecting an AP, and by you telling it otherwise, it will only connect to that one AP until you allow it to connect elsewhere.
+
 
+
It is best to simply leave it on.  Odds are, you will not connect to a network you don't intend to -- wpa_supplicant will default to networks with encryption that it knows before it ventures to unencrypted (it will also pick the strongest encryption method first), so you're not likely to end up on a neighbour's wifi just because it can see it.  This can be further dictated by setting priorities in your wpa_supplicant.conf (a feature to be added later to lint-wifi).
+
 
+
----
+
A couple other screenshots:
+
  
[[Image:aplist_pass.png]]
 
[[Image:aplist_disc.png]]
 
  
[[Category:Applications]]
+
[[Category:Wlan software]]
 +
[[Category:Settings Applications]]

Latest revision as of 17:08, 12 October 2009

Contents

[edit] Introduction

[edit] Description

lint-wifi is a relatively simplistic application written in PyGTK for the Neo FreeRunner. It aims to create a GUI-based method for associating with wireless networks, and provide various bits of connection-related information and control.

Lint-wifi was created by Jeffrey Malone in Jul 2008, but since then it seems to be abandoned. Because of this, a new project was started: lint-wifi2. The program now runs on the OpenMoko 2008.12, it fixes some issues, adds some functionalities and provides an .opk package for an easy install.

If Jeffrey will regain interest in the project, surely we can merge lint-wifi and lint-wifi2 and mantain a single project.

[edit] Installation

Lint-wifi has a project page. You can download the source tarball or the OpenMoko package from the Files page, or browse the source tree from the Subversion page.

You are encouraged to install the program and report any issue via the Tracker page.

[edit] wpa_supplicant.conf

lint-wifi requires /etc/wpa_supplicant/wpa_supplicant.conf to be present. This works for me (tm)

update_config=1
ctrl_interface=DIR=/var/run/wpa_supplicant
ap_scan=1

The first line is necessary if you want wpa_supplicant to able to rewrite the file itself when you add or edit some access point configuration. I needed the third one to get scanning to work.

[edit] Compiling wpa_lint

lint-wifi is a python script, you can just copy lint-wifi.py to your phone and make it executable. It relies on wpa_lint however wich is written in C, so you need to compile it.

On Debian/Ubuntu grab openmoko-toolchain_0.20080521-ubuntu6_i386.deb (see [1]). Edit the Makefile for wpa_lint, at the top comment out the line starting with gcc= and add the line gcc = arm-angstrom-linux-gnueabi-gcc

Now just do make and copy the resulting wpa_lint to your phone. Don't forget to make it executable. You should put it in any directory pointed by the superuser PATH (e.g. /usr/sbin/).

[edit] Requirements

There are several requirements needed to run lint-wifi:

[edit] Known bugs

If launching 'lint-wifi.py' fails with NameError: name 'init' is not defined, then edit the file /usr/lib/python2.5/site-packages/gtk-2.0/gtk/__init__.py, go to line 82 and add an underscore in front of the "init()" so that it reads "_init()". Reference [2].

Even the WiFi is off, the icon is still there in illume bar. This is a known bug, see ticket #1742.

[edit] Tour

Lint-wifi is broken into pages, each page offering various bits of information or control. Below are the screenshot of some pages.

[edit] AP List

Lint-wifi: Access Point List

AP List will show APs that can currently be seen. They will initially be ordered by how wpa_supplicant feels are best. Columns include:

  • SSID
  • Enc -- Encryption, consisting of "WPA", "WEP" or "off"
  • Signal -- Signal strenght
  • Chan -- WiFi Channel
  • S -- Indicating network status:
    • C: Connected
    • K: Known/configured (eg, password is stored) and enabled
    • D: Known/configured and disabled
    • -: Unknown
  • Mode -- At present is unused, will indicate Managed/Infrastructure vs Ad-Hoc

Buttons:

  • Scan -- Scan for WiFi networks
  • Edit -- Edits the settings of APs configured or visible
  • WiFi Off -- Toggle power to the WiFi device
  • Exit -- Exit the program


[edit] Connection Edit

Lint-wifi: Connection Edit Page

Select a connection and click the Edit button to set the password. Checking the Save checkbox will issue the save_config command to the wpa_supplicant process, which will rewrite the /etc/wpa_supplicant/wpa_supplicant.conf file.

[edit] Status

Lint-wifi: Status Page

The Status page will primarily indicate the configured status of eth0.

The Renew DHCP button can be used to nudge udhcpc into renewing. An "Enable All APs" button enables all that APs set to disabled.

[edit] Conn

Lint-wifi: Connection Page

The Conn page shows information related to the associated AP.

[edit] Config

Allow hiding certain columns in the AP List.

Personal tools

Introduction

Description

lint-wifi is a relatively simplistic application written in PyGTK for the Neo Freerunner. It aims to create a GUI-based method for associating with wireless networks, and provide various bits of connection-related information and control. It is designed to work without a stylus, except when entering passwords (which are normally stored). It is at the moment intended to do nothing unless a button is pushed.

It will be released soon.


Requirements

There are several requirements needed to run lint-wifi:

  • PyGTK
  • A valid wpa_supplicant.conf in /etc/wpa_supplicant/wpa_supplicant.conf


Tour

Layout

lint-wifi is broken into pages, each page offering various bits of information or control. Below are the pages, as they exist at version .1A

AP List

Aplist.png

AP List will show APs that can currently be seen. They will initially be ordered by how wpa_supplicant feels are best. Columns include:

  • essid
  • Enc -- Consisting of "WPA", "WEP" and "off"
  • Signal
  • Chan
  • S -- indicating State or Status:
    • C: Connected
    • K: Known/configured (eg, password is stored) and enabled
    • D: Known/configured and disabled
    • -: Unknown
  • Mode -- At present is unused, will indicate Managed/Infrastructure vs Ad-Hoc

Buttons:

  • Scan
  • Dis/Connect -- Dis/connect to selected AP (See Auto Mode for an important usage note!)
  • New/Del -- Presently unused, will support defining and deleting networks
  • Exit

Status

Status.png

The Status page will primarily indicate the configured status of eth0.

The Renew DHCP button can be used to nudge udhcpc into renewing. For a description of Auto Mode, see below.

Conn

Conn.png

The Conn page shows information related to the associated AP.

Config

Config is at present empty, but will contain various lint-wifi configuration options, such as support for hiding certain columns in the AP List.

Auto Mode

Auto Mode (my name for it) is wpa_supplicant's default mode of operation, and allows it to connect to any network it sees available.

The Dis/connect button on the AP List page can disable Auto Mode if you tell it to connect to a known AP (connecting to an unknown one will not disable it). This is due to the fact that wpa_supplicant assumes it knows best in selecting an AP, and by you telling it otherwise, it will only connect to that one AP until you allow it to connect elsewhere.

It is best to simply leave it on. Odds are, you will not connect to a network you don't intend to -- wpa_supplicant will default to networks with encryption that it knows before it ventures to unencrypted (it will also pick the strongest encryption method first), so you're not likely to end up on a neighbour's wifi just because it can see it. This can be further dictated by setting priorities in your wpa_supplicant.conf (a feature to be added later to lint-wifi).


A couple other screenshots:

Aplist pass.png Aplist disc.png