How to make an unrooted phone use or detect ad-hoc Wi-Fi? I have an unrooted Android 2.3.6 phone and I want it to connect to the ad-hoc connection made on my Ubuntu.
I referred to some already existing questions here but none seem to be the solutions for unrooted phones.
How do I do this?
This is unfortunately not something you can do without root. I found a fully fleshed out discussion about solutions and alternative options on Stack Overflow.
User Andy notes:

[T]his is currently not natively supported in Android, although Google has been saying it will be coming ever since Android was officially launched.
While not natively supported, the hardware on every android device released to date do support it. It is just disabled in software, and you would need to enable it in order to use these features.
It is however, fairly easy to do this, but you need to be root, and the specifics may be slightly different between different devices. Your best source for more informationa about this, would be XDA developers: https://forum.xda-developers.com/forumdisplay.php?f=564. Most of the existing solutions are based on replacing wpa_supplicant, and is the method I would recommend if possible on your device. For more details, see http://szym.net/2010/12/adhoc-wifi-in-android/.

User Silveri also notes that there are other options:

[I]f you just want to share your laptop's internet connection via Wi-fi using any means necessary, then you have at least two more options:

Use your laptop as a router to create a wifi hotspot using Virtual Router or Connectify. A nice set of instructions can be found here.
Use the Wi-fi Direct protocol which creates a direct connection between any devices that support it, although with Android devices support is limited* and with Windows the feature seems likely to be Windows 8 only.

*Some phones with Android 2.3 have proprietary OS extensions that enable Wi-fi Direct (mostly newer Samsung phones), but Android 4 should fully support this (source).