[DEV][ROM[WIP] Ubuntu phone 0.1

astronfestmon

Senior Member
May 18, 2010
306
341
0
Lisbon
Hello There!

Here it goes!

Everything on ubuntu 64 bit

Hi there again. It is time for a rom based on my tutorial. This week I'll release a ROM .

I'll upload into a github my kernel working with ubuntu touch.

Kernel file in bz2 already in code .google.com/p/tizen-kernel-s8500

I'll release the changes on device/samsung/wave folder.

I've made now more patches on kernel 3.4.

It's working with TARGET_NO_KERNEL := true on BoadConfig.mk

1- mkdir touch && cd touch

2 - sudo apt-get install git gnupg flex bison gperf build-essential \
zip bzr curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \
libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \
libgl1-mesa-dev g++-multilib mingw32 tofrodos \
python-markdown libxml2-utils xsltproc zlib1g-dev:i386 schedtool

3- See howto setup phablet tools ppa

4 - sudo apt-get install phablet-tools

5 - phablet-dev-bootstrap -c ~/touch

6 - wait a couple of hours to get all synced sources

7 - get and copy into your ~/touch/device/samsung the device wave

8 - copy and get linux 3.4 and see what are the changes for wave through the wave kernel changes. I'll reply it here which are.

9 - get and copy bada-modem-ril SamsungServiceMode and also vendor wave

9.1 - Get hardware samsung with all exynos - it is need for compiling

10 - Copy them to the respective folders as CM10

11 - create a vendorsetup.sh inside device/samsung/wave with the following:
add_lunch_combo full_wave-userdebug
add_lunch_combo cm_wave-userdebug

12 - export CROSS_COMPILE=arm-eabi-

13 - export PATH=$PATH:/home/youruser/touch/prebuilts/gcc/linux-x86/arm/gcc-4.4.6/bin

14 - export TARGET_PRODUCT = $PRODUCT : $PRODUCT is your wave here

15 - . build/envsetup.sh

16 - lunch full_wave-userdebug

17 - make -j2 or make TARGET_NO_KERNEL=true



PS:

Code:
BUILD_HOST_64bit := false
# $(1): The file to check
define get-file-size
stat --format "%s" "$(1)" | tr -d '\n'
endef

HOST_SDK_TOOLCHAIN_PREFIX := prebuilts/tools/gcc-sdk
# Don't do anything if the toolchain is not there
ifneq (,$(strip $(wildcard $(HOST_SDK_TOOLCHAIN_PREFIX)/gcc)))
HOST_CC  := $(HOST_SDK_TOOLCHAIN_PREFIX)/gcc
HOST_CXX := $(HOST_SDK_TOOLCHAIN_PREFIX)/g++
HOST_AR  := $(HOST_SDK_TOOLCHAIN_PREFIX)/ar
HOST_LD  := $(HOST_SDK_TOOLCHAIN_PREFIX)/ld
endif # $(HOST_SDK_TOOLCHAIN_PREFIX)/gcc exists

HOST_GLOBAL_CFLAGS += -fPIC -fno-lto
HOST_GLOBAL_CFLAGS += \
        -include $(call select-android-config-h,linux-i686)

# Disable new longjmp in glibc 2.11 and later. See bug 2967937.
HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0

HOST_NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined
Include this on a file called build/core/combo/HOST_linux-i686.mk

I'm trying to test it on my i686 machine too.


Code:
#!/bin/bash

HOST_OS=`uname -s | tr '[:upper:]' '[:lower:]'`
if [ "$HOST_OS" != "linux" ] ; then
  echo "ERROR: The gcc this script points to can only run on linux"
  exit 1
fi

PROGNAME=`basename $0`

#PREFIX32=../../gcc/linux-x86/host/i686-linux-glibc2.7-4.4.3/bin/i686-linux  # previous version
PREFIX32=../../gcc/linux-x86/host/i686-linux-glibc2.7-4.6/bin/i686-linux
PREFIX64=../../gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6/bin/x86_64-linux

options=" ${@} "   # sentinel prefix/suffix space to simplify pattern match below

if [ $BUILD_HOST_64bit ] ; then
  MY_TOOL=`dirname $0`/${PREFIX64}-${PROGNAME}
else
  # Otherwise, choose 32-bit
  MY_TOOL=`dirname $0`/${PREFIX32}-${PROGNAME}
fi

$MY_TOOL "[email protected]"
on the file prebuilts/tools/gcc-sdk/gcc

definitions.mk diff
see the diff below*

Code:
index 9fe0a11..2750bed 100644
--- a/core/definitions.mk
+++ b/core/definitions.mk
@@ -1547,7 +1547,7 @@ define transform-classes.jar-to-dex
@echo "target Dex: $(PRIVATE_MODULE)"
@mkdir -p $(dir [email protected])
$(hide) $(DX) \
- $(if $(findstring windows,$(HOST_OS)),,-JXms16M -JXmx2048M) \
+ $(if $(findstring windows,$(HOST_OS)),,-JXms16M -JXmx1024M) \
--dex [email protected] \
$(incremental_dex) \
$(if $(NO_OPTIMIZE_DX), \


hth
on BoardConfig.mk from device/samsung/wave
Code:
TARGET_NO_KERNEL :=true
Advise:
On ubuntu 64bit if it happens make wait for unfinished jobs... is a issue for overheating on your computer like happens to me.
To keep the build do make or make -j2 again.

More updates to come.

Here it goes. This week a Rom.
 
Last edited:

astronfestmon

Senior Member
May 18, 2010
306
341
0
Lisbon
I've done the same for a Taiwan córtex a8. It compiled with target no kernel. Now for both i will try with kernel building inside. It's needed to make some changes on devices makefiles to get work

Sent from my Galaxy Spica using xda app-developers app
 

astronfestmon

Senior Member
May 18, 2010
306
341
0
Lisbon
Anyone in ubuntu tried my method?

I've done a few changes last week and this weekend to got compiling better the ubuntu phablet.

I would like to know.

Because my laptop is giving cpu threshold now due an onverheating issue.