| c5f1f439 |
1 | Linux loader for Pocket PC |
| 2 | |
| 3 | |
| 4 | How to compile: |
| 5 | |
| 6 | 1. Two asm files from asm directory has to be compiled with armasm.exe. This will create two |
| 7 | obj files, that should be copied into lib directory(and will be included in the project) |
| 8 | 2. Compile & link project |
| 9 | |
| 10 | The c++ source file also contains some routines to read physical memory and to translate virtual mem to phys. |
| 11 | However, the translation is limited and not fully implemented. |
| 12 | |
| 13 | The booting of Linux begins IMMEDIATELLY after program is started. |
| 14 | zImage filename is "image2" (without "") |
| 15 | initrd filename is "initrd" |
| 16 | |
| 17 | If it for some reason freezes try removing pieces of code that write into Frame buffer on Axim |
| 18 | (this fb is beyond limits of physical memory and should not cause problems on IPAQ. adr=0x14042000) |
| 19 | |
| 20 | Limitations: There are some limitations of file sizes. |
| 21 | |
| 22 | If a screen with Hello World appears, there was a problem in booting. Check filenames. |
| 23 | |
| 24 | To make it work for SA11x0 you will have to change these lines in asm.asm: |
| 25 | ldr r5, =0xa0000100 |
| 26 | |
| 27 | ldr r7, =0xa0400000 |
| 28 | |
| 29 | with proper adresses and limits of memory( just change the "a" with "8" I think) |
| 30 | Also KERNELCOPY and INITRD macros have to be changed. |
| 31 | |
| 32 | |
| 33 | author: Demo; cooldemo@inmail.sk |
| 34 | |
| 35 | |
| 36 | ================================================================================ |
| 37 | |
| 38 | Amendment by Pigeon: |
| 39 | |
| 40 | linexec has been changed a lot and therefore some stuff in the above readme |
| 41 | might not be true anymore. But anyway, here is how you use linexec: |
| 42 | |
| 43 | |
| 44 | To use linexec, you need 4 files. |
| 45 | |
| 46 | linexec config file: params |
| 47 | |
| 48 | Create a file called "params", and put it under either "\My Documents\", or |
| 49 | "\CF Card\". If you really care where and what this file is called, edit |
| 50 | tester1.cpp and look for load_boot() call. |
| 51 | |
| 52 | This params file specifies three lines of config for: |
| 53 | kernel image |
| 54 | initrd image |
| 55 | kernel args |
| 56 | |
| 57 | For example, my params looks like this: |
| 58 | \My Documents\zimage |
| 59 | \My Documents\initrd.gz |
| 60 | init=/linuxrc keepinitrd root=/dev/rd/0 |
| 61 | |
| 62 | |
| 63 | (This is what I actually have in my params file, but remember this might not |
| 64 | work for your kernel/device) |
| 65 | |
| 66 | (Also a note for the params file, seems that the code is only happy if the |
| 67 | file is in unix format, i.e. newline as \r, but not dos format) |
| 68 | |
| 69 | |
| 70 | And yes, if you see "Hello World", you've got something wrong. |
| 71 | |
| 72 | |
| 73 | Pigeon. |
| 74 | |
| 75 | |
| 76 | |
| 77 | |