Reply
Thread Tools
Posts: 154 | Thanked: 73 times | Joined on Jan 2009 @ Toronto
#11
I can report failure of one suggestion from the old thread. I quoted lardman's UK-purchased MAC address to download a FIASCO image of the latest DIABLO, which I then flashed to my N800. (Although this was deceitful, I can not find anything in the Licence Agreement that makes it illegal.)

default_country is still 0x10.

OSSO_PRODUCT_WLAN_CHANNEL is still 'FCC/US'.
 
Posts: 235 | Thanked: 339 times | Joined on Nov 2010
#12
If you like experimenting, you could set up a toolchain for the initfs, modify and compile https://github.com/slonopotamus/open...pen-wlan-cal.c and replace the binary in initfs. Of course, opendsme isn't complete IIRC
 
Posts: 154 | Thanked: 73 times | Joined on Jan 2009 @ Toronto
#13
Originally Posted by jstokes View Post
If you like experimenting
Well, no, I just want the N800 to do what I always assumed it was supposed to do - provide me with basic computer services when I am travelling, without my having to haul around anything bulkier and heavier.

Why would any user mess around with stuff that you can't reflash? - without even trying a simple one-line way to achieve the intended goal.
 
Posts: 2,802 | Thanked: 4,491 times | Joined on Nov 2007
#14
Originally Posted by scaler View Post
A value set manually in the Root shell persists until I exit, and then it reverts to empty.

A value set manually in the non-Root shell persists until I close the Terminal window, even if I switch between Root and non-Root shells in the mean time.

If I open a second Terminal window, it does not echo the value set manually in the first one, but echoes 'FCC/US' in the non-Root shell (whether or not the first window is still open).
That's how environment variables work. If you set a variable in a shell it only applies to that shell and any children it launches after that point.

(The reason for trying CALOSSO_etc is that the osso-product-info output includes the following line when the executable is run as non-root:
Code:
you must be root to access CALOSSO_PRODUCT_WLAN_CHANNEL='<unknown>'
and the output does not mention OSSO_PRODUCT_WLAN_CHANNEL without the "CAL".)
That's just two different messages merged on one line, ie

Code:
you must be root to access CAL
OSSO_PRODUCT_WLAN_CHANNEL='<unknown>'
CAL is the configuration partition where things like your WLAN region and MAC address are stored. The contents are set at the factory and are not modified by reflashing.

(I am a bit suspicious of waking up wlancond. There is a long thread of N900 users complaining that their wlancond causes the available channels to default from time to time, blocking off the channels we are trying to open up.)
The N900 is very different in that respect. Instead of setting the regulatory domain for the sales region at the factory they try to determine it at run time using only the cellular network to make that decision and falling back to US.
 

The Following User Says Thank You to lma For This Useful Post:
luca's Avatar
Posts: 1,137 | Thanked: 402 times | Joined on Sep 2007 @ Catalunya
#15
FWIW, I just tried to echo 0x30 to /sys/devices/platform/wlan-omap/default_country, set my access point to channel 13, restarted wlancond and I could connect.
Mind me, /etc/init.d/wlancond restart doesn't work, I have to do a stop then a start (I think it's a timing issue, wlancond restart never worked reliably).
With the default value (0x10) it doesn't even list my access point.
The "funny" thing is that I cannot revert to 0x10 (not that I want it to): it will stay set at 0x30 even if I echo 0x10, I have to reboot to go back to 0x10.
Didn't touch any environment variable.

Edit: oh, and I checked with iwconfig that it was actually using channel 13 (2.472GHz).
Edit 2: (in case it is relevant) I am using diablo turbo kernel.
__________________
Don't buy LG TV sets (click for details).

Last edited by luca; 2011-03-17 at 20:22.
 

The Following 4 Users Say Thank You to luca For This Useful Post:
Posts: 36 | Thanked: 2 times | Joined on Jan 2008
#16
Originally Posted by scaler View Post
@LinuxStation - Glad to see that you are still around. Are you willing to try the effect of coding (as root):
echo 0x30 > /sys/devices/platform/wlan-omap/default_country
Certainly, but looks like luca has already completed that test. I have been busy lately and have not had much time to play with the N800.

Anyone who wants a router on channels 12 or 13 can use a DD-WRT router. An inexpensive unmodified Airlink AR430W will also use channels 12 and 13, if one first resets it and during setup chooses a geographical location not North America, if I recall correctly South America is the only other choice. I guess many other inexpensive WiFi routers can also use channels 12 and 13 if one first resets then chooses South America, Europe, or Australia as geographical location.

echo 0x30
By the way, anyone knows what code would provide channels 1 -14?
__________________
Nokia N800 with OS2008
 
Posts: 154 | Thanked: 73 times | Joined on Jan 2009 @ Toronto
#17
Originally Posted by luca View Post
FWIW, I just tried to echo 0x30 to /sys/devices/platform/wlan-omap/default_country, set my access point to channel 13, restarted wlancond and I could connect.

..... /etc/init.d/wlancond restart doesn't work, I have to do a stop then a start (I think it's a timing issue, wlancond restart never worked reliably).
PERFECT! THANK YOU! So now we have a tested solution for anyone(*) in Europe with a Nokia Tablet originally sold in North America, when unable to connect to wifi that works fine for other people around.

The problem is quite likely to result from the Access Point's being set to channel 12 or 13. (There will also sometimes be situations where there is an n-only AP, or a b/g/n AP located too far away for the b/g signal to be usable. Nothing you can do about that, except maybe ask where the router is and move closer.)

SOLUTION (assuming that rootsh or becomeroot has been installed)
Open X-Terminal
Code:
sudo gainroot
echo 0x30 >/sys/devices/platform/wlan-omap/default_country
/etc/init.d/wlancond stop
/etc/init.d/wlancond start
Close Terminal (unless you have other stuff to do there)
Connect wifi.

Repeat the coding after any reboot.

Anyone including the commands in a post-boot script might want to put "sleep 3" between the stop and start.

(*) So far, tested on Turbo DIABLO only. Users with other systems, please report success or failure.


Originally Posted by LinuxStation View Post
... anyone knows what code would provide channels 1 -14?
I have spent fruitless hours of googling, trying to find what the hexadecimal country codes are. Every two-letter country code has a three-decimal-digit counterpart, but they do not relate in any obvious way to the hex codes used here. In the old thread, people mentioned 0x10, 0x01 and 0x30, but no countries have the corresponding decimal representations 016, 001 or 048. I seem to remember that someone somewhere mentioned 0x41 in relation to Japan.

Does anybody know where these hex numbers come from?

Last edited by scaler; 2011-03-18 at 22:21. Reason: Nothing important
 
Posts: 2,802 | Thanked: 4,491 times | Joined on Nov 2007
#18
These are defined in the source:

/*
* regulatory domain codes as defined in IEEE 802.11
*/
#define REGDOMAIN_FCC 0x10
#define REGDOMAIN_IC 0x20
#define REGDOMAIN_ETSI 0x30
#define REGDOMAIN_SPAIN 0x31
#define REGDOMAIN_FRANCE 0x32
#define REGDOMAIN_MKK 0x40 /* channel 14 only */
#define REGDOMAIN_MKK13 0x41 /* channel 1 to 13 */
 

The Following User Says Thank You to lma For This Useful Post:
Reply


 
Forum Jump


All times are GMT. The time now is 12:34.