This area is under construction
Contents |
This page was inspired by this link http://www.android-devs.com/?p=152, which has instructions to run Debian natively on the Google Nexus One handset. With a number of vendors shipping kernel source with MSM/QSD hardware, this gives the possibility of running MeeGo on these platforms. As usual, open drivers will be key to success.
This port is not a work in progress and not meant for end user installation. The following details are for MSM/QSD porting effort and no end user images are available.
See details on how to start developing for your device here, http://android.modaco.com/category/363/device-specific/
vgrade / mitsutaka
For latest 1.1 kickstart, see below http://wiki.meego.com/ARM/MSMQSD#MeeGo_1.1 for latest kickstart file for nexus 1
The picture above was taken with the 18.09.10 daily trunk handset UX, mesa packages added to provide swrast-DRI, ELG and GLESv2. Kernel is a stock google 2.6.32 msm kernel. Touch is working, but needs rotating.
sudo ./fastboot -c 'root=/dev/mmcblk0p1 rw rootfs=ext3 init=/sbin/init rootwait noinitrd' boot zImage
WARNING : First boot can take up to 5 mins, second boot should be around 75 seconds
WARNING : UI is not hardware accelerated, so don't expect the full user experience
As we know, vanilla X and software GLES works but we need hardware libEGL and libGLESv2 for better performance.
I pulled libEGL.so, libGLESv2.so and libGLESv1_CM.so from my Nexus /system/lib along with the supporting /system/lib/egl files lib***_adreno200.so as the system/lib files are just stubs into the lib/egl files.
After booting .xsession_errors reported liblog.so not found when loading mcompositor. pulled that from Nexus.
libcutils.so was not found next then 'libc.so ELF version does not match current version' was reported. The libc.so in /usr/lib was a pointer to /lib so I just copied the /lib file to /usr/lib.
Now libutils.so and libz.so were not found and were pulled from the nexus.
Now here is the kicker, 'undefined Symbol __sF' in libc.
This is because the Android libs I pulled have been built with Bionic libc and I cannot use that as that would break the rest of MeeGo.
So, the question is, can we arrange for bionic and glibc to coexist or is this the end of the road?
After talking to a few guys on xda, I think this avenue is closed - unless you know better. http://forum.xda-developers.com/showthread.php?t=764255&page=6
http://www.imxdev.org/wiki/index.php?title=All_Boards_3D_Graphics, it seems the mx51 has the same GPU
using libEGL.so and libGLESv2.so from amd-gpu-x11-bin-mx51-10.07.11.tar.gz
# ln -s kgsl-3d0 /dev/gsl_kmod # cp /mnt/system/etc/firmware/yamato_*.fw /lib/firmware/
I got:
[ 3337.720503] msm_kgsl kgsl-3d0: firmware: requesting yamato_pm4.fw [ 3337.727660] msm_kgsl kgsl-3d0: firmware: requesting yamato_pfp.fw [ 3337.733807] msm_kgsl: initialized dev=0 mmu=on per_process_pagetable=off [ 3337.734894] kgsl kgsl: |kgsl_yamato_ioctl| invalid ioctl code 4008f920 [ 3337.735707] kgsl kgsl: |kgsl_yamato_ioctl| invalid ioctl code 4008f920
So, apparently MSM KGSL device is not compatible with AMD GSL device on ioctl level. (smoku)
The linux-2.6.31 kernel source tree for i.MX51 has drivers/mxc/amd-gpu directory. But it only provides base gpu.ko driver. The package amd-gpu-x11-bin-mx51 on i.MX51 Ubuntu image has two additional modules in extra: gsl.ko and gpu_z430.ko, which I cannot find source for. (smoku)
Just had this email in from Jordan Crouse at code Auroroa, when I asked if the drivers above were the best to use on the Nexus :(
You have the correct X driver and kernel driver. That should give you some limited blit acceleration on on the Nexus One for 2D rendering. Unfortunately, the parts you really need are the proprietary 3D drivers, and those are not available anywhere. Without those, you'll be stuck with software 3D for the long haul. Sorry. Jordan
Such a shame (vgrade)
Mitsutaka has provided detailed instructions to get MeeGo 1.1 up on the Nexus and a git repository of the files needed http://gitorious.org/meego-porting/nexusone/trees/master
Part1: Boot from PC.
http://blog.mitsutaka.org/2010/11/meego-11-for-nexusone-status-and-how-to.html
Part2: Boot from flash memory. Dual boot MeeGo and Android
http://blog.mitsutaka.org/2010/11/meego-11-for-nexusone-status-part2-and.html
Screen shot
http://3.bp.blogspot.com/_FMegAOwlg0k/TNEYE7a8SsI/AAAAAAAAAd4/1S2LH5Kl5I0/s1600/IMG_0263.JPG
kickstart file: File:Meego-handset-armv7l-nexusone-1.1.ks
captaingloo reported an error with this ks, he replace the failing ref with -
http://repo.meego.com/MeeGo/updates/1.1/core/repos/armv7el/packages//repodata/repomd.xml
see http://bugs.meego.com/show_bug.cgi?id=10875
From smoku on #meego-arm
http://www.youtube.com/watch?v=_P8Oa6go2Hk
Current status of the port: http://codex.xiaoka.com/wiki/streak:meego
You will find snapshot releases and installation instruction here: http://codex.xiaoka.com/pub/meego/streak/
Qualcomm BTS BlueTooth device is connected using USB UART which device is accessible as /dev/ttyS1. It requires firmware to be loaded before using. The hciattach was theoretically patched to allow Qualcomm firmware loading. But it does not work on Streak. The hciattach just timeouts.
# modprobe hci_uart # hciattach ttyS1 qualcomm
Using a modified version of the N900 Acceptance Image.
http://www.youtube.com/watch?v=GtnfHNjcdzg
-Termana
Note: This procedure should work for all MSM and QSD based devices, HOWEVER I have only tested it on the Desire - Termana
The Desire's modem can be communicated with through two dev nodes - /dev/smd0 and /dev/qmi0.
/dev/smd0 is the main part and communicates using AT commands plus additional proprietary non-standard Qualcomm AT commands.
/dev/qmi0 is the second part and it communicates using a proprietary Qualcomm protocol.
Replace /etc/ofono/modem.conf with this: http://dl.dropbox.com/u/13630837/modem.conf
Then you can use the following commands to bring up a data connection on MeeGo:
echo -e "AT+CGDCONT=1,\"IP\",\"APNHERE\",\"\",0,0\r" > /dev/smd0
echo -e 'ATD*99***1#\r' > /dev/smd0
echo -n 'up:APNHERE "" ""' > /dev/qmi0
dhclient rmnet0
These instructions were posted by captainigloo on IRC 07/08-12-10
Additional note to boot Meego on the HTC desire
1 - Kernel. I use the official HTC kernel from here : http://developer.htc.com/ named HTC Desire - Froyo MR - 2.6.32 kernel source code.
To build the kernel :
cd bravo-2.6.32-gd96f2c0/ make bravo_defconfig
I change some options as reported on this wiki :
make menuconfig General Setup->remove Initial RAM filesystem Device Driver->Character Devices-> Set Virtual Terminal Device Driver->Graphics support->Console display driver support->Remove VGA Text console
export ARCH=arm export CROSS_COMPILE=arm-angstrom-linux-gnueabi- make
here I use the toolchain build with angstrom for the Cortex A8, Meego should provide its own toolchain, but i don't know anything about it.
copy zImage generated in the parent directory :
cp arch/arm/boot/zImage ../
Install modules and firmware in the top directory.
make modules_install INSTALL_MOD_PATH=../modules make firmware_install INSTALL_FW_PATH=../firmware
This files have to be copied in the rootfs.
2 - rootfs
I use a modified image of the NEXUS One. that you can find here : <>
I build the rootfs with mic-image-creator :
sudo mic-image-creator --run-mode=0 --cache=mycachedir --format=raw --arch=armv7l --save-kernel --config=handset-armv7l-nexus.ks
3 - SDcard
Create a ext3 partition on your sdcard called rootfs
cd /media/rootfs tar zxvf meego-Meego-handset-armv7l-nexusone-1.1-1.1.20101206.1441-rootfs.tar.gz
Then copied the modules and firmware :
cp -a modules/lib/ /media/rootfs/ cp -a firmware/* /media/rootfs/lib/firmware/
4 - Boot
To boot the desire it must be S-Off, you can unlock it with alpharev (http://alpharev.nl/) To boot the kernel you need fastboot (http://developer.htc.com/adp.html)
insert your sdcard in the Desire, boot it in fastboot mode (Power + back button) plugg the USB cable and launch the command :
sudo ./fastboot -c 'root=/dev/mmcblk0p1 rw rootfs=ext3 init=/sbin/init rootwait noinitrd' boot zImage
Wait a long time, and after a moment the Meego UI should appear. Don't except something working perfectly, for me it just start the UI and nothing more, no touchscreen, no status icons...
/var/log/messages - http://pastebin.fr/9726
The rootfs is built similarly to the Nexus One image, but the built ext2 image is copied as a file to the SD card and booted using magldr or haret; no flashing needed.
Kickstart, prebuilt image, and more info forthcoming!
https://www.codeaurora.org/contribute/projects/xwinp/
http://htc-linux.org/wiki/index.php?title=Msm_Serial
http://htc-linux.org/wiki/index.php?title=Main_Page
http://android.modaco.com/content/t-mobile-pulse-pulse-modaco-com/318064/using-rs232-on-the-pulse/
http://www.imxdev.org/wiki/index.php?title=All_Boards_3D_Graphics
http://gitorious.org/linux-on-qualcomm-s-msm