Question Building Android for Pixel 7 Pro on Arch. - Google Pixel 7 Pro

Has anyone successfully built Android on Arch?
Seemingly no matter what repo I try to build from, it's never successful.
Here's the output trying to build Evo:
Code:
╭─░▒▓    /scratch/Evolution-X ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ✔  at 13:12:16  ▓▒░─╮
╰─ lunch evolution_cheetah-userdebug ─╯
In file included from build/make/core/config.mk:352:
In file included from build/make/core/envsetup.mk:352:
In file included from device/google/pantah/evolution_cheetah.mk:33:
device/google/gs201/evolution_common.mk:44: error: hardware/google/pixel/touch/device.mk: No such file or directory
13:12:19 dumpvars failed with: exit status 1
Device cheetah not found. Attempting to retrieve device repository from Evolution-X-Devices Github (http://github.com/Evolution-X-Devices).
Found repository: device_google_cheetah
Checking branch info
Calculated revision: tiramisu
already exists: device/google/cheetah
Syncing repository to retrieve project.
Fetching: 100% (1/1), done in 0.271s
repo sync has finished successfully.
Repository synced!
Looking for dependencies
Dependency already present in manifest: device_google_pantah => device/google/pantah
Done
In file included from build/make/core/config.mk:352:
In file included from build/make/core/envsetup.mk:352:
In file included from device/google/pantah/evolution_cheetah.mk:33:
device/google/gs201/evolution_common.mk:44: error: hardware/google/pixel/touch/device.mk: No such file or directory
13:12:21 dumpvars failed with: exit status 1
including vendor/evolution/vendorsetup.sh
In file included from build/make/core/config.mk:352:
In file included from build/make/core/envsetup.mk:352:
In file included from device/google/pantah/evolution_cheetah.mk:33:
device/google/gs201/evolution_common.mk:44: error: hardware/google/pixel/touch/device.mk: No such file or directory
13:12:21 dumpvars failed with: exit status 1
Am I supposed to check out the sources from Google or Lineage and merge them into Evo?
Trying to build AOSP from Google results in a bunch of timeouts and the odd 404.
Lineage wants to pull the blobs from a running phone on Lineage or pull them from a build.zip but that doens't work either.
Python 2 is depreciated for years, but somehow Android still "needs" it? Why?!?!?!
There is no target for python2 in the repos anymore, but I have the last build installed anyway - still no love.
Suggestions?

kodabmx said:
Has anyone successfully built Android on Arch?
Seemingly no matter what repo I try to build from, it's never successful.
Here's the output trying to build Evo:
Code:
╭─░▒▓    /scratch/Evolution-X ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── ✔  at 13:12:16  ▓▒░─╮
╰─ lunch evolution_cheetah-userdebug ─╯
In file included from build/make/core/config.mk:352:
In file included from build/make/core/envsetup.mk:352:
In file included from device/google/pantah/evolution_cheetah.mk:33:
device/google/gs201/evolution_common.mk:44: error: hardware/google/pixel/touch/device.mk: No such file or directory
13:12:19 dumpvars failed with: exit status 1
Device cheetah not found. Attempting to retrieve device repository from Evolution-X-Devices Github (http://github.com/Evolution-X-Devices).
Found repository: device_google_cheetah
Checking branch info
Calculated revision: tiramisu
already exists: device/google/cheetah
Syncing repository to retrieve project.
Fetching: 100% (1/1), done in 0.271s
repo sync has finished successfully.
Repository synced!
Looking for dependencies
Dependency already present in manifest: device_google_pantah => device/google/pantah
Done
In file included from build/make/core/config.mk:352:
In file included from build/make/core/envsetup.mk:352:
In file included from device/google/pantah/evolution_cheetah.mk:33:
device/google/gs201/evolution_common.mk:44: error: hardware/google/pixel/touch/device.mk: No such file or directory
13:12:21 dumpvars failed with: exit status 1
including vendor/evolution/vendorsetup.sh
In file included from build/make/core/config.mk:352:
In file included from build/make/core/envsetup.mk:352:
In file included from device/google/pantah/evolution_cheetah.mk:33:
device/google/gs201/evolution_common.mk:44: error: hardware/google/pixel/touch/device.mk: No such file or directory
13:12:21 dumpvars failed with: exit status 1
Am I supposed to check out the sources from Google or Lineage and merge them into Evo?
Trying to build AOSP from Google results in a bunch of timeouts and the odd 404.
Lineage wants to pull the blobs from a running phone on Lineage or pull them from a build.zip but that doens't work either.
Python 2 is depreciated for years, but somehow Android still "needs" it? Why?!?!?!
There is no target for python2 in the repos anymore, but I have the last build installed anyway - still no love.
Suggestions?
Click to expand...
Click to collapse
You are missing at least one repo, if not more, I don't know anything about Evo. I'll provide some input to what's quoted above though, first, this is your current issue:
hardware/google/pixel/touch/device.mk: No such file or directory
Check where that repo is coming from, if it's AOSP, change it
Has anyone successfully built Android on Arch?
The distro used to build isn't relevant, as long as all dependencies are there
Lineage wants to pull the blobs from a running phone on Lineage or pull them from a build.zip but that doens't work either.
My guess is you're doing it wrong, or it's back to making sure you have all the dependencies required, because it does in fact work.
Suggestions?
If you've done this before, like "Back in the day" or whatever, then you'll need to catch up with how things are done "Today".
This was all a lot easier just a few years ago...

Ok so I finally made some progress.
I have a working build environment on Arch for AOSP however trying to build Evolution-X fails because
Code:
. build/envsetup.sh
doesn't work correctly - the path doesn't change for the build aborts because it can't find yaml.h since the build paths don't get set up.
The exact same repo builds on Ubuntu 23.04 though.
Main differences are Ubuntu is using bash, I'm using zsh in Arch (EndeavourOS) but I've tried running it in bash and the same issue is present.
Weird is AOSP's envsetup.sh works properly for AOSP.
Any ideas?
I don't like Ubuntu anywhere near as much as Arch and it's derivatives...
My next idea is to make a new user account with stock config vs my well worked in zsh setup and environment.
EDIT: that didn't work, either.
Another difference is my EndeavousOS install is in French, Ubuntu is installed in English. Would that cause an issue?

Related

[Resolved] Android Source Repo Download Help (Python Issue?)

NOTE: I Am On Linux Mint 9 32 bit
Okay So I Have Lately been trying TO Get The Latest Android Source Code From Google
Now I Follow The Instructions Down To The Wire (The Ones For Ubuntu, But They Should In Theory Work For Mint 9), And Everything Works Up Until I get To This Part:
Initializing a Repo client
Run "repo init" to bring down the latest version of Repo with all its most recent bug fixes. You must specify a URL for the manifest:
$ repo init -u git://android.git.kernel.org/platform/manifest.git
If you would like to check out a branch other than "master", specify it with -b, like:
$ repo init -u git://android.git.kernel.org/platform/manifest.git -b cupcake
When prompted, configure Repo with your real name and email address. If you plan to submit code, use an email address that is associated with a Google account .
A successful initialization will end with a message such as
repo initialized in /mydroid
Your client directory should now contain a.repodirectory where files such as the manifest will be kept.
Click to expand...
Click to collapse
And When I Try To Run That Line Through The Terminal I Get This Error:
Code:
Traceback (most recent call last):
File "/bin/repo", line 91, in ?
import readline
ImportError: No module named readline
Now I Know What The Problem is, It Is Looking For The readline.so in the the lib folder, Yet Even Though It Is There It Still Wont Work.
Now I Have Tried All 2.x.x Versions Of Python (2.4.6, 2.5.5, & 2.6.4) and None Of Them Work.
Also With Each Version I Run:
Code:
$ ./configure --enable-readline
And Still the Same Error.
i Have Been working On this For About 3 Hours Now And Still Now Luck.
I Tried A Google Search But Every Topic Get Close To Helping Someone Get It Then Stops.
Please Help Me Out Here ?
Okay So I Found The Solution.
repo runs STRICTLY off of 2.4.x and for some reason when I installed Python 2.4.6 readline.so was never put into:
Code:
/usr/local/lib/python2.4/lib-dynload/
So I copied the readline.so from my Python 2.6.4 folder (File Download Below)
and put it into:
Code:
/usr/local/lib/python2.4/lib-dynload/
Then I ran repo again and it worked fine.
Although it withh give you an API mismatch warning, but so far it has worked fine
i had that problem so i edited repo itself and deleted line 91

Want dream/sapphire proprietary files

In all tutorials I found this lines:
cd ~/android/system/device/htc/dream_sapphire/
./extract-files.sh
But i haven't ANY files in this directory(including this scipt). Can you upload for me all folder? I think about /android/system/device/htc/dream-sapphire/.
Thanks!
The command "extract_files.sh" will extract those files from your phone, but you need to have the phone connected via USB with your PC.
Before trying, you should check whether your adb connection with your phone is working.
Sent from my Gingerbread on Dream using XDA
ADB working for me, If I navigate to platform-tools:
[email protected]:~/sdk/platform-tools$ ./adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
But if I am In dream_sapphire folder, terminal show only that extract-files.sh not found:
bash: ./extract-files.sh: No such file or directory
From which sources do you want to build? For ezGingerbread for example the "extract-files.sh" is located in "~android/device/htc/sapphire".
Btw. adb devices should give you a list of connected devices. If that is empty (as you posted) something is not working correctly.
CyanogenMod sources. List of devices is not empty, my phone is present here but I found no need to paste this line.
Sorry, but I'm green in this. I want to learn some about building android. I follow this:
http://wiki.cyanogenmod.com/wiki/HTC_Dream_&_Magic:_Compile_CyanogenMod_(Linux)
But i type
repo init -u git://github.com/CyanogenMod/android.git ics
instead of
repo init -u git://github.com/CyanogenMod/android.git -b froyo-stable
dream/sapphire is not supported by CM7/CM9 and that's the reason you do not have the directory/files you are expecting. If you only want to get the proprietary files, you can also switch to an older release (e.g. CM6) for that project, but nevertheless you need to change several other things, too, before you will get a build. If you are not familiar with building from sources, I suggest you to start with something easier, i.e. CM6 or ezGingerbread.
Or you could run repo init from anddisa's or my git repos. I don't know his from memory but for mine you would run
Code:
repo init -u https://github.com/tvall43/android.git -b ics-ds
AndDiSa's might be a little better right now but I hope to eventually get mine running something close to stable if possible.
The latest version of cm with the dream/sapphire stuff is cm7 (even though they dropped support). Anything past that you'll have to port yourself (like AndDiSa and I) or wait for someone to.
Also, I'm half asleep. I could have (and likely did) post errors that I didn't notice. Google is your friend.
tvall said:
Or you could run repo init from anddisa's or my git repos. I don't know his from memory but for mine you would run
Code:
repo init -u https://github.com/tvall43/android.git -b ics-ds
AndDiSa's might be a little better right now but I hope to eventually get mine running something close to stable if possible.
The latest version of cm with the dream/sapphire stuff is cm7 (even though they dropped support). Anything past that you'll have to port yourself (like AndDiSa and I) or wait for someone to.
Also, I'm half asleep. I could have (and likely did) post errors that I didn't notice. Google is your friend.
Click to expand...
Click to collapse
OK, I just downloaded your repo. But...
Command:
lunch cyanogen_dream_sapphire-eng
Returns:
[email protected]:~/android/system$ . build/envsetup.sh
including device/htc/dream_sapphire/vendorsetup.sh
including vendor/cm/vendorsetup.sh
[email protected]:~/android/system$ lunch cyanogen_dream_sapphire
Invalid lunch combo: cyanogen_dream_sapphire
[email protected]:~/android/system$ lunch cyanogen_dream_sapphire-eng
vendor/htc/dream_sapphire/dream_sapphire-vendor-blobs.mk:46: *** missing separator. Stop.
Device dream_sapphire not found. Attempting to retrieve device repository from CyanogenMod Github (http://github.com/CyanogenMod).
Found repository: android_device_htc_dream_sapphire
Adding dependency: CyanogenMod/android_device_htc_dream_sapphire -> device/htc/dream_sapphire
Traceback (most recent call last):
File "build/tools/roomservice.py", line 170, in <module>
add_to_manifest([{'repository':repo_name,'target_path':repo_path}])
File "build/tools/roomservice.py", line 121, in add_to_manifest
f = open('.repo/local_manifest.xml', 'w')
IOError: [Errno 2] No such file or directory: '.repo/local_manifest.xml'
vendor/htc/dream_sapphire/dream_sapphire-vendor-blobs.mk:46: *** missing separator. Stop.
** Don't have a product spec for: 'cyanogen_dream_sapphire'
** Do you have the right repo manifest?
And next, command:
[email protected]:~/android/system$ mka bacon
Returns:
make: *** No rule to make target `bacon'. Stop.
How to fix this?
Anybody can't help me?
blaster44 said:
Anybody can't help me?
Click to expand...
Click to collapse
Only CM uses the "make bacon" command. Unless they use the CM repo tool in their repo, it will be unavailable. Same goes for AOSP.
Sent from my HTC PH39100 using Tapatalk 2

[Scripting][ARM][Installer][Port] Python (static) 2.7.9 and 3.4.2

(Check out https://www.python.org for information on what python is.)
Yes you read that correctly, static python for Android! It took a while to figure out how to get this compiled, but I finally did it. I present you with an installer and a little bit of testing. The second post contains information on compilation and the sources. Btw, any cool python scripts are welcomed!
INSTALLATION
Recovery flash installers are attached that will install python 2.7.9 and/or 3.4.2 to /system/pythonX.X.X. You can install both if you want. Installation size is about 41MB, 43MB, and 49MB respectively for python 2.7.8, python 2.7.9, and python 3.4.2.
After installation, the python director(ies) in /system will contain the static python binary, some scripts, and a bunch of modules and documents. Separate scripted executables will be installed to /system/bin/python or /system/bin/python3 depending on which one is installed. These basically just set the PYTHONHOME environment variable and execute the python binary.
TESTING
When you boot up to Android after installation, you should be able to just open up a terminal and fire off some python commands.
Test using python 2.7.9:
Code:
python -c 'print "Hello World!"'
Test using python 3.4.2:
Code:
python3 -c 'print("Hello World!")'
You can also write scripts shelled with python:
Code:
#!/system/bin/python
print "Hello World!"
Make sure to set them as executable with "chmod +x".
Adjust your screen brightness via /sys (root required, tested on Galaxy Nexus):
Code:
python -c 'f=open("/sys/devices/omapdss/display0/backlight/s6e8aa0/brightness","w"); f.write("40"); f.close()'
A cool script I made to tweak file system I/O like rq_affinity, rotational, etc for I/O blocks:
Code:
#!/system/bin/python
import os,re,sys
list=[]
# find all directories containing rq_affinity
for roots, dirs, files in os.walk('/sys'):
for file in files:
match=re.search(r'\S+/rq_affinity',os.path.join(roots,file))
if match:
list.append(match.group().replace('rq_affinity',''))
# write specific values to files in each directory found before
for dir in list:
for name in 'rq_affinity', 'rotational', 'read_ahead_kb', 'nr_requests', 'iostats', 'nomerges', 'add_random':
try:
f=open(dir+name,'w')
if name is 'rq_affinity': f.write('1')
elif name is 'read_ahead_kb': f.write('512')
elif name is 'nr_requests': f.write('512')
else: f.write('0')
f.close()
except IOError:
sys.stderr.write('Problem writing to ' + dir+name + '\n')
Or execute "python" or "python3" without any parameters to open up the interpreter and go from there. When you start for example "python" (python 2.7.8), you should see something like:
Code:
Python 2.7.8 (default, Dec 2 2014, 05:15:18)
[GCC 4.9.1] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
***I haven't fully tested this yet, so let me know how it goes. I know basic commands work, but there are still some complexities in the compilation that may need to be figured out.***
(update) -- Install Extra Packages/Modules via "easy_install" -- (root required)
1) In a shell, remount /system read-writable with:
Code:
mount -o remount,rw /system
2) Change directory to /system/pythonX.X.X, i.e.,
Code:
cd /system/pythonX.X.X
3) Execute easy_install followed by a package name, i.e.,
Code:
./easy_install [i]package_name[/i]
4) Let it download and install! Then test it out.
5) Remount /system read-only with:
Code:
mount -o remount,ro /system
Also, to remove a package, execute:
Code:
./easy_install -m [i]package_name[/i]
rm -r ../lib/pythonX.X/site-packages/[i]package_name[/i]*.egg
*** Flashing the resolv.conf patch may be required to make an internet connection to download modules.
Also, a few things need to be done to get easy_install working:
1) For python 2.7.8 or 2.7.9 you need to link python2.7 to python like this:
Code:
ln -s /system/python2.7.9/bin/python2.7 /system/python2.7.9/bin/python
I'll make sure this is automatically done in future installs.
2) SSL certificates need to be added to "/etc/pki/tls/certs/" to use SSL with easy_install.
Code:
mkdir -p /etc/pki/tls/certs
curl http://curl.haxx.se/ca/cacert.pem -o /etc/pki/tls/certs/ca-bundle.crt
ISSUES
The python installations have the following modules compiled in with external dependencies such as libraries not included at this point:
Code:
--------------PYTHON 2.7.8-2.7.9----------------------
_hashlib _multiprocessing _ssl
_testcapi bz2 crypt
dbm
Code:
--------------PYTHON 3.4.2-----------------------------
_crypt _dbm _decimal
_hashlib _multiprocessing _ssl
_testcapi
I will look into this more.
As @bubbleguuum points out, name resolution with python 3.4.2's urllib wasn't working. I found a workaround by adding the line
Code:
options single-request-reopen
to /system/etc/resolv.conf. This still needs some testing but seemed to work for me. I've included a recovery flash zip to patch /system/etc/resolv.conf if the line is not there since this is a root operation.
UPDATES
* 2014-12-02 * Compiled in more modules for each installation. This makes the installation a bit bigger, but it's worth it. You get a more complete python! To get stuff like help functions and math and readline modules, you need the larger installations linked below under "DOWNLOADS".
* 2014-12-03 * Thanks @cybojenix for pointing out some incapatibility issues with the original edify installer I was using. I have now updated the installers to use SuperSU's great non-edify sh-script installer.
* 2014-12-05 * Some updates to the installers to include more modules, plus size reduction for python 3.4.2. Modules added to python 2.7.8 : _bsddb _ctypes, _ctypes_test, _hotshot, _json, _lsprof, _sqlite3, future_builtins, and ossaudiodev, easy_install, pip(broken for now). Modules added to python 3.4.2: _bz2, _ctypes, _ctypes_test, _gdbm, _json, _lsprof, _opcode, _sqlite3, _testbuffer, _testimportmultiple, ossaudiodev, xxlimited
* 2014-12-05 * Some big updates to the installer to include almost the rest of the modules that wouldn't compile. Also easy_install is working on my end with these new experimental builds. With a little effort, should be able to get pip working as well. I had to use some hacky flags to get it to compile, ignore unresolved-symbols and such, so it definitely needs some testing. Another thing I did was tweak the install script to write over previous installations from these installations. I recommend downloading the experimental builds if you read this. The worst thing that might happen is one of the new modules I've included won't work completely.
* 2014-12-14 * Added python 2.7.9. Trimmed the installation sizes down to the much more reasonable 41MB, 43MB, and 49MB respectively for python 2.7.8, python 2.7.9, and python 3.4.2.
* 2014-12-24 * Attached a recovery flash.zip to patch resolv.conf to try and fix a urllib name resolution error.
* 2014-12-26 * A couple updates: Tweaked python installations so that modules looks for "/system/bin/sh" instead of "/bin/sh" when needed. Also a few "#!" corrections for scripts in the python bin directory. This shouldn't break anything from what I've tested, only make Android python more capable, but I'll keep the old installations attached for now just in case since the modifications involved using "sed". The second update is nice. I've added a little section on installing extra modules with easy_install(included and working with all installations).
Compiling
The environment I compiled in was a debian "wheezy" image mounted as a loop device on Android. The reason I compile this way is so I have full access to the arm environment tools, gcc compiler, etc. without having to go through the trouble of using a cross-compiler (which doesn't work in this case from my testing with uClibc, or eglibc. Code sourcery's might work but I didn't feel like booting an x86 linux installation to try). You can recreate the same environment pretty easily by using either Complete Linux Installer or Linux Deploy apps. I use both.
To get a static python compiled, I first downloaded the following packages with APT:
Code:
[i]apt-get build-dep python python3[/i]
build-essential gcc make # building tools
binutils-gold # awesome gold linker
zlib1g-dev # zlib
libreadline-dev, libncurses5-dev # readline, curses
libbz2-dev # bz2
libsqlite3-dev # sqlite3
python-bsddb3, python3-bsddb3
libgdbm-dev # gdb
libssl-dev # ssl
python-tk, python3-tk # tkinter
libdb-dev # db
python-gdbm python-bsddb3
libffi-dev # _ctypes
tcl8.6-dev # tkinter
libx11-dev # tkinter
libmpdec-dev # decimal
Then I manually installed binutils-gold by unpacking the rpm for armv7h (this isn't available with APT yet). You can get it here though. (Update: this should be available in the debian repositories now.)
For static compilation, you need to make some changes to Modules/Setup from the python source directory. Specifically, you need to add
Code:
*static*
to the top of the file. Then you need to uncomment any commented modules you would like compiled in. When you compile and see a list of failed modules, search for each of these in Modules/Setup and uncomment them. For example, change
Code:
#math mathmodule.c _math.c
to
Code:
math mathmodule.c _math.c
. Then recompile. There may be some shared dependencies and packages as well you need to figure out to get them to compile. Take a look at the attached "Setup" files for more detail.
The actually compile steps look like this:
(1)
Code:
./configure --build=arm --prefix="$PWD"/out LDFLAGS="-static -static-libgcc -Wl,--unresolved-symbols=ignore-all -Wl,--export-dynamic" CPPFLAGS=-static CXXFLAGS=-static CFLAGS="-Os -static" LDFLAGS=-static LD=ld.gold
(2) Modify the Modules/Setup file.
(3)
Code:
make clean; make install
After compiling, there are some things you can do to make your installation in "./out" smaller. Strip the large binaries in "out/bin", i.e.
Code:
strip -s ./out/bin/python2.7
Also remove the python archive library, *.o's, etc. with:
Code:
make clean
This might seem kind of weird, but it works and cleans out unnecessary files from your installation.
**Make sure to backup your Modules/Setup file if you run "make distclean". I lost my 3.4.2 Modules/Setup file after doing this. :silly: Now I gotta recreate it, dammit.
**I should also mention that compile time is very fast given the amount of data generated. It takes about 10 minutes to get python and all it's modules compiled on my Galaxy Nexus.**
:EDITS:
: Updated some configure parameters. Removed unnecessary, extra "./configure". Also added some updates to the included "Setup" files.
: Hacky update to "./conifgure" to ignore unresolved symbols, export dynamic. This allows certain modules to be compiled which have shared dependencies.
: Update to trimming down the installation size after "make". Use another "make clean".
Downloads - Extract in the source directory
Setup (python 2.7.8)
Setup (python 3.4.2)
Setup (Experimental) (python 2.7.8)
Setup (Experimental) (python 3.4.2)
Something that would be interesting to look in to would be to have pip/easy_install running, so you can install extra non c packages onto the sdcard/data/wherever.
Would you also consider opening up the sources please? There is a project I'm interested in doing involving python on Android, however a lack of time meant I couldn't finish building it.
Give me a shout if you need anything. I hope to see even more come out of this thread
Edit:
I've just looked at the updater-script. The mount command won't work on the majority of devices. Can you turn the update-binary in to a shell script please? See the SuperSU updater for reference
cybojenix said:
Something that would be interesting to look in to would be to have pip/easy_install running, so you can install extra non c packages onto the sdcard/data/wherever.
Would you also consider opening up the sources please? There is a project I'm interested in doing involving python on Android, however a lack of time meant I couldn't finish building it.
Give me a shout if you need anything. I hope to see even more come out of this thread
Edit:
I've just looked at the updater-script. The mount command won't work on the majority of devices. Can you turn the update-binary in to a shell script please? See the SuperSU updater for reference
Click to expand...
Click to collapse
Thanks for your reply! I've changed the installer to use SuperSU's no-edify sh-scripted updater. I tested on my device, but let me know if there are any issues though. I kept it pretty basic.
I added some stuff on the source modifications and compilation to the 2nd post. The only file I've actually modified so far in the source is the generated Modules/Setup file, and I've included the one I used for python 2.7.8. Unfortunately, I over-cleaned the python 3.4.2 directory, which deleted my modified Modules/Setup there, so I'll have to add it later when I re-edit it.
That's a great idea on pip/easy_install. I did download the pip_installer and tried out installing on the static python I made. Got some errors though pointing to a few modules I haven't gotten compiled into the static python installation (listed in the OP near the bottom, specifically _ctypes). I'll see what I can do about that. The line for compiling the module might just need to be added to Modules/Setup. Hopefully that's the case.
@7175
Thank you very much for these binaries.
There is however a problem: name resolution (DNS) doesn't seem to work at all (with both python 2 and 3 downloads).
All attempts to use urllib.request.urlopen('http://somehost.com') fail with "<urlopen error [Errno -2] Name or service not known>" (running python as root but it doesn't matter, and a rooted Nexus 4 running 4.4.4 stock ROM):
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/system/python3.4.2/lib/python3.4/urllib/request.py", line 153, in urlopen
return opener.open(url, data, timeout)
File "/system/python3.4.2/lib/python3.4/urllib/request.py", line 455, in open
response = self._open(req, data)
File "/system/python3.4.2/lib/python3.4/urllib/request.py", line 473, in _open
'_open', req)
File "/system/python3.4.2/lib/python3.4/urllib/request.py", line 433, in _call_chain
result = func(*args)
File "/system/python3.4.2/lib/python3.4/urllib/request.py", line 1202, in http_open
return self.do_open(http.client.HTTPConnection, req)
File "/system/python3.4.2/lib/python3.4/urllib/request.py", line 1176, in do_open
raise URLError(err)
urllib.error.URLError: <urlopen error [Errno -2] Name or service not known>
Click to expand...
Click to collapse
it works if replacing somehost.com by its ip address.
To reproduce above stack trace with python 3:
import urllib.request
urllib.request.urlopen('http://www.google.com')
while this work:
urllib.request.urlopen('http://173.194.45.229')
nslookup and general name resolution work anywhere else:
[email protected]:/ # nslookup www.google.com
nslookup wwwgoogle.com
Server: 8.8.4.4
Address 1: 8.8.4.4 google-public-dns-b.google.com
Name: wwwgoogle.com
Address 1: 2a00:1450:4007:80c::1014 par03s15-in-x14.1e100.net
Address 2: 173.194.45.242 par03s15-in-f18.1e100.net
Address 3: 173.194.45.240 par03s15-in-f16.1e100.net
Address 4: 173.194.45.244 par03s15-in-f20.1e100.net
Address 5: 173.194.45.241 par03s15-in-f17.1e100.net
Address 6: 173.194.45.243 par03s15-in-f19.1e100.net
Click to expand...
Click to collapse
This issue has probably something to do with how python was compiled to do name resolution. I remember vaguely a similar issue
on Ubuntu 12.04, with a ffmpeg compile that would always fail to resolve hostnames in URLs. No sure what the exact fix was but it had something to do with the libc and its name resolution mechanism. Or maybe something ipv6 related ?
@bubbleguuum : Thanks for checking out that important issue.
I did a little research and it seems there is some issue with DNS name resolution related to ipv6. I recompiled with "--disable-ipv6" and that seemed to fix the issue. I also found that adding the line
Code:
options single-request-reopen
to /etc/resolv.conf did the trick as well. Apparently this tells the resolver to use a new socket for ipv6 resolution instead of same one as ipv4. It thereby reduces wait-time as well. Maybe check on your end and see if that works. Otherwise I'll upload ipv4-only installations since this issue at least needs to be side-stepped.
EDIT: Hmm, looks like re-compiling with "--disable-ipv6" didn't fix the problem. Will have to look more into this issue and hold off on uploading ipv4-only python3 since it didn't fix it. In the meantime, I've attached a recovery flash.zip to the OP to add the above mentioned line to /system/etc/resolv.conf if needed, which seems to fix the issue for me.
7175 said:
@bubbleguuum : Thanks for checking out that important issue.
I did a little research and it seems there is some issue with DNS name resolution related to ipv6. I recompiled with "--disable-ipv6" and that seemed to fix the issue. I also found that adding the line
Code:
options single-request-reopen
to /etc/resolv.conf did the trick as well. Apparently this tells the resolver to use a new socket for ipv6 resolution instead of same one as ipv4. It thereby reduces wait-time as well. Maybe check on your end and see if that works. Otherwise I'll upload ipv4-only installations since this issue at least needs to be side-stepped.
Click to expand...
Click to collapse
Thank you for looking into this so fast.
My intended usage is for running the python binary from a regular non-root app (which works great!), so editing resolv.conf is not an option.
I've been researching that DNS resolving issue and could not find a clear explanation on why it fails on Android and not on other systems, and why exactly the added line in resolv.conf fixes (or rather workaround) it.
All seems to point to socket.getaddrinfo() failing for an unknown reason.
Is Python compiled with HAVE_GETADDRINFO defined ? If that's the case it uses the libc definition of getaddrinfo, otherwise
it uses an emulation function found in getaddrinfo.c.
My guess is that it is the latter, and what is causing this issue on Android.
It's probable this issue has already been solved on Android since other Python binaries exists, but Googling around do not give
much answer.
I get this error when trying to install anything with easy_install (using /system/python3.4.2/bin/easy_install-3.4 because /system/python3.4.2/easy_install doesn't seem to exist like in the OP):
Code:
# ./easy_install-3.4 feedparser
Searching for feedparser
Reading https://pypi.python.org/simple/feedparser/
Download error on https://pypi.python.org/simple/feedparser/: [Errno -2] Name or service not known -- Some packages may not be found!
Couldn't find index page for 'feedparser' (maybe misspelled?)
Scanning index of all packages (this may take a while)
Reading https://pypi.python.org/simple/
Download error on https://pypi.python.org/simple/: [Errno -2] Name or service not known -- Some packages may not be found!
No local packages or download links found for feedparser
error: Could not find suitable distribution for Requirement.parse('feedparser')
i got curl and the certs installed in /etc/pki/tls/certs/ as per instrucions in the OP, any help?
Thoughts on PIL?
Hmm... new problems here. Android Lollipop have no /system/etc/resolv.conf by-default and urllib patch is no more works.
How it can be fixed?
http://qpython.net/index.php
Where I can find source code and related documents for project
Pratik Raj said:
Where I can find source code and related documents for project
Click to expand...
Click to collapse
I would like to know the same, as well as what license it is under... Also, I don't care about the network, but does it work on Oreo? Also, do you think I could customise the installer to install to a non-system location (/tmp) so that my flashable zip can use python?
hackintosh5 said:
I would like to know the same, as well as what license it is under... Also, I don't care about the network, but does it work on Oreo? Also, do you think I could customise the installer to install to a non-system location (/tmp) so that my flashable zip can use python?
Click to expand...
Click to collapse
Idk about OP, but I can surely post my source for python 2.7 on arm/arm64. I compiled it like a year ago, but it wasn't too bad, just required a bunch of patches and code for dlopen
I just want to say thank you so much.

[Q] Help needed in syncing source

Im trying to sync cm12's source code fro git hub
im using virtualbox on host windows 8.1
the virtual machine is ubuntu 14.xx
this porbably the 20th time i did a
Code:
repo sync
it always used to get stuck (it got interupted one way or another :c )
anyways ...later I finally made it till here
HTML:
Fetching projects: 100% (546/546), done.
Traceback (most recent call last):
File "/home/bass_face/.repo/repo/main.py", line 506, in <module>
_Main(sys.argv[1:])
File "/home/bass_face/.repo/repo/main.py", line 482, in _Main
result = repo._Run(argv) or 0
File "/home/bass_face/.repo/repo/main.py", line 161, in _Run
result = cmd.Execute(copts, cargs)
File "/home/bass_face/.repo/repo/subcmds/sync.py", line 681, in Execute
project.Sync_LocalHalf(syncbuf)
File "/home/bass_face/.repo/repo/project.py", line 1230, in Sync_LocalHalf
lost = self._revlist(not_rev(revid), HEAD)
File "/home/bass_face/.repo/repo/project.py", line 2309, in _revlist
return self.work_git.rev_list(*a, **kw)
File "/home/bass_face/.repo/repo/project.py", line 2503, in rev_list
p.stderr))
error.GitError: CyanogenMod/android rev-list ('^ddc4820db2658b6779caf9946e787098d6007967', 'HEAD', '--'): fatal: bad object HEAD
and i got this error can someone please guide me...and i did search for many possible solutions...nothing seems to be related to this porblem or is left unanswered, please help or atleast direct me to a proper solution
many thanks ^_^
Bass_Face said:
Im trying to sync cm12's source code fro git hub
im using virtualbox on host windows 8.1
the virtual machine is ubuntu 14.xx
this porbably the 20th time i did a
Code:
repo sync
it always used to get stuck (it got interupted one way or another :c )
anyways ...later I finally made it till here
HTML:
Fetching projects: 100% (546/546), done.
Traceback (most recent call last):
File "/home/bass_face/.repo/repo/main.py", line 506, in <module>
_Main(sys.argv[1:])
File "/home/bass_face/.repo/repo/main.py", line 482, in _Main
result = repo._Run(argv) or 0
File "/home/bass_face/.repo/repo/main.py", line 161, in _Run
result = cmd.Execute(copts, cargs)
File "/home/bass_face/.repo/repo/subcmds/sync.py", line 681, in Execute
project.Sync_LocalHalf(syncbuf)
File "/home/bass_face/.repo/repo/project.py", line 1230, in Sync_LocalHalf
lost = self._revlist(not_rev(revid), HEAD)
File "/home/bass_face/.repo/repo/project.py", line 2309, in _revlist
return self.work_git.rev_list(*a, **kw)
File "/home/bass_face/.repo/repo/project.py", line 2503, in rev_list
p.stderr))
error.GitError: CyanogenMod/android rev-list ('^ddc4820db2658b6779caf9946e787098d6007967', 'HEAD', '--'): fatal: bad object HEAD
and i got this error can someone please guide me...and i did search for many possible solutions...nothing seems to be related to this porblem or is left unanswered, please help or atleast direct me to a proper solution
many thanks ^_^
Click to expand...
Click to collapse
Did You try This Command
repo sync -f
Then find out whats the issue will causing
repo sync -l
mohamed786 said:
Did You try This Command
repo sync -f
Then find out whats the issue will causing
repo sync -l
Click to expand...
Click to collapse
yes i did try repo synnc -f and i even tried repo sync -f -j with various different values like 1,2,4,16,32
all with the same results...i even tried doing a smart sync i face this error
Code:
error: cannot smart sync: no manifest server defined in manifest
Bass_Face said:
yes i did try repo synnc -f and i even tried repo sync -f -j with various different values like 1,2,4,16,32
all with the same results...i even tried doing a smart sync i face this error
Code:
error: cannot smart sync: no manifest server defined in manifest
Click to expand...
Click to collapse
Just use this command repo sync -l to findout the issue
mohamed786 said:
Just use this command repo sync -l to findout the issue
Click to expand...
Click to collapse
I formatted my virtual HDD and set up everything from scratch following this guide -
https://github.com/PAC-man/android_vendor_pac/blob/pac-5.1/docs/PrepareForBuildLinux.md
As this was the official one run into some problem but I guess I solved it is running fine now.. But please keep an eye on this thread just in case if u could help me get through a problem.
Thanks a ton for replying
Will report the outcomes.
Bass_Face said:
I formatted my virtual HDD and set up everything from scratch following this guide -
https://github.com/PAC-man/android_vendor_pac/blob/pac-5.1/docs/PrepareForBuildLinux.md
As this was the official one run into some problem but I guess I solved it is running fine now.. But please keep an eye on this thread just in case if u could help me get through a problem.
Thanks a ton for replying
Will report the outcomes.
Click to expand...
Click to collapse
Most helpful commands during repo syncing
repo sync -j1 (-j# no of jobs )
repo sync -l (to find issues)
repo sync -c -d -j8
Dont let me post thanks on thread let hit thanks button for all in xda
mohamed786 said:
Most helpful commands during repo syncing
repo sync -j1 (-j# no of jobs )
repo sync -l (to find issues)
repo sync -c -d -j8
Dont let me post thanks on thread let hit thanks button for all in xda
Click to expand...
Click to collapse
this time many things synced properly but
HTML:
Syncing work tree: 61% (310/507) error: in `sync -f`: revision refs/heads/pac-5.1 in android_frameworks_base not found
Bass_Face said:
this time many things synced properly but
HTML:
Syncing work tree: 61% (310/507) error: in `sync -f`: revision refs/heads/pac-5.1 in android_frameworks_base not found
Click to expand...
Click to collapse
Ok.. use this command repo sync -j1 and leave for 6 to 8 hours base frame work base having lots of Gb to download
so be patient.....
Download time will depends on your internet connection.
Oki...and
1. Is there any ways to know when the downloads complete.. I mean a command that will check if everything is in place
2. Will files already downloaded delete itself and redownload.?
mohamed786 said:
Ok.. use this command repo sync -j1 and leave for 6 to 8 hours base frame work base having lots of Gb to download
so be patient.....
Download time will depends on your internet connection.
Click to expand...
Click to collapse
now this happened
Code:
Fetching project android_frameworks_base
error: RPC failed; result=56, HTTP code = 200
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
edit : notice that its just stuck there.? i mean the username doesnt show up (the $ doesnt show up)
edit 2 : i get this at the end then
Checking out files: 100% (3190/3190), done.
Checking out files: 100% (4197/4197), done.
Checking out files: 100% (244/244), done.
Checking out files: 100% (924/924), done.ng out files: 8% (81/924)
Checking out files: 100% (72151/72151), done.
Checking out files: 100% (35/35), done.king out files: 42% (15/35)
Checking out files: 100% (1021/1021), done.
Checking out files: 100% (2459/2459), done.
Syncing work tree: 100% (507/507), done.
[email protected]:~/pac-rom$
am i done.? *_* is this the end.?
Bass_Face said:
now this happened
Code:
Fetching project android_frameworks_base
error: RPC failed; result=56, HTTP code = 200
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed
edit : notice that its just stuck there.? i mean the username doesnt show up (the $ doesnt show up)
edit 2 : i get this at the end then
Checking out files: 100% (3190/3190), done.
Checking out files: 100% (4197/4197), done.
Checking out files: 100% (244/244), done.
Checking out files: 100% (924/924), done.ng out files: 8% (81/924)
Checking out files: 100% (72151/72151), done.
Checking out files: 100% (35/35), done.king out files: 42% (15/35)
Checking out files: 100% (1021/1021), done.
Checking out files: 100% (2459/2459), done.
Syncing work tree: 100% (507/507), done.
[email protected]:~/pac-rom$
am i done.? *_* is this the end.?
Click to expand...
Click to collapse
cool
You have complete the source code download
wohoooo
mohamed786 said:
cool
You have complete the source code download
Click to expand...
Click to collapse
Thanks a ton for helping me out will never forget and...
for future reference (cause im not a irresponsible person who leaves a thread after finding the soltuion)
heres what i did:
for anyone whos setting up ubuntu and building lollipop just follow this guide, this is the most basic and mos efficient, you dont have to download a **** load of software if youre running the lates ubuntu version (except for the ones mentioned in the guide) -
HTML:
https://github.com/PAC-man/android_vendor_pac/blob/pac-5.1/docs/PrepareForBuildLinux.md
and most importantely and essential thing to do if youre running ubuntu/mac os x on a virtual box DISABLE ALL THE ANTIVIRUSES,FIREWALLS,ANTIMALWARE SOFTWARES (esspecially the ones dealing with netowrking
and if youve already set up everything and still having errors i suggest updating all and every packages essential [java,python,android sdk,android tools (download all the tools,extras,and the files for the rom your building (version) ]
if youre still having porplems go to the directory where the sources are being downloaded, hit ctrl+h (ubuntu-shows hidden files)
delete everything except .repo except .repo (orelse you will have to redownload all the sources) and initiate repo sync again
if it still doesnt work i suggest formatting everything and starting from scratch or atleast the sources or research till your tired of doing it
and never forget disable firewall or such things they were the culprits in my experience
i almost downloaded 70gb+ data in this process but learnt alot
the thread will most likely be closed now
Bass_Face said:
Thanks a ton for helping me out will never forget and...
for future reference (cause im not a irresponsible person who leaves a thread after finding the soltuion)
heres what i did:
for anyone whos setting up ubuntu and building lollipop just follow this guide, this is the most basic and mos efficient, you dont have to download a **** load of software if youre running the lates ubuntu version (except for the ones mentioned in the guide) -
HTML:
https://github.com/PAC-man/android_vendor_pac/blob/pac-5.1/docs/PrepareForBuildLinux.md
and most importantely and essential thing to do if youre running ubuntu/mac os x on a virtual box DISABLE ALL THE ANTIVIRUSES,FIREWALLS,ANTIMALWARE SOFTWARES (esspecially the ones dealing with netowrking
and if youve already set up everything and still having errors i suggest updating all and every packages essential [java,python,android sdk,android tools (download all the tools,extras,and the files for the rom your building (version) ]
if youre still having porplems go to the directory where the sources are being downloaded, hit ctrl+h (ubuntu-shows hidden files)
delete everything except .repo except .repo (orelse you will have to redownload all the sources) and initiate repo sync again
if it still doesnt work i suggest formatting everything and starting from scratch or atleast the sources or research till your tired of doing it
and never forget disable firewall or such things they were the culprits in my experience
i almost downloaded 70gb+ data in this process but learnt alot
the thread will most likely be closed now
Click to expand...
Click to collapse
MY pleasure
Happy Building In Advance
Thread closed at OP's request.

[SOLVED] dts not found

Hello.
Been working on how to get a device kernel from source for the Mi note 10 pro (Mi CC9 Pro). I have gotten up to the point where it builds but fails due to dts folder is not found.
I need an example of what goes in DTC_EXT=
All I see on the net is DTC_EXT=dtc
Please help.
I use the kbuild/clang system that has a config that I can run.
I have CC, aosp toolchain, build-tools, qcom 8.0 llvm as real_cc. All linked, the only thing that fails is the dts files not being found
this is the issue i have
find: ‘arch/arm64/boot/dts/’: No such file or directory
terminal below
Spoiler: Terminal
Setting up for build
+ cd xsource
+ make CC=/home/avm/android/xkernel/prebuilts-master/clang/host/linux-x86/clang-r353983c/bin/clang HOSTCC=/home/avm/android/xkernel/prebuilts-master/clang/host/linux-x86/clang-r353983c/bin/clang O=/home/avm/android/xkernel/out/android-4.14/xsource mrproper
make[1]: Entering directory '/home/avm/android/xkernel/out/android-4.14/xsource'
find: ‘arch/arm64/boot/dts/’: No such file or directory
CLEAN scripts/basic
CLEAN scripts/kconfig
CLEAN .config
Used config
Spoiler: Build config
ARCH=arm64
SUBARCH=arm64
BRANCH=K4.14Q
CLANG_TRIPLE=aarch64-linux-gnu-
CROSS_COMPILE=~/android/xkernel/tsource/toolchains/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-
CROSS_COMPILE_ARM32=~/android/xkernel/tsource/toolchains/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin/arm-linux-androideabi-
KBUILD_DEFCONFIG=~/android/xkernel/tsource/arch/arm64/configs/tucana_user_defconfig
DEFCONFIG=tucana_user_defconfig
POST_DEFCONFIG_CMDS=""
DTC_EXT=dtc
DTC_PREBUILTS_BIN=/scripts/dtc
KBUILD_OUTPUT=out
HOSTCC=gcc
CC=clang
AS=clang
AR=ar
CLANG_PREBUILT_BIN=/toolchains/clang/host/linux-x86/clang-r353983c/bin
BUILDTOOLS_PREBUILT_BIN=/toolchains/build-tools/linux-x86/bin
FILES="
arch/arm64/boot/Image.gz
vmlinux
System.map
"
Found out it has something to do with the arch folder itself.
I replace it with the arch folder in the AOSP-kernel folder and it does not show up saying its not found.
Still crashing due to a new error about the include folder and a file or 2 that is in it. still trying my best to get it working.
SOLUTION to DTS MISSING:
Replace the makefile in the boot directory of your ARCH= type for the device. with the make files in aosp kernel same location.
Just want to point out that you may not need to do any of this and it is normal for the build not to find anything due to it, needing to be created during the kernel build process. the Make file that is located in boot under the ARCH type has some settings in it if you are using a device source other then google devices which contains information that i think the build needs, in order to be made.
After everything I said above, further investigation has proven that the Make file in {ROOT}/arch/arm64/boot is incorrect based off the one in aosp-coral-4.14 correct config is below. copy and replace the whole thing in the file.
Spoiler: Correct Make file config
#
# arch/arm64/boot/Makefile
#
# This file is included by the global makefile so that you can add your own
# architecture-specific flags and dependencies.
#
# This file is subject to the terms and conditions of the GNU General Public
# License. See the file "COPYING" in the main directory of this archive
# for more details.
#
# Copyright (C) 2012, ARM Ltd.
# Author: Will Deacon <[email protected]>
#
# Based on the ia64 boot/Makefile.
#
include $(srctree)/arch/arm64/boot/dts/Makefile
OBJCOPYFLAGS_Image :=-O binary -R .note -R .note.gnu.build-id -R .comment -S
targets := Image Image.bz2 Image.gz Image.lz4 Image.lzma Image.lzo dtbo.img
DTB_NAMES := $(subst $\",,$(CONFIG_BUILD_ARM64_APPENDED_DTB_IMAGE_NAMES))
ifneq ($(DTB_NAMES),)
DTB_LIST := $(addsuffix .dtb,$(DTB_NAMES))
else
DTB_LIST := $(dtb-y)
endif
DTB_OBJS := $(shell find $(obj)/dts/ -name \*.dtb)
DTBO_OBJS := $(shell find $(obj)/dts/ -name \*.dtbo)
# Add RTIC DTB to the DTB list if RTIC MPGen is enabled
ifdef RTIC_MPGEN
DTB_OBJS += rtic_mp.dtb
endif
rtic_mp.dtb: vmlinux FORCE
$(RTIC_MPGEN) --objcopy="${OBJCOPY}" --objdump="${OBJDUMP}" \
--binpath="" --vmlinux="vmlinux" --config=${KCONFIG_CONFIG} \
--cc="${CC} ${KBUILD_AFLAGS}" --dts=rtic_mp.dts && \
$(DTC) -O dtb -o rtic_mp.dtb -b 0 $(DTC_FLAGS) rtic_mp.dts
$(obj)/Image: vmlinux FORCE
$(call if_changed,objcopy)
$(obj)/Image.bz2: $(obj)/Image FORCE
$(call if_changed,bzip2)
$(obj)/Image-dtb-hdr: $(obj)/Image FORCE
echo -n 'UNCOMPRESSED_IMG' > [email protected] && \
$(call size_append, $(filter-out FORCE,$^)) >> [email protected]
$(obj)/Image-dtb: $(obj)/Image-dtb-hdr $(obj)/Image $(DTB_OBJS) FORCE
$(call if_changed,cat)
$(obj)/Image.gz: $(obj)/Image FORCE
$(call if_changed,gzip)
$(obj)/Image.lz4: $(obj)/Image FORCE
$(call if_changed,lz4)
$(obj)/Image.lzma: $(obj)/Image FORCE
$(call if_changed,lzma)
$(obj)/Image.lzo: $(obj)/Image FORCE
$(call if_changed,lzo)
$(obj)/Image.gz-dtb: $(obj)/Image.gz $(DTB_OBJS) FORCE
$(call if_changed,cat)
$(obj)/Image.lz4-dtb: $(obj)/Image.lz4 $(DTB_OBJS) FORCE
$(call if_changed,cat)
$(obj)/dtbo.img: $(DTBO_OBJS) FORCE
$(call if_changed,mkdtimg)
install:
$(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \
$(obj)/Image System.map "$(INSTALL_PATH)"
zinstall:
$(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \
$(obj)/Image.gz System.map "$(INSTALL_PATH)"
All this does is fix the build saying dts not found.
***UPDATE 2022***
You require dtc binary file from AOSP prebuilts/misc/dtc
Copy it to the devices kernel folder in scripts/dtc. Was able to build kernel (not sure if it works)
Does it come from any commit of git hub, could you give me the link, mine arch/arm... makefile is similar to your old but it compile with no error. so strange
namhoang235 said:
Does it come from any commit of git hub, could you give me the link, mine arch/arm... makefile is similar to your old but it compile with no error. so strange
Click to expand...
Click to collapse
From my understanding you want the link to the makefile I got. Unfortunately it has been so long I am unable to remember where I got it from. But as a helpful tip. I searched Google for (device name) makefile and searched through links. I also tried. Device tree, build files. Hope that helps.
I gave up on building it because Xiaomi did not release any build files or device tree for Xiaomi CC9 PRO. Only released source files for it. So from my understanding. You would have to edit a pre existing one and match it to the device. Doing that is well above my knowledge.
In order to get at least a template for the CC9 device. You can get the template from Using Qualcomms AOSP builder which has the SM160 device in the list. It is seperate from Google's AOSP and requires a seperate download.
Also I would like to know how you managed to get the makefile working maybe I missed something and can go back fix it. May solve my problem I had.
Squida said:
From my understanding you want the link to the makefile I got. Unfortunately it has been so long I am unable to remember where I got it from. But as a helpful tip. I searched Google for (device name) makefile and searched through links. I also tried. Device tree, build files. Hope that helps.
I gave up on building it because Xiaomi did not release any build files or device tree for Xiaomi CC9 PRO. Only released source files for it. So from my understanding. You would have to edit a pre existing one and match it to the device. Doing that is well above my knowledge.
In order to get at least a template for the CC9 device. You can get the template from Using Qualcomms AOSP builder which has the SM160 device in the list. It is seperate from Google's AOSP and requires a seperate download.
Also I would like to know how you managed to get the makefile working maybe I missed something and can go back fix it. May solve my problem I had.
Click to expand...
Click to collapse
yeah, your experiment is very useful for me, i am in these trouble you 've met yesterday.i help me a lot. thank again
i really dont want to edit makefile as i see many source have the same make file, so it is a compiler tool with some another input file for it to make, so i only edit makefile when it got error itsefl, if it is the path error, then i really dont want to edit it,
Squida said:
From my understanding you want the link to the makefile I got. Unfortunately it has been so long I am unable to remember where I got it from. But as a helpful tip. I searched Google for (device name) makefile and searched through links. I also tried. Device tree, build files. Hope that helps.
I gave up on building it because Xiaomi did not release any build files or device tree for Xiaomi CC9 PRO. Only released source files for it. So from my understanding. You would have to edit a pre existing one and match it to the device. Doing that is well above my knowledge.
In order to get at least a template for the CC9 device. You can get the template from Using Qualcomms AOSP builder which has the SM160 device in the list. It is seperate from Google's AOSP and requires a seperate download.
Also I would like to know how you managed to get the makefile working maybe I missed something and can go back fix it. May solve my problem I had.
Click to expand...
Click to collapse
can you give me a hint?
my kernel can make standarlone with bash script, but when compile with rom it make tons of errors about path, so which file i need to puth something like cc=clang,.... to make it pass when build rom
namhoang235 said:
can you give me a hint?
my kernel can make standarlone with bash script, but when compile with rom it make tons of errors about path, so which file i need to puth something like cc=clang,.... to make it pass when build rom
Click to expand...
Click to collapse
A hint. Sir I would tell you exactly if I knew how. I myself have failed to be able to get a working kernel let alone a rom running. When flashing a kernel that fails and it's supposed to be from the phone. So that tells me the device tree is incomplete and thus if it is, it fails the build as well as the kernel. I know of Qualcomm's own device builder but I am unable to get that working due to it, unable to locate clang for build. No matter how much I try and set a path I get errors using Qualcomm's builder. AOSP won't build the rom for the device because AOSP does not have the device tree or build files required to build it. You get a template from Qualcomm's builder. Though I can never get it to build. It's all because Xiaomi have not released the device tree or build files. And the people who have gotten it working are probably using someone else tree and build files or has edited their own. That is also why some features of ROMs do not work. It's due to missing info on device tree. Hope this all gives you a better understanding why it's hard for beginners to build a rom for this phone. Because Xiaomi does not have the files on their open source repo.
Squida said:
A hint. Sir I would tell you exactly if I knew how. I myself have failed to be able to get a working kernel let alone a rom running. When flashing a kernel that fails and it's supposed to be from the phone. So that tells me the device tree is incomplete and thus if it is, it fails the build as well as the kernel. I know of Qualcomm's own device builder but I am unable to get that working due to it, unable to locate clang for build. No matter how much I try and set a path I get errors using Qualcomm's builder. AOSP won't build the rom for the device because AOSP does not have the device tree or build files required to build it. You get a template from Qualcomm's builder. Though I can never get it to build. It's all because Xiaomi have not released the device tree or build files. And the people who have gotten it working are probably using someone else tree and build files or has edited their own. That is also why some features of ROMs do not work. It's due to missing info on device tree. Hope this all gives you a better understanding why it's hard for beginners to build a rom for this phone. Because Xiaomi does not have the files on their open source repo.
Click to expand...
Click to collapse
i built for ginkgo (superior rom) it have enough compile source, device, kernel, vendor (vendor is fine), but device and kernel not come from official source tree, maybe it have conflict and have to fork to edit mysefl. very hard for beginer
namhoang235 said:
i built for ginkgo (superior rom) it have enough compile source, device, kernel, vendor (vendor is fine), but device and kernel not come from official source tree, maybe it have conflict and have to fork to edit mysefl. very hard for beginer
Click to expand...
Click to collapse
Yeah building from a custom rom is easier then building from AOSP. Especially if the files for the device are available for building. Usually that's why you see ROMs that say unofficial and official ROMs. Unofficial is usually a modified version of another custom rom for another device to suit your own. Heavily modified. I could be wrong but this is how I took it.
Squida said:
Yeah building from a custom rom is easier then building from AOSP. Especially if the files for the device are available for building. Usually that's why you see ROMs that say unofficial and official ROMs. Unofficial is usually a modified version of another custom rom for another device to suit your own. Heavily modified. I could be wrong but this is how I took it.
Click to expand...
Click to collapse
they put tons of personal stuff without a comment, and some source are not update even they release rom once a week, they fear of clone their source while they clone from git too, they are destroy the ideal of open source itself
@Squida sir, do you meet this, i have gcc 9.3.0 by default and prebuilt gcc in source are updated, so what path i need to config for this can recognize my gcc
error Sorry, your version of GCC is too old - please use 5.1 or newer
In file included from /root/super/kernel/xiaomi/ginkgo/include/linux/compiler_types.h:58:0,
from /root/super/kernel/xiaomi/ginkgo/include/linux/kconfig.h:74,
from <command-line>:0:
/root/super/kernel/xiaomi/ginkgo/include/linux/compiler-gcc.h:159:3: error: #error Sorry, your version of GCC is too old - please use 5.1 or newer.
# error Sorry, your version of GCC is too old - please use 5.1 or newer.
Click to expand...
Click to collapse
namhoang235 said:
@Squida sir, do you meet this, i have gcc 9.3.0 by default and prebuilt gcc in source are updated, so what path i need to config for this can recognize my gcc
error Sorry, your version of GCC is too old - please use 5.1 or newer
Click to expand...
Click to collapse
Make sure no other versions of gcc are being detected. Probably have more then one.
Also could be it may not be set as default.
Type gcc --version in terminal to check what is installed
Squida said:
Make sure no other versions of gcc are being detected. Probably have more then one.
Also could be it may not be set as default.
Type gcc --version in terminal to check what is installed
Click to expand...
Click to collapse
[email protected]:~/super# gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/10/lto-wrapper
OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa:hsa
OFFLOAD_TARGET_DEFAULT=1
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 10.3.0-1ubuntu1~20.04' --with-bugurl=file:///usr/share/doc/gcc-10/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-10 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-10-S4I5Pr/gcc-10-10.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-10-S4I5Pr/gcc-10-10.3.0/debian/tmp-gcn/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-mutex
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 10.3.0 (Ubuntu 10.3.0-1ubuntu1~20.04)
[email protected]:~/super#
Click to expand...
Click to collapse
This is a nut with me now.
namhoang235 said:
This is a nut with me now.
Click to expand...
Click to collapse
Lol yeah no idea. That's a lot of info for just doing a version check. If you don't want to uninstall and reinstall Linux. I would Google on how to set gcc xxx as default and see if that helps maybe even seeing if there is an automated .sh you can run so it installs and fixes the problems. I would do a search in the Linux repo on gcc and have a look for anything that says default. Usually those installers will also set it to default for you automatically. I myself am not good with Linux. So that's about as far as I could help on this situation you are in.
The gcc you may need is this https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/

Categories

Resources