Android on Asus P750 - Android Software Development

I am working on linux and android port to Asus P750 device.
Current kernel repository with Android patches are here - http://github.com/vovan888/p750-kernel/tree/work
Prebuilt kernel can be found here - http://github.com/vovan888/p750-kernel/downloads
There is no currently prebuilt android root filesystem, but the rootfs from Asus p535 can be used.

how to customize for another device
Hello,
I have a Eten X600 and I would like to know how can I install or adapt the current kernel to port my device.
May you help?
Thanks!
Erick

For Eten support look at http://gnufiish.org/trac/browser
There is some Eten support here.

any updates on this?

I talked to one of the people maintaining it
and they sent me this link
For Haret & he linux files for it so you can boot up linux from WM
http://sites.google.com/site/linuxonasusp750/
I haven't tried it yet but i think you need to format your sd card to ext2
(http://sites.google.com/site/siteofhx/Home/android/q-a-about-running-android-on-p535)
From what I gather -- sound works, display works, touchscreen works but gsm/wifi/gps are dead, but you can still.
Again haven't tried it yet... hope there's more progress on this tho

What about this project? It's still on development? I'm very interested on it since Asus P750 is a great smartphone!!
Can someone who had tried Android on one Asus P750 explain how install it step by step, please?

Instruction step by step:
1.Download HARET.ZIP from http://github.com/vovan888/p750-kernel/downloads
2.Copy all files to the device rom
3.Replace the content of STARTUP.TXT with:
Code:
set FBDURINGBOOT 0
set KERNEL \haret\zImage
set MTYPE 1912
set CMDLINE "debug root=/dev/mmcblk0p init=/init mem=64M wm97xx-ts.abs_x=315,3827,15 wm97xx-ts.abs_y=255,3812,40"
boot
4.Go to http://sites.google.com/site/siteofhx/Home/android/relevant-porting-files
5.Download file: AndroidOnP535.rar (http://cid-6fac71b8e8cee5b6.skydrive.live.com/self.aspx/android/AndroidOnP535.rar)
6.Extract file: rootfs.tar.gz
7.Format your SD card to EXT2
8.Extract the content of rootfs.tar.gz to your card
Code:
sudo tar zxvf rootfs.tar.gz -C /YOUR_CARD/
9.Execute haret-0.5.2.exe
10.If not running properly search for something similar to:
Code:
[ 1.000020]b300 975360 mmcblk0 driver: mmcblk
[ 1.002520] b301 975359 mmcblk0p1
11.Change
Code:
/dev/mmcblk0p
to
Code:
/dev/mmcblk0p1
in file STARTUP.TXT
I have managed to run the kernel, but not the Android. The last lines on the consoles are:
Code:
[175.800106] EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended
[175.826629] VFS: Mounted root (ext2 filesystem).
[175.840535] Freeing init memory: 116K
[175.859838] device: 'vcs1': device_add
[175.860194] PM: Adding info for Non Bus:vcs1
[175.864505] device: 'vcsa1': device_add
[175.864865] PM: Adding info for No Bus:vcsa1
Dump from HARETLOG.TXT:
Code:
===== HaRET 0.5.2 =====
Setting KMode to true.
Old KMode was 1
Finished initializing output
Loading dynamically bound functions
Function 'AllocPhysMem' in library 'coredll' at 03F65E38
Function 'FreePhysMem' in library 'coredll' at 03F65EA4
Function '[email protected]@[email protected]@[email protected]' in library 'gx' at 025EE9EC
Function '[email protected]@YAHXZ' in library 'gx' at 025EEDD8
Function '[email protected]@YAPAXXZ' in library 'gx' at 025EE2A8
Function '[email protected]@YAHXZ' in library 'gx' at 025EE36C
Function 'LoadLibraryExW' in library 'coredll' at 03F65FE0
Function 'NLedSetDevice' in library 'coredll' at 03F8CE54
Function 'GetSystemPowerStatusEx2' in library 'coredll' at 03F6C9A8
Function 'SleepTillTick' in library 'coredll' at 03F65F00
Function 'CreateToolhelp32Snapshot' in library 'toolhelp' at 02D9005C
Function 'CloseToolhelp32Snapshot' in library 'toolhelp' at 02D9007C
Function 'Process32First' in library 'toolhelp' at 02D90140
Function 'Process32Next' in library 'toolhelp' at 02D901AC
Function 'Module32First' in library 'toolhelp' at 02D90340
Function 'Module32Next' in library 'toolhelp' at 02D903B0
Function 'Heap32ListFirst' in library 'toolhelp' at 02D9044C
Function 'Heap32ListNext' in library 'toolhelp' at 02D904D4
Function 'Heap32First' in library 'toolhelp' at 02D9056C
Function 'Heap32Next' in library 'toolhelp' at 02D90620
Unable to load library 'ace_ddi'
Unable to load library 'ace_ddi'
Unable to load library 'ace_ddi'
Unable to load library 'ace_ddi'
Unable to load library 'ace_ddi'
Unable to load library 'ace_ddi'
Unable to load library 'ace_ddi'
Unable to load library 'ace_ddi'
Detecting current machine
Trying to detect machine (Plat='PocketPC' OEM='ASUS P750')
Wince reports processor: core=PXA270 name=520Mhz cat= vend=Intel
Looking at machine Alpine
Looking at machine Apache
Looking at machine AximX50
Looking at machine AximX5
Looking at machine Beetles
Looking at machine Blueangel
Looking at machine Himalaya
Looking at machine Magician
Looking at machine Universal
Looking at machine H1910
Looking at machine H1940
Looking at machine H2200
Looking at machine H3600b
Looking at machine H3700
Looking at machine H3800
Looking at machine H3900
Looking at machine H4000
Looking at machine H4300
Looking at machine H5000
Looking at machine H6340
Looking at machine HX2000
Looking at machine HX4700
Looking at machine Sable
Looking at machine Wizard
Looking at machine Hermes
Looking at machine Trinity
Looking at machine Athena
Looking at machine G500
Looking at machine Artemis
Looking at machine Herald
Looking at machine Prophet
Looking at machine RX3000
Looking at machine Treo700wx
Looking at machine e310
Looking at machine e740
Looking at machine Acer_n30
Looking at machine Mio_P550
Looking at machine Kaiser
Looking at machine Loox5xx
Looking at machine Loox400
Looking at machine MioA701
Looking at machine Wallaby
Looking at machine Raphael
Looking at machine Jornada820
Looking at machine H3100
Looking at machine H3600a
Looking at machine Tornado
Looking at machine Libra
Looking at machine Generic Intel PXA27x
Looking at machine Generic Intel PXA
Looking at machine Generic Intel StrongArm
Looking at machine Generic TI OMAP
Looking at machine Generic TI OMAP15xx
Looking at machine Generic Samsung s3c24xx
Looking at machine Generic MSM7xxxA
Looking at machine Generic MSM7xxx
Looking at machine Generic Atlas
Looking at machine Generic ARM 920t
Looking at machine Generic ARM 926
Looking at machine Generic ARM v6
Looking at arch Generic Intel PXA27x
Detecting ram size
WinCE reports memory size 67108864 (phys=50630656 store=163815424)
Mapping mmu table
Build L1 reverse map
Found 396 uncached and 396 cached L1 mappings (ignored 1).
Registering command IGPIO
Registering command WG|PIO
Registering command GPLR
Registering command GPDR
Registering command GAFR
Registering command GPIO
Registering command GPIOST
Registering command LOADLIBRARYEX
Registering command NLEDSET
Registering command TRACE
Registering command TRACEMASK
Registering command TRACE2
Registering command TRACETYPE
Registering command TRACE2TYPE
Registering command TRACEFORWATCH
Registering command INSN
Registering command INSNREENABLE
Registering command INSNREG1
Registering command INSNREG2
Registering command INSN2
Registering command INSN2REENABLE
Registering command INSN2REG1
Registering command INSN2REG2
Registering command KILL
Registering command PS
Registering command LSMOD
Registering command ADDR2MOD
Registering command AC97
Not registering command ATIDBG
Initializing for machine 'Generic Intel PXA27x'
HaRET(1)# set ramaddr 0xa0000000
HaRET(2)# addlist IRQS p2v(0x40D00000) 0x480 32 0
HaRET(3)# addlist IRQS p2v(0x40D0009c) 0xfffffffc 32 0
HaRET(4)# addlist IRQS p2v(0x40E00048) 0 32 0
HaRET(5)# addlist IRQS p2v(0x40E0004c) 0 32 0
HaRET(6)# addlist IRQS p2v(0x40E00050) 0 32 0
HaRET(7)# addlist IRQS p2v(0x40E00148) 0 32 0
HaRET(8)# addlist GPIOS p2v(0x40E00000)
HaRET(9)# addlist GPIOS p2v(0x40E00004)
HaRET(10)# addlist GPIOS p2v(0x40E00008)
HaRET(11)# addlist GPIOS p2v(0x40E00100)
HaRET(12)# addlist GPIOS p2v(0x40E0000C)
HaRET(13)# addlist GPIOS p2v(0x40E00010)
HaRET(14)# addlist GPIOS p2v(0x40E00014)
HaRET(15)# addlist GPIOS p2v(0x40E0010C)
HaRET(16)# addlist GPIOS p2v(0x40E00054)
HaRET(17)# addlist GPIOS p2v(0x40E00058)
HaRET(18)# addlist GPIOS p2v(0x40E0005c)
HaRET(19)# addlist GPIOS p2v(0x40E00060)
HaRET(20)# addlist GPIOS p2v(0x40E00064)
HaRET(21)# addlist GPIOS p2v(0x40E00068)
HaRET(22)# addlist GPIOS p2v(0x40E0006c)
HaRET(23)# addlist GPIOS p2v(0x40E00070)
HaRET(24)# newvar CLOCKS GPIOS 'Architecture clock registers'
HaRET(25)# addlist CLOCKS p2v(0x41300000)
HaRET(26)# addlist CLOCKS p2v(0x41300004)
HaRET(27)# addlist CLOCKS p2v(0x41300008)
HaRET(28)# addlist CLOCKS p2v(0x4130000C)
HaRET(29)# addlist CLOCKS cp 14 0 6 0 0
HaRET(30)# addlist CLOCKS cp 14 0 7 0 0
Welcome, this is HaRET 0.5.2 running on WindowsCE v5.2
Minimal virtual address: 00010000, maximal virtual address: 7FFFFFFF
Detected machine Generic Intel PXA27x/PXA27x (Plat='PocketPC' OEM='ASUS P750')
CPU is Intel ARM arch 5TE revision 0 product 17 stepping 7 running in system mode
Enter 'HELP' for a short command summary.
Running WSAStartup
Starting gui
In initdialog
Found machine Generic Intel PXA27x
executing startup.txt
HaRET(3)# set FBDURINGBOOT 0
HaRET(4)# set KERNEL \haret\zImage
HaRET(5)# set MTYPE 1912
HaRET(8)# set CMDLINE "debug root=/dev/mmcblk0p1 init=/android.sh mem=64M"
HaRET(20)# boot
boot KERNEL=\haret\zImage INITRD=
Opening file \haret\zImage
boot params: RAMADDR=a0000000 RAMSIZE=04000000 MTYPE=1912 CMDLINE='debug root=/dev/mmcblk0p1 init=/init mem=64M wm97xx-ts.abs_x=315,3827,15 wm97xx-ts.abs_y=255,3812,40'
Boot FB feedback: 0
Built virtual to physical page mapping
Allocated 445 pages (tags=4B600000/a2990000 kernel=4B601000/a298f000 initrd=4B7B9000/a27d7000 index=4B7B9000/a27d7000)
Built kernel tags area
Built page index
[email protected]/a27d4000 sj=4B7BC000 stack=4B7BA000/a27d6000 data=4B7BB000/a27d5000 exec=a27d4128
Reading 1798852 bytes...
Read complete
Launching to physical address a27d4010
Trampoline setup ([email protected]/160255f4/a0a8b5f4)
MMU setup: mmu=A8A30000/a0a30000
Go Go Go...
And the system freezes. Any help?
Ps. I have tried to start a difrent linux and found that the system stops after calling init.

update on linux with asus p750
hi ,
is there any update on porting linux to p750 ?
could anyone please update me on this ?
rgds
Gangadharan K

Vovan888 said:
I am working on linux and android port to Asus P750 device.
Current kernel repository with Android patches are here - http://github.com/vovan888/p750-kernel/tree/work
Prebuilt kernel can be found here - http://github.com/vovan888/p750-kernel/downloads
There is no currently prebuilt android root filesystem, but the rootfs from Asus p535 can be used.
Click to expand...
Click to collapse
But You how do this.
I put haret in rom, and kernel with Android patches in a microSD in ext2
Harent start, but after stop with kernel panic, unable to find init.
I have p750 too. Any Idea?!?
p.s. sorry for my english.

Anyone has installed successfully android on ASUS P750???

Success
After a lot of try-and-error, Android is now running on my p750. I followed SB_prime's Guide and it worked pretty well after I had copied the rootfs to my sd-card a few times.
However ther are some things that seem weird to me:
- After booting into Android, the screen seems to have a too high definition and as a result, it is flickering
- After booting, I get the error Message "UIDs on the system are inconsistent, you need to wipe your data partition or your device will be unstable"
- After doing that, the System is very restricted, for example I can`t go into "Settings"
Did anyone get further than that and can provide help on this? Does this error occur because I used the rootfs from the P535?
Greetings, Max

Related

[Android] TouchPad Android kernel mini howto

It seems there is little information on the internet regarding how to compile the kernel and how to convert to the correct image format so the boot loader will recognise and how to transfer it over to the touchpad. I ended up spent a few hours and finally figured out. I hope this will be useful for someone. I will try to make it concise as this is mainly aimed for developers.
What you will need
A linux development machine with uboot mkimage tool installed.
Sourcery G++ Lite 2010q1-188 for ARM EABI cross compile tool chain
https://sourcery.mentor.com/sgpp/lite/arm/portal/release1294
Touchpad kernel source
https://github.com/CyanogenMod/hp-kernel-tenderloin
CM7 Alpha 3 image (zip file)
http://goo-inside.me/roms/cmtouchpad/alpha3/update-cm-7.1.0-tenderloin-a3-fullofbugs-signed.zip
Prepare
Download CM7 Alpha 3 image and extract the boot.img to a temporary place.
Download Sourcery G++ Lite and install it. Add the G++ Lite tool chain binaray path to the PATH env variable. Get the kernel source from git hub and extract to local disk and change directory to the kernel source.
Compile the kernel
Still in the kernel source directory run
Code:
make ARCH=arm CROSS_COMPILE=arm-none-eabi- tenderloin_android_defconfig
make ARCH=arm CROSS_COMPILE=arm-none-eabi- uImage
Prepare the initramfs U-boot image
Extract the initramfs from the boot.img saved in temporary folder and convert it to uboot-image format
Code:
dd if=boot.img bs=1 skip=3577748 of=img.gz
mkimage -A arm -O linux -T ramdisk -C none -a 0x60000000 -e 0x60000000 -n "Image" -d ./img.gz arch/arm/boot/uRamdisk
(The dd offset for alpha 2.1 image is 3561152)
Combine the kernel and initramfs into a single U-boot image
Create a combined U-boot image (kernel and initramfs)
Code:
mkimage -A arm -O linux -T multi -a 0x40208000 -e 0x40208000 -C none -n "multi image" -d arch/arm/boot/uImage:arch/arm/boot/uRamdisk uImage.CyanogenMod.new
Transfer it to the device
Boot your touchpad into recovery mode and run
Code:
adb shell mount /dev/block/mmcblk0p13 /boot
adb push uImage.CyanogenMod.new /boot/uImage.CyanogenMod.new
adb shell umount /boot
adb shell reboot
After it reboot you should be able to see a new CyanogenMod.new item from the boot menu.
That's it!
Optimisation
For those who wants to experiment with GCC build options you can update the entry "arch-$(CONFIG_CPU_32v7" in file arch/arm/Makefile and I set mine to
Code:
arch-$(CONFIG_CPU_32v7) :=-D__LINUX_ARM_ARCH__=7 -mtune=cortex-a8 -mfpu=neon -ftree-vectorize -mfloat-abi=softfp -O2 $(call cc-option,-march=armv7-a,-march=armv5t -Wa$(comma)-march=armv7-a)
Warning
Please be aware you are working on the bleeding edge kernel for touchpad and there is no guarantee that the latest git version will work for you. Please try an earlier version if that's the case.
As of 2011-11-23 you will need the latest kernel source to build kernel for alpha 3. Please do not mix the kernel with an initramfs from a different version, i.e. don't use initramfs extracted from alpha 2.1 and use it with alpha3.
Thanks for this. Last weekend spent a while trying to figure this out.
Sent from my HP Touchpad using Tapatalk
x2. Huge thanks
Thank you soooooo much for this guide. Quick question if you don't mind though.. I am using an mkimage that goes back to my nook kernel days. Is there anything newer out, or would this still be ok,?
Divine_Madcat said:
Thank you soooooo much for this guide. Quick question if you don't mind though.. I am using an mkimage that goes back to my nook kernel days. Is there anything newer out, or would this still be ok,?
Click to expand...
Click to collapse
As long as the mkimage can generate a standard U-boot image it should be fine.
You can always try it yourself. In worst case you have to hard reboot the touchpad by pressing the power button and home button at the same time for more than 10 minutes. As long as you keep the original image files (UImage.*) untouched I don't think you can brick it even if you want to.
S7
I have been trying to compile the kernel for some time now, and was hopeful reading your guide (and this last post) However, still following the steps to merge the ramdisk, i cannot make a booting kernel. I can get it flashed, as i am using the update.zip method, but moboot always gives me a crc error when booting it.
Though, before i totally go nuts, i think i need to try the source forgery toolchain, as i am using the Android ndk r6b...
Divine_Madcat said:
S7
I have been trying to compile the kernel for some time now, and was hopeful reading your guide (and this last post) However, still following the steps to merge the ramdisk, i cannot make a booting kernel. I can get it flashed, as i am using the update.zip method, but moboot always gives me a crc error when booting it.
Though, before i totally go nuts, i think i need to try the source forgery toolchain, as i am using the Android ndk r6b...
Click to expand...
Click to collapse
Could you check the md5sum of the u-boot image crated on disk and the one installed by update.zip file? Do they match? If they do then you probably will need to upgrade your mkimage tool.
s7mx1 said:
Could you check the md5sum of the u-boot image crated on disk and the one installed by update.zip file? Do they match? If they do then you probably will need to upgrade your mkimage tool.
Click to expand...
Click to collapse
I will give it a check; just in case, know where to get a newer mkimage?
Thanks so much for this guide
s7mx1 said:
You can always try it yourself. In worst case you have to hard reboot the touchpad by pressing the power button and home button at the same time for more than 10 minutes.
Click to expand...
Click to collapse
It feels like 10 mins.. doesn't it
WEll, i checked the MD5 sums, and it looks good. So, i guess it is time to try again with the toolchain listed here, and perhaps a new mkimage (if there is a "modern" one i should using, please point me to it...)
edit: Never mind.. in all my looking, i never saw that ubuntu had a nice one waiting for me.... doh
edit2: Woo! After getting the probably correct mkimage, and the CS toolchain, looks like i finally got it to pass the crc check. Now, lets see if it finishes booting. Thanks again for the guide!
Nope.. no boot. I get a dmesg with this:
<3>[ 69.978716] init: untracked pid 224 exited
<6>[ 70.086076] android_usb gadget: high speed config #1: android
<6>[ 70.086209] gadget_event: schedule host_connected
<6>[ 70.096953] max8903b_current_setup: CURRENT_500MA
<6>[ 70.097040] gadget_event: source=bus mA=500 (no change)
<4>[ 70.910953] UDC-CHG (2-2-2): usb_multi_chg_detect (591) : USB host Adaptor
(500mA)!
<6>[ 70.912805] gadget_event: schedule host_disconnected
<6>[ 70.925482] max8903b_current_setup: CURRENT_ZERO
<6>[ 71.164066] android_usb gadget: high speed config #1: android
<6>[ 71.164220] gadget_event: schedule host_connected
<6>[ 71.173640] max8903b_current_setup: CURRENT_500MA
<6>[ 71.178212] gadget_event: source=bus mA=500 (no change)
<6>[ 72.160955] gadget_event: host_connected=1 (no change)
<6>[ 74.142224] request_suspend_state: wakeup (0->0) at 74121495501 (2011-11-1
1 22:49:33.378031648 UTC)
<3>[ 74.143675] init: untracked pid 266 exited
<3>[ 74.155217] init: untracked pid 273 exited
<6>[ 79.285016] request_suspend_state: wakeup (0->0) at 79264287462 (2011-11-1
1 22:49:38.520824942 UTC)
The last three lines repeat alot, with different pid's .
Alrighty.. figured this one out - You cannot use the latest repository commits with the 2.1 alpha build. However, i was able to build commit fd70bb7aae, and it builds and actually boots. Now, i can actually play around and tweak it. Thank you again for the guide, and sorry for the edit spamming.. heh.
myn said:
x2. Huge thanks
Click to expand...
Click to collapse
Myn, do you have a touchpad???!!!? God I hope so!
vinscuzzy said:
Myn, do you have a touchpad???!!!? God I hope so!
Click to expand...
Click to collapse
He does
Sent from my PG86100 using Tapatalk
Divine_Madcat said:
WEll, i checked the MD5 sums, and it looks good. So, i guess it is time to try again with the toolchain listed here, and perhaps a new mkimage (if there is a "modern" one i should using, please point me to it...)
edit: Never mind.. in all my looking, i never saw that ubuntu had a nice one waiting for me.... doh
edit2: Woo! After getting the probably correct mkimage, and the CS toolchain, looks like i finally got it to pass the crc check. Now, lets see if it finishes booting. Thanks again for the guide!
Nope.. no boot. I get a dmesg with this:
<3>[ 69.978716] init: untracked pid 224 exited
<6>[ 70.086076] android_usb gadget: high speed config #1: android
<6>[ 70.086209] gadget_event: schedule host_connected
<6>[ 70.096953] max8903b_current_setup: CURRENT_500MA
<6>[ 70.097040] gadget_event: source=bus mA=500 (no change)
<4>[ 70.910953] UDC-CHG (2-2-2): usb_multi_chg_detect (591) : USB host Adaptor
(500mA)!
<6>[ 70.912805] gadget_event: schedule host_disconnected
<6>[ 70.925482] max8903b_current_setup: CURRENT_ZERO
<6>[ 71.164066] android_usb gadget: high speed config #1: android
<6>[ 71.164220] gadget_event: schedule host_connected
<6>[ 71.173640] max8903b_current_setup: CURRENT_500MA
<6>[ 71.178212] gadget_event: source=bus mA=500 (no change)
<6>[ 72.160955] gadget_event: host_connected=1 (no change)
<6>[ 74.142224] request_suspend_state: wakeup (0->0) at 74121495501 (2011-11-1
1 22:49:33.378031648 UTC)
<3>[ 74.143675] init: untracked pid 266 exited
<3>[ 74.155217] init: untracked pid 273 exited
<6>[ 79.285016] request_suspend_state: wakeup (0->0) at 79264287462 (2011-11-1
1 22:49:38.520824942 UTC)
The last three lines repeat alot, with different pid's .
Alrighty.. figured this one out - You cannot use the latest repository commits with the 2.1 alpha build. However, i was able to build commit fd70bb7aae, and it builds and actually boots. Now, i can actually play around and tweak it. Thank you again for the guide, and sorry for the edit spamming.. heh.
Click to expand...
Click to collapse
That's because dalingrin has updated the default configuration to use the HIGHMEM which seems to kill all the apps. The latest git actually works if you disable all the HIGHMEM related stuff.
decalex said:
Thanks so much for this guide
It feels like 10 mins.. doesn't it
Click to expand...
Click to collapse
Absolutely
I just hope there is a rest button as the touchscreen occasionally will not respond at all after wake up and I have to reboot to webos and then reboot back to get the touchscreen back.
Great guide and I got the kernel all built, but how do you change the kernel arguments for booting? e.g. where does moboot get its whole root=/dev/ram0 ro fb...stuff, and how does the CyanogenMod kernel know where to look for the rootfs partition?
crimsonredmk said:
Great guide and I got the kernel all built, but how do you change the kernel arguments for booting? e.g. where does moboot get its whole root=/dev/ram0 ro fb...stuff, and how does the CyanogenMod kernel know where to look for the rootfs partition?
Click to expand...
Click to collapse
The root parameter (root=/dev/ram0) that passed to kernel is not useful to you. The root / is mere extracted initramfs in memory. I assume you are looking for system, data partitions etc. With TP we have LVM partitions which you can do really fancy stuff with. The actual mount device and mount point is defined (hard coded) in file init.tenderloin.rc which you can find in the initramfs (i.e. the img.gz which is a gzipped cpio file). You can extract all the contents out from img.gz and modify init.tenderloin.rc to suit your need and then create an updated initramfs file to go with the kernel.
Since Android (at least CM7 on TP) does not use pivot_root any changes made to the initramfs will appear automatically when you boot up the device.
You can google if you are not sure how to work with initramfs file.

CM7 MAC Address Fix

I could not post directly in the development thread as I joined simply to share my solution. If anyone can confirm and prepare a better guide please post to CM7 thread by whistelstop.
You will need your factory mac address.
MAC Addresses all being the same is due to the nvs_map.bin file required by the tiwlan driver. dmseg driver will tell you it is looking for it and defaulting mac address.
I am running CM7 mileage will vary in stock rom.
http://www.omappedia.org/wiki/Porting_MCP_WLAN_to_Android#TxBiP_Calibration
I used the calibration instructions in terminal emulator on cm7 Kindle as "su"
#wlan_cu –b
# / w p 1 l 2 f 2
# / t b v 21
# / t b t 1 0 0 0 0 0 0 0
#/ q
New nvs_map.bin file will be ceated in /data/misc/wifi/
#cp /data/misc/wifi/nvs_map.bin to /sdcard/nvs_map.bin
connect to linux/windows host copy file to pc
open with hex editor I used xvi32 for windows.
link to my source for instruction for byte order and editing.
http://processors.wiki.ti.com/index...ce_(CLI)_User's_Guide#Editing_the_MAC_Address
Short instructions:
Editing the MAC Address
After the TX BIP runs, there is a new file called nvs_map.bin in Linux that contains the MAC address and the calibration data. The document SWAA044_NVS_INI_File_Functions_AN.pdf contains the format of the NVS file. If MAC address fields are manually edited with a hex editor, the byte order should be low byte first, followed by the high byte:
MAC address low register (offset 0x01 to 0x02)
MAC address LSB (offset 0x3 to 0x06)
MAC address high register (offset 0x08 to 0x09)
MAC address MSB (offset 0x0A to 0x0D)
The MAC address LSB and MAC address MSB, respectively, are shown in bold in the
following code for 08:00:28:12:34:56:
0000: 01 6d 54 56 34 12 28 01 71 54 00 08
For 11:22:33:44:55:66:
0000: 01 6d 54 66 55 44 33 01 71 54 22 11 00 00
Using a hex editor, you should change the bold numbers to the MAC address you
want to use.
Be careful about byte order and look closely at examples.
Good Luck
Please confirm instructions yourself and use at your own risk
Just tried that and it worked beautifully!
Thanks for that - great find!
TheKid2 said:
I could not post directly in the development thread as I joined simply to share my solution. If anyone can confirm and prepare a better guide please post to CM7 thread by whistelstop.
You will need your factory mac address.
MAC Addresses all being the same is due to the nvs_map.bin file required by the tiwlan driver. dmseg driver will tell you it is looking for it and defaulting mac address.
I am running CM7 mileage will vary in stock rom.
As I can not post links you will need to google my text and find correct link (noob)
maybe a moderator can fix for me.
######.omappedia.org/wiki/Porting_MCP_WLAN_to_Android#TxBiP_Calibration
I used the calibration instructions in terminal as "su"
#wlan_cu –b
# / w p 1 l 2 f 2
# / t b v 21
# / t b t 1 0 0 0 0 0 0 0
#/ q
New nvs_map.bin file will be ceated in /data/misc/wifi/
#cp /data/misc/wifi/nvs_map.bin to /sdcard/nvs_map.bin
connect to linux/windows host copy file to pc
open with hex editor I used xvi32 for windows.
link to my source for instruction for byte order and editing.
##processors.wiki.ti.com/index.php/OMAP35x_Wireless_Connectivity_WL1271_Command_Line_Interface_(CLI)_User%27s_Guide#Editing_the_MAC_Address
Short instructions:
Editing the MAC Address
After the TX BIP runs, there is a new file called nvs_map.bin in Linux that contains the MAC address and the calibration data. The document SWAA044_NVS_INI_File_Functions_AN.pdf contains the format of the NVS file. If MAC address fields are manually edited with a hex editor, the byte order should be low byte first, followed by the high byte:
MAC address low register (offset 0x01 to 0x02)
MAC address LSB (offset 0x3 to 0x06)
MAC address high register (offset 0x08 to 0x09)
MAC address MSB (offset 0x0A to 0x0D)
The MAC address LSB and MAC address MSB, respectively, are shown in bold in the
following code for 08:00:28:12:34:56:
0000: 01 6d 54 56 34 12 28 01 71 54 00 08
For 11:22:33:44:55:66:
0000: 01 6d 54 66 55 44 33 01 71 54 22 11 00 00
Using a hex editor, you should change the bold numbers to the MAC address you
want to use.
Be careful about byte order and look closely at examples.
Good Luck
Please confirm instructions yourself and use at your own risk
Click to expand...
Click to collapse
I'll verify tomorrow. Thanks for taking the time to help run this to ground and get a workaround.
** Deleted **
For new driver only ....
so next cm7 build will get the fix
right?
As it was my first post forum would not allow me to post links I am hoping someone will clean up solution and add to development thread.
whistlestop said:
I'll verify tomorrow. Thanks for taking the time to help run this to ground and get a workaround.
Click to expand...
Click to collapse
love this rom , I have four of these running on my router now with original factory mac addresses, Thank You for your work. I know from personal experience hours and hours can just disappear when you get involved with a project of this type.
Is there a way to get the factory MAC address while still in CM7 or do I have to load the stock ROM to get it and then go back to CM7?
I have not found am method other than loading stock software back on device.
If you only have one kindle on your network you most likely will never have a problem.
If you had more than one running cm7 you could have router issues as they all were reporting same mac address. You will not have any issues unless another cm7 kindle shows up on the same wireless access point as yours.
Unless you have a router log or something with your former mac address, I think you have to reload stock to find it. Thats what I did anyway.
Thanks to the OP for posting this; worked like a charm!
direct editing
could we use a hex editor to change the local file on the kindle?
I spotted one at the market place, and combined with SU privileges it might get the job done.
jfb9301 said:
could we use a hex editor to change the local file on the kindle?
I spotted one at the market place, and combined with SU privileges it might get the job done.
Click to expand...
Click to collapse
any hex editor should work. I am so use to using laptop still adjusting to touch keyboard.
Hopefully better instructions
having just stumbled through to OPs instructions (hats off to the OP for finding this). Successfully I might add, I thought I'd write up a hopefully more clear method of achieving this.
As I have had difficulty with the adb.exe command (connection issues, probably from a dodgy connection if I have too many USB devices plugged in) I chose to use applications local to my Kindle itself for as much as I could.
Apps:
adb.exe (the one that came with Kindle_Fire_Utility worked for me) grab a copy of this useful tool here kindle fire utility thread
Root explorer from the android market android market link
HexEditor android market link
Kindle fire
Computer
Data:
Your original MAC address - this might suck to get, as you will have to get it from your Kindle booted to stock Kindle Fire Firmware. I had installed CM7 using TWRP, so I booted to TWRP did a backup of my current CM7 OS, did a restore to the KF OS, booted to stock(rooted) opened up settings/device and nabbed that pesky MAC address, rebooted to TWRP, restored CM7.
Instructions:
connect KF to computer
open the computers start menu and select run, type CMD in the box
navigate to kindle_fire_utility/tools
type command: adb shell
adb should open and start communication with you Kindle
within the shell you have to type the following (be mindful of the spaces as they are important, ignore the #s as they are to make this post put the spaces in):
#wlan_cu –b
# / w p 1 l 2 f 2
# / t b v 21
# / t b t 1 0 0 0 0 0 0 0
#/ q
now use ctrl-c to end ADB, and command:
exit
to close cmd, you are done with windows.
now the kindle part...
open root explorer
/data/misc/wifi
select nvs_map.bin and copy to the sdcard, I made two copies and named the second nvs_map.bin.bak just in case things got screwed from this point on.
exit root explorer
open HexEditor
open /sdcard/nvs_map.bin and change the digits in the very first line of the file
(example from OPs post)
following code for 08:00:28:12:34:56:
0000: 01 6d 54 56 34 12 28 01 71 54 00 08 00 00
For 11:22:33:44:55:66:
0000: 01 6d 54 66 55 44 33 01 71 54 22 11 00 00
save the file
use root explorer to copy it back to /data/misc/wifi
long press the file and set permissions to RW-RW-RW-
Reboot.....
Done
---------- Post added at 04:09 PM ---------- Previous post was at 03:11 PM ----------
I confimed MAC address using my wifi router (DDWRT) is awesome.
Does anyone know a way to get CM7 to cough up the kindles MAC address?
I'm having some difficulties with these instructions. I've tried with the WiFi setting from CM7 on and off, and also with the full instructions from the omappedia.org site, and it's still not working. A quick Google didn't come up with anything.
This is my output (from an ADB shell, obviously):
Code:
# insmod /system/etc/wifi/tiwlan_drv.ko
# start wlan_loader
# ifconfig tiwlan0 up
# wlan_cu –b
ERROR - IpcWpa_Sockets_Open - can't connect the socket
******************************************************
Connection to supplicant failed
******************************************************
ERROR - IPC_STA_Private_Send - error sending Wext private IOCTL to STA driver (ioctl_cmd = 800003, res = -1, errno = 19)
ERROR - driver is not in RUNNING state!
user_main, start
\> Driver/, Connection/, Management/, Show/, Privacy/, scAn/, roaminG/, qOs/, poWer/, eVents/, Bt coexsistance/, Report/, dEbug/, biT/, aboUt, Quit
/ D S
\> Driver/, Connection/, Management/, Show/, Privacy/, scAn/, roaminG/, qOs/, poWer/, eVents/, Bt coexsistance/, Report/, dEbug/, biT/, aboUt, Quit
.../Driver> Start, sTop, stAtus
ERROR - IPC_STA_Private_Send - error sending Wext private IOCTL to STA driver (ioctl_cmd = 8000001, res = -1, errno = 19)
ERROR - Failed to start driver!
I have tried it with and without the first three lines (going straight to wlan_cu -b), and the / D S line is an unsuccessful attempt to start the driver. An attempt to just push through all the commands gives an error message with every line, and does not create the nvs_map.bin file.
Anyone have any ideas?
I had wifi on, and did not run the first 3 commands. No thoughts beyond that.
For reference, I am on the latest CM7 with the updated video stuff by wistlestop (I think)
csyria6919 & jfb9301,
I can confirm, you'll get the errors csyria6919 gets with WiFi OFF - turn on Wifi on the KF and then the ADB commands work without errors.
VERY NICE Fix - +1 thanks to TheKid2!
~J
csyria6919 said:
I'm having some difficulties with these instructions. I've tried with the WiFi setting from CM7 on and off, and also with the full instructions from the omappedia.org site, and it's still not working. A quick Google didn't come up with anything.
This is my output (from an ADB shell, obviously):
Code:
# insmod /system/etc/wifi/tiwlan_drv.ko
# start wlan_loader
# ifconfig tiwlan0 up
# wlan_cu –b
ERROR - IpcWpa_Sockets_Open - can't connect the socket
******************************************************
Connection to supplicant failed
******************************************************
ERROR - IPC_STA_Private_Send - error sending Wext private IOCTL to STA driver (ioctl_cmd = 800003, res = -1, errno = 19)
ERROR - driver is not in RUNNING state!
user_main, start
\> Driver/, Connection/, Management/, Show/, Privacy/, scAn/, roaminG/, qOs/, poWer/, eVents/, Bt coexsistance/, Report/, dEbug/, biT/, aboUt, Quit
/ D S
\> Driver/, Connection/, Management/, Show/, Privacy/, scAn/, roaminG/, qOs/, poWer/, eVents/, Bt coexsistance/, Report/, dEbug/, biT/, aboUt, Quit
.../Driver> Start, sTop, stAtus
ERROR - IPC_STA_Private_Send - error sending Wext private IOCTL to STA driver (ioctl_cmd = 8000001, res = -1, errno = 19)
ERROR - Failed to start driver!
I have tried it with and without the first three lines (going straight to wlan_cu -b), and the / D S line is an unsuccessful attempt to start the driver. An attempt to just push through all the commands gives an error message with every line, and does not create the nvs_map.bin file.
Anyone have any ideas?
Click to expand...
Click to collapse
Hi,
I only used docs as reference. Wifi should be turned on on Kindle. I issued all command from terminal emulator running on Kindle. Hope you have found solution that works for you. Also there are spaces in between just about every letter in the commands.
Let us know if you were successful.
Hello,
I am hearing about cpu utilization issue in another thread. http://forum.xda-developers.com/showthread.php?t=1411895
Can anyone running cm7 and using nvs_map file check utilization connected to secure network. My installation is not exhibiting cpu behavior stuck at 1008 that is being described. Wondering if using calibration file is actually improving performance.
As a side not same file can be used in the current build of ics they are developing in that thread.
cpu scaling issue does not show up on unsecured net. Need a few people to sound off here to determine if my kindles are the only ones not having scaling issue.
Thanks
Is there somewhere in cm7 to check cpu utilization, I looked everywhere ended up downloading task manager from market. Seems like task manager, and performance monitor should be in there somewhere. I am sure I am overlooking something simple.
Thanks
TheKid2 said:
Is there somewhere in cm7 to check cpu utilization, I looked everywhere ended up downloading task manager from market. Seems like task manager, and performance monitor should be in there somewhere. I am sure I am overlooking something simple.
Thanks
Click to expand...
Click to collapse
I used your guide, got CM7 on my device and will check that once I get home.
To check CPU utilization I'd recommend CPU Spy https://market.android.com/details?id=com.bvalosek.cpuspy

Linux Distro on Nexus 7

In the same vein of a similar question asked not too long ago about Win 8, do you guys think we could get Ubuntu, Linux Mint or any other distro on our tablets? Seems far more plausible and I'd love to see this
Try the "complete Linux installer" from the play store I haven't tried it yet but it said it was compatible with the n7
Sent from my Nexus 7 using xda premium
I've been trying to, and I've had some success.
I installed Ubuntu ARM to my /cache partition (/dev/mmcblk0p4)
Then I compiled my own kernel from the official sources, only adding TTY and framebuffer console support to the config.
Then I made it into a boot.img like this:
Code:
$ touch initrd.cpio
$ mkbootimg --kernel zImage --ramdisk initrd.cpio --cmdline "console=tty0 root=/dev/mmcblk0p4 rootfstype=ext4 init=/sbin/init" -o boot.img
Now I can load Ubuntu from fastboot:
Code:
$ fastboot boot boot.img
Well kinda... I can boot to a command line session fine, but I haven't gotten Xorg to work yet.
When I try to start X the kernel panics and the device reboots.
Does anybody know if there's an Xorg driver for Tegra 3?
Good luck! I hope to see it work.
Sent from my Nexus 7 using xda premium
Ubuntu on android
I am currently trying to implement ubuntu on my nexus 7 as well, rather than running it through a vnc viewer, which I think its very slow.
Help
How do you extract the ubuntu image and where do you place it?
steevp said:
I've been trying to, and I've had some success.
I installed Ubuntu ARM to my /cache partition (/dev/mmcblk0p4)
Then I compiled my own kernel from the official sources, only adding TTY and framebuffer console support to the config.
Then I made it into a boot.img like this:
Code:
$ touch initrd.cpio
$ mkbootimg --kernel zImage --ramdisk initrd.cpio --cmdline "console=tty0 root=/dev/mmcblk0p4 rootfstype=ext4 init=/sbin/init" -o boot.img
Now I can load Ubuntu from fastboot:
Code:
$ fastboot boot boot.img
Well kinda... I can boot to a command line session fine, but I haven't gotten Xorg to work yet.
When I try to start X the kernel panics and the device reboots.
Does anybody know if there's an Xorg driver for Tegra 3?
Click to expand...
Click to collapse
http://www.nvidia.com/content/devzone/linux-for-tegra.html
That seems to be the link to the Nvidia drivers
thanks Grey Goshawk. I will try it out.
robbalmbra said:
How do you extract the ubuntu image and where do you place it?
Click to expand...
Click to collapse
I started with Ubuntu core armhf and added what I wanted.
https://wiki.ubuntu.com/Core
If you're looking for a pre-built image you might try lilstevie's Ubuntu image for the transformer prime. I think it includes the tegra driver so maybe it will work better.
Once I was finished I tarred up my Ubuntu rootfs, copied it to the internal storage, and then extracted it like this (requires busybox):
Code:
tar xvf /sdcard/myrootfs.tar -C /cache
I believe the /cache partition is only 512 MB, so there's not a lot of room for Ubuntu. If you need more space you might want to try /data or maybe a USB drive instead.
Sent from my Nexus 7 using Tapatalk 2
I will try 'lilstevie's Ubuntu image' and report back. Thanks
I have tried the nvidia tegra link, however when it comes to the stage of flashing to the apx it fails and i feel if i muck this up i may brick my nexus 7. I have tried to boot up using 'steevp' method, however it doesn't work.
If possible could you attach your root fs and kernel and or boot.img? That would be a great help.
bump
I'd love to see this come to fruition, it would be cool to run gnome on it, and id use it heavy duty. It would be cool to safe strap it, and have a dual boot. now if only someone would port safe strap >.<
Agreed if Ubuntu or similar could dual boot on this I would be so stoked.
Sent from my Galaxy Nexus using xda premium
For my part, I have played with a chrooted Debian Wheezy and a modified kernel (to enable some toys, such as the virtual frame buffer, binfmt_misc (useful when I will try a x86 chrooted Debian system), all kind of USB drivers...).
Most tools seems to be working fine ; however I have not been able to start an X server (after stopping Android with : setprop ctl.stop zygote; setprop ctl.stop bootanim). I have tried several alternatives :
Xorg with fbdev module
Nothing showing up on screen. Logs flooded with
Code:
[ 9838.003] (EE) FBDEV(0): FBIOPUTCMAP: Invalid argument
Xorg with tegra driver
I untar-ed the driver from NVIDIA to the root filesystem and made a symbolic link from the API-12 driver to tegra_drv.so. Then I copied all tegra-related device to the chrooted /dev.
Still nothing showing up on screen. The server crashes when loading icewm with :
Code:
[ 9810.410] (WW) TEGRA(0): Error flipping DC window (head 0): Permission denied.
[ 9813.217] (WW) TEGRA(0): LVDS-1: Error querying display modes: No such device.
[ 9813.219]
[ 9813.221] Backtrace:
[ 9813.221]
[ 9813.223] Segmentation fault at address 0x28
[ 9813.224]
Fatal server error:
[ 9813.225] Caught signal 11 (Segmentation fault). Server aborting
[ 9813.225]
[ 9813.226]
Please consult the The X.Org Foundation support
at [I cannot post link as a new user]
for help.
[ 9813.226] Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[ 9813.227]
[ 9813.228] (II) device control: off
[ 9813.250] (II) pointer_property
[ 9813.250] (II) pointer_property
[ 9813.250] (II) device control: close
[ 9813.250] (II) UnloadModule: "multitouch"
[ 9813.250] (WW) TEGRA(0): Error putting cursor for head 0: Permission denied.
[ 9813.250] (WW) TEGRA(0): Error putting ARGB cursor window for head 0: Permission denied.
[ 9813.256] (WW) TEGRA(0): Error putting display window 0 on head 0: Permission denied.
[ 9813.257] (WW) TEGRA(0): Error putting cursor for head 1: Permission denied.
[ 9813.257] (WW) TEGRA(0): Error putting ARGB cursor window for head 1: Permission denied.
[ 9813.257] (WW) TEGRA(0): Error putting display window 0 on head 1: Permission denied.
[ 9813.258] Server terminated with error (1). Closing log file.
Xfbdev server
Both server and icewm are able to start. Everything displays correctly on screen. However, no mouse driver, so no interaction are possible...
It would seem that, for the time being, the best solution is tightvncserver combined with android-vnc.
I have also tried to play with qemu-system-i386, but my pre-installed windows systems (98 and XP) don't start, printing "Input/output error" when booting.
However, playing with FUSE and sshfs (or mount.cifs) can enable transparent access from Android apps to an ssh (or windows) file server
Okay you got a nice way done in that work! I'll try to setup VirtualGL instead of a regular VNC server. Still less efficient than a native output but could help. I will work with the linuxonandroid stuff to help this team as much as I can.
Bodhi Linux for Nexus 7
http://jeffhoogland.blogspot.in/2012/12/bodhi-armhf-alpha-for-nexus-7.html
Anyone tried this yet?

Running Android or Linux from an SD card on a RK3288 device - An easy way to dual boo

If you are interested in dual booting Android and Linux on your RK3288 device or you simply want to try a different Android ROM or Linux distro without flashing the device, then use this method of booting from an SD card.
You will need a PC running Linux and an SD card of 8 GB or more, at least class 10 speed.
Download the tools from 'https://drive.google.com/file/d/0B99O3A0dDe67bGVqWkZMRGFCSjg'. After unzipping you will see two shell scripts called 'create-android-sdcard' and 'create-linux-sdcard', a directory called 'Tools', a file called 'RK3288Loader_uboot_V2.17.02.bin' and some '.img' files together with a 'parameter' file.
To be able to dual boot (i.e. boot directly from the device or from an SD card), you will first need to update the bootloader on your device. Either use 'AndroidTool v2.3' on Windows or 'upgrade_tool' on Linux to flash just the 'Loader' with the 'RK3288Loader_uboot_V2.17.02.bin' file.
To create a bootable SD card first put it into your PC and use a command like 'blkid' or 'lsblk' to identify its device name (e.g. /dev/sdc).
For Android, run the script 'create-android-sdcard' and pass the name and location of the Android ROM you want to install onto the SD card, e.g.:
./create-android-sdcard radxa_rock_android_kitkat_140909_update.img
The program will prompt you to confirm the name of the device for the SD card. Once confirmed it will then unpack the Android ROM, create partitions on the SD card that mimic the ROM including a 'user' partition that will use the remaining space of the SD card. It will then install the Android ROM to the SD card and notify you when complete.
For Linux, as currently no standard approach to creating a Linux distro exists, to allow flexibility you will have to perform some initial set up steps. I've included example kernel and resource images which work fine on the Firefly, MK802V (et al) and Orion R28 (et al). I've also included download links for example root file systems (RFSs). Download either the Ubuntu 12.04 or Xubuntu/Lubuntu 14.10 RFS and unzip and rename as 'linux-rfs.img'. If you want to try a different kernel/resource combo simply rename them as 'kernel-linux.img' and 'resource-linux.img'. You can also use the tools in the 'Tools' directory to unpack Linux distros for those who want to experiment. Just don't modify the 'boot-linux.img' or 'parameter-linux' files as these must be used rather than any supplied as part of a Linux distro for Linux to boot from SD card.
Once set up, simply run:
./create-linux-sdcard
The program will initially prompt you to confirm the name the device for the SD card and then it will create a bootable Linux SD card from the images defined in the'*.img' files.
Now just take the SD card and insert into your RK3288 device and power on to enjoy booting either Android or Linux.
The Android script will work with any Android ROM packed as an image with a separate 'data' and 'user' partition. I recently saw a ROM with the 'user' partition effectively combined with the 'data' partition. My sketchy knowledge of Android includes the memory of some requirement to have the 'user' partition as type 'vfat' as some programs expected or required that format. So until I can confirm this, or identify which Android version release it pertains to, I've not included it yet within the script.
Both scripts work for RK3288 and RK3188 devices. They utilize the excellent work from Fukaumi-san (naobsd) who provided the binary headers required to boot from SD card (see the 'README.txt' in the 'Tools' directory for further details and the required copyright notice, conditions and disclaimer).
The other key advantage of these scripts is that they allow you to boot a 'bricked' device. Some time ago I managed to break my Orion R28 Meta such that it would not boot and could not be flashed. I've included the required functionality in the scripts to boot even if no memory can be found on the device. So now I have a working Orion R28 again, albeit just from SD card.
Enjoy!
Alternatively use https://drive.google.com/file/d/0B99O3A0dDe67VFRucUM0bS1CWUE for undefined 'user' partition Android ROMs.
can´t creat sd card ubuntu image
first of all let me give congratulations for the excelent work for the community including the creation of tuturiais.
I have a firefly rk3288 and tried to install ubuntu 14.04 through this method in sd card. But doesn´t work for me. it gives an error at line 116 of rkcrc file and does not create the desired image.
the steps I took were these:
[email protected]:/media/sda2/xxx$ ls
boot-linux.img linux-rfs.img rkcrc
create-android-sdcard mkkrnlimg rkunpack
create-linux-sdcard parameter-linux sdboot_rk3188.img
create-sdcard.7z README.txt sdboot_rk3288.img
downloadable-rfs-examples resource-linux.img split_bootimg_pl
kernel-linux.img RK3288Loader_uboot_V2.17.02.bin Tools
[email protected]:/media/sda2/xxx$./create-linux-sdcard
./create-linux-sdcard: Is your SD card loaded as '/dev/sdc' (y/n)? n
./create-linux-sdcard: Do you want to use a different device? y
./create-linux-sdcard: Enter new device name? /dev/sdb
./create-linux-sdcard: Is your SD card loaded as '/dev/sdb' (y/n)? y
./create-linux-sdcard: Unmounting partitions on '/dev/sdb' ... done.
./create-linux-sdcard: Formatting SD card '/dev/sdb' ... done.
./create-linux-sdcard: Flashing bootloader 'sdboot_rk3288.img' to '/dev/sdb' ... done.
./create-linux-sdcard: Updating partition table on '/dev/sdb' ... done.
./create-linux-sdcard: Calculating partition size for '/dev/sdb' ... done.
./create-linux-sdcard: Creating 'linux' partition as '/dev/sdb1' on /dev/sdb ...done.
./create-linux-sdcard: Making 'ext4' file system for 'linux' partition on '/dev/sdb1' ... done.
./create-linux-sdcard: Creating 'parameter-linux.img' from 'parameter-linux' ... ./create-linux-sdcard: line 116: /media/sda2/xxx/Tools/rkcrc: cannot execute binary file
done.
./create-linux-sdcard: Cannot create 'parameter-linux.img' ... exiting.
Can you help me? Is there any thing wrong in my steps?
Thanks
João Xavier
Building a kernel to work with this...
Hi Ian,
Thanks for your work on this. I've managed to get my Q8 RK3288(Board xt-q8l-v10) box booting into Linux from the SD card using your installation scripts.
However what I would really like to do is experiment with OpenCL on the GPU. Do do this I need compile a new kernel with the kernel source from ARM that matches the user space binary ARM posted.
The problem is that I can't get any of the kernels I compile to boot. Like the HDMI doesn't even initialise, so no logging. I've included my .config file that I'm using with the code from here:
https://github.com/linux-rockchip/linux-rockchip/tree/mirror/rk3288-rbox-kk
It's the 3.10.37 kernel.
Is there some unusual config to get the kernel to boot with the RK bootloader? I assume I can replace the kernel-linux.img without replacing the resource-linux.img given that the kernels are both 3.10.*
To flash the zImage I use the provided mkkrnlimg to create kernel-linux.img, and then do:
dd if=kernel-linux.img of=/dev/sdb conv=sync,fsync seek=$((0xC000))
replacing the kernel-linux.img with the one you provide makes the sdcard boot successfully again.
Any help would be great!
Tim.
UPDATE 22nd March
I managed to get access to the serial console. See here http://www.freaktab.com/showthread.php?24293-Serial-port-on-XT-Q8L-V10
The kernel I compiled reboots before flushing all data to the port. It's in a boot-loop logging
Code:
U-Boot 2014.10-RK3288-02 (Nov 10 2014 - 03:41:49)
CPU: rk3288
CPU's clock information:
arm pll = 600000000HZ
periph pll = 300000000HZ
ddr pll = 200000000HZ
codec pll = 594000000HZ
Board: Rockchip platform Board
DRAM: Found dram banks:1
Adding bank:0000000000000000(0000000080000000)
128 MiB
SDCard Boot.
storage init OK!
Using default environment
GetParam
check parameter success
Unknow param: MACHINE_MODEL:linuxium-sdcard-parameter!
Unknow param: MACHINE_ID:007!
Unknow param: MANUFACTURER:RK30SDK!
Unknow param: PWR_HLD: 0,0,A,0,1!
failed to prepare fdt from boot!
power key: bank-0 pin-5
Enter power_led_init
can't find dts node for ricoh619
pmic:act8846
Can't find dts node for fuel guage cw201x
SecureBootEn = 0, SecureBootLock = 0
#Boot ver: 0000-00-00#0.00
empty serial no.
no fuel gauge found
no fuel gauge found
read logo_on switch from dts [0]
checkKey
vbus = 1
no fuel gauge found
failed to find part:misc
misc partition not found!
Hit any key to stop autoboot: 0
failed to load fdt from boot!
kernel @ 0x02000000 (0x005f4e38)
ramdisk @ 0x059fc000 (0x0015b520)
Secure Boot state: 0
bootrk: do_bootm_linux...
Loading Device Tree to 0561c000, end 05636f1c ... OK
Add bank:0000000000000000, 0000000080000000
Starting kernel ...
<hit enter to activate fiq debugger>
[ 0.000000] Booting Linux on physical CPU 0x500
[ 0.000000] Initializing cgroup subsys cpu
[ 0.000000] Initializing cgroup subsys cpuacct
[ 0.000000] Linux version 3.10.0 ([email protected]) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #8 SMP PREEMPT Sat Mar 21 18:24:56 CET 2015
[ 0.000000] CPU: ARMv7 Processor [410fc0d1] revision 1 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] Machine: Rockchip RK3288 (Flattened Device Tree), model: rockchip,rk3288
[ 0.000000] rockchip_ion_reserve
[ 0.000000] cma: CMA: reserved 16 MiB at 2e800000
[ 0.000000] Memory policy: ECC disabled, Data cache writealloc
[ 0.000000] Boot mode: PANIC (7) flag: NORMAL (0xc3524200)
[ 0.000000] PERCPU: Embedded 9 pages/cpu @c1ce0000 s14016 r8192 d14656 u36864
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 522768
[ 0.000000] Kernel command line: console=tty0 init=/sbin/init mtdparts=rk29xxnand:[email protected](resource),[email protected](kernel),[email protected](boot) storagemedia=sd loader.timestamp=2014-11-10_03:41:49
[ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.000000] Memory: 2048MB = 2048MB total
[ 0.000000] Memory: 2048728k/2048728k available, 48424k reserved, 1318912K highmem
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
[ 0.000000] vmalloc : 0xf0000000 - 0xff000000 ( 240 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xef800000 ( 760 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0xc0008000 - 0xc0a95bcc (10807 kB)
[ 0.000000] .init : 0xc0a96000 - 0xc0aeb6c0 ( 342 kB)
[ 0.000000] .data : 0xc0aec000 - 0xc0b8bb08 ( 639 kB)
[ 0.000000] .bss : 0xc0b8bb08 - 0xc0ca8a44 (1140 kB)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[ 0.000000] Preemptible hierarchical RCU implementation.
[ 0.000000] RCU dyntick-idle
The bits about device trees and fdt? in the boot-loader's output look suspicious... How does the kernel get the device tree in this setup? Device trees are new to me as this is my first time building ARM kernels.
UPDATE 26nd March
Turns out the hang kernel startup is due to having 'Framebuffer Console support' enabled. Compiling it as a module and loading once the systems up gives a SEGV. I've now got the Q8 booting into a basic Debian install but without Wifi or HDMI output.
UPDATE 5th April
I've got ARM's OpenCL working with the firefly kernel. I've started a project with wiki on BitBucket
https://bitbucket.org/DengueTim/q8-rk3288-kernel/wiki/Home
Timp74 said:
Hi Ian,
Thanks for your work on this. I've managed to get my Q8 RK3288(Board xt-q8l-v10) box booting into Linux from the SD card using your installation scripts.
.........------...........
UPDATE 5th April
I've got ARM's OpenCL working with the firefly kernel. I've started a project with wiki on BitBucket
https://bitbucket.org/DengueTim/q8-rk3288-kernel/wiki/Home
Click to expand...
Click to collapse
I am damn happy to read your post and see your work on that rockchip based low-budged device.
I also own XT-Q8L-V10 pcb, another label but same board.
Sorry for my question, but when you can run ARM's OpenCL working on that device, does that mean that I can:
-Kind of unlock the bootloader to run wasser-rom or other rk-based rom's?
-Running standalone kodi (in the past openELEC or xbmc) as system?
-Get more system speed by using the a good-class external sd-card for os instead of low-budget nand (foresee) on-board?
-In anyway to run hdmi-cec?
I would be so happy to hear from you!
Greetings by I_did_it_just_tmrrow
Right now I am using UGOOS UT3S Tv box based on RK3288 chipset using dualboot. Android 4.4 and xubuntu 15.04 firmware released in july or august. As for me a rather stable decision for RK3288 devices
Linuxium said:
Alternatively use https://drive.google.com/file/d/0B99O3A0dDe67VFRucUM0bS1CWUE for undefined 'user' partition Android ROMs.
Click to expand...
Click to collapse
Hi friend . I wish my box was RK3288 but I have RK3229 . I would like to use your tutorial to boot any Ubuntu distro on my MXQ mini ( fake copy) box to get chrome desktop + netflix+amazon video through browser working ...
Where could I find .bin file to modify my bootloader ....I guess that's the big question ...Any suggestions..if I have to make it _ could you send me in the right direction.
Linuxium said:
If you are interested in dual booting Android and Linux on your RK3288 device or you simply want to try a different Android ROM or Linux distro without flashing the device, then use this method of booting from an SD card.
You will need a PC running Linux and an SD card of 8 GB or more, at least class 10 speed.
Download the tools from 'https://drive.google.com/file/d/0B99O3A0dDe67bGVqWkZMRGFCSjg'. After unzipping you will see two shell scripts called 'create-android-sdcard' and 'create-linux-sdcard', a directory called 'Tools', a file called 'RK3288Loader_uboot_V2.17.02.bin' and some '.img' files together with a 'parameter' file.
To be able to dual boot (i.e. boot directly from the device or from an SD card), you will first need to update the bootloader on your device. Either use 'AndroidTool v2.3' on Windows or 'upgrade_tool' on Linux to flash just the 'Loader' with the 'RK3288Loader_uboot_V2.17.02.bin' file.
To create a bootable SD card first put it into your PC and use a command like 'blkid' or 'lsblk' to identify its device name (e.g. /dev/sdc).
For Android, run the script 'create-android-sdcard' and pass the name and location of the Android ROM you want to install onto the SD card, e.g.:
./create-android-sdcard radxa_rock_android_kitkat_140909_update.img
The program will prompt you to confirm the name of the device for the SD card. Once confirmed it will then unpack the Android ROM, create partitions on the SD card that mimic the ROM including a 'user' partition that will use the remaining space of the SD card. It will then install the Android ROM to the SD card and notify you when complete.
For Linux, as currently no standard approach to creating a Linux distro exists, to allow flexibility you will have to perform some initial set up steps. I've included example kernel and resource images which work fine on the Firefly, MK802V (et al) and Orion R28 (et al). I've also included download links for example root file systems (RFSs). Download either the Ubuntu 12.04 or Xubuntu/Lubuntu 14.10 RFS and unzip and rename as 'linux-rfs.img'. If you want to try a different kernel/resource combo simply rename them as 'kernel-linux.img' and 'resource-linux.img'. You can also use the tools in the 'Tools' directory to unpack Linux distros for those who want to experiment. Just don't modify the 'boot-linux.img' or 'parameter-linux' files as these must be used rather than any supplied as part of a Linux distro for Linux to boot from SD card.
Once set up, simply run:
./create-linux-sdcard
The program will initially prompt you to confirm the name the device for the SD card and then it will create a bootable Linux SD card from the images defined in the'*.img' files.
Now just take the SD card and insert into your RK3288 device and power on to enjoy booting either Android or Linux.
The Android script will work with any Android ROM packed as an image with a separate 'data' and 'user' partition. I recently saw a ROM with the 'user' partition effectively combined with the 'data' partition. My sketchy knowledge of Android includes the memory of some requirement to have the 'user' partition as type 'vfat' as some programs expected or required that format. So until I can confirm this, or identify which Android version release it pertains to, I've not included it yet within the script.
Both scripts work for RK3288 and RK3188 devices. They utilize the excellent work from Fukaumi-san (naobsd) who provided the binary headers required to boot from SD card (see the 'README.txt' in the 'Tools' directory for further details and the required copyright notice, conditions and disclaimer).
The other key advantage of these scripts is that they allow you to boot a 'bricked' device. Some time ago I managed to break my Orion R28 Meta such that it would not boot and could not be flashed. I've included the required functionality in the scripts to boot even if no memory can be found on the device. So now I have a working Orion R28 again, albeit just from SD card.
Enjoy!
Click to expand...
Click to collapse
Hello
Does anyone else have these files with scripts for creating an SD card with booting android? I would like to try to combine with RK3318.
Thanks in advance

Kobo Aura?

I know this forum is all things Nook, but maybe you die-hard Nookies might be interested...
(If it is interesting and it goes somewhere it should be a different forum.)
Walmart is selling the Kobo Aura (Edition 2) for $69.99
Yup, this is the same sort of antiquated, single core Freescale processor as used in all the Nooks.
This is using straight Linux with QT and Adobe RMSDK.
It is the nicest physical instantiation that I've seen, thin, light, not much of a border.
There are a few things that might make this Android-izable.
#1 it uses an 8GB removable SD card for the system (and books).
#2 it uses uboot
#3 it has a 3.3V UART connection plainly labelled on the inside. (It shows boot progress, but isn't responding as a console now.)and you can get a root console.)
#4 the back comes off easily with a fingernail or a guitar pick.
Code:
## Booting kernel from Legacy Image at 80800000 ...
Image Name: 68ec1f_#5030 Oct 25 10:25:24
Created: 2017-10-25 2:25:27 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 2391300 Bytes = 2.3 MB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
Loading Kernel Image ... OK
OK
Code:
# Id Start End Size Label
── ── ───────── ───────── ───────── ────────────────
1 83 49152 573440 524289 rootfs
2 83 573441 1097729 524289 recoveryfs
3 0B 1097730 7711742 6614013
7711743 15523839 7812097
I'm going to solder in a connector first.
If you buy one, back up the UMS USB mounted disk first.
Then, go through the Boko desktop app and get an update.
Before you let it reset and process the updated stuff, do another UMS USB backup and you'll have the update to play with before it gets eaten.
Spacebar stops the uboot and gets you the uboot command line.
For Linux you have to login as "root", apparently I had too much garbage before and it locked out the login.
Code:
[[email protected](none) ~]# uname -a
Linux (none) 3.0.35+ #5030 PREEMPT Wed Oct 25 10:25:24 CST 2017 armv7l GNU/Linux
[[email protected](none) ~]# fdisk -l /dev/mmcblk0
Disk /dev/mmcblk0: 7948 MB, 7948206080 bytes
4 heads, 16 sectors/track, 242560 cylinders
Units = cylinders of 64 * 512 = 32768 bytes
Device Boot Start End Blocks Id System
/dev/mmcblk0p1 769 8961 262144+ 83 Linux
/dev/mmcblk0p2 8961 17153 262144+ 83 Linux
/dev/mmcblk0p3 17153 120496 3307006+ b Win95 FAT32
[[email protected](none) ~]# mount
rootfs on / type rootfs (rw)
/dev/root on / type ext4 (rw,noatime,nodiratime,user_xattr,barrier=1,data=ordered)
none on /proc type proc (rw,relatime)
none on /tmp type tmpfs (rw,relatime,size=16384k)
none on /dev type tmpfs (rw,relatime)
none on /var/lib type tmpfs (rw,relatime,size=16k)
none on /var/log type tmpfs (rw,relatime,size=16k)
none on /var/run type tmpfs (rw,relatime,size=128k)
none on /sys type sysfs (rw,relatime)
/dev/mmcblk0p3 on /mnt/onboard type vfat (rw,noatime,nodiratime,fmask=0022,dmask=0022,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro)
I can get it to boot Neo-Noogie by pausing at uboot with a spacebar, going to fastboot, then fastbooting an image over USB.
I made a splash screen that is 1024x768 instead of the higher 1448x1072 that the newer Nooks use and it shows up fine.
I think with some fine-tuning of everything we should be able to get this to work.
I kind of missed the obvious, this device has only 256M RAM.
Renate NST,
how do you think - why Tolino Shine 3 sd image cannot be used on Kobo Clara HD and vice versa? Since hw is basically the same.
The only reason I see is that they may use different u-boot, so maybe it would be possible boot android on Clara using stock u-boot?
RyogoNA said:
Renate NST,
how do you think - why Tolino Shine 3 sd image cannot be used on Kobo Clara HD and vice versa? Since hw is basically the same.
The only reason I see is that they may use different u-boot, so maybe it would be possible boot android on Clara using stock u-boot?
Click to expand...
Click to collapse
There can still be a bunch of differences in the hardware.
Having a hardware (UART) console is very helpful (almost mandatory) for getting this stuff to work.
First, get uboot working to the point that you get a (uboot) command line and can stop the auto loading.
Second, get your kernel to load. Use fastboot so you don't have to constantly rewrite the SD card as you putter with things.
Third, get the whole system running.
Right now I'm scratching my head why the SDcard is not recognized in the Kobo with the Nook image.
Apparently the full price for the Kobo Aura at some Walmarts is $99.99
In others it is $69.96
I'm not sure that this is a good deal at either price.
With the lack of memory, it might just be easiest to keep this as a Linux toy.
Maybe write your own code and make it a time/weather station or something.

Categories

Resources