Ad-Hoc Networking
To enable:
iwconfig eth0 mode ad-hoc essid pre
This of course disconnects your existing wi-fi connection, so make sure you're connected via EVDO or USB.
This is just the standard linux method for enabling ad-hoc functionality. However, if you've got WiFi turned on via the Pre interface, it's not going to work for long, since the WiFi manager forces the device back into Managed mode periodically. In order to avoid this, you need to turn off the WiFi functionality through the webOS GUI. Then, bring the WiFi card up using:
/usr/sbin/wifidriver -i
This will load the driver for the WiFi card, but will not send any notifications to webOS, so it won't try to force the setting back to those it likes. At this point, the standard command above will work, and you can create an ad-hoc network. Useful for ssh-ing into your Pre when there are no access points available.
GUI enabled application to switch the mode coming soon..
Testing notes: Enabling wi-fi like this seems to turn it on full blast. The Pre battery will heat up quite a bit and if you're close to the device you may not get a decent signal due to overpowering principles of antenna theory.. Consider adding settings to limit wifi power output to 10-20% to help preserve battery life and minimize heat output. The nature of ad-hoc will guarantee some level of proximity, and therefore not need maximum power output. ~ Robi
root@castle:~# iwpriv eth0
eth0 Available private ioctls :
extscan (8BFA) : set 0 int & get 2 char
cachescanssid (8BF0) : set 0 int & get 2 char
hostcmd (8BE4) : set 2047 byte & get 2047 byte
arpfilter (8BE6) : set 2047 byte & get 2047 byte
regrdwr (8BE3) : set 256 char & get 256 char
sdcmd52rw (8BFE) : set 7 byte & get 7 byte
sdcmd53rw (8BFF) : set 32 char & get 32 char
setgetconf (8BEA) : set 2000 byte & get 2000 byte
getcis (8BE1) : set 0 & get 512 byte
scantype (8BEB) : set 8 char & get 8 char
getNF (0001) : set 1 int & get 1 int
getRSSI (0002) : set 1 int & get 1 int
bgscan (0004) : set 1 int & get 1 int
enable11d (0005) : set 1 int & get 1 int
adhocgrate (0006) : set 1 int & get 1 int
sdioclock (0007) : set 1 int & get 1 int
wmm (0008) : set 1 int & get 1 int
uapsdnullgen (000A) : set 1 int & get 1 int
setcoalescing (000B) : set 1 int & get 1 int
adhocgprot (000C) : set 1 int & get 1 int
enableroaming (000D) : set 1 int & get 1 int
enablepwrmgmt (000E) : set 1 int & get 1 int
chipenable (000F) : set 1 int & get 1 int
wmm_qosinfo (0002) : set 1 int & get 1 int
lolisteninter (0003) : set 1 int & get 1 int
fwwakeupmethod (0004) : set 1 int & get 1 int
psnullinterval (0005) : set 1 int & get 1 int
bcnmisto (0006) : set 1 int & get 1 int
adhocawakepd (0007) : set 1 int & get 1 int
ldocfg (0008) : set 1 int & get 1 int
sdiomode (0009) : set 1 int & get 1 int
rtsctsctrl (000E) : set 1 int & get 1 int
autodeepsleep (000C) : set 1 int & get 1 int
wakeupmt (000D) : set 1 int & get 1 int
setrxant (0001) : set 1 int & get 0
settxant (0002) : set 1 int & get 0
authalgs (0004) : set 1 int & get 0
encryptionmode (0005) : set 1 int & get 0
setregioncode (0006) : set 1 int & get 0
setlisteninter (0007) : set 1 int & get 0
setmultipledtim (0008) : set 1 int & get 0
setbcnavg (0009) : set 1 int & get 0
setdataavg (000A) : set 1 int & get 0
associate (000B) : set 1 int & get 0
getregioncode (0001) : set 0 & get 1 int
getlisteninter (0002) : set 0 & get 1 int
getmultipledtim (0003) : set 0 & get 1 int
gettxrate (0004) : set 0 & get 1 int
getbcnavg (0005) : set 0 & get 1 int
getdataavg (0006) : set 0 & get 1 int
getdtim (0007) : set 0 & get 1 int
getrxant (0001) : set 0 & get 12 char
gettxant (0002) : set 0 & get 12 char
gettsf (0003) : set 0 & get 12 char
wpssession (0004) : set 0 & get 12 char
deepsleep (8BFB) : set 1 char & get 6 char
hostsleepcfg (8BE5) : set 31 char & get 0
deauth (0001) : set 0 & get 0
adhocstop (0005) : set 0 & get 0
radioon (0002) : set 0 & get 0
radiooff (0003) : set 0 & get 0
rmaeskey (0004) : set 0 & get 0
wlanidle-on (000A) : set 0 & get 0
wlanidle-off (000B) : set 0 & get 0
sleepparams (0002) : set 64 char & get 64 char
bca-ts (0003) : set 64 char & get 64 char
scanmode (0006) : set 64 char & get 64 char
getadhocstatus (0009) : set 64 char & get 64 char
setgenie (000A) : set 64 char & get 64 char
getgenie (000B) : set 64 char & get 64 char
qstatus (000D) : set 64 char & get 64 char
setaeskey (0001) : set 32 char & get 0
getaeskey (0001) : set 1 int & get 128 char
version (0002) : set 1 int & get 128 char
verext (0003) : set 1 int & get 128 char
setwpaie (8BE0) : set 24 char & get 0
getlog (8BE9) : set 0 & get 512 char
tpccfg (0001) : set 16 int & get 16 int
scanprobes (0006) : set 16 int & get 16 int
ledgpio (0005) : set 16 int & get 16 int
sleeppd (0007) : set 16 int & get 16 int
rateadapt (0008) : set 16 int & get 16 int
inactivityto (0009) : set 16 int & get 16 int
getSNR (000A) : set 16 int & get 16 int
getrate (000B) : set 16 int & get 16 int
getrxinfo (000C) : set 16 int & get 16 int
atimwindow (000D) : set 16 int & get 16 int
bcninterval (000E) : set 16 int & get 16 int
sdiopullctrl (000F) : set 16 int & get 16 int
scantime (0010) : set 16 int & get 16 int
dataevtcfg (0012) : set 16 int & get 16 int
txcontrol (0013) : set 16 int & get 16 int
hscfg (0015) : set 16 int & get 16 int
hssetpara (0016) : set 16 int & get 16 int
drvdbg (0019) : set 16 int & get 16 int
setuserscan (0001) : set 2000 byte & get 2000 byte
getscantable (0002) : set 2000 byte & get 2000 byte
setmrvltlv (0003) : set 2000 byte & get 2000 byte
getassocrsp (0004) : set 2000 byte & get 2000 byte
addts (0005) : set 2000 byte & get 2000 byte
delts (0006) : set 2000 byte & get 2000 byte
qconfig (0007) : set 2000 byte & get 2000 byte
qstats (0008) : set 2000 byte & get 2000 byte
txpktstats (000C) : set 2000 byte & get 2000 byte
getcfptable (0009) : set 2000 byte & get 2000 byte
root@castle:~# iwlist
Usage: iwlist [interface] scanning [essid NNN] [last]
[interface] frequency
[interface] channel
[interface] bitrate
[interface] rate
[interface] encryption
[interface] keys
[interface] power
[interface] txpower
[interface] retry
[interface] ap
[interface] accesspoints
[interface] peers
[interface] event
[interface] auth
[interface] wpakeys
[interface] genie
[interface] modulation
root@castle:~# iwlist eth0 txpower
eth0 2 available transmit-powers :
0 dBm (1 mW)
16 dBm (39 mW)
Current Tx-Power=10 dBm (10 mW)
root@castle:~# iwconfig eth0
eth0 MRVL-SD8686 ESSID:"default" Nickname:""
Mode:Managed Frequency:2.462 GHz Access Point: 00:17:31:ED:CE:B1
Bit Rate:54 Mb/s Tx-Power=10 dBm
Retry limit:9 RTS thr=2347 B Fragment thr=2346 B
Encryption key:****-****-** Security mode:open
Power Management:off
Link Quality:0/100 Signal level:-54 dBm Noise level:-93 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:5969
Tx excessive retries:1824 Invalid misc:4005 Missed beacon:0
Finally, something promising I just stumbled on:
root@castle:~# wifi-mfg-labtool
Cannot Find File setup.ini
Cannot Find File setup.ini
Name: DutApiClass
Version: 1.3.5.00
Date: Wed Jul 15 21:09:03 2009
Note:
Static Object
Cannot Find File setup.ini
DutIf_InitConnection: 0
8686 (802.11a/g/b) TEST MENU
------------------------------
11. Get RF Channel
(5GHz Channels:
36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161, 165, 183, 184
, 185, 187, 188, 189, 192, 196, 7, 8, 11, 12, 16, 34, 38, 42
, 46, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140)
12. Set RF Channel (decimal)
13. Get RF DataRate (rate)
(1 for 1M; 2 for 2M; 3 for 5.5M; 4 for 11M, 5 for 22M,
6 for 6M; 7 for 9M; 8 for 12M; 9 for 18M, 10 for 24M,
11 for 36M, 12 for 48M, 13 for 54M, 14 for 72M)
17. Set Continous Tx Mode
(enable datarate (pattern=0))
18. Set CW Tx Mode (enable)
19. Set Carrier Suppression Tx Mode(enable)
22. Set Power at Antenna Using Cal data (decimal decimal [modulation=0]) (ch pow [b =0, g=1])
25. Set DutyCycle Tx Mode
(enable dataRate ((payloadweight =50)(pattern=0)(shortPreamble=0))
27. Xosc Calibration (TU =10)
28. PSM cycling (NumOfCycle=1 (decimal) SleepDur=1000000(us)(decimal)
rxDur=1000000(us)(decimal) StableDelay=2000(us)(decimal))
29. Get RF Band (0 for 2.4G, 1 for 5G)
30. Set RF Band (band (0 for 2.4G, 1 for 5G))
31. Clear received packet Count (Start Rx FER test)
32. Get received packet Count (Stop Rx FER test)
33. Tx MultiCast Packet (0x)(len=400) (0x)(Count=64) (rate=4)
(pattern=0xAA) (shortPreamble=1) (bssid-xx.xx.xx.xx.xx.xx)
34. Enable BSSID filter (enable bssid-xx.xx.xx.xx.xx.xx ssid-string)
39. SPI download from sbin file.
40. SPI Verify from sbin file
41. Dump E2PROM content
45. Read MACAddress (0|1 from Mac Reg or not)
46. Write MACAddress (xx.xx.xx.xx.xx.xx 0|1 (from Mac Reg or not))
53. Write CalTable (from file:CalDataFile.txt)
54. Read CalTable from EEPROM
88. FW Version
89. Load Dut configuration file (FileName)
95. Get Rf XTAL control
96. Set Rf XTAL control (setting(8 bits))
117. Tx IQ Cal Mode(enable(1|0)))
121. Thermal Compensation(enable(0|1), [TempRef, SlopNum, SlopDenom, CalInMs, PPACoeff, PACoeff])
99. Exit
125. Write PM Reg (0x 0x)(addr data)
126. Read PM Reg (0x 0x)(addr data)
Enter option:
It seems we have some things to play with. Notice 121. Thermal Compensation. ~Robi