<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Le Blog d'Alex</title>
	
	<link>http://adumont.serveblog.net</link>
	<description>Just a Bunch Of Thoughts</description>
	<lastBuildDate>Thu, 11 Mar 2010 12:40:36 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/LeBlogdAlex" /><feedburner:info uri="leblogdalex" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>40.424</geo:lat><geo:long>-3.679</geo:long><image><link>http://adumont.serveblog.net/</link><url>http://feeds.feedburner.com/~fc/LeBlogdAlex?bg=99CCFF&amp;amp;fg=444444&amp;amp;anim=0</url><title>Le Blog d'Alex</title></image><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><item>
		<title>Motorola Dext, Android, Root</title>
		<link>http://feedproxy.google.com/~r/LeBlogdAlex/~3/ko41VW_2guE/</link>
		<comments>http://adumont.serveblog.net/2010/03/10/root-motorola-dext/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 13:30:50 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[adb]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[brick]]></category>
		<category><![CDATA[dext]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[motorola]]></category>
		<category><![CDATA[movistar]]></category>
		<category><![CDATA[radio]]></category>
		<category><![CDATA[rom]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[usb]]></category>

		<guid isPermaLink="false">http://adumont.serveblog.net/?p=574</guid>
		<description><![CDATA[
Acabas de comprarte un Motorola Dext de Movistar España (o quizás en otro pais u con otro operador) y estas leyendo cosas de rootear, flashear,&#8230; Por un lado te interesaria probar, pero por otro estas asustado, porque se manejan terminos que te suenan a chino! Asi me sentia yo tambien al principio :-D.
En este articulo [...]]]></description>
			<content:encoded><![CDATA[
<p>Acabas de comprarte un Motorola Dext de Movistar España (o quizás en otro pais u con otro operador) y estas leyendo cosas de rootear, flashear,&#8230; Por un lado te interesaria probar, pero por otro estas asustado, porque se manejan terminos que te suenan a chino! Asi me sentia yo tambien al principio :-D.</p>
<p>En este articulo intento explicar, para los que son nuevos en esto, algunos conceptos y términos que he aprendido poco a poco, leyendo en los foros, y preguntando a los gurus de Android y Dext, y que espero puedan aclararos las cosas. No soy un experto en el tema. Expongo aqui cosas tal y como las entiendo, intentando poner referencias cuando las tengo. No soy responsable de lo que hagais con vuestro telefono.</p>
<div id="attachment_516" class="wp-caption aligncenter" style="width: 299px"><img class="size-medium wp-image-516 " title="motorola-cliq-DEXT-front-slider-open" src="http://adumont.serveblog.net/wp-content/uploads/motorola-cliq-DEXT-front-slider-open-289x300.png" alt="Motorola Dext" width="289" height="300" /><p class="wp-caption-text">Motorola Dext</p></div>
<p>Primero, antes de flashear, rootear y trastear con el telefono, <strong>algunos consejos</strong>:</p>
<ul>
<li><a rel="attachment wp-att-582" href="http://adumont.serveblog.net/2010/03/10/root-motorola-dext/bricked/"><img class="alignright size-full wp-image-582" title="Briq" src="http://adumont.serveblog.net/wp-content/uploads/bricked.gif" alt="" width="75" height="46" /></a>Flashear el telefono, instalar Roms y demas conlleva un <strong><span style="color: #ff0000;">riesgo</span></strong> de cargarse el teléfono.<br />
Por info, en ese caso, tu teléfono se convierte en lo que llaman en ingles un &#8220;<strong>brick</strong>&#8221; (ladrillo). Es algo que ninguno esperamos que nos pase jamas.</li>
<li>Para evitar briquear su teléfono, recomiendo <strong>leer, leer mucho</strong> los foros, <strong>preguntar</strong> siempre que tienes duda, pues la gente siempre intenta ayudar.</li>
<li>Antes de seguir un tutorial en un foro: leer todos los comentarios que pone la gente (pueden ser muchas paginas) y una vez convencido, <strong>seguir cuidadosamente las instrucciones</strong> que pone el autor.</li>
</ul>
<p><strong>Hacer backup</strong>:</p>
<ul>
<li>Backup de <strong>aplicaciones, datos y configuraciones</strong> (APN,&#8230;): Recomiendo instalar desde el Market la aplicacion <strong>Titanium Backup<strong> </strong></strong> (free)<strong> </strong>. Si hacemos un wipe, nos permitira restaurar todo despues.</li>
<li>Una vez hayamos instalado una custom recovery (ver mas adelante), hacer un backup &#8220;nandroid&#8221;: es un backup de todas las particiones (ver mas adelante) del telefono.</li>
</ul>
<p><strong>Particiones del telefono</strong>:</p>
<p>El telefono tiene varias particiones (hablo del telefono, no la SD que es otra cosa).</p>
<pre>C:\&gt; adb shell cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00300000 00020000 "<span style="color: #0000ff;">boot</span>"
mtd1: 08ac0000 00020000 "<span style="color: #0000ff;">system</span>"
mtd2: 0df80000 00020000 "<span style="color: #0000ff;">userdata</span>"
mtd3: 00040000 00020000 "misc"
mtd4: 00500000 00020000 "<span style="color: #0000ff;">recovery</span>"
mtd5: 06000000 00020000 "<span style="color: #0000ff;">cache</span>"
mtd6: 00080000 00020000 "splash"</pre>
<ul>
<li>boot: el kernel, del que bota en modo normal</li>
<li>system: el sistema operativo Android (y aplicaciones de sistema) que se monta (en solo lectura) en modo normal</li>
<li>userdata: se monta (en lectura/escritura) en modo normal, van ahi las configuraciones de las aplicaciones y los datos nuestros</li>
<li>recovery: es el mini-sistema que se bota cuando arrancas en modo recovery (power+camara).</li>
</ul>
<p>El telefono tambien tiene un bootloader (SPL) y una radio.</p>
<p><strong>Modos de arranque del Dext</strong>:</p>
<p>Se puede arrancar el Dext de varias maneras, segun lo que necesitemos:</p>
<ul>
<li> Modo <strong>normal</strong>: al arrancar el telefono pulsando el boton power</li>
<li>Modo <strong>recovery</strong>: pulsando el boton power + camara, despues cuando aparezca la opcion, plusar volumen down</li>
<li>Modo <strong>usb bootloader int</strong>: pulsando el boton power + menu (tecla de los 4 cuadritos), para flashear desde RSD Lite.</li>
</ul>
<p><strong>Requisitos para conectarse al telefono:</strong></p>
<p>Drivers de Motorola, RSD Lite y ADB, todo instalado y  funcionando. Esta <a href="http://modmymoto.com/forums/showthread.php?t=526681">guia en M3</a> tiene links y explica la instalacion de los programas. Leerla bien y seguirla atentamente.</p>
<p><strong>SHX y Custom Recovery:</strong></p>
<p>Los SHX son ficheros que se flashean en el telefono con el programa RSD Lite de Motorola desde el PC. Por ahi se pueden encontrar archivos SHX (grandes, &gt;100-150 MB) que incluyen en general una Custom Recovery y tambien te flashean un sistema entero (algunos incluyen incluso la radio, bootloader,&#8230; los llaman firmwares). No recomiendo flashear estos, al menos al principio.</p>
<p>Tambien existen SHX mas pequeños (8-15MB) que solo incluyen una custom recovery. En mi opinion es mejor inicialmente flashear una custom recovery solo. Es lo que hice yo: flashee la <strong>Amon_RA 1.5.2</strong> (descargar aqui <a href="http://www.modmymoto.com/forums/downloads.php?do=file&amp;id=27917&amp;act=down" target="_blank">Boot + Amon_RA Recovery SHX</a>) que esta en el tutorial de TheDudes en M3 (<a href="http://developers.theunlockr.com/2010/02/20/amon_ras-recovery-image-v1-5-2-htc-g1dream/" target="_blank">aqui</a> viene mas info de las opciones que tiene esta recovery).</p>
<p>Una vez flasheada con RSD Lite, sigues con tu telefono funcionando igual, porque no se ha tocado ni el sistema (system) ni tus datos/app (data). Solo la recovery.</p>
<p>Para quien este un poco familiarizado con el mundo linux/unix, la recovery del telefono es algo como un segundo sistema mas pequeño (que permite hacer tareas de mantenimiento sobre las demas particiones. Botar de recovery seria un poco como botar de un liceCD en un PC.</p>
<p>Como ejemplo de cosas que se pueden hacer desde una custom recovery (tambien depende de la recovery que flasheemos, claro):</p>
<ul>
<li>hacer un backup full del telefono (todas las particiones, con nandroid),</li>
<li>restaurar un backup (no he probado),</li>
<li>aplicar un update.zip (otra ROM) sobre system,</li>
<li>hacer un wipe de la data y/o de la cache&#8230;</li>
</ul>
<div id="attachment_577" class="wp-caption aligncenter" style="width: 210px"><a href="http://www.modmymoto.com/forums/showthread.php?t=526469"><img class="size-medium wp-image-577" title="Amon_RA custom recovery" src="http://adumont.serveblog.net/wp-content/uploads/amon_ra-reboot-200x300.jpg" alt="" width="200" height="300" /></a><p class="wp-caption-text">Custom Recovery Amon_RA</p></div>
<p>La <em>stock</em> Recovery de Motorola (<em>stock</em> = que viene por defecto), no se si permite hacer muchas cosas. Al arrancar con ella sale un icono de un triangulo de atencion y no hay mas opcion en la pantalla. Sin embargo, por ahi encontre algunas opciones:</p>
<ul>
<li><strong>alt-w</strong>: wipe (restore factory settings)</li>
<li><strong>alt-l</strong>: verbose boot? (no estoy muy seguro)</li>
<li><strong>alt-s</strong>: instalar el fichero update.zip en la raiz de la SDcard (pero no se si cualquier update.zip vale o solo los que esten firmados por Motorola)</li>
</ul>
<p>Con la custom recovery flasheada en el telefono, ya podriamos rootearlo sin instalar ninguna rom de otro operador (es decir que seguimos con nuestra Rom original, solo que le añadimos el root). Bastaria con botar en modo recovery, hacer un adb remount (para remontar el /system en read-write) y hacer un push del binario su e instalar Superuser.apk (lo que hace el bat en este <a href="http://koushikdutta.blurryfox.com/Superuser/Superuser.zip" target="_blank">zip</a>).</p>
<pre>adb push bin/su /system/bin
adb shell chmod 4755 /system/bin/su
adb uninstall koushikdutta.superuser
adb install bin/Superuser.apk</pre>
<p>De hecho, si no alteramos el system (stock), <span style="text-decoration: underline;">tras botar de nuevo el telefono en modo normal, y rebotarlo de nuevo</span> se flasheara de nuevo la stock recovery (al apagarse, el sistema original incluye en la particion /system la imagen de la recovery stock y la aplica antes de apagarse). Es bastante interesante! Si nos interesa guardar la custom recovery que hemos instalado (y que no se borre en el siguiente reinicio), podemos mover la /system/recovery.img a /system/recovery.img.stock, asi si queremos restaurarla podremos hacerlo mas tarde (devolviendole su nombre original).</p>
<p><strong>Roms y update.zip</strong>:</p>
<p>Ademas de los SHX ,existen ficheros <strong>update.zip</strong> que son ROMs que se flashean desde una custom recovery. Mas tarde pondre un pequeño articulo sobre las Roms que existen ahora para el Dext. Hay que copiar el .zip en la raiz de la tarjeta SD, botar en modo recovery, seleccionar el zip y despues apply update.zip. Eso (segun el update.zip) formatea system, cache y descomprime el zip y copia cada fichero donde toca. El update.zip no toca la recovery (que yo sepa).</p>
<p><strong>Metodo TheDudes:</strong></p>
<p>Yo segui el metodo de <a id="aptureLink_AycaH74mRF" href="http://twitter.com/thedudesandroid">TheDudes</a>: el <a href="http://modmymoto.com/forums/showthread.php?t=526469" target="_blank">tutorial</a> asusta al principio porque son muchos pasos (y mas de 50 paginas de comentarios), pero en realidad es muy sencillo (pero hay que seguirlo bien, si acaso leerlo 2 o 3 veces!). Resumiendo (no pongo aqui todos los pasos):</p>
<ul>
<li>Flashee la custom recovery Amon_RA 1.5.2 (flasheando el SHX correspondiente con RSD Lite por USB),</li>
<li>Hice un backup Nandroid,</li>
<li>Luego instale la ROM rooteada de &#8220;The Dudes CliqCake v0.4.1. T-Mobile US, Blur Version 1.1.31&#8243;, aplicando el update.zip correspondiente, copiado en la SD, directamente desde la custom recovery.</li>
</ul>
<p>Respecto a las configuraciones y aplicaciones, en mi caso no perdi nada! Al botar pude ver que se habia mantenido el fondo de pantalla, mis aplicaciones instaladas, incluso los accesos directos en el escritorio. por supuesto tambien las configuraciones de cada aplicacion y mis datos, tampoco se perdieron. Asi que bien (en realidad es asi porque en el procedimiento no se hace &#8220;wipe&#8221; del telefono, lo dice al principio &#8220;This should not wipe your phone.&#8221;. En su momento no lo entendi, pero ahora se que eso significa que no pierdes tus datos/config.</p>
<p>Lo que si cambia o se pierde (pero no es grave):</p>
<ul>
<li>tonos, creo que ya no esta el tono de movistar</li>
<li>algunas aplicaciones de sistema (ya no esta mstore (de movistar), shazam). En mi caso Shazam me gusta, así que la reinstale del market</li>
<li>las imágenes del boot customizado, tendras las de t-mobile (y no el M (moco) de movistar) ;-), o bien un custom boot hecho por el modder.</li>
</ul>
<p>Casi todo eso se puede volver atras en realidad, siendo root ya puedes volver a colocar las aplicaciones/tono/bootscreen originales&#8230; pero no entro en eso ahora.</p>
<p><strong>¿Que aportan las Roms rooteadas?</strong></p>
<p>Una cosa interesante de flashear esas Roms rooteadas, ademas de tener el root, es que, en españa, Movistar ha dejado la version de Motoblur 1.1.7 (algunos vienen incluso con la 1.1.5!), mientras que Motorola subio a la version 1.1.31 en USA (T-Mobile). Tambien salio una version 1.3.18 hace poco, que incluye una nueva radio y nuevo bootloader (ojo con esta version).</p>
<p>La version 1.1.31 añade mejoras:</p>
<ul>
<li> <a href="https://motorola-global-portal.custhelp.com/app/answers/detail/a_id/40006" target="_blank">Update to Motoblur</a> version 1.1.31, with some particularly interesting <a href="https://motorola-global-portal.custhelp.com/app/answers/detail/a_id/37860/relate d/1/p_country_code/US" target="_blank">improvement in battery management</a> amongst other things.</li>
<li>Creo que tambien habilita el bloqueo de telefono por codigo grafico (al menos no conseguia habilitarlo con la rom de Movistar)</li>
<li>En la galeria de photos, se puede pasar de una a otra pasando el dedo (touch-slidding), creo que con la Rom de Movistar no se podia.</li>
</ul>
<p>Por info, abrí yo un <a href="https://supportforums.motorola.com/thread/22661" target="_blank">thread</a> en el foro de soporte de motorola sobre el tema de la actualizacion de 1.1.7 a 1.1.31 en España.</p>
<p>Las versiones basadas en 1.3.18 aportan de nuevo mejoras en el ahorro de bateria (si que se nota, la bateria aguanta mucho mas!)</p>
<p><strong>Miedos y dudas:</strong></p>
<ul>
<li>Un miedo que tenia era que al flashear con una rom de T-mobile el Dext quedara &#8220;<strong>lockeado</strong>&#8221; para T-Mobile y no funcionara con Movistar; <strong>no es asi</strong>, el telefono sigue funcionando bien con Movistar (y también sigue lockeado con Movistar)</li>
</ul>
<ul>
<li>Otro miedo era el <strong>tema del 3G</strong> (tarifa de datos): en mi caso no perdi ni siquiera la configuracion del APN, tras instalar la nueva ROM seguia el telefono configurado con el APN de movistar y sigue funcionando bien el 3G. De todas formas habia hecho un backup con &#8220;APN Backup &amp; Restore&#8221; (esta en el Market). OJO, con las Rom 1.3.xx y la nueva radio no funciona el 3G en Mexico y Brasil.</li>
</ul>
<p><em>Pues nada, espero haber contestado a vuestras preguntas. Cualquier duda me decis. Si os interesa seguirme, estoy en twitter, <a href="http://twitter.com/adumont" target="_blank">@adumont</a>. Podeis consultar tambien <a href="http://adumont.serveblog.net/motorola-dext/" target="_blank">esta pagina</a> donde he colgado links y demas informacion de interes sobre el Dext. Empeze a escribir este articulo hace tiempo, asi que ahora ya he instalado otra Rom, la <a href="http://blog.handlerexploit.com/?p=86" target="_blank">Handler 1.3.1</a> de </em><a id="aptureLink_t29kPuyAHR" href="http://twitter.com/HandlerExploit">HandlerExploit</a><em>.</em></p>
<script src="http://feeds.feedburner.com/~s/adumont@gmail.com?i=http://adumont.serveblog.net/2010/03/10/root-motorola-dext/" type="text/javascript" charset="utf-8"></script><p class="akst_link"><a href="http://adumont.serveblog.net/?p=574&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_574" class="akst_share_link" rel="noindex nofollow">ShareThis  / Compartelo</a>
</p>

<p><a href="http://feedads.g.doubleclick.net/~a/rkFHZ4IMboM4n7lhNnk7-5-AIhE/0/da"><img src="http://feedads.g.doubleclick.net/~a/rkFHZ4IMboM4n7lhNnk7-5-AIhE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/rkFHZ4IMboM4n7lhNnk7-5-AIhE/1/da"><img src="http://feedads.g.doubleclick.net/~a/rkFHZ4IMboM4n7lhNnk7-5-AIhE/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=ko41VW_2guE:D_PRBOaMk4U:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=ko41VW_2guE:D_PRBOaMk4U:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=ko41VW_2guE:D_PRBOaMk4U:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=ko41VW_2guE:D_PRBOaMk4U:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=ko41VW_2guE:D_PRBOaMk4U:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=ko41VW_2guE:D_PRBOaMk4U:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=ko41VW_2guE:D_PRBOaMk4U:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://adumont.serveblog.net/2010/03/10/root-motorola-dext/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://adumont.serveblog.net/2010/03/10/root-motorola-dext/</feedburner:origLink></item>
		<item>
		<title>Motorola Dext: Versión del Sistema, Rom, Radio…</title>
		<link>http://feedproxy.google.com/~r/LeBlogdAlex/~3/Y6GOLplF3BI/</link>
		<comments>http://adumont.serveblog.net/2010/03/07/dext-version-del-sistema-rom-radio/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 22:42:24 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[cliq]]></category>
		<category><![CDATA[dext]]></category>
		<category><![CDATA[motorola]]></category>
		<category><![CDATA[Motorola Dext]]></category>
		<category><![CDATA[radio]]></category>
		<category><![CDATA[rom]]></category>

		<guid isPermaLink="false">http://adumont.serveblog.net/?p=558</guid>
		<description><![CDATA[
En el Motorola Dext, con Sistema Operativo Android, podremos ver información clave del sistema desde la pantalla &#8220;Acerca del teléfono&#8220;. Entre otras cosas se puede resaltar:

Versión del sistema: En un Dext esto nos dice la versión de Motoblur, en el mio tengo: Blur_Version.1.3.18.MB200.T-Mobile.en.US
Version del firmware: en el mio aparece Handler 1.3.1-quickpatch, es la Rom que [...]]]></description>
			<content:encoded><![CDATA[
<p>En el <a id="aptureLink_rn3BhyVmV3" href="http://www.youtube.com/watch?v=U47Odlb22ng">Motorola Dext</a>, con Sistema Operativo Android, podremos ver información clave del sistema desde la pantalla &#8220;<strong>Acerca del teléfono</strong>&#8220;. Entre otras cosas se puede resaltar:</p>
<ul>
<li><strong>Versión del sistema</strong>: En un Dext esto nos dice la versión de <a id="aptureLink_XOn6eaSgW4" href="http://en.wikipedia.org/wiki/Motoblur">Motoblur</a>, en el mio tengo: Blur_Version.1.3.18.MB200.T-Mobile.en.US</li>
<li><strong>Version del firmware</strong>: en el mio aparece <a href="http://blog.handlerexploit.com/?p=86" target="_blank">Handler 1.3.1-quickpatch</a>, es la Rom que tengo instalada</li>
<li><strong>Version de banda base</strong>: es la versión de Radio que tiene tu teléfono.<br />
El mio tiene la 76XXC-63805025-SDCBALUM, que viene con la actualización 1.3.xx.<br />
La radio original del Dext/Cliq es la 76XXC-63805012-SDCBALUM (Motoblur 1.1.xx).</li>
</ul>
<p style="text-align: center;"><a title="Acerca del telefono" href="http://adumont.serveblog.net/wp-content/uploads/device.png"><img class="aligncenter size-full wp-image-548" title="device" src="http://adumont.serveblog.net/wp-content/uploads/device.png" alt="" width="200" height="300" /></a></p>
<p>Se llega a esta pantalla desplegando el menu de aplicaciones, y luego:</p>
<ol>
<li>Config.</li>
<li>Acerca del teléfono</li>
</ol>
<p>Update 2010-03-09: Tambien se puede ver la version de la radio con:</p>
<pre>C:\&gt;adb shell
#  <strong>getprop gsm.version.baseband</strong>
<strong><span style="color: #0000ff;">76XXC-63805025-SDCBALUM</span></strong>
# <strong>getprop | busybox grep build</strong>
[ro.build.id]: [CUPCAKE]
[ro.build.display.id]: [CUPCAKE.1.3.18]
[ro.build.version.incremental]: [<strong><span style="color: #0000ff;">1.3.18</span></strong>]
[ro.build.version.sdk]: [3]
[ro.build.version.release]: [<strong><span style="color: #0000ff;">Handler 1.3.1-quickpatch</span></strong>]
[ro.build.date]: [Fri Feb  5 16:14:59 CST 2010]
[ro.build.date.utc]: [1265408099]
[ro.build.type]: [user]
[ro.build.user]: [build01]
[ro.build.host]: [il93lnxebld13]
[ro.build.tags]: [ota-rel-keys,release-keys]
[ro.build.product]: [morrison]
[ro.build.description]: [morrison-user 1.5 CUPCAKE 1.3.18 ota-rel-keys,release-keys]
[ro.build.fingerprint]: [blur/morrison/morrison/morrison:1.5/CUPCAKE/091111:user/ota-rel-keys,release-keys]
[ro.build.version.full]: [<strong><span style="color: #0000ff;">Blur_Version.1.3.18.MB200.T-Mobile.en.US</span></strong>]
[ro.build.config.version]: [GAS_NA_MORRISONTMB01NA_P036]
[ro.build.config.date]: [Fri Feb 05 15:57:39 -0600 2010]
</pre>
<script src="http://feeds.feedburner.com/~s/adumont@gmail.com?i=http://adumont.serveblog.net/2010/03/07/dext-version-del-sistema-rom-radio/" type="text/javascript" charset="utf-8"></script><p class="akst_link"><a href="http://adumont.serveblog.net/?p=558&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_558" class="akst_share_link" rel="noindex nofollow">ShareThis  / Compartelo</a>
</p>

<p><a href="http://feedads.g.doubleclick.net/~a/811OTEyOn1kbfywEZhTMmwFAups/0/da"><img src="http://feedads.g.doubleclick.net/~a/811OTEyOn1kbfywEZhTMmwFAups/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/811OTEyOn1kbfywEZhTMmwFAups/1/da"><img src="http://feedads.g.doubleclick.net/~a/811OTEyOn1kbfywEZhTMmwFAups/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=Y6GOLplF3BI:KZkcJQpM1Fc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=Y6GOLplF3BI:KZkcJQpM1Fc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=Y6GOLplF3BI:KZkcJQpM1Fc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=Y6GOLplF3BI:KZkcJQpM1Fc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=Y6GOLplF3BI:KZkcJQpM1Fc:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=Y6GOLplF3BI:KZkcJQpM1Fc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=Y6GOLplF3BI:KZkcJQpM1Fc:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://adumont.serveblog.net/2010/03/07/dext-version-del-sistema-rom-radio/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://adumont.serveblog.net/2010/03/07/dext-version-del-sistema-rom-radio/</feedburner:origLink></item>
		<item>
		<title>Política de suspensión de Wi-Fi en Android</title>
		<link>http://feedproxy.google.com/~r/LeBlogdAlex/~3/Ng3M1hogvGo/</link>
		<comments>http://adumont.serveblog.net/2010/02/24/politica-de-suspension-de-wi-fi-en-android/#comments</comments>
		<pubDate>Wed, 24 Feb 2010 14:35:58 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://adumont.serveblog.net/?p=539</guid>
		<description><![CDATA[
Hace poco descubrí que en las configuraciones de Wi-fi del Android, hay opciones avanzadas, una de la cual permite cambia la &#8220;Política de suspensión&#8221;.
Por defecto, cuando el teléfono se pone en modo suspensión (standby), el wifi se corta, y entonces vuelve a tirar del 3G.
Con esta opción puedes hacer que si estas conectado a una [...]]]></description>
			<content:encoded><![CDATA[
<p>Hace poco descubrí que en las configuraciones de Wi-fi del Android, hay opciones avanzadas, una de la cual permite cambia la &#8220;Política de suspensión&#8221;.</p>
<p>Por defecto, cuando el teléfono se pone en modo suspensión (standby), el wifi se corta, y entonces vuelve a tirar del 3G.</p>
<p>Con esta opción puedes hacer que si estas conectado a una red Wifi, no se corte aunque la pantalla se apague.</p>
<p>Para llegar al menú de opciones avanzadas, hay que seguir estos pasos:</p>
<ol>
<li>Ajustes</li>
<li>Conex. Inalámbricas</li>
<li>Configuración de Wi-Fi</li>
<li><strong>Pulsar la tecla [Menú]</strong></li>
<li>Avanzado</li>
<li>Política de suspensión de Wi-Fi</li>
</ol>
<p><img class="aligncenter size-full wp-image-541" title="wifi-advanced1" src="http://adumont.serveblog.net/wp-content/uploads/wifi-advanced1.png" alt="wifi-advanced1" width="320" height="480" /></p>
<p>Ahí aparecerán 3 opciones:</p>
<ul>
<li>Cuando la pantalla se apague (pode defecto)</li>
<li>Nunca si está conectado</li>
<li>Nunca</li>
</ul>
<p><img class="aligncenter size-full wp-image-542" title="wifi-advanced2" src="http://adumont.serveblog.net/wp-content/uploads/wifi-advanced2.png" alt="wifi-advanced2" width="320" height="480" /></p>
<script src="http://feeds.feedburner.com/~s/adumont@gmail.com?i=http://adumont.serveblog.net/2010/02/24/politica-de-suspension-de-wi-fi-en-android/" type="text/javascript" charset="utf-8"></script><p class="akst_link"><a href="http://adumont.serveblog.net/?p=539&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_539" class="akst_share_link" rel="noindex nofollow">ShareThis  / Compartelo</a>
</p>

<p><a href="http://feedads.g.doubleclick.net/~a/WMWW13Lv6XJC7RTUo-4l8Yv9qIA/0/da"><img src="http://feedads.g.doubleclick.net/~a/WMWW13Lv6XJC7RTUo-4l8Yv9qIA/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/WMWW13Lv6XJC7RTUo-4l8Yv9qIA/1/da"><img src="http://feedads.g.doubleclick.net/~a/WMWW13Lv6XJC7RTUo-4l8Yv9qIA/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=Ng3M1hogvGo:L3DesJmpguI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=Ng3M1hogvGo:L3DesJmpguI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=Ng3M1hogvGo:L3DesJmpguI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=Ng3M1hogvGo:L3DesJmpguI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=Ng3M1hogvGo:L3DesJmpguI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=Ng3M1hogvGo:L3DesJmpguI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=Ng3M1hogvGo:L3DesJmpguI:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://adumont.serveblog.net/2010/02/24/politica-de-suspension-de-wi-fi-en-android/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://adumont.serveblog.net/2010/02/24/politica-de-suspension-de-wi-fi-en-android/</feedburner:origLink></item>
		<item>
		<title>Generate bit.ly short URL from Zoho Creator</title>
		<link>http://feedproxy.google.com/~r/LeBlogdAlex/~3/iLhY2tPUV_4/</link>
		<comments>http://adumont.serveblog.net/2009/11/30/generate-bit-ly-short-url-from-zoho-creator/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 22:38:36 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Scriptlets]]></category>
		<category><![CDATA[Bit.ly]]></category>
		<category><![CDATA[Deluge script]]></category>
		<category><![CDATA[XPATH]]></category>
		<category><![CDATA[Zoho Creator]]></category>

		<guid isPermaLink="false">http://adumont.serveblog.net/?p=506</guid>
		<description><![CDATA[
I wanted to be able to post links to my twitter timeline from my Zoho Creator Personal TV Series web app.
A popular site to generate short URLs suitable for Twitter is Bit.ly. Once you register for a free account, you get an API key that you&#8217;ll be able to use to call bit.ly from another [...]]]></description>
			<content:encoded><![CDATA[
<p>I wanted to be able to post links to <a id="aptureLink_PcyhyCUIrQ" href="http://twitter.com/adumont">my twitter timeline</a> from my <a id="aptureLink_Pf2MK4Cb21" href="http://www.youtube.com/watch?v=93hBHs5cBYw">Zoho Creator</a> Personal TV Series web app.</p>
<div id="attachment_507" class="wp-caption alignright" style="width: 265px"><img class="size-full wp-image-507 " title="Bit.ly API key" src="http://adumont.serveblog.net/wp-content/uploads/FireShot-capture-034-account-settings-bit_ly_account.png" alt="Bit.ly API key" width="255" height="331" /><p class="wp-caption-text">Bit.ly API key</p></div>
<p>A popular site to generate short URLs suitable for Twitter is <a id="aptureLink_FaP3fHt3Tf" href="http://bit.ly/">Bit.ly</a>. Once you register for a free account, you get an <strong>API key</strong> that you&#8217;ll be able to use to call bit.ly from another application.</p>
<p>In my case I create a Zoho Creator Deluge Script function to generate a shot URL from any given URL passed as an argument. The code is pretty easy, and self explanatory:</p>
<ul>
<li>First set two variables, with my API key and bit.ly user name,</li>
<li>Then submit the encoded URL to get shorten</li>
<li>Then, using some <a id="aptureLink_covLfLjRs5" href="http://en.wikipedia.org/wiki/Xpath">XPATH</a> magic, we extract the short URL from the response!</li>
</ul>
<pre>string shortenURL(string URL)
{
   Bitly_API_Key = "R_HereGoesYourAPIkey";
   Bitly_Login = "MyLogin";
   Bitly_Resp = getUrl("http://api.bit.ly/shorten?version=2.0.1&amp;longUrl=" + encodeUrl(input.URL) + "&amp;login=" + Bitly_Login + "&amp;apiKey=" + Bitly_API_Key + "&amp;format=xml");
   shortURL = Bitly_Resp.executeXPath("/bitly/results/nodeKeyVal/shortUrl/text()");
   return shortURL;
}</pre>
<script src="http://feeds.feedburner.com/~s/adumont@gmail.com?i=http://adumont.serveblog.net/2009/11/30/generate-bit-ly-short-url-from-zoho-creator/" type="text/javascript" charset="utf-8"></script><p class="akst_link"><a href="http://adumont.serveblog.net/?p=506&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_506" class="akst_share_link" rel="noindex nofollow">ShareThis  / Compartelo</a>
</p>

<p><a href="http://feedads.g.doubleclick.net/~a/5_il9Ox5MOf-i978SeebF0aYVVM/0/da"><img src="http://feedads.g.doubleclick.net/~a/5_il9Ox5MOf-i978SeebF0aYVVM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/5_il9Ox5MOf-i978SeebF0aYVVM/1/da"><img src="http://feedads.g.doubleclick.net/~a/5_il9Ox5MOf-i978SeebF0aYVVM/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=iLhY2tPUV_4:NYLa6oMoRic:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=iLhY2tPUV_4:NYLa6oMoRic:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=iLhY2tPUV_4:NYLa6oMoRic:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=iLhY2tPUV_4:NYLa6oMoRic:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=iLhY2tPUV_4:NYLa6oMoRic:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=iLhY2tPUV_4:NYLa6oMoRic:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=iLhY2tPUV_4:NYLa6oMoRic:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://adumont.serveblog.net/2009/11/30/generate-bit-ly-short-url-from-zoho-creator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adumont.serveblog.net/2009/11/30/generate-bit-ly-short-url-from-zoho-creator/</feedburner:origLink></item>
		<item>
		<title>Sun Cluster con Zonas no-globales</title>
		<link>http://feedproxy.google.com/~r/LeBlogdAlex/~3/GXtm-f-eAfQ/</link>
		<comments>http://adumont.serveblog.net/2009/09/17/sun-cluster-con-zonas-no-globales/#comments</comments>
		<pubDate>Thu, 17 Sep 2009 11:03:11 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Unix & Linux]]></category>
		<category><![CDATA[containers]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[sun]]></category>
		<category><![CDATA[zones]]></category>

		<guid isPermaLink="false">http://adumont.serveblog.net/?p=485</guid>
		<description><![CDATA[
La idea detras de este post es consolidar varios clusters de 2 nodos  Solaris 10, usando zonas. Los servicios balancean de una zona de una maquina a otra zona de otra maquina. Otro planteamiento (que no explico aqui) podria ser conmutar la zona entera (mas lento debido a que hay que levantar una zona antes [...]]]></description>
			<content:encoded><![CDATA[
<p>La idea detras de este post es consolidar varios clusters de 2 nodos  <a id="aptureLink_QENfNWz8BK" href="http://en.wikipedia.org/wiki/Solaris%20%28operating%20system%29">Solaris 10</a>, usando <a id="aptureLink_9Y7F0w7lw8" href="http://en.wikipedia.org/wiki/Solaris%20Containers">zonas</a>. Los servicios balancean de una zona de una maquina a otra zona de otra maquina. Otro planteamiento (que no explico aqui) podria ser conmutar la zona entera (mas lento debido a que hay que levantar una zona antes del recurso).</p>
<p><em>Escribi esta chuleta hace casi 2 años cuando monte un cluster SC3.2 con resource group Oracle corriendo en 2 zonas no-globales, para un entorno productivo en una Telco. Lo publico esperando que resulte interesante. No entra demasiado en los detalles tecnicos, sino que es mas conceptual.<br />
</em></p>
<p><strong>Ejemplo</strong>: 2 proyectos cada uno con su cluster, sin consolidar:</p>
<ul>
<li> <span style="text-decoration: underline;">Proyecto A</span>, 2 maquinas, pa01 y pa02, con Sun Cluster, con un grupo de recursos A-rg :</li>
</ul>
<pre>       +-------+ pa01     +-------+ pa02
       | A-rg  |          |   .   |
       +-------+          +-------+</pre>
<ul>
<li> <span style="text-decoration: underline;">Proyecto B</span>, 2 maquinas, pb01 y pb02, con Sun Cluster, con dos grupos de recursos B1-rg y B2-rg:</li>
</ul>
<pre>       +-------+ pb01     +-------+ pb02
       | B1-rg |          |   .   |
       |   .   |          | B2-rg |
       +-------+          +-------+</pre>
<p>Consolidamos asi:</p>
<ul>
<li> 2 maquinas fisicas, m1 y m2, con Sun Cluster,
<ul>
<li> pa01 y pb01: zonas no globales de m1</li>
<li> pa02 y pb02: zonas no globales de m2</li>
</ul>
</li>
</ul>
<pre>           m1                     m2
   +------------------+   +------------------+
   |                  |   |                  |
   |   +-------+ pa01 |   |   +-------+ pa02 |
   |   | A-rg  |      |   |   |   .   |      |
   |   +-------+      |   |   +-------+      |
   |                  |   |                  |
   |   +-------+ pb01 |   |   +-------+ pb02 |
   |   | B1-rg |      |   |   |   .   |      |
   |   |   .   |      |   |   | B2-rg |      |
   |   +-------+      |   |   +-------+      |
   |                  |   |                  |
   |Solaris 10 - SC3.2|   |Solaris 10 - SC3.2|
   +------------------+   +------------------+</pre>
<p>Podemos aplicar management de recurso a las zonas &#8211;&gt; containers.</p>
<p>Para montar esto, primero hay que montar las 2 maquinas, como si fueran a ser un cluster de 2 maquinas normales, instalar SC3.2.</p>
<p>Despues creamos las zonas.</p>
<p>Hay que entender que no se trata de 2 clusters de 2 nodos, sino de un cluster de 2 nodos, con 4 zonas.</p>
<p>A la hora de crear los usuarios, fs y demas, crearlos en las zonas, no en las maquinas fisicas.</p>
<p>Para el montaje de los FS locales de cada zona (/var, /opt/oracle,&#8230;) , ver Zones/fs.txt.</p>
<p>A la hora de crear los RGs, con clsetup, añadiremos las zonas donde corran, no los nodos, es decir:</p>
<pre>   A-rg : NodeList = m1:pa01, m2:pa02

   B1-rg: NodeList = m1:pb01, m2:pb02
   B2-rg: NodeList = m2:pb02, m1:pb01</pre>
<p>Los FS de los RGs se deben de montar en la zona global, en un path que no sea bajo el zonepath de ninguna zona.</p>
<p>Por ejemplo:</p>
<p>El A-rg necesita los FS:</p>
<pre>   /A/scripts
   /A/BD/C1
   /A/BD/C2
   /A/BD/C3
   /A/BD/a00
   /A/BD/i00
   /A/BD/r00
   /A/BD/s00
   /A/BD/s01
   /A/BD/s02
   /A/BD/t00</pre>
<p>Hay que poner los FS de los RGs en el /etc/vfstab de los dos nodos m1 y m2 (en la zona global), ya que SC3.2 los montara primero en la zona global antes que en la zona no-global.</p>
<p>Por ejemplo:</p>
<pre>   m1:/etc/vfstab
   ...
   # A-rg
   /dev/vx/dsk/A-dg/lvscripts /dev/vx/rdsk/A-dg/lvscripts /A/scripts vxfs 2 no log
   /dev/vx/dsk/A-dg/lvbdc1    /dev/vx/rdsk/A-dg/lvbdc1    /A/BD/C1   vxfs 2 no log
   /dev/vx/dsk/A-dg/lvbdc2    /dev/vx/rdsk/A-dg/lvbdc2    /A/BD/C2   vxfs 2 no log
   ...</pre>
<p>En las zonas donde vaya a correr el RG en cuestion, se deben de crear unicamente los correspondientes puntos de montage:</p>
<pre>   /A/scripts
   /A/BD/C1
   /A/BD/C2
   /A/BD/C3
   /A/BD/a00
   ...</pre>
<p>En particular, no es necesario poner nada en el vfstab de las zonas no globales.</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px;">Otro planteamiento podria ser conmutar la zona entera (mas lento debido a que hay que levantar una zona antes del recurso).</div>
<script src="http://feeds.feedburner.com/~s/adumont@gmail.com?i=http://adumont.serveblog.net/2009/09/17/sun-cluster-con-zonas-no-globales/" type="text/javascript" charset="utf-8"></script><p class="akst_link"><a href="http://adumont.serveblog.net/?p=485&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_485" class="akst_share_link" rel="noindex nofollow">ShareThis  / Compartelo</a>
</p>

<p><a href="http://feedads.g.doubleclick.net/~a/fIlv03qrcRQfhOIia4OUe-uIspI/0/da"><img src="http://feedads.g.doubleclick.net/~a/fIlv03qrcRQfhOIia4OUe-uIspI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/fIlv03qrcRQfhOIia4OUe-uIspI/1/da"><img src="http://feedads.g.doubleclick.net/~a/fIlv03qrcRQfhOIia4OUe-uIspI/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=GXtm-f-eAfQ:Vi2r9M5f6Co:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=GXtm-f-eAfQ:Vi2r9M5f6Co:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=GXtm-f-eAfQ:Vi2r9M5f6Co:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=GXtm-f-eAfQ:Vi2r9M5f6Co:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=GXtm-f-eAfQ:Vi2r9M5f6Co:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=GXtm-f-eAfQ:Vi2r9M5f6Co:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=GXtm-f-eAfQ:Vi2r9M5f6Co:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://adumont.serveblog.net/2009/09/17/sun-cluster-con-zonas-no-globales/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adumont.serveblog.net/2009/09/17/sun-cluster-con-zonas-no-globales/</feedburner:origLink></item>
		<item>
		<title>Start Virtualbox VMs at boot time with SMF (2)</title>
		<link>http://feedproxy.google.com/~r/LeBlogdAlex/~3/3OysCNCxQLI/</link>
		<comments>http://adumont.serveblog.net/2009/09/01/virtualbox-smf-2/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 21:01:07 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Unix & Linux]]></category>
		<category><![CDATA[Opensolaris]]></category>
		<category><![CDATA[SMF]]></category>
		<category><![CDATA[Virtualbox]]></category>

		<guid isPermaLink="false">http://adumont.serveblog.net/?p=464</guid>
		<description><![CDATA[
In my latest post, I wrote about an SMF manifest and method I developped to start and stop my Sun Virtualbox virtual machines at boot time. I explain here some changes I&#8217;ve done to both files, and why. If you were interested in it, you are  encouraged to update both files on your system (you [...]]]></description>
			<content:encoded><![CDATA[
<p>In my <a href="http://adumont.serveblog.net/2009/07/21/virtualbox-smf/">latest post</a>, I wrote about an SMF manifest and method I developped to start and stop my Sun Virtualbox virtual machines at boot time. I explain here some changes I&#8217;ve done to both files, and why. If you were interested in it, you are  encouraged to update both files on your system (you can download the files at the end of this post).</p>
<ul>
<li><strong>Handling multiple VMs</strong></li>
</ul>
<p>The idea was the svc be able to handle multiple VM, one my svc instance:</p>
<blockquote><p>vbox:vm1 &#8211;&gt; svc for starting/stopping vm1,</p>
<p>vbox:vm2 &#8211;&gt; svc for starting/stopping vm2,</p></blockquote>
<p>An interested reader, Leo, gave the svc a try and felt into some problem when trying it with multiple VM: Only the svc instance of the VM that started first would stay running, while the other instances started after it would fall into maintenance. In the svc log file appeared:</p>
<pre>[ Jul 23 03:38:39 Method "start" exited with status 0. ]
[ Jul 23 03:38:39 <strong>Stopping because all processes in service exited</strong>. ]
[ Jul 23 03:38:39 Executing stop method ("/export/vm/svc/method/vbox stop"). ]</pre>
<p>The stangest thing is that although the svc instances were in maintenance mode, the corresponding VMs were actually running fine.</p>
<p>Here is an example, with 2 vbox instances: both vm1 and vm2 are running fine, but:</p>
<pre>leo@os:~$ svcs -pv vbox
STATE          NSTATE        STIME    CTID   FMRI
<strong><span style="color: #339966;">online         -             13:51:42     99 svc:/site/xvm/vbox:vm1</span></strong>
               13:51:41      710 VBoxXPCOMIPCD
               13:51:41      713 VBoxSVC
               13:51:42      715 VBoxHeadless
               13:51:47      727 VBoxHeadless
<strong><span style="color: #ff6600;">maintenance    -             13:51:48      - svc:/site/xvm/vbox:vm2</span></strong></pre>
<p>So svc vbox:vm1 is online, while vbox:vm2 felt into maintenance. Notice that vbox:vm1 has 2 VBoxHeadless processes in its contract, while vbox:vm2 has no processes!</p>
<p>Actually, doing some tests together, we get to the point that the problem was with how Virtualbox works:</p>
<p>Upon starting the vbox:vm2 svc instance (at 13:51:47), there is already a VM running (vm1 started at 13:51:42). When the svc starts, VBoxManage startvm is actually &#8220;talking&#8221; to an already running Virtualbox process (either VBoxXPCOMIPCD or VBoxXVC, I suspect the first one, COMIPCD = Communication IPC Deamon?) and telling him to start the second VM. This &#8220;already running VB process&#8221; is the one that will fork (inside the contract of vbox:vm1, in this case ctid 99) and launch the VM, while the VBoxManage started by second svc will end. In this case, the VM is running from outside the contract of the svc, and when both the method (vbox) and the svcs itself return, the contract has no processes and then SMF detects the &#8220;failure&#8221; and try to restart it.</p>
<p>To help understand this, remember that the first version of my manifest was defining a contract model service, which means (see man page of svc.startd(1m)):</p>
<pre>     A <strong>contract model service</strong> fails if any of the following  con-
     ditions occur:

         o    <strong>all processes in the service exit</strong>

         o    any processes in the service produce a core dump

         o    a process outside the service sends a service  pro-
              cess  a fatal signal (for example, an administrator
              terminates a service process with  the  pkill  com-
              mand)</pre>
<p>The solution to the problem is changing the &#8220;startd/duration&#8221; property from &#8220;contract&#8221; (the default) to &#8220;transient&#8221;, as explain in the man page of svc.startd(1m):</p>
<pre>     Additionally, svc.startd managed  services  can  define  the
     optional  properties  listed  below  in  the startd property
     group.

     startd/duration

         The duration property defines the  service's  model.  It
         can  be  set  to  transient,  child also known as "wait"
         model services, or contract (the default).
[...]
     Defining a service as transient means that  svc.startd  does
     not  track  processes  for that service. Thus, the potential
     faults  described  for  contract  model  services  are   not
     considered failures for transient services. A transient ser-
     vice only enters the maintenance state if one of the  method
     failure conditions occurs.</pre>
<p>This is done by adding the following lines to the manifest, inside the &lt;service&gt; section and importing it again using svccfg(1M):</p>
<pre>   &lt;property_group <span style="color: #3366ff;">name='<strong>startd</strong>'</span> type='framework'&gt;
      &lt;propval <span style="color: #3366ff;">name='<strong>duration</strong>'</span> type='astring' <span style="color: #3366ff;">value='<strong>transient</strong>'</span> /&gt;
   &lt;/property_group&gt;</pre>
<p>Though many services are using the transient model, I confess that I was quite exited by the way SMF was able to handle process failures and restart the svc using the contract model, and having to change to the transient model is rather disappointing. However it&#8217;s a restriction due to how Virtualbox creates its own processes.</p>
<ul>
<li><strong>Service dependencies</strong></li>
</ul>
<p>Following the advice by Renaud Manus in this <a href="http://opensolaris.org/jive/thread.jspa?messageID=401407">smf-discuss thread</a>, I&#8217;ve added a dependency on milestone/multi-user-server,</p>
<ul>
<li><strong>Property value checking</strong></li>
</ul>
<p>Following another advice by Renaud Manus in the same <a href="http://opensolaris.org/jive/thread.jspa?messageID=401407">smf-discuss thread</a>, I&#8217;ve implemented some validity checking on the value of the &#8220;vm/stop_method&#8221; property. I do it inside the method, because I&#8217;m not (yet) familiar with the use of the Value Constraints from the new <a href="http://opensolaris.org/os/project/vpanels/templates/">Template Extensions</a> feature.</p>
<ul>
<li><strong>VM State checking</strong></li>
</ul>
<p>I&#8217;ve also implemented some checking on the state of the VM, so I only start it if it&#8217;s not already started, or stop it only if it&#8217;s running. It&#8217;s probably not the most exaustive checks that can be done, but it helps.</p>
<p><strong>DOWNLOAD</strong> here the new versions of both files and feel free to use them under the <a href="../aboutme/mit-license-2009/">MIT Licence</a>:</p>
<ul>
<li>The <a href="http://adumont.serveblog.net/wp-content/uploads/vbox-debian.xml.0.05">Virtualbox SVC manifest</a> for one instance (here named debian). Download, copy and edit one manifest per instance (VM)  as explained in this <a href="http://adumont.serveblog.net/2009/07/21/virtualbox-smf/">previous post</a>.</li>
<li>The <a href="http://adumont.serveblog.net/wp-content/uploads/vbox">Virtualbox SVC method</a> (vbox).</li>
</ul>
<p>If you are not confortable with modifying the files, please read first to my <a href="../2009/07/21/virtualbox-smf/">previous post</a> to know what to modify.</p>
<p><strong>Thanks go to</strong>: reader Leo and Renaud Manus from <a href="http://opensolaris.org/jive/thread.jspa?messageID=401407">smf-discuss</a> list at <a href="http://opensolaris.org">Opensolaris.org</a> for there help, time and interest.</p>
<p><strong>Updated</strong>: <a href="http://adumont.serveblog.net/aboutme/mit-license-2009/">MIT Licence</a>.</p>
<script src="http://feeds.feedburner.com/~s/adumont@gmail.com?i=http://adumont.serveblog.net/2009/09/01/virtualbox-smf-2/" type="text/javascript" charset="utf-8"></script><p class="akst_link"><a href="http://adumont.serveblog.net/?p=464&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_464" class="akst_share_link" rel="noindex nofollow">ShareThis  / Compartelo</a>
</p>

<p><a href="http://feedads.g.doubleclick.net/~a/BQ4q_Rb3s20o2eGGCpVrMg-YVTw/0/da"><img src="http://feedads.g.doubleclick.net/~a/BQ4q_Rb3s20o2eGGCpVrMg-YVTw/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/BQ4q_Rb3s20o2eGGCpVrMg-YVTw/1/da"><img src="http://feedads.g.doubleclick.net/~a/BQ4q_Rb3s20o2eGGCpVrMg-YVTw/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=3OysCNCxQLI:450kGsvhuoE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=3OysCNCxQLI:450kGsvhuoE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=3OysCNCxQLI:450kGsvhuoE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=3OysCNCxQLI:450kGsvhuoE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=3OysCNCxQLI:450kGsvhuoE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=3OysCNCxQLI:450kGsvhuoE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=3OysCNCxQLI:450kGsvhuoE:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://adumont.serveblog.net/2009/09/01/virtualbox-smf-2/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		<feedburner:origLink>http://adumont.serveblog.net/2009/09/01/virtualbox-smf-2/</feedburner:origLink></item>
		<item>
		<title>Start Virtualbox VMs at boot time in Opensolaris with SMF</title>
		<link>http://feedproxy.google.com/~r/LeBlogdAlex/~3/mRI2XgWN5SY/</link>
		<comments>http://adumont.serveblog.net/2009/07/21/virtualbox-smf/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 16:50:32 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Unix & Linux]]></category>
		<category><![CDATA[Opensolaris]]></category>
		<category><![CDATA[SMF]]></category>
		<category><![CDATA[Virtualbox]]></category>

		<guid isPermaLink="false">http://adumont.serveblog.net/?p=441</guid>
		<description><![CDATA[
At home I use Sun xVM Virtualbox in my Opensolaris server to run a Debian GNU/Linux virtual machine (my uTorrent server). As opposed to VMware Server, which let you start and stop your VMs at boot and shutdown time (under Linux), Virtualbox doesn&#8217;t provide any mechanism to do it. For Linux, there are lots of [...]]]></description>
			<content:encoded><![CDATA[
<p>At home I use <a id="aptureLink_Nu6QTJLXGo" href="http://www.slideshare.net/jjmora/viernes-tecnicos-virtualizacion-ldom-xen-zonas-brandz">Sun xVM Virtualbox</a> in my <a id="aptureLink_sNZgYlldpu" href="http://en.wikipedia.org/wiki/OpenSolaris">Opensolaris</a> server to run a Debian GNU/Linux virtual machine (<a id="aptureLink_piEPytfGDk" href="../2009/07/12/my-utorrent-server/">my uTorrent server</a>). As opposed to VMware Server, which let you start and stop your VMs at boot and shutdown time (under Linux), Virtualbox doesn&#8217;t provide any mechanism to do it. For Linux, there are lots of init scripts around the Internet (just ask google). For service startup, Opensolaris uses a new way introduced since <a id="aptureLink_N4bWUzQsg8" href="http://www.slideshare.net/danilop/solaris-10-technical-20080211">Solaris 10</a>, called <a id="aptureLink_bJPpKy368r" href="http://en.wikipedia.org/wiki/Service%20Management%20Facility">SMF: Service Management Facility</a>. This post is about creating a new service under Opensolaris&#8217; SMF to handle my Virtualbox <em>headless VMs</em>&#8216; startup at boot time (and shutdown/standby when turning down the host).</p>
<div style="border: 1px dashed red; background-color: #ffccff;"><span style="color: #000000;"><strong>Update 01/09/2009: </strong></span>If you are interested in trying and using this SMF svc yourself to start your Virtualbox VM, you may also read <a href="http://adumont.serveblog.net/2009/09/01/virtualbox-smf-2/">this post</a> which updates both files.</div>
<p>To create a new SMF Service you need two things:</p>
<ul>
<li>a <strong>service manifest</strong>: it&#8217;s a XML file which describes the service, and how SMF has to handle it: its dependencies (if any), its start and stop methods, its properties (if any), its working context (working directory, user&#8230;)</li>
<li>the <strong>method(s) </strong>file(s) script(s): that is the actual start/stop/refresh scripts (shell scripts for example).</li>
</ul>
<p>Let&#8217;s fist start with the definition of the service, that is the <strong>SMF manifest file</strong>:</p>
<ul>
<li>I name the service &#8220;site/xvm/vbox&#8221;:</li>
</ul>
<pre>&lt;<strong>service
name='site/xvm/vbox'</strong>
type='service'
version='1.1'&gt;</pre>
<ul>
<li>I define two dependencies (I could set more of course):
<ul>
<li>Network working (<span style="color: #ff6600;">svc:/milestone/network:default</span>)</li>
<li>Filesystem mounted (<span style="color: #ff6600;">svc:/system/filesystem/local:default</span>)</li>
</ul>
</li>
</ul>
<pre>&lt;<strong><span style="color: #ff6600;">dependency</span></strong> name='network' grouping='require_all' restart_on='none' type='service'&gt;
   &lt;service_fmri value='<strong><span style="color: #ff6600;">svc:/milestone/network:default</span></strong>' /&gt;
&lt;/dependency&gt;

&lt;<strong><span style="color: #ff6600;">dependency</span></strong> name='filesystem-local' grouping='require_all' restart_on='none' type='service'&gt;
   &lt;service_fmri value='<strong><span style="color: #ff6600;">svc:/system/filesystem/local:default</span></strong>' /&gt;
&lt;/dependency&gt;</pre>
<ul>
<li>the declaration of the methods:</li>
</ul>
<pre>&lt;<strong><span style="color: #008000;">exec_method</span></strong>
   type='method'
   name='<strong><span style="color: #008000;">start</span></strong>'
   exec='<strong><span style="color: #008000;">/export/home/adumont/svc/method/vbox start</span></strong>'
   timeout_seconds='60'
/&gt;

&lt;<strong><span style="color: #008000;">exec_method</span></strong>
   type='method'
   name='<strong><span style="color: #008000;">stop</span></strong>'
   exec='<span style="color: #008000;"><strong>/export/home/adumont/svc/method/vbox stop</strong></span>'
timeout_seconds='60'
/&gt;</pre>
<p><em>You will probably need to change the path to the method from <strong><span style="color: #008000;">/export/home/adumont/svc </span></strong>to whatever path suit your instalation the most. Don&#8217;t forget to change it in the manifest, so the exec_method point to the an existing method script.</em><strong></strong></p>
<ul>
<li>the definition of a service instance (in my case I create a service instance for every VM I want to handle with this service):</li>
</ul>
<pre>&lt;<span style="color: #0000ff;"><strong>instance </strong><strong>name='debian</strong>' </span>enabled='false'&gt;
...<span style="color: #800000;"> </span>
&lt;<strong><span style="color: #0000ff;">/instance</span></strong>&gt;</pre>
<ul>
<li>within the instance definition I define the working context:
<ul>
<li>working directory</li>
<li>processes credentials</li>
</ul>
</li>
</ul>
<pre><span style="color: #800000;">   &lt;method_context <strong>working_directory='/export/home/adumont/svc/var'</strong>&gt;
      &lt;method_credential <strong>user='adumont' group='staff' </strong>/&gt;
   &lt;/method_context&gt;</span></pre>
<ul>
<li>and the instance properties: I set an instance property called vm/stop_method, which I&#8217;ll use from the stop method to know I the method should stop the VM (see later in this post):</li>
</ul>
<pre>   &lt;<span style="color: #800080;"><strong>property_group</strong>  name='<strong>vm</strong>' </span>type='application'&gt;
      &lt;!-- stop_method is used to set how SMF will stop the VM:
      Possible values are: acpipowerbutton, savestate, acpisleepbutton, poweroff --&gt;
      &lt;<span style="color: #800080;"><strong>propval </strong>name='<strong>stop_method</strong>'</span> type='astring' <span style="color: #800080;">value='<strong>savestate</strong>' </span>/&gt;
   &lt;/property_group&gt;</pre>
<p><strong>Here is the full xml manifest file </strong>(/export/home/adumont/svc/manifest/vbox-debian.xml):</p>
<pre>&lt;?xml version="1.0"?&gt;
&lt;!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1"&gt;

&lt;service_bundle type='manifest' name='vbox'&gt;

&lt;<strong>service
name='site/xvm/vbox'</strong>
type='service'
version='1.1'&gt;

&lt;!--   Wait for network interfaces to be initialized. --&gt;
&lt;<strong><span style="color: #ff6600;">dependency</span></strong>
name='network'
grouping='require_all'
restart_on='none'
type='service'&gt;

&lt;service_fmri value='<strong><span style="color: #ff6600;">svc:/milestone/network:default</span></strong>' /&gt;

&lt;/dependency&gt;

&lt;!--    Wait for all local filesystems to be mounted.    --&gt;
&lt;<strong><span style="color: #ff6600;">dependency</span></strong>
name='filesystem-local'
grouping='require_all'
restart_on='none'
type='service'&gt;

&lt;service_fmri value='<strong><span style="color: #ff6600;">svc:/system/filesystem/local:default</span></strong>' /&gt;

&lt;/dependency&gt;

&lt;<strong><span style="color: #008000;">exec_method</span></strong>
type='method'
name='<strong><span style="color: #008000;">start</span></strong>'
exec='<strong><span style="color: #008000;">/export/home/adumont/svc/method/vbox start</span></strong>'
timeout_seconds='60'
/&gt;

&lt;<strong><span style="color: #008000;">exec_method</span></strong>
type='method'
name='<strong><span style="color: #008000;">stop</span></strong>'
exec='<span style="color: #008000;"><strong>/export/home/adumont/svc/method/vbox stop</strong></span>'
timeout_seconds='60'
/&gt;

&lt;<span style="color: #0000ff;"><strong>instance </strong><strong>name='debian</strong>' </span>enabled='false'&gt;

<span style="color: #800000;">   &lt;method_context <strong>working_directory='/export/home/adumont/svc/var'</strong>&gt;
   &lt;method_credential <strong>user='adumont' </strong>group='staff' /&gt;
   &lt;/method_context&gt;</span>

   &lt;<span style="color: #800080;"><strong>property_group</strong>  name='<strong>vm</strong>' </span>type='application'&gt;
   &lt;!-- stop_method is used to set how SMF will stop the VM:
   Possible values are: acpipowerbutton, savestate, acpisleepbutton, poweroff --&gt;
      &lt;<span style="color: #800080;"><strong>propval </strong>name='<strong>stop_method</strong>'</span> type='astring' <span style="color: #800080;">value='<strong>savestate</strong>' </span>/&gt;
   &lt;/property_group&gt;

&lt;<strong><span style="color: #0000ff;">/instance</span></strong>&gt;

&lt;stability value='Evolving' /&gt;

&lt;template&gt;
&lt;common_name&gt;
&lt;loctext xml:lang='C'&gt;Sun xVM Virtualbox&lt;/loctext&gt;
&lt;/common_name&gt;
&lt;documentation&gt;
&lt;manpage title='Sun xVM Virtualbox' section='1' /&gt;
&lt;/documentation&gt;
&lt;/template&gt;

&lt;/service&gt;

&lt;/service_bundle&gt;</pre>
<p><strong>Now let&#8217;s see the method</strong> (/export/home/adumont/svc/method/vbox). The method defined in the manifest will be invoked upon service start and stop events (and also refresh, although I haven&#8217;t set any, so the &#8220;:true&#8221; method will be called. In my case I have written a single shell script that accept both start and stop arguments and will respond accordingly. The script is quite easy to understand, and is quite similar to old-style init startup scripts (you can have a look at many example of method scripts in /lib/svc/method/).</p>
<p>Let see in detail the script:</p>
<ul>
<li>I first source the smf_include.sh file; this files is sourced by almost all the methods and define some usefull SMF variables and status constants that can be used within the method:</li>
</ul>
<pre>. /lib/svc/share/smf_include.sh</pre>
<ul>
<li>then, I check if the script is called from under the SMF framework or not:</li>
</ul>
<pre># SMF_FMRI is the name of the target service. This allows multiple instances
# to use the same script.

if [ -z $SMF_FMRI ]; then
   echo "SMF framework variables are not initialized."
   exit $SMF_EXIT_ERR
fi</pre>
<ul>
<li>I then define a small function useful later to get the value of the vm/stop_method property of the instance:</li>
</ul>
<pre>getproparg() {
   val=`svcprop -p $1 $SMF_FMRI`
   [ -n "$val" ] &amp;&amp; echo $val
}</pre>
<ul>
<li>later come the start and stop functions. Within the stop funtion, I first retrieve the value of the vm/stop_method property. If not found, I use a default value (&#8220;savestate&#8221;). Using this variable, I&#8217;ll be able to choose how the service stops the VM.</li>
</ul>
<pre>start_vm() {
   /usr/bin/VBoxManage startvm $1 --type vrdp
}

stop_vm() {
   # STOP_METHOD=acpipowerbutton|savestate
   <span style="color: #0000ff;">STOP_METHOD="$( getproparg <span style="color: #800080;"><strong>vm/stop_method</strong></span> )"</span>

   [ -z "$STOP_METHOD" ] &amp;&amp; STOP_METHOD="savestate"

   /usr/bin/VBoxManage controlvm $1 $STOP_METHOD
}</pre>
<ul>
<li>As the same method can be used to manage multiple instances (virtual machine) of the same vbox service, I have to retrive the name of the instance from the FMRI of the service:</li>
</ul>
<pre>INSTANCE=$( echo $SMF_FMRI | cut -d: -f3 )</pre>
<ul>
<li>finally I run the function that corresponds to the argument passed from the SMF framework upon calling the method (start/stop) and exit using an SMF friendly exit status (previously defined in smf_include.sh):</li>
</ul>
<pre>case $1 in
   start)
      start_vm $INSTANCE
      ;;
   stop)
      VM_STATE=$( vm_state $INSTANCE )

      if [ "x$VM_STATE" = "xrunning" ]
      then
         stop_vm $INSTANCE
      else
         echo "INFO: VM $INSTANCE in state $VM_STATE, I won't stop it."
      fi
      ;;
esac

if [ $? -ne 0 ]; then
   echo "ERROR: VM $INSTANCE failed to start/stop."
   exit $SMF_EXIT_ERR_FATAL
fi

exit $SMF_EXIT_OK</pre>
<p><strong>Here is the full method script </strong>(/export/home/adumont/svc/method/vbox, chmod 755):</p>
<pre>#!/sbin/sh
#

. /lib/svc/share/smf_include.sh

# SMF_FMRI is the name of the target service. This allows multiple instances
# to use the same script.

if [ -z $SMF_FMRI ]; then
   echo "SMF framework variables are not initialized."
   exit $SMF_EXIT_ERR
fi

getproparg() {
   val=`svcprop -p $1 $SMF_FMRI`
   [ -n "$val" ] &amp;&amp; echo $val
}

start_vm() {
   /usr/bin/VBoxManage startvm $1 --type vrdp
}

stop_vm() {
   # STOP_METHOD=acpipowerbutton|savestate
   <span style="color: #0000ff;">STOP_METHOD="$( getproparg <span style="color: #800080;"><strong>vm/stop_method</strong></span> )"</span>

   [ -z "$STOP_METHOD" ] &amp;&amp; STOP_METHOD="savestate"

   /usr/bin/VBoxManage controlvm $1 $STOP_METHOD
}

vm_state() {
   /usr/bin/VBoxManage showvminfo $1 --details --machinereadable |
      grep VMState\= | tr -s '"' ' ' | cut -d " " -f2

   if [ $? -ne 0 ]; then
      echo &gt;&amp;2 "ERROR: Failed to get VMState for VM $1"
      exit $SMF_EXIT_ERR_FATAL
   fi
}

INSTANCE=$( echo $SMF_FMRI | cut -d: -f3 )

case $1 in
   start)
      start_vm $INSTANCE
      ;;
   stop)
      VM_STATE=$( vm_state $INSTANCE )

      if [ "x$VM_STATE" = "xrunning" ]
      then
         stop_vm $INSTANCE
      else
         echo "INFO: VM $INSTANCE in state $VM_STATE, I won't stop it."
      fi
      ;;
esac

if [ $? -ne 0 ]; then
   echo "ERROR: VM $INSTANCE failed to start/stop."
   exit $SMF_EXIT_ERR_FATAL
fi

exit $SMF_EXIT_OK</pre>
<p>Now that we&#8217;ve seen how to write the manifest and method files, let&#8217;s register our new SMF service, using first svccfg validate, and then svccfg import:</p>
<pre>$ svccfg validate vbox-debian.xml
$ svccfg import vbox-debian.xml
$ svcs svc:/site/xvm/vbox:debian
<strong>STATE          </strong>STIME    <strong>FMRI</strong>
<span style="color: #ff6600;">disabled</span>       17:42:23 <span style="color: #0000ff;">svc:/site/xvm/vbox</span>:<strong><span style="color: #008000;">debian</span></strong></pre>
<p>The service has been created and is actually disabled. Let&#8217;s enable it:</p>
<pre>$ <strong>svcadm</strong> -v <strong>enable</strong> -ts <strong>vbox:debian</strong>
<span style="color: #008000;">svc:/site/xvm/vbox:debian temporarily enabled.</span></pre>
<p>We can see the corresponding processes using <code>ps</code>:</p>
<pre>$ ps -ef | grep VB
adumont 28515 28513   2 17:46:09 ?           0:03 /opt/VirtualBox/amd64/VBoxHeadless --comment debian --startvm 8b8505c3-87d5-49a
adumont 28513     1   0 17:46:08 ?           0:00 /opt/VirtualBox/amd64/VBoxSVC --automate
adumont 28510     1   0 17:46:08 ?           0:00 /opt/VirtualBox/amd64/VBoxXPCOMIPCD</pre>
<p>Now let&#8217;s try to stop the VM:</p>
<pre>$ svcadm -v disable -ts vbox:debian
$ ps -ef | grep VB
[no output]</pre>
<p>it works! Let&#8217;s start it again, and now check the state again, using various command:</p>
<pre>$ <strong>svcs -l vbox</strong>
fmri         <strong>svc:/site/xvm/vbox:<span style="color: #008000;">debian</span></strong>
name         <strong>Sun xVM Virtualbox</strong>
enabled      <span style="color: #008000;">true</span>
state        <span style="color: #008000;">online</span>
next_state   none
state_time   Thu Jul 16 17:49:35 2009
logfile      <span style="color: #008000;">/var/svc/log/site-xvm-vbox:debian.log</span>
restarter    svc:/system/svc/restarter:default
contract_id  2159
<span style="color: #008000;">dependency   </span>require_all/none svc:/milestone/network:default (online)
<span style="color: #008000;">dependency   </span>require_all/none svc:/system/filesystem/local:default (online)</pre>
<pre>$ svcs -vx vbox
svc:/site/xvm/vbox:debian (Sun xVM Virtualbox)
State: online since Thu Jul 16 17:49:35 2009
See: man -M /usr/share/man -s 1 Sun xVM Virtualbox
See: /var/svc/log/site-xvm-vbox:debian.log
Impact: None.</pre>
<p>Using the following command we can get the processes associated with the service:</p>
<pre>$ svcs -p vbox
STATE          STIME    FMRI
online         17:49:35 svc:/site/xvm/vbox:debian
17:49:35    <strong><span style="color: #800080;">28568 </span></strong>VBoxXPCOMIPCD
17:49:35    <strong><span style="color: #800080;">28571 </span></strong>VBoxSVC
17:49:35    <strong><span style="color: #800080;">28573 </span></strong>VBoxHeadless</pre>
<p>When starting a service, SMF start the associated processes in a &#8220;<span style="color: #ff6600;"><strong>contract</strong></span>&#8221; (a group of processes). This is specially useful to handle service conditions like process failure and signals (core, kill,&#8230;). The contract information (ctid) can be seen using ctstat:</p>
<pre>$ svcs -v vbox:debian
STATE          NSTATE        STIME      <span style="color: #ff6600;"><strong>CTID   </strong></span>FMRI
online         -             17:49:35   <strong><span style="color: #ff6600;">2154   </span></strong>svc:/site/xvm/vbox:debian

$ <strong>ctstat -i </strong><strong><span style="color: #ff6600;">2154 </span></strong><strong>-v</strong>
CTID    ZONEID  TYPE    STATE   HOLDER  EVENTS  QTIME   NTIME
<strong><span style="color: #ff6600;">2154    </span></strong>0       process owned   7       0       -       -
cookie:                0x20
informative event set: none
critical event set:    core signal hwerr empty
fatal event set:       none
parameter set:         inherit regent
member processes:      <span style="color: #800080;"><strong>28568 28571 28573 </strong></span>
inherited contracts:   none
service fmri:          <strong>svc:/site/xvm/vbox:debian</strong>
service fmri ctid:     <span style="color: #ff6600;"><strong>2154</strong></span>
creator:               svc.startd
aux:                   start</pre>
<p>Now, let&#8217;s restart the VM:</p>
<pre>$ svcadm -v restart vbox:debian
Action restart set for svc:/site/xvm/vbox:debian.</pre>
<p>and see the corresponding log entries:</p>
<pre>$ cat /var/svc/log/site-xvm-vbox:debian.log
...
[ Jul 16 18:05:44 <span style="color: #0000ff;">Stopping because service restarting</span>. ]
[ Jul 16 18:05:44 <span style="color: #0000ff;">Executing stop method</span> ("/export/home/adumont/svc/method/vbox stop"). ]
<span style="color: #666699;">VirtualBox Command Line Management Interface Version 3.0.0
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%</span>
[ Jul 16 18:05:46 <span style="color: #0000ff;">Method "stop" exited with status 0.</span> ]
[ Jul 16 18:05:52 <span style="color: #008000;">Executing start method</span> ("/export/home/adumont/svc/method/vbox start"). ]
<span style="color: #666699;">VirtualBox Command Line Management Interface Version 3.0.0
(C) 2005-2009 Sun Microsystems, Inc.
All rights reserved.

Waiting for the remote session to open...
Remote session has been successfully opened.</span>
[ Jul 16 18:05:53 <span style="color: #008000;">Method "start" exited with status 0.</span> ]</pre>
<p>Finally, the way the SMF service will stop the VM can be changed by modifying the instance property <span style="color: #0000ff;">vm/stop_method</span>:</p>
<p>For example, if you want to orderly shutdown your VM upon service stop, you can set the property to <span style="color: #0000ff;">acpipowerbutton</span>:</p>
<pre>$ svccfg -s vbox:debian setprop vm/stop_method=acpipowerbutton
$ svccfg -s vbox:debian refresh</pre>
<p>if on the contrary you prefer to have the machine state <em>frozen </em>and saved to disk (by Virtualbox, not by the VM guest OS) use <span style="color: #0000ff;">savestate</span>:</p>
<pre>$ svccfg -s vbox:debian setprop vm/stop_method=savestate
$ svccfg -s vbox:debian refresh</pre>
<p><strong>References:</strong></p>
<ul>
<li><a href="http://www.opensolaris.org/os/project/smf-doc/smf-dev/smf-book.html">OpenSolaris Service Management Facility Guide</a></li>
<li><a id="aptureLink_dtzIQhXbHw" href="http://www.sebastian-kirsch.org/moebius/docs/smf.pdf">A presentation on SMF</a> by Sebastian Kirsh, including contracts,</li>
<li><a id="aptureLink_RXOVSCQncG" href="http://mediacast.sun.com/users/netherton/media/SMF_in_a_Day.pdf">Another presentation on SMF</a> by <a id="aptureLink_dTQ075ORSy" href="http://blogs.sun.com/bobn/">Bob Netherton</a></li>
</ul>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 356px; width: 1px; height: 1px;">
<pre><strong><strong>site/xvm/vbox</strong></strong></pre>
</div>
<script src="http://feeds.feedburner.com/~s/adumont@gmail.com?i=http://adumont.serveblog.net/2009/07/21/virtualbox-smf/" type="text/javascript" charset="utf-8"></script><p class="akst_link"><a href="http://adumont.serveblog.net/?p=441&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_441" class="akst_share_link" rel="noindex nofollow">ShareThis  / Compartelo</a>
</p>

<p><a href="http://feedads.g.doubleclick.net/~a/W3z175k4TzoZQQocXp0TPzi4LKo/0/da"><img src="http://feedads.g.doubleclick.net/~a/W3z175k4TzoZQQocXp0TPzi4LKo/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/W3z175k4TzoZQQocXp0TPzi4LKo/1/da"><img src="http://feedads.g.doubleclick.net/~a/W3z175k4TzoZQQocXp0TPzi4LKo/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=mRI2XgWN5SY:tA4J7LzRemo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=mRI2XgWN5SY:tA4J7LzRemo:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=mRI2XgWN5SY:tA4J7LzRemo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=mRI2XgWN5SY:tA4J7LzRemo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=mRI2XgWN5SY:tA4J7LzRemo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=mRI2XgWN5SY:tA4J7LzRemo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=mRI2XgWN5SY:tA4J7LzRemo:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://adumont.serveblog.net/2009/07/21/virtualbox-smf/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://adumont.serveblog.net/2009/07/21/virtualbox-smf/</feedburner:origLink></item>
		<item>
		<title>Compare IT average salary (España)</title>
		<link>http://feedproxy.google.com/~r/LeBlogdAlex/~3/0CagyrFFPrU/</link>
		<comments>http://adumont.serveblog.net/2009/07/13/compare-it-average-salary-espana/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 09:59:33 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://adumont.serveblog.net/?p=429</guid>
		<description><![CDATA[
activeTechPros is a destination for IT professionals to benchmark their salary and know their tech worth in different job markets. activeTechPros&#8217; IT salary benchmark wizard is driven by aggregated information provided by IT professionals from around the world. With the IT salary benchmark wizard, finding out whether you are paid your tech worth is made [...]]]></description>
			<content:encoded><![CDATA[
<blockquote><p><em>activeTechPros is a destination for IT professionals to benchmark their salary and know their tech worth in different job markets. activeTechPros&#8217; IT salary benchmark wizard is driven by aggregated information provided by IT professionals from around the world. With the IT salary benchmark wizard, finding out whether you are paid your tech worth is made simple.</em></p></blockquote>
<p><a href="http://www.activetechpros.com/index.htm"><img class="alignright" src="http://adumont.serveblog.net/wp-content/uploads/mh_logo.gif" alt="" width="258" height="98" /></a></p>
<p>Me parecio interesante ya que tiene bastantes <strong>usuarios de España </strong>ya registrados .</p>
<p><em>Get started by creating your profile and get to know your tech worth:</em> <a href="http://www.activetechpros.com/index.htm">IT professionals: Compare IT jobs average salary &amp; get pay scale report</a>.</p>
<script src="http://feeds.feedburner.com/~s/adumont@gmail.com?i=http://adumont.serveblog.net/2009/07/13/compare-it-average-salary-espana/" type="text/javascript" charset="utf-8"></script><p class="akst_link"><a href="http://adumont.serveblog.net/?p=429&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_429" class="akst_share_link" rel="noindex nofollow">ShareThis  / Compartelo</a>
</p>

<p><a href="http://feedads.g.doubleclick.net/~a/mB9IoEdR4b4r6_yIb8tCRSvslQ4/0/da"><img src="http://feedads.g.doubleclick.net/~a/mB9IoEdR4b4r6_yIb8tCRSvslQ4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/mB9IoEdR4b4r6_yIb8tCRSvslQ4/1/da"><img src="http://feedads.g.doubleclick.net/~a/mB9IoEdR4b4r6_yIb8tCRSvslQ4/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=0CagyrFFPrU:BpWgpAl0yJM:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=0CagyrFFPrU:BpWgpAl0yJM:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=0CagyrFFPrU:BpWgpAl0yJM:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=0CagyrFFPrU:BpWgpAl0yJM:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=0CagyrFFPrU:BpWgpAl0yJM:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=0CagyrFFPrU:BpWgpAl0yJM:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=0CagyrFFPrU:BpWgpAl0yJM:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://adumont.serveblog.net/2009/07/13/compare-it-average-salary-espana/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adumont.serveblog.net/2009/07/13/compare-it-average-salary-espana/</feedburner:origLink></item>
		<item>
		<title>My new uTorrent installation</title>
		<link>http://feedproxy.google.com/~r/LeBlogdAlex/~3/Y53TpSRqCJA/</link>
		<comments>http://adumont.serveblog.net/2009/07/12/my-utorrent-server/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 21:46:37 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Unix & Linux]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Opensolaris]]></category>
		<category><![CDATA[uTorrent]]></category>
		<category><![CDATA[Virtualbox]]></category>

		<guid isPermaLink="false">http://adumont.serveblog.net/?p=375</guid>
		<description><![CDATA[
Here is a diagram that shows how I&#8217;ve set up my home server and particularly my new uTorrent server:

The physical server is an eMachine low-cost PC turned into a small home server, running Opensolaris 2009.06.
I have then a Debian Linux virtual machine running on Sun xVM Virtualbox in the Opensolaris host.
Inside the Debian VM, I [...]]]></description>
			<content:encoded><![CDATA[
<p>Here is a diagram that shows how I&#8217;ve set up my home server and particularly my new uTorrent server:</p>
<div id="attachment_360" class="wp-caption aligncenter" style="width: 456px"><a href="http://adumont.serveblog.net/wp-content/uploads/arqcasa.png"><img class="size-full wp-image-360" src="http://adumont.serveblog.net/wp-content/uploads/arqcasa.png" alt="My uTorrent arquitecture" width="446" height="247" /></a><p class="wp-caption-text">My uTorrent arquitecture</p></div>
<p style="text-align: center;">
<p>The physical server is an <a id="aptureLink_9w55LN6pjK" href="../2009/04/08/opensolaris-emachine/">eMachine low-cost PC</a> turned into a small home server, running <a id="aptureLink_bneJ4PUQpt" href="http://www.slideshare.net/alexismp/open-solaris-200906">Opensolaris 2009.06</a>.</p>
<p>I have then a Debian Linux virtual machine running on <a id="aptureLink_vSne2tcZa0" href="http://en.wikipedia.org/wiki/Sun%20xVM">Sun xVM Virtualbox</a> in the Opensolaris host.</p>
<p>Inside the Debian VM, I then run <a id="aptureLink_X8WSeckg4N" href="http://en.wikipedia.org/wiki/Utorrent">uTorrent</a> (native windows binary file) under <a id="aptureLink_MlgVFmn99X" href="http://en.wikipedia.org/wiki/Wine%20%28software%29">WINE</a>.</p>
<p>Regarding the storage, the Opensolaris host shares a ZFS filesystem to the Debian VM using &#8220;Virtualbox Shared Folders&#8221;: the folder is like exported from the host and mounted in the VM with the help of Virtualbox Guest Additions for Linux.</p>
<p>Why such an instalation?</p>
<ul>
<li><a href="../2009/04/08/opensolaris-emachine/">I migrated my home server to Opensolaris</a>, but &#8212; at that time at least &#8212; Wine for Opensolaris was not &#8220;ready&#8221; to be able to run uTorrent (I had a socket problem). I&#8217;ve not tried again, maybe it is solved now.</li>
<li>Before the migration <a href="http://adumont.serveblog.net/2007/10/10/%c2%b5torrent-en-linux-i-introduccion/">my uTorrent server was a physical Debian Linux server</a>, so once the Linux Virtualbox VM was setup, I have only had to replicate the same setup, which was quite easy.</li>
<li>I like a lot uTorrent, ZFS, Virtualbox and Opensolaris, so it was good mix of all of them ;-).</li>
</ul>
<script src="http://feeds.feedburner.com/~s/adumont@gmail.com?i=http://adumont.serveblog.net/2009/07/12/my-utorrent-server/" type="text/javascript" charset="utf-8"></script><p class="akst_link"><a href="http://adumont.serveblog.net/?p=375&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_375" class="akst_share_link" rel="noindex nofollow">ShareThis  / Compartelo</a>
</p>

<p><a href="http://feedads.g.doubleclick.net/~a/buZQtQ9txisbuXzvVrZp1aVgZLg/0/da"><img src="http://feedads.g.doubleclick.net/~a/buZQtQ9txisbuXzvVrZp1aVgZLg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/buZQtQ9txisbuXzvVrZp1aVgZLg/1/da"><img src="http://feedads.g.doubleclick.net/~a/buZQtQ9txisbuXzvVrZp1aVgZLg/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=Y53TpSRqCJA:4cjjimal1wg:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=Y53TpSRqCJA:4cjjimal1wg:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=Y53TpSRqCJA:4cjjimal1wg:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=Y53TpSRqCJA:4cjjimal1wg:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=Y53TpSRqCJA:4cjjimal1wg:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=Y53TpSRqCJA:4cjjimal1wg:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=Y53TpSRqCJA:4cjjimal1wg:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://adumont.serveblog.net/2009/07/12/my-utorrent-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adumont.serveblog.net/2009/07/12/my-utorrent-server/</feedburner:origLink></item>
		<item>
		<title>Free Solaris e-learning from Sun</title>
		<link>http://feedproxy.google.com/~r/LeBlogdAlex/~3/9pVzA9bdt8M/</link>
		<comments>http://adumont.serveblog.net/2009/07/05/free-solaris-e-learning-from-sun/#comments</comments>
		<pubDate>Sun, 05 Jul 2009 16:16:55 +0000</pubDate>
		<dc:creator>alex</dc:creator>
				<category><![CDATA[Unix & Linux]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[Opensolaris]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[sun]]></category>

		<guid isPermaLink="false">http://adumont.serveblog.net/?p=401</guid>
		<description><![CDATA[
I&#8217;ve found today some free Solaris learning resources at Sun&#8217;s Online Learning Center (SOLC):

Solaris Sysadmin: a Community of Knowledge for Solaris System Administrators, a place where you&#8217;ll start
&#8230;learning about Sun&#8217;s Solaris Operating System (Solaris OS). Select a Solaris certification that you want to pursue and click on the corresponding topics to get started. You&#8217;ll quickly [...]]]></description>
			<content:encoded><![CDATA[
<p>I&#8217;ve found today some free Solaris learning resources at <a href="https://learning.sun.com/solc/">Sun&#8217;s Online Learning Center</a> (SOLC):</p>
<ul>
<li><img class="size-full wp-image-179 alignright" title="Solaris" src="http://adumont.serveblog.net/wp-content/uploads/solaris.jpg" alt="Solaris" width="96" height="52" /><a href="https://learning.sun.com/solc/smartstart">Solaris Sysadmin</a>: a Community of Knowledge for Solaris System Administrators, a place where you&#8217;ll start<br />
<blockquote><p>&#8230;learning about Sun&#8217;s Solaris Operating System (Solaris OS). Select a Solaris certification that you want to pursue and click on the corresponding topics to get started. You&#8217;ll quickly see how easy it is to become a certified Solaris System Administrator. You can also buy on-demand labs to practice what you learn!</p></blockquote>
<ul>
<li>Booting SPARC and x86 Based Systems,</li>
<li>Controlling System Processes,</li>
<li>Create and Manage Users,</li>
<li>Installing Solaris 10,</li>
<li>Manage Local Devices,</li>
<li>Manage UFS File Systems,</li>
<li>Managing Software Packages Using Package Commands,</li>
<li>Managing Solaris Patches Using Patch Commands,</li>
<li>Managing User Access,</li>
<li>Performing File System Backups,</li>
<li>Performing Mounts and Unmounts,</li>
<li>Printer Services,</li>
<li>Safely Shutting Down a Solaris System,</li>
<li>System Restores,</li>
<li>Working with UFS and ZFS Snapshots&#8230;</li>
</ul>
</li>
<li><a href="https://learning.sun.com/solc/course/sandbox-1"><img class="size-full wp-image-260 alignright" title="Opensolaris" src="http://adumont.serveblog.net/wp-content/uploads/opensolaris.png" alt="Opensolaris" width="156" height="50" />OpenSolaris Learning On Demand Service</a>: a cloud service where you can try for free an Opensolaris machine, right from your browser:<br />
<blockquote><p>You can try out new features of OpenSolaris 2008.11 without the hassles of downloading, installing or configuring&#8211;all for free. Simply login to the portal using your My Sun Connection account (registration is free) and then click on the <strong>&#8220;Join&#8221;</strong> link to the right and you will be entitled to access the cloud.</p></blockquote>
</li>
</ul>
<p>The truth, Sun&#8217;s doing a lot to spread the use of their OS, and it&#8217;s a good thing. Some years ago I would have love the same from HP to learn HP-UX!</p>
<script src="http://feeds.feedburner.com/~s/adumont@gmail.com?i=http://adumont.serveblog.net/2009/07/05/free-solaris-e-learning-from-sun/" type="text/javascript" charset="utf-8"></script><p class="akst_link"><a href="http://adumont.serveblog.net/?p=401&amp;akst_action=share-this"  title="Email, post to del.icio.us, etc." id="akst_link_401" class="akst_share_link" rel="noindex nofollow">ShareThis  / Compartelo</a>
</p>

<p><a href="http://feedads.g.doubleclick.net/~a/wBItCqztr9BqL36dLNOMWEcMsZ8/0/da"><img src="http://feedads.g.doubleclick.net/~a/wBItCqztr9BqL36dLNOMWEcMsZ8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/wBItCqztr9BqL36dLNOMWEcMsZ8/1/da"><img src="http://feedads.g.doubleclick.net/~a/wBItCqztr9BqL36dLNOMWEcMsZ8/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=9pVzA9bdt8M:-f0dgb8GGnI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=9pVzA9bdt8M:-f0dgb8GGnI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=9pVzA9bdt8M:-f0dgb8GGnI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=9pVzA9bdt8M:-f0dgb8GGnI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=9pVzA9bdt8M:-f0dgb8GGnI:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogdAlex?a=9pVzA9bdt8M:-f0dgb8GGnI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/LeBlogdAlex?i=9pVzA9bdt8M:-f0dgb8GGnI:V_sGLiPBpWU" border="0"></img></a>
</div>]]></content:encoded>
			<wfw:commentRss>http://adumont.serveblog.net/2009/07/05/free-solaris-e-learning-from-sun/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://adumont.serveblog.net/2009/07/05/free-solaris-e-learning-from-sun/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic Page Served (once) in 0.553 seconds -->
