I am trying to port SailfishOS to the Asus Zenfone 2 (Z00A) which has an x86 cpu.
I got up to point 7.2.1 in this: https://sailfishos.org/wp-content/uploads/2016/10/SailfishOS-HardwareAdaptationDevelopmentKit-1.1.2.pdf
Running rpm/dhd/helpers/build_packages.sh gives me the following error:
Code:
Exit reason and status: signal 6 (core dumped)
Exit reason and status: signal 6 (core dumped)
!! command failed at Tue Nov 22 19:23:06 UTC 2016, dying...
Looking through the files, I found out it was caused by the following command:
Code:
mb2 -t $VENDOR-$DEVICE-$ARCH -s rpm/droid-hal-$DEVICE.spec build
which gives the first 2 lines of the error above.
From there something lead me to believe that it was related to sb2.
I set up sb2 using the following command:
Code:
sb2-init -d -L "--sysroot=/" -C "--sysroot=/" \
-m sdk-build \
-n -N -t / $VENDOR-$DEVICE-$PORT_ARCH \
/opt/cross/bin/i486-meego-linux-gnu-gcc
I use i486 as PORT_ARCH
EDIT: installing the i486 toolchain using
Code:
sdk-manage --toolchain --install Mer-SB2-i486
and then changing the toolchain from
/usr/bin/gcc
to
/opt/cross/bin/i486-meego-linux-gnu-gcc fixed it.
My questions are:
--How do I properly set-up sb2 for x86?
--How do I solve the error?
--Where can I get more information related to porting SailfishOS to x86 hardware?
Related
This is a guide to build your own CM7 on Mac OSX Lion. I can't guarantee 100% that this will work for everyone, but it worked for me. I want to thank Paul from Modaco, CyanogenMod team, Batista Harahap, ahbeng, and anyone else I can't remember atm.
1. Download and install Xcode, Java Mac OS X 10.5 SDK (later versions don't seem to work)
2. I recommend uninstalling existing MacPorts (using the codes below) and then install a fresh copy just to be safe.
Code:
$ sudo port -fp uninstall --follow-dependents installed
$ sudo rm -rf /opt/local /Applications/DarwinPorts /Applications/MacPorts /Library/LaunchDaemons/org.macports.* /Library/Receipts/DarwinPorts*.pkg /Library/Receipts/MacPorts*.pkg /Library/StartupItems/DarwinPortsStartup /Library/Tcl/darwinports1.0 /Library/Tcl/macports1.0 ~/.macports
3. Follow these steps below to teleport String errors at compile time
Code:
$ sudo vi /opt/local/etc/macports/sources.conf
* press ]]
* press i
* Append # at the beginning of the line
* Press Enter
* Add the following lines
Code:
file:///Users/Shared/dports
rsync://rsync.macports.org/release/ports/
* Press Esc
* Type :wq and press enter
4. Update Macports and install the necessary packages and revert gmake to 3.81 (This takes a long time)
Code:
$ sudo port selfupdate
$ POSIXLY_CORRECT=1 sudo port install gmake libsdl git-core gnupg e2fsprogs gsed curl libiptcdata xorg-libX* pngcrush findutils
$ sudo ln -s /opt/local/bin/gsed /opt/local/bin/sed
$ sudo ln -s /opt/local/libexec/gnubin/find /opt/local/bin/find
$ vi /opt/local/etc/macports/sources.conf
$ mkdir /Users/Shared/dports
$ cd /Users/Shared/dports
$ svn co --revision 50980 http://svn.macports.org/repository/macports/trunk/dports/devel/gmake/ devel/gmake/
$ portindex /Users/Shared/dports
$ sudo port install gmake @3.81
5. comment a line in one of Darwin’s C Library to get rid of compile time errors
Code:
$ sudo vi /usr/include/string.h
* Press :143
* Press i
* Append //
* Press Esc
* Type :wq!
* Press enter
6. Add a symlink for 10.5 SDKs
Code:
$ sudo ln -s /Developer/SDKs/MacOSX10.6.sdk /Developer/SDKs/MacOSX10.5.sdk
7. Create a sparseimage with a Case Sensitive FS
a. Open the Disk Utility (/Applications/Utilities/Disk Utility.app).
b. Click on New Image.
c. Save as "cyanogenmod.sparseimage" and set the following parameters as followed:
d. Name: "cyanogenmod"
e. Size: 15 GB is minimum recommended (A sparseimage will save unused space)
f. Format: Mac OS Extended (CASE-SENSITIVE, Journaled)
g. Encryption: none, Partition- Single Apple Partition Map
h. Image Format: Sparse Disk Image (this will save you disk space)
i. Save this wherever you like, and then double-click the sparseimage file to mount.
j. Your workspace will be: /Volumes/cyanogenmod/
8. Macports version of e2fsprogs will fail to compile, download the source and compile it yourself
Code:
$ mkdir -p ~/src
$ cd ~/src
$ git clone http://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
$ cd e2fsprogs
$ ./configure --prefix=/opt/local
$ make -j4 && sudo make install
9. Set up the pre-requisites for CyanogenMod to compile, there are
Code:
$ cd /Volumes/cyanogenMod
$ mkdir -p bin
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > bin/repo
$ chmod a+x bin/repo
$ mkdir -p android/system/
$ PATH=${PATH}:/Volumes/cyanogenmod/bin:
$ echo "PATH=\${PATH}:/Volumes/cyanogenmod/bin:" >> ~/.profile
10. Clone CyanogenMod repository into our sparse image (This takes a long time)
Code:
$ cd /Volumes/cyanogenmod/android/system
$ repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
$ repo sync
11. Now to get all closed source binaries from the device and into our device build folder (replace *company* and *model* with the device you want e.g. /lge/p990)
Code:
$ cd /Volumes/cyanogenmod/android/system/device/*company*/*model*
$ ./extract-files.sh
12. ROMManager is a requirement for CyanogenMod
Code:
$ /Volumes/cyanogenmod/android/system/vendor/cyanogen/get-rommanager
13. edit cm source to make it compile on lion
Add lines in red to android/system/external/elfutils/config-compat-darwin.h:
Code:
[COLOR="Red"]#if __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070
[/COLOR]
static inline size_t strnlen (const char *__string, size_t __maxlen)
{
int len = 0;
while (__maxlen-- && *__string++)
len++;
return len;
}
[COLOR="red"]#endif[/COLOR]
Comment out every line in android/system/external/qemu/Android.mk:
Code:
# the following test is made to detect that we were called
# through the 'm' or 'mm' build commands. if not, we use the
# standard QEMU Makefile
#
#ifeq ($(DEFAULT_GOAL),droid)
# LOCAL_PATH:= $(call my-dir)
# include $(LOCAL_PATH)/Makefile.android
#else
# include Makefile.qemu
#endif
14. Now here comes the real fun, let’s compile CyanogenMod. (replace *model* with the device you want e.g. cyanogen_p990)
Code:
$ cd /Volumes/gingerbread/android/system/
$ cp ./vendor/cyanogen/products/cyanogen_*model*.mk ./buildspec.mk
$ . build/envsetup.sh
$ lunch cyanogen_*model*-eng
$ make -j`sysctl -an hw.logicalcpu` bacon
If the build was successful, there should be an update-cm-X.X.X-RC0-KANG-signed.zip in the /android/system/out/target/product/*model* folder.
If you were successful, go get yourself a treat.
Build-kernel
Building Kernel only from Oppo Source
"Official Oppo Find 5 kernel source":https://github.com/oppo-source/Find5-Kernel-Source
EDIT: the 12025_release_defconfig doesn't work for me (touchscreen doesn't respond). Most likely a change needs to be made here
Code:
446,447c436,437
< CONFIG_TOUCHSCREEN_MELFAS=y
< CONFIG_TOUCHSCREEN_SYNAPTICS_S3202_I2C_RMI=y
---
> CONFIG_TOUCHSCREEN_ATMEL_MXT=y
> CONFIG_TOUCHSCREEN_CYTTSP_I2C_QC=y
Check out the source code
Code:
git clone git://github.com/oppo-source/Find5-Kernel-Source.git
Using +12025_debug_defconfig+ as config. You can use +12025_release_defconfig+ , with some modifications to the source to make it work properly
Code:
cd Find5-Kernel-Source
make ARCH=arm clean
make ARCH=arm 12025_debug_defconfig
edit include/config/kernel.release
if you want to modify the kernel version numbering
Build
Code:
make -j4 ARCH=arm CROSS_COMPILE=arm-eabi-
or use this following (uses as many cores as your computer has
Code:
make -j$(grep -c ^processor /proc/cpuinfo) ARCH=arm CROSS_COMPILE=arm-eabi-
\n if you want to use the +12025_release_defconfig+, there are some config problems. I have fixed them in my github
My github (use the branch [*]config-fixes): https://github.com/ngvincent/android-kernel-oppo-find5
The end, you'll get two files (Image and zImage) inside arch/arm/boot
Image = full kernel image, zImage = compressed version
*_The boot partition has ~10MB of space(see bottom of page for details). Make sure your kernel+ramdisk doesn't exceed this_*
Make boot.img file (need to add ramdisk)
Copy the ramdisk from existing device or ROM. "Here":https://git.ngvincent.com/attachments/download/5/ramdisk.gz is one I extracted from the X909EN_13_130307 rom
Extracting kernel from device
Code:
adb shell
su
dd if=/dev/block/mmcblk0p18 of=/sdcard/boot.img
exit
adb pull /sdcard/boot.img
Extracting from boot.img
Code:
abootimg -x boot.img
Making boot.img
Copy the stuff below into a file called bootimg.cfg (gives the configuration for abootimg to create the img properly)
Code:
bootsize =
pagesize = 0x800
kerneladdr = 0x80208000
ramdiskaddr = 0x82200000
secondaddr = 0x81100000
tagsaddr = 0x80200100
name =
cmdline = console=ttyHSL0,115200,n8 androidboot.hardware=qcom user_debug=31 msm_rtb.filter=0x3F ehci-hcd.park=3
Code:
abootimg --create bootimage.img -f bootimg.cfg -k zImage -r ramdisk.gz
Flash kernel onto device
You'll need to use fastboot to do it. I need to sudo as root for fastboot to work properly
Code:
adb reboot bootloader
sudo -s
fastboot devices
fastboot flash boot bootimage.img
fastboot reboot
verify
Code:
adb shell
cat /proc/version
Linux version 3.4.0-perf-g5d91181 ([email protected]) (gcc version 4.4.3 (GCC) ) [*]1 SMP PREEMPT Sat Mar 16 13:29:19 EDT 2013
partition space on the device
Code:
adb shell
cat /proc/partitions
Code:
179 18 10240 mmcblk0p18
Code:
[email protected]:/dev/block/platform/msm_sdcc.1/by-name $ ls -la
lrwxrwxrwx root root 1970-01-16 12:58 DDR -> /dev/block/mmcblk0p15
lrwxrwxrwx root root 1970-01-16 12:58 aboot -> /dev/block/mmcblk0p17
lrwxrwxrwx root root 1970-01-16 12:58 boot -> /dev/block/mmcblk0p18
Looks like there's plenty of space for the kernel/boot.img - 10240 kilobytes
Thanks for this. While this is way beyond my skill level, I'm glad the info is available. I'm slowing scratching the surface.. just recently learned how to build Nightlies! Thanks
Sent from my X909 using Tapatalk 2
Coreym said:
just recently learned how to build Nightlies! Thanks
Sent from my X909 using Tapatalk 2
Click to expand...
Click to collapse
are you planning on making nightlies for the oppo ?
CoopZor said:
are you planning on making nightlies for the oppo ?
Click to expand...
Click to collapse
I think kAmMa is working on CM right now? So hopefully we will have the CM Rom to install on the Find 5 in the near future. I know he said that he almost had it complete but was having problems with the drivers for the display and needed the drivers from the source code. Now that the source code has been released we might see something good soon. I don't know if his CM will be the official CM release though. We do need an official CM for the Find 5 though.
Personally, I would like to see Paranoid Android 3+ on the Find 5 as its my favorite rom, and it would be amazing on the Find 5. I use it as my daily on my Nexus 4 and 7 and both run great!
This is out of my league also, I wish I could build some good kernels and Roms. I will beta test Roms and Kernels if anyone needs me too though.
Coreym said:
Thanks for this. While this is way beyond my skill level, I'm glad the info is available. I'm slowing scratching the surface.. just recently learned how to build Nightlies! Thanks
Sent from my X909 using Tapatalk 2
Click to expand...
Click to collapse
once you get the hang of linux build tools, the next part is rather easy
I'm porting over the changes that faux123 made in his kernel for the Nexus 4 (same Qualcomm S4Pro APQ8064 processor+SoC)...
finished reading his mods for voltage control, i'll probably slicing in the code tomorrow...
I'm not touching CM10 (or AOKP/Paranoid...) porting yet... had some experience with kernel development a few years ago, but not for android porting...
error when run Command
I got error when run Command : make ARCH=arm clean , how can I fix it?
PHP:
[email protected]:~/aosp/kernel/Find5-4.2-kernel-source-master$ make ARCH=arm clean
scripts/Makefile.clean:17: /home/war/aosp/kernel/Find5-4.2-kernel-source-master/drivers/networkpmsmodule/Makefile: No such file or directory
make[2]: *** No rule to make target `/home/war/aosp/kernel/Find5-4.2-kernel-source-master/drivers/networkpmsmodule/Makefile'. Stop.
make[1]: *** [drivers/networkpmsmodule] Error 2
make: *** [_clean_drivers] Error 2
#### make failed to build some targets (1 seconds) ####
Hi,
I downloaded the LG G2 kernel source from https://www.lg.com/global/support/opensource/opensourceList?types=ALL&search=D802.
I followed the instructions in the readme:
Code:
2. Kernel Build
- Uncompress using following command at the android directory
tar xvzf LG-D802(G2)_Android_JB_D802_10a_Kernel.tar.gz
- When you compile the kernel source code, you have to add google original prebuilt source(toolchain) into the android directory.
- Run following scripts to build kernel
a) cd kernel
b) export PATH=$PATH:tools/lz4demo
c) make ARCH=arm CROSS_COMPILE=../prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi- g2-open_com-perf_defconfig zImage -j4
* "-j4" : The number, 4, is the number of multiple jobs to be invoked simultaneously.
* lz4demo : More information can be found at "https://code.google.com/p/lz4/"
- After build, you can find the build image(zImage) at arch/arm/boot/
I downloaded the prebuilt toolchain from https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6.
This is the exact error message:
Code:
../prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-gcc -Wp,-MD,scripts/mod/.empty.o.d -nostdinc -isystem ../prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi-gcc -print-file-name=include [Errno 8] Exec format error -I/root/kernel/arch/arm/include -Iarch/arm/include/generated -Iinclude -include /root/kernel/include/linux/kconfig.h -D__KERNEL__ -mlittle-endian -Iarch/arm/mach-msm/include -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Werror-implicit-function-declaration -Wno-format-security -fno-delete-null-pointer-checks -O2 -fstack-protector -mabi=aapcs-linux -mno-thumb-interwork -funwind-tables -D__LINUX_ARM_ARCH__=7 -march=armv5t -Wa,-march=armv7-a -msoft-float -Uarm -fomit-frame-pointer -g -DKBUILD_STR(s)=#s -DKBUILD_BASENAME=KBUILD_STR(empty) -DKBUILD_MODNAME=KBUILD_STR(empty) -c -o scripts/mod/.tmp_empty.o scripts/mod/empty.c [Errno 8] Exec format error
I am running a fresh installation of ubuntu 12.04 x86.
Any ideas how to fix this?
Guess I can answer that myself: Android can only be build on 64-bit machines.
Hello to everyone,
I'm trying to boot my Nexus 10 with another kind of kernel version,because I'm not interested to use the Android kernel,but the Ubuntu pure kernel. I've chosen to use the linux-kvm-arm kernel version 3.13 :
These are the commands that I have used :
git clone git://github.com/virtualopensystems/linux-kvm-arm.git
cd linux-kvm-arm
git checkout origin/chromebook-3.13 -b chromebook-3.13
curl http://www.virtualopensystems.com/downloads/guides/kvm_on_chromebook/config > .config
and then I've added these lines to the .config file :
CONFIG_ANDROID=y
CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ASHMEM=y
CONFIG_ANDROID_LOGGER=y
CONFIG_ANDROID_PERSISTENT_RAM=y
CONFIG_ANDROID_RAM_CONSOLE=y
CONFIG_ANDROID_TIMED_OUTPUT=y
CONFIG_ANDROID_TIMED_GPIO is not set
CONFIG_ANDROID_LOW_MEMORY_KILLER=y
CONFIG_ANDROID_SWITCH is not set
CONFIG_ANDROID_INTF_ALARM is not set
CONFIG_FB_TILEBLITTING=y
CONFIG_PHONE is not set
CONFIG_USB_WPAN_HCD is not set
CONFIG_WIMAX_GDM72XX is not set
CONFIG_ARM_PLATFORM_DEVICES=y
CONFIG_ARM_CHROMEOS_FIRMWARE=y
CONFIG_CHROMEOS=y
CONFIG_CHROMEOS_VBC_BLK=y
CONFIG_CHROMEOS_VBC_EC=y
CONFIG_CHROMEOS_RAMOOPS_RAM_START=0x41f00000
CONFIG_CHROMEOS_RAMOOPS_RAM_SIZE=0x00100000
CONFIG_CHROMEOS_RAMOOPS_RECORD_SIZE=0x00020000
CONFIG_CHROMEOS_RAMOOPS_DUMP_OOPS=0x1
CONFIG_CLKDEV_LOOKUP=y
and then I did :
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make uImage dtbs
from here I've followed the tutorial that I've found here :
http://forum.xda-developers.com/showthread.php?t=1981788
and here :
http://forum.xda-developers.com/showthread.php?t=1981788&page=2
mkdir -p newkernel
cd newkernel
wget -c https://dl.google.com/dl/android/aosp/mantaray-kot49h-factory-174ba74f.tgz
tar xvzf mantaray-kot49h-factory-174ba74f.tgz
cd mantaray-kot49h
unzip image-mantaray-kot49h.zip
wget -c http://android-serialport-api.googlecode.com/files/getramdisk.py
chmod +x getramdisk.py
./getramdisk.py boot.img --> ramdisk.img
wget -c http://android-serialport-api.googlecode.com/files/android_bootimg_tools.tar.gz
tar xvf android_bootimg_tools.tar.gz
./mkbootimg --kernel ../../linux-kvm-arm/arch/arm/boot/zImage --ramdisk ramdisk.img --cmdline bootimg.cfg -o new-boot.img
fastboot flash boot new-boot.img
I think that something is wrong here,because it is not able to boot....I see a black screen and nothing else happens...
Hi,
probably too simple, but:
How does your .config look?
Did the curl actually work? (I ask because I tried your URL and it didn't work for me).
Did you actually compile a guest kernel too and boot it?
Special ChromeOS suupport does not exist in that branch.
Keep up the work, if you succeed booting linux, I got a prize for you.
Don't take it wrong, I'm just too bored of the tablet as it is now.
Wejgomi
Miui 8 patch rom release, can someone port it for Nexus 4?
https://github.com/MiCode/patchrom/tree/marshmallow
I need it too...
You should contact to miui support forum or XDA devs, I hope they can build miui 8 for nexus 4
@Trickster22
Install Ubuntu.
Install Java
Guide to configure android SDK
Guide to configure repository:
Open terminal
Code:
mkdir -p ~/bin
Code:
PATH=~/bin:$PATH
Code:
cd ~/bin
Code:
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
Code:
chmod a+x ~/bin/repo
Code:
mkdir ~/patchrom
Code:
cd ~/patchrom
Code:
repo init -u git://github.com/MiCode/patchrom.git -b marshmallow
Now you'll have to configure git. Run following commands in terminal
Code:
git config --global user.email ENTER_YOUR_EMAIL_ID_HERE
Code:
git config --global user.name ENTER_YOUR_REAL_NAME_HERE
Code:
repo init -u git://github.com/MiCode/patchrom.git -b marshmallow
Code:
repo sync
Wait......
after, Install the latest version of Fake nexus (marshmallow), reboot to device in mode recovery (TWRP).
PS.: After you finish generating the stockrom.zip of fake nexus, do the same for cm-13.0-20160820-SNAPSHOT-ZNH5YAO0J5-mako.zip
Reboot your device for recovery, use this comand to gerate stockrom.zip and metadata folder:
Code:
/home/"YOUR-USER-NAME-UBUNTU"/patchrom/tools/releasetools/ota_target_from_phone -r
Sende me stockrom.zip and metadata folder
Source: http://forum.xda-developers.com/android/software/guide-build-port-miui-rom-to-device-t3250984
Dio_S said:
@Trickster22
Install Ubuntu.
Install Java
Guide to configure android SDK
Guide to configure repository:
Open terminal
Code:
mkdir -p ~/bin
Code:
PATH=~/bin:$PATH
Code:
cd ~/bin
Code:
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
Code:
chmod a+x ~/bin/repo
Code:
mkdir ~/patchrom
Code:
cd ~/patchrom
Code:
repo init -u git://github.com/MiCode/patchrom.git -b marshmallow
Now you'll have to configure git. Run following commands in terminal
Code:
git config --global user.email ENTER_YOUR_EMAIL_ID_HERE
Code:
git config --global user.name ENTER_YOUR_REAL_NAME_HERE
Code:
repo init -u git://github.com/MiCode/patchrom.git -b marshmallow
Code:
repo sync
Wait......
after, Install the latest version of Fake nexus (marshmallow), reboot to device in mode recovery (TWRP).
PS.: After you finish generating the stockrom.zip of fake nexus, do the same for cm-13.0-20160820-SNAPSHOT-ZNH5YAO0J5-mako.zip
use this comand to gerate stockrom.zip and metadata folder:
Code:
/home/"YOUR-USER-NAME-UBUNTU"/patchrom/tools/releasetools/ota_target_from_phone -r
Sende me stockrom.zip and metadata folder
Source: http://forum.xda-developers.com/android/software/guide-build-port-miui-rom-to-device-t3250984
Click to expand...
Click to collapse
Thank you sir for this valuable info/guide but I have a weak machine for Ubuntu like only 2 GB ram. This is why I was requesting others to build miui.
Trickster22 said:
Thank you sir for this valuable info/guide but I have a weak machine for Ubuntu like only 2 GB ram. This is why I was requesting others to build miui.
Click to expand...
Click to collapse
You should just generate the stockrom.zip + metadata and send me, I can do it, because I do not have the device
what ıs thıs ?
hasanben35 said:
what ıs thıs ?
Click to expand...
Click to collapse
For me to compile miui, I need the stockrom.zip plus the metadata folder generated by the patchrom, this guide shows how.
Sorry mt english
hım how long does it take
hasanben35 said:
hım how long does it take
Click to expand...
Click to collapse
This process should take around 1 hour if you already have Ubuntu installed and configured
multı rom nıtrogen os 7.1.1 and flyme ınstalled flyme remove ubuntu ınstall after _?
hasanben35 said:
mult? rom n?trogen os 7.1.1 and flyme ?nstalled flyme remove ubuntu ?nstall after _?
Click to expand...
Click to collapse
Ubuntu in PC "Desktop"
oh my god no no no waıtıng rom sorry ubuntu ınstall pc no
Okay, I'll make those files. Where should I send it?