Tonight I managed to get my first Android build, 2.0.1, compiled myself from AOSP, up and running on the Vogue from NAND.
I made some small changes, most notably, updating the build.prop to adjust the DPI to 120 and adding the libhtcgeneric_ril.so library, as well as adding the necessary (or.. is it necessary?) build.prop entry to get the radio functioning.
I proudly present my first Android build.
NOTE: This is purely for testing/evaluation purposes.
Working:
Radio
Data
Screen resolution is accurate
Not Working:
Audio
Power Functionality (buttons do not wake the phone?)
GPS
Anyone up for pointing out what I need to do differently to get the non-working aspects functioning? Any tips on optimization? Clues to setup and take full advantage of build.prop?
Additionally, do we have a central repository of Vogue (or MSM7k) drivers that've been ported as source, ready to be compiled for different versions?
There's probably a lot missing here that I'm not even considering.. so please feel free to make any comments, give any advice, or point me towards any documentation.
All help is appreciated. Thanks!
I think this is the repo you're looking for:
http://androidhtc.git.sourceforge.net/git/gitweb-index.cgi
It contains Audio & GPS drivers, among other things. Can you wake the phone over adb shell with the command echo "wake" > /sys/android_power/request_state ? I'm also interested in getting an AOSP build running from source, I'd like to get the camera working for Eclair.
EDIT: Also, in the zenulator's eclair mod, the /system/etc/keychars directory contains these files:
Code:
htcvogue-ts.kcm.bin
qwerty2.kcm.bin
qwerty.kcm.bin
sapphire-keypad.kcm.bin
trout-keypad.kcm.bin
trout-keypad-qwertz.kcm.bin
trout-keypad-v2.kcm.bin
trout-keypad-v3.kcm.bin
tuttle2.kcm.bin
vogue-ts.kcm.bin
Perhaps that vogue binary is needed? That's my shot in the dark.
Those files are just for the keymapping, nothing more..
polyrhythmic said:
I think this is the repo you're looking for:
http://androidhtc.git.sourceforge.net/git/gitweb-index.cgi
It contains Audio & GPS drivers, among other things. Can you wake the phone over adb shell with the command echo "wake" > /sys/android_power/request_state ? I'm also interested in getting an AOSP build running from source, I'd like to get the camera working for Eclair.
EDIT: Also, in the zenulator's eclair mod, the /system/etc/keychars directory contains these files:
Code:
htcvogue-ts.kcm.bin
qwerty2.kcm.bin
qwerty.kcm.bin
sapphire-keypad.kcm.bin
trout-keypad.kcm.bin
trout-keypad-qwertz.kcm.bin
trout-keypad-v2.kcm.bin
trout-keypad-v3.kcm.bin
tuttle2.kcm.bin
vogue-ts.kcm.bin
Perhaps that vogue binary is needed? That's my shot in the dark.
Click to expand...
Click to collapse
What's responsible (or handles) power management, then?
And why are there so many keymapping files? According to AOSP, Android will default to qwerty.kl, and certainly with the Vogue being as simple as it is, a single qwerty.kl set up for the Vogue would be sufficient.
So what gives? Or are these files all leftover as this was "ported", and they existed to support previous devices, etc.?
first off great job. this is exactly how i started out by building my own builds from source and then taking apart others to see what fits together. if i have time this weeked i'll have a look at it.
There are an awful lot of moving parts in power management in Android (and any OS, really) - there's the kernel's power subsystem which controls deep sleep / suspend, and which Android attaches a "wakelock" system to, each radio lib (Bluetooth, WiFi, phone) has power management (which hooks up to kernel interfaces), there's the panel driver which controls brightness, etc.
I think the keymapping files are just there so that no matter which one the framework looks for, it always finds one, speeding things up - rather than having to try to find each one and failing down until it finds its eventual failsafe qwerty, it loads the Vogue one straight away.
Awesome man, way to go!
Can you throw in links for rootfs/zimage, I will try later today on my wife's phone.
Thanks sshark, I would, but I've been tweaking that image continuously and at it's current state, it's broken.
Here are the major hurdles I'm facing right now:
How do I determine which drivers are and are not necessary in a build? If we use an AOSP build, or someone else's port, obviously we don't want audio drivers from the Nexus One or generic Goldfish sensors from AOSP, so how can we know what we need to be able to keep images clean?
Along the same vein, how does one incorporate drivers accordingly, such as audio?
Is power management really a dark art right now? Plemen's AOSP build is fantastic, but I typically have to push the power button four times to get the OS to wake up, whereas a 2.1 build I just played with on the Vogue would power up right away on one click. What gives?
When compiling images using genext2fs, does 80000 vs 160000 matter, NAND vs HaRET booting? What's the maximum?
Lastly, I've recently tried unsquashing others images, making changes, and then trying to re-ext2 them, mount them, and squash them. However, when I do this, my images no longer boot fully on my Vogue--instead they'll get as far as the boot animation, it'll run for a bit, and then the boot animation will pause for a second or two, and restart. This happens endlessly. Is this a problem with my process, be it ext2, sqsh (sqsh version, perhaps?) anyone have an idea?
Shidell said:
Thanks sshark, I would, but I've been tweaking that image continuously and at it's current state, it's broken.
Here are the major hurdles I'm facing right now:
How do I determine which drivers are and are not necessary in a build? If we use an AOSP build, or someone else's port, obviously we don't want audio drivers from the Nexus One or generic Goldfish sensors from AOSP, so how can we know what we need to be able to keep images clean?
Along the same vein, how does one incorporate drivers accordingly, such as audio?
Is power management really a dark art right now? Plemen's AOSP build is fantastic, but I typically have to push the power button four times to get the OS to wake up, whereas a 2.1 build I just played with on the Vogue would power up right away on one click. What gives?
When compiling images using genext2fs, does 80000 vs 160000 matter, NAND vs HaRET booting? What's the maximum?
Lastly, I've recently tried unsquashing others images, making changes, and then trying to re-ext2 them, mount them, and squash them. However, when I do this, my images no longer boot fully on my Vogue--instead they'll get as far as the boot animation, it'll run for a bit, and then the boot animation will pause for a second or two, and restart. This happens endlessly. Is this a problem with my process, be it ext2, sqsh (sqsh version, perhaps?) anyone have an idea?
Click to expand...
Click to collapse
i cant answer all of those questions, with that said ill tackle the last two
4. when using genext2fs to compile builds it doesnt matter what the -b count is we just use
Code:
genext2fs -d ./system -b [B]180000[/B] -a system.ext2
to make sure we could fit a ~180 mb system so if your system folder is ~120mb(uncompressed), using -b 125000 should work.
5. make sure you arent using squashfs-tools 4.0 because it isnt supported in our kernel version. so use 3.3 or 3.1 .
5b. when you see the boot logo looping, that means the build has crashed and like i said to you before i strongly recommend you setup adb on you box so you can run logcat to see what the phone is actually doing and to debug what went wrong and why it is looping
Thanks Jamezelle. So NAND users need to make sure it's -b 90000 (or less), as NAND only supports 90 mb. max, correct?
Shidell said:
Thanks Jamezelle. So NAND users need to make sure it's -b 90000 (or less), as NAND only supports 90 mb. max, correct?
Click to expand...
Click to collapse
right i would keep it around 88 to be safe.
I'm trying to get ADB to work (using ubuntu 9.10) and I've followed the instructions here, including restarting udev, but even still when I try to start adb, I get "command not found" in terminal.
Any ideas on what I'm missing?
EDIT: I'm missing a ./. I'm really starting to wish I could do this natively in Windows.. geeze.
Shidell said:
I'm trying to get ADB to work (using ubuntu 9.10) and I've followed the instructions here, including restarting udev, but even still when I try to start adb, I get "command not found" in terminal.
Any ideas on what I'm missing?
EDIT: I'm missing a ./. I'm really starting to wish I could do this natively in Windows.. geeze.
Click to expand...
Click to collapse
did you make sure you added the path to adb in .bashrc
# On Linux, edit your ~/.bash_profile or ~/.bashrc file. Look for a line that sets the PATH environment variable and add the full path to the tools/ directory to it. If you don't see a line setting the path, you can add one:
Code:
export PATH=${PATH}:<your_sdk_dir>/tools
Click to expand...
Click to collapse
that should clear up the "Command not found" issue
jamezelle said:
did you make sure you added the path to adb in .bashrc
that should clear up the "Command not found" issue
Click to expand...
Click to collapse
Yep, that was the issue. It needs to be there, or launched as ./, I presume.
Thanks much for your help tonight, Jamezelle.. I'm happy to report that I'm steadily making progress for a working release.
Shidell said:
Yep, that was the issue. It needs to be there, or launched as ./, I presume.
Thanks much for your help tonight, Jamezelle.. I'm happy to report that I'm steadily making progress for a working release.
Click to expand...
Click to collapse
thats great to hear, also thanks for your additions to the libgps.so! its nice to still see some android enthusiasm in this community
Related
Hi there,
I got Linux to boot at OPAL via linwizard project. Here are steps needed to get it work.
1) download image from:
http://tinderbox.x86.dev.gentoo.org/embedded/linwizard/gizard-20080602.tar.bz2
2) copy content of file to the microSD card
3) edit default txt and replace init=/linuxrc with init=/bin/sh
4) run haret and let it boot.
After a while you'll get to shell. No graphics.
Now you can attach microusb cable and connect it with your linux laptop (I recommend ubuntu)
and you will get usb0 interfece to start up.
Which IP to use to connect with OPAL I still must investigate.
Well ip connectivity now works:
ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>
Notas:/# ifconfig usb0 up 192.168.2.200 netmask 255.255.255.0
Listik:/usr/src/linux-2.6.27/Documentation# ping 192.168.2.202
PING 192.168.2.202 (192.168.2.202) 56(84) bytes of data.
64 bytes from 192.168.2.202: icmp_seq=1 ttl=64 time=2.95 ms
64 bytes from 192.168.2.202: icmp_seq=2 ttl=64 time=1.72 ms
And how to do it:
prolong "set CMDLINE" line with
ip=192.168.2.202:192.168.2.200:192.168.2.200pal:usb0
But in this image there doesn't seem to be any telnet/ssh server running. I will try cook image with ssh server support later
Download error
Were not able to re-upload
404 file not found error!!
http://tinderbox.x86.dev.gentoo.org/embedded/linwizard/
and open latest gizard-<date>.tar.bz2
or that I suppose.
The latest link should be http://tinderbox.x86.dev.gentoo.org/embedded/linwizard/gizard-20090703.tar.bz2
does this mean any chance of android working? anyone tried?
Hey,
I'm a new Opal user and I'm interested in getting *nix running on my device. I still haven't had the chance to mess around with this stuff but I'm excited to see this thread.
I was looking into the possibility of running Android on the Opal and it seems the closest thing is this thread bout running it on the Herald (it uses the same processor as the Opal).
I don't any experience in Linux porting so I thought I'd share this, in case anyone else is interested. And at the same time, I'll try to see if I can get something working based on what has been/is being done for other devices.
Sorry for the long post.
Hey Folks,
Any progress on getting Android on Opal? I am eagerly waiting to load one.
Kindly let me know, if this version of Linux when loaded, gives the UI.
Cheers'
Vijay
cijoml said:
Hi there
I got Linux to boot at OPAL via linwizard project. Here are steps needed to get it work.
1) download image from:
http://tinderbox.x86.dev.gentoo.org/embedded/linwizard/gizard-20080602.tar.bz2
2) copy content of file to the microSD card
3) edit default txt and replace init=/linuxrc with init=/bin/sh
4) run haret and let it boot.
After a while you'll get to shell. No graphics.
Now you can attach microusb cable and connect it with your linux laptop (I recommend ubuntu)
and you will get usb0 interfece to start up.
Which IP to use to connect with OPAL I still must investigate.
Click to expand...
Click to collapse
Android can boot on Opal
I have some good news, Android can boot on the Opal. This is just a proof of concept as it's missing tons of drivers and is completely useless.
Touchscreen and all keys except for the volume control (and obviously the reset button) are not working. So you basically can't do anything when you run it.
What I tried is the same as what's written in this thread about running Android on Gene. They're using the build made for the Herald/Wing (just as I was proposing in my last post) with customized initramfs and kernel.
You'll find all the necessary details in that thread. However, there's a newer build than the one mentioned there it's wing-linux-0.4pre2.cab. And the suitable kernel for that build is supposed to be the pre2 posted in this post but it didn't work on my Opal so I tried the older Gene kernel and it worked. The main difference between the two is bluetooth support, and that's obviously is of no use for us.
This doesn't effect the Windows rom, nor does it requires any special partitioning. Still it's best to have everything backed up before launching it, just in case.
This is the official site for the wing/herald build:
http://wing-linux.sf.net/
This thread on their forums about the Gene port will probably be of use to us:
http://sourceforge.net/apps/phpbb/wing-linux/viewtopic.php?f=4&t=4
I'm reading about the next steps but as I said before, I don't have any previous experience or knowledge about this type of things. If someone can give me hand, I would be more than grateful. At any rate, once I have better understanding of the concept I'll contact the people behind the Wing and the Gene ports.
P.S: If you do try to run this, keep in mind that this will take lots of time, specially for the first launch. And when you get an error saying something like "android sh: can't access tty" just ignore it and keep waiting. After a while you'll have a flashing "android" on the screen, and after some more waiting you'll reach the main screen.
Is this just THE BEGINNING
Sooper Stuff..!! So is this just THE BEGINNING??
How do we port the drivers and other required information in the build?
Cheers'
Vijay
www.msigeek.com
A Lil' help
I'm going through the Gene port thread here and on the Wing-linux sourceforge forums but I'm still a bit overwhelmed.
I would appreciate any help as I'm completely new to porting. I have some programming and linux knowledge but never attempted this type of things.
Click to expand...
Click to collapse
So am I.
Hmmm...
Right. Lets do it the way I did it.
1. Get the touchscreen working. Through HaRET, you must have got the GPIO interrupt whenever you pressed the touchscreen. You must have got two numbers corresponding to each press - a smaller number and a bigger number. The smaller number is the GPIO, and the larger number is, well, lets say a special GPIO value for the same pin.
Now checkout the Gene branch through git.
Goto /wing-linux/kernel/arch/arm/mach-omap1/board-htcherald.c
Scroll down to a block of code where you'll see the touchscreen code. Enter the smaller number in the .dav_gpio statement, and the IRQ number in the OMAP_GPIO_IRQ() statement below.
2. Follow the Kernel build instructions on the development section of the wing-linux wiki (the two make commands)
Copy the zImage into the linux folder on your SD card
Boot into wing-linux. The touchscreen should start working.
3. Now, hopefully, after the touchscreen's working, You would essentially just require two more buttons - the home button and the back button for minimum functionality. Everything else can be worked on by the touchscreen.
Then follow the instructions on the wing-linux forum (Page 2) to get the KEY(row,col) values of the keys on your handset. Hopefully you should get atleast a couple. Note down the corresponding keys and their KEY(r,c) values output.
4. Fire up board-htcherald.c again and goto the place where you have the KEY(r,c,KEY_blah) thing and replace the codes as per your obtained KEY(r,c,KEY_blah) values (The Home button is the one commented as Left Button)
5. That's all I can help you with as of now. I'm also figuring out a stable way of getting the DPad and the center select key to work, but It'll take some time.
Thanks kshaurya!
(This guy right here is the one who fixed the kernel for Gene, I asked him for some pointers).
I don't want to take my device apart just yet (I usually do my best not take to dismantle anything that I haven't owned for at least 3 months unless absolutely necessary) and I couldn't find a place that states what touchscreen it uses. I'm just hoping that it's the same a tsc2046 as well. [Is there anyone without a warranty and/or willing to check for us?]
I'm gonna double check the values I got from the touchscreen as for some reason I seem to have to IRQ values, probably forgot to get rid of some spamming irq. And, at the same time, I'm currently setting up a VM as a building environment, my main boot is Intrepid 64 and there's no 'psyco' package for 64 machines.
If anyone else have some experience and wants to try this, refer to: http://www.handhelds.org/moin/moin.cgi/HaRET_20Documentation (using haret to get the GPIO and IRQ values needed).
And to:
http://sourceforge.net/apps/trac/wing-linux/wiki/Development (acquiring the source code from Wing Linux and how to build it).
And a quick question for anyone that tried booting Android on the Opal, what screen did you get when Android finally finished booting?
I don't want to take my device apart just yet
Click to expand...
Click to collapse
Huh? where did that come from? Wing Linux will not touch your WM.
I seem to have to IRQ values
Click to expand...
Click to collapse
Do you mean two? Well, that's exactly what you should get. Even if it's just one, enter that value in the code.
my main boot is Intrepid 64 and there's no 'psyco' package for 64 machines
Click to expand...
Click to collapse
Oh no. dont tell me that you are building the entire thing. all you need to do is build the KERNEL! Please! Don't go into building the whole thing from scratch. Use the make ARCH ARM commands given on that page.
kshaurya said:
Huh? where did that come from? Wing Linux will not touch your WM.
Click to expand...
Click to collapse
I mean to check the screen, in case it turned out to be different that what you have.
kshaurya said:
Do you mean two? Well, that's exactly what you should get. Even if it's just one, enter that value in the code.
Click to expand...
Click to collapse
Yeah, stupid typo.
I noticed now that one of them appears when I keep the screen 'touched' for a bit longer.
kshaurya said:
Oh no. dont tell me that you are building the entire thing. all you need to do is build the KERNEL! Please! Don't go into building the whole thing from scratch. Use the make ARCH ARM commands given on that page.
Click to expand...
Click to collapse
I'm not gonna build the complete thing. Seems like I got too exited and failed to notice that building the kernel only requires a cross-compile toolchain, te rest is for compiling the whole thing.
I'm not THIS stupid usually . Honestly!
Thanks again!
I'm not THIS stupid usually . Honestly!
Click to expand...
Click to collapse
Its pretty normal
Weird.
I've only changed the two touchscreen values and built the kenrel. It finished without any error but now it won't boot.
It gets stuck, even before the space allocation part, with this error: "sh: can't access tty; job control turned off". And then it displays a prompt.
I'll try modifying an older build, I'm pulling them from the repos at the moment.
After all, the pre2 kernel from Gene didn't boot on my device (although it got stuck later on).
Try doing a clean install - Remove the linux folder and try again.
Also, make sure that you're not forgetting to checkout the Gene branch.
Code:
git checkout Gene
Is your default.txt modified? And have you downloaded the modified initramfs.cpio?
check in the Gene forums for that.
Already tried the clean install, no dice. The default.txt is untouched and I'm using the modified intramfs. What happened this time is different from what happens using the original one, it's not asking me to specify the partition size but instead it's waiting for a command. I could probably ssh via usb but I have no clue how that might help.
And I've already checked out the Gene branch from the beginning.
I've tried compiling the kernel for pre1 (after changing the screen values) from SVN and it did boot (both using the cabs for pre1 and pre2) but no touch screen yet. All in all, I'm guessing that there's too much hardware difference here.
And the button for lowering volumes didn't work either, it seems like whatever you changed for getting it to work on Gene is the same as what we need here, but I'll think about that later.
I only have two ideas left:
- Trying to go back to a more stable build (with lesser features and lesser possibilities for errors). Maybe 0.3.
- Trying to create some kind of hybrid kernel using this alongside the HTC Vogue build as it probably has closer hardware to the Opal (obviously, I'm talking about everything beside the MSM7500 400MHz processor that it has). I'm hoping it won't get to this cause I'm definitely under qualified for that at the time being.
What happened this time is different from what happens using the original one, it's not asking me to specify the partition size but instead it's waiting for a command.
Click to expand...
Click to collapse
Could you post a screenshot?
I've tried compiling the kernel for pre1 (after changing the screen values)
Click to expand...
Click to collapse
I'm assuming you mean the touchscreen values? Try interchanging and see.
Trying to go back to a more stable build
Click to expand...
Click to collapse
I wouldn't recommend that. Defeats the whole purpose.
Why don't you try getting in touch with darkstar?
kshaurya said:
Could you post a screenshot?
Click to expand...
Click to collapse
A friend borrowed my digital camera, I tried my laptop's webcam but the text it too blurry. Couldn't fix it using gimp either. So here's exactly what's showing on the screen:
Code:
mdir: Cannot creat directory `/mnt' : File exists
modprbe: could not parse modules.dep
initramfs: Creating device nodes:
initramfs: Loading /initrd.d/10-initfs.sh module
initramfs: Loading /initrd.d/30-wingboot.sh module
Selected:
ROOT_DEVICE=/dev/
CMDLINE=debug quiet psplash=false loglevel=7 init=/sbin/init console=tty0 video=omapfb:accel fbcon=rotate:3 4 root=/dev/
initramfs: Loading /initrd.d/80-loopboot.sh module
initramfs: Loading /initrd.d/85-blockboot.sh module
booting from: /dev/
mount: Mounting /dev/ on /mnt failed: Invalid argument
Unable to mount rootfs device
sh: can't access tty; job control turned off
/ $
And after the prompt, on the same line, there's a flashing '_' waiting for input.
Using the original zImage (from the pre2 cab) it's right around here that the screen clears and the Wing Linux installation script kicks in.
kshaurya said:
I'm assuming you mean the touchscreen values? Try interchanging and see.
Click to expand...
Click to collapse
Will try that next.
kshaurya said:
I wouldn't recommend that. Defeats the whole purpose.
Click to expand...
Click to collapse
I meant it as just a temporary test to till the cause of the incompatibility is figured out. With less things that could go wrong, it'll be easier to locate the ones that are going wrong.
kshaurya said:
Why don't you try getting in touch with darkstar?
Click to expand...
Click to collapse
You're right. I should post a thread on the project's forums asking for his help.
ok guys, i need some help. and knowing me the answer is staring me directly in my face, but i need it pointed out to me. I am working on compiling from AOSP, and have eclipse set up to compile from AOSP everything(that i know of.) when running make build type everything is generic, i'm trying to compile for the device specific. what do i need to do to setup make to compile for the droid, nexus, magic, or dream. do i need to compile my own kernel?
what is happening is every time i go to push an .apk (that i have compiled) to my phone and reboot i either get a boot loop or a black screen so obviously something isn't right.
to give my steps up to this point.
i have followed the directions as set on this page: source.android.com/download
as well as the directions set on this page: source.android.com/using-eclipse
i also had to do a few other steps to get everything running correctly on ubuntu 9.1 (sun-java5-jdk in particular)
i can edit the source and no errors are present in eclipse, so with my logic i feel like i am missing something with make or in my set up somewhere any help would be greatly appreciated.
edit: mods if this is in the wrong place please move it where it should go. i took a shot in the dark guess
make runs without erroring out.
i've made a little progress today as i am working on this at work. where my problem is coming in is that the sholes board isn't supported by lunch in any of the repo's that i have downloaded(master tree, android-2.0.1_r1, android-2.1_r2, android-2.1_r1) does anyone know where i can get that info or how i can set it up?
reading more into the documentation on: source.android.com/documentation/building-for-dream, it mentions unzip-files.sh in the htc vendor directory. only one problem there isn't a motorola directory. does the unzip-files.sh script in the htc directory work the same for the motorola droid? i'll have to try it and see when i get home. if there is a differnt or better way to do this i would definately appreciate it.
sniffle said:
reading more into the documentation on: source.android.com/documentation/building-for-dream, it mentions unzip-files.sh in the htc vendor directory. only one problem there isn't a motorola directory. does the unzip-files.sh script in the htc directory work the same for the motorola droid? i'll have to try it and see when i get home. if there is a differnt or better way to do this i would definately appreciate it.
Click to expand...
Click to collapse
id doubt it, and i cant say my way is a "better" way, but if nothing else you can just adb pull the files from the droid manually...
-BMFC
Dear All,
I modified libhtc_ril_wrapper to possibly fix the pppd disconnection problem.
As I don't have 3G at home, I'd appreciate some feedback to help me diagnose potential issues with it.
WARNING, there are reports of crash at boot, do a backup of your whole android directory before trying this!
Don't run this if don't have adb and know how to use it.
See post #2 for history and more information
To keep the thread clean, please only report problems and try to avoid unnecessary talking about it.
Don't report problem without logs, it won't help.
This is highly experimental, don't use it if you don't know what you're doing.
To install, just rename your previous wrapper and copy the attached libhtc_ril_wrapper.so to the same location.
Here are the logs I need:
Code:
logcat -d -v time -b radio > /sdcard/pppd_radiolog.txt
logcat -d -v time -s pppd:v > /sdcard/pppd_mainlog.txt
dmesg > /sdcard/pppd_dmesg.txt
/bin/ifconfig > /sdcard/pppd_if.txt
ps > /sdcard/pppd_ps.txt
Please review pppd_radiolog.txt before posting, it could show some personal stuff like phone numbers, feel free to remove these lines or refrain to post them
Wait 20 seconds to let the wrapper relaunch pppd and check connection again. If it doesn't work, please send the logs.
Grab the three files from sdcard root and post them back here.
I'm also experimenting some kernel tuning that can be activated with this:
Code:
echo 8 8 > /proc/sys/vm/lowmem_reserve_ratio
echo 8192 > /proc/sys/vm/min_free_kbytes
Nothing conclusive yet, but it seems to help.
Thanks to Hastarin, I also attached his root package that includes wrapper with ppp options and tweaks.
Thanks,
LeTama
History
2010/11/24 Hastarin root package (ppp_tweaks_root.zip) added, it includes wrapper, ppp options and kernel tweaks.
2010/11/18 new kernel and wrapper v0.7
new test kernel with smd_tty trimmed to 2K.
wrapper fake data call list has now active=1
v0.6 - 2010/11/17
same as 0.5 without the stupid bug that trashed the code.
2010/11/16
Test kernel to diagnose the "tty_prepare_flip_string fail" error with high cpu usage, please check post here for detail
v0.5: delay changed for deactivate and fake data call list added.
v 0.4 - 2010/11/14
Changed tag to RIL_WRAP to improve log reading
Improved log messages
Signal tracking to try to find who kills wrapper monitor
Lower delay between AT commands
Sleep delays and sequence reworked
Tentative improvement to re-establish ppp
Tentative fix for wrapper monitor death with extra debug messages
Memory leak on deactivate fixed
v 0.3 - 2010/11/02
added network state detection to avoid doing ATD too early resulting in getting stuck.
changed nand handling, proper initialization for nand is now done by adding "nand_init" to wrapper command line in init.rc.
(Ex: service ril-daemon /system/bin/rild -l /system/lib/libhtc_ril_wrapper.so -- -d /dev/smd0 nand_init)
added a wrapper command line switch "rmnet_mode" for rmnet, "active" file in /etc/ppp is no longer used nor required for ppp.
v 0.2 - 2010/10/31, first release
restarts pppd when it dies
Troubleshooting
How to verify if wrapper is running:
In radio log (logcat -b radio -d), my wrapper write this at startup (do it quickly after boot, it disappears quite quickly over time):
Code:
----------- HTC Ril Wrapper v0.7 starting ------------
and you should have debug messages there starting with RIL_WRAP, not RILW.
Crash on boot (v0.2):
Check if your kernel command line in startup.txt has "nand_boot=0". If it still doesn't boot, try to remove any other option and only keep "nand_boot=0"
Troubleshooting crash on boot
Even if it crashes very early, it should be possible to grab early logs. To do that, start adb *before* starting android with this command:
adb logcat -b radio -v time
adb should say *waiting for device*, you can then start Android. Adb will show some logs before the device crashes. Please send me the logs if you are able to do so.
If you see [email protected]=0 in the log, it means that the wrapper thinks you are on nand, and that's why you device crashes.
pppd-fix
I saw in some logs that some are using Cass pppd-fix script with the wrapper. Cass script and wrapper are doing the same thing and are conflicting. So, if you have installed the pppd-fix, please remove it, it won't play nice with the wrapper.
Known issues
2010/11/14: pppd first launch fails after boot. wrapper catch it, however it would be nice to have it working the first time. It adds few seconds to re-establish data, so be patient!
2010/11/14: high cpu consumption. The issue comes from memory management in kernel, we still have to figure out what's happening.
2010/11/04: pppd monitor process seems to die from time to time. I don't know why yet, looking at the code it doesn't seem possible. I'll look into it and maybe release a new version with more debug traces. You can see it in terminal by doing a 'ps', it will show one of the rild as zombie ( Z instead of S just before process name). The easiest way to restart it is to do a data off/on.
Hi letama,
Currently i'm using ppp-fix. Can I contribute here? or I have to remove the script from init.rc then I reboot the device so I can contribute?
nice
try now
Hi LeTama,
thank you for your work.
It seems that your fix work. I don't notice any dropouts.
But that could be a reason of the issue that the phone does not start android.
It boots WM then haret and then it freezes on the black screen with the green HTC logo...
I use [UPD][BUILD][30.10.10] MDJ FroYo Revolution v.1.1 [kernel: hastarin R8] and after copying your file with ES explorer I've rebooted the phone and now it hangs on the htc screen after running haret...
But the good news are, the dropouts are gone
Sorry but I can't post logcat messages without booting android complete
Which build do you recommend?
funky81 said:
Hi letama,
Currently i'm using ppp-fix. Can I contribute here? or I have to remove the script from init.rc then I reboot the device so I can contribute?
Click to expand...
Click to collapse
Hi Funky81,
Well, it's better to remove ppp-fix as I do the same thing in the wrapper now. The way it's done in the wrapper is cleaner and should have the same effect.
You can just comment it in your init.rc if you want to keep it, but keeping it active could have side effects.
Crusoe86 said:
Hi LeTama,
thank you for your work.
It seems that your fix work. I don't notice any dropouts.
But that could be a reason of the issue that the phone does not start android.
It boots WM then haret and then it freezes on the black screen with the green HTC logo...
I use [UPD][BUILD][30.10.10] MDJ FroYo Revolution v.1.1 [kernel: hastarin R8] and after copying your file with ES explorer I've rebooted the phone and now it hangs on the htc screen after running haret...
But the good news are, the dropouts are gone
Sorry but I can't post logcat messages without booting android complete
Which build do you recommend?
Click to expand...
Click to collapse
You have adb on you pc ? You should be able to run adb even if android is not fully started.
With it, you can get logcat and even rename back the old wrapper to see if it starts booting again.
So far it's working very nice, I will be out and about today and will try to crash your masterpiece...
I just wanted to publicly say a big "THANKS" for helping everyone out with the PPP issues, you have always listened when I've popped in on the IRC and asked questions and relayed info from XDA. Thanks for your time and expertise. Your DEV work has not gone unnoticed!
Now get ready to fix the wrapper after we all crash it. Or read all the post on how your wrapper has made their microwave burn their popcorn and how their wifi can now communicate with the satellites....bla....bla.......
noellenchris said:
So far it's working very nice, I will be out and about today and will try to crash your masterpiece...
I just wanted to publicly say a big "THANKS" for helping everyone out with the PPP issues, you have always listened when I've popped in on the IRC and asked questions and relayed info from XDA. Thanks for your time and expertise. Your DEV work has not gone unnoticed!
Now get ready to fix the wrapper after we all crash it. Or read all the post on how your wrapper has made their microwave burn their popcorn and how their wifi can now communicate with the satellites....bla....bla.......
Click to expand...
Click to collapse
Hehe...that may not happen. At least for my copy. I am giving mine a thorough flogging with Speed Test and can't make the data freeze. And I'm seeing over 3000Kb/s HSDPA speeds...with the common, single APN settings. By the way, I'd like to thank both of you for your hard efforts.
testing...
testing now... thanks!
letama said:
You have adb on you pc ? You should be able to run adb even if android is not fully started.
With it, you can get logcat and even rename back the old wrapper to see if it starts booting again.
Click to expand...
Click to collapse
Sadly I got the same problem and it's the initial logo screen it's hanging at, not the boot animation, so no adb shell is possible. I did get you a dmesg via andlog though (attached).
Time to restore a copy of system.ext2 that I backed up before... Oh wait, I didn't. Oh well, time to restore the copy from the original build.
To anyone trying this I suggest first taking a copy of the system.ext2 from your Android folder, just in case. At least if you'd tweaked anything in it already (build.prop for example) like I had.
On the plus side I did setup a gscript with the commands you noted and test it before I rebooted the phone. From that I noticed I had some errors in my logs already. I've attached them in case they help. NOTE: This is on my kernel and it almost seems like your patch to hi/lo-mem and my patch to move ppp compression to hi-mem have countered each other. It's getting late here so I'll have to continue experiments tomorrow after work.
Hope this helps
Here you go. I had a disconnect and sync fail (Exchange Server).
And Another
Same as before
Dr Nicky said:
Here you go. I had a disconnect and sync fail (Exchange Server).
Click to expand...
Click to collapse
Dr Nicky said:
Same as before
Click to expand...
Click to collapse
crashes when your on exchange? were you doing anything else. Hmm, sounds like the same used to happen to me sometimes. But it's working ok now with this wrapper. Did you try to repush the wrapper on reboot?
hastarin said:
Time to restore a copy of system.ext2 that I backed up before... Oh wait, I didn't. Oh well, time to restore the copy from the original build.
Click to expand...
Click to collapse
Hastarin, you can mount the ext2 on your pc and replace the file ?
Your log show a modem crash, weird.
letama said:
Hastarin, you can mount the ext2 on your pc and replace the file ?
Your log show a modem crash, weird.
Click to expand...
Click to collapse
Yeah, mdeejay even sent me a whole build he had working with the wrapper and I got the same crash.
I'm back up and running now. Restored the original system.ext2 from the build and reapplied my few tweaks.
FYI I'm going to try the following in my init.rc
Code:
# Tweak inode caches
write /proc/sys/vm/vfs_cache_pressure 200
Based on this:
http://www.cyberciti.biz/faq/linux-page-allocation-failure-erro/
But now it's approaching 4am here and I really must sleep.
PS Giving up on testing your wrapper for now. It just really doesn't like me.
noellenchris said:
crashes when your on exchange? were you doing anything else. Hmm, sounds like the same used to happen to me sometimes. But it's working ok now with this wrapper. Did you try to repush the wrapper on reboot?
Click to expand...
Click to collapse
They were both forced repush. The only way I could get the radio back on line was to do a Hot Reboot.
Dr Nicky said:
Same as before
Click to expand...
Click to collapse
Thanks for the logs! Unfortunately, they are showing that the wrapper restarts pppd and it doesn't seem to go bad. Could you give me the dmesg also ?
Could you also show me /bin/ifconfig result ?
LeTama
I'm having the same issue as Hastarin - well, I've been using his latest kernel. Doesn't even boot.
Instead of restoring system.ext2, I just pushed an older lib and went back to the old method of restarting pppd.
My own logs for a dropout that just occurred (3G/H icon vanished while loading a web page). For me, the wrapper didn't work with Hastarin r8, but does with r7.7.
Thanks for looking into this!
Hi everyone,
If you have any questions relating to Arch on the TF300, please post them here and not in the dev thread
I'll do my best (as well as others, I'm sure) to answer them, but bear in mind that you should have some basic Linux knowledge before flashing!
this is awesome!
cb22 said:
Hi everyone,
If you have any questions relating to Arch on the TF300, please post them here and not in the dev thread
I'll do my best (as well as others, I'm sure) to answer them, but bear in mind that you should have some basic Linux knowledge before flashing!
Click to expand...
Click to collapse
I can't thank you enough for this, it's been fantastic so far! I only have a few questions, as I am extremely new to arch linux...as in this is the first time I've used anything aside from debian in the linux world.
To start, how would we go about changing DE's? I've downloaded a couple, but i get errors every time i try to start one saying that another window manager is already running. With ubuntu one just logged out and chose from the log in screen, but there doesn't appear to be a log out process for this, i get a black screen every time i do. Other than that, are there any general programs/settings/tweaks that you would suggest applying? While this is very nice, it still seems to be missing some basic functions, such as putting the screen to sleep and having a set system time.
Despite all of that, this has breathed new life into my tablet, you're doing fantastic work and I hope you only continue to make it more amazing!
fankuan19 said:
To start, how would we go about changing DE's? I've downloaded a couple, but i get errors every time i try to start one saying that another window manager is already running. With ubuntu one just logged out and chose from the log in screen, but there doesn't appear to be a log out process for this, i get a black screen every time i do. Other than that, are there any general programs/settings/tweaks that you would suggest applying? While this is very nice, it still seems to be missing some basic functions, such as putting the screen to sleep and having a set system time.
Click to expand...
Click to collapse
Take a look at the .xinitrc file in the home directory. It's a hidden file so you may need to "show hidden" or give an editor the full path (/home/user/.xinitrc)
The file runs the following by default:
Code:
exec startxfce4 --with-ck-launch
You can change everything after `exec` to the script for a different DE, such as `startkde`. If you don't know the command, there should be a list of session templates in /usr/share/xsessions/. Inside each .desktop file there's an "Exec=" line, everything after that is the command to sub in.
My crappy bash skills threw together a quick command to get a list of installed xsessions:
Code:
grep "Exec=" /usr/share/xsessions/*.desktop | sed -E 's/^Exec=(.+)$/\1/'
The output on the default rootfs will just be "startxfce4". If you have KDE another line should output "startkde", and so on. Put the command in your .xinitrc (making sure to replace the current one) and then reboot as there's no proper way to log out.
whoops
timothyb89 said:
Take a look at the .xinitrc file in the home directory. It's a hidden file so you may need to "show hidden" or give an editor the full path (/home/user/.xinitrc)
The file runs the following by default:
Code:
exec startxfce4 --with-ck-launch
You can change everything after `exec` to the script for a different DE, such as `startkde`. If you don't know the command, there should be a list of session templates in /usr/share/xsessions/. Inside each .desktop file there's an "Exec=" line, everything after that is the command to sub in.
My crappy bash skills threw together a quick command to get a list of installed xsessions:
Code:
grep "Exec=" /usr/share/xsessions/*.desktop | sed -E 's/^Exec=(.+)$/\1/'
The output on the default rootfs will just be "startxfce4". If you have KDE another line should output "startkde", and so on. Put the command in your .xinitrc (making sure to replace the current one) and then reboot as there's no proper way to log out.
Click to expand...
Click to collapse
First of all, thanks for the help! Unfortunately, I appear to have done something incorrectly, as the Linux partition will no longer boot. That code didn't return anything but a ">", although as I type this i realize I may have needed to be root...haha, regardless, I tried to edit the .xinitrc file with "exec /bin/usr/startlxde", which is what was after "exec=" in the xsessions directory, nothing happened after waiting quite a while after boot.
I suppose I'll have to reflash the entire partition, considering i can't access the filesystems to change it back. Ah, the wonders of linux!
Sorry if I repeat my question,but how can i activate the keyboard without using a pc with linux ?
fankuan19 said:
First of all, thanks for the help! Unfortunately, I appear to have done something incorrectly, as the Linux partition will no longer boot. That code didn't return anything but a ">", although as I type this i realize I may have needed to be root...haha, regardless, I tried to edit the .xinitrc file with "exec /bin/usr/startlxde", which is what was after "exec=" in the xsessions directory, nothing happened after waiting quite a while after boot.
I suppose I'll have to reflash the entire partition, considering i can't access the filesystems to change it back. Ah, the wonders of linux!
Click to expand...
Click to collapse
You should be able to gain access easily via Recovery. Just adb shell in, mount /dev/mmcblk0p8 /mnt and look in /mnt/linux - that's your root file system...
Razorbacktrack5535 said:
Sorry if I repeat my question,but how can i activate the keyboard without using a pc with linux ?
Click to expand...
Click to collapse
Without using a PC... Hmm, that could be tricky. If you're in Android, and you add this line to the top of /data/linux/home/user/.xinitrc
Code:
maliit-server &
(before the exec line)
It should give you the virtual keyboard when you restart into Linux.
cb22 said:
You should be able to gain access easily via Recovery. Just adb shell in, mount /dev/mmcblk0p8 /mnt and look in /mnt/linux - that's your root file system...
Click to expand...
Click to collapse
I was actually able to just use the terminal emulator in android to navigate back to the .xinitrc file, turns out i wasn't supposed to leave the "--with-yadda-yadda" bit, so i got lxde working...and as it turns out, i don't like it nearly as much as the DE you included, so i'll be switching back to that!
First off: thank you SO much for your hard work at this! My tab has never browsed the web this well. It's better than the desktop I'm sitting next to. Arch is amazing!
Just a few questions. Do we have basic tab controls yet? I'm looking for, specifically:
Brightness Control
Enable/Disable Touchpad
Volume Control
Sleep/Suspend/Hibernate
Especially that last one! As far as I can tell, if I'm not going to use the tab for more than a couple minutes, it's apparently best to shut it down or reboot back into Android so it can "sleep". Or plug it in. I know we're rough around the edges yet, but is this stuff in, or no?
koiulpoi said:
First off: thank you SO much for your hard work at this! My tab has never browsed the web this well. It's better than the desktop I'm sitting next to. Arch is amazing!
Just a few questions. Do we have basic tab controls yet? I'm looking for, specifically:
Brightness Control
Enable/Disable Touchpad
Volume Control
Sleep/Suspend/Hibernate
Especially that last one! As far as I can tell, if I'm not going to use the tab for more than a couple minutes, it's apparently best to shut it down or reboot back into Android so it can "sleep". Or plug it in. I know we're rough around the edges yet, but is this stuff in, or no?
Click to expand...
Click to collapse
I don't think sleep/suspend/hibernate is implemented at all quite yet. The backlight seems to turn off completely when the screen times out though so you can fake having a low power mode, though obviously true sleep would be nice.
As for volume control, use pavucontrol. You may need to install it with `pacman -S pavucontrol`.
For brightness ... there's no good way to do this as far as I can tell. XFCE has a brightness control applet you can add to the bottom panel but it doesn't seem to work, and most of the usual packages (e.g. xbacklight, etc) don't detect the backlight device. Oddly enough I gave e17 a try and its builtin brightness applet worked fine, I wonder what they do differently ...
At any rate you can control it manually: the file /sys/class/backlight/pwm-backlight/brightness has a 0-255 value which controls the screen brightness. Note that you need to run the echo command as root
Code:
# echo "1" > /sys/class/backlight/pwm-backlight/brightness # minimum brightness
# echo "255" > /sys/class/backlight/pwm-backlight/brightness # maximum brightness
# echo "0" > /sys/class/backlight/pwm-backlight/brightness # completely turns off backlight. use with care
Setting it to zero makes it next to impossible to see the screen. I ended up having to ssh into the device (or reboot) to get it back.
I modified the file through a PC and It works ! Thanks, no problems with wifi
Sleep / Suspend isn't implemented yet.
But, I did a bit of testing, and the TF should last for about ~40 hours with the screen off, and the processor in the Low Power mode (which it does automatically. Obviously, it's still wasteful compared to proper suspend, but it's not too bad.
Really liking this so far, other than managing to break wifi once, which I fixed by doing a quick re(install I guess is the proper term). Any chance of a future release having SLiM or something setup out of the box(I'd do it but looking at some of the guides, we are missing some files(?) :s) either that or is there a way to autologin a new user other than the default one named user?
(edit for more info) I've tried following a guide I found on the arch wiki which had me modify [email protected], but it didn't boot so I had to edit it back to the default.
Thanks for all your work cb22, and thanks for taking my advice and switching file hosts
This may be a dumb question
But I can't for the life of me find out how to flash the hybridkernel.blob, I've already done every other thing, but i'm lost as to what to do there. Can I get a bit of guidance please?
:Nevermind: Silly me forgot to go to fastboot, I was trying to do it with adb, for any others though, reboot to fastboot on your tf300t and then run go to the location of fastboot on your pc and hold shift and right click and select open comand line here. Then move the hybridkernel.blob to the same location as the fastboot and run fastboot -i 0x0B05 flash staging blob
Shingaling said:
But I can't for the life of me find out how to flash the hybridkernel.blob, I've already done every other thing, but i'm lost as to what to do there. Can I get a bit of guidance please?
:Nevermind: Silly me forgot to go to fastboot, I was trying to do it with adb, for any others though, reboot to fastboot on your tf300t and then run go to the location of fastboot on your pc and hold shift and right click and select open comand line here. Then move the hybridkernel.blob to the same location as the fastboot and run fastboot -i 0x0B05 flash staging blob
Click to expand...
Click to collapse
Disregard, didn't see the edit until after you posted essentially the same thing I did.
So, does Adobe Flash support work at all in Chromium? I haven't gotten it to recognize the plugin at all. Any way to get this working, or is it just gonna keep bugging me to install it?
koiulpoi said:
So, does Adobe Flash support work at all in Chromium? I haven't gotten it to recognize the plugin at all. Any way to get this working, or is it just gonna keep bugging me to install it?
Click to expand...
Click to collapse
I don't think it works at all, I've tried every permutation sudo pacman -S flash-plugin that I could think of and I've gotten notwhere.
They is no flash for ARM for pure Linux.
Wysyłane z mojego ASUS Transformer Pad TF300T za pomocą Tapatalk 2
Itege said:
Any chance of a future release having SLiM or something setup out of the box(I'd do it but looking at some of the guides, we are missing some files(?) :s) either that or is there a way to autologin a new user other than the default one named user?
(edit for more info) I've tried following a guide I found on the arch wiki which had me modify [email protected], but it didn't boot so I had to edit it back to the default.
Click to expand...
Click to collapse
In theory you should be able to install a proper display manager without too many issues:
Code:
# pacman -S lightdm lightdm-gtk-greeter
# systemctl enable lightdm
...though when I tried this the DM would never actually be run. I was able to run it manually over SSH without issues (both lightdm and slim worked, more or less). I'm in the process of investigating why it isn't run at startup like it should be, whatever the issue is doesn't seem to be related to the display manager itself.
I have an issue with wifi.
1: The WLAN do not find any Network with Channel 12 or 13.. I think I must change the region in germany, but where?
2. The WLAN do not connect, they search for an network adress and after 30seconds they ask for wlan key again.. the key is correct and my router shows the connection.. but archlinux means the key is wrong.. testet with router und smartphone wlan hotspot..
3. 3G not connecting, i have create a profile for BASE Germany, but they do not connect.
UPDATE:
for 2: Sometimes they connect and I can surf. But the ping are more then 600ms.. After few seconds the connection lost, sometimes they connect again, sometimes say ask for wlan key again.
Maybe you can help me. Sorry for my bad english.
Yours Sincelery
Robert
Could any of you guys find out if you have a process running in "interruptible" state named "kinteractive_lo"?
You can check that using "top" in CLI or installing gnome-system-monitor. I guess the standard xfce task manager works as well.
It's driving me nuts and I believe is one of the reasons why I have to hard-reboot my tablet, since invoking reboot with --force works perfectly.
Thanks in advance!
Hello everyone,
This thread previously was a discussion area for the Ouya Boot Menu feature during its early development.
It's now being transitioned to a support area. The new project description/download page is at:
http://forum.xda-developers.com/showthread.php?t=2499673.
Thanks!
CWM Bootloop
Hal9k+1 said:
Hello everyone, attached is the ZIP of an updated CWM Recovery IMG file.
This image is based on the latest stock Ouya kernel in GitHub. The kernel contains some newer HDMI code, which will hopefully increase the chance of getting the CWM graphics showing up properly. I also turned off HDMI’s HDCP in the compile (not needed for a utility partition such as this), and grabbed a patch from Kulve’s Ouya kernel fork to really ensure HDCP bypass.
More importantly, the image contains Tasssadar’s excellent work involving KExec-HardBoot. This technology should allow for the implementation of a “fastboot boot”-related capability from a running ROM, enabling kernel chain loading. The recovery image in particular will be a place to practice with KExec-HardBoot, and come up with a booting method that could eventually be flashed to the boot/kernel partition.
It is fine (and recommended) to fastboot to this image as a quick verification of things. However, it will be necessary to flash to the Recovery (“SOS”) partition for proper testing of KExec-HardBoot, since there’s an embedded reboot (to Recovery in this case) in there. Do *NOT* flash this to the Boot.
A simple chain load test can be done by extracting “zImage” from this image, and “initramfs.cpio.gz” from your current ROM kernel. (Included is “unmkbootimg” that can help here - runs on Linux.) Push these to /tmp on the Ouya while it is running this image. Then enter the Ouya shell and do:
kexec --load-hardboot zImage --initrd initramfs.cpio.gz --mem-min=0xA0000000 --command-line=”$(cat /proc/cmdline)”
kexec -e
It should come up with this new kernel under your current ROM’s environment. As verification, you should see kexec files under /sys/kernel.
I’m looking to implement a basic chain loading application. It would come up before the Recovery and ADB services, and do the following:
% Pause for a bit, to allow any Alt-SysRq keyboard action (jump to Recovery or Bootloader) that may be needed.
% Check for any attached USB mass-storage devices (e.g., thumb drive), and look for the file “kernel.img”. Pull it in and boot it if present.
% If that failed, then look to “/system/kernel.img” on the Ouya itself, and boot it.
% And if that didn’t pan out, then exit and allow Recovery/ADB services to come up.
I hope all of this will be of help to others along the way!
Click to expand...
Click to collapse
Will this help with the problem I have?..
New update today it downloads automatically and then reboot to CWM and it fail verification...reboot system and it does all over again?...Any ideas Plz
View2Askew said:
Will this help with the problem I have?..
New update today it downloads automatically and then reboot to CWM and it fail verification...reboot system and it does all over again?...Any ideas Plz
Click to expand...
Click to collapse
Sorry, I'm not sure I understand. It sounds like the new stock firmware update is failing to go in, perhaps because of consistent download corruption. Whether you're actually being dropped in to the recovery partition is unclear. You might try the download again with the other networking type (Ethernet vs WiFi). You might also just disconnect from the network for the time being, and see if you remain in the firmware without interruption. From there you can consider setting up ADB to see if you can administer the Ouya from a PC.
My post is more for the developers at heart, just in case my investigation piqued anyone's interest. Ideally the post would go in the Development section, but I evidently need a few more posts here to unlock that area.
Best of luck!
Dual booting
Yes, please do enable dual/multi booting
Is there something I can do to help in that regard?
kulve said:
Yes, please do enable dual/multi booting
Is there something I can do to help in that regard?
Click to expand...
Click to collapse
Thanks kulve, and thank you for the kernel patch set. I need to get familiar with the offerings there.
I don't see any blockages in my plan so far; I just need to start in and see what comes up. At least it's a better feeling than the dead-ends encountered with the U-Boot and regular KExec investigations.
Someone more enterprising could possibly port in the MultiROM project, but I'll stick with this. Will let you know if I get stuck.
My findings so far...
- I've finally decided that shutting off HDCP in the build does nothing to help avoid the funky pink/purple squeezed screen that sometimes appears when CWM comes up. With my Asus monitor, I see the issue when the monitor was in sleep mode. Likewise, if I can switch the monitor to HDMI input at the same time as starting Recovery, then it's fine. It may be possible to hack in a fix by somehow starting and closing an HDMI session shortly before CWM itself starts. (I don't want to fight this too hard but would be nice to resolve.)
- I see how to pull the kernel and ramdisk out of an Android image (on the Ouya itself), so that they could be passed to KExec-HardBoot. I've done it with a script as a test but it may end up in an executable.
- I tried out a USB thumb drive. It's detected but no block device is made available under /dev -- I've finally decided that support is likely in a kernel module, which does not exist on the Recovery image. I'm probably not going to sweat this due to the next item.
- I notice that the CWM application can read the Ouya power button as something comparable to a keyboard key press. Borrowing this capability may allow us to count the button presses in a limited time range, and thus boot an appropriate image. (Would be easier than dealing with the pairing of the controller, but at least still wouldn't require a keyboard.) With this line of thought, I'm thinking the main image could sit in /system while any alternates could be in /sdcard or /data.
So in general, studying the code of the CWM application appears to be the next direction. Thanks - feel free to send any ideas.
Hal9k+1 said:
- I've finally decided that shutting off HDCP in the build does nothing to help avoid the funky pink/purple squeezed screen that sometimes appears when CWM comes up. With my Asus monitor, I see the issue when the monitor was in sleep mode. Likewise, if I can switch the monitor to HDMI input at the same time as starting Recovery, then it's fine. It may be possible to hack in a fix by somehow starting and closing an HDMI session shortly before CWM itself starts. (I don't want to fight this too hard but would be nice to resolve.)
Click to expand...
Click to collapse
What does the rendering in CWM? Is it Android or something lower level? I think my kernel has better HDMI support but for that the software needs to use that explicitly instead of the default one as there is not internal LCD panel (/dev/graphics/fb0 vs. fb1).
kulve said:
What does the rendering in CWM? Is it Android or something lower level? I think my kernel has better HDMI support but for that the software needs to use that explicitly instead of the default one as there is not internal LCD panel (/dev/graphics/fb0 vs. fb1).
Click to expand...
Click to collapse
It does look to be low-level, as CWM directly opens /dev/graphics/fb0 and uses ioctl() on it. I've decided to try my own compile of CWM as it does look to be a nice base for the booting effort. Will definitely look to your patches for the improved HDMI when I'm all ready -- thanks!
Hal9k+1 said:
It does look to be low-level, as CWM directly opens /dev/graphics/fb0 and uses ioctl() on it. I've decided to try my own compile of CWM as it does look to be a nice base for the booting effort. Will definitely look to your patches for the improved HDMI when I'm all ready -- thanks!
Click to expand...
Click to collapse
I noticed your comments related to this on the "Ouya CWM Recovery" thread but I'm not allowed to post there, so I'll post here.
Or actually repost as I'm mostly repeating myself. I had all kinds of issues in getting output using /dev/graphics/fb0 in Linux with the stock Ouya kernel but after some fixes the fb1 seems to work quite reliable. I get the output even if I don't have HDMI plugged in during the boot and it chooses the right resolution both for my TV (1080p) and for my monitor (1680x1050).
To all: I have updated the attachment that's present on the first post. I've synced to the latest Ouya kernel and pulled in the next HDMI patch set from Kulve. My HDMI issue now appears to be fully resolved.
Kulve: Thanks so much for refocusing me! I should have grabbed the patch from day 1, but that summary description had me a bit spooked. Note that I kept the HDMI/PRIMARY symbol enabled, so there's still only the fb0 device on this kernel.
With this handled and due to my thinking in general, I'm going to back away from trying to compile CWM itself -- I don't want to invest in CM10.1's environment at this time. Instead I will borrow CWM's UI and input technology to build an independent front-end with this Ubuntu/glibc environment I have working. My idea is to release another Recovery image when that's ready so we'll have a chance to practice/debug before moving to the Boot image.
Hal9k+1 said:
Kulve: Thanks so much for refocusing me! I should have grabbed the patch from day 1, but that summary description had me a bit spooked. Note that I kept the HDMI/PRIMARY symbol enabled, so there's still only the fb0 device on this kernel.
Click to expand...
Click to collapse
Hit the Thanks button
Anyway, do you have your kernel source code somewhere? Being able to use multiple resolutions on HDMI while keeping it as primary might be something that many Ouya Android gamers want as they might be able to play at 720p then.
ooo nice, ill try it out and see what happens
kulve said:
Hit the Thanks button
Anyway, do you have your kernel source code somewhere? Being able to use multiple resolutions on HDMI while keeping it as primary might be something that many Ouya Android gamers want as they might be able to play at 720p then.
Click to expand...
Click to collapse
Done! :laugh:
My modified files were tarred up and placed in the ZIP; let me know of any possible issue. I'm not planning on a GIT account, but anyone may feel free to pull anything back to their project. Also I understand that sticking with HDMI/PRIMARY may reduce some of the capability/flexibility you're seeing, but I wanted to stay honored to the Android/CM layout expectation if possible.
Hal9k+1 said:
Done! :laugh:
My modified files were tarred up and placed in the ZIP; let me know of any possible issue. I'm not planning on a GIT account, but anyone may feel free to pull anything back to their project. Also I understand that sticking with HDMI/PRIMARY may reduce some of the capability/flexibility you're seeing, but I wanted to stay honored to the Android/CM layout expectation if possible.
Click to expand...
Click to collapse
Any chance of getting some concise installation instructions?
zondajag said:
Any chance of getting some concise installation instructions?
Click to expand...
Click to collapse
Here's a quick executive summary until I can update the 1st post.
I'm reminded there's another XDA project (Ouya Safe Recovery) with a very similar goal as this, and works by reversing the Boot and Recovery concepts. However it's completely incompatible with us, and those users should not be doing any flashing -- at least not until we have a Boot image ready.
First step is to get rcvy092613.img to the Ouya in its /tmp directory. This may be done with an "adb push rcvy092613.img /tmp" command, or can by done through Secure Copy if an appropriate SSH server is set up.
Next step is to access the Ouya shell, either running from the main ROM or from a Recovery ROM. Be sure to become root (ensure "#" in the prompt) as needed.
Run the following to back up the old image:
cd /dev/block/platform/sdhci-tegra.3/by-name/
dd if=SOS of=/sdcard/old_rcvy.img
Make sure the new image is correct - should see "2a882d1ba8c2d543503cacb49ab0d397":
md5sum /tmp/rcvy092613.img
On to flashing Recovery:
dd if=/tmp/rcvy092613.img of=SOS
Now wait at least a full minute in case there is any internal flushing still taking place. And to finish up:
sync
reboot recovery
Aye....never enough time to tinker it seems, especially with getting over this flu.
At this point I have my own compiled code splitting the boot image file, as well as counting the power button clicks.
I want to see if I can make a welcome/instruction screen, probably by getting CWM's minui down to its core essence. From there it will hopefully just be normal integration work to achieve a new Recovery for testing.
Everyone, a new boot menu is ready for testing. Please read through the first post to see if you'd like to try it out. Apologies once again for the delay in getting this ready.
Hal9k+1 said:
Everyone, a new boot menu is ready for testing. Please read through the first post to see if you'd like to try it out. Apologies once again for the delay in getting this ready.
Click to expand...
Click to collapse
Did I read correctly that the image support multibooting?
kulve said:
Did I read correctly that the image support multibooting?
Click to expand...
Click to collapse
Hi again Kulve. It supports three Android boot images - the main + two alternates: kernel.img, kernelA1.img, & kernelA2.img. It prefers to see the selected image in /sdcard, but will shift to /system as needed.
So, it is multi-booting, but you should keep in mind that there is still only the single /system partition. So installing two normal ROMs together probably won't work out, due to that common storage area. However, one of the ROMs could be based out of /system, while any others could use some form of external/networked storage. Note that the Android image format contains both the kernel and the initial ramdisk, so I feel that a multi-boot arrangement could be done.
Hal9k+1 said:
Hi again Kulve. It supports three Android boot images - the main + two alternates: kernel.img, kernelA1.img, & kernelA2.img. It prefers to see the selected image in /sdcard, but will shift to /system as needed.
So, it is multi-booting, but you should keep in mind that there is still only the single /system partition. So installing two normal ROMs together probably won't work out, due to that common storage area. However, one of the ROMs could be based out of /system, while any others could use some form of external/networked storage. Note that the Android image format contains both the kernel and the initial ramdisk, so I feel that a multi-boot arrangement could be done.
Click to expand...
Click to collapse
My kernel is hard coded to mount the Debian (or whatever) rootfs from /dev/sdaX so Ouya's internal partitioning doesn't matter. It would be really cool to be able to put kernelA1.im to /sdcard, an USB flash drive to the USB port and boot to Debian without tinkering with adb/fastboot/etc. on a PC.
I'm not currently using any initrd-images but adding something simple should be straightforward.