Meego Wiki
Views
From MeeGo wiki
(Difference between revisions)
Jump to: navigation, search
(Nexus S)
(Nexus S)
Line 113: Line 113:
see http://bugs.meego.com/show_bug.cgi?id=10875
see http://bugs.meego.com/show_bug.cgi?id=10875
-
== Nexus S ==
+
== Nexus S (Samsung Hummingbird + SGX 540 ==
[[File:nexuss.jpg|800px]]
[[File:nexuss.jpg|800px]]

Revision as of 23:04, 9 January 2011

This area is under construction

Contents

MSM/QSD hardware adaptation

Nexus3.jpg Meego-handset-nexusone-portrait.jpg

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 of how to start developing for your device here, http://android.modaco.com/category/363/device-specific/

vgrade / mitsutaka

Nexus One

Initial Port

basic msm_fb with mesa

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

libEGL and libGLESv2

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

i.MX51 GLES

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)

code Aurora x86-video-msm


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)

MeeGo 1.1

Mitsutaka has provided detailed instructions to get MeeGo 1.1 up on the Nexus

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

Nexus S (Samsung Hummingbird + SGX 540

Nexuss.jpg

So, I have a barebones version of MeeGo (barely) running on the Nexus S. I can't really do much with it on my own, but I'm posting the info here so you can build it and try it for yourself.

What works:

• ADB root shell • X11 & UI apps

What doesn't work currently:

• Touchscreen • Super-AMOLED brightness control (screen looks near pitch black) • WiFi • Anything else :-P

If you've never built a MeeGo rootfs before, it's relatively straightforward, and all the binaries are precompiled for you (but it's definitely for developers only).

I have my boot.img (kernel + ramdisk) and a MeeGo kickstart file at http://blog.steventroughtonsmith.com/2011/01/nexus-s-meego.html; you can use fastboot to boot the image, or flash it to the recovery partition to dual boot. The actual MeeGo rootfs is run from a rootfs.ext2 file you can drop onto the Nexus S using Mass Storage mode - no need for messy flashing or the like, you can thank me later).

There's not much else I can do on my own right now, so if you want to see anything become of this do get involved!

My kernel is stock git://android.git.kernel.org/kernel/samsung.git ; make herring_defconfig; the only change was modifying the .config to turn on CONFIG_VT (needed for X11).

Go nuts!

Dell Streak

From smoku on #meego-arm

http://www.youtube.com/watch?v=_P8Oa6go2Hk

Releases

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/

Kernel

MSM XOrg driver

BlueTooth

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

HTC Desire

Using a modified version of the N900 Acceptance Image.

  • Charging works (and the charging symbol moves), Battery Status doesn't show though when the charger is out.
  • adbd works

http://www.youtube.com/watch?v=GtnfHNjcdzg

-Termana

HTCDesire-Initial.jpg

GPRS

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

HTC Desire Meego 1.1 WIP

These instructions were posted by captainigloo on IRC 07/08-12-10

Additionnal 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

Collaboration spaces

  • #meego-arm on irc.freenode.net, this channel is for development effort not a support channel
  • #htc-linux on irc freenode

Assets in hardware adaptation

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

Team members

  • Martin Brook / vgrade
  • Mitsutaka Amano / mitsutaka
  • Tomasz Sterna / smoku
  • Bradley Smith / Termana
  • your name here
Personal tools