forked from limboemu/limbo
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
181 lines (133 loc) · 6.83 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
Limbo PC Emulator (QEMU x86) for Android
================================================================================
1. What is Limbo?
Limbo is a QEMU-based emulator for Android. It currently supports PC emulation
for Intel x86 architecture.
For more information, instructions, guides, known issues, and downloads visit:
https://github.com/limboemu/limbo
===============================================================================
2. Requirements:
Android SDK
Android NDK r12+ (Recommended: 13b + GCC 4.9)
Eclipse + Eclipse Android plugin
An Android device (most stock/custom roms should be compatible)
Cygwin (if you compile for Windows)
flex, bison, libtool (optional)
===============================================================================
3. Known Issues:
https://github.com/limboemu/limbo/issues
===============================================================================
4. Setup Environment
a. Update variables for paths to NDK directories for your Build Environment
in jni/android-config.mak.
b. Configure your PATH variable add the NDK Directory so makefile can find ndk-build
Examples:
For bash:
export PATH=$PATH:/home/dev/tools/android/android-ndk-r13b
c. Get QEMU version
Get QEMU version 2.9.0 and extract somewhere outside of Limbo directories (important!):
cd /cygdrive/c/temp/
wget http://download.qemu-project.org/qemu-2.9.0.tar.xz
tar -xJf qemu-2.9.0.tar.xz
d. Apply QEMU patch for Limbo:
cp /cygdrive/c/users/youraccount/.../limbo-android/jni/qemu-patches/qemu-2.9.0.patch /cygdrive/c/temp/qemu-2.9.0/
cd /cygdrive/c/temp/qemu-2.9.0
Note: You will need to edit file qemu-2.9.0.patch AND remove git entries for Binary Files.
dos2unix qemu-2.9.0.patch
git apply qemu-2.9.0.patch
mv /cygdrive/c/temp/qemu-2.9.0/* /cygdrive/c/users/youraccount/.../limbo-android/jni/qemu/
e. For linux/MacOSX make sure the configure script under .../qemu/configure is executable
chmod u+x qemu/configure
f. If you need libfdt source code install it with:
cd qemu/
git submodule update --init dtc
g. fix script permissions, run:
cd jni/
dos2unix fix_script_permissions.sh
chmod u+x fix_script_permissions.sh
./fix_script_permissions.sh
===============================================================================
5. Build
a. To build the NDK part of the app make sure you're under the jni directory:
WARNING! If you use Windows/Cygwin Make sure your project is in a directory ONLY under the C: drive!
If you use Windows use Cygwin Prompt otherwise use your terminal (Linux/Macos)
> cd /cygdrive/c/users/youraccount/.../limbo-android/jni
or if you use linux:
> cd /home/youraccount/.../limbo-android/jni
If you build on Windows platform make sure you update the android-config.mak file:
NDK_ROOT = C:/tools/bin/android-ndk-r13b-windows-x86_64/android-ndk-r13b
NDK_ROOT_INC = C:/tools/bin/android-ndk-r13b-windows-x86_64/android-ndk-r13b
If you want to build the x86, ARM,MIPS,PowerPC Emulator update android-qemu-config.mak file with one of these:
TARGET_LIST = x86_64-softmmu
TARGET_LIST = arm-softmmu
TARGET_LIST = mips-softmmu
TARGET_LIST = ppc-softmmu
b. From Eclipse Import BOTH the Android library AND the sub-project under limbo-android/apps/ for the guest
architecture you need (x86,arm,ppc,sparc). You will also need the Android Support Library v7. Make sure
that folders under the subprojects like ./apps/limbo-android-x86/assets
exists.
c. Build the static and shared libraries under ../limbo-android/jni:
i. > make config
ii. > make release
d. Build the Android APK from Eclipse.
** Make sure the *.so libraries are zipped in the final .apk
(Eclipse should do that automatically)
e. For ARMv7 phones (hard floating point - obsolete):
i. Update android-config.mak and include file android-generic-armv7a-hard.mak
ii. > make config
iii. > make release
f. For x86 phones:
i. Update android-config.mak and include file android-ndkr8-x86.mak
ii. > make clean
iii. > make config
iv. > make release
g. To clean up type:
> make clean
h. If you want to build the debugging version:
i. Modify debuggable flag in AndroidManifest.xml to true
and set debug variable in Config.java to true
ii. Modify android-config.mak and point to a configuration
with no optimization:
ie android-generic-armv5te-softfp-noopt.mak
ii. From the command line type:
> make config-debug
> make debug
i. To start debugging the native code for a particular guest arch type:
for x86:
> make ndk-gdb PKG_NAME=com.limbo.emu.main
for arm:
> make ndk-gdb PKG_NAME=com.limbo.emu.main.arm
for sparc:
> make ndk-gdb PKG_NAME=com.limbo.emu.main.sparc
for ppc:
> make ndk-gdb PKG_NAME=com.limbo.emu.main.ppc
j. Done.
===============================================================================
6. Development
a. Changes pertinent to compatibility with Android/bionic are tagged in C as preprocessor define __ANDROID__
b. Similarly other changes pertinent to LIMBO are tagged with __LIMBO__
c. Important configuration makefiles:
android-config.mak (for setting up toolchain variables)
android-qemu-config.mak (for configuring QEMU options)
d. Android Makefiles can be found as Android.mk and Application.mk
e. Device specific flags can be found under directory android-device-config/
f. Frontend UI options configuration see: Config.java
===============================================================================
7. Run
a. Installing a full Qwerty keyboard for Android like Hacker's keyboard
from the Google Android store. Make sure you use Transparent theme
and Direct Draw found under Theme settings.
b. Start the Limbo app and choose CPU, Memory (~8-64MB),etc..
c. Choose a bootable disk image(s) for CDRom, Floppy, and a HDD image
d. Start the virtual machine.
e. For more instructions and guides visit:
https://github.com/limboemu/limbo
f. Have fun!
===============================================================================
8. License
Limbo PC Emulator is release unders GPL v2 License.
All icons unders /res are from Gnome Project (GPL v2 License)
See file COPYING
Other source included are released under their own license please view Licenses under each subdirectory
===============================================================================
Endofdoc