Related
I've been checking out the stuff on the web about Linux on the shift, found these, pretty interesting. This ubuntu even detects the motion rolling from left to right, and he makes the cursor move around the screen by tilting the unit. Also has csreen rotation working:
http://mobilitysite.com/2008/07/ubuntu-in-a-htc-shift/
another one:
http://pof.eslack.org/blog/2008/04/14/linux-on-htc-shift/
"Once Ubuntu is installed, you get a menu at boot time which lets you choose which operating system to boot, Vista or Ubuntu. Surprisingly most of the hardware is auto-detected by ubuntu, and almost everything works out of the box:
* Audio is working, mute and volume control works using the Fn keys.
* SD card reader is working.
* Adjusting the screen backlight works with the proper Fn keys.
* Webcam is working (you can test it with gstreamer-properties).
* CPU frequency scaling works by default too on the Intel Stealy 800Mhz CPU, you can monitor it by enabling the cpufreq gnome pannel.
* ACPI is working, you can get the CPU temperature using the sensors-applet.
* Screen resolution works at 800×480. I have not tried higher resolutions yet.
* Bluetooth is working.
However there are a few things that require some extra work in order to have them working properly."
http://forum.xda-developers.com/showthread.php?t=381915
its pof old work! it works only with 8.04 but once updated the system, most pof works will not work.
Hi
I installed Ubuntu last night as I can't get any other version of Windows (except the memory and space hogging Vista) to install at the moment.
I was very impressed with how much DID work without any fiddling and now I shall spend another few evenings reading exactly how to make the rest of it work.
I'm hoping to be able to then get rid of Vista (but not off the X partition JUST IN CASE!) and regain some space, but I think that I need Windows to run some software for my OU degree course... rather important given this was my excuse for buying a SHIFT (so I'd always be able to work on my degree regardless of where I was (or so my other half thinks!)).
However I know NOTHING about Linux and am somewhat daunted by it but also looking forward to getting a more "hands on" with the Shift and some more computing experience under my belt.
I am rather excited by the concept of actually being able to use things like the g-sensor. Why would HTC put it in then give you nothing to make it work under Vista? Kinda sums up their decision-process when creating the Shift, if you ask me...
Ubuntu on an external USB hard disk also works as described. Wireless doesn't work; this is noted elsewhere in this thread: the 8686 drivers need to be found, compiled, and installed; any detailed pointers would be much appreciated. 640x480 resolution (only) is a major drawback, as control panels come up with essential buttons off screen, and there doesn't seem to be any trick to move them on screen. It boots much faster and it is much more responsive than VISTA ... I would make Ubuntu permanent on the Shift platform if I could get wireless and the resolution control working.
cnbabbage said:
I would make Ubuntu permanent on the Shift platform if I could get wireless and the resolution control working.
Click to expand...
Click to collapse
If you go to POF's website (link in the second link in the first message of this thread I think) there is an installer packet that should make WIFI work although being a Linux novice, it doesn't for me! It seems to do what it's meant to do as I can see stuff happening in the terminal window but nothing actually happens or changes after it's done...
I agree that the resolution is a BIG problem at 800 x 640 or whatever it is under Ubuntu 8.04 and hope someone has a solution soon PLEASE!
for Resolution, you can go and reconfig your Xserver yourself. Never used to get it to work on ubuntu but on gentoo no problem at all.
All other pof stuff will work with smal adjustments !! just read the right threads.
Neutron83 said:
for Resolution, you can go and reconfig your Xserver yourself. Never used to get it to work on ubuntu but on gentoo no problem at all.
All other pof stuff will work with smal adjustments !! just read the right threads.
Click to expand...
Click to collapse
I think I did well to get as far as I did as a Noob actually (and a girl one at that!). I have no problem with people saying "search the forum" to people who ask simple questions like "how do I access SnapVue" but when someone's clearly done their research and is still struggling, it's very frustrating. I've just spent nearly ALL weekend on this forum (and google) and got as far as making Ubuntu 8.10 work as I wanted except Wifi and screen resolution, given no one else has mentioned any of these necessities working on 8.10 as far as I can remember and the fact I know nothing about Linux!! Proof in point; your first comment about the Xserver - I don't even know what that is (though I've probably been fiddling in it)
When I have the time I'll start a new thread with all my wonderful findings so it's all in one place - but I have to earn a living and feed the family so it's not high on my agenda this week. I'm due some time off work, so will aim to get it done then (like painting the kitchen and making curtains for my daughter's room...!)
I can upload older ubuntu 8.04 someplace. With this version all pofs configs and hacks work normally.
Hello together!
I'm also working on getting a current Linux up and running on the Shift (Arch Linux with kernel 2.6.28) and found these problems/"solutions":
- Display: I believe that's a combined hard- and software problem. The display doesn't report its correct capabilities and the driver doesn't handle interpolated resolutions that well (I modified the driver for this). I already mailed this to the xorg mailing list, but I didn't get an answer (perhaps I missed some information like driver version)
- Wifi: The old Marvell driver (from their website) isn't compatible with 2.6.28 anymore, but there is a new one in the kernel itself (called libertas), that only needs the firmware in /lib/firmware (check out this git repo if you need to). But at least in my case the chip is still not working, cause the SD controller is buggy and unknown. But I'm talking with some Devs who are willing to help.
- Touchscreen: You need this module to glue htcpen and the xserver together. Then it works like in Pof's manual.
All in all: I believe in having a fully working Linux on the Shift somewhen
Greetings,
Sven
Oaky guys:
Xserver = your grafical environment
Yea u're right the display doesnt send useable stuff to the Soft but you can hard overwrite the combinations of wich ModeLines are used, its a bit more advanced linux stuff but as far as you dont try to learn you wont get it .... i acctually use a 1024 x 600 is possible and i use it !
I Can give my x config to you here if you like to ! (When i am home
sorry for my roughness but i am not a linux pro just advanced PC user and i was able to do such stuff also !!
Greets
Appreciated!
If you could post your config when you have time I would be grateful (as would others!)
@Neutron83:
What version of the intel driver are you using? I'm using 2.4.1 (and newer) and I wasn't able to override the setting no matter what I did. But please share your config. I'd like to give it a chance.
Greeting,
Sven
please, can someone confirm me that ubuntu can do 1024x600 on htc shift?
i would like to buy one of them but i'm not sure about 1024x600 under linux.
thanks a lot
someone posted that xorg_conf can be modified in someway to get bigger resolution. no one have posted working config for this yet. If someone could post it, it would be great.
Shift's screen is 800x480 pixels (http://www.htc.com/europe/faqs.aspx?p_id=60&cat=0&id=45486.) Bundled software (~\htc\resolution.exe and ~\htc\ResolutioLauncher.exe) switches between native 800x480 and emulated 1024x600.
Any progress on a linux driver for the Marvell 8686 wifi card?
Hi @All,
maybe somewhere experts of you can build a script again for Ubuntu 9 users, the most of them I think can work with Linux, but the most are Windows users (like me) and are overstrained with modding aditional Hardware into Ubuntu ;-)
How's everyone going with Ubuntu on the Shift? Samstables?
I'm downloading and installing the current wubi to put ubuntu on with vista as a dual boot to see how much works out of the box and how much I can get working mucking around (low level linux user here )
hmm... my shift is a dustcover at the moment...
pls give me image iso ubuntu on a works drivers!!
Hi!
Im sorry if this is a dumb question but I googled some stuff about it and never found a straight YES/NO answer.
Im a student in my final year and as a semestral project I have an electronic voting system built on Java Enterprise technology with enterprise java beans (EJBs) running on Glassfish.
For my final work id like to create an app for android that could communicate with those beans on a Glassfish server and thus a people could vote by a cell phone.
My question is Is this even possible? Over the past three days ive been googling stuff concerning this matter but nothing really helped. Id really appreciate a straightforward answer because my time for choosing a final project is almost up and I dont want to end up doing something that is impossible.
Don't take it bad, but it looks like you are a student who doesn't even know what he's working with. Not that it surprises me, but I'm willing to help you.
Answer these straight questions.
1. What is an EJB?
2. Who "runs" an EJB?
3. Where does an EJB "live"?
If and when you answer these three questions you'll know what is needed for a project where "people could vote with a cellphone".
What I can tell you in the most straightforward way is that it is possible for you to have people using their android phones to vote with your Glassfish server.
Android <-> Glassfish
I am looking for the same thing - to write Android apps that communicate with session beans on an app server (i.e. Glassfish). Since I will own both ends of the app, I am looking for a simple approach (e.g. RMI) as opposed to a lot of unnecessary bru-ha-ha (e.g. why turn Java objects into SOAP, just so we can turn them back into the same Java object ... not that Android really supports SOAP).
It looks like Google, for some reason, crippled the Android's ability to communicate. About the only built-in mechanisms I've found are REST (and I don't like REST) or writing my own protocol and using servlets.
Surely, by now, someone has come up with a simple, concise, mechanism for addressing this issue ... I just can't find it.
I managed to snag an Android Accessory Development Kit from Google IO.
After wrangling all the necessary code bits together I got the demo code running on the Arduino board and my Nexus One.
The first picture you can see the phone reading the sensors of the demo shield, button states, the temperature, a light sensor and the joystick position.
In the second picture the phone is controlling the led colors and has one relay turned on.
In the last picture you can see that the phone detects the board being plugged in, Android knows there is no app installed for the board and it cannot be found in market.
The Nexus One is running a rooted 2.3.4 ROM from this thread
P.S. Mod's can we get a forum section for Android Accessory Development?
Now for Pics.
Now that is bad a**!!! I was waiting for something like this!!
Hey, I've been attempting to hack in the support into CM7 (nightly, 2.3.4) on my EVO without much success. I've rebuilt the kernel with the necessary flag enabled and ripped the JAR/XML files from the Nexus S update.
I've monitored logcat and seen that it does find the framework JAR (the application wouldn't install otherwise since it's a needed feature) and a dmesg scan shows that the kernel driver is being initialized.
What's happening now is I plug in the ADK and the output from the Arduino board spams that it couldn't get a protocol version from the phone. The phone slows down to a crawl as its probably being spammed with requests from the ADK for a protocol version and doesn't know what to do.
I'm at a loss here as to what I could possibly be missing. If you have any insight through your own endeavors it would be much appreciated.
Great stuff! I was also at Google I/O and picked up an ADK. Can you post the apk file of your app? I'd love to try it out.
And if you're feeling generous...the code?
badass. good ****
Well done mate...
Have tried it out with arduino UNO?...
uh uh, why i wasn't at the Google I/O
Google is doing really good s**t nowadays. I suppose that Arduino will guest in my house in some time as I am fascinated
I am Actually using the ADK with my Nexus One on an Arduino UNO and an USB-Host Shield from Sparkfun, it works equal but only take a fraction to buy it
My first project is an interface for my Audi, at the moment i only use it to start the Motor, but in future i want to try to build a CAN-BUS interface...
Sure here is the compiled ADK.
-Nik
bharathp666 said:
Well done mate...
Have tried it out with arduino UNO?...
Click to expand...
Click to collapse
The Arduino UNO doesn't have native USB Host support onboard like the megas.
You will need a USB Host shield and will have to modify the Arduino code.
SoyoBro said:
Great stuff! I was also at Google I/O and picked up an ADK. Can you post the apk file of your app? I'd love to try it out.
And if you're feeling generous...the code?
Click to expand...
Click to collapse
You can find all the ADK instructions and code here.
Note: When you select your build target you must choose
Target Name - Vendor - Platform - API Level
"Google APIs" - "Google Inc." - "2.3.3" - "10"
Otherwise you will get errors trying to build on the new libs. The instructions on the ADK page wern't very clear about this. Took me awhile to figure that one out.
You will need to update your Android SDK if you don't see those options.
-Nik
As for the point of using an arduino uno, Oleg is providing an newer version of his USB lib, it now works with his shield and the ADK.
My car is almost starting with the ADK, i am only missing a few relays and stuff to get it completed but i posted a proof of concept on youtube. Text an explanation is all german, sorry for that
http://www.youtube.com/watch?v=FlvpMwSxgMg
if there are any questions Ill be here for you
Great stuff. I am really looking forward to this.
But what I don't get is which hard- and software is required:
- is 2.3.4 sufficient?
Answer: YES
- do other devices (running 2.3.4) than the Nexus 1/S work?
Answer: Pending
- will an Arduino Duemilanove board work?
Answer: NO
Thanks for your help, guys
Besides those questions I have one more:
- assuming I have a board that is connected to a power supply. will i be able to charge an Android device when connecting the board to the handset via USB?
Answer: depends on the boards and its power consumption/outlet. Basically, it should
Nikropht said:
P.S. Mod's can we get a forum section for Android Accessory Development?
Click to expand...
Click to collapse
+1 for a dedicated section.
I reckon it's gonna take off as soon as more USB host boards become available
My Arduino Duemilanove works perfectly
Hi all,
A few weeks ago I started taking apart the LiveView software and manager. I'm really unhappy with the current plugin system, the menu structure and more. So, I started to reverse-engineer the Bluetooth protocol. I'm at the very beginning but it's looking promising.
Here's the repo: https://github.com/BurntBrunch/LivelierView
The protocol is not very difficult - just request-acknowledge-response serial communication over RFCOMM. Also, the kind people from SE didn't run the manager through Proguard (wink, wink, nudge, nudge ).
I also have what I *think* is a dump of the firmware but it seems either compressed or encrypted. Binwalk didn't find anything in it. If someone would be kind enough to take apart the software updater, we might figure out what's running on the actual device as well.
Overall, I'm just starting but so far it's looking good (got time syncing working! it's at least a watch, if nothing else! ).
Any help would be greatly appreciated (pull requests are more than welcome! )
thinking of doing something similar with one of my gadgets.
What did you use to reverse-engineer the Bluetooth protocol, just wireshark and a bluetooth dongle
Neither Did it from disassembly of the manager - much easier than sniffing and guessing.
If you don't have that option and said gadget connects to an Android phone, put on a decent ROM with the full BlueZ stack (e.g., Cyanogen) and use hcidump. It's really, really useful!
Come to think of it, Wireshark might be good enough - the only thing I found useful about hcidump was the SCO audio dump.
Nice effort. I've already forked your work on github, might have a look at it soon, I got some geeky ideas for myself as well, and I think integrating this functionality natively on CyanogenMod or even a custom app to replace the SE's one would be great to have as well.
Nice,
i'm was disapointed by the liveview manager myself, i hope something good emerges from your work
I've also decompiled the APK, and it seems that everything that displays on screen comes from the application, which means everything could be costumized. Seems like SE is using a PNG lib LodePNG to convert images and pushing them to the phone. Also, when it comes to strings, I've found some useful references in JerryProtocol that might indicate how the correct text encoding (not that we can push it right now, but just for the record):
Code:
private static final String mEncoding = "iso-8859-1";
private static final char cCarriageReturn = '\r';
private static final char cLineFeed = '\n';
Controlling the led seems quite simple to, it seems message's data is divided in 3 parts:
[RGB] [DELAY = Integer Number] [ON STATE = 0|1]
[old]although I've not figured out the ID of the LED control yet[/old].
LED request ID is 40 and LED response ID is 41. Hope this is enough for you to get started on that one too
I've not yet tested the app, but I've read your code and gave a shot at decompiling trying to see what I could dig up, will try it later (not very used to running python scripts though, will have to see how to install pyserial first and all that)
pedrodh said:
it seems that everything that displays on screen comes from the application
Click to expand...
Click to collapse
Yup, the main stuff is on the phone - the state machine is clearly isolated (on a side note, the manager is rather well-written, thankfully). On the other hand, I'm somewhat confused by all the constants - it almost feels as if the device has native navigation or icon cache or something.
pedrodh said:
Controlling the led seems quite simple to, it seems message's data is divided in 3 parts:
[RGB] [DELAY = Integer Number] [ON STATE = 0|1]
LED request ID is 40 and LED response ID is 41. Hope this is enough for you to get started on that one too
Click to expand...
Click to collapse
Thanks for the interest and the tip, I'll look into it soon - I need to figure out a good way to send commands from stdin. It seems that I'll need to figure out non-blocking reading in Python anyway (good news for you - I might drop pyserial! )
In any case, I'll add it to protocol.txt, unless you beat me to it!
Lastly, the only reason it's in Python is 'cause I'm productive in it *and* it has good, fast bindings (I try to stay away from gobject in C!). Whatever comes out of this effort would be running on the phone, surely
Edit: You *did* beat me to it!
Edit: Implemented LED, vibration, and a pretty good scheme for sending commands from the CLI
Nice work, saw quite a few commits in a small amount of time.
I've not yet been able to run it sucefully, I (think) have installed pyserial correctly, but maybe the problem is that the bluez that comes with my ubuntu is somewhat newer than the one you used, anyway here's as far as I got http://pastebin.com/uVRdr5T3 if you by chance know just by looking at it what it is would be great .
I've started an Android applicatoin Project in hopes of porting this to an Android application as well, but I'm somewhat new to Bluetooth handling on Android, still working it out. I'm already able to connect and pair with device (noob stuff), but it fails to READ from it. I've used java's DataOutputStream and DataInputStream since they deal with data in a big-endian notation, but I haven't understood yet how the initialization process goes. I've looked to your code, I get some parts but not the whole thing yet. Do you have to wait for the LiveView to tell something back, or you can just start to send commands at random? Also, does the script act as a bluetooth server or client (it seems that they are distinct when coding in Android, I've choosen to Connect as a Client, and yes I used the same UUID that you got from decompiling so at least that part I guess to be correct) ?
Anyway is just a bunch of very ugly code at the moment, after I get it to do something usefull I'll clean up the project and host it on github as well.
Hmm, that error is rather suspicious. Looking at the docs, Connect() is not even supposed to throw org.bluez.Failed, let alone with that message. And service discovery supposedly finished successfully..
Was the device in pairing mode (with the arrows/circle turning)? Was the computer the last thing it paired with (once you pair with the computer, the phone shouldn't be able to connect to it, since the device only remembers the last authorization)?
Install d-feet, the DBus browser, go under System bus, org.bluez, find the device, verify that it has the org.bluez.Serial interface and try calling Connect() with the proper UUID from there. Other than that, I've really no idea what it's on about.. Do you have more than one LiveView device by any chance (weird things might happen then)?
I don't actually think it's the difference in bluez versions (the Serial interface hasn't changed in the past 2 and something years) but it might be a (driver) bug you're hitting. I *think* I'm doing everything right as far as communication with BlueZ is concerned. Try running `hciconfig hci0 reset`.
Sorry I couldn't be more helpful..
Regarding your Java effort, if I recall my Bluetooth terminology correctly, you are a client, since the server is the thing advertising the service. You should *not* be reading immediately from the device. The phone/computer sends the first message - in my case, my first message is always STANDBY. Then and only then can you start reading back.
Lastly, I hope Android abstracts the whole RFCOMM pipe thing, 'cause it's a pain to use (and the reason I still need pyserial) - select() would sporadically tell me it has data to read and when I try to read it, I get ERRIO :/ I suspect RTS triggers select()..
Make sure you're only reading as many bytes as you know are in the next packet (take a look at consume() - it returns the number of bytes it expects next) and not more than that - it would either block or throw an exception. I've not done any Bluetooth work on Android, so that's as much as I can help, I'm afraid.
Lastly, as big as the temptation is, do not under any circumstances reuse code from the official manager. "Sony" is in the name of the company after all. I'm half-expecting a Cease & Desist any moment now
Edit: Implemented Display Properties Request and Clear Display Request (doesn't do anything). I think I'm out of low-hanging fruit
Really interesting work, guys. The Liveview is a fantastic idea and is almost brilliant - if only it worked properly! If you could get the basics working properly so we don't have to use the Sony software that would be fantastic, it's got so much potential.
Cheers,
Tim
So, I had a brilliant idea today. You know how the LiveView Manager app is full of debug messages. Turns out, they are disabled by means of a constant in ElaineUtils. My idea was to change that constant, put the apk back on my phone and rejoice from all the extra info I'd have.
Turns out, that's not how it works. I changed the constant (bumped it to 0x100 - literally a single bit change) and re-signed the apk. I got some output out of it but not all, and none of the useful ELEMENT_ID_* messages
Any help on that front would massively speed up the reverse-engineering effort.
EDIT: Scratch that, I'm stupid. I forgot that the .field annotations are not executable code - I was changing the wrong bit so to speak. Changed the value in <cinit> and voila, proper logcat!
EDIT: Here's some food for thought - http://pastebin.ca/2099804 - it's the log from startup + a bit of moving around and opening/closing the mediaplayer control.
Very cool project.
I believe, for the damn thing to be usable, focusing on improving Bluetooth performance would be quite good. By "performance" I mean "power consumption." Having to give up on the watch after two hours of light use is really unacceptable.
I would love it if you got this thing working efficiently like SmartWatchm/OpenWatch did for my MBW-150. I ordered my LiveView from the UK when it first released there instead of waiting for the US release. The darn thing disappointed the hell out of me and has been sitting in my garage for almost a year now.
Hopefully you get something going on with this.
archivator said:
So, I had a brilliant idea today. You know how the LiveView Manager app is full of debug messages. Turns out, they are disabled by means of a constant in ElaineUtils. My idea was to change that constant, put the apk back on my phone and rejoice from all the extra info I'd have.
Turns out, that's not how it works. I changed the constant (bumped it to 0x100 - literally a single bit change) and re-signed the apk. I got some output out of it but not all, and none of the useful ELEMENT_ID_* messages
Any help on that front would massively speed up the reverse-engineering effort.
EDIT: Scratch that, I'm stupid. I forgot that the .field annotations are not executable code - I was changing the wrong bit so to speak. Changed the value in <cinit> and voila, proper logcat!
EDIT: Here's some food for thought - http://pastebin.ca/2099804 - it's the log from startup + a bit of moving around and opening/closing the mediaplayer control.
Click to expand...
Click to collapse
Wow, that's very useful thank you. I've been very occupied and did not work more with the Android Side application since my last post, I intend to return to it soon enough though, that output is very welcome when it comes to understanding then the icons are sent and the whole mechanism itself.
I've been doing a bit of reverse engineering work on the liveview as well, and I think I have a complete (although i fear possibly slightly corrupt) firmware dump!
I have been able to extract was some PNG images from the firmware (Thanks to their rather distinctive %PNG Header and ending with IEND).
It would appear that the menus and stuff are in fact definitively transferred over bluetooth!
I've attached the images I've extracted if anyone's interested in seeing them!
I'm currently trying to work through it in IDA to disassemble it, which is a pain in the arse!
Is anyone else also interested in completely rewriting the firmware?
@aj256, nice work! I thought I had a dump as well but mine looked compressed :\ Mind uploading yours somewhere for all to see? (edit: sorry, saw it in the archive)
aj256 said:
It would appear that the menus and stuff are in fact definitively transferred over bluetooth!
Click to expand...
Click to collapse
That's correct - I almost have that part of the protocol figured out but I'm low on spare time.
aj256 said:
Is anyone else also interested in completely rewriting the firmware?
Click to expand...
Click to collapse
Well.. I'd be interested in modifying it and isolating the Bluetooth stack but don't really have the time OR the chops to write the whole firmware from datasheets and disassembly.
As for where I'm standing, I know what I need to decompile next (renderShowUi) but it's a couple of thousand lines of smali. There are so many branches, it's easy to get lost. I need to write better tools for decompiling smali first
Just bought a Live View! I know it may not be the best but I got it cheap and mainly want the Caller ID portion of it. I hope this reverse engineering pays off. Once I get mine I may start poking around and see if I can help out! Thanks for the post OP!
Hi,
do you guys have some irc channel or anything else? Just got my LiveView and want to help you with this...
I've quickly put together a project website at openliveview (dot) com (apparently I don't have enough posts for an external link!) with some forums as well to help to document peoples progress!
I've done a quick writeup on my progress so far (which isn't very much!)
@archivator, glad you found the firmware in the zip, I was just about to reply that it was there!
aj256 said:
I've quickly put together a project website at openliveview (dot) com (apparently I don't have enough posts for an external link!) with some forums as well to help to document peoples progress!
I've done a quick writeup on my progress so far (which isn't very much!)
@archivator, glad you found the firmware in the zip, I was just about to reply that it was there!
Click to expand...
Click to collapse
Nice. I've been on your website and the documentation is getting in good shape. When I got some free time I'll try and read it more carefully and complement the Android project.
Talking about that, I've uploaded my progress so far to github: https://github.com/pedronveloso/OpenLiveView
bare in mind that apart from pairing with the Device not much is actually working by now, contributions are welcome of course
Hi All,
I'm a software developer, reasonably comfortable with compiling apps in Linux, though still got more to learn on inner workings of the full system.
I've been thinking about following the Linux from Scratch book for a while - and also about converting my Nook e-reader into a useful device for developing on when out im the sun.
I guess there are some significant challenges here - device trees and commercial secrets, perhaps some crypto keys used for signing update images to boot (I'm familiar with these problems, but not solutions or good workarounds).
What I'd really like is a good understanding of:
- what tool chain I need to setup
- What has been tried already and what the problems were
- any further help/datasheets that can get me going
I'd have posted this in the 'android development' area as the closest forum for what l'm trying to do, but apparently I'm not allowed until I've got my post count up - so I'm being forced to post in 'general'. If someone agrees and can move it, that would be great.
P.s. I have searched the xda site, but I'm not finding what I'm looking for. I'm sure it must be here somewhere, so any pointers/links on where it is would be appreciated.
SimonSimpson said:
Hi All,
I'm a software developer, reasonably comfortable with compiling apps in Linux, though still got more to learn on inner workings of the full system.
I've been thinking about following the Linux from Scratch book for a while - and also about converting my Nook e-reader into a useful device for developing on when out im the sun.
I guess there are some significant challenges here - device trees and commercial secrets, perhaps some crypto keys used for signing update images to boot (I'm familiar with these problems, but not solutions or good workarounds).
What I'd really like is a good understanding of:
- what tool chain I need to setup
- What has been tried already and what the problems were
- any further help/datasheets that can get me going
I'd have posted this in the 'android development' area as the closest forum for what l'm trying to do, but apparently I'm not allowed until I've got my post count up - so I'm being forced to post in 'general'. If someone agrees and can move it, that would be great.
P.s. I have searched the xda site, but I'm not finding what I'm looking for. I'm sure it must be here somewhere, so any pointers/links on where it is would be appreciated.
Click to expand...
Click to collapse
I have tried to get info on such things three times over 2 years for different devices, no one every seems to point me in the right direction, the most i have been able to find out is how to make compile cm and a little bit of how to customize roms, not to be a downer but i think the process is often so different for ever device and difficulties usually happen that the only people that build roms are people that have either have experience I n some form from their job, just edit existing source for cm(updating to a new version, customizing roms ect...) or have screwed with the stuff for years till the point that they just figured out alot of problems themselves. Wish a could find a good guide myself to atleast get the basic dependencies required for a device to boot together, if i could get something to boot the rest of the issues could be worked out with trial and error, boot noone on xda, Android authority, Reddit or cm's own forums goes into enough depth to make that possible.
Hi jaykoerner,
Thanks for your reply - good to know I'm not alone with my echo!
I've discovered some useful links if anyone wants to begin getting to grips with all this...
1. XDA Devs has a wiki (not sure how to find from the forum links...?)
http://forum.xda-developers.com/wiki/BN_Nook_Simple_Touch
2. There's a (atleast one) customized kernel (and probably a dev-tool chain) available on GitHub:
https://github.com/javifo/NST/tree/master/kernel -- including kernel compilation instructions
https://github.com/javifo/NST -- root of the repository.
3. Parallel to Raspberry Pi kernel compilation (so you may want to learn from that as it probably has more articles)
https://www.raspberrypi.org/documentation/linux/kernel/building.md
I'll post more when I next do something with the information (Still want to understand more on the android HAL)
Hope that helps someone!
SS.
SimonSimpson said:
Hi jaykoerner,
Thanks for your reply - good to know I'm not alone with my echo!
I've discovered some useful links if anyone wants to begin getting to grips with all this...
1. XDA Devs has a wiki (not sure how to find from the forum links...?)
http://forum.xda-developers.com/wiki/BN_Nook_Simple_Touch
2. There's a (atleast one) customized kernel (and probably a dev-tool chain) available on GitHub:
https://github.com/javifo/NST/tree/master/kernel -- including kernel compilation instructions
https://github.com/javifo/NST -- root of the repository.
3. Parallel to Raspberry Pi kernel compilation (so you may want to learn from that as it probably has more articles)
https://www.raspberrypi.org/documentation/linux/kernel/building.md
I'll post more when I next do something with the information (Still want to understand more on the android HAL)
Hope that helps someone!
SS.
Click to expand...
Click to collapse
My initial thought was that toolchain should match the underlay Linux kernel of Eclair (2.6.x.y) for us to be sure it could be run on NST. This info that I still have to search through is certainly helpful. Thanks!
SimonSimpson said:
I guess there are some significant challenges here - device trees and commercial secrets, perhaps some crypto keys used for signing update images to boot...
Click to expand...
Click to collapse
Neither the NST or the newer glows use device trees.
In the Glows this is all handled by the custom ntxconfig which allows simple configuration.
For building Android apps, you use the straight Android SDK, possibly also the Android NDK (for native code).
You'd also use the NDK for building command line utilities.
I've never built a kernel from scratch, but I have binary modified/patched them.
There is the simpler bit of patching system image ramdisks which can be conviently handled by my imgutil.exe in the signature.
If you want to do audio, you really are better off with the Glow4 (7.8") which actually supports it.