Desgraciadamente palm les mando una carta para evitar que siguieran vendiendolo,pues es una copia descarada de su nuevo so.Yo lo probe en mis nuevas pda y quede gratamente sorprendido y me pico la curiosidad...
Y decidi investigar ya que me ha parecido la mejor interfaz para un sistema tipo pda multitarea,las cards, que he visto en mucho tiempo.Al final me baje el sdk para programar webos y viene una imagen virtual con el webos cargando en un sistema x86,los pc de toda la vida.
El sistema en si es un linux,pero con una interfaz grafica encima del framebuffer que es una maravilla basado en html/javascript/css webkit.
tengo dos ideas/proyectos en mente:
a)Usar webos como so normal el pc
Ahora ando investigando como escalar la interfaz,las aplicaciones...para mejorar la version del sdk y poder usarlo en un pc normal (este sistema operativo es independiente de la resolucion).Por ahora me dedico a jugar con el emulador y acceder al sistema via ssh o con novacom
NOVACOM
--Para poder usar novacom,hay que seguir estos pasos:
1)bajar y usar webos quick install
Unofficial os \install \ java -jar Webosquickinstall.jar
2)Decirle que me reinstale novacom
COMPILAR COSAS WEBOS
crear un paquete:
palm-package HelloWorld
Instalar app
palm-install com.mystuff.hello_1.0.0_all.ipk
lanzarlo desde consola,una app
palm-launch com.mystuff.hello
borrar app
palm-install -r com.mystuff.hello
teclas (como el portatil no las tiene home .. :( )
Entrar sistema
SSh
usar puerto 5522.user :root ;passwd:root
NOVACOM: (me ha encantado este programa,para acceder al pre sin necesitar instalar nada,deja tambien copiar entre palm pre y pc,la salida va al pc..
ej consola:
c:\Users\dani\novacom -t open tty://
reiniciar maquina:
novacom -w run file://sbin/tellbootie recover || true
redireccionar salida de un comando de la shell de webos al pc (tanto emulador como la del palm pre)
novacom -w run file://bin/mount > Unidades-montadas.txt
mandar archivo al emu/palm pre
novacom put file:///tmp/debian.tar.gz
Modo host :TUNEL
-----------
hacer un tunel ( y acceder via navegador)
ssh -p 5522 -L 5581:localhost:8080 root@localhost
Host Mode
Open your web browser, and enter one of the following addresses:
* http://localhost:5581/PalmApps for Palm internal applications.
* http://localhost:5581/Apps for 3rd party applications.
CAMBIAR RESOLUCION APP
ej usar una resolucion: 800x600
Al cargar en grub grub vga=343
OJO poner siempre alguna con 32 bits color.
/etc/palm/luna.conf
ScanCalculatesAppSizes=false
y reiniciar luna:
initctl stop LunaSysMgr && initctl start LunaSysMgr
me gusta que se le pueden abrir aplicaciones usando luna
luna-send -n 1 palm://com.palm.applicationManager/rescan {}
luna-send -n 1 palm://com.palm.telephony/programModeEnter '{"msl":"000000"}'
SACAR LA IMAGEN VIRTUAL X86
la imagen de virtual box a raw (en el x86)
$ vditool COPYDD WindowsXP.vdi WindowsXw.raw
o
si es estatica
dd skip=17 bs=512 if=test.vdi of=test-dd.raw
b)Portar webos-arm
Tambien ando haciendo pruebas de cargar una imagen de la version original ,es arm,y jugar con ella en qemu,pues existen varias maquinas con la misma arquitectura (palm pre,ipod touch 3g,iphone 3gs y una libre:beagle board) y seria increible poder cargar este sistema operativo en el ( y no digamos ios3/ios4) al estilo como se hace con los hackintosh (cargar macosx en un pc corriente)
necesitare algo como:
novacom boot mem:// < nova-installer-image-castle.uImage
Una cosa genial de este so es que los programas son independientes de la arquitectura:
The programs for the Pre, with the possible exception of some of the built-in apps, are not running code for the linux kernel and ARM processor. (I think the Pre is using ARM....)
They are written in javascript that is only interacting with WebOS.
WebApps que WebOS permite ofrecer a través de Mojo .Se trata de aplicaciones reales, totalmente capaces, y que sólo en algunos casos concretos necesitarán del apoyo de la programación directa al núcleo.
La solución de WebOS, se plantea como una alternativa real al modelo tradicional de aplicaciones compiladas y exclusivas para una plataforma concreta: presenta muchas ventajas de desarrollo y mantenimiento, y pocos inconvenientes, pero hasta ahora sólo Palm se había atrevido a adentrarse en este modelo. Hasta ahora, ya que Google va a utilizar el mismo modelo.
Lo que quiere decir que muchos programas escritos para webos-arm irian en la version webos-x86 sin tener que compilar codigo fuente.Una gozada
sacar una imagen de un palm pre (webos-arm)
mi idea inicial era usar doctor,el programa que se usa para reinstalar/reparar el palm pre cuando se casca,ya que lleva el rootfs entero,...Despues investigando encontre una utilidad llamada webOS Doctor image en donde viene un makefile interesante de ver como hace las cosas,por ejemplo las particiones las hace trenchcoat..
( git.webos-internals.org tools/meta-doctor.git)
Al final pense que seria mas comodo usar una ya hecha (cargar un sistema minimo con novacom ,al estilo de un bootcd en los pc y hacer la imagen y luego tratar de cargar el kernel y esa imagen en qemu-oemap.
basandome en ese makefile (el añadio la manera de hacer un backup del sistema,cosa que el original no te deja)
nova-cust-image-${CODENAME}-media.tar.gz" ;
nova-cust-image-${CODENAME}-rootfs.tar.gz"
nova-cust-image-${CODENAME}-varfs.tar.gz
Pero yo no las quiero de esa forma,si no una imagen raw
de /dev/mmcblk0 que es donde esta el sistema de ficheros.
(Este tiene tres particiones,pero con hacer la imagen del todo ,las partes pueden usarse luego en pc por separado en caso de necesitarlo.)
/dev/mmcblk0p1
/dev/mmcblk0p2
/dev/mmcblk0p3
para sacar el sistema de ficheros
1)poner modo developer
2)resetear el palm pre
3)conectar usb
4)En el menu puedes darle solo a cargar.
Asi que lo primero le decimos a bottie (el bootloader que se reinicie,este paso creo que podria omitirse ,pero bueno)
novacom -w run file://sbin/tellbootie recover || true
Enviamos la imagen que viene en doctor para que reinicie con ella ,(solo queremos que cargue en ramdisk,no vamos a pedirle ni que reinstale ni haga nada.Lo haremos manualmente)
novacom boot mem:// < nova-installer-image-castle.uImage
Esperar unos 5 segundos
Para probar primero podemos proceder a hacer una de la segunda particion,y ver si la hace correctamente,ya que son 42 megas y sera mas rapido
novacom -w run file://bin/dd if=/dev/mmcblk0p2 > mmcblk0p2
Tambien puedes decirle a dd que lo comprima para que ocupe menos:
"novacom -w run file://bin/dd if=/dev/mmcblk0p2 | gzip > mmcblk0p2.gz"
Para el backup de todo el disco duro:
(Nota,si se hace sin comprimir creara un archivo te ocupara 8 gigas en el disco duro!!)
novacom -w run file://bin/dd if=/dev/mmcblk0 | gzip > mmcblk0.gz
Nos creara un fichero llamado mmcblk0.gz
Otra manera seria usarndo ssh o terminal,pero mas incomoda:
sisdest # nc -lp 2222 | pv | gzip -d -c | dd of=imagen
sisorig # dd if=/dev/sda | gzip | pv | nc -q 0 sisdest 2222
y luego jugar con qemu-omap hasta que cargue,algo asi:
qemu-system-arm -M realview -cpu cortex-a8 -kernel zImag
Ojo ,qemu-omap necesita ser compilado con una determinada version gcc si no no ira.(hacer uno static mejor)
El append es algo asi
root=/dev/mmcblk0p2 rootwait ro fb=0x8f600000 fbcon=disable console=tty1
nduid=ea413b0b980b26d75c6658199d532472049644ae klog=0x8ff00000 klog_len=0x100000
boardtype=castle-dvt3 dsp_base=0x8f900000 dsp_len=0x600000
*using the nova-installer-image-castle.uImage image bootie
root=/dev/ram0 ramdisk=32768 ro fb=0x8f600000 fbcon=disable console=tty1
nduid=ea413b0b980b26d75c6658199d532472049644ae klog=0x8ff00000 klog_len=0x100000
boardtype=castle-dvt3 dsp_base=0x8f900000 dsp_len=0x600000 lastboot=recover
Cosas pendientes:
1)Ver como han escalado la ui (estoy esperado que lo posteen,parece que lo han logrado.yo por mi parte he logrado escalar las app)
en luna.conf cambiar:
ScanCalculatesAppSizes=false
2)el sonido en la version x86
http://forums.precentral.net/webos-apps-software/223899-how-copy-mp3-files-palm-pre-emulator-sdk-translate-music-player-r-french.html
4)traducir alguna app,cuando tenga mas experiencia con el sistema me gustaria dejarlo en mi idioma
http://groups.google.com/group/android-developers/web/localizing-android-apps-draft
OTRAS COSAS CURIOSAS:
OCULTAR APP
Encontre una manera de ocultar app para que no quede tan lleno la ui
APP ocultar otras
como palm hider
http://forums.precentral.net/webos-apps-software/252050-app-request-hide-specific-app-icons-launcher.html
For those comfortable with Receiving and Sending files via WebOS Quick Install you can do this manually.
Applications are located in /usr/palm/applications/
The file you need to modify within each of the application folders is appinfo.json
So, for an example, let's say you want to hide the photos app.
In WebOS Quick Install, with your Pre plugged in, Receive the file /usr/palm/applications/com.palm.app.photos/appinfo.json (save where ever you like on your PC/MAC).
Add a comma to the last entry in the list, then below the last item add the text: "visible": "false"
Include the quotes. Should end up looking like
{
"title": "Photos",
"type": "web",
"main": "real.html",
"id": "com.palm.app.photos",
"version": "1.0",
"icon": "icon.png",
"splashicon": "icon-256x256.png",
"splashBackground": "images/splash-screenshot-default.png",
"vendor": "Palm, Inc.",
"keywords": ["pictures", "photos"],
"visible": "false"
} Do a Luna Restart.
otras direcciones utiles:
X-win
---------
http://arstechnica.com/open-source/news/2009/02/desktops-on-cell-phones-x-windows-on-android.ars
http://hackaday.com/2009/02/22/x11-on-android/
http://www.precentral.net/x-server-coming-webos-bringing-along-openoffice
Meter una distro debian-arm usando chroot
-------------------------------------------------------------------------
http://www.webos-internals.org/wiki/Debian
mount -o loop /media/internal/debsmall.img /media/cf
mount --bind /dev /media/cf/dev
mount -t devpts none /media/cf/dev/pts
mount -t proc none /media/cf/proc
/usr/sbin/chroot /media/cf #Just that easy!
mount -o bind /tmp /media/cf/tmpEs parecido a como meten android en iphone/ipod touch.Mi idea inicial era redimensionar
O al ser lvm tendria que ser :
lvresize -L 6G /dev/mapper/store-media
lvcreate -L 2G -n Debian/Android store
pero veo esto mas comodo
http://www.webos-internals.org/wiki/Nintendo
All on freenode IRC.
- #freesmartphone.org - main channel
- #openmoko-cdevel - sometimes related discussion
- #webos-internals - sometimes related discussion
No hay comentarios:
Publicar un comentario