Hello, fellow xda members. I'm teh5abiking and I'm gonna be showing you how to set up the Android SDK AND how to compile CyanogenMod.
Please note that we're gonna be doing a fair amount of work in the command line, and if you're not comfortable with using the command line, setting up the Android SDK and/or compiling CyanogenMod probably isn't for you.
This tutorial covers setting up the Android SDK and compiling CyanogenMod on Debian and Debian-derivatives (specifically Ubuntu and Linux Mint) I have included links for those of you who wish to set up the Android SDK on other operating systems aside from Ubuntu/Debian/Mint. I've also included a link for people who wish to compile CyanogenMod on Mac OS X instead of Linux.
I have tried to include a link for those of you who wish to set up the SDK on other Linux distributions such as Slackware, Fedora, openSUSE, Mandriva, and so on, however all the websites that I've visited that say they'll teach how to install the SDK on Linux systems in general are really for Ubuntu/Mint. Therefore, I'm sad to say that you'll have to make do with the general instructions on the Android Developer's website. If you're looking for distribution-specific tutorials, you'll have to look it up yourself (sorry )
I'm also sorry to say that you can't compile CyanogenMod on anything other than Debian (and Debian-derivatives, specifically Ubuntu and Mint) and Mac OS X
>UPDATE: It IS possible to compile on Fedora. I've only tested on Fedora 15 and Fedora 16, but the process remains largely the same. The only differences there are is in the packages you must install to get things going.
Click me if you want to set up the Android SDK on Windows or Mac OS X, Gentoo Linux, or Arch Linux
Click me if you want to compile CyanogenMod on Mac OS X instead of Ubuntu/Debian/Linux Mint
Click me if you want to set up the SDK on other Linux systems
Prerequisites
-Ubuntu 10.04/10.10/11.04/11.10, Debian 6.0.X/Squeeze (I haven't tested on Lenny, Wheezy, or Sid yet) or Linux Mint installed (Either as VirtualBox, partitioned alongside your main operating system, or written to the entire disk)
-Patience, as the repo sync will take a while.
-A distraction/diversion to help pass the time.
Okay, let's get started shall we?
PART I - SETTING UP THE SDK.
Okay, so first you're gonna need to grab the SDK from the developer's site. If you don't have it, here's the link to the developer's site that contains the SDK: http://developer.android.com/sdk/index.html Download the one for Linux (should be listed as a tgz file.)
Okay, once you've downloaded the SDK, extract it to the home folder, like in the picture that's below (for the tutorial's sake, we're renaming it to androidsdk).
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
NOTE: You are required to have Java installed in order to download the SDK platform tools otherwise users who go on without Java *WILL* get a Parse: XML error notice when downloading the SDK platform tools. This requirement has been noted on the "Installing the SDK" portion of the Android Developers website.
Installing Java can go one of two ways. The first way is to download the actual non-free Sun Java implementation by enabling the Canonical Partners repositories in your Software Sources (for Ubuntu users only. Sun Java 6 should be available in Debian's repositories by default across Squeeze, Wheezy, and Sid. Java 5 is available in Lenny's default repositories. Java 6 I believe is available in the Lenny backports. Linux Mint requires no additional configuration as Java comes preinstalled by default.) and downloading it via "apt-get" or Synaptic. If you install Java this way, you'll have to bear through slow download times as the mirrors aren't localized (unless you live in London or something), accepting an EULA, and having to manually maintain the said packages yourself since it's not software Debian or Canonical can support due to licensing issues.
However, the benefit for this is that installing the official Sun Java implementation on your system is that you can compile Android source, which the second post goes more in-depth about. To do so, go to your Software Sources. On Ubuntu 10.04, it's System -> Administration -> Software Sources. On 10.10 and 11.04, it's System -> Administration -> Update Manager -> Settings.
Once you have your software sources open, go to the "Other Software" tab and check off both Canonical Partners repositories. Once you hit the "Close" button, it will tell you your software listings are outdated. Hit "reload" and wait for the software sources menu to close.
IF YOU ARE USING UBUNTU 11.10: Sun Java is NOT available in the default partner repositories for Oneiric Ocelot. You must add the Lucid partner repository to your /etc/apt/sources.list. Here's how to do it:
Open up a terminal and enter the following:
Code:
$ sudo nano -w /etc/apt/sources.list
In the Nano text editor that's been opened up on your terminal, copy and paste the following at the bottom of the file. Once you're done, Press CTRL+X, Y, and then hit Enter.
Code:
##Java Repository.
deb http://archive.canonical.com/ lucid partner
Now that your repository information has been changed, execute the following to update your repository information, upgrade your system, and then install the Sun Java packages.
Code:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install sun-java6-jre sun-java6-jdk sun-java6-bin
The second way is to download the OpenJDK implementation of Java. This is a bit out of date compared to the official Sun Java, however it should suffice for installing the Android SDK. The benefit for this is that a) It's free software, so that means software updates are supported by Debian and the community (OpenJDK is a part of Ubuntu's 'Universe' repository, meaning that it's community supported software.) b) You don't have to accept an EULA as it's free software. c) Since it's available in the default repositories, downloading it will be as fast as downloading normally. To install the OpenJDK implementation of Java, enter the following command:
Code:
sudo apt-get install openjdk-6-jre openjdk-6-jdk icedtea6-plugin
Now we must download the SDK platform tools as they're not included in the .tgz file you downloaded. To do so, we must start the Android SDK and AVD Manager which is located in the tools folder of the Android SDK. You can do this one of two ways, a) You can start up the file manager and manually navigate to the SDK's tools folder OR you can do it via command line. I find executing the Android SDK and AVD Manager from the command line to be easier so that's what we're going to do.
Code:
$ cd ~/androidsdk/tools
$ ./android
Click on "Available Packages" in the new window that pops up. Now, you have two options:
-Check off the first box and install all the SDK platform tools and nothing more. so we can progress with the tutorial.
-Check off both boxes so you install both the SDK platform tools and the third-party add-ons.
I recommend installing just the SDK platform tools, since it's quicker to do it like that, and the adb protocol is in the first repository, and that's what we're after. But you can do it in any way you chose. After choosing whether or not you want to install the SDK platform-tools along with the third-party add-ons, click on "Install Selected" then "Accept All" in the window that pops up and finally click on "Install." It's quite a bit to download (3.1 GB to be exact) if you download both the SDK platform tools and the third-party add-ons, but that gives us some time to get other stuff done.
UPDATE: The SDK and AVD manager has been updated as of SDK r15. Installation of Packages remains largely the same, sans for how you choose the repositories.
While we're downloading the SDK platform tools we have some work to do. See, we're gonna need to make use of ADB, and we can't set up our CM7 stuff in the platform-tools directory. Time to get nerdier
I find it tedious and messy to put stuff in the platform-tools directory every time I wanna do something like root a phone, so what we're gonna do is edit our PATH variable so that we can execute ADB from ANY location. With the terminal window that I hope you've kept open all this time, let's enter another command:
Code:
$ nano -w .bashrc
OR
Code:
$ gedit .bashrc
It'll open up a text editor, and it's showing us our .bashrc file. At the top of the .bashrc file, copy and paste the following:
Code:
#AndroidDev PATH
export PATH=${PATH}:~/androidsdk/tools
export PATH=${PATH}:~/androidsdk/platform-tools
NOTE: As there is no "~/.bashrc" file included in Linux Mint, you must do the following to make sure it's executable.
Code:
$ chmod a+x ~/.bashrc
After you're finished, it should look like this:
Save your changes. (Nano users, just press CTRL+X, Y, and Enter. Gedit users, just click on File and then click on 'Save')
Now that we've got our SDK ready (for the most part), it's time to set up udev.
udev is the USB 'driver' for Linux, allowing your computer to talk to the device when using adb or fastboot. Just like how you needed drivers for Windows to make ADB work, the same principles apply to Linux, albeit in a different form. So, in that terminal window (That I hope you have kept open all this time) Enter the following, so we can locate and edit the file that our udev rules need.
Code:
$ gksudo gedit /etc/udev/rules.d/51-android.rules
.
OR
Code:
$ sudo nano -w /etc/udev/rules.d/51-android.rules
Once you've done that, copy the udev rules that are below and paste them into the rules file, as shown below.
Code:
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0502", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1004", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fce", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0489", MODE="0666"
SUBSYSTEM==”usb”, ATTRS{idVendor}==”18d1″, SYMLINK+=”android_adb”, MODE=”0666″
SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666", GROUP="plugdev
It should be like in the picture below
Save all your changes (Nano: CTRL+X, Y, and hit Enter. Gedit: File, Save As), and then reboot otherwise adb won't be in your path.
NOTE: Debian and Mint users MUST execute the following as root, otherwise udev will fail to recognize your device. If ADB won't recognize your device, execute the following as root:
Code:
$ chmod a+r /etc/udev/rules.d/51-android.rules
Once you do that, let's verify the success of our efforts, so open up a terminal (CTRL + ALT + T or Applications -> Accessories -> Terminal) and enter the following:
Code:
$ adb devices
You should get something like in the picture below.
Congratulations, you've set up the Android SDK! If you just wanted the SDK, you can stop here.
I have adapted this from multiple sources, however the sources that I've used the most in this tutorial are from Ubuntu's wonderful community-contributed documentation.
COMMUNITY UBUNTU DOCUMENTATION FOR INSTALLING THE ANDROID SDK
COMMUNITY UBUNTU DOCUMENTATION ON INSTALLING JAVA
If you want to learn how to compile one of the most popular custom ROMs for Android, read the next post to learn how.
PART 2 - Compiling CyanogenMod.
This half of the tutorial covers the actual compilation of CyanogenMod, one of the most popular custom ROMS that are available to modded Android devices. CyanogenMod supports more devices than ANY custom ROM project that is available for the Android operating system, and let's see
Reasons why you might want to compile your own version of CyanogenMod might be one of the following:
- You might want an updated version of your ROM or an updated portion of your ROM (be that an updated kernel, updated core applications, or an updated version of the Android operating system)
- Certain bugs that you might have experienced in the stable releases of CyanogenMod may have been patched.
- The ROM that you'll compile will contain the most bleeding-edge features that have been committed into the CyanogenMod github.
- You can pick and choose which features that you want and which features you don't want (cherry-picking features won't be covered in this post.)
- You might want to see what goes into making a custom ROM.
- Certain features that you don't care for may have been omitted from the CyanogenMod github or may have been tweaked.
NOTE: Even though 64-bit building environments are supported past Android 2.2, this tutorial will still work on a 32-bit computer.
UPDATE: The Android Open Source Project has been updated to provide 32-bit build environments. However, the AOSP claims that this is experimental. So far, everything is stable. I've incurred no issues as of yet.
FOR 32-bit systems:
Code:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev libx11-dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown libxml2-utils
For 64-bit systems:
Code:
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils
If you have a 64-bit system, you must also do the following:
- If you are running Ubuntu 10.04, 10.10, or 11.04, execute the following command in a terminal:
Code:
$ sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so
- If you are running Ubuntu 11.10, execute the following command in a terminal:
Code:
$ sudo ln -s /usr/lib/i386-linux-gnu/libX11.so.6 /usr/lib/i386-linux-gnu/libX11.so
NOTE: For 64-bit systems running Ubuntu 11.10, you may not need to install the 'ia32-libs' package, as the 64-bit edition of Ubuntu 11.10 comes with multiarch support, meaning you can run 32-bit programs without the need for additional libraries. However, I've yet to test this feature because I'm running a 32-bit computer. Please post your results if you've tried this tutorial without ia32-libs and instead used Ubuntu 11.10's multiarch support.
Once you do that, you should have something like this (I've already set up my build environment, so it won't be exactly the same as what you should have. Either way, it should go about as a standard package installation procedure)
Okay, now that we have our packages installed, we need to create the build directories. In that terminal window that you should still have open, enter the following commands so that we can create the build directories.
Code:
$ mkdir -p ~/android/system/
$ mkdir -p ~/bin/
NOTE: You can replace "~/android/system/" with any other type of directory. Some people go with "~/cm-build" other people go with "~/cm7" Any time you see "~/android/system/" in a command, just replace that with whatever your build directory is. Just make sure you enter the right location though for such commands.
Now we need to initialize the repo binary and make it executable. If you're wondering what the repo binary is, just look it up at http://source.android.com/source/version-control.html
To make the binary executuable, enter the following commands:
Code:
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
NOTE: You may have to reboot for these changes to work.
Once you've done that, it should look a little something like this:
Okay, now that we've got the repo binary set up, we're now ready to download the source. I warn you though, it does take a long time, so you're gonna want to get a snack, watch a movie, play Quadrapassel, etc. just to pass the time. Trust me.
Okay, let's download the source so that we can continue
Code:
$ cd ~/android/system/
$ repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
$ repo sync -j16
And now we play the waiting game. You may be wondering what the "-j16" addon is for, well it's essentially an addition to the repo sync command that starts 16 tasks at once. It's a little quicker than doing it withouth the -j16 addon. In total, it should take anywhere between one hour to two hours, depending on your internet connection. Well, I just played Quadrapassel (Ubuntu's version of Tetris) while it was syncing.
Once it's done syncing, you should have something that's in the picture below.
Congratulations! You've withstood the first test. Now let's continue.
This is the part where you're supposed to copy the proprietary files from your G2/DZ. The problem here is that most of the time, it'll give you an error message saying that "MS-HTCEMR-20-BLAHBLAHBLAH.apk is missing" Instead of having to copy the proprietary files straight from the device itself, I just got them from the Koush github.
Here's the link to the Koush github. Just hit the download button that's in the upper right-hand corner and save as .zip file.
https://github.com/koush/proprietary_vendor_htc
Extract it to "~/android/system/vendor/htc/" By doing this, not only do you have the proprietary files for Vision, you also have the proprietary files for ALL HTC devices that CyanogenMod currently supports. That means you can compile a ROM for ANY HTC Android phone you want (Passion/N1, Bravo/Desire, Glacier/MT4G. etc.) Score 1 for doing it unconventionally!
Now it's time to get ROM Manager. You only need to do this every time there's a new release of ROM Manager. So, in that terminal window that I hope you've kept open after all this time, enter the following:
Code:
$ ~/android/system/vendor/cyanogen/get-rommanager
This will get the latest version of ROM Manager that's currently available. We need to see if there have been any updates in the source. That means we're gonna have to repo sync again. Why? Well, we just spent about an hour or two gathering the source, and in that time, something could've changed in the github, so it only makes sense to check again. This time, the repo sync should be faster since we already have all the source.
Code:
$ cd ~/android/system/
$ repo sync
Once that's done, now we're ready to start cooking up the ROM. Enter the following:
Code:
$ make clean
$ make installclean
$ make clobber
$ . build/envsetup.sh && brunch vision
(make clean, make installclean, and make clobber clean out all the directories so that every time you make a ROM, older builds you made yourself won't conflict with the one you're making right now. the brunch is the one that actually sets up the build environment and builds the ROM.)
Compiling the ROM takes anywhere between 20-30 minutes on good hardware to 1 hour - 2 hours on older computers. If you're impatient, read this article from the CyanogenMod Wiki that explains how to speed up compiling, testing, etc.
http://wiki.cyanogenmod.com/wiki/Howto:_Speed_up_building
Congratulations! You've successfully compiled your first build of CyanogenMod! Give yourself a pat on the back. If you're curious as to how this should look, well the photo below should tell you how it should looks. All builds you'll compile have the KANG addition since it's not an official release of CM7.
Remember to hit that Thanks button people
All thanks go to the following people:
cyanogen for sharing his methods.
sykopompos for providing original instructions on how to set up the SDK and compiling CM7
plasmadragon007 for helping me getting the build to compile.
Nice clear guide, thanks. Might give this a try tomorrow. I had tried once before but failed but this seems like a nice simple guide.
Could you provide a guide that details how to cherry pick new features etc?
Thanks
teh5abiking said:
PART 2 - Compiling CyanogenMod.
Here's the link to the Koush github. Just hit the download button that's in the upper right-hand corner and save as .zip file.
Click to expand...
Click to collapse
thanks for the great guide ...btw you missed to give the link for koush github
@cjward23
I can't because I don't know how.
But once I figure it out and try it a few times I'll be more than happy to post a tutorial.
hispeedworm said:
thanks for the great guide ...btw you missed to give the link for koush github
Click to expand...
Click to collapse
Thanks, I missed that one. I had the thing on gedit and I was fixing up some stuff.
Fixed
teh5abiking said:
Thanks, I missed that one. I had the thing on gedit and I was fixing up some stuff.
Fixed
Click to expand...
Click to collapse
sweeeeet
hey i am on the second part figuring out how to compile cyanogen and i do this
$ sudo apt-get install g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package gcc-4.3-multilib
E: Couldn't find any package by regex 'gcc-4.3-multilib'
E: Unable to locate package g++-4.3-multilib
E: Couldn't find any package by regex 'g++-4.3-multilib'
Could someone tell me what it is i am doing wrong i am running 64bit ubuntu here .... i feel like such a noob....
noob1015 said:
hey i am on the second part figuring out how to compile cyanogen and i do this
$ sudo apt-get install g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package gcc-4.3-multilib
E: Couldn't find any package by regex 'gcc-4.3-multilib'
E: Unable to locate package g++-4.3-multilib
E: Couldn't find any package by regex 'g++-4.3-multilib'
Could someone tell me what it is i am doing wrong i am running 64bit ubuntu here .... i feel like such a noob....
Click to expand...
Click to collapse
Are you on Ubuntu 11.04?
teh5abiking said:
Are you on Ubuntu 11.04?
Click to expand...
Click to collapse
yes.... oh boy sounds like i missed something....
noob1015 said:
yes.... oh boy sounds like i missed something....
Click to expand...
Click to collapse
Try doing the tutorial from the second post over.
same error the first command went through as yours did showing
[email protected]:~$ sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.6-dev squashfs-tools build-essential zip curl libncurses5-dev zlib1g-dev sun-java6-jdk pngcrush schedtool
[sudo] password for kris:
*all those lines here saying latest version*
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
[email protected]:~$ sudo apt-get install g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package gcc-4.3-multilib
E: Couldn't find any package by regex 'gcc-4.3-multilib'
E: Unable to locate package g++-4.3-multilib
E: Couldn't find any package by regex 'g++-4.3-multilib'
ps i continued on and got the repo bin file and chmoded it but the repo command doesn't work for later on just a thing to add just in case. Probably becuase of this
Try using the 64-bit command first, I don't own a 32-bit system myself so I can't really diagnose what's wrong.
is that this command ($ sudo apt-get install g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.3-multilib g++-4.3-multilib)
for 32 bit systems? or 64 bit systems
because mine is 64bit and you say 64 bit systems use that command (i am confused)
perhaps this can clear things up?
http://wiki.cyanogenmod.com/wiki/Compile_CyanogenMod_for_Vision
those missing files are no longer available in 11.04 so that's why they were missing they were supposed to be
ok rebooted my system now it is working no idea what was happening before... sorry about all the issues and thank you for all your help
noob1015 said:
those missing files are no longer available in 11.04 so that's why they were missing they were supposed to be
ok rebooted my system now it is working no idea what was happening before... sorry about all the issues and thank you for all your help
Click to expand...
Click to collapse
Always happy to help
Sometimes, when you're giving the repo binary executable permissions, you might have to reboot. Forgot to include that.
i know im posting in the wrong thread but im compiling on ubuntu 10.04(64bit) for a legacy samsung device im getting this error any helps please
HTML:
host C: emulator <= external/qemu/audio/alsaaudio.c
external/qemu/audio/alsaaudio.c:25:28: error: alsa/asoundlib.h: No such file or directory
In file included from external/qemu/audio/alsaaudio.c:92:
external/qemu/dynlink.h:71: error: expected ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: warning: type defaults to ‘int’ in declaration of ‘snd_pcm_hw_params_t’
external/qemu/dynlink.h:71: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: warning: type defaults to ‘int’ in declaration of ‘snd_pcm_hw_params_t’
external/qemu/dynlink.h:71: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: warning: type defaults to ‘int’ in declaration of ‘snd_pcm_hw_params_t’
external/qemu/dynlink.h:71: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: warning: type defaults to ‘int’ in declaration of ‘snd_pcm_hw_params_t’
external/qemu/dynlink.h:71: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: warning: type defaults to ‘int’ in declaration of ‘snd_pcm_hw_params_t’
external/qemu/dynlink.h:71: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected declaration specifiers or ‘...’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected declaration specifiers or ‘...’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected declaration specifiers or ‘...’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected declaration specifiers or ‘...’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: error: expected ‘)’ before ‘*’ token
external/qemu/dynlink.h:71: warning: type defaults to ‘int’ in declaration of ‘snd_pcm_hw_params_t’
external/qemu/dynlink.h:71: error: expected ‘;’, ‘,’ or ‘)’ before ‘*’ token
external/qemu/dynlink.h: In function ‘alsa_dynlink_init’:
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_hw_params_current’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: (Each undeclared identifier is reported only once
external/qemu/dynlink.h:91: error: for each function it appears in.)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_sw_params_set_start_threshold’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_sw_params’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_sw_params_current’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_hw_params_any’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_hw_params_set_access’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_hw_params_get_format’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_hw_params_set_format’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_hw_params_set_rate_near’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_hw_params_set_channels_near’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_hw_params_set_buffer_time_near’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_hw_params’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_hw_params_get_buffer_size’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_prepare’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_hw_params_get_period_size’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_hw_params_get_period_size_min’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_hw_params_set_period_size’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_hw_params_get_buffer_size_min’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_hw_params_set_buffer_size’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_hw_params_set_period_time_near’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_avail_update’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_drop’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_writei’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_readi’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_state’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_open’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_close’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_hw_params_set_buffer_size_near’ undeclared (first use in this function)
external/qemu/dynlink.h:91: error: ‘_dynlink_snd_pcm_hw_params_set_period_size_near’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c: At top level:
external/qemu/audio/alsaaudio.c:106: error: expected specifier-qualifier-list before ‘snd_pcm_t’
external/qemu/audio/alsaaudio.c:111: error: expected specifier-qualifier-list before ‘snd_pcm_t’
external/qemu/audio/alsaaudio.c:140: error: expected specifier-qualifier-list before ‘snd_pcm_format_t’
external/qemu/audio/alsaaudio.c:153: error: expected specifier-qualifier-list before ‘snd_pcm_uframes_t’
external/qemu/audio/alsaaudio.c:185: error: expected ‘)’ before ‘*’ token
external/qemu/audio/alsaaudio.c:199: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘aud_to_alsafmt’
external/qemu/audio/alsaaudio.c:229: error: expected ‘)’ before ‘alsafmt’
external/qemu/audio/alsaaudio.c: In function ‘alsa_dump_info’:
external/qemu/audio/alsaaudio.c:295: error: ‘struct alsa_params_req’ has no member named ‘fmt’
external/qemu/audio/alsaaudio.c:297: error: ‘struct alsa_params_req’ has no member named ‘nchannels’
external/qemu/audio/alsaaudio.c:301: error: ‘struct alsa_params_req’ has no member named ‘buffer_size’
external/qemu/audio/alsaaudio.c:301: error: ‘struct alsa_params_req’ has no member named ‘period_size’
external/qemu/audio/alsaaudio.c:302: error: ‘struct alsa_params_obt’ has no member named ‘samples’
external/qemu/audio/alsaaudio.c: At top level:
external/qemu/audio/alsaaudio.c:305: error: expected ‘)’ before ‘*’ token
external/qemu/audio/alsaaudio.c:336: error: expected declaration specifiers or ‘...’ before ‘snd_pcm_t’
external/qemu/audio/alsaaudio.c: In function ‘alsa_open’:
external/qemu/audio/alsaaudio.c:338: error: ‘snd_pcm_t’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:338: error: ‘handle’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:339: error: ‘snd_pcm_hw_params_t’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:339: error: ‘hw_params’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:344: error: ‘snd_pcm_uframes_t’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:344: error: expected ‘;’ before ‘obt_buffer_size’
external/qemu/audio/alsaaudio.c:346: error: ‘snd_pcm_format_t’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:346: error: expected ‘;’ before ‘obtfmt’
external/qemu/audio/alsaaudio.c:349: error: ‘struct alsa_params_req’ has no member named ‘nchannels’
external/qemu/audio/alsaaudio.c:350: error: ‘struct alsa_params_req’ has no member named ‘size_in_usec’
external/qemu/audio/alsaaudio.c:352: error: expected expression before ‘)’ token
external/qemu/audio/alsaaudio.c:354: error: ‘_dynlink_snd_pcm_open’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:357: error: ‘SND_PCM_STREAM_CAPTURE’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:357: error: ‘SND_PCM_STREAM_PLAYBACK’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:358: error: ‘SND_PCM_NONBLOCK’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:365: error: ‘_dynlink_snd_pcm_hw_params_any’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:371: error: ‘_dynlink_snd_pcm_hw_params_set_access’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:374: error: ‘SND_PCM_ACCESS_RW_INTERLEAVED’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:381: error: ‘_dynlink_snd_pcm_hw_params_set_format’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:381: error: ‘struct alsa_params_req’ has no member named ‘fmt’
external/qemu/audio/alsaaudio.c:383: error: ‘struct alsa_params_req’ has no member named ‘fmt’
external/qemu/audio/alsaaudio.c:387: error: ‘_dynlink_snd_pcm_hw_params_set_rate_near’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:393: error: ‘_dynlink_snd_pcm_hw_params_set_channels_near’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:400: error: ‘struct alsa_params_req’ has no member named ‘nchannels’
external/qemu/audio/alsaaudio.c:411: error: ‘struct alsa_params_req’ has no member named ‘buffer_size’
external/qemu/audio/alsaaudio.c:416: error: ‘struct alsa_params_req’ has no member named ‘buffer_size’
external/qemu/audio/alsaaudio.c:418: error: ‘_dynlink_snd_pcm_hw_params_set_buffer_time_near’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:427: error: expected ‘;’ before ‘bsize’
external/qemu/audio/alsaaudio.c:429: error: ‘_dynlink_snd_pcm_hw_params_set_buffer_size_near’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:432: error: ‘bsize’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:438: error: ‘struct alsa_params_req’ has no member named ‘buffer_size’
external/qemu/audio/alsaaudio.c:442: error: ‘struct alsa_params_req’ has no member named ‘override_mask’
external/qemu/audio/alsaaudio.c:442: error: ‘struct alsa_params_req’ has no member named ‘buffer_size’
external/qemu/audio/alsaaudio.c:444: error: ‘struct alsa_params_req’ has no member named ‘buffer_size’
external/qemu/audio/alsaaudio.c:447: error: ‘struct alsa_params_req’ has no member named ‘period_size’
external/qemu/audio/alsaaudio.c:452: error: ‘struct alsa_params_req’ has no member named ‘period_size’
external/qemu/audio/alsaaudio.c:454: error: ‘_dynlink_snd_pcm_hw_params_set_period_time_near’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:464: error: expected ‘;’ before ‘psize’
external/qemu/audio/alsaaudio.c:466: error: ‘_dynlink_snd_pcm_hw_params_set_period_size_near’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:469: error: ‘psize’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:477: error: ‘struct alsa_params_req’ has no member named ‘period_size’
external/qemu/audio/alsaaudio.c:481: error: ‘struct alsa_params_req’ has no member named ‘override_mask’
external/qemu/audio/alsaaudio.c:481: error: ‘struct alsa_params_req’ has no member named ‘period_size’
external/qemu/audio/alsaaudio.c:483: error: ‘struct alsa_params_req’ has no member named ‘period_size’
external/qemu/audio/alsaaudio.c:486: error: ‘_dynlink_snd_pcm_hw_params’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:492: error: ‘_dynlink_snd_pcm_hw_params_get_buffer_size’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:492: error: ‘obt_buffer_size’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:498: error: ‘_dynlink_snd_pcm_hw_params_get_format’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:498: error: ‘obtfmt’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:505: warning: implicit declaration of function ‘alsa_to_audfmt’
external/qemu/audio/alsaaudio.c:510: error: ‘_dynlink_snd_pcm_prepare’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:517: error: expected ‘;’ before ‘threshold’
external/qemu/audio/alsaaudio.c:538: error: ‘threshold’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:539: warning: implicit declaration of function ‘alsa_set_threshold’
external/qemu/audio/alsaaudio.c:544: error: ‘struct alsa_params_obt’ has no member named ‘samples’
external/qemu/audio/alsaaudio.c:546: error: ‘handlep’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:549: error: ‘struct alsa_params_req’ has no member named ‘fmt’
external/qemu/audio/alsaaudio.c:550: error: ‘struct alsa_params_req’ has no member named ‘nchannels’
external/qemu/audio/alsaaudio.c:562: warning: implicit declaration of function ‘alsa_anal_close’
external/qemu/audio/alsaaudio.c: At top level:
external/qemu/audio/alsaaudio.c:566: error: expected ‘)’ before ‘*’ token
external/qemu/audio/alsaaudio.c:576: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘alsa_get_avail’
external/qemu/audio/alsaaudio.c: In function ‘alsa_run_out’:
external/qemu/audio/alsaaudio.c:605: error: ‘snd_pcm_sframes_t’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:605: error: expected ‘;’ before ‘avail’
external/qemu/audio/alsaaudio.c:612: error: ‘avail’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:612: warning: implicit declaration of function ‘alsa_get_avail’
external/qemu/audio/alsaaudio.c:612: error: ‘ALSAVoiceOut’ has no member named ‘handle’
external/qemu/audio/alsaaudio.c:618: warning: type defaults to ‘int’ in declaration of ‘tb’
external/qemu/audio/alsaaudio.c:624: error: expected ‘;’ before ‘written’
external/qemu/audio/alsaaudio.c:632: error: ‘written’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:632: error: ‘_dynlink_snd_pcm_writei’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:632: error: ‘ALSAVoiceOut’ has no member named ‘handle’
external/qemu/audio/alsaaudio.c:643: warning: implicit declaration of function ‘alsa_recover’
external/qemu/audio/alsaaudio.c:643: error: ‘ALSAVoiceOut’ has no member named ‘handle’
external/qemu/audio/alsaaudio.c: In function ‘alsa_fini_out’:
external/qemu/audio/alsaaudio.c:681: error: ‘ALSAVoiceOut’ has no member named ‘handle’
external/qemu/audio/alsaaudio.c: In function ‘alsa_init_out’:
external/qemu/audio/alsaaudio.c:694: error: ‘snd_pcm_t’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:694: error: ‘handle’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:702: error: ‘struct alsa_params_req’ has no member named ‘fmt’
external/qemu/audio/alsaaudio.c:702: warning: implicit declaration of function ‘aud_to_alsafmt’
external/qemu/audio/alsaaudio.c:704: error: ‘struct alsa_params_req’ has no member named ‘nchannels’
external/qemu/audio/alsaaudio.c:705: error: ‘struct alsa_params_req’ has no member named ‘period_size’
external/qemu/audio/alsaaudio.c:706: error: ‘struct alsa_params_req’ has no member named ‘buffer_size’
external/qemu/audio/alsaaudio.c:707: error: ‘struct alsa_params_req’ has no member named ‘size_in_usec’
external/qemu/audio/alsaaudio.c:708: error: ‘struct alsa_params_req’ has no member named ‘override_mask’
external/qemu/audio/alsaaudio.c:709: warning: suggest parentheses around operand of ‘!’ or change ‘|’ to ‘||’ or ‘!’ to ‘~’
external/qemu/audio/alsaaudio.c:711: error: too many arguments to function ‘alsa_open’
external/qemu/audio/alsaaudio.c:721: error: ‘struct alsa_params_obt’ has no member named ‘samples’
external/qemu/audio/alsaaudio.c:723: error: ‘struct alsa_params_obt’ has no member named ‘samples’
external/qemu/audio/alsaaudio.c:731: error: ‘ALSAVoiceOut’ has no member named ‘handle’
external/qemu/audio/alsaaudio.c: At top level:
external/qemu/audio/alsaaudio.c:741: error: expected ‘)’ before ‘*’ token
external/qemu/audio/alsaaudio.c: In function ‘alsa_ctl_out’:
external/qemu/audio/alsaaudio.c:770: warning: implicit declaration of function ‘alsa_voice_ctl’
external/qemu/audio/alsaaudio.c:770: error: ‘ALSAVoiceOut’ has no member named ‘handle’
external/qemu/audio/alsaaudio.c:774: error: ‘ALSAVoiceOut’ has no member named ‘handle’
external/qemu/audio/alsaaudio.c: In function ‘alsa_init_in’:
external/qemu/audio/alsaaudio.c:785: error: ‘snd_pcm_t’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:785: error: ‘handle’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:793: error: ‘struct alsa_params_req’ has no member named ‘fmt’
external/qemu/audio/alsaaudio.c:795: error: ‘struct alsa_params_req’ has no member named ‘nchannels’
external/qemu/audio/alsaaudio.c:796: error: ‘struct alsa_params_req’ has no member named ‘period_size’
external/qemu/audio/alsaaudio.c:797: error: ‘struct alsa_params_req’ has no member named ‘buffer_size’
external/qemu/audio/alsaaudio.c:798: error: ‘struct alsa_params_req’ has no member named ‘size_in_usec’
external/qemu/audio/alsaaudio.c:799: error: ‘struct alsa_params_req’ has no member named ‘override_mask’
external/qemu/audio/alsaaudio.c:800: warning: suggest parentheses around operand of ‘!’ or change ‘|’ to ‘||’ or ‘!’ to ‘~’
external/qemu/audio/alsaaudio.c:802: error: too many arguments to function ‘alsa_open’
external/qemu/audio/alsaaudio.c:812: error: ‘struct alsa_params_obt’ has no member named ‘samples’
external/qemu/audio/alsaaudio.c:814: error: ‘ALSAVoiceIn’ has no member named ‘pcm_buf’
external/qemu/audio/alsaaudio.c:815: error: ‘ALSAVoiceIn’ has no member named ‘pcm_buf’
external/qemu/audio/alsaaudio.c:822: error: ‘ALSAVoiceIn’ has no member named ‘handle’
external/qemu/audio/alsaaudio.c: In function ‘alsa_fini_in’:
external/qemu/audio/alsaaudio.c:836: error: ‘ALSAVoiceIn’ has no member named ‘handle’
external/qemu/audio/alsaaudio.c:838: error: ‘ALSAVoiceIn’ has no member named ‘pcm_buf’
external/qemu/audio/alsaaudio.c:839: error: ‘ALSAVoiceIn’ has no member named ‘pcm_buf’
external/qemu/audio/alsaaudio.c:840: error: ‘ALSAVoiceIn’ has no member named ‘pcm_buf’
external/qemu/audio/alsaaudio.c: In function ‘alsa_run_in’:
external/qemu/audio/alsaaudio.c:859: error: ‘snd_pcm_sframes_t’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:859: error: expected ‘;’ before ‘avail’
external/qemu/audio/alsaaudio.c:860: error: ‘snd_pcm_uframes_t’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:860: error: expected ‘;’ before ‘read_samples’
external/qemu/audio/alsaaudio.c:866: error: ‘avail’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:866: error: ‘ALSAVoiceIn’ has no member named ‘handle’
external/qemu/audio/alsaaudio.c:872: error: ‘_dynlink_snd_pcm_state’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:872: error: ‘ALSAVoiceIn’ has no member named ‘handle’
external/qemu/audio/alsaaudio.c:872: error: ‘SND_PCM_STATE_PREPARED’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:876: warning: type defaults to ‘int’ in declaration of ‘tb’
external/qemu/audio/alsaaudio.c:892: error: expected ‘;’ before ‘nread’
external/qemu/audio/alsaaudio.c:893: error: expected ‘;’ before ‘len’
external/qemu/audio/alsaaudio.c:895: error: ‘len’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:897: error: ‘ALSAVoiceIn’ has no member named ‘pcm_buf’
external/qemu/audio/alsaaudio.c:901: error: ‘nread’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:901: error: ‘_dynlink_snd_pcm_readi’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c:901: error: ‘ALSAVoiceIn’ has no member named ‘handle’
external/qemu/audio/alsaaudio.c:912: error: ‘ALSAVoiceIn’ has no member named ‘handle’
external/qemu/audio/alsaaudio.c:940: error: ‘read_samples’ undeclared (first use in this function)
external/qemu/audio/alsaaudio.c: In function ‘alsa_ctl_in’:
external/qemu/audio/alsaaudio.c:962: error: ‘ALSAVoiceIn’ has no member named ‘handle’
external/qemu/audio/alsaaudio.c:966: error: ‘ALSAVoiceIn’ has no member named ‘handle’
make: *** [out/host/linux-x86/obj/EXECUTABLES/emulator_intermediates/audio/alsaaudio.o] Error 1
its about 3mins into the make process i'm running 2.7ghz dual core i5 chipset with 1gb ram....some things are undeclared it its getting aborted at alsaaudio.o ..
Related
two things:
1. recovery compiling
i am trying to compile the recovery binary for the recovery image. so i go to the root of the android source, which i downloaded with the instructions from here: http://source.android.com/download
when i run "make recovery" i get the following error:
Code:
[email protected]:/media/data/mydroid$ make recovery
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.1-update1
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=ECLAIR
============================================
make: *** No rule to make target `out/target/product/generic/obj/PACKAGING/ota_keys_inc_intermediates/keys.inc', needed by `out/target/product/generic/obj/EXECUTABLES/recovery_intermediates/install.o'. Stop.
having read somewhere about the recovery needing a compiled android first, i tried to run "make", which ran into the same error after about one hour of compiling (tons of other messages of course). any help is appreciated, i believe it is not a big problem...
2. c code cross compiling
i am trying to compile some (very basic) c code with the help of the cross compiler. the code contains the following includes:
Code:
#include <sys/stat.h>
#include <sys/types.h>
#include <errno.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
the code compiles flawless with gcc, but when i try to compile it for android i get the following:
Code:
[email protected]:~/Desktop$ arm-eabi-gcc test.c -o armtest
test.sh.x.c:89:22: error: sys/stat.h: No such file or directory
test.sh.x.c:90:23: error: sys/types.h: No such file or directory
test.sh.x.c:92:19: error: errno.h: No such file or directory
test.sh.x.c:93:19: error: stdio.h: No such file or directory
test.sh.x.c:94:20: error: stdlib.h: No such file or directory
test.sh.x.c:95:20: error: string.h: No such file or directory
test.sh.x.c:96:18: error: time.h: No such file or directory
test.sh.x.c:97:20: error: unistd.h: No such file or directory
test.sh.x.c: In function 'key_with_file':
test.sh.x.c:159: error: array type has incomplete element type
test.sh.x.c:160: error: array type has incomplete element type
test.sh.x.c:166: warning: incompatible implicit declaration of built-in function 'memset'
test.sh.x.c: In function 'chkenv':
test.sh.x.c:211: warning: incompatible implicit declaration of built-in function 'sprintf'
test.sh.x.c:212: warning: assignment makes pointer from integer without a cast
test.sh.x.c:216: warning: incompatible implicit declaration of built-in function 'strlen'
test.sh.x.c:220: warning: incompatible implicit declaration of built-in function 'strdup'
test.sh.x.c:223: warning: incompatible implicit declaration of built-in function 'sscanf'
test.sh.x.c:235:24: error: sys/ptrace.h: No such file or directory
test.sh.x.c:237:22: error: sys/wait.h: No such file or directory
test.sh.x.c:238:19: error: fcntl.h: No such file or directory
test.sh.x.c:239:20: error: signal.h: No such file or directory
test.sh.x.c: In function 'untraceable':
test.sh.x.c:258: warning: incompatible implicit declaration of built-in function 'sprintf'
test.sh.x.c:261: error: 'O_RDWR' undeclared (first use in this function)
test.sh.x.c:261: error: (Each undeclared identifier is reported only once
test.sh.x.c:261: error: for each function it appears in.)
test.sh.x.c:261: error: 'O_EXCL' undeclared (first use in this function)
test.sh.x.c:262: error: 'errno' undeclared (first use in this function)
test.sh.x.c:262: error: 'EBUSY' undeclared (first use in this function)
test.sh.x.c:263: error: 'PTRACE_ATTACH' undeclared (first use in this function)
test.sh.x.c:265: error: 'SIGCONT' undeclared (first use in this function)
test.sh.x.c:268: error: 'SIGKILL' undeclared (first use in this function)
test.sh.x.c:270: warning: incompatible implicit declaration of built-in function '_exit'
test.sh.x.c:278: warning: incompatible implicit declaration of built-in function '_exit'
test.sh.x.c: In function 'xsh':
test.sh.x.c:291: error: 'time_t' undeclared (first use in this function)
test.sh.x.c:291: error: expected expression before ')' token
test.sh.x.c:292: error: expected expression before ')' token
test.sh.x.c:307: warning: incompatible implicit declaration of built-in function 'calloc'
test.sh.x.c:323: warning: incompatible implicit declaration of built-in function 'malloc'
test.sh.x.c:326: warning: incompatible implicit declaration of built-in function 'memset'
test.sh.x.c:327: warning: incompatible implicit declaration of built-in function 'memcpy'
test.sh.x.c:333: warning: incompatible implicit declaration of built-in function 'malloc'
test.sh.x.c:336: warning: incompatible implicit declaration of built-in function 'sprintf'
test.sh.x.c: In function 'main':
test.sh.x.c:370: warning: incompatible implicit declaration of built-in function 'fprintf'
test.sh.x.c:370: error: 'stderr' undeclared (first use in this function)
test.sh.x.c:371: error: 'errno' undeclared (first use in this function)
from my noob point of view that means the compiler cannot find the includes. so where can i find them (i asssume in the android source tree in bionic/libc/include/), and how do i get the compiler to find them? i tried "--sysroot=", but i am not sure what part of the path is expected exactly...
second problem is solved. fwiw this is the solution:
Code:
arm-eabi-gcc -o test test.c -Wl,-rpath-link=/media/data/mydroid/development/ndk/build/platforms/android-5/arch-arm/usr/lib/,-dynamic-linker=/system/bin/linker -L/media/data/mydroid/development/ndk/build/platforms/android-5/arch-arm/usr/lib/ /media/data/mydroid/development/ndk/build/platforms/android-5/arch-arm/usr/lib/crtbegin_dynamic.o -I/media/data/mydroid/development/ndk/build/platforms/android-5/arch-arm/usr/include -nostdlib -lc
where /media/data/mydroid is the directory in which i initialized the git. don't ask me what the options mean, i don't know exactly either.
problem1 still persists, so if anybody has any ideas...
solved. needed to download cupcake sources. thx amon ra.
kendong2 said:
solved. needed to download cupcake sources. thx amon ra.
Click to expand...
Click to collapse
Can you be a little more specific on how to fix the error? What detailed steps to take or do you just compile it with cupcake as my target device is an eclair build
make: *** No rule to make target `out/target/product/generic/obj/PACKAGING/ota_keys_inc_intermediates/keys.inc', needed by `out/target/product/generic/obj/EXECUTABLES/recovery_intermediates/install.o'. Stop
Can you detail what you are trying to do and how you are reaching this error?
Generally, from my experience, if you follow the detailed instructions from here:
http://source.android.com/source/download.html
The code compiles with no problems. Note that if you want eclair, initialize the repo using the command:
repo init -u git://android.git.kernel.org/platform/manifest.git -b eclair
Hello verybody i have a similar error when porting cwm for my pantech im-a650s. i've googled, i found nothing...Anyone can help me?
Code:
[email protected]:~/android/system$ sudo make -j4 recoveryImage
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.3.7
TARGET_PRODUCT=full
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=GINGERBREAD
============================================
find: `out/target/common/docs/gen': No such file or directory
find: `out/target/common/docs/gen': No such file or directory
find: `out/target/common/docs/gen': No such file or directory
find: `out/target/common/docs/gen': No such file or directory
find: `out/target/common/docs/gen': No such file or directory
make: *** No rule to make target `recoveryImage'. Stop.
nguyenhonganh said:
Hello verybody i have a similar error when porting cwm for my pantech im-a650s. i've googled, i found nothing...Anyone can help me?
[email protected]:~/android/system$ sudo make -j4 recoveryImage
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.3.7
TARGET_PRODUCT=full
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=GINGERBREAD
============================================
find: `out/target/common/docs/gen': No such file or directory
find: `out/target/common/docs/gen': No such file or directory
find: `out/target/common/docs/gen': No such file or directory
find: `out/target/common/docs/gen': No such file or directory
find: `out/target/common/docs/gen': No such file or directory
make: *** No rule to make target `recoveryImage'. Stop.
Click to expand...
Click to collapse
Please post a new thread in Android General for this.
Steam development
Although I'm been in a long hiatus, thanks to hardcore there are still a few out there who use an UTLK based kernel. I hope Steam will be as succesfull as ULTK was.
To achieve this there were some developments in ULTK (now named Steam).
1. Steam is now one big file, containing multiple applications. This is mainly to minimize the amount of libc's on an initramfs (and this feat is actually achieved)
2. As steam is now one file there are no more bash scripts. Pre and post-init is now written in C, which has the added benefit of being able to use C libraries, like the (now multitouch capable) ui library of the recovery. Checking logs on what went wrong was never been easier.
3. init.rc and recovery.rc are now modified on-the-fly, possibly making the work to get Steam work on stock kernels easier
4. Steam uses config variables (just like properties on android) to communicate. There are already more uses of config variables inside the code than the gui actually allows one to use.
5. Localization strings are separated into separate files, to make translation easier (no accent support in the font however)
6. Device specific stuff are moved into separate files too.
7. There is now also an oem.c where one could add additional code that gets run, when steam is installed, upgraded or uninstalled. Currently the default config is to load up Afterburner after installation.
8. Afterburner is a simple application inside the recovery, which shows a list of installable elements, where the user can chose which ones to install. This is like
giving them a lot of update.zip's, only in one easy to use place.
9. All source files are now put inside into an organization on github. If you want to help me develop this project, please drop me a message, and I'll add you to the developer list.
10. (anything else I might have forgotten)
If you have any questions considering the development of Steam, plase drop a line. Thanks!
Compiler script, for Steam 2.9.9.0: Compiler Script
Compiler script for Steam 2.9.9.1 (and upward): Compiler Script
with this you can write:
Code:
TARGET_DEVICE=ns-on-sgs-i9000 ./install.sh
to compile for the gingerbread port instead of the default sgs one.
shouldn't line 74 be
Code:
cd ../ns-on-sgs-i9000
in the compiler for 2.9.9.1
thanks, is there any device-dependant or hardcoded code that we should modify to implement on different devices?
luismanson said:
thanks, is there any device-dependant or hardcoded code that we should modify to implement on different devices?
Click to expand...
Click to collapse
First you should set the correct vendor in Android/vendor directory. It's not really needed for Steam to work. but if you're doing some other Android compiling it's useful. The compiler script will run for the "galaxys" vendor, you have to change it too, if you have changed the vendor.
Apart from this a lot of device specific code is inside Android/bootable/steam/recovery/device/*
Check the current two device there. I don't yet have a script that will automate device building, so you have to modify the Android.mk there to actually use the new device.
mascool said:
shouldn't line 74 be
Code:
cd ../ns-on-sgs-i9000
in the compiler for 2.9.9.1
Click to expand...
Click to collapse
Oh, yeah, fixed.
any ideas here?
Code:
build/core/base_rules.mk:455: warning: overriding commands for target `out/target/product/galaxys/utilities/dump_image'
build/core/base_rules.mk:455: warning: ignoring old commands for target `out/target/product/galaxys/utilities/dump_image'
build/core/dynamic_binary.mk:113: warning: overriding commands for target `out/target/product/galaxys/symbols/utilities/dump_image'
build/core/dynamic_binary.mk:113: warning: ignoring old commands for target `out/target/product/galaxys/symbols/utilities/dump_image'
build/core/base_rules.mk:455: warning: overriding commands for target `out/target/product/galaxys/utilities/flash_image'
build/core/base_rules.mk:455: warning: ignoring old commands for target `out/target/product/galaxys/utilities/flash_image'
build/core/dynamic_binary.mk:113: warning: overriding commands for target `out/target/product/galaxys/symbols/utilities/flash_image'
build/core/dynamic_binary.mk:113: warning: ignoring old commands for target `out/target/product/galaxys/symbols/utilities/flash_image'
build/core/base_rules.mk:455: warning: overriding commands for target `out/target/product/galaxys/utilities/erase_image'
build/core/base_rules.mk:455: warning: ignoring old commands for target `out/target/product/galaxys/utilities/erase_image'
build/core/dynamic_binary.mk:113: warning: overriding commands for target `out/target/product/galaxys/symbols/utilities/erase_image'
build/core/dynamic_binary.mk:113: warning: ignoring old commands for target `out/target/product/galaxys/symbols/utilities/erase_image'
No private recovery resources for TARGET_DEVICE galaxys
target thumb C: libsteam_crypto <= bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/cbc_cksm.c
In file included from bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/des_locl.h:83,
from bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/cbc_cksm.c:59:
external/openssl/include/openssl/des.h:66:2: error: #error DES is disabled.
In file included from external/openssl/include/openssl/des.h:101,
from bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/des_locl.h:83,
from bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/cbc_cksm.c:59:
external/openssl/include/openssl/des_old.h:97:2: error: #error DES is disabled.
make: *** [out/target/product/galaxys/obj/STATIC_LIBRARIES/libsteam_crypto_intermediates/../../../../external/openssl/crypto/des/cbc_cksm.o] Error 1
cp out/target/product/galaxys/system/bin/steam /home/kernel/share/steam
cp out/target/product/galaxys/system/bin/steam /home/kernel/initramfs/out/sbin/steam
End of script
luismanson said:
any ideas here?
Code:
build/core/base_rules.mk:455: warning: overriding commands for target `out/target/product/galaxys/utilities/dump_image'
build/core/base_rules.mk:455: warning: ignoring old commands for target `out/target/product/galaxys/utilities/dump_image'
build/core/dynamic_binary.mk:113: warning: overriding commands for target `out/target/product/galaxys/symbols/utilities/dump_image'
build/core/dynamic_binary.mk:113: warning: ignoring old commands for target `out/target/product/galaxys/symbols/utilities/dump_image'
build/core/base_rules.mk:455: warning: overriding commands for target `out/target/product/galaxys/utilities/flash_image'
build/core/base_rules.mk:455: warning: ignoring old commands for target `out/target/product/galaxys/utilities/flash_image'
build/core/dynamic_binary.mk:113: warning: overriding commands for target `out/target/product/galaxys/symbols/utilities/flash_image'
build/core/dynamic_binary.mk:113: warning: ignoring old commands for target `out/target/product/galaxys/symbols/utilities/flash_image'
build/core/base_rules.mk:455: warning: overriding commands for target `out/target/product/galaxys/utilities/erase_image'
build/core/base_rules.mk:455: warning: ignoring old commands for target `out/target/product/galaxys/utilities/erase_image'
build/core/dynamic_binary.mk:113: warning: overriding commands for target `out/target/product/galaxys/symbols/utilities/erase_image'
build/core/dynamic_binary.mk:113: warning: ignoring old commands for target `out/target/product/galaxys/symbols/utilities/erase_image'
No private recovery resources for TARGET_DEVICE galaxys
target thumb C: libsteam_crypto <= bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/cbc_cksm.c
In file included from bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/des_locl.h:83,
from bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/cbc_cksm.c:59:
external/openssl/include/openssl/des.h:66:2: error: #error DES is disabled.
In file included from external/openssl/include/openssl/des.h:101,
from bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/des_locl.h:83,
from bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/cbc_cksm.c:59:
external/openssl/include/openssl/des_old.h:97:2: error: #error DES is disabled.
make: *** [out/target/product/galaxys/obj/STATIC_LIBRARIES/libsteam_crypto_intermediates/../../../../external/openssl/crypto/des/cbc_cksm.o] Error 1
cp out/target/product/galaxys/system/bin/steam /home/kernel/share/steam
cp out/target/product/galaxys/system/bin/steam /home/kernel/initramfs/out/sbin/steam
End of script
Click to expand...
Click to collapse
try compiling using the compiler script, that uses the choosecombo and make command. I use the Android base 2.2.1 for compilation. Somehow DES get's disabled in a config file, I don't which one that might be (hopefully it's not one of mine... )
i was doing it manually and now with your script, also got the sources again. yet i have the same problem
Code:
target thumb C: libsteam_crypto <= bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/cbc_cksm.c
target thumb C: libsteam_crypto <= bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/cbc_enc.c
target thumb C: libsteam_crypto <= bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/cfb64enc.c
In file included from bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/des_locl.h:83,
from bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/cbc_cksm.c:59:
external/openssl/include/openssl/des.h:66:2: error: #error DES is disabled.
In file included from external/openssl/include/openssl/des.h:101,
from bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/des_locl.h:83,
from bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/cbc_cksm.c:59:
external/openssl/include/openssl/des_old.h:97:2: error: #error DES is disabled.
make: *** [out/target/product/generic/obj/STATIC_LIBRARIES/libsteam_crypto_intermediates/../../../../external/openssl/crypto/des/cbc_cksm.o] Error 1
make: *** Waiting for unfinished jobs....
In file included from bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/des_locl.h:83,
from bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/cfb64enc.c:59:
external/openssl/include/openssl/des.h:66:2: error: #error DES is disabled.
In file included from external/openssl/include/openssl/des.h:101,
from bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/des_locl.h:83,
from bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/cfb64enc.c:59:
external/openssl/include/openssl/des_old.h:97:2: error: #error DES is disabled.
In file included from bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/des_locl.h:83,
from bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/ncbc_enc.c:64,
from bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/cbc_enc.c:61:
external/openssl/include/openssl/des.h:66:2: error: #error DES is disabled.
In file included from external/openssl/include/openssl/des.h:101,
from bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/des_locl.h:83,
from bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/ncbc_enc.c:64,
from bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/des/cbc_enc.c:61:
external/openssl/include/openssl/des_old.h:97:2: error: #error DES is disabled.
make: *** [out/target/product/generic/obj/STATIC_LIBRARIES/libsteam_crypto_intermediates/../../../../external/openssl/crypto/des/cbc_enc.o] Error 1
make: *** [out/target/product/generic/obj/STATIC_LIBRARIES/libsteam_crypto_intermediates/../../../../external/openssl/crypto/des/cfb64enc.o] Error 1
[email protected]:~/android/i9000B/froyo/Android$
I have the same problem with android source code 2.2.1
when I change openssl to 2.3, i get the below error.
Code:
target thumb C: libsteam_crypto <= bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/cversion.c
target thumb C: libsteam_crypto <= bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/dyn_lck.c
bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/dyn_lck.c:171:4: error: #error "Inconsistency between crypto.h and cryptlib.c"
bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/dyn_lck.c:184: error: expected '=', ',', ';', 'asm' or '__attribute__' before '*' token
bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/dyn_lck.c: In function 'CRYPTO_get_new_lockid':
bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/dyn_lck.c:212: error: 'app_locks' undeclared (first use in this function)
bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/dyn_lck.c:212: error: (Each undeclared identifier is reported only once
bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/dyn_lck.c:212: error: for each function it appears in.)
bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/dyn_lck.c: In function 'CRYPTO_set_dynlock_lock_callback':
bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/dyn_lck.c:404: warning: implicit declaration of function 'int_CRYPTO_set_do_dynlock_callback'
bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/dyn_lck.c: In function 'CRYPTO_get_lock_name':
bootable/steam/cryptsetup/crypto/../../../../external/openssl/crypto/dyn_lck.c:423: error: 'app_locks' undeclared (first use in this function)
make: *** [out/target/product/galaxys/obj/STATIC_LIBRARIES/libsteam_crypto_intermediates/../../../../external/openssl/crypto/dyn_lck.o] Error 1
Hi,
I have found the problem...
in bootable/steam/crypto/android-config.mk, many things has been disabled.
Code:
LOCAL_CFLAGS += -DOPENSSL_NO_MD5 -DOPENSSL_NO_MD4 -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_DSA -DOPENSSL_NO_ECDSA \
-DOPENSSL_NO_MDC2 -DOPENSSL_NO_RIPEMD -DOPENSSL_NO_SHA256 -DOPENSSL_NO_SHA512 \
-DOPENSSL_NO_DES -DOPENSSL_NO_RC4 -DOPENSSL_NO_IDEA -DOPENSSL_NO_SEED -DOPENSSL_NO_RC2 \
-DOPENSSL_NO_BF -DOPENSSL_NO_CAST -DOPENSSL_NO_RC5 -DOPENSSL_NO_CAMELLIA
Hi bro sztupy,
If I delete those error detection in the SSL source code, is there any problem? for example
Code:
#ifdef OPENSSL_NO_DES
#error DES is disabled.
#endif
sorry for my lousy english.
why dont you try removing -DOPENSSL_NO_DES
luismanson said:
why dont you try removing -DOPENSSL_NO_DES
Click to expand...
Click to collapse
After removing -DOPENSSL_NO_DES, still have many errors.
after remove one by one, i found that the below option can be compile without error
Code:
LOCAL_CFLAGS += -DOPENSSL_NO_DEPRECATED -DOPENSSL_NO_ECDSA -DOPENSSL_NO_MDC2 -DOPENSSL_NO_SHA256 -DOPENSSL_NO_SHA512 -DOPENSSL_NO_IDEA -DOPENSSL_NO_SEED -DOPENSSL_NO_BF -DOPENSSL_NO_CAST -DOPENSSL_NO_RC5 -DOPENSSL_NO_CAMELLIA
thanks, i will use this option unless the OP says something before im @ home
Hi,
I am trying to translate steam recovery to chinese, but after compile, all of the chinese character cannot show(become blank) in steam recovery.
is there any way to display Unicode or add the character encoding?
I am newbie in C programming...
Hello and welcome,
I have a HTC wildfire, Kernel 2.6.29-something.
I downloaded the offical NDK and the offical kernel version from htcdev.
I set the path variable for CROSS_COMPILE and started doing a make.
There are tons of errors ...
The original kernel does not seem to compile - I may post some errors:
CHK include/linux/version.h
make[1]: `include/asm-arm/mach-types.h' is up to date.
CHK include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-arm
CALL scripts/checksyscalls.sh
<stdin>:1097:2: warning: #warning syscall fadvise64 not implemented
<stdin>:1265:2: warning: #warning syscall migrate_pages not implemented
<stdin>:1321:2: warning: #warning syscall pselect6 not implemented
<stdin>:1325:2: warning: #warning syscall ppoll not implemented
<stdin>:1365:2: warning: #warning syscall epoll_pwait not implemented
CHK include/linux/compile.h
dnsdomainname: Name or service not known
CC drivers/i2c/chips/mt9t013.o
drivers/i2c/chips/mt9t013.c:33:28: error: mach/msm_iomap.h: No such file or directory
drivers/i2c/chips/mt9t013.c:34:32: error: mach/msm_rpcrouter.h: No such file or directory
drivers/i2c/chips/mt9t013.c:35:23: error: mach/vreg.h: No such file or directory
drivers/i2c/chips/mt9t013.c: In function 'mt9t013_sensor_init':
drivers/i2c/chips/mt9t013.c:459: error: dereferencing pointer to incomplete type
drivers/i2c/chips/mt9t013.c:461: error: dereferencing pointer to incomplete type
drivers/i2c/chips/mt9t013.c:465: error: dereferencing pointer to incomplete type
drivers/i2c/chips/mt9t013.c:469: error: dereferencing pointer to incomplete type
drivers/i2c/chips/mt9t013.c:471: error: dereferencing pointer to incomplete type
drivers/i2c/chips/mt9t013.c:473: error: dereferencing pointer to incomplete type
drivers/i2c/chips/mt9t013.c:474: error: dereferencing pointer to incomplete type
drivers/i2c/chips/mt9t013.c:490: error: dereferencing pointer to incomplete type
drivers/i2c/chips/mt9t013.c:495: error: dereferencing pointer to incomplete type
drivers/i2c/chips/mt9t013.c:497: error: dereferencing pointer to incomplete type
drivers/i2c/chips/mt9t013.c:498: error: dereferencing pointer to incomplete type
drivers/i2c/chips/mt9t013.c: In function 'mt9t013_sensor_suspend':
drivers/i2c/chips/mt9t013.c:529: error: dereferencing pointer to incomplete type
drivers/i2c/chips/mt9t013.c: In function 'mt9t013_open':
drivers/i2c/chips/mt9t013.c:541: error: dereferencing pointer to incomplete type
drivers/i2c/chips/mt9t013.c: In function 'mt9t013_release':
drivers/i2c/chips/mt9t013.c:567: error: dereferencing pointer to incomplete type
drivers/i2c/chips/mt9t013.c: In function 'mt9t013_camif_pad_reg_reset':
drivers/i2c/chips/mt9t013.c:600: error: 'MSM_MDC_BASE' undeclared (first use in this function)
drivers/i2c/chips/mt9t013.c:600: error: (Each undeclared identifier is reported only once
drivers/i2c/chips/mt9t013.c:600: error: for each function it appears in.)
drivers/i2c/chips/mt9t013.c: In function 'mt9t013_ioctl':
drivers/i2c/chips/mt9t013.c:689: error: 'MSM_MDC_BASE' undeclared (first use in this function)
drivers/i2c/chips/mt9t013.c:709: error: 'MSM_CLK_CTL_BASE' undeclared (first use in this function)
drivers/i2c/chips/mt9t013.c: In function 'mt9t013_lens_power':
drivers/i2c/chips/mt9t013.c:821: error: dereferencing pointer to incomplete type
drivers/i2c/chips/mt9t013.c:823: error: dereferencing pointer to incomplete type
drivers/i2c/chips/mt9t013.c:825: error: dereferencing pointer to incomplete type
drivers/i2c/chips/mt9t013.c:826: error: dereferencing pointer to incomplete type
drivers/i2c/chips/mt9t013.c: In function 'mt9t013_remove':
drivers/i2c/chips/mt9t013.c:1301: warning: 'i2c_detach_client' is deprecated (declared at include/linux/i2c.h:435)
drivers/i2c/chips/mt9t013.c: At top level:
drivers/i2c/chips/mt9t013.c:1322: warning: 'struct platform_device' declared inside parameter list
drivers/i2c/chips/mt9t013.c:1322: warning: its scope is only this definition or declaration, which is probably not what you want
drivers/i2c/chips/mt9t013.c: In function 'mt9t013_plat_probe':
drivers/i2c/chips/mt9t013.c:1326: error: dereferencing pointer to incomplete type
drivers/i2c/chips/mt9t013.c:1329: error: dereferencing pointer to incomplete type
drivers/i2c/chips/mt9t013.c: At top level:
drivers/i2c/chips/mt9t013.c:1335: error: variable 'mt9t013_plat_driver' has initializer but incomplete type
drivers/i2c/chips/mt9t013.c:1336: error: unknown field 'probe' specified in initializer
drivers/i2c/chips/mt9t013.c:1336: warning: excess elements in struct initializer
drivers/i2c/chips/mt9t013.c:1336: warning: (near initialization for 'mt9t013_plat_driver')
drivers/i2c/chips/mt9t013.c:1337: error: unknown field 'driver' specified in initializer
drivers/i2c/chips/mt9t013.c:1337: error: extra brace group at end of initializer
drivers/i2c/chips/mt9t013.c:1337: error: (near initialization for 'mt9t013_plat_driver')
drivers/i2c/chips/mt9t013.c:1340: warning: excess elements in struct initializer
drivers/i2c/chips/mt9t013.c:1340: warning: (near initialization for 'mt9t013_plat_driver')
drivers/i2c/chips/mt9t013.c: In function 'mt9t013_init':
drivers/i2c/chips/mt9t013.c:1345: error: implicit declaration of function 'platform_driver_register'
make[3]: *** [drivers/i2c/chips/mt9t013.o] Error 1
make[2]: *** [drivers/i2c/chips] Error 2
make[1]: *** [drivers/i2c] Error 2
make: *** [drivers] Error 2
Click to expand...
Click to collapse
Could someone please tell me how to get this kernel to work?
To be honest I only need the kernel to be compiled, so that my C-module can get compiled for this kernel.
Thanks for your help.
Kind regards
post this thing to androidstack website. may be there u can get better answers.
Sent from my HTC Wildfire using xda app-developers app
make 100% sure you have installed all the files needed to compile kernels. Look at a few kernel compiling guides and install everything.
Otherwise try a different cross compiler, such as GCC 4.4.3 as this is the safest option
I am having a problem building MoKee ROM for the asus zenfone 2 Z00A.
This is what I get:
Code:
target C++: libhealthd.mofd_v1 <= device/asus/mofd-common/libhealthd/healthd_board_mofd_v1.cpp
device/asus/mofd-common/libhealthd/healthd_board_mofd_v1.cpp: In function 'int mapBatteryStatusString(const char*)':
device/asus/mofd-common/libhealthd/healthd_board_mofd_v1.cpp:26:12: error: 'HEALTHD_MAP_CONTINUE_SEARCH' was not declared in this scope
return HEALTHD_MAP_CONTINUE_SEARCH;
^
device/asus/mofd-common/libhealthd/healthd_board_mofd_v1.cpp: In function 'int mapChargeTypeString(const char*)':
device/asus/mofd-common/libhealthd/healthd_board_mofd_v1.cpp:32:16: error: 'BATTERY_CHARGE_TYPE_FAST_CHARGING' is not a member of 'android'
return android::BATTERY_CHARGE_TYPE_FAST_CHARGING;
^
device/asus/mofd-common/libhealthd/healthd_board_mofd_v1.cpp:34:16: error: 'BATTERY_CHARGE_TYPE_UNKNOWN' is not a member of 'android'
return android::BATTERY_CHARGE_TYPE_UNKNOWN;
^
device/asus/mofd-common/libhealthd/healthd_board_mofd_v1.cpp: In function 'void healthd_board_init(healthd_config*)':
device/asus/mofd-common/libhealthd/healthd_board_mofd_v1.cpp:39:13: error: 'struct healthd_config' has no member named 'batteryChargeTypePath'
config->batteryChargeTypePath = "/sys/class/power_supply/battery/status";
^
device/asus/mofd-common/libhealthd/healthd_board_mofd_v1.cpp:40:13: error: 'struct healthd_config' has no member named 'mapBatteryStatusString'
config->mapBatteryStatusString = mapBatteryStatusString;
^
device/asus/mofd-common/libhealthd/healthd_board_mofd_v1.cpp:41:13: error: 'struct healthd_config' has no member named 'mapChargeTypeString'
config->mapChargeTypeString = mapChargeTypeString;
hint: I am new to building.
Closed per OP request
So i need to build a modified kernel to patch the usb host driver to hack a nintendo switch.
the patch is here
ive tried 2 kernel sources, here and here
and both are giving the same errors
Code:
CC arch/arm64/kernel/setup.o
arch/arm64/kernel/setup.c: In function 'c_show':
arch/arm64/kernel/setup.c:643:38: error: 'system_rev' undeclared (first use in this function)
seq_printf(m, "Revision\t: %04x\n", system_rev);
^
arch/arm64/kernel/setup.c:643:38: note: each undeclared identifier is reported only once for each function it appears in
arch/arm64/kernel/setup.c:645:4: error: 'system_serial_high' undeclared (first use in this function)
system_serial_high, system_serial_low);
^
arch/arm64/kernel/setup.c:645:24: error: 'system_serial_low' undeclared (first use in this function)
system_serial_high, system_serial_low);
^
scripts/Makefile.build:257: recipe for target 'arch/arm64/kernel/setup.o' failed
make[1]: *** [arch/arm64/kernel/setup.o] Error 1
Makefile:964: recipe for target 'arch/arm64/kernel' failed
make: *** [arch/arm64/kernel] Error 2
the variables i set are:
Code:
$echo $CROSS_COMPILE
/home/xxxx/Android/Sdk/ndk-bundle/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-
$echo $ARCH
arm64
for a config i used
Code:
arch/arm64/configs/msm8937_defconfig
set all "NEW" options to defaults. its my first kernel build, i have no idea what most of it is /shrug
if anyone can give me some tips or a .config that works, would be very much appreciated. i havent had any luck googling the errors yet