(→QMLViewer) |
|||
| (32 intermediate revisions not shown) | |||
| Line 1: | Line 1: | ||
| + | = N950 = | ||
| + | |||
| + | I pitched for a N950 device from the Community Device Program to comtinue platform development work for MeeGo Handset CE and to help progress the push to a Wayland stack for 1.3. I was luck enough to be chosen for a device (thanks Quim, Texrat, Nokia). I will keep this page updated with what I'm up to with the device. You can always find me on #meego and #meego-arm. | ||
| + | |||
| + | == Twimgo Build == | ||
| + | |||
| + | As the capability to flash CE to the device is waiting for some bootloader code I have spent sometime at the app level. I've not used QtCreator before so this was the ideal opportunity to see if I could port an application to the device. I downloaded Qtcreator which included the MeeGo 1.2 Harmattan targets and configured the tool to talk to the SDK application on the device. | ||
| + | |||
| + | I chose Twimgo (Twitter client) as my donor project as the stock N950 is lacking in this area and is also Qt/QML based. | ||
| + | |||
| + | I downloaded the source and in no time at all had built and deployed to the device. | ||
| + | |||
| + | [[File:twingo.jpg]] | ||
| + | |||
| + | The N950 should be getting its fair share of apps if this experience is anything to go by and also gives a good indication of the power of the write once deploy many Qt/QML toolset | ||
| + | |||
| + | == Harmattan OBS == | ||
| + | |||
| + | I've now added this to OBS at | ||
| + | |||
| + | https://build.pub.meego.com/project/show?project=home%3Avgrade%3Atwingo | ||
| + | |||
| + | Repo here | ||
| + | |||
| + | http://repo.pub.meego.com/home:/vgrade:/twingo/Harmattan/armel/ | ||
| + | |||
| + | WARNING : While the Qt creator version did deploy to the device correctly I'm having dependency issues with the OBS version. | ||
| + | |||
= Joggler Image based on kernel-adaptation-intel-automotive and new MeeGo packaged EMGD Driver= | = Joggler Image based on kernel-adaptation-intel-automotive and new MeeGo packaged EMGD Driver= | ||
| Line 7: | Line 35: | ||
http://bug10738.openaos.org/ | http://bug10738.openaos.org/ | ||
| - | + | TODO - 05-02-11 | |
| - | + | * wifi - needs driver enabling in kernel | |
| + | * wired ethernet - needs driver enabling in kernel | ||
| + | * sound - needs patches from http://joggler.exotica.org.uk/source/kernel/split/ | ||
| + | |||
| + | vgrade | ||
| + | |||
| + | == Prepare OBS Package == | ||
| + | download source rpm from http://download.meego.com/live/devel:/kernel/Trunk/src/ eg: http://download.meego.com/live/devel:/kernel/Trunk/src/kernel-adaptation-intel-automotive-2.6.35.10-21.2.src.rpm | ||
Talk to lbt on #meego-dev, #meego for a login to public obs | Talk to lbt on #meego-dev, #meego for a login to public obs | ||
| Line 25: | Line 60: | ||
osc commit | osc commit | ||
| - | set to | + | set to build against Meego:current:Core/standard using gui |
trigger build | trigger build | ||
| Line 190: | Line 225: | ||
* ASUS t91 - Amyako | * ASUS t91 - Amyako | ||
* ASUS t91mt - Yigal | * ASUS t91mt - Yigal | ||
| + | * ASUS t91mt - ver - 1.2.0 installer crashes after user creation. X crashes with signal 9 when the mouse pointer is moved at this point. | ||
* Nokia Booklet 3g - Armika - 'I got it working now on the Nokia Booklet with the 3rd .ks. UI is snappy, responsive and looking really good' http://www.youtube.com/watch?v=6ix6Ux8NqYU | * Nokia Booklet 3g - Armika - 'I got it working now on the Nokia Booklet with the 3rd .ks. UI is snappy, responsive and looking really good' http://www.youtube.com/watch?v=6ix6Ux8NqYU | ||
* VAIO P - With new Xorg for non EDID display - Patters | * VAIO P - With new Xorg for non EDID display - Patters | ||
| Line 209: | Line 245: | ||
Thanks goes to stskeeps for much help | Thanks goes to stskeeps for much help | ||
| + | |||
| + | = MeeGo Kernel Options = | ||
| + | |||
| + | During every port I have to get the right kernel options to suit MeeGo. Here is a list, please add as required | ||
| + | |||
| + | * CONFIG_PARANIOD_ANDRIOD=n | ||
| + | * CONFIG_DUMMY=n | ||
| + | * CONFIG_AUTOFS4=y | ||
| + | * CONFIG_DEVTMPFS=y | ||
| + | * CONFIG_CGROUPS | ||
| + | * CONFIG_SYSVIPC | ||
| + | * CONFIG_IPV6=n | ||
| + | * CONFIG_IPV6_SIT=n | ||
| + | |||
| + | = Raspberry Pi = | ||
| + | |||
| + | == Create Stock Debian Filesystem == | ||
| + | |||
| + | mkdir PiStock | ||
| + | cd PiStock | ||
| + | wget http://dl.dropbox.com/u/5715485/debian-delivered.raw.bz2 | ||
| + | bunzip2 debian-delivered.raw.bz2 | ||
| + | sudo dd if=debian-delivered.raw of=/dev/<sdcard> bs=4M | ||
| + | |||
| + | == Test Stock Filesystem == | ||
| + | |||
| + | Attach HDMI, USB kb, mouse, sdcard, power. | ||
| + | Pi should boot to login prompt. User/Pass eupton/suse | ||
| + | |||
| + | == Build Stock Kernel == | ||
| + | |||
| + | wget http://linux-kernel.uio.no/pub/linux/kernel/v2.6/linux-2.6.35.7.tar.bz2 | ||
| + | wget http://www.raspberrypi.org/kernel.zip | ||
| + | bunzip2 linux-2.6.35.7.tar.bz2 | ||
| + | tar -xf linux-2.6.35.7.tar | ||
| + | unzip kernel.zip | ||
| + | gunzip raspberrypi.patch.gz | ||
| + | patch -p0 -i raspberrypi.patch | ||
| + | mv linux-2.6.35.7 linux | ||
| + | cd linux | ||
| + | cp -R ../DWC_otg/ . | ||
| + | make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- -j2 zImage | ||
| + | cd .. | ||
| + | cd tools | ||
| + | python imagetool-uncompressed.py | ||
| + | |||
| + | Copy kernel.img to first partion of sdcard. Test Pi still boots. | ||
| + | |||
| + | == Create Mer Image == | ||
| + | |||
| + | mkdir Pi | ||
| + | cd Pi | ||
| + | mkdir image-build | ||
| + | cd image-build | ||
| + | wget http://monster.tspre.org/~prjfetcher/mer/releases/0.20110920.1/kickstarts/mer-core-armv6l.ks | ||
| + | edit kickstart to remove # from vfat partition line and set ext3 to match Pi commandline | ||
| + | sudo mic-image-creator -f raw -t ../tmp/ -k ../cache/ -c mer-core-armv6l.ks -a armv6 --pkgmgr=yum | ||
| + | cd meego-mer-core-armv6l-1.2.80.xxxxxxxx.xxx-raw/ | ||
| + | sudo dd if=meego-mer-core-armv6l-1.2.80.xxxxxxxx.xxxx-mmcblk0p.raw of=/dev/<sdcard> bs=4M | ||
| + | |||
| + | This creates two partitions on the sdcard the first to hold the kernel and GPU binary blob and bootloader and the second the Mer rootfile system | ||
| + | |||
| + | Copy the contents of the first partition on the stock sdcard to the first partition on the Mer sdcard | ||
| + | |||
| + | Test scard in Pi. It should boot rootfs but give an error 'Failed to mount /dev: no such device' | ||
| + | |||
| + | This is due to the stock kernel not having options set to satisfy the systemd init process in Mer. Next step build a custom kernel | ||
| + | |||
| + | == Mer Kernel == | ||
| + | |||
| + | Edit stock kernel .config to match settings below. | ||
| + | |||
| + | * CONFIG_DUMMY=n | ||
| + | * CONFIG_DEVTMPFS=y | ||
| + | * CONFIG_CGROUPS=y | ||
| + | * CONFIG_IPV6=n | ||
| + | * CONFIG_IPV6_SIT=n | ||
| + | |||
| + | Accept defaults except | ||
| + | |||
| + | * Automount devtmpfs at /dev, after the kernel mounted the rootfs (DEVTMPFS_MOUNT) = y | ||
| + | |||
| + | Rebulid kernel | ||
| + | |||
| + | make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- -j2 zImage | ||
| + | cd .. | ||
| + | cd tools | ||
| + | python imagetool-uncompressed.py | ||
| + | |||
| + | Copy new kernel.img to the first partition on the Mer sdcard | ||
| + | |||
| + | Boot | ||
| + | |||
| + | == QMLViewer == | ||
| + | |||
| + | This is booting to framebuffer at the moment, acceleration to come | ||
| + | |||
| + | http://www.youtube.com/embed/fouPJRLygNQ?hl | ||
Contents |
I pitched for a N950 device from the Community Device Program to comtinue platform development work for MeeGo Handset CE and to help progress the push to a Wayland stack for 1.3. I was luck enough to be chosen for a device (thanks Quim, Texrat, Nokia). I will keep this page updated with what I'm up to with the device. You can always find me on #meego and #meego-arm.
As the capability to flash CE to the device is waiting for some bootloader code I have spent sometime at the app level. I've not used QtCreator before so this was the ideal opportunity to see if I could port an application to the device. I downloaded Qtcreator which included the MeeGo 1.2 Harmattan targets and configured the tool to talk to the SDK application on the device.
I chose Twimgo (Twitter client) as my donor project as the stock N950 is lacking in this area and is also Qt/QML based.
I downloaded the source and in no time at all had built and deployed to the device.
The N950 should be getting its fair share of apps if this experience is anything to go by and also gives a good indication of the power of the write once deploy many Qt/QML toolset
I've now added this to OBS at
https://build.pub.meego.com/project/show?project=home%3Avgrade%3Atwingo
Repo here
http://repo.pub.meego.com/home:/vgrade:/twingo/Harmattan/armel/
WARNING : While the Qt creator version did deploy to the device correctly I'm having dependency issues with the OBS version.
TODO - 05-02-11
vgrade
download source rpm from http://download.meego.com/live/devel:/kernel/Trunk/src/ eg: http://download.meego.com/live/devel:/kernel/Trunk/src/kernel-adaptation-intel-automotive-2.6.35.10-21.2.src.rpm Talk to lbt on #meego-dev, #meego for a login to public obs
setup ~/.oscrc with correct urls, username and password. web interface https://build.pub.meego.com/ osc api interface https://api.pub.meego.com/
mkdir build-area cd build-area osc meta pkg -e home:<username> <package name> osc co home:<username>/<package name> cd home:<username> cd <package name> rpm2cpio *src.rpm|cpio -id osc addremove osc commit
set to build against Meego:current:Core/standard using gui
trigger build
This should get you some binary and a source package.
rename files
config-adaptation-intel-automotive and kernel-adaptation-intel-automotive.spec to config-adaptation-joggler and kernel-adaptation-joggler.spec
replace
'intel-automotive' with 'joggler' in Makefile.config and kernel-adaptation-joggler.spec
osc addremove osc commit
we now should have joggler named binaries
Using http://jogglerhacks.blogspot.com/2010/07/making-meego-kernel-package-for-joggler.html create new versions of config-adaptation-joggler and config-generic
TODO : This needs more research. Just nicked Stskeeps files for now.
rebuild
we now should have joggler specific kernel binaries
Using kickstart here http://pastebin.com/UHPiCuzd
sudo mic-image-creator --run-mode=0 --cache=../mycachedir --format=loop --release=daily --compress-disk-image=none --config=meego-netbook-ia32-1.1.80.14.20110111.8.ks
emgd bin is now here as well, http://repo.meego.com/MeeGo/builds/1.1.80/daily/non-oss/repos/ia32/packages/i586/emgd-bin-1812-1.1.i586.rpm, TODO update .ks
sudo mount -o loop <image name>.img /mnt
With a 4Gb memory stick create a 50Mb FAT16 partition and the rest as a EXT2 partition
Write to ext3 partition on a Jogger stick the contents of /mnt
sudo rsync -aHx /mnt/* <stick ext partition> . Get beers in.
Write the contents of joggler-fat-partition.tqz to fat16 partition - http://dl.dropbox.com/u/5715485/joggler-fat-partition.tgz - fixup grub.cfg to point to new kernel
Put in Joggler and boot.
edit out the time setting lines in /usr/share/system-config-date/scdMainwindow.py
The screen will then blank. Don't panic
Use Alt+F1 to get a login prompt
User: meego Pw: meego - you may need to use Alt+F1 again
su Pw: meego
telinit 3 - to stop uxlaunch
vi /etc/X11/xinit/Xclients
replace
if [ -x /usr/bin/twm ] ; then exec /usr/bin/twm fi
with
if [ -x /usr/bin/mutter ] ; then exec /usr/bin/mutter fi
startx - should bring up UX - close clock and xterm
TODO - work out why uxlaunch does not bring up X, sound, wifi, ethernet
edit /etc/rc.local and add in the following lines at the end (using your mac address)
/sbin/ifconfig eth0 hw ether 00:00:de:ad:be:ef /sbin/ifconfig eth0 up
reboot, and eth0 should be working using dhcp
Thanks to Stskeeps and all at jogglerwiki - Standing on the shoulders of giants as usual
superseded information below
http://www.jogglerwiki.info/index.php?title=MeeGo
After getting MeeGo up on my Poulsbo based O2 Joggler
I have prepared a kickstart file for Poulsbo/GMA500 based netbooks.
If you have one of these netbooks and can spare the time I would be interested in the results.
You can catch me vgrade on #meego.
After a couple of reports of this nearly working I have edited the ks to a later version of the core and netbook repos
sudo mic-image-creator --cache=mycachedir --format=liveusb --config=<filename>.ks --run-mode=0
Find below a kickstart which allows the UX to come up - thanks to amyako for the tips the generic Xorg
to get X server up and running you need to do these steps after booting
Alt + F1 login: meego pass: meego su pass: meego telinit 3 Alt + F1
vi /etc/X11/xinit/Xclients
replace
if [ -x /usr/bin/twm ] ; then exec /usr/bin/twm fi
with
if [ -x /usr/bin/mutter ] ; then exec /usr/bin/mutter fi
startx
See this thread for latest info http://forum.meego.com/showthread.php?t=989
If you have success please post a video and also let me know what netbook you are running.
The source code for the kernel pulled in here can be found here http://vgrade.co.uk/kernel-2.6.33.3-20.1.src.rpm
Please add your name and devices to the list below, photos and video welcome
The EMGD drivers were pulled from repo.meego.com so the kickstart files above will no longer work.
Below is a extract from #meego IRC log where I ask Arjan Van De Ven (MeeGo Chief Architect) about the future of GMA500 on MeeGo.
http://mg.pov.lt/meego-irclog/%23meego.2010-08-17.log.html#t2010-08-17T22:59:44
Further to this Intel have released an official EMGD driver set with MeeGo support. see http://edc.intel.com/Software/Downloads/EMGD/#download
When I get chance I will update the kickstart files.
vgrade
Thanks goes to stskeeps for much help
During every port I have to get the right kernel options to suit MeeGo. Here is a list, please add as required
mkdir PiStock cd PiStock wget http://dl.dropbox.com/u/5715485/debian-delivered.raw.bz2 bunzip2 debian-delivered.raw.bz2 sudo dd if=debian-delivered.raw of=/dev/<sdcard> bs=4M
Attach HDMI, USB kb, mouse, sdcard, power. Pi should boot to login prompt. User/Pass eupton/suse
wget http://linux-kernel.uio.no/pub/linux/kernel/v2.6/linux-2.6.35.7.tar.bz2 wget http://www.raspberrypi.org/kernel.zip bunzip2 linux-2.6.35.7.tar.bz2 tar -xf linux-2.6.35.7.tar unzip kernel.zip gunzip raspberrypi.patch.gz patch -p0 -i raspberrypi.patch mv linux-2.6.35.7 linux cd linux cp -R ../DWC_otg/ . make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- -j2 zImage cd .. cd tools python imagetool-uncompressed.py
Copy kernel.img to first partion of sdcard. Test Pi still boots.
mkdir Pi cd Pi mkdir image-build cd image-build wget http://monster.tspre.org/~prjfetcher/mer/releases/0.20110920.1/kickstarts/mer-core-armv6l.ks edit kickstart to remove # from vfat partition line and set ext3 to match Pi commandline sudo mic-image-creator -f raw -t ../tmp/ -k ../cache/ -c mer-core-armv6l.ks -a armv6 --pkgmgr=yum cd meego-mer-core-armv6l-1.2.80.xxxxxxxx.xxx-raw/ sudo dd if=meego-mer-core-armv6l-1.2.80.xxxxxxxx.xxxx-mmcblk0p.raw of=/dev/<sdcard> bs=4M
This creates two partitions on the sdcard the first to hold the kernel and GPU binary blob and bootloader and the second the Mer rootfile system
Copy the contents of the first partition on the stock sdcard to the first partition on the Mer sdcard
Test scard in Pi. It should boot rootfs but give an error 'Failed to mount /dev: no such device'
This is due to the stock kernel not having options set to satisfy the systemd init process in Mer. Next step build a custom kernel
Edit stock kernel .config to match settings below.
Accept defaults except
Rebulid kernel
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- -j2 zImage cd .. cd tools python imagetool-uncompressed.py
Copy new kernel.img to the first partition on the Mer sdcard
Boot
This is booting to framebuffer at the moment, acceleration to come