[Q] Q? How to increase wifi range on LupusV12? - Xperia Play Q&A, Help & Troubleshooting

Hi
Im running LupusV12 and Bane of speed Final ed,since i installed Lupus my wifi range decrease enormously,i´ve tried:
http://forum.xda-developers.com/showthread.php?t=1465750
In the terminal i wrote
system/bin/sh
system/bin/iwconfig eth0 txpower 25
(the original was wlan0 instead of eth0, but the terminal didnt found it so i changed it to eth0 )
When i ran wconfig, the txpower went from 18 to 25, but to tell you the truth,nothing happened,any ideas?

Related

[Q] Connect WildFire to AdHoc - can't find file : tiwlan.ini

Hello,
First I'd like to tell that i'm a newbie with Android's Phone, I had Windows Phone until now. I have some light Linux knowledges. So be gentle and easy with Android and Linux technical terms
So, here is my problem : I tried to connect to an Ad Hoc Wifi Network but it doesn't work. It seems to be a known issue for a long time in android community and some solutions exists.
One of these solutions I found is to edit the file : /system/etc/wifi/tiwlan.ini
and modify :
Code:
WiFiAdhoc = 1
dot11DesiredSSID = HTCG1Default
dot11DesiredBSSType = 0
So, I rooted my Phone (with SoftRoot), I used ADB, but the file tiwlan.ini don't seems to be present on my device in the folder it should be.
My questions are : Is it normal for Wildfire that this file is not here? Is the location of the file different on Wildfire ? Is there another solution for Wildfire to connect AdHoc Wlan?
Here are some informations on my device :
HTC Wildfire A3333
Firmware version : 2.1 update1
Baseband version : 13.45.55.24H_3.35.15.31
kernel version : 2.6.29-4266b2e1
htc-kernel and18-2 #1 (May 19 2010)
Build Number : 1.14.163.1 CL183733
Soft Number : 1.14.163.1
Browser version : WebKit 3.1
Thanks for interest you will give to my request.
The same happens to me.
Would appreciate a solution.
Thank You
I'm trying to do the same and I don't have this file. Anyone with a Wildfire succeded to connect to an ad hoc connection?
I don't really understand why Android shouldn't be able to connect to ad hoc connection. Are the developers dumb or what?
See this:
http://forum.xda-developers.com/showpost.php?p=8201393&postcount=5
You will have to re-add "ap_scan=2" every now and then, Android stubbornly removes it.
Code:
echo "ap_scan=2" >> /data/misc/wifi/wpa_supplicant.conf
works fine for that purpose.
cumulus007 said:
See this:
http://forum.xda-developers.com/showpost.php?p=8201393&postcount=5
You will have to re-add "ap_scan=2" every now and then, Android stubbornly removes it.
Code:
echo "ap_scan=2" >> /data/misc/wifi/wpa_supplicant.conf
works fine for that purpose.
Click to expand...
Click to collapse
I've got a tablet branded "Goclever" (T70) with Android 2.2. Rooted it successfully. Tried to make it working in ad-hoc mode but there is no tiwlan.ini on my system (searched it throughout). Tried the method mentioned in the post above, but but no success.
Any ideas, pls ?
Piotr
Wildfire doesn't use tiwlan.ini. Only devices having a TI wifi chip uses it, and Wildfire has a BCM chip.
My device (Goclever T70) does not seem to use tiwlan.ini either.
What to do than? What changes to which config files should be applied in order to make adhoc wifi work?
--
Piotr

[FAQ][DEV] BT, WiFi and MAC Address on HD2

I hope all this is just a little bit interesting for some developers because I can't do any further investigations on ANDROID because my device is broken. At the moment it's on the way and I hope I will get a change of my broken HD2. I have summarized some more or less insteresting facts and I hope someone of you will think about all this informations and can work with them.
First at all: I'm not a developer but I have done some search on ANDROID and logged and logged and logged it again. All this is just a collection of facts and results of compare log files.
When you disassemble some Files within Android, you will see that something will not work because it can't. Let me start with the init.rc what is missing or might be wrong:
1. MISSING FOR BLUETOOTH:
Code:
# create mountpoints
mkdir /mnt_data/download 0777 root system
2. WRONG?
Code:
chmod 0666 /dev/ttyHS1
chown root radio /proc/cmdline
chmod 666 /proc/cmdline
There is no ttyHS1 device within the ANDROID. Can't find it.
3. NOT SURE
rfkill is seems not working. Recommendation on the website:
http://www.gitorious.org/openaos-te...5f360fec4c21c1e06d145a5fe?diffmode=sidebyside
Code:
chmod 0666 /sys/devices/platform/wifi_bt/bt_enable 0
write /sys/devices/platform/wifi_bt/bt_enable 1
but based on ANDROID Developer FAQ it should be:
Code:
chmod 0666 /sys/modules/board_[platform]/parameters/bluetooth_power_on
write /sys/modules/board_[platform]/parameters/bluetooth_power_on 1
and this MUST also done after the change:
Code:
on property:persist.service.bluetoothd.enable=0
write /sys/modules/board_htcleo/parameters/bluetooth_power_on 0
...depend of the settings it also could be:
Code:
write /sys/devices/platform/wifi_bt/bt_enable 0
on property:persist.service.bluetoothd.enable=1
write /sys/modules/board_htcleo/parameters/bluetooth_power_on 1
...depend of the settings it also could be:
Code:
write /sys/devices/platform/wifi_bt/bt_enable 1
Also interesting is the command write which is used a lot of times by the init.rc. I don't know where this command is located. But if you open a SHELL on Android and try to "write" something you will see that this command is not available. Can someone explain how this will work when this command is not available????
4. WRONG!
Code:
chmod 666 /dev/uinput
chmod 666 /etc/bluez/audio.conf
chmod 666 /etc/bluez/hcid.conf
chmod 666 /etc/bluez/input.conf
On the one hand this path is not existing and on the second hand the hcid.conf is also not existing. If you take a look only within /etc you will see that /etc/bluetooth is only existing.
5. BT INITIALIZATION
Code:
service hciattach /system/bin/brcm_patchram_plus --enable_hci –enable_lpm --baudrate 3000000 --patchram /etc/firmware/bcm4329.hcd /dev/ttyHS0
user bluetooth
group bluetooth net_bt_admin
disabled
This is also not working at all. If you try to run this command via the shell nothing will happens. And if you need to load the firmware into the device you need also setup this device by nvram.txt which you can see within the bluetooth.c file. The nvram.txt is important to get a valid MAC Address from the hardware. If you take a look into the source code of the BCM4329 you will see additional informations about this.
The second problem is the value of 3000000. This is to small. If you want to work with head set than a value of 4000000 is minimum required. From my point of view this initialization should be:
Code:
service hciattach /system/bin/logwrapper /system/bin/hciattach -s 57600 /dev/ttyHS0 any 4000000 flow
The value 57600 is the minimum value for initialize bluetooth and it could be that this value will downsize the standby drain. Not sure, just an idea.
Why? Lets take a look into the main.conf or hcid.conf:
Code:
# What value should be assumed for the adapter Powered property when
# SetProperty(Powered, ...) hasn't been called yet. Defaults to true
InitiallyPowered = true
# Remember the previously stored Powered state when initializing adapters
RememberPowered = true
This was the reason why I think the initialization speed "...-s 57000 /dev..." should be lowerd down which might also solve the battery drain issue. Again, not sure - just an idea.
Btw, if you open the ADB shell and try hciconfig, hciattach or hcitools non of this are working because there is no Bluetooth Adapter even if you have BT enabled. This tools are requried for BT analyse, test and command options. You can call each of the files within the Shell but whatever you try to do you it will fail because BT is not enabled. Try to run rfkill which could initiate a reset on the BT device. If you try to rfkill ttyHS0 which is the BT adapter on HD2 device this will not work. From my point of view all this problems are not only related to the kernel.
6. TAKE A LOOK INTO THE init.htcleo.rc
Code:
# Make sure we startup btld before hcid
# Set target address to emulator host loopback IF
# Limit baudrate to 460800 to ensure reliable uart operation
service btld /system/bin/logwrapper /system/bin/btld -hwtun 10.0.2.2 -hb 460800 3000000 -lpm 1
# service btld /system/bin/logwrapper /system/bin/btld -lpm 1 -hb 3000000
Not sure what will run first. The init.rc or the init.htcleo.rc. If the init.rc will run first this could be also a problem. Btw, the first value is 460800. From my point of view this is too much for initialization.
7. WiFi INITIALIZATION
Just an example but if you do a Google search for "BCM4329 nvram.txt" you will get more than 3 links. Let me show here an example:
http://android-wifi-tether.googlecode.com/svn-history/r465/trunk/res/raw/tether_edify
Search for Value 4329 and you will see SAMSUNG Device bla, bla – don't know from top of my head:
Code:
!file_exists("/sdcard/android.tether/bcm4329.bin") && ( module_loaded("dhd") || log(insmod("/lib/modules/dhd.ko", "firmware_path=/system/etc/wifi/bcm4329_mfg.bin nvram_path=/system/etc/wifi/nvram_mfg.txt"), "Loading dhd.ko module<br>(bcm4329_mfg.bin from /system/etc/wifi/)"); );
Hmm... That was the reason why I grabbed the SAMSUNG i9000 from a friend of me and double checked the device. If you take a look into the /etc/wifi you will see the nvram.txt. I'm not sure how this will be loaded into the device but the i9000 has the same BCM4329 Chipset.
Now let us take a look into the wifi.c for QUALCOMM devices which is also valid for the HD2:
http://gitorious.org/linux-on-qualc...f8dffe668c0448/libhardware_legacy/wifi/wifi.c
Code:
Line 61: Take a look. Nothing of this is existing on the HD2
Line 71: there is no wlan.ko on the HD2
But now, where the hell the MAC Address is stored for the WIFI Adapter? Just take a look at this location:
Code:
sys/module/board_htcleo/parameters/bdaddress
or use this:
Code:
/system/sysroot/module/board_htcleo/parameters/bdaddress
If you check this file you will see there your current MAC Address of the WIFI device. The stupid MAC for the BT device seems not stored on the device. And this is the point where I guess to need the fu***ing nvram.txt.
I have done a search for some BCM files and found something interesting which is attached as "Broadcom Files.7z." There are some (!) more or less firmware files within (?) and also the famous nvram.txt
For additional informations about WiFi and more just open the wifi_suplicant within the /system/bin directory with a simple text editor and browse down to the end. There you will see also a lot of interesting settings for the WiFi environment.
8. W.t.F. IS THIS STUPID NVRAM.TXT?
Download attached Broadcom.7z and check the txt file within. If you open the file you will see the nearly same content as within the
Code:
/etc/calibration
file.
But this file you can ignore on your HD2 device. Delete it, rename it – do whatever you want and you will see no changes on the device. The more interesting thing is within
Code:
/sys/calibration
Huhhhh...! The same file but less values. But where does it come from??? Currently I don't know.
It seems that the nvram.txt is as same as like a BIOS for the device. The BCM4329 is a BT AND WiFi Chip within one CHIP. It might be wrong but I guess this is the easy explanation for this.
And because of this the thing can't work. First it needs to load the BIOS (nvram.txt) and then it needs the OS for it (BCM4329 Firmware).
Okay here is something by reading and following your examples:
sys/module/board_htcleo/parameters/bdaddress
That lines exists in the current NAND Android roms, but this line:
/system/sysroot/module/board_htcleo/parameters/bdaddress
doesnt exist, not in Rafs rom or in imilka's 0.1 GB sense rom.
But here is my key interest: "bdaddress" is where the BLUETOOTH MAC Address is!
Another interesting thing, in imilka's 0.1 GB Sense rom, I can change this to whatever I want and it Sticks till I reboot, but in Rafs it does not.
Key Question, How do we make this file KEEP the changes we make to it??? I know its a dirty fix but none the less its a FIX!! So anyone got a clue?!??
First of all there is a WRONG that is big like an house
the init.rc "syntax" is not shell syntax.
so as example, command "write" will not work in shell... but only in init.rc
I see also a lot of confusions about stock froyo/gingerbread stuff and sense stuff.
Example: Sense uses it's own stuff for BT so a clean init.rc for sense is really different from the one for a non-sense build.
Also some stuff/commands needs to be changed/replaced to have them working with our hd2 kernel.
I have no time now but really this posts is about 30 different things that cannot be explained all togheter.
My suggestion is to google for "android init syntax" and start from there understanding all the android boot process and the android init syntax.
About the wifi mac address.
The wifi mac address is "read" from the libhardware_legacy.so
normmaly this lib reads the mac address in /etc/calibration
this file is a "kernel" file so you are not able to change it.
You can use a modified libhardware_legacy.so that reads the mac address in /system/etc/calibration so you can change it, as I did on my builds where you can change the wifi mac address.
Unfortunately the modified libs causes other issues like gps not working.
---------------------------------------------------------------------------
About the problem that you cannot write permanetly the changes on stuff inside the folders
/
/etc
/proc
/sys
and so on.. this is because those folders are the "kernel" that normally is read-only
you can make it write enabled but it's not a safe way to proceed...
so is there a chance to fix the issue with the bluetooth mac?!
would be important for me
(can't use my parrot car kit with my wifes hd2 because of the same mac adress )
rafpigna said:
First of all there is a WRONG that is big like an house
the init.rc "syntax" is not shell syntax.
so as example, command "write" will not work in shell... but only in init.rc
I see also a lot of confusions about stock froyo/gingerbread stuff and sense stuff.
Example: Sense uses it's own stuff for BT so a clean init.rc for sense is really different from the one for a non-sense build.
Also some stuff/commands needs to be changed/replaced to have them working with our hd2 kernel.
I have no time now but really this posts is about 30 different things that cannot be explained all togheter.
My suggestion is to google for "android init syntax" and start from there understanding all the android boot process and the android init syntax.
Click to expand...
Click to collapse
Thanks mate! The problem is that I have no clue how to do it but I hope someone outside who has more experience with all this knows what to do.
Btw, I have had also tried to do a simple test with this "write" command by fill a line within /etc/test and also /proc/test which fails. Usually I added some lines into the init.rc to see if this will work.
But I'm not sure if I have had something wrong.
rafpigna said:
About the wifi mac address.
The wifi mac address is "read" from the libhardware_legacy.so
normmaly this lib reads the mac address in /etc/calibration
Click to expand...
Click to collapse
Sorry, but this is not true. Check this:
http://developer.android.com/reference/android/net/wifi/WifiInfo.html
If you check this from Android SDK you will see that the wpa_supplicant is responsible for this. And this would be O.K. if you also check the BCM4329 source code.
First the CHIPSET will be initiated and prepared by the firmware and the nvram.txt and after that the wpa_supplicant do the rest.
How this exactly will work - sorry, too less coding knowledge
A good thing is it to compare the MAC & BT issue with the i9000 devices and Sony X10. The Sony X10 has the same QUALCOM chipset as the HD2.
Here are the files from the original Desire HD 1.8x.
The initrd.zip contains is the original file and the initrd~.7z is the extracted who is interested to read and compare.
see this http://gitorious.org/linux-on-wince...mmit/ce69804632e64b397758c1c9835f06efd0c8cb54
in file arch/arm/mach-msm/board-htcleo.c i see from markinus some changes to file bdaddress.but it is not in the main git tree we use for hd2 kernel
maybe someone kernel developer can see it and make a kernel for testing;
clio94 said:
see this http://gitorious.org/linux-on-wince...mmit/ce69804632e64b397758c1c9835f06efd0c8cb54
in file arch/arm/mach-msm/board-htcleo.c i see from markinus some changes to file bdaddress.but it is not in the main git tree we use for hd2 kernel
maybe someone kernel developer can see it and make a kernel for testing;
Click to expand...
Click to collapse
Looks good, but this is not valid for HD2. This is HTC Tattoo. If you check this code you will see "akm8973".
Damn!
http://nagaraj-embedded.blogspot.com/2011/02/guide-on-adding-wifi-drivers-on-android.html
and
http://www.jetdroid.org/forum/viewtopic.php?f=78&t=456&start=20#p4502
Can someone double check this???? From my point of view this looks quite good...
MrT69 said:
Sorry, but this is not true. Check this:
http://developer.android.com/reference/android/net/wifi/WifiInfo.html
If you check this from Android SDK you will see that the wpa_supplicant is responsible for this. And this would be O.K. if you also check the BCM4329 source code.
First the CHIPSET will be initiated and prepared by the firmware and the nvram.txt and after that the wpa_supplicant do the rest.
How this exactly will work - sorry, too less coding knowledge
A good thing is it to compare the MAC & BT issue with the i9000 devices and Sony X10. The Sony X10 has the same QUALCOM chipset as the HD2.
Click to expand...
Click to collapse
I'm wrong?
Sorry to say, I'm not an andorid guru but maybe I have a little bit more knoledge and trust me in our case, at least with our builds, the mac address is read from the calibration file.
So how is possible that in my builds you can change the wifi mac?
I just take yor desired wifi mac, write it in the /system/etc/calibration file and replace the libhardware_legacy.so that will read from that instead of /etc/calibration
MrT69 said:
Thanks mate! The problem is that I have no clue how to do it but I hope someone outside who has more experience with all this knows what to do.
Btw, I have had also tried to do a simple test with this "write" command by fill a line within /etc/test and also /proc/test which fails. Usually I added some lines into the init.rc to see if this will work.
But I'm not sure if I have had something wrong.
Click to expand...
Click to collapse
Already said... init.rc syntax is not shell syntax!!!
Anyway.. I still miss the purpose of this thread....
Just the first two google search links appearing with a simple "android init.rc" search
http://www.androidenea.com/2009/08/init-process-and-initrc.html
http://elinux.org/Android_Booting
Read that and something will be clearer.
rafpigna said:
I'm wrong?
Sorry to say, I'm not an andorid guru but maybe I have a little bit more knoledge and trust me in our case, at least with our builds, the mac address is read from the calibration file.
Click to expand...
Click to collapse
It might be that I have had something missunterstand but I only want to say by default (!) the MAC Address is not read from the calibration file by ANDROID. Of cause I have had tested your solution and it's working.
So how is possible that in my builds you can change the wifi mac?
I just take yor desired wifi mac, write it in the /system/etc/calibration file and replace the libhardware_legacy.so that will read from that instead of /etc/calibration
Click to expand...
Click to collapse
I know that the MAC Address could be changed within this way. I hope you don't understand it within the wrong way but from my point of view this is only a patch solution. Because of the fact that the BT & WiFi Chip is ONE (!) chip within HD2 there must be an other solution to read and get the MAC address for WiFi AND BT.
Already said... init.rc syntax is not shell syntax!!!
Click to expand...
Click to collapse
I only was asking why and where it was not working. In the mentime I know it because of your feedback. But I have add some lines into the init.rc and the files and changes was not written to the device. That was the reason why I was asking.
Anyway.. I still miss the purpose of this thread....
Click to expand...
Click to collapse
Hope to find some people who will help to fix all this issues and on the second hand I hope to find a solution for the BT and WiFi MAC to get it from the device.
It is proper time to make an open discussion about the 2.2.1 rom and more tweaks closer to HD2 reveal in the community.
MrT69 said:
I know that the MAC Address could be changed within this way. I hope you don't understand it within the wrong way but from my point of view this is only a patch solution. Because of the fact that the BT & WiFi Chip is ONE (!) chip within HD2 there must be an other solution to read and get the MAC address for WiFi AND BT.
Click to expand...
Click to collapse
maybe this is wrong but it is extremely good that in sense roms,you can change at any time wifi mac address.in my city municipality have free wifi hotspot but after sometime reads your wifi mac address and cut the connection for a time.so with dynamic wifi address i can be almost all time everywhere online and this saves me from a slow (because i live in a small greek city and 3g connection is not everywhere) data edge connection.

[Q] changng wifi mac address

Hello.
i done that on terminal in my rooted galaxy note 2 :
busybox ifconfig wlan0 hw ether 00:11:22:33:44:55
it changes the mac address but i can not connect to wifi anymore.
Someone knows how i can change my mac address ?
Thank you

[Q] Ethernet adapter

LG stock doesn't recognize ethernet adapter (Apple stuff). My Galaxy Nexus recognize it and work great.
Is it necessary a particular kernel or custom rom to have ethernet adapter recognized ???
Do you if some already have this feature ???
Nobody knows if it's because of kernel or maybe the rom ???
No information about this topic ???
mrcrowley70 said:
No information about this topic ???
Click to expand...
Click to collapse
I'm assuming the adapter is connected via USB-OTG cable. Driver support would need to be compiled into the kernel. Do you have G Pad v500 or v510 GPE?
If you have root, download and install Busybox and Terminal Emulator. Then open Terminal Emulator and run:
Code:
su
dmesg > /sdcard/dmesg_output.txt
Then you can upload that txt file to this thread or just send it to me via PM.
It's a V500.
I do the txt file with otg and ethernet adapter connected.
Thank u. Bye
id10terror said:
Driver support would need to be compiled into the kernel. Do you have G Pad v500 or v510 GPE?
Click to expand...
Click to collapse
Then ethernet adapter should work with Cyanogenmod 11, because I use it on my Galaxy Nexus with CM11.
Even if I use it on my GN also with stock rom.
Isn't it ?
mrcrowley70 said:
Then ethernet adapter should work with Cyanogenmod 11, because I use it on my Galaxy Nexus with CM11.
Even if I use it on my GN also with stock rom.
Isn't it ?
Click to expand...
Click to collapse
Your tablet correctly created eth0 device (dmesg log).
You need to use the following command on terminal emulator:
Code:
su
dhcpcd eth0
Now the eth0 must work...
I get the adress but it doesn't connect.
Code:
[email protected]:/ $ su
[email protected]:/ # dhcpcd eth0
dhcpcd[4860]: version 5.5.6 starting
dhcpcd[4860]: eth0: waiting for carrier
dhcpcd[4860]: eth0: carrier acquired
dhcpcd[4860]: eth0: sending IPv6 Router Solicitation
dhcpcd[4860]: eth0: sendmsg: Cannot assign requested address
dhcpcd[4860]: eth0: broadcasting for a lease
dhcpcd[4860]: eth0: carrier lost
dhcpcd[4860]: eth0: carrier acquired
dhcpcd[4860]: eth0: sending IPv6 Router Solicitation
dhcpcd[4860]: eth0: broadcasting for a lease
dhcpcd[4860]: eth0: offered 192.168.1.107 from 192.168.1.1
dhcpcd[4860]: eth0: acknowledged 192.168.1.107 from 192.168.1.1
dhcpcd[4860]: eth0: checking for 192.168.1.107
dhcpcd[4860]: eth0: sending IPv6 Router Solicitation
dhcpcd[4860]: eth0: leased 192.168.1.107 for 86400 seconds
dhcpcd[4860]: forked to background, child pid 4935
The browser says that I am offline, and in the option there isn't any ethernet connection.
Anyone can help me ??
mrcrowley70 said:
Anyone can help me ??
Click to expand...
Click to collapse
Are you able to ping your local network? how about external networks?
ping 192.168.1.1
ping google.com
ping 8.8.8.8
Now it works ! But I don't know how. Something strange.
I did upgrade to 4.4.2. Thank u id10terror for the zip file with fota wipe.
But it still didn't work until I plug ethernet adapter to my Galaxy Nexus, that it goes well with it.
Then I unplug it and plug again to Lg-v500. Soon it recognizes and blu light turn on.
And now it goes well to the net.
I will make a try disconnecting and connecting again from another cable.
It seems to work very well now.
I think because of the upgrade to 4.4.2.
Don't you agree ?
I don't really understand why ethernet connection speed is so slow.
I got 2 Mbps, but with WiFi I can get up to 4.5 Mbps !!!
id10terror said:
Are you able to ping your local network? how about external networks?
ping 192.168.1.1
ping google.com
ping 8.8.8.8
Click to expand...
Click to collapse
Now I am on Cyanogenmod 12.1 and I can't connect with ethernet anymore.
The tablet still correctly created eth0 device (dmesg log).
It does ping 192.168.1.1 (my router) , and 8.8.8.8 as well, even if I don't know what it is.
It doesn't ping google.com or www.google.com, saying host unknown.
What else I can do ???
No more people here ??

Compile current openvpn binary for Lollipop

I have some problems with Android 5.1 and Openvpn on my Nexus. Initially with the binary from the PlayStore, I got the error
error: only position independent executables (PIE) are supported.
I fixed this with the binary from here
http://forum.xda-developers.com/spr...ollipop-s5-t3086672/post64696367#post64696367
It now works with some self-built iproute-wrapper-script but only when I do not redirect the gateway because openvpn does not correctly detect the current gateway ("unable to redirect default gateway -- Cannot read current default gateway from system"). There has been a fix for that in Openvpn:
http://article.gmane.org/gmane.network.openvpn.devel/10111
but I did not find a current version that includes this fix. Can someone please compile this?
Hate to bump this, but I need this too
Me three...
need this so badly too (
Me too. Had anyone idea where to start?

Categories

Resources