[Installer] SMACKME 2.1 (kexec or moboot, native Linux or Android - with recovery!) - Other TouchPad Development

SmackMe 2.1 Installer
Read the whole post before doing anything.
Sorry this has been so long in the making. It underwent several rewrites and design changes.
SmackMe now supports recovery - individual recoveries will be installed along with kexec kernels - don't worry about the graphical corruption.
Supported Android Files:
Android 2.2: Froyo-*.zip|froyo-*.zip
Android 2.3 / CM7.1: update-cm-7*.zip|update-cm7*.zip|cm-7*.zip
Android 4.0 / CM9: update-cm-9*.zip|cm-9*.zip|update-cm9*.zip
Android 4.1 / CM10: cm-10*.zip|update-cm-10*.zip|update-cm10*.zip
Android 4.2: Evervolv-*.zip|evervolv-*.zip
Google Apps for Android: gapps-*.zip
Supported native-Linux Files:
Ubuntu: TouchPadBuntuRootfs*.tar.gz|TouchPadBuntuRootfs*.tgz
Split Ubuntu: TouchPadBuntuRootfs1210*.tar.gz.[123]|TouchPadBuntuRootfs1210*.tgz.[123]
Arch Linux ARM (untested but should work): ArchLinuxARM-touchpad*.tar.gz|ArchLinuxARM-touchpad*.tgz
Split Arch Linux: ArchLinuxARM-touchpad*.tar.gz.[1-4]|ArchLinuxARM-touchpad*.tgz.[1-4]
Debian (which fell off the face of the Earth, apparently, so also might not work): bodhi-touchpad-*.tar.gz|bodhi-touchpad-*.tgz
Split Debian: bodhi-touchpad-*.tar.gz.[123]|bodhi-touchpad-*.tgz.[123]
Fedora (ported by me, will release this month): HPTPFedora*.tar.gz|HPTPFedora*.tar.gz
Split Fedora: HPTPFedora*.tar.gz.[123]|HPTPFedora*.tar.gz.[123]
Slackware (ported by me): HPTPSlackware*.tar.gz|HPTPSlackware*.tar.gz
Split Slackware: HPTPSlackware*.tar.gz.[123]|HPTPSlackware*.tar.gz.[123]
Supported Miscellaneous Files:
uImage files: uImage.*
kexec kernel tarchives: kexec-*.tar
moboot (0.3.5, 0.3.8 tested only): moboot*.zip
You will need:
Computer with the HP webOS SDK installed, including Novacom and Novaterm.
A TouchPad (which I will refer to as HPTP)
All your files to install.
Patience. An install of the whole shebang on my 32GB test unit took almost 40 minutes.
Instructions for use:
Create a directory in the USB storage of your HPTP with the name "sminstall".
Copy all the files you want to install from your PC (refer to the lists above) into that directory.
Boot your HPTP into recovery mode.
Run the following command in your Terminal or Command Prompt:
Code:
novacom boot mem:// < uImage.SmackMe2
You should see the USB logo get replaced by the HP logo, then two Tuxes (Linux's mascot, the penguin - one for each CPU coer on the SoC) and scrolling text. Wait for the tablet to reboot to moboot. If you encounter any issues, please remember that I AM NOT RESPONSIBLE FOR YOUR ACTIONS, but I will certainly do my utmost to fix anything that I made. It is unlikely to brick your TouchPad using either this installer or ACME Installer. The worst that can theoretically happen is the "www.palm.com/ROM" screen, which IS NOT a brick, and IS EASILY FIXABLE.
DOWNLOADS
The main installer (what you feed into Novacom):
uImage.SmackMe2 - https://docs.google.com/file/d/0B4WUjKii92l2T1k5THhKNmNPVEk/edit?usp=sharing
Buiidables for the main installer: http://www.mediafire.com/?it96af7fvp39l9c
To use kexec for any OS, you need both "uImage.kexec" and the "kexec-<OSNAME>.tar" files.
MAIN FILE (uImage.kexec): https://docs.google.com/file/d/0B4WUjKii92l2RHJoNE93c2dVRlU/edit?usp=sharing
Android 2.2: https://docs.google.com/file/d/0B4WUjKii92l2d2cwQlBtVVd4aGM/edit?usp=sharing
Android 2.3: https://docs.google.com/file/d/0B4WUjKii92l2UGtETzBwNnNvckU/edit?usp=sharing
Android 4.0: https://docs.google.com/file/d/0B4WUjKii92l2UDc2cVZ2TjBWM2s/edit?usp=sharing
Android 4.1: https://docs.google.com/file/d/0B4WUjKii92l2d3g0U3p6c0l4NFk/edit?usp=sharing
Android 4.2: https://docs.google.com/file/d/0B4WUjKii92l2dlFzcFBacThSVXc/edit?usp=sharing
Ubuntu 12.10 final: http://www.mediafire.com/?uowhfd1sx1pppoa
Ubuntu 13.04: kexec kernel already included in the rootfs, DO NOT try to extract the 12.10 one on top!
Arch Linux: coming soon
Slackware: http://www.mediafire.com/?8kow2lrwnamuui1
Fedora: coming soon

dude amazing work really love to get all of this working
:crying:
Arch Linux: coming soon
Slackware: coming soon
Fedora: coming soon

netkillercat said:
:crying:
Arch Linux: coming soon
Slackware: coming soon
Fedora: coming soon
Click to expand...
Click to collapse
Detailed status:
Arch Linux should be easy once I fit the (LZMA'd) kernel+ramdisk under the 4MB limit.
Slackware is practically done-de-done-done but I have to remove some personal settings and make X launch by default.
Fedora is the farthest back, I haven't even yet compiled ts_srv for it.

So this installer creates the kexec<OS>files.tar from the roms that you supply it? Or are you simply stuck with the ones you provided?

sounds great man i have 32gig tp for testing let me know
castrwilliam;37601915]Detailed status:
Arch Linux should be easy once I fit the (LZMA'd) kernel+ramdisk under the 4MB limit.
Slackware is practically done-de-done-done but I have to remove some personal settings and make X launch by default.
Fedora is the farthest back, I haven't even yet compiled ts_srv for it.

The kexec-<OS> files are documented inside the ramdisk on the init script, I forgot to copy that documentation here. Nothing really strange has to be done to make them, but since it requires the might of a desktop PC to compile the kernel, I thought it'd be good to include the ones I've made so far.
(from /etc/scripts/kernel.sh of the ramdisk of SmackMe)
# install_kexec:
# $1: kexec tarchive
#
# these tarchives are always uncompressed and contain the following files:
# vmlinuz-<name> = the zImage to boot
# initrd.img-<name> = the initrd to boot
# boot.cfg = kexecboot boot.cfg file.
# smackme.cfg = installation parameters:
# - ROOTDEV=/dev/store/<lvname> the root device to install this on.
Click to expand...
Click to collapse
Basically, you need to recompile the (2.6.35 only) kernel with the patch from my kexec post, and use the zImage (NOT THE uImage) as vmlinuz-whatever. Then, you need to extract the old uImage from the same OS with uimage-extract from the moboot distribution. Use the "ramdisk.img" that is created in your current directory as "initrd.img-<name.>
Then, create a kexecboot config file of the form:
Code:
LABEL=<what shows up on the boot menu>
KERNEL=<what you named the kernel>
INITRD=<what you named the initrd>
APPEND=root=/dev/ram0
and save it as "boot.cfg".
Lastly, make a one-line smackme config file named smackme.cfg. ROOTDEV depends on what LVM volume you want SmackMe to store the kernel on. List:
Android 2.2: /dev/store/android22-system
Android 2.3: /dev/store/android23-system
Android 4.0: /dev/store/android40-system
Android 4.1: /dev/store/android41-system
Android 4.2*: /dev/store/android42-system
Ubuntu: /dev/store/ubuntu-root
Slackware*: /dev/store/slackware-root
Fedora*: /dev/store/fedora-root
Arch*: /dev/store/arch-root
Debian*: /dev/store/debian-root (or possibly bodhi-root, idk)
* means the tarchive for that OS hasn't been posted on my first post yet.
Lastly, put the four files (vmlinuz, initrd, boot.cfg and smackme.cfg) in an empty folder and do:
tar -czf ../kexec-<name>.tar *
Move it to the sminstall dir on the HPTP and run SmackMe to test.
Summary (ubuntu 12.10 host AND guest with the CodeSourcery toolchain in $PATH used as an example):
Code:
#setup
mkdir work
mv <PATH_TO_KEXEC_PATCH> work
mv <NORMAL_UBUNTU_KERNEL_UIMAGE> work
cd work
# compile kernel
git clone git://github.com/BodenM/ubuntu-kernel-tenderloin
cd ubuntu-kernel-tenderloin
patch -p2 < ../decomp-copy-atags.diff
export ARCH=arm
export CC=arm-eabi-gcc
make tenderloin_defconfig
make -j8 zImage
cd .
# extract ramdisk
git clone git://github.com/jcsullins/moboot
cd moboot/tools
gcc -lz -o uimage-extract uimage-extract.c
cd ../..
uimage-extract uImage.Ubuntu
#make boot.cfg file
echo 'LABEL=Ubuntu 12.10 final' > boot.cfg
echo 'KERNEL=vmlinuz-2.6.35-ubuntu' >> boot.cfg
echo 'INITRD=initrd.img-2.6.35-ubuntu' >> boot.cfg
echo 'APPEND=root=/dev/ram0' >> boot.cfg
#make smackme.cfg file
echo 'ROOTDEV=/dev/store/ubuntu-root' > smackme.cfg
#generate kexec tarchive
mkdir kexec
mv hp-kernel-tenderloin-ubuntu/arch/arm/boot/zImage kexec/vmlinuz-2.6.35-ubuntu
mv ramdisk.img kexec/initrd.img-2.6.35-ubuntu
mv *.cfg kexec/
cd kexec
tar -czf ../kexec-ubuntu.tar *
BTW, the kexec package is only half the story, you still need to copy the rootfs tarfile (native) or zip file and gapps (Android).

It worked but....when I get to Kexecboot I can't select anything? The up/down vol key works but the home button will not....
n/m....figured it out its the power button instead of home..... working good!

Re: [Installer] SMACKME 2.0 (kexec or moboot, native Linux or Android)
Does your version of Ubuntu contain the same bugs as the Ubuntu already posted in the forums?, and if I may ask what bugs are in your other Linux ports?
Sent from my Nexus 10 using xda app-developers app

My version of Ubuntu has audio and usability enhancements, as well as being lean/mean and faster due to the armhf architecture.
It's available near the end of the Ubuntu thread, make sure you get 12.10, "Final" and not "Beta".
In fact, I haven't tested my Ubuntu kexec tarchive with anyone else's implementation. Feel free to try and respond back with 11.10 or 12.04, or even my 12.10 beta.
Everyone, Slackware should be up by the time you read this post.

Little help please just in case is this right
just to make it clear for us dummies out here
novacom boot mem:// < uImage.SmackMe2 thats it right?

Re: [Installer] SMACKME 2.0 (kexec or moboot, native Linux or Android)
Hey castrwilliam nice job
I have a question. I already have cm10 and webos installed and want to get ubuntu 12.10. But i always had a problem with kernel panic error. So i came across your recent post. Can i just follow your instructins for ubuntu or do i have to install the rest too? I already have the moboot installed. Thanks for your response
sent from my hp touchpad 32gb dual boot CM10

just in case Waiting for some help
:silly::silly::silly::silly:

netkillercat
This is how I did it and it worked just fine:
In my sminstall folder on the TP I had: moboot_0.3.5.zip, uImage.kexec, kexec-ubuntu.tar, and TouchPadBuntuRootfs1210v2.tar.gz.
I ran novacom boot mem:// < uImage.SmackMe2, and let it run. Took probably 15 mins at least.
Rebooted, chose kexec, chose Ubuntu, all working ok....

i did move kexec and ubunt uimage to boot
viper3two said:
netkillercat
This is how I did it and it worked just fine:
In my sminstall folder on the TP I had: moboot_0.3.5.zip, uImage.kexec, kexec-ubuntu.tar, and TouchPadBuntuRootfs1210v2.tar.gz.
I ran novacom boot mem:// < uImage.SmackMe2, and let it run. Took probably 15 mins at least.
Rebooted, chose kexec, chose Ubuntu, all working ok....
Click to expand...
Click to collapse
thank you for you for answer

You're adding files that aren't concatenated yet. (hence the .1, .2. and .3 extensions.) This is what you need to do. I'm assuming you're going to be doing this on the same, Windows computer...
Code:
copy TouchPadBuntuRootfs1210v2.tar.gz.1+TouchPadBuntuRootfs1210v2.tar.gz.2+TouchPadBuntuRootfs1210v2.tar.gz.3 TouchPadBuntuRootfs1210v2.tar.gz
copy HPTPSlackware14test1.tar.gz.1+HPTPSlackware14test1.tar.gz.2+HPTPSlackware14test1.tar.gz.3 HPTPSlackware14test1.tar.gz
Transfer the HPTPSlackware14test1.tar.gz and TouchPadBuntuRootfs1210v2.tar.gz files to the TouchPad's sminstall folder, and delete the .1, .2, and .3 files.
Re-run SmackMe. You shouldn't need to redoctor your TP, assuming you didn't create any cm-* LVMs (e.g. by running normal ACME).
By the way, a few hints about my installer:
It saves a log in the sminstall folder if you want to find out what went right or wrong
It NEVER deletes original installation files. It will move them to either "invalid" or "finished" under the sminstall folder, and after you are satisfied with your installation, you can delete them.
It will soon be updated with support for concatenating archives during installation (which would make it work when you put in the .1,.2,.3 files.
I will also add recovery kernels to the kexec packages, and once I have the method for modding them, I will document it. It is likely to be more involved than what can be done by the installer itself, but if it isn't, I will add hotpatch support for uImage recoveries like it does with Android normal uImages.

roger that i see lol
castrwilliam said:
You're adding files that aren't concatenated yet. (hence the .1, .2. and .3 extensions.) This is what you need to do. I'm assuming you're going to be doing this on the same, Windows computer...
Code:
copy TouchPadBuntuRootfs1210v2.tar.gz.1+TouchPadBuntuRootfs1210v2.tar.gz.2+TouchPadBuntuRootfs1210v2.tar.gz.3 TouchPadBuntuRootfs1210v2.tar.gz
copy HPTPSlackware14test1.tar.gz.1+HPTPSlackware14test1.tar.gz.2+HPTPSlackware14test1.tar.gz.3 HPTPSlackware14test1.tar.gz
Transfer the HPTPSlackware14test1.tar.gz and TouchPadBuntuRootfs1210v2.tar.gz files to the TouchPad's sminstall folder, and delete the .1, .2, and .3 files.
Re-run SmackMe. You shouldn't need to redoctor your TP, assuming you didn't create any cm-* LVMs (e.g. by running normal ACME).
By the way, a few hints about my installer:
It saves a log in the sminstall folder if you want to find out what went right or wrong
It NEVER deletes original installation files. It will move them to either "invalid" or "finished" under the sminstall folder, and after you are satisfied with your installation, you can delete them.
It will soon be updated with support for concatenating archives during installation (which would make it work when you put in the .1,.2,.3 files.
I will also add recovery kernels to the kexec packages, and once I have the method for modding them, I will document it. It is likely to be more involved than what can be done by the installer itself, but if it isn't, I will add hotpatch support for uImage recoveries like it does with Android normal uImages.
Click to expand...
Click to collapse
thank you for all your work and your patient with dummies like me asking duh questions lol
well i tried again and got slack installed did not install but it did take up space and i see cm9 in moboot wont boot
cm10 dos not show up in moboot and ubuntu dont show in kexec menu
so thats it after runing it several time all i got was moboot kexce and slack on kexce menu

i get this when i want to use novacom /bin/sh: can't open uImage.SmackMe2: no such file

dam it
got ubuntu and slack installed android is on moboot but wont boot still happy to have slack and ubuntu working kexec is working now for me but no android
i did a lvm lvscan and i see it did not make partitions for android so i guess no harm was done
i removed android from boot folder
ACTIVE '/dev/store/root' [568.00 MB] inherit
ACTIVE '/dev/store/var' [64.00 MB] inherit
ACTIVE '/dev/store/update' [16.00 MB] inherit
ACTIVE '/dev/store/log' [24.00 MB] inherit
ACTIVE '/dev/store/mojodb' [256.00 MB] inherit
ACTIVE '/dev/store/filecache' [136.00 MB] inherit
ACTIVE '/dev/store/media' [22.52 GB] inherit
ACTIVE '/dev/store/swap' [512.00 MB] inherit
ACTIVE '/dev/store/slackware-root' [2.00 GB] inherit
ACTIVE '/dev/store/ubuntu-root' [3.00 GB] inherit

now that i have ubuntu and slack
im good till a get back to a pc
so ubuntu and slack are installed and working

alex1301 said:
i get this when i want to use novacom /bin/sh: can't open uImage.SmackMe2: no such file
Click to expand...
Click to collapse
You need to copy uImage.SmackMe2 to the locations of your novacom driver installation.

Related

Debian on the Vogue

I've been running Debian natively from my SD card for a while, so I decided I'd share the [relatively easy] instructions. First, though, here's the status of the hardware support...
* X11 is working quite nicely. 480x640 resolution is best for using E17.
* I'm trying to think up a solution for the 3D accelerator. LLVMpipe works but it's not much faster than classic Mesa. Maybe that's because I'm only testing performance with Mupen64Plus and SuperTux Ideally we would have an open-source OpenGL ES 1.0 driver with an OpenGL 1.3 wrapper/Gallium state tracker, but unfortunately Qualcomm closed it
* The hardware buttons don't generate input events (except the power button, which apparently makes SDL windows fullscreen).
* USB function ether works. This means you can SSH into it or update packages without a data connection (I don't think data even works).
* Sound doesn't work because Android doesn't use ALSA - or maybe because DZO hasn't written the proper driver...
* Camera(s) would need a Video4Linux driver; again, not my area
* Bluetooth is untested.
* GPS needs userspace work (gpsd?) - maybe the HTC Dream page at HTC-Linux.org has info...
* Calling - untested because: 1) I doesn't got the software, and 2) even if it worked, I have no one to call
If you're willing to wait indefinitely for those things to be fixed (or if you don't care), all you need is a Debian chroot on an EXT2-formatted SD card and my special NBH. The NAND should also work*, but Debian probably wouldn't fit on it. These instructions should also work for Ubuntu, Gentoo, FSO/OpenMoko, Angstrom, ARMedSlack, Fedora, or what have you - the only requirements are ARMv6 or lower and a semi-standard root filesystem layout (i.e. /sbin/init).
For those of you who don't trust binaries, I've uploaded my patches to the kernel and tinboot needed for Debian to boot. For everyone else, I have NBH files ready. Just flash the NBH, insert your SD card, and it should boot.
Links:
http://www.mediafire.com/?mnv2memddug (source)
http://www.mediafire.com/?immywzmmqjn (binaries)
*LogFS patch included and enabled in my NBH.
Interesting, i'm going to have to try it out, any chance of getting it bootable from within android, like haret is with windows?
what exactly is debian??
is it like ubuntu thats on my computer
jadenj5 said:
what exactly is debian??
is it like ubuntu thats on my computer
Click to expand...
Click to collapse
yes
10char
little confused though, where do I get the debian root files though
Debian Root
Instructions to build your own RootFS follow. If you're lazy, Google for a pre-built one.
If you're on Ubuntu:
Code:
sudo apt-get install debootstrap
sudo debootstrap --arch armel --foreign unstable root/ http://http.us.debian.org/debian
Substituting "unstable" for "stable" or "testing", "root/" with the the path to the directory you want the rootfs in (probably your SD card mountpoint), and your country code in ftp.??.debian.org (or another mirror). You might also need to do
Code:
sudo mount -o remount,rw,dev,exec $MOUNTPOINT
to your SD card (which, again, should be ext2-formatted) for debootstrap to work.
Then to complete the bootstrap:
Code:
sudo apt-get install qemu-kvm-extras-static
sudo cp /usr/bin/qemu-arm-static $ROOTFS/usr/bin/
sudo chroot $ROOTFS
From inside the chroot, do
Code:
/debootstrap/debootstrap --second-stage
Then, apt-get install whatever you want on the phone (after configuring /etc/apt/sources.list), exit the chroot, unmount the card, insert it in your phone, and boot!
You'll need - at the very least - xserver-xorg-video-fbdev and xserver-xorg-input-evdev *WITHOUT* installing the other video or input drivers. And a desktop/window manager. If you haven't used Debian before, try e17.
Thanks man, i'm going to go check it out
If you're lazy, Google for a pre-built one.
Click to expand...
Click to collapse
can't find one.?
If you're on Ubuntu:
Click to expand...
Click to collapse
ubuntu 10.04 debootstrap doesnt know about stable/testing/unstable names, but knows about lenny, squeeze, sid
okay, I maked Debian unstable rootfs - here it is (127MB tar.bz2). here is dpkg -l.
root password is "1", apt sources.list is configured to most close to me mirror. I also added /proc into fstab.
how to pack my rootfs into .img image now?
can you post a screenshots please ???
there is nothing to show now, really. we need to make working pack first.
google e17 screenshots, on device you will have same.
a note about the sound issue. You are correct in that the vogue kernel does not have alsa support at this time.
nice job on this
Code:
E: No such script: /usr/share/debootstrap/scripts/stable
debootstrap installed with no errors but that's what I get when I try to run
Code:
sudo debootstrap --arch armel --foreign stable /media/79e9dd5a-174b-4324-a704-6aa06807fe35 http://http.us.debian.org/debianc
Try "lenny" instead of stable.
gTan64 said:
Try "lenny" instead of stable.
Click to expand...
Click to collapse
progress but now i get
Code:
I: Retrieving Release
E: Failed getting release file http://http.us.debian.org/debianc/dists/lenny/Release
Look closely - the mirror URL doesn't contain "debianc", does it?
gTan64 said:
Look closely - the mirror URL doesn't contain "debianc", does it?
Click to expand...
Click to collapse
I'm F-ing retarded
/facepalm
-Edit- any packages you would advise to install?
New problem
Code:
[email protected]:/$ sudo chroot /media/79e9dd5a-174b-4324-a704-6aa06807fe35_
chroot: cannot run command `/bin/bash': Exec format error
Could it be because sudo apt-get install qemu-kvm-extras-static had no packages and I had to install sudo apt-get install qemu-kvm-extras
Code:
sudo cp /usr/bin/qemu-arm-static $ROOTFS/usr/bin/
This step is essential - without qemu-arm-static in your chroot, you won't be able to run/emulate any ARM binaries (in this case, Debian-armel's /bin/bash).
Yes, you do need the static version. Last I checked it was actually in the Ubuntu repositories, so look again...
As far as what packages to install, here you go.
Essential packages: xserver-xorg-{video-fbdev,input-{mouse,keyboard}}
Essential desktop packages (pick one): e17 fluxbox lxde xfce4
Recommended packages: cellwriter xfce4-goodies
Suggested packages: Whatever floats your boat.
Packages I installed even though having no sound makes them useless: zynaddsubfx supertux sopwith bomberclone

[DEV-ADDON]DS7Ubuntu v1.0 --- Text Based Ubuntu 11.04 running on Dell Streak 7!

First of all, I need to give my thanks to great DevGhostofNet for his excellent work on getting Ubuntu 11.01 running on Xoom. I borrowed his template on this instruction page as I really don't have my template and using this way to show my appreciation to his work.
Second, I figured though I am not big dev by any means, hopefully any time I spent on such things can add some value to owners of either DS7 or Xoom, especially DS7, which really needs any effort on it in addition to testing help.
So I would throw in my two-cent hours/efforts to get this started. I see huge potential in it, though now it is quite WIP, because the non-graphical version is running well but not Gnome sessions.
1.What is working?
Shell Ubuntu 11.04
I modified the installation scripts to mount DS7 partitions correctly and copy some modified script into original image.
2. What is not working?
Gnome Session
I can install necessary components up to a point where the wall paper is loaded, sidebar is loaded but the guest system did not take/register input properly yet.
3. Why we care?
It has huge potential in it. It uses a part of your sdcard to run a guest system, and you can literally install all those great Ubuntu apps in it in future when more dev effort makes this happen.
4. What is the impact to my existing Android OS?
Minimal. The impacts are:
1. there will be ubuntu scripts in /system/bin/
2. Loop7 device will be borrowed while ubuntu is mounted.
3. under /sdcard, there is a folder ubuntu which pretty much contains everything
4. in LOST.DIR of your /sdcard, there may be lots of temp files if you experimented a lot of install/uninstall of this guest system.
If you still want to take a crack now.........
DISCLAIMER: I will not responsible for any bricked device. Please although this experiment won't affect your other files at all, but **** happens all the time, please do backup and understand what you are trying to do before proceed.
[Before Installation:]
1. You should know what you are doing at this step.
2. You have rooted your device already
3. You configured adb and have a terminal apps in your DS7. (Terminal apps can be found in market. Android Terminal seems to work fine)
4. You have a VNC client. (Android-vnc in market seems fine)
[Installation:]
1. Download the DS7Ubuntu files From my post at http://www.OpinionatedFool.com
2. Extract it into /sdcard/ubuntu folder
3. Open a terminal
Code:
su
cd /sdcard/ubuntu
sh ubuntu install
Just click yes when you are asked some questions. This process takes about 5 mins
reboot after installation
NOW after rebooting, you officially are running a text based Ubuntu 11.04
4. Open you terminal
Code:
su
ubuntu start
ubuntu shell
If you are interested to go further, I really encourage to because we need better devs to bring us further. I am willing to try more but it will take longer time as I have been away from Linux for a good 6 years.
5. After you are in Ubuntu Shell environment. you can do
Code:
vi /sbin/installubuntu
6. Inside installubuntu, the following are present:
Code:
#!/bin/sh
/usr/bin/apt-get -y -q update
/usr/bin/apt-get -y -q upgrade
/usr/bin/apt-get -y -q install python-software-properties
#/usr/bin/add-apt-repository ppa:unity-2d-team/unity-2d-daily
/usr/bin/apt-get -y -q update
/usr/bin/apt-get -y -q install tightvncserver xrdp
/usr/bin/apt-get -y -q install ca-certificates desktop-file-utils doc-base eog g
conf-editor gedit ghostscript-x gnome-about gnome-applets gnome-control-center g
nome-media gnome-menus gnome-nettool gnome-panel gnome-session gnome-session-can
berra gnome-system-monitor gnome-system-tools gnome-terminal gnome-themes-select
ed gnome-themes-ubuntu gnome-utils gtk2-engines gtk2-engines-pixbuf gucharmap hu
manity-icon-theme indicator-applet-session inputattach language-selector launchp
ad-integration lftp libgd2-xpm libgnome2-perl libpam-ck-connector libsasl2-modul
es libxp6 nautilus nautilus-sendto notify-osd rarian-compat screen smbclient sof
tware-center synaptic software-properties-gtk ttf-dejavu-core ttf-freefont ubunt
u-artwork ubuntu-extras-keyring ubuntu-sounds unzip update-manager update-notifi
er x-ttcidfont-conf xterm yelp zenity zip maximus
/usr/bin/dpkg-divert --local --rename --add /sbin/initctl
/bin/ln -s /bin/true /sbin/initctl
I am good up to completion of this step in the script above
Code:
/usr/bin/apt-get -y -q install tightvncserver xrdp
Then the following bulk apt-get process will cause issues. The main course is on gconf2 as far as I know.
I tried to install them separately after install gconf2, but it is not stably working.
i.e. sometimes I did install them all correctly, but sometimes I am getting segmentation error, which is annoying and requires wipe ubuntu folder and reinstall ubuntu.
I am too rusty on Linux now that better devs may figure it out easily.
[How to Uninstall it?]
In case you want to get rid of it. Here is how:
Through ADB or Terminal Simulator in your DS7
Code:
adb shell
su
mount -o remount,rw /dev/block/mmcblk3p3 /system
rm /system/bin/ubuntu*
mount -o remount,ro /dev/block/mmcblk3p3 /system
[Next Step]
Install and configure a working copy of Gnome-session on this successfully. Hopefully there will be Kernel Dev to have a Ubuntu kernel specifically for DS7? That will be the best.
We can then
1. Run Apache server and you will access your files through Dell Streak 7 as long as you are tethering in its own LAN. (or a lot more)
2. Run browsers in graphical version of Ubuntu on your DS7 so that you can do whatever with hulu or netflix or anything. Basically you are carrying a freaking DS7 laptop with you. with touch screen and huge mobility
[Notes]
1. pts need to mounted
2. use Unity-2d seems to be better than Unity
3. mtab need to be replace manually with the mtab I included in the zip file
4. kernel is not configured to have shared memory management ...
I'll definitely be following this thread with interest!
native ubuntu would be nicer rather than the crap of chrooted ones, they are just pointless IMHO as the device has to try and manage 2 oses at once, the 7 doesnt realy have the ram to manage that
Any updates on this project ?
Guess not :-(
Quick question to the op
Does wifi work so you can update / install packages?
If so, does it see the wifi cards chipset? I'm looking into getting aircrack-ng set up to tinker with. ( saves me from dragging out my laptop to test security on networks with my job )
Currently I'm using my Mac with kismac which does the job nicely , however, if I can use the ds7 under Ubuntu its one less reason to drag it along.
Can you copy the device information for me or does it act like a LAN card ?
Thanks !!
what is the latest development?
In a few weeks, i will tell my team to look at the cm7.1 things. I hope you will help us? I will send you a pm but remember me
ubuntu
is this still being worked on or attempted? or is there a ubuntu rom out already?
Is this anything like Ubuntu installer...
http://forum.xda-developers.com/showthread.php?t=1390351

[TUTORIAL] The Step-By-Step guide to build Cyanogenmod7 for the LG Optimus 2X

aMpeX proudly presents:
The Step-By-Step guide for building CM7
for the Optimus 2X​
Disclaimer:
I'm taking no responsibility for any damage that might occur to your phone or your PC
This guide illustrates how to setup an UBUNTU 11.04 equipped PC to build CM7 from source
It does not provide any support beyond that operating system, so if you insist on using other
Linux distributions, either adapt the guide yourself or look elsewhere.
Moreover I'm not providing any support for any problems that might occur during the course
of this guide, if they are not introduced by faults within the guide itself. I will only
troubleshoot the activities that this guide is based upon and won't be able to help with your
general linux problems. Feedback however is greatly appreciated.
Reposting this on other forums:
Feel free to post this guide on other forums. I'd like to be given credit though. Thanks
I am new to this myself, but I thought I'd share my findings after successfully building my first kang.
News & changelog:
v0.92 2011/06/01 Fix:
Added "change directory" before init repository (thanks to peewster)
v0.91 2011/05/31 Fix:
Fixed PATH exports (thanks to bhanvadia)
v0.9 2011/05/31 Initial release:
Still much formatting to be done, typos possible. Leave me some feedback if you encounter them.
Alright, so you want to build your own CM7 KANG's ?
Step 0: The starting point + info
When you start this guide, I assume that you just installed your Ubuntu 11.04 copy to your PC and set up all the drivers to your hearts content.
All commands are supplied, as they would be typed in from a USER ACCOUNT, if you operate from the root account, you will
have to add /home/<yourusername> to the most commands. I suggest, after performing the actions required by root, that you log out by typing
Code:
exit
What you need:
A working copy of Cyanogenmod7 installed on your phone
A PC with Ubuntu 11.04 installed (NOTE: If you're about to install Ubuntu from scratch, use the 64Bit version.
I can build CM7 on a 32Bit OS just fine. But AOSP for example won't build beyond Froyo on 32Bit.
At least 20GB of free space (including space required for the operating system itself)
A considerably fast internet connection (syncing the repo takes everal Gbs)
At least 3 hours of time.
All done? Then let's get started:
Step 1: Install the Java JDK
Go to System → Administration → Synaptics Package Manager
Here, we have to enable the partner repositories.
Go to Settings → Repositories → Other Software → Tick Canonical Partners and hit Close
Now push the „Reload“ button, and use the Search button to find the sun-java6-jdk package
tick the box in front of it and choose „Mark for installation“ and accept the following dialogue.
Click the „Apply“ button. Accept the dialogues, you now have the Java JDK installed.
Step 2: Install the Android SDK
Go here and download this.
Extract the archive to a directory of your choice.
Open a Terminal, navigate to the „tools“ subfolder and run the AVD Manager using ./android
In the new Window hit „Available Packages“ tick the „Android Repository“ and select „Install selected“
Once thats done, close everything up, time for step 3.
Step 3: Set up udev
The description from the CyanogenMod wiki struck me as being a slightly bit overkill, and, while it might be necessary for other devices, for LG phones this works just fine:
Create a new file on your desktop named
Code:
99-android.rules
and fill them with the following content:
Code:
SUBSYSTEM=="usb", SYSFS{idVendor}=="1004", MODE="0666"
This will enable the debugging for LG devices, if you have time, it won#t hurt to add the other vendors. Just add another line
like above and replace the „1004“ with the appropriate vendor ID from http://developer.android.com/guide/developing/device.html (scroll to the bottom)
Log in as root using
Code:
sudo su
and paste our file to
Code:
/etc/udev/rules.d
using the terminal (cp)
Set permissions for the file using
Code:
chmod a+r /etc/udev/rules.d/99-android.rules
Now would probably be a good time to check if adb is working correctly.
But first, lets update the PATH so we can type „adb“ anywhere on the file system.
Navigate to your user home directory, press CTRL+H to show hidden files and edit the
Code:
.bashrc
file by adding the following
Code:
export PATH="/home/<yourusername>/<path to the android SDK >/platform-tools/:${PATH}"
export PATH="/home/<yourusername>/bin/:${PATH}"
(The 2nd line is necessary for later)
NOTE:This only enable the use of adb everywhere when logged in with your username. When working as root, you'll have
to add a separate line with /home/<yourusername> in front of the path above.
You have to log out and in again for the changes to take effect.
Now check if you can see your phone with
Code:
adb devices
Alright, still awake? Good, because now it gets interesting
Step 4: Install build packages and create directories
Since we already installed the JDK this command differs a bit from the Cyanogen Wiki:
For 32 and 64 Bit
Code:
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 pngcrush schedtool
For 64 Bit only
Code:
sudo apt-get install g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline5-dev gcc-4.4-multilib g++-4.4-multilib
Now we need 2 directories
Code:
mkdir -p ~/bin
mkdir -p ~/android/system
Almost there ….
Step 5: Install the repository
Now we need our repo binary:
Code:
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a+x ~/bin/repo
(credits to p.valenta for notifying me of the adress change)
NOTE: You may need to reboot now
Change to your previously created directory:
Code:
cd ~/android/system/
Initialize the repository:
Code:
repo init -u git://github.com/CyanogenMod/android.git -b gingerbread
Enter your Name, eMail adress and select if you want colors or not.
AND NOW THE FINALE
Code:
repo sync -j16
Get yourself a BIG coffee, because this is going to take MUCH MUCH time, because basically you are now checking out all there is to CyanogenMod.
But wait, we're not done yet. Hang on
Step 6: Getting proprietary files for the Optimus 2X
For this step, you need an O2X with a running Cyanogenmod build, so if you're still on stock, this is the time to flash Cyanogenmod for the first time.
Connect your phone to your PC via USB and
navigate to the device tree in your repo folder:
Code:
cd ~/android/system/device/lge/p990/
and run
Code:
./extract-files.sh
This will extract some libs from your device. But sadly, not all of them (build will still fail) but we will fix this now.
Go to
Code:
https://github.com/koush/proprietary_vendor_lge/tree/gingerbread/p990
and click the download button on the right.
Extract the „p990“ folder located in the subfolder
Code:
/koush-proprietary_vendor_lge-a43238f/
in the archive to
Code:
~/android/system/vendor/lge/
Step 7: Get latest ROMManager
I know I must be annoying the sh** out of you by now, but hang in there
Code:
~/android/system/vendor/cyanogen/get-rommanager
Step 8: BUILD F***ING EVERYTHING
Now this is what you've been waiting for huh?
Sync the repository again:
Code:
cd ~/android/system/
repo sync
Build the ROM
Code:
. build/envsetup.sh && brunch p990
Wait
When everything is finished, your KANG will be stored in
Code:
~/android/system/out/target/product/p990/
And THATS IT!
Congratulations, you have just built your own CM7 KANG, don't forget to share it to other nightly testers
Cheers aMpeX
Useful stuff and tools:
SH script by bhanvadia, tailored to the directories introduced by this tutorial:
Download here
Extract anywhere and make it executable by typing
Code:
chmod +x kang.sh
Create shortcut to the output directory of your KANGs
Type
Code:
ln -s ~/android/system/out/target/product/p990/ <your desired shortcut location>
nice guide, really liked it.
too bad there were none when I started making my kangs.
btw: I use mac it is bit different for mac. but nothing its missing.
Here is file you keep on you desktop to make it work without any typing of commands after you setup your computer working directory as per guide by aMpeX.
and check post #2 for making that file executable.....
kang.sh
bhanvadia said:
nice guide, really liked it.
too bad there were none when I started making my kangs.
btw: I use mac it is bit different for mac. but nothing its missing.
add "~/android/bin/" to path too so you can "repo sync" from anywhere.
just a suggestion... can upload build.sh file on here to make it easy.
something like
1. for clean and build
2. for repo sync
open file and press your options.
thats what I use...
Click to expand...
Click to collapse
That's why the guide states its for ubuntu. I found that even the Cyanogenmod Wiki entries don't work completely for the latest ubuntu (with g++ and gcc 4.3 not being available anymore, also hat huge problems with the java jdk at first)
I'll add the additional PATH variables as you suggested. Thank you.
aMpeX said:
That's why the guide states its for ubuntu. I found that even the Cyanogenmod Wiki entries don't work completely for the latest ubuntu (with g++ and gcc 4.3 not being available anymore, also hat huge problems with the java jdk at first)
I'll add the additional PATH variables as you suggested. Thank you.
Click to expand...
Click to collapse
Here is file you keep on you desktop to make it work without any typing of commands after you setup your computer working directory as per guide by aMpeX.
PS: aMpeX can you just test that file??? just repo sync or rom manager update options.
awesome guide !!! thanks aMpeX !
seems to be working, after you chmod+x the sh file that is. My Repo Sync is stuck at 1%, but I doubt its related to your file.
I'll add it to the 2nd post
aMpeX said:
seems to be working, after you chmod+x the sh file that is. My Repo Sync is stuck at 1%, but I doubt its related to your file.
I'll add it to the 2nd post
Click to expand...
Click to collapse
modified my mac file i use to fit to your setup of directories, just changed directories. ...
yeah then it would work, hope it make it more easy
GET the KANGs flowing...........
aMpeX said:
Useful stuff and tools:
SH script by bhanvadia, tailored to the directories introduced by this tutorial:
Download here
Extract anywhere and make it executable by typing
Code:
chmod +x kang.sh
Create shortcut to the output directory of your KANGs
Type
Code:
ln -s ~/android/system/out/target/product/p990/
Click to expand...
Click to collapse
Download link is sending to wrong post still....
now it should work like this....
http://forum.xda-developers.com/showpost.php?p=14310172&postcount=5
copy
http://forum.xda-developers.com/showpost.php?p=14310172&postcount=5
Can you please also state that it only works on 64bit builds of ubuntu and not 32bit...
Renegade_Rulez said:
Can you please also state that it only works on 64bit builds of ubuntu and not 32bit...
Click to expand...
Click to collapse
Aside from what you can read on the net, my KANGs build perfectly fine on Ubuntu 32Bit
No reason to not install 64Bit though. I'll add a remark in the first post.
Edit: After some asking and digging, read this:
http://twitter.com/#!/CM_arcee/status/75677847712309249
So while standard Gingerbread cannot be built by 32Bit, the CyanogenMod7 repository can.
is this meant to download a lot of stuff for different phones? mine is downloading a lot of stuff at step 5 and it's taking forever..
Imperticus said:
is this meant to download a lot of stuff for different phones? mine is downloading a lot of stuff at step 5 and it's taking forever..
Click to expand...
Click to collapse
It will download files for each and every phones supported by CyanogenMod, thats why its called cyanogen repo, not just P990 repo, but mostly you will use stuff thats required by your phone.
and its suggested to have 15 - 20 GB free, as it takes a lot....
3.5 GB is just "out" folder when it compiles for one device (P990)......
bit of a noob.. done everything..when I try to make the build using build/envsetup.sh i get permission denied
Any help please?
copy/paste the command from the tutorial
there is a leading dot and space before "build
Code:
. build/envsetup,sh && brunch p990
Thank's for the tutorial but i allways get no gsm function build
logcat -b radio
RIL_REQUEST_REPORT_STK_SERVICE_IS_RUNNING error: com.android.internal.telephony.CommandException: RADIO_NOT_AVAILABLE
Click to expand...
Click to collapse
or
Couldn't find 'rild' socket; retrying after timeout
Click to expand...
Click to collapse
What baseband are you using? Make sure that the lge-ril.so is in your proprietary files
aMpeX said:
What baseband are you using? Make sure that the lge-ril.so is in your proprietary files
Click to expand...
Click to collapse
Thank's for repy.
lge-ril.so is in and generally i flash my build coming from cyano #31 (405) and mcr18 (405)
So...405
Possibly (if you synced the proprietary repository by koush AFTER you ran extract-files.sh) your ROM still includes the lge-ril for 0218.
Try reflashing the ril with the methods provided in this forum.
Other than that, I have no idea what might be causing your problems.
old ril file from koush files do work on 405 baseband too, but you feel better performance with new ril. with old ril you may loose signals sometime.
delete your vendor/lge/p990 folder, and download again from koush's files and put it back there. make sure your directories are in order
example: for lib-ril.so in as below
like ~/android/system/vendor/lge/p990/proprietery/lib/

[Dev] Modify stock image script

In case someone would like to build an own image based on the stock firmware,
I wrote a script that performs the neccessary steps (which where mostly described at the xda-forums) automatically on a linux based system.
It is very raw, and is not well optimized. It also is using many sudo calls for creating and modifying the image. Maybe someone has another, better solution.
Usage:
Download and unpack the ExtractAOS archive:
Code:
tar xfj ExtractAOS.tar.bz2
At first you need to place a AOS update file (firmware_archos_it4.aos) into the "dl" folder.
Then copy a busybox.tar.bz2 file, which contains the statically linked binaries of busybox (no subdirectories) inside the archive:
Code:
ash
busybox
cat
chgrp
...
Also make sure that following tools are installed on your system:
unsquash
unzip
tar
Then start the main script:
Code:
./unpackAOS
You will see a menu like this:
Code:
---------- Unpack and Modify Archos image -----------
1 Cleanup: Umount all mounted devices and delete all created files.
2 Download needed packages
3 Setup build directory
4 Create new Ext4 loop image and mount it to MOUNT_DIR
5 Extract AOS image
6 Copy AOS image contens into /data/ExtractAOS/archos_update_folder
7 Modify image in /data/ExtractAOS/archos_update_folder
8 Finish image and unmount it
88 Perform step 3-8 automatically
99 Exit
Then download needed tools via menu item "2".
If the download are successfully done, then you can enter "88"
to build your own archos.ext4.update image file.
Notes:
I'm on a 64 bit system. Letama seems to provide binaries also for 32 bit sytems. In that case, you can modify and set the correct binary within the script file.
This script is intended to provide a base for developers which want their own customisations
Special thanks to:
letama
surdu_petru
Thanks i will try it next weekend
Gesendet von meinem HTC Desire mit Tapatalk 2
Quallenauge said:
Also make sure that following tools are installed on your system:
unsquash
unzip
tar
Click to expand...
Click to collapse
On which firmwares did you test this script?
There was an error in squashfs header in 4.0.5-4.0.6 FW (including test releases)- androidmerged.squashfs.secure could be mounted as loop but not extracted
Hi,
I builded my image based on the current 4.0.7 aos-update file.
I'm using archlinux 64 bit.
Which arch are you using? Can you please verify that the correct extractAOS binaries are downloaded within the script?
The script doesn't mount the androidmerged.squashfs.secure as loop device, but copies all the data from androidmerged.squashfs to a temporary folder named "output_folder".
Can you please provide a console output? Maybe there is some more information?...
Quallenauge said:
Hi,
I builded my image based on the current 4.0.7 aos-update file.
I'm using archlinux 64 bit.
Which arch are you using? Can you please verify that the correct extractAOS binaries are downloaded within the script?
The script doesn't mount the androidmerged.squashfs.secure as loop device, but copies all the data from androidmerged.squashfs to a temporary folder named "output_folder".
Can you please provide a console output? Maybe there is some more information?...
Click to expand...
Click to collapse
I didn't test the script (I stick to 3.2.80).
For modifying I use LeTamas' "manual" method- correct binaries are present (linux 32bit). Unpacking .aos file works fine but I had problems with unsquashfs (header error in =<4.0.6 fw) so the only option was mount -o loop.
If it works for 4.0.7= Archos corrected the error
Hi!
I've just downloaded the 4.0.6 version from archos servers.
Code:
h**p:// update.archos.com/9/gen9/gen9_4.0.6/firmware_archos_it4.aos
Unpacking of the squashfs still works here...
Maybe you missed the needed steps:
Code:
cd $BASEPATH/firmware_archos_it4/root/data
dd if=androidmerged.squashfs.secure of=androidmerged.squashfs bs=256 skip=1
if [ -d output_folder ]; then
rm -f output_folder
fi
unsquashfs -d output_folder androidmerged.squashfs
Maybe stupid question but why we need this busybox ( this archive actually is missing)? I think there is busybox already from the archive is that archive is rooted or give us something more?
Hi,
I saw that another customized roms contains an updated busybox, which can provide more features.
(Honestly, I don't know which feature is it worth to replace the builtin busybox... . :angel
If you want to build an image without this step, just comment out the busybox call.
The busybox archive is missing, because I don't know If I have the permission to include a compiled (from other people) busybox by default.
[Dev] CM9 Mod Extension
Help!
I can't wait to try out the final build from Anybody interested in testing a CM9 super-alpha build in a week or so?, so I decided to try out a modification of the stock rom with CM9 by myself. And yes, today zygote has startet and I got a screen =)
I would like to share with you, what I did and I hope that you can give some code extensions to build a better mod script.
So, let's go:
1) Compile cyanogen mod
Install prerequisites
(I used Ubuntu Precise 32bit in a chrooted environment)
Then perform like suggested a repo init/sync:
Code:
repo init -u git://github.com/CyanogenMod/android.git -b ics
repo sync
Then perform a compile action:
Code:
. build/envsetup.sh
lunch full_panda-eng
mka
PS: I had to modify the cyanogen_root/external/webkit/Android.mk
because there where build errors:
Code:
# Build the performance command line tool.
#include $(WEBKIT_PATH)/android/benchmark/Android.mk
Get some coffee I full build will take about an hour (on my system).
2) Unpack Archos stock image
You can use my tool at #1 of this thread!
PS: I used 407 stock image...
3) Create a loop image and mount it into a folder
You can use my script for that.
4) Get my new archive and unpack it.
Go into that folder and modify the bash script Porting.sh to match the folder paths:
Code:
export CYANOGEN=/cynogen_mod/out/target/product/panda
export STOCK=/ExtractAOS/firmware_archos_it4/root/data/output_folder/
export OUT=/Android/Development/mount
Run the script as root!
Code:
sudo ./Porting.sh
You get a file system contents in $OUT. Unmount the loop directory and
load it into the media update path as usual:
Code:
adb push archos.ext4.update /data/media/ && adb reboot
That's it! You should get a CM9 desktop.
------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------
That was the good news! The bad:
The current state is a proof of concept.
I'm really hope that you can contribute to the modding script: I'm not an android expert!
Dirty technical details:
I had to use the existing vendor libraries especially the graphics drivers (I tried to use the panda binaries, with no luck :-/ ).
I moved them into the /system/vendor/lib folder and symlinked the libraries to /system/lib. This way it seems to much cleaner.
I modify the init.rc script to mount the data directory into /data2 to not interfere with existing archos installation. Later we should be able to point to that directory again. (Hint: to update the development you must use a adapted adb update command:
Code:
adb push archos.ext4.update /data2/media/ && adb reboot
From the first test, I saw that I have no real touchscreen, it worked like a "mouse" controlled environment. Maybe because the panda board has an mouse as input device.
Thanks.
PS: I'm curious how JackpotCalvin has solved the CM9 integration, It sounds way better than my solution...
Nice one
Some thoughts:
-why do you copy $STOCK/usr/bin/[binary name] when later all $STOCK/usr dir is copied?
-there should be no need to place PowerVR in /system/vendor/lib/[...], /system/lib/[...] should work fine
-check prelinks for existing libs and adjust prelink map for [repo path]/device/ (this may not be necessary, last system I compiled was Froyo)
I'm stopping my efford because I'm at a point, where I learned that just replacing the files between both sources (Panda Board CM9 builded binaries and Archos Stock ROM) is not a 100% solution.
I resolved my input devices setup, by copying the corresponding icd (and other) foles to the output folder. Then I had unresolved issues by getting WLAN to work. I found out, that in libandroid.so and libandroid_legacy.so are coded the modules which are needed for WIFI. Panda board is compiled w/o WIFI, so there are no
wifi modules loaded. (After I load wl12xx_sdio.ko manually by using insmod, the wlan was functional!).
The solution IMHO must be, to compile an adapted CM9 with all hardware specific settings. Maybe the customized files can also moved inside the device configuration directory so that the merge script is obsolete (my hope).
So I decided to either to wait until JackpotClavin is posting his CM9 configuration files
Code:
http://forum.xda-developers.com/showpost.php?p=28439197&postcount=80
or to learn how to make a new device on CM which maches our Archos device. (Maybe someone else can give me some archos specific instructions).
Update: Great! JackpoClavin has provided sources =)

[GUIDE]Development for GalaxyTab 7.7 and Plus. How hard could it be?

Planning this for sometimes. So much work ahead. Just studying the new code cause me a lot of time. I think I have to rush it out so that someone may share my burden. Don't have much time to polish it. I'm trying to provide all commands, files and links. Please correct me if something is wrong or missing. Hoping this could be a stepping stone for those interested. If you like challenge, it'll be fun!
1. Introduction
If you have watched "Top Gear", you would have heard Jeremy Clarkson said "How hard could it be?". Why is it so hard to build a rom for our tab?
When I first play with rom building, it was quite straightforward. I recuilt my retired PC (Celeron 1.2G with 3G RAM, 40G HD) and follow the guild for building PA. Installing Ubuntu 12.04 and then the necessary packages. Everything is ready in a few hours. It was really challenging your patience to repo sync the source. After a few retries, I finally completed the download in two days! After two hours, my harddisk is full! Then I collected another retired 80G HD from a friend. Re-install everything and build again. Building requried 7 hours on my antique PC. With only a few minor errors to correct, my first rom pa2.55 was out. So how hard could it be? It was our predecessors ( @ohanar, @locerra, etc.) :good: who had already done lots of hardwork on device trees and kernel! If Samsung has really released the hardware related sources, there will not be so much troubles for us. At the time Android 4.2 launch, we have a new problem. Our tab's CSR chip doesn't support Bluedroid. See the Nexus family, everything is ready. Rom building will never be so pain in the ass as us.
1.1 What's wrong with our hardware
GT-7.7 and Plus use the exynos4 smdk4210 board with Mali-400 GPU. Quite a number of devices have similar hardware. The main problem we have would be:
1.1.1 CSR bluetooth chip.
CSR chip doesn't support bluedroid which become standard after Android 4.2. Bluez.org has provide a solution for 4.2 early this year but porting to 4.3 and 4.4 may take some time.Working on it now. Anyone has experience on bluetooth are welcome to help.. Bluez working now. See my Thread How to port Bluez to Android 4.4. Cheers!:highfive:
1.1.2 Athero wifi chip.
Samusng's wifi driver has issues on 5G support and SOD. I'm using the modified kernel driver from Samsung's 4.1.2 source. Athero provide drivers for 3.1 to 3.10 linux kernels but they have no wakelock support. I also wrote a drive base on Athero's source and add wakelock support but have no time to polish it now. Athero's chip doesn't have firmware for AP as Boardcom. Which is also the way Android platform providing wifi tethering in framework. To support wifi tethering we have to change the framework and the driver. Anyone has experience in linux HostAP are welcome to help. Wifi tethering is ok now! Tutorial will be in Post#2 soon.
1.1.3 modem chip (xm6260).
RIL stand for (radio interface library). Most of the phone manufacturer would provide their own vendor lib. The only working blob now is Samsung's ICS propietry libsec-ril.so which is obselete now. The one from stock 4.1.2 not working but no time to trace. It also don't seems to have much difference. This library handle the AT commands issuing to the (baseband to) modem chip. xm6260 has a complete set of command manual. It should not be too hard to rewrite if we can hack the ports. However it is not worth to splend too much time on this. Those has experience in AT commands are welcome to help.
RIL details: http://www.kandroid.org/online-pdk/guide/telephony.html
1.2 Where to get the source?
1.2.1 Samsung's source for our tab
The best source would be from Samsung http://opensource.samsung.com/. Sadly, the source from Samsung only cover the kernel. Our tab only have source up to 4.1.2 and kernel source 3.0.31 from Samsung.
1.2.2 Samsung's source for other devices
Luckly, we have similar architecture to some newer Samsung models. Their source is our major source now. eg. We can use the Mali driver from Note8 and/or i9300.
1.2.3 Manufacturere's web site.
The other source would be from the chip manufacturer. eg. Athero has source for linux.
1.3 What is going on at boot?
1.3.1 Power ON
a) When power button is long pressed (should be released after the logo shows otherwise it will reboot again every 6 seconds). The manufacturer's bootloader would show the vendor's logo. At that moment, bootloader would sense if there are key being pressed. Standard Android will go to boot menu when pwr + vol- is pressed. Samsung would go to download mode (something like fastboot) and accept pwr + vol+ to start recovery mode. If no other key is pressed, it would be a normal boot.
b) When USB is plug in (PC usb port or charger) at power off, the tab will be turn on silently. It is in the LPM (low power mode). According to lpm.rc (executed by Init, will be explained in 1.3.3), CPU will be set to POWERSAVING and the program charger is running. It should only handle simple tasks like Detecting the pwr button to show the charging images. If the pwr is long press when showing the charging image, it will reboot as in a).
3) Lollipop LPM: charger is link to the program /sbin/healthd. The process is similar to b) but lpm.rc is merged to init.rc.
1.3.2 Boot image
For our tab, there are two parts for a boot.img or a recovery.img. kernel binary and initramfs. As the name imply, Init-Ram-FS is the initial file system loaded into ram when the devices boot. Kernel binary provide the hardware drivers libraies which communicate with the hardware and baseband. At normal boot or recovery mode, the image (in /boot or /recovery partition) will be decompressed and loaded to memory. Initramfs will be loaded in root(/). It would consume a few hundreds MB of RAM and that's why our free ram is only 7xxM.
In LPM, it would depends on the last boot state. If it was powered off from recovery, recovery.img will be loaded and handle the LPM. If it was powered off from platform, boot.img will be loaded and handle LPM. That's why It might show different charging images if the charging images for reovery.img and boot.img are different.
Stock cook roms can unpack and modified the initramfs from the existing zImage. It is created in system/core if we build it from source. Here is a tool which can unpack/repack our boot.img or recovery.img.
1.3.3 Init
There is the Init program in every initramfs. This is the first program to run according to the sequence in the init.rc (or lpm.rc when in LPM). Partitions will be mounted and symlinked, default values and permissions are assigned, services will be started, etc. The source of Init is in system/core. The last thing Init do would be the continuous eventloop to process events.
2. Getting Start
To start building, we need the building environment. Many tutorials have alreay covered the details so I just list my suggestions. The guide from Google is a bit outdated but really helpful. http://source.android.com/source/building.html
Basic knowledge of linux is required. All commands are run in a terminal.
2.1 Hardware
A decent PC with as much ram as possible. Thanks for the donations, I can upgrade to a better i5 notebook with 4G ram and a 500G partition only for building. It would take 3+hrs. for a clean build. RAM and Harddisk speed are essential. A desktop PC with same configuration will be faster since notebook harddisk is slower. I plan to add more RAM when the price drop (seems to be a long wait )
RAM: 4G or above is recommended.
Harddisk space: 30G+ for system, 60G+ per rom, size of ccache (50G-100G), Roughly, a partition with at least 120G for one rom. Bigger is better.
A decent internet connection is essential. It will take days to sync the source if you only have bandwidth of 2M or less .
2.2 OS
64bit Ubuntu Desktop 12.04 or above. Recommend 13.04 or above. I'm using the latest 14.04.
2.3 Install the required packages
These packages are required during building and packing. (eg. gzip is required to compress the kernel binary)
type command: (have a beer or coffee. It will take a while)
Code:
[I][COLOR="Green"]For Ubuntu 12.x and 13.x:[/COLOR][/I]
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev zlib1g-dev:i386 \
libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 lib32z-dev \
libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc \
readline-common libreadline6-dev libreadline6 bzip2 libbz2-dev libbz2-1.0 libncurses5-dev lib32readline5 \
lib32readline-gplv2-dev lib32readline6 libreadline-dev libreadline6-dev:i386 libreadline6:i386 pngcrush \
libghc-bzlib-dev lib32bz2-dev libsdl1.2-dev libesd0-dev squashfs-tools schedtool libwxgtk2.8-dev python
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
[I][COLOR="Green"]For Ubuntu 14.x and 15.x:[/COLOR][/I]
sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev libesd0-dev libwxgtk2.8-dev squashfs-tools \
build-essential zip curl libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils xsltproc lzop \
libc6-dev schedtool g++-multilib lib32z1-dev lib32ncurses5-dev lib32readline-gplv2-dev gcc-multilib
2.4 Insatll android-sdk
Download (for Linux 64-bit of course): http://developer.android.com/sdk/index.html
Extract the file to a directory (eg. ~/android-sdk)
Add the path to ~/.bashrc
type command:
Code:
sudo gedit ~/.bashrc
at the bottom add the path
Code:
export PATH=~/bin:~/android-sdk/tools:~/android-sdk/platform-tools:$PATH
Quit and restart terminal to commit the changes.
Verify the path and update the SDK
type command:
Code:
android
2.5 Install java
If you have installed eclipse, openJAVA is ready. Some say it is not suitable for android development.
I've tried both and I found no appearing difference.
To install SUN JAVA (Ubuntu 13.04 or above)
type command:
Code:
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java6-installer
For Lollipop: openjdk 7 is required
Code:
sudo apt-get install openjdk-7-jdk
2.6 Install repo
type command:
Code:
mkdir -p ~/bin
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
2.7 Add usb dev rules
Which are required for adb and fastboot, eg. View attachment 51-android.zip
type command:
Code:
sudo cp 51-android.rules /etc/udev/rules.d
sudo chmod 0644 /etc/udev/rules.d/51-android.rules
2.8 Enable ccache
type command:
Code:
sudo gedit ~/.bashrc
add lines for CCACHE
Code:
export USE_CCACHE=1
export CCACHE_DIR=~/android/.ccache
Quit and launch the terminal again to commit the changes
ccache will cache the object files of gcc for next build, it would increase the speed of subsequent builds alot.
After source is sync in 2.11 and before build, we can set the size of ccache first.
type command:
Code:
~/android/rom/prebuilts/misc/linux-x86/ccache -M<size>
2.9 Init the source
Make a new working driectory for your rom
type command: (eg. ~/android/rom)
Code:
mkdir -p ~/android/rom
Each rom has its own manifest.xml listing all the required projects.
It is usually in the project android (manifest for PA). The readme of this project would provide the command to init.
eg. CM11.0: https://github.com/CyanogenMod/android/tree/cm-11.0
type command:
Code:
repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
It will fetch the manifest.xml and put it into a hidden directory .repo in the current directory (~/android/rom/.repo)
2.10 preparing local_manifest.xml
It is not a good pratice to change the manifest.xml directly. If the ROM has change its manifest, you would require to init again. The right way is putting everything your device needed in a seperate file .repo/local_manifests/local_manifest.xml. The device trees and kernel source for GalaxyTab 7.7 and Plus : https://github.com/danielhk?tab=repositories
eg. cm11.0 for p6800
Code:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="danielhk/android_hardware_atheros_wlan" path="hardware/atheros/wlan" />
<project name="danielhk/android_device_samsung_p6800" path="device/samsung/p6800" />
<project name="danielhk/android_device_samsung_smdk4210-tab" path="device/samsung/smdk4210-tab" />
<project name="danielhk/android_kernel_samsung_smdk4210" path="kernel/samsung/smdk4210" />
<project name="danielhk/proprietary_vendor_samsung_smdk4210" path="vendor/samsung" />
<project name="CyanogenMod/android_hardware_samsung" path="hardware/samsung" />
</manifest>
Note: Settings will follow manifest.xml. cm-11.0's manifest has default remote="github" and revision="refs/heads/cm-11.0" so we can omit the same entries here. For other roms, see the defined names in manifest.xml and change accordingly. You can also add other devices trees here if you want to build them for the same rom.
2.11 sync and build
To fetch the source (specified in manifest.xml and local_manifest.xml) to working directory (~/android/rom)
type command:
Code:
repo sync -j32
-J specify the no. of threads to download. I have a few trials. Seems 32 works for me.
When it is done. You will find that ~/android/rom is not empty now.
You may set the ccache size now:
type command: (eg. 50G)
Code:
~/android/rom/prebuilts/misc/linux-x86/ccache -M50G
Only if you want to change size, otherwise it only requires once.
To build a rom, change to the rom directory. Usual commands: (eg. for CM roms)
Code:
cd ~/android/rom
. build/envsetup.sh
lunch cm_p6800-userdebug
mka bacon
CM need to download a prebuilt (Termianl.apk). To simplify this routines, I modified the build script from PA to cm View attachment rom-build.zip.
Copy it to the rom directory, type command:
Code:
cd ~/android/rom
./rom-build.sh p6800
After building is complete with no error, the rom will be output to ~/android/rom/out/target/product/p6800.
3. What can we do? :laugh:
3.1 Kernel
Since Samsung provide the complete kernel source, working on kernel would be comparatively speaking much easier.
When we say kernel, we mean the boot.img or zImage which already include the initramfs. This image will be flash to the /kernel (/dev/block/mmcblk0p5)
Hardware and flags are defined in defconfig inside <kernel dir>/arch/arm/config. It is the Linux standard.
3.1.1 difference between stock kernel and the kernel in custom rom
The main difference between the two kernels is the location of kernel library modules. Libray modules are mainly for network and storage drivers. By building them as modules, they can be stoped and restarted in case of critical errors.
Stock kernel put it in /lib which is part of the initramfs. We need to do extra steps to manually copy them to the initramfs after the first build and rebuild again. If you want to build the stock kernel, there is a very good tutorial.
Custom rom put the kernel library modules in /system/lib. Thus boot.img need to match those modules, otherwise they will not work properly.
For custom roms, which defconfig to be used is defined in device tree.
eg. For p6800, in the file device/samsung/p6800/BoardConfig.mk. There is the line:
Code:
TARGET_KERNEL_CONFIG := cyanogenmod_p6800_defconfig
It specify which defconfig file for the kernel
I wrote a View attachment build-k.zip scirpt to simplify the building of kernel alone. Copy it to the rom working directory (~/android/rom)
eg. For p6800, type command:
Code:
./build-k p6800
New boot.img will be output to the same directory as rom if no error.
3.1.2 Add/modify O/C, U/V, GOVERNORS, hardware drivers, etc.
As mentioned in 1.2, we can copy/modified the source from i9100 and n7000 kernels. For example, Dorimanx and Slyahkernel provide many useful code for us. The source of i9300 from Samsung may also provide some drivers update (eg. Mali)
Ref: Exynos4210 cpu menu., Mirror download
3.1.3 Default Orientation
Why the incall screen always landscape?
Many apks assume the default orientation is portrait but our tab's default orientation is landscape. It is a kernel behaviour so that recoveries (including the stock 3e recovery) are all in landscape.
To avoid this odd behaviour of apks like inCall screen, changing the default orientation in kernel is the ultimate solution.
It is already in my do list for a long time but trying to keep up with the android plaftform already occupy all my spare time...
I already have some idea how to do. Anyone interested to help on this can PM me. Already fixed in the platform
3.1.4 Update the kernel source
The existing kernel is base on Linux 3.0.x. It is outdated but I don't think Samsung would bother to update it. I had tried starting with the 3.4 source from Google but don't have enough time to carry on. I have filled some drivers already. Will take another shot later if I have time...
Anyone have experience in Linux kernel are welcome to help. No more guides are there, this would be a great challenge but fun!
3.2 device tree
Every device requires a device tree which:
a) Specify the hardware
b) define some overrided library. (eg. sensor, camera)
c) provide the extra files to be put in the initramfs. (init.<device>.rc, fstab.<device>, etc.)
If there are a few models variants, common parts would be put in a seperate common device tree (eg. smdk4210-tab for our tab). In this way, changing can be made once for all variants.
Most of the work on porting for a specific ROM would be on the device tree. Same as the kernel, we can get some update by modifying from other devices. CM's device tree for i9100, n7000 and i9300, etc. With a good device tree, we can port to any ROM.
3.3 Bluetooth support after 4.2.
In 4.2.2, I changed the source of framework, system_core, phone apk and device tree to work with bluez. It was a huge job! Hundreds of lines had been changed. Many files are replaced. It was quite clumsy but was the only way then. This way may not work for 4.3 onward.
Here are the details of both stack:
Bluedriod : http://source.android.com/devices/bluetooth.html
Bluez : http://www.kandroid.org/online-pdk/guide/bluetooth.html
3.3.1 We may modify the bluedroid to support our chip.
3.3.2 Working on the bluez support. I'm trying now.
  Bluez5 is OK now. See my thread: How to port Bluez to Android 4.4
3.4 Recoveries
With the device tree and kernel, we can build the recovery from source. CWM would be a side product of CM roms and TWRP has a tutorial.
The same View attachment build-k.zip script can be used to build recovery alone. In the rom working direcotry, to build recovery only
type command:
Code:
./build-k p6800 recovery
With no error, recovery.img will be at the same output directory as rom.
Local manifest
https://github.com/danielhk/local_manifest
All model share the same local_manifest.xml
daniel_hk, Check and commit to your tree my patches for PAC-4.2.2
Vaka2 said:
daniel_hk, Check and commit to your tree my patches for PAC-4.2.2
Click to expand...
Click to collapse
Thanks!
It nice to see someone interested in our development!
I have look into your changes briefly.
1. Some changes in media which I'll leave the user to decide. I rather keep the builds as genuie as possible.
2. Some of them are new commit of the original source which will automatically updated in a sync.
3. I forgot to upload a few minor projects to github.
One of which was android_build which will include the files like hciattach building from source. If you study the source of exteranl/bluetooth/bluez, they are there. That means it might have update later. No need to add as a blob.
Actually the best way is including them in PROJECT_PACKAGES section of the device.mk. It would have the same result without touching the original source. Less touch to the original source means fewer conflict later. I was caught up and did't have time to tidy up everything so I leave it there. Also, files from bluetooth should be put in the smdk4210-tab device tree. All model share the same source.
vendor_pac should be upload to official PAC's git. They already gave me an account but they use Google+ which I have trouble to login here. I was working on a job and I hadn't follow up. Now I'm working on 4.4 which PAC haven't release yet. So I put aside first.
You probably didn't have to waste you time if you PM me first.
Everytime I upload to github is a challenge, it always break before complete. I have to monitor it from time to time. Annoying! So I can only upload once a while when everything is ready...
To be honest, I really don't have time to keep up with the old source. The new ports already occupy all my spare times. With limited resource, I can only focus on major issues. Bluetooth after 4.3 is my first priorty. If it can be done, means we can go much further.
If you are interested, you may pick one of the thing I mentioned in this thread to start. Wifi-tethering or the vendor ril library is needed too. You may try it in 4.2.2 first. See what you are good at and interested to. PM me or post again if you have any questions and/or suggestion.
Thanks again for your effort.
daniel_hk said:
Thanks!
It nice to see someone interested in our development!
I have look into your changes briefly.
1. Some changes in media which I'll leave the user to decide. I rather keep the builds as genuie as possible.
2. Some of them are new commit of the original source which will automatically updated in a sync.
3. I forgot to upload a few minor projects to github.
One of which was android_build which will include the files like hciattach building from source. If you study the source of exteranl/bluetooth/bluez, they are there. That means it might have update later. No need to add as a blob.
Actually the best way is including them in PROJECT_PACKAGES section of the device.mk. It would have the same result without touching the original source. Less touch to the original source means fewer conflict later. I was caught up and did't have time to tidy up everything so I leave it there. Also, files from bluetooth should be put in the smdk4210-tab device tree. All model share the same source.
vendor_pac should be upload to official PAC's git. They already gave me an account but they use Google+ which I have trouble to login here. I was working on a job and I hadn't follow up. Now I'm working on 4.4 which PAC haven't release yet. So I put aside first.
You probably didn't have to waste you time if you PM me first.
Everytime I upload to github is a challenge, it always break before complete. I have to monitor it from time to time. Annoying! So I can only upload once a while when everything is ready...
To be honest, I really don't have time to keep up with the old source. The new ports already occupy all my spare times. With limited resource, I can only focus on major issues. Bluetooth after 4.3 is my first priorty. If it can be done, means we can go much further.
If you are interested, you may pick one of the thing I mentioned in this thread to start. Wifi-tethering or the vendor ril library is needed too. You may try it in 4.2.2 first. See what you are good at and interested to. PM me or post again if you have any questions and/or suggestion.
Thanks again for your effort.
Click to expand...
Click to collapse
Thanks to you Daniel for your immense effort on detailing all this! I'm far from a dev status like you and @UpInTheAir. But my support will always go to you developers. Both of you has done an impressive work for an outdated hardware and keep us happy with your Rom and Kernel. Again, thanks a lot.
Thanks, all hail daniel_hk for this!
Daniel,
I can only thank you for all the work he is having to keep our equipment (62xx, 68xx, TXX) alive and really Kitkat will give a new breath, for even in an experimental state already see how the device works smoother. A feather can not help, but I'm looking forward to seeing this in functional status.
As a suggestion, I honestly do not know the procedures, but it would be interesting to ask an official support OmniROM (ROM promising, others liked) and CM. The Galaxy SII has the same hardware, in which the use OmniROM and this magnifies the ROM. Maybe they (Team OmniROM) may offer official support or at least help in these matters!
I'm almost begging for support OmniROM, and Entropy512 (http://forum.xda-developers.com/member.php?u=591147&nocache=1&z=3487892739940434) Kindly reply me: "Someone who is working with one of Those devices and has it working needs to submit it. "
Sorry for my english
Hi Daniel,
Whe I try to repo sync, I was stopped by the error:
"fatal: Couldn't find remote ref refs/heads/cm-10.2"
"Cannot fetch danielhk/proprietary_vendor_samsung_smdk4210."
I was trying to build a cm-10.2 version.
I checked your repository and the folder was right there.
I am new to building android rom. There must be something obvious that I missed.
Thanks.
11nn93n9 said:
Hi Daniel,
Whe I try to repo sync, I was stopped by the error:
"fatal: Couldn't find remote ref refs/heads/cm-10.2"
"Cannot fetch danielhk/proprietary_vendor_samsung_smdk4210."
I was trying to build a cm-10.2 version.
I checked your repository and the folder was right there.
I am new to building android rom. There must be something obvious that I missed.
Thanks.
Click to expand...
Click to collapse
I think you get this line from my PAC manifest.
That was base on cm-10.1, default is cm-10.1. If you take a look of the project danielhk/proprietary_vendor_samsung_smdk4210 on github, you will find only one tree cm-10.1. cm-10.2 can use the same tree. I'll find time to update it later.
When you build cm-10.2, default tree is cm-10.2. The line without a revision will assume the default. That's why you can find it.
Your solution: Add the revision=cm-10.1 at the end of the project.
Code:
.... danielhk/proprietary_vendor_samsung_smdk4210" revision="cm-10.1" />
Good luck!
daniel_hk said:
I think you get this line from my PAC manifest.
That was base on cm-10.1, default is cm-10.1. If you take a look of the project danielhk/proprietary_vendor_samsung_smdk4210 on github, you will find only one tree cm-10.1. cm-10.2 can use the same tree. I'll find time to update it later.
When you build cm-10.2, default tree is cm-10.2. The line without a revision will assume the default. That's why you can find it.
Your solution: Add the revision=cm-10.1 at the end of the project.
Code:
.... danielhk/proprietary_vendor_samsung_smdk4210" revision="cm-10.1" />
Good luck!
Click to expand...
Click to collapse
Thank you for your help. Working on it. Its a big learning curve for me.
I made up to now the most progress with Ubuntu 13.04 64bit version building the cm 10.1 version.
With Ubuntu 12.04 and 13.10, I have been stopped much earlier than on 13.04.
Now I encountered the error below when running build-k p6800:
target thumb C++: libstagefright <= frameworks/av/media/libstagefright/ACodec.cpp
frameworks/av/media/libstagefright/ACodec.cpp:53:24: fatal error: sec_format.h: No such file or directory
compilation terminated.
make: *** [/home/lgeng/android/rom/out/target/product/p6800/obj/SHARED_LIBRARIES/libstagefright_intermediates/ACodec.o] Error 1
make: *** Waiting for unfinished jobs....
I downloaded the folder that contains the sec_format.h file from https://android.googlesource.com/device/samsung/crespo/. But It is not clear to me where to place the folder.
Thanks.
11nn93n9 said:
I made up to now the most progress with Ubuntu 13.04 64bit version building the cm 10.1 version.
With Ubuntu 12.04 and 13.10, I have been stopped much earlier than on 13.04.
Now I encountered the error below when running build-k p6800:
target thumb C++: libstagefright <= frameworks/av/media/libstagefright/ACodec.cpp
frameworks/av/media/libstagefright/ACodec.cpp:53:24: fatal error: sec_format.h: No such file or directory
compilation terminated.
make: *** [/home/lgeng/android/rom/out/target/product/p6800/obj/SHARED_LIBRARIES/libstagefright_intermediates/ACodec.o] Error 1
make: *** Waiting for unfinished jobs....
I downloaded the folder that contains the sec_format.h file from https://android.googlesource.com/device/samsung/crespo/. But It is not clear to me where to place the folder.
Thanks.
Click to expand...
Click to collapse
Not much I can tell. You have to provide the manifest.xml and local_manifest.xml if exist. And device tree changes if exist.
1. build-k is for kernel building only. frameworks_av seems not relevant.
2. crespo is another device. Not the right way to get missing file there.
3. With proper settings and manifest, Ubuntu 12.04 to 13.10 (which I'm using) have no apparent different for building.
If you are building cm-10.1, it is mature. No way there is missing file.
With no other info., I guest there is something wrong with your manifest or device tree. Mixing version projects, wrong flags in device tree, etc.
You might need more reading on what is device tree and manifest first.
Good luck!
Hi,
can you help me with integrating device to manifest.xml? I think there's the problem because everything runs fine until I write luch cm_p6200-userdebug, becuase it shows me that the device isn't found and in /android/rom/device, there isn't any folder called /samsung/p6200. I did everything by the guide, I only changed the local_manifest device info to p6200, because I own it. I'm using Ubuntu 14.04. Thanks for your help.
tom411 said:
Hi,
can you help me with integrating device to manifest.xml? I think there's the problem because everything runs fine until I write luch cm_p6200-userdebug, becuase it shows me that the device isn't found and in /android/rom/device, there isn't any folder called /samsung/p6200. I did everything by the guide, I only changed the local_manifest device info to p6200, because I own it. I'm using Ubuntu 14.04. Thanks for your help.
Click to expand...
Click to collapse
Not much details. next time provide detail. At least, send me your local_manifest.xml. It is definitely the source of your problem. You haven't tell which cm you built too.
I don't know what's wrong because I can't see anything in your side.
But I can tell you that device tree of p6200 didn't download. Check the typings of your local_manifest.xml. It should match the one in github.
Good luck!
TO ANYONE, YOU HAVE TO PROVIDE DETAILS. OTHERWISE, I DON'T KNOW HOW TO HELP!
I really don't have time to guess. You have to forgive me if I ignor your post.
From Nexus 7 上的 Tapatalk
Okay, sorry for it, I didn't know you need it. I want to build a Cm-11. I looked at my local_manifest and I think it's correct. Here is it
edify question for our 815's
Taken from one of your script's
mount("ext4", "EMMC", "/dev/block/mmcblk0p9", "/system");
Installing a .txt into sdcard0/data through .zip in recovery.
I used linux command to find paths for each of the memblocks - but didnt know which path, partition, I am looking for here. /system /userdata etc UHHHH
so to mount to the "sdcard0 /data"directory to install a plain .txt file would be ???
mount("ext4", "EMMC", "??????????????", "/data");
also can I call "/data" anything - like "/datadog" - since this is just a reference to a mount point and is temporary?
One other quicky
First I found this in an edify tutorial -
"/system partition is automatically mounted. this command is needed when you need to mount another partition beside /system or in any condition when recovery mode failed to mount your system partition. the system's location is /dev/stl9, cache /dev/stl10, and data /dev/stl11 (all partition type commonly rfs, will be differ if you have custom kernel or rom)."
since this is a custom rom does /system still auto mount - meaning in ref to to your code above - was it unnecessary but probably good practice or because this is a custom rom there are changes that move the location for /system. I noticed that " the system's location is /dev/stl9, cache /dev/stl10, and data /dev/stl11" was not in the memblock paths??
Start my intro to kernels tomorrow - Oh boy
Off subject - I knew Brazil - tough break with the injury though. Next wins - Argentina and Costa(CoastBaby)!! Going to bed now 6:00 AM WHAT.
Lt.col.johncross said:
Taken from one of your script's
mount("ext4", "EMMC", "/dev/block/mmcblk0p9", "/system");
Installing a .txt into sdcard0/data through .zip in recovery.
I used linux command to find paths for each of the memblocks - but didnt know which path, partition, I am looking for here. /system /userdata etc UHHHH
so to mount to the "sdcard0 /data"directory to install a plain .txt file would be ???
mount("ext4", "EMMC", "??????????????", "/data");
also can I call "/data" anything - like "/datadog" - since this is just a reference to a mount point and is temporary?
One other quicky
First I found this in an edify tutorial -
"/system partition is automatically mounted. this command is needed when you need to mount another partition beside /system or in any condition when recovery mode failed to mount your system partition. the system's location is /dev/stl9, cache /dev/stl10, and data /dev/stl11 (all partition type commonly rfs, will be differ if you have custom kernel or rom)."
since this is a custom rom does /system still auto mount - meaning in ref to to your code above - was it unnecessary but probably good practice or because this is a custom rom there are changes that move the location for /system. I noticed that " the system's location is /dev/stl9, cache /dev/stl10, and data /dev/stl11" was not in the memblock paths??
Start my intro to kernels tomorrow - Oh boy
Off subject - I knew Brazil - tough break with the injury though. Next wins - Argentina and Costa(CoastBaby)!! Going to bed now 6:00 AM WHAT.
Click to expand...
Click to collapse
I don't know what's your objective.
Some points to note:
1. command in updater-script use the function defined in updater-binary. Which are not necessarily a Linux executable command. These commands only valid in the updater-script.
2. You can only mount to an existing directory (mount point) which has not been mounted before. The mount command in Linux is a shell command which is executed by /bin/bash.
3. /system is mount by init following the sequence in .rc files. In recovery, a program is running to provide the interface for I/O. It doesn't require /system partition.
4. No matter which rom (stock or custom), the content of /dev are defined in kernel. Partitions info. is read from the PIT (partition info. table). Kernel will initialize the device at boot accordingly. They are similar to a harddisk partition.
5. our tab has emulated int. sdcard. It is part of the /data, at /data/media.
Hope these might help
earlier question simplified
My problem is with the mount command in a zip file to be used on our Carbon ROM partitions.
My goal is to make 4 different .zip files that can be installed with the recovery software. Each zip places one (the same) simple.txt file into a different folder then the previous zip did.
After I install the 4 zips I should be able to use my file manager app to view the simple.txt in each of the following folders
/sdcard0/data so the ????????? in => mount("ext4", "EMMC", "????????????", "/NAMEOFMOUNT"); would be ==>
/sdcard0/Download so the ????????? in => mount("ext4", "EMMC", "????????????", "/NAMEOFMOUNT"); would be ==>
/Root/data so the ????????? in => mount("ext4", "EMMC", "????????????", "/NAMEOFMOUNT"); would be ==>
/Root/system so the ????????? in => mount("ext4", "EMMC", "????????????", "/NAMEOFMOUNT"); would be ==>
This should give me what i need to fill in what I am missing on understanding this.
Thanks - I hope that this understandable
Off subject - Argentina taken care of biz - Costa is dead to me - Next winners Argentina and Germany
Just about there
6GB with intel I5 -1TB- is now setup as a dual boot with Windows 8.1 and Ubuntu 14.4. All the packages are installed etc.
My linux flavor is ARCH or Manjaro (arch based) - Not a big fan of unity, but since I did not want any pitfalls for support reasons I will use Ubuntu for now.
I now have a descent grasp on GIT and repo, as well as installing cyanogen on one supported device. It would appear that to install on our device any of the custom roms I would just need to provide a local manifest with the proper projects.
I am a little fuzzy on a few things but I think if you could please post two (i815's) local manifest's for two of our newer kitkat roms say Omni & Slim I should be able to figure out my answers or at least narrow down my misunderstandings to exact questions.
Thanks
All Hail GERMANY - - that final game was a real snooze fest.
daniel_hk said:
I don't know what's your objective.
Some points to note:
1. command in updater-script use the function defined in updater-binary. Which are not necessarily a Linux executable command. These commands only valid in the updater-script.
2. You can only mount to an existing directory (mount point) which has not been mounted before. The mount command in Linux is a shell command which is executed by /bin/bash.
3. /system is mount by init following the sequence in .rc files. In recovery, a program is running to provide the interface for I/O. It doesn't require /system partition.
4. No matter which rom (stock or custom), the content of /dev are defined in kernel. Partitions info. is read from the PIT (partition info. table). Kernel will initialize the device at boot accordingly. They are similar to a harddisk partition.
5. our tab has emulated int. sdcard. It is part of the /data, at /data/media.
Hope these might help
Click to expand...
Click to collapse
I'm going to see my mom for 2 days. I'll see if anything missing when return.

Categories

Resources