![]() |
#151 | |
Going Viral
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
|
Quote:
The xScale does not have any and the access will trap. There are common runtime program initialization objects, provided by the compiler, not the system library, that may be making those accesses. Perhaps: To set the fp control register to a known state or to save/restore it across the execution of the program, or to . . . . This is why I gave you a list of options with which to build your static HelloWorld application - So that if it did not run on the K1 it could be disassembled and read by a human to find the exact instruction that is causing your problems. |
|
![]() |
![]() |
![]() |
#152 | |
Carpe diem, c'est la vie.
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 6,433
Karma: 10773670
Join Date: Nov 2011
Location: Multiverse 6627A
Device: K1 to PW3
|
Quote:
Part of my detour last night was to learn how app loading works on linux, and how apps can talk directly to the kernel via system calls (essentially what a fully static app SHOULD do, when all libs it uses are linked into it). And yes, I am aware that a full arm5te has floating point hardware, but the xcale variant lacks floating point -- no doubt the main source of problems I have stumbled into so far. It is easy to become overwhelmed when there is so much to learn all at once and all the online tutorials and links I could find with google fail for one reason or another (and most of them have missing links to downloads and even other related content on their own website). Aging is not kind to internet content -- bit rot, corporate buyouts breaking links (like codesourcery, arm UK, etc.), and recent problems with http pages redirecting to https while old autodownloaders use old wget that does not support https. I suppose it is like getting old for humans -- many of the old structural landmarks you navigated by for a lifetime are not there anymore (and memories are like landscapes if you used the ancient "memory palace" method to store vast quantities of knowledge in your head -- getting forgetful is because mental landmarks have been consolidated or pruned when you spent awhile not using related information). Anyway, each time I try something new, I have my hopes up. I hope aboriginal linux with a K1 rootfs will work for me. We shall see. I am trying a different approach today -- instead of coffee for breakfast, I am drinking beer. ![]() |
|
![]() |
![]() |
![]() |
#153 | |
Carpe diem, c'est la vie.
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 6,433
Karma: 10773670
Join Date: Nov 2011
Location: Multiverse 6627A
Device: K1 to PW3
|
Quote:
The K1 has no floating point, a more primitive eink controller (only 2-bit/4-color support), and (self-incompatible) uClibc instead of (very stable between kindle models) glibc. If I have to (but hopefully not), I can use a little ASM shim to virally inject my code into existing lab126 apps, I suppose -- but that seems desperate and lame. The muppetlabs website I linked earlier shows how to do that for x86 code, so somehting similar should work on arm processors. However, I want to build (not exploit) apps, in a more respectable way. I have my hopes up for aboriginal linux, which I will resume today. |
|
![]() |
![]() |
![]() |
#154 | |
Carpe diem, c'est la vie.
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 6,433
Karma: 10773670
Join Date: Nov 2011
Location: Multiverse 6627A
Device: K1 to PW3
|
Last night (actually early this morning), I needed to loop mount the JFFS2 rootfs image from the FW 1.2 update file. I chose to sleep a bit first. Now I am thankful I posted my steps to loopmount JFFS2 in this thread. It was non-trivial AND had to be adapted from (almost but not quite working) instructions I found on google (after multiple attempts). There is an AWFUL LOT of information out that (found with google) that just DOES NOT WORK these days, though it likely DID work when it was posted. I wonder what future generations will think when they attempt to use the huge landfill of information excavated from old websites, only to find it suffered from horrible bit-rot...
Quote:
Last edited by geekmaster; 05-13-2016 at 12:08 PM. |
|
![]() |
![]() |
![]() |
#155 |
Carpe diem, c'est la vie.
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 6,433
Karma: 10773670
Join Date: Nov 2011
Location: Multiverse 6627A
Device: K1 to PW3
|
A script just finished that had been running all night, scanning all my mounted drives using "file" to search for ARM static executables. Interestingly, the vast majority of ARM static programs are "ldconfig", which makes sense in that you cannot dynamically load the loader configuration utility with an unconfigured loader.
I did find a few static busybox versions, including a busybox-4l which does not show any EABI info or linux version info, which might be worth trying (though I suspect I did try it at one point and it failed, but I will try again). It also looks like all the statically-linked apps copied from K1 firmware (regardless of firmware version) specify "for GNU/Linux 2.0.0" which is much older than any other ARM static app on my storage devices (with most non-K1 stuff specifying 2.4.x or 2.6.x). Last edited by geekmaster; 05-13-2016 at 12:43 PM. |
![]() |
![]() |
![]() |
#156 | |
Going Viral
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
|
Quote:
He has spent his entire professional life working embedded Linux. Given enough details, he can probably provide the answer you need. Best chance of a reply is to frame the question based on "I am having this/that problem with your ... and xScale processors." He also knows Eric, who wrote uClibc. ![]() Network, network, network . . . . Rob and I are currently "on the outs" - so it wouldn't do any good for me to write him. But there are a lot of people that I haven't (yet) picked a fight with in the industry - this can be solved. Last edited by knc1; 05-13-2016 at 12:46 PM. |
|
![]() |
![]() |
![]() |
#157 |
Carpe diem, c'est la vie.
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 6,433
Karma: 10773670
Join Date: Nov 2011
Location: Multiverse 6627A
Device: K1 to PW3
|
Though just an item of curiousity at this point, I *DID* find a non-lab126 binary executable THAT WORKS on my K1. It is the busybox-arm4l mentioned previously, found with my "file" search. What is curious is that the "file" info does not display any EABI or Linux version info (which is what caught my attention and made decide to test it):
PHP Code:
PHP Code:
And for comparison, here is the output /bin/busybox on my K1: PHP Code:
And regarding being on the outs, I have that problem with certain folks (mostly multimillionaires and billionaires who *used* to be my friends) not because I picked fights, but because a mutual "friend" picked fights in forums, while claiming to be me. And as for *our* "fights", we seem to have gotten past all that (for now). I have vast experience at some things, but I feel like a complete noob in this K1 stuff, so it is easy to admit my errors (poking around in the dark)... EDIT: If nothing else, at least this new bigger busybox version adds a whole lot of new commands I can execute from my shell scripts on the K1. But especially, it supports '[[' and ']]' so I do not need to "fix" so many of my old scripts that rely on those commands. Ooohh... It has 'xz' too -- so now I can compress my .gmv vids to one-quarter the size of the .gmv.gz versions (even on the K1), but gmplay still will not run on the K1 (one of my first goals at this point). Last edited by geekmaster; 05-13-2016 at 01:39 PM. |
![]() |
![]() |
![]() |
#158 |
Going Viral
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
|
In armv4 days, there was only one abi.
Try that on your Hello World: -arch=armv4 or whatever your compiler offers that is close. |
![]() |
![]() |
![]() |
#159 |
Carpe diem, c'est la vie.
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 6,433
Karma: 10773670
Join Date: Nov 2011
Location: Multiverse 6627A
Device: K1 to PW3
|
I did try that, along with -static. It did not work. I will try it after I build the aboriginal rootfs. I was busy with other stuff. Another option: I have a codesourcery arm-linux for bare metal, it looks for _start() instead of main(), and it needs a short assembler preamble to setup interrupt vectors (per the "bare metal arm" link I posted last night). I will probably try that soon too; I prefer working at system-call level anyway, and not (mis)depending on other libraries that will (probably) suffer from version mismatches in the future (both in windoze and linux).
Last edited by geekmaster; 05-13-2016 at 02:57 PM. |
![]() |
![]() |
![]() |
#160 |
Carpe diem, c'est la vie.
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 6,433
Karma: 10773670
Join Date: Nov 2011
Location: Multiverse 6627A
Device: K1 to PW3
|
I looked in my browser download history, and I found where that K1-compatible busybox-armv4l came from here: https://busybox.net/downloads/binari...busybox-armv4l
That working busybox version means that the armv4l packages I downloaded from landley.net (for the aboriginal project), are very likely to work on my K1. I am anxious to test these aboriginal linux files: cross-compiler-armv4l.tar.gz , system-image-armv4l.tar.gz , native-compiler-armv4l.tar.gz , root-filesystem-armv4l.tar.gz I see that I also downloaded some files for armv4tl (with thumb support) and armv5l targets. I wonder if those would work on the K1 (they should, I think). And the aboriginal source code on github also has armv4l, armv4tl, and armv5l targets as well. Sweet! Last edited by geekmaster; 05-13-2016 at 03:29 PM. |
![]() |
![]() |
![]() |
#161 |
Going Viral
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 17,212
Karma: 18210809
Join Date: Feb 2012
Location: Central Texas
Device: No K1, PW2, KV, KOA
|
My room is reaching its temperature limit.
I either have to turn on the A/C or shut down the computer (one more degree and it will make the decision for me). Later - once the cool of the evening has come to central Texas. |
![]() |
![]() |
![]() |
#162 | |
Carpe diem, c'est la vie.
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 6,433
Karma: 10773670
Join Date: Nov 2011
Location: Multiverse 6627A
Device: K1 to PW3
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#163 |
Carpe diem, c'est la vie.
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 6,433
Karma: 10773670
Join Date: Nov 2011
Location: Multiverse 6627A
Device: K1 to PW3
|
I see that when booting to aboriginal armv4l, "cat /proc/cpuinfo" shows it as 5TEJ (with java bytecode support, absent on the K1). That does not matter though, as long as we do not use that feature, I hope.
However, when I follow his directions here: http://landley.net/aboriginal/README it fails on the "gcc" step: PHP Code:
Bummer! It segfaulted! EDIT: Duh! Its file info show it as dynamically linked. ![]() Last edited by geekmaster; 05-13-2016 at 04:32 PM. |
![]() |
![]() |
![]() |
#164 | |
Guru
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 929
Karma: 15576314
Join Date: Jan 2013
Location: Ely, Cambridgeshire, UK
Device: Kindle Oasis 3, Kindle Oasis 1
|
Quote:
|
|
![]() |
![]() |
![]() |
#165 | |
Guru
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Posts: 929
Karma: 15576314
Join Date: Jan 2013
Location: Ely, Cambridgeshire, UK
Device: Kindle Oasis 3, Kindle Oasis 1
|
Quote:
|
|
![]() |
![]() |
![]() |
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
geekmaster vacation | geekmaster | Kindle Developer's Corner | 2 | 03-19-2012 09:18 PM |