<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3094974977265128267</id><updated>2012-01-17T22:22:00.869-08:00</updated><title type='text'>Minimal Solaris</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>27</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-747288021119420771</id><published>2011-06-30T08:14:00.000-07:00</published><updated>2011-07-01T08:25:44.557-07:00</updated><title type='text'>Bring back lx brand?</title><content type='html'>It is hard to say why the BrandZ code was removed from the OpenSolaris. However this can be corrected.  With small fixes I've now got CentOS running in a zone on Illumos:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;The Illumos Project SunOS 5.11 illumos-gate June 2011&lt;br /&gt;root@indy:~# zoneadm -z centos boot; zlogin -C centos&lt;br /&gt;[Connected to zone 'centos' console]&lt;br /&gt; Welcome to CentOS&lt;br /&gt;Press 'I' to enter interactive startup.&lt;br /&gt;Configuring kernel parameters:  [  OK  ]&lt;br /&gt;Setting hostname centos:  [  OK  ]&lt;br /&gt;Checking root filesystem: [  OK  ]&lt;br /&gt;Activating swap partitions:  [  OK  ]&lt;br /&gt;...  &lt;br /&gt;CentOS release 3.7 (Final)&lt;br /&gt;Kernel 2.4.21 on an i686&lt;br /&gt;&lt;br /&gt;centos login: root&lt;br /&gt;Password: &lt;br /&gt;Welcome to your shiny new Linux zone.&lt;br /&gt;&lt;br /&gt;        - The root password is 'root'.  Please change it immediately.&lt;br /&gt;    &lt;br /&gt;  - To enable networking goodness, see /etc/sysconfig/network.example.&lt;br /&gt; &lt;br /&gt;  - This message is in /etc/motd.  Feel free to change it.&lt;br /&gt;&lt;br /&gt;For anything more complicated, see:&lt;br /&gt;  http://opensolaris.org/os/community/brandz/&lt;br /&gt;  &lt;br /&gt;You have mail.&lt;br /&gt;-bash-2.05b# cat /proc/cpuinfo &lt;br /&gt;processor         : 3&lt;br /&gt;vendor_id         : GenuineIntel&lt;br /&gt;cpu family       : 6&lt;br /&gt;model          : 30&lt;br /&gt;model name    : Intel(r) Core(tm) i7 CPU       Q 720  @ 1.60GHz&lt;br /&gt;stepping                 : 5&lt;br /&gt;cpu MHz          : 1596.146&lt;br /&gt;cache size       : 0 KB&lt;br /&gt;fdiv_bug            : no&lt;br /&gt;hlt_bug                  : no&lt;br /&gt;f00f_bug         : no&lt;br /&gt;coma_bug         : no&lt;br /&gt;fpu                  : yes&lt;br /&gt;fpu_exception : yes&lt;br /&gt;cpuid level         : 11&lt;br /&gt;flags        : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm pni monitor ds_cpl est tm2 cx16 xtpr&lt;br /&gt;...&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-747288021119420771?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/747288021119420771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=747288021119420771' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/747288021119420771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/747288021119420771'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2011/06/bring-back-lx-brand.html' title='Bring back lx brand?'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-8082796277896852353</id><published>2010-07-13T01:26:00.000-07:00</published><updated>2010-07-13T06:05:51.947-07:00</updated><title type='text'>Sample client for istatd</title><content type='html'>IPhone owners can use a great app for servers monitoring - &lt;a href="http://bjango.com/apps/istat/"&gt;istat&lt;/a&gt;. On the server you must install the istatd daemon. More information can be read here: &lt;a href="http://blogs.sun.com/karim/entry/monitoring_opensolaris_from_an_itouch"&gt;http://blogs.sun.com/karim/entry/monitoring_opensolaris_from_an_itouch&lt;/a&gt;. &lt;br /&gt;Here an &lt;a href="http://www.milax.org/files/istatd_client.c"&gt;example&lt;/a&gt; of a console client for istatd,  you can use this data for plotting, etc: &lt;br /&gt;$ gcc -o istatd_client istatd_client.c -lsocket -lnsl&lt;br /&gt;$ ./istatd_client&lt;br /&gt;Usage: istatd_client &amp;lt;server_ip&gt; &amp;lt;server_port&gt; &amp;lt;server_code&gt;&lt;br /&gt;Example output from OpenSolaris server:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;/istatd_client XX.XXX.XX.X 5109 12345&lt;br /&gt;Connected to XX.XXX.XX.X on port 5109&lt;br /&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&gt;&amp;lt;isr ready="1"&gt;&amp;lt;/isr&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&gt;&amp;lt;isr pl="2" ath="0" ss="6" c="7788968" n="7788967"&gt;&amp;lt;/isr&gt;&lt;br /&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&gt;&amp;lt;isr ds="8" ts="8" fs="8" rid="1"&gt;&amp;lt;CPU&gt;&amp;lt;c id="-1" u="1" s="3" n="0"&gt;&amp;lt;/c&gt;&amp;lt;/CPU&gt;&amp;lt;NET if="1"&gt;&amp;lt;n id="-1" d="12545352948" u="276928235931" t="1279010768"&gt;&amp;lt;/n&gt;&amp;lt;/NET&gt;&amp;lt;MEM w="1568" a="326" i="0" f="190" t="2086" su="51" st="1043" pi="79363" po="17312"&gt;&amp;lt;/MEM&gt;&amp;lt;LOAD one="0.230469" fv="0.238281" ff="0.234375"&gt;&amp;lt;/LOAD&gt;&amp;lt;UPT u="7788967"&gt;&amp;lt;/UPT&gt;&amp;lt;DISKS&gt;&amp;lt;d n="/" uuid="rpool/ROOT/opensolaris-1" f="43352" p="21.1999"&gt;&amp;lt;/d&gt;&amp;lt;d n="/hosting" uuid="hosting" f="134024" p="4.63293"&gt;&amp;lt;/d&gt;&amp;lt;/DISKS&gt;&amp;lt;/isr&gt;&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Looking through istatd code, you can easily recognize what's mean all these variables (for example "u" in &amp;lt;CPU&gt; denotes cpu_user usage).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-8082796277896852353?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/8082796277896852353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=8082796277896852353' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/8082796277896852353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/8082796277896852353'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2010/07/sample-client-for-istatd.html' title='Sample client for istatd'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-1228426948045225646</id><published>2010-06-16T05:09:00.000-07:00</published><updated>2010-07-01T07:13:11.661-07:00</updated><title type='text'>Osstat 0.3</title><content type='html'>Osstat applet now reaches version 0.3 - minor fixes, new graphs and some features.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_v2GhGzvqeNM/TB9Db8oA9PI/AAAAAAAAAHU/5t1W0OLAm24/s1600/osstat_0.3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 330px; height: 400px;" src="http://1.bp.blogspot.com/_v2GhGzvqeNM/TB9Db8oA9PI/AAAAAAAAAHU/5t1W0OLAm24/s400/osstat_0.3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5485177018570044658" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Feel free to optimize code or change parts to use better ways.&lt;br /&gt;Download &lt;a href="http://www.milax.org/?p=336"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-1228426948045225646?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/1228426948045225646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=1228426948045225646' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/1228426948045225646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/1228426948045225646'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2010/06/osstat-03.html' title='Osstat 0.3'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_v2GhGzvqeNM/TB9Db8oA9PI/AAAAAAAAAHU/5t1W0OLAm24/s72-c/osstat_0.3.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-2476071070593392081</id><published>2010-04-15T07:01:00.000-07:00</published><updated>2010-04-15T07:31:57.346-07:00</updated><title type='text'>Using ddu scripts</title><content type='html'>Have you ever looked in the "/usr/ddu" directory?  Console-lovers can use some of these scripts and get the almost same output as from the "ddu" graphic utility. For example, I changed the probe.sh script a bit and now I can get ddu-like info from console:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;(root@elvis)# ./ddu.sh&lt;br /&gt;AUDIO&lt;br /&gt;   Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) AC'97 Audio Controller : audio810&lt;br /&gt;CPU&lt;br /&gt;   1 X Intel(R) Celeron(R) CPU 2.26GHz, 1-core : ---&lt;br /&gt;CD_DVD&lt;br /&gt;   Intel Corporation 82801DB (ICH4) IDE Controller : pci-ide&lt;br /&gt;   Optiarc DVD RW AD-5200A : 0&lt;br /&gt;MEMORY&lt;br /&gt;    1G (512M + 512M) ;  2G maximum : ---&lt;br /&gt;NETWORK&lt;br /&gt;   Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ : rtls&lt;br /&gt;STORAGE&lt;br /&gt;   Intel Corporation 82801DB (ICH4) IDE Controller : pci-ide&lt;br /&gt;USB&lt;br /&gt;   Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1 : uhci&lt;br /&gt;   Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2 : uhci&lt;br /&gt;   Intel Corporation 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3 : uhci&lt;br /&gt;   Intel Corporation 82801DB/DBM (ICH4/ICH4-M) USB2 EHCI Controller : ehci&lt;br /&gt;VIDEO&lt;br /&gt;   Intel Corporation 82845G/GL[Brookdale-G]/GE Chipset Integrated Graphics Device : i915&lt;br /&gt;OTHERS&lt;br /&gt;   PC standard floppy disk controller : fdc&lt;br /&gt;   16550A-compatible COM port : asy&lt;br /&gt;   ECP printer port : ecpp&lt;br /&gt;   PS/2 Port for PS/2-style Mice : mouse8042&lt;br /&gt;   System keyboard : kb8042&lt;br /&gt;(root@elvis)#&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-2476071070593392081?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/2476071070593392081/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=2476071070593392081' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/2476071070593392081'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/2476071070593392081'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2010/04/using-ddu-scripts.html' title='Using ddu scripts'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-1496467777491037180</id><published>2010-02-19T04:21:00.000-08:00</published><updated>2010-02-19T04:27:26.439-08:00</updated><title type='text'>Boot chart for MilaX 0.5</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_v2GhGzvqeNM/S36DNh5NLJI/AAAAAAAAAFM/95PPt4LOq4c/s1600-h/bootchart.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 288px;" src="http://4.bp.blogspot.com/_v2GhGzvqeNM/S36DNh5NLJI/AAAAAAAAAFM/95PPt4LOq4c/s400/bootchart.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5439929668369984658" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-1496467777491037180?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/1496467777491037180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=1496467777491037180' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/1496467777491037180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/1496467777491037180'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2010/02/boot-chart-for-milax-05.html' title='Boot chart for MilaX 0.5'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_v2GhGzvqeNM/S36DNh5NLJI/AAAAAAAAAFM/95PPt4LOq4c/s72-c/bootchart.png' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-8634414146533407518</id><published>2009-11-24T23:53:00.000-08:00</published><updated>2009-12-14T00:17:56.948-08:00</updated><title type='text'>Conky 1.7.2 on OpenSolaris</title><content type='html'>I've tried to compile the last Conky 1.7.2 version with Lua Cairo bindings on OpenSolaris and should say it impress me. It was necessary to tinker with code a little but I liked the result.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_v2GhGzvqeNM/SxUa9OhgFQI/AAAAAAAAAE0/_Q1Em6tHwhY/s1600/conky172-2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 320px;" src="http://4.bp.blogspot.com/_v2GhGzvqeNM/SxUa9OhgFQI/AAAAAAAAAE0/_Q1Em6tHwhY/s400/conky172-2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5410260166528472322" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I hope to prepare clean patch soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-8634414146533407518?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/8634414146533407518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=8634414146533407518' title='37 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/8634414146533407518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/8634414146533407518'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2009/11/itried-to-compile-last-conky-1.html' title='Conky 1.7.2 on OpenSolaris'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_v2GhGzvqeNM/SxUa9OhgFQI/AAAAAAAAAE0/_Q1Em6tHwhY/s72-c/conky172-2.png' height='72' width='72'/><thr:total>37</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-4015877496111617251</id><published>2009-11-10T02:02:00.000-08:00</published><updated>2009-11-10T05:46:38.795-08:00</updated><title type='text'>Installing OpenSolaris on a Sparc using LiveCD</title><content type='html'>I've written a sample installation &lt;a href="http://www.milax.org/files/zfsinstall_sparc"&gt;script&lt;/a&gt; for &lt;a href="http://alexeremin.blogspot.com/2009/11/opensolaris-sparc-snv125-livecd.html"&gt;Sparc snv125 LiveCD&lt;/a&gt;. Taking as basis my "zfsinstall" script for MilaX Sparc LiveCD and improving some hacks for BE, I've now a working OpenSolaris system on my old Ultra 60, with possibility for next upgrading. &lt;br /&gt;Required steps:&lt;br /&gt;1. Boot from LiveCD. (After booting I disabled some services like AI,LDOM which are not necessary on my Ultra).&lt;br /&gt;2. Configure network (plumb interface and enable ssh).&lt;br /&gt;3. Download and run zfsinstall_sparc script (i.e. ./zfsinstall_sparc c4t1d0s0)&lt;br /&gt;4. Reboot.&lt;br /&gt;&lt;br /&gt;Sample output:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;root@opensolaris:/jack# ./zfsinstall c4t1d0s0&lt;br /&gt;Test TI started in real mode...&lt;br /&gt;Target type specified: BE&lt;br /&gt;BE target prepared successfully&lt;br /&gt;BE target created successfully&lt;br /&gt;Starting to copy data from UFS root to /zfsroot - this may take some time.&lt;br /&gt;Updating vfstab&lt;br /&gt;Updating boot-archive&lt;br /&gt;updating /zfsroot//platform/sun4u/boot_archive&lt;br /&gt;Installing zfs bootblk on /dev/rdsk/c4t1d0s0&lt;br /&gt;###################################################&lt;br /&gt;&lt;br /&gt;OpenSolaris now installed.&lt;br /&gt;&lt;br /&gt;root@opensolaris:/jack# beadm umount opensolaris&lt;br /&gt;root@opensolaris:/jack# reboot -- disk1&lt;br /&gt;...&lt;br /&gt;Sun Ultra 60 UPA/PCI (UltraSPARC-II 360MHz), Keyboard Present&lt;br /&gt;OpenBoot 3.17, 512 MB memory installed, Serial #&lt;br /&gt;Ethernet address 8:0:20:b8:a3:b9, Host ID: 80b8a3b9&lt;br /&gt;&lt;br /&gt;Rebooting with command: boot disk1&lt;br /&gt;Boot device: /pci@1f,4000/scsi@3/disk@1,0  File and args: &lt;br /&gt;SunOS Release 5.11 Version snv_125 64-bit&lt;br /&gt;Copyright 1983-2009 Sun Microsystems, Inc.  All rights reserved.&lt;br /&gt;Use is subject to license terms.&lt;br /&gt;WARNING: consconfig: cannot find driver for screen device /SUNW,ffb@1e,0&lt;br /&gt;Can't find driver for console framebuffer&lt;br /&gt;Hostname: opensolaris&lt;br /&gt;Configuring devices.&lt;br /&gt;Loading smf(5) service descriptions: 137/137&lt;br /&gt;Reading ZFS config: done.&lt;br /&gt;Mounting ZFS filesystems: (6/6) &lt;br /&gt;&lt;br /&gt;opensolaris console login:&lt;br /&gt;...&lt;br /&gt;# beadm list&lt;br /&gt;BE           Active Mountpoint Space   Policy Created&lt;br /&gt;--           ------ ---------- ------- ------ -------&lt;br /&gt;opensolaris  NR     /          580.69M static 2009-11-10 01:45&lt;br /&gt;#&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;P.S. Now I've already updated the system to snv126.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-4015877496111617251?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/4015877496111617251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=4015877496111617251' title='13 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/4015877496111617251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/4015877496111617251'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2009/11/installing-opensolaris-on-sparc-using.html' title='Installing OpenSolaris on a Sparc using LiveCD'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><thr:total>13</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-1469123404738532930</id><published>2009-11-05T04:12:00.000-08:00</published><updated>2009-11-09T00:20:51.928-08:00</updated><title type='text'>OpenSolaris Sparc snv125 LiveCD</title><content type='html'>Following numerous requests from users I've prepared Sparc LiveCD based on osol-1002-125-ai-sparc.iso (see my previous post). Please remember that this iso is UNOFFICIAL version, I've created it only for my tests. With this iso you can test OpenSolaris on your hardware, AI tools or you can install system from this LiveCD manually, using steps from my old posts (i.e. you need to create zpool, copy all LiveCD contents to rootfs, disable live-media services, change vfstab and etc). &lt;br /&gt;Temporarily iso is &lt;a href="http://mirror.lug.udel.edu/pub/opensolaris/sparc_snv125.iso"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-1469123404738532930?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/1469123404738532930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=1469123404738532930' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/1469123404738532930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/1469123404738532930'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2009/11/opensolaris-sparc-snv125-livecd.html' title='OpenSolaris Sparc snv125 LiveCD'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-7194895099230387554</id><published>2009-09-16T04:07:00.000-07:00</published><updated>2009-09-16T05:08:13.732-07:00</updated><title type='text'>How to make a sparc Live CD from AI</title><content type='html'>That's what I did to get the LiveCD from last AI iso.&lt;br /&gt;On sparc machine:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# mkdir -p /opt/livecd/s0.&lt;br /&gt;# mount -F hsfs `lofiadm -a osol-1002-122-ai-sparc.iso` /mnt&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I copied all iso's content to s0 and then I've unpacked /opt/livecd/s0/boot/boot_archive with root_archive to /opt/livecd/tmp. &lt;br /&gt;Next:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# cd /opt/livecd/tmp&lt;br /&gt;# echo snv122 &gt; .volumeid&lt;br /&gt;# mv  .autoinstall .livecd&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I've also removed last block about keyboard configuration and gdm in /lib/svc/method/live-fs-root.&lt;br /&gt;Next I've created lofi directory in /opt/livecd/tmp/dev and symlink in this directory to ../../devices/pseudo/lofi@0:1 (this is required for mounting solaris.zlib).&lt;br /&gt;I took hsfs.bootblock from SXCE DVD and put it in boot directory.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# cd /opt/livecd/s0/boot/ &lt;br /&gt;# root_archive pack boot_archive /opt/livecd/tmp&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Script root_archive required small hack for boot-archive size - I've added line "size=130000" before "/usr/sbin/mkfile ${size}k "$TMR".     &lt;br /&gt;Next I've created symlinks for boot_archive in /opt/livecd/s0/platform/sun4v and /opt/livecd/s0/platform/sun4u&lt;br /&gt;Now iso:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# cd /opt/livecd/ &lt;br /&gt;# mkisofs -G s0/boot/hsfs.bootblock -B ... -l -ldots -R -N -D -V snv122 -o /opt/sparc_snv122.iso s0/&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Live CD boots on my old Ultra 60 (you can see some warnings and services errors but that's another story):&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_v2GhGzvqeNM/SrDQ9bwwuyI/AAAAAAAAAEA/Zy-CeLahucY/s1600-h/snv122.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://4.bp.blogspot.com/_v2GhGzvqeNM/SrDQ9bwwuyI/AAAAAAAAAEA/Zy-CeLahucY/s400/snv122.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5382031308550617890" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-7194895099230387554?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/7194895099230387554/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=7194895099230387554' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/7194895099230387554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/7194895099230387554'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2009/09/how-to-make-live-cd-from-ai.html' title='How to make a sparc Live CD from AI'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_v2GhGzvqeNM/SrDQ9bwwuyI/AAAAAAAAAEA/Zy-CeLahucY/s72-c/snv122.jpg' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-769601947853675575</id><published>2009-07-14T05:41:00.000-07:00</published><updated>2009-07-15T23:18:47.419-07:00</updated><title type='text'>Minimal OpenSolaris SPARC install</title><content type='html'>Using previous &lt;a href="http://alexeremin.blogspot.com/2008/12/minimum-opensolaris-200811-install.html"&gt;instructions&lt;/a&gt; I've successfully installed opensolaris 2009.06 on my TestFarm (thanks, Jim) T2000 from existing Nevada b98.&lt;br /&gt;Steps are identical: my machine have 4 disks, so I've prepared third disk (c0t2d0) for installation (I take 4gb):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Part      Tag    Flag     Cylinders         Size            Blocks&lt;br /&gt;  0       root    wm       0 -   824        4.00GB    (825/0/0)     8395200&lt;br /&gt;  1 unassigned    wm       0                0         (0/0/0)             0&lt;br /&gt;  2     backup    wu       0 - 14086       68.35GB    (14087/0/0) 143349312&lt;br /&gt;  3 unassigned    wm       0                0         (0/0/0)             0&lt;br /&gt;  4 unassigned    wm       0                0         (0/0/0)             0&lt;br /&gt;  5 unassigned    wm       0                0         (0/0/0)             0&lt;br /&gt;  6 unassigned    wm       0                0         (0/0/0)             0&lt;br /&gt;  7 unassigned    wm       0                0         (0/0/0)             0&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Next steps (it's fast):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;zpool create opensolaris c0t2d0s0&lt;br /&gt;zfs create opensolaris/rootfs&lt;br /&gt;zfs set compression=on opensolaris/rootfs&lt;br /&gt;zfs set mountpoint=legacy opensolaris/rootfs&lt;br /&gt;mkdir /zfsroot&lt;br /&gt;mount -f zfs opensolaris/rootfs /zfsroot&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Here's minimal list of packages for my T2000 (sun4v):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;SUNWcsd&lt;br /&gt;SUNWcs&lt;br /&gt;SUNWcsl&lt;br /&gt;SUNWcakr&lt;br /&gt;SUNWcar&lt;br /&gt;SUNWcfcl&lt;br /&gt;SUNWckr&lt;br /&gt;SUNWcnetr&lt;br /&gt;SUNWcurl&lt;br /&gt;SUNWefc&lt;br /&gt;SUNWerid&lt;br /&gt;SUNWesu&lt;br /&gt;SUNWfctl&lt;br /&gt;SUNWpd&lt;br /&gt;SUNWfchba&lt;br /&gt;SUNWfruid&lt;br /&gt;SUNWgnu-idn&lt;br /&gt;SUNWgss&lt;br /&gt;SUNWgssc&lt;br /&gt;SUNWinstall-libs&lt;br /&gt;SUNWipf&lt;br /&gt;SUNWipkg&lt;br /&gt;SUNWkey&lt;br /&gt;SUNWkvm&lt;br /&gt;SUNWldom&lt;br /&gt;SUNWlexpt&lt;br /&gt;SUNWlibC&lt;br /&gt;SUNWlibms&lt;br /&gt;SUNWlibsasl&lt;br /&gt;SUNWloc&lt;br /&gt;SUNWlxml&lt;br /&gt;SUNWmd&lt;br /&gt;SUNWnfsc&lt;br /&gt;SUNWnfsckr&lt;br /&gt;SUNWopenssl&lt;br /&gt;SUNWperl584core&lt;br /&gt;SUNWpicl&lt;br /&gt;SUNWpool&lt;br /&gt;SUNWpr&lt;br /&gt;SUNWsmapi&lt;br /&gt;SUNWrmodu&lt;br /&gt;SUNWssh&lt;br /&gt;SUNWsshcu&lt;br /&gt;SUNWsshd&lt;br /&gt;SUNWPython&lt;br /&gt;SUNWpython-pyopenssl&lt;br /&gt;SUNWTcl&lt;br /&gt;SUNWTk&lt;br /&gt;SUNWadmap&lt;br /&gt;SUNWadmlib-sysid&lt;br /&gt;SUNWadmr&lt;br /&gt;SUNWbash&lt;br /&gt;SUNWbip&lt;br /&gt;SUNWbzip&lt;br /&gt;SUNWtecla&lt;br /&gt;SUNWtls&lt;br /&gt;SUNWtoo&lt;br /&gt;SUNWwbsup&lt;br /&gt;SUNWxwrtl&lt;br /&gt;SUNWzfs&lt;br /&gt;SUNWzfskr&lt;br /&gt;SUNWzlib&lt;br /&gt;SUNWzone&lt;br /&gt;SUNWintgige&lt;br /&gt;entire&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I already have pkg built and installed from sources on my Nevada. Now network installation:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;pkg image-create -F -f -a opensolaris.org=http://pkg.opensolaris.org /zfsroot&lt;br /&gt;&lt;br /&gt;cd /zfsroot&lt;br /&gt;&lt;br /&gt;for pkg in `cat pkg.lst`; do  pkg install --no-refresh --no-index $pkg; done&lt;br /&gt;&lt;br /&gt;echo "etc/zfs/zpool.cache" &gt;&gt; /zfsroot/boot/solaris/filelist.ramdisk&lt;br /&gt;&lt;br /&gt;zpool set bootfs=opensolaris/rootfs opensolaris&lt;br /&gt;&lt;br /&gt;echo "opensolaris/rootfs   -  /   zfs  -  no   -"  &gt;&gt; /zfsroot/etc/vfstab&lt;br /&gt;&lt;br /&gt;mkdir -p /opensolaris/platform/sun4v&lt;br /&gt;&lt;br /&gt;cp /zfsroot/platform/sun4v/bootlst /opensolaris/platform/sun4v/&lt;br /&gt;&lt;br /&gt;cp /zfsroot/lib/svc/seed/global.db /zfsroot/etc/svc/repository.db      &lt;br /&gt;&lt;br /&gt;devfsadm -R /zfsroot&lt;br /&gt;&lt;br /&gt;bootadm update-archive -R /zfsroot&lt;br /&gt;&lt;br /&gt;installboot -F zfs /platform/sun4v/lib/fs/zfs/bootblk /dev/rdsk/c0t2d0s0&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Booting:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;ok boot disk2&lt;br /&gt;...&lt;br /&gt;Sun Fire T200, No Keyboard&lt;br /&gt;Copyright 2008 Sun Microsystems, Inc.  All rights reserved.&lt;br /&gt;OpenBoot 4.28.9, 16256 MB memory available&lt;br /&gt;...&lt;br /&gt;Boot device: /pci@780/pci@0/pci@9/scsi@0/disk@2  File and args: &lt;br /&gt;SunOS Release 5.11 Version snv_111b 64-bit&lt;br /&gt;Copyright 1983-2009 Sun Microsystems, Inc.  All rights reserved.&lt;br /&gt;Use is subject to license terms.&lt;br /&gt;Hostname: unknown&lt;br /&gt;Configuring devices.&lt;br /&gt;Loading smf(5) service descriptions: 84/84&lt;br /&gt;Reading ZFS config: done.&lt;br /&gt;Mounting ZFS filesystems: (2/2)&lt;br /&gt;&lt;br /&gt;unknown console login: root&lt;br /&gt;Password: &lt;br /&gt;Sun Microsystems Inc.   SunOS 5.11      snv_111b        November 2008&lt;br /&gt;root@unknown:~# df -h&lt;br /&gt;Filesystem             size   used  avail capacity  Mounted on&lt;br /&gt;opensolaris/rootfs     3.9G   630M   3.3G    16%    /&lt;br /&gt;/devices                 0K     0K     0K     0%    /devices&lt;br /&gt;/dev                     0K     0K     0K     0%    /dev&lt;br /&gt;ctfs                     0K     0K     0K     0%    /system/contract&lt;br /&gt;proc                     0K     0K     0K     0%    /proc&lt;br /&gt;mnttab                   0K     0K     0K     0%    /etc/mnttab&lt;br /&gt;swap                    12G   176K    12G     1%    /etc/svc/volatile&lt;br /&gt;objfs                    0K     0K     0K     0%    /system/object&lt;br /&gt;sharefs                  0K     0K     0K     0%    /etc/dfs/sharetab&lt;br /&gt;fd                       0K     0K     0K     0%    /dev/fd&lt;br /&gt;swap                    12G     0K    12G     0%    /tmp&lt;br /&gt;swap                    12G    16K    12G     1%    /var/run&lt;br /&gt;opensolaris            3.9G    60K   3.3G     1%    /opensolaris&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This install take only 630 mb. Now I can adjust my network settings and install additional packages.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-769601947853675575?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/769601947853675575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=769601947853675575' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/769601947853675575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/769601947853675575'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2009/07/minimal-opensolaris-sparc-install.html' title='Minimal OpenSolaris SPARC install'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-2882648774946969841</id><published>2009-07-09T00:22:00.000-07:00</published><updated>2009-07-09T03:56:02.788-07:00</updated><title type='text'>Get detailed disk info with Caiman libraries</title><content type='html'>Using Caiman libraries you can write small programs which can be very useful in sysadmin's daily work or can help making your own installer. For example, using libtd (Target Discovery) library you can get info about system disks and partitions very fast. Here's an example of using libtd test program (test_td):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# ./test_td -d&lt;br /&gt;Disk discovery&lt;br /&gt;Total number of disks: 3&lt;br /&gt;---------------------------------&lt;br /&gt; num |    name|  ctype|size [MB]|&lt;br /&gt;---------------------------------&lt;br /&gt;   1 |  c2t0d0|    usb|      976|&lt;br /&gt;   2 |    c0d0|    ata|    76350|&lt;br /&gt;   3 |    c1d0|    ata|    38166|&lt;br /&gt;---------------------------------&lt;br /&gt;&lt;br /&gt;# ./test_td -p all&lt;br /&gt;Partition discovery for all disks&lt;br /&gt;-------------------------------------&lt;br /&gt; num |        name| active| ID| lswp|&lt;br /&gt;-------------------------------------&lt;br /&gt;   1 |    c2t0d0p1|    Yes| BF|   No|&lt;br /&gt;   2 |      c0d0p1|    Yes| BF|   No|&lt;br /&gt;   3 |      c1d0p3|     No| 83|   No|&lt;br /&gt;   4 |      c1d0p2|    Yes| 83|   No|&lt;br /&gt;   5 |      c1d0p1|     No| 82|  Yes|&lt;br /&gt;-------------------------------------&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now verbose output:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# ./test_td -d -v&lt;br /&gt;Disk discovery&lt;br /&gt;Total number of disks: 3&lt;br /&gt;-------------------------------------------------------------------------------&lt;br /&gt; num |    name|    vendor|  ctype| mtype| rem| lbl| bsize|#of blocks|size [MB]|&lt;br /&gt;-------------------------------------------------------------------------------&lt;br /&gt;   1 |  c2t0d0|     Multi|    usb| FIXED| Yes|  VF|   512|   1999872|      976|&lt;br /&gt;   2 |    c0d0|   unknown|    ata| FIXED|  No|  VF|   512| 156364992|    76350|&lt;br /&gt;   3 |    c1d0|   unknown|    ata| FIXED|  No|  VF|   512|  78164352|    38166|&lt;br /&gt;-------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;# ./test_td -p all -v&lt;br /&gt;Partition discovery for all disks&lt;br /&gt;---------------------------------------------------------------------&lt;br /&gt; num |        name| active| ID| lswp| 1st block|#of blocks|size [MB]|&lt;br /&gt;---------------------------------------------------------------------&lt;br /&gt;   1 |    c2t0d0p1|    Yes| BF|   No|      2048|   1996800|      975|&lt;br /&gt;   2 |      c0d0p1|    Yes| BF|   No|     16065| 156344580|    76340|&lt;br /&gt;   3 |      c1d0p3|     No| 83|   No|  20547135|  57609090|    28129|&lt;br /&gt;   4 |      c1d0p2|    Yes| 83|   No|   1012095|  19535040|     9538|&lt;br /&gt;   5 |      c1d0p1|     No| 82|  Yes|        63|   1012032|      494|&lt;br /&gt;---------------------------------------------------------------------&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-2882648774946969841?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/2882648774946969841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=2882648774946969841' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/2882648774946969841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/2882648774946969841'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2009/07/get-detailed-disk-info-with-caiman.html' title='Get detailed disk info with Caiman libraries'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-1844924201366408078</id><published>2009-06-22T05:34:00.000-07:00</published><updated>2009-06-22T05:51:25.908-07:00</updated><title type='text'>LiveUSB for Asus Eee PC</title><content type='html'>I've tried to prepare MilaX LiveUSB for Asus Eee PC a year ago. Today WiFi and Ethernet drivers work well for my 900.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.milax.org/img/milax04_eeepc.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 450px; height: 372px;" src="http://www.milax.org/img/milax04_eeepc1.png" border="0" alt=""/&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-1844924201366408078?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/1844924201366408078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=1844924201366408078' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/1844924201366408078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/1844924201366408078'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2009/06/milax-liveusb-for-asus-eee-pc.html' title='LiveUSB for Asus Eee PC'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-2081469475657132360</id><published>2009-06-10T04:32:00.000-07:00</published><updated>2009-06-10T05:11:30.461-07:00</updated><title type='text'>Busybox on OpenSolaris ARM</title><content type='html'>After some steps I've got &lt;a href="http://alexeremin.blogspot.com/2009/04/busybox-on-opensolaris.html"&gt;busybox&lt;/a&gt; running on OpenSolaris ARM under Qemu:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.milax.org/img/osol-arm-bb.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 450px; height: 372px;" src="http://www.milax.org/img/osol-arm-bb_m.png" border="0" alt=""/&gt;&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;And here's the &lt;a href="http://www.milax.org/files/os-arm-boot.txt"&gt;output&lt;/a&gt; I get from booting in debug mode (look how modstatic loads modules).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-2081469475657132360?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/2081469475657132360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=2081469475657132360' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/2081469475657132360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/2081469475657132360'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2009/06/busybox-on-opensolaris-arm.html' title='Busybox on OpenSolaris ARM'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-459047580982582698</id><published>2009-06-09T01:18:00.000-07:00</published><updated>2009-06-09T01:54:17.810-07:00</updated><title type='text'>First OpenSolaris ARM release</title><content type='html'>Great news from &lt;a href="http://www.opensolaris.org/os/project/osarm/"&gt;OpenSolaris ARM Port project&lt;/a&gt;: first OS release for ARM platform is now available. This &lt;a href="http://www.opensolaris.org/os/project/osarm/200805/relnotes/"&gt;release&lt;/a&gt; support NEC Electronics's NaviEngine 1 (NE1) and has some interesting features: genunix, unix and required device drivers are statically linked at building time as vmunix to save the startup time, zfs is modified to save the runtime memory.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.milax.org/img/osol-arm.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 450px; height: 315px;" src="http://www.milax.org/img/osol-arm_m.png" border="0" alt=""/&gt;&lt;/a&gt;&lt;br /&gt;So I hope that after some time we'll see OpenSolaris powered PDA.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-459047580982582698?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/459047580982582698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=459047580982582698' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/459047580982582698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/459047580982582698'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2009/06/first-opensolaris-arm-release.html' title='First OpenSolaris ARM release'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-5961224801144877861</id><published>2009-06-07T23:28:00.000-07:00</published><updated>2009-06-08T00:05:45.136-07:00</updated><title type='text'>Minimizing SunStudio</title><content type='html'>SunStudio Express uses ~900 mb on my Nevada. But for building usual C app I need only small part of SS. For example I used only these files for building imlib2 (I tried various flags):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# cd /opt/SUNWspro; find .&lt;br /&gt;.&lt;br /&gt;./lib&lt;br /&gt;./lib/crt1x.o&lt;br /&gt;./lib/crti.o&lt;br /&gt;./lib/sys&lt;br /&gt;./lib/sys/libyabe.so&lt;br /&gt;./lib/sys/lib_I_quad.so&lt;br /&gt;./lib/sys/libsunir.so&lt;br /&gt;./lib/sys/liblni.so.1&lt;br /&gt;./lib/libdwarf.so&lt;br /&gt;./lib/crt1.o&lt;br /&gt;./lib/libmopt.a&lt;br /&gt;./lib/libdwarf.so.1&lt;br /&gt;./lib/lib_I_dbg_gen.so.1&lt;br /&gt;./lib/values-xa.o&lt;br /&gt;./lib/libm.il&lt;br /&gt;./lib/lib_I_dbg_gen.so&lt;br /&gt;./lib/crtn.o&lt;br /&gt;./bin&lt;br /&gt;./bin/iropt&lt;br /&gt;./bin/fbe&lt;br /&gt;./bin/cc&lt;br /&gt;./bin/ir2hf&lt;br /&gt;./bin/ube&lt;br /&gt;./bin/acomp&lt;br /&gt;&lt;br /&gt;# du -hs&lt;br /&gt;  19M .&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Of course you also need headers for successful compilation, but referring to cc if space is important factor for you - 19 is not 900, right?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-5961224801144877861?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/5961224801144877861/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=5961224801144877861' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/5961224801144877861'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/5961224801144877861'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2009/06/minimizing-sunstudio.html' title='Minimizing SunStudio'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-597414604362378063</id><published>2009-04-26T22:27:00.000-07:00</published><updated>2009-04-26T22:38:48.870-07:00</updated><title type='text'>Minimal OpenSolaris network install script</title><content type='html'>While preparing new version of zfsinstall, I've written sample version for minimal OpenSolaris installation over network. This script also includes disk partitioning. If complete installation is needed just replace pkg list with:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;entire&lt;br /&gt;SUNWcsd&lt;br /&gt;SUNWcs&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Try it if you've problems with graphics on old laptops and you can't run GUI installer.&lt;br /&gt;You can find &lt;a href="http://src.opensolaris.org/source/xref/milax/i86pc/zfsinstall/osinstaller"&gt;osinstaller&lt;/a&gt; script in MilaX mercurial repository on OpenSolaris.org.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-597414604362378063?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/597414604362378063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=597414604362378063' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/597414604362378063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/597414604362378063'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2009/04/minimal-opensolaris-network-install.html' title='Minimal OpenSolaris network install script'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-8458767844874385624</id><published>2009-04-14T04:57:00.001-07:00</published><updated>2009-04-20T05:41:33.410-07:00</updated><title type='text'>Busybox on OpenSolaris</title><content type='html'>I hacked busybox and now it's working on my Solaris machine. This is not very fresh version (1.2.0) because all last releases become more Linux-specific. I've removed some applets and added "df","init","mount","umount","ps" from Solaris. Network applets like "ifconfig" are currently not implemented. For embedded Solaris we need native "ifconfig" with "plumb" function. &lt;br /&gt;&lt;pre&gt;&lt;br /&gt;~$ uname -a&lt;br /&gt;SunOS sysadm 5.11 snv_110 i86pc i386 i86pc&lt;br /&gt;~$ ./busybox&lt;br /&gt;BusyBox v1.2.0 (2009.04.20-10:06+0000) multi-call binary&lt;br /&gt;&lt;br /&gt;Usage: busybox [function] [arguments]...&lt;br /&gt;   or: [function] [arguments]...&lt;br /&gt;&lt;br /&gt; BusyBox is a multi-call binary that combines many common Unix&lt;br /&gt; utilities into a single executable.  Most people will create a&lt;br /&gt; link to busybox for each function they wish to use and BusyBox&lt;br /&gt; will act like whatever it was invoked as!&lt;br /&gt;&lt;br /&gt;Currently defined functions:&lt;br /&gt; [, [[, awk, bunzip2, busybox, bzcat, cat, chgrp, chmod, chown, chroot, clear, cp, cpio, cut, date, dd, df, du, echo, ed, egrep, env, false,&lt;br /&gt; fgrep, find, grep, gunzip, gzip, halt, head, hostid, hostname, hush, id, init, kill, less, ls, md5sum, mkdir, mknod, mount, mv, nc, nslookup,&lt;br /&gt; poweroff, printf, ps, pwd, reboot, rm, sed, sh, sleep, sort, tar, tee, telnet, test, touch, tr, true, tty, umount, uname, unzip, vi, wc, whoami,&lt;br /&gt; xargs, yes, zcat&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-8458767844874385624?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/8458767844874385624/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=8458767844874385624' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/8458767844874385624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/8458767844874385624'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2009/04/busybox-on-opensolaris.html' title='Busybox on OpenSolaris'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-1547159714034061436</id><published>2009-02-05T23:33:00.000-08:00</published><updated>2009-02-09T00:52:59.538-08:00</updated><title type='text'>Drawing CPU part of boot chart</title><content type='html'>I'm using kstat for drawing CPU part of boot chart (see my previous posts). I need cpu values for "user","nice","system","idle","iowait" in such order (sample output):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;cpu 8 0 141 313 230 0 0 &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I've written the small kstat utility and added its call in a bootchartd script (utility writes /var/log/bootchart/proc_stat.log):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#include &amp;lt;kstat.h&amp;gt;&lt;br /&gt;#include &amp;lt;sys/sysinfo.h&amp;gt;&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include &amp;lt;string.h&amp;gt;&lt;br /&gt;&lt;br /&gt;static kstat_ctl_t *kc;&lt;br /&gt;static kstat_t *ksp;&lt;br /&gt;&lt;br /&gt;static unsigned int cpu_user, cpu_system, cpu_nice, cpu_idle, cpu_iowait;&lt;br /&gt;&lt;br /&gt;int main(int argc, char **argv) {&lt;br /&gt;cpu_stat_t *cpu_stat;&lt;br /&gt;&lt;br /&gt;kc = kstat_open();&lt;br /&gt;&lt;br /&gt;if (kc != NULL) {&lt;br /&gt;&lt;br /&gt;ksp = kstat_lookup(kc, "cpu_stat", 0, "cpu_stat0");&lt;br /&gt;if (ksp != NULL &amp;&amp; ksp-&gt;ks_type == KSTAT_TYPE_RAW)&lt;br /&gt;{&lt;br /&gt;if (kstat_read(kc, ksp, NULL) != -1 &amp;&amp;  &lt;br /&gt;ksp-&gt;ks_data_size == sizeof(cpu_stat_t))&lt;br /&gt;{&lt;br /&gt;  cpu_stat = (cpu_stat_t *)ksp-&gt;ks_data;&lt;br /&gt;  cpu_user=cpu_stat-&gt;cpu_sysinfo.cpu[CPU_USER];&lt;br /&gt;  cpu_nice=cpu_stat-&gt;cpu_sysinfo.cpu[CPU_WAIT];&lt;br /&gt;  cpu_system = cpu_stat-&gt;cpu_sysinfo.cpu[CPU_KERNEL] ;&lt;br /&gt;  cpu_iowait=cpu_stat-&gt;cpu_syswait.iowait;&lt;br /&gt;  cpu_idle=cpu_stat-&gt;cpu_sysinfo.cpu[CPU_IDLE];&lt;br /&gt;&lt;br /&gt; printf("cpu  %d %d %d %d %d 0 0\n",&lt;br /&gt; cpu_user,cpu_nice,cpu_system,cpu_idle,cpu_iowait);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Here boot chart for snv_105:&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.milax.org/img/105chart.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 264px;" src="http://www.milax.org/img/105chart_m.png" border="0" alt="Boot chart for snv105" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-1547159714034061436?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/1547159714034061436/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=1547159714034061436' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/1547159714034061436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/1547159714034061436'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2009/02/cpu-part-for-bootchart.html' title='Drawing CPU part of boot chart'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-8010092869677206007</id><published>2009-02-03T02:55:00.000-08:00</published><updated>2009-02-03T04:25:04.427-08:00</updated><title type='text'>Reducing Boot Time</title><content type='html'>In the last MilaX release (0.3.3) I've tried to reduce boot time from kernel startup to desktop environment up and running. I left only necessary SMF-services for LiveCD  and changed startup sequence. The main idea - network services and compressed usr filesystem mounting can start after X server starting.&lt;br /&gt;Here the services list after full booting:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;STATE          STIME    FMRI&lt;br /&gt;online         19:49:10 svc:/system/svc/restarter:default&lt;br /&gt;online         19:49:13 svc:/network/datalink-management:default&lt;br /&gt;online         19:49:14 svc:/system/filesystem/usr:default&lt;br /&gt;online         19:49:14 svc:/system/filesystem/root:default&lt;br /&gt;online         19:49:14 svc:/system/utmp:default&lt;br /&gt;online         19:49:21 svc:/system/device/local:default&lt;br /&gt;online         19:49:21 svc:/milestone/devices:default&lt;br /&gt;online         19:49:22 svc:/system/filesystem/minimal:default&lt;br /&gt;online         19:49:22 svc:/system/manifest-import:default&lt;br /&gt;online         19:49:23 svc:/system/rmtmpfiles:default&lt;br /&gt;online         19:49:23 svc:/system/filesystem/local:default&lt;br /&gt;online         19:49:23 svc:/application/xserver:default&lt;br /&gt;online         19:49:24 svc:/system/console-login:default&lt;br /&gt;online         19:49:49 svc:/network/initial:default&lt;br /&gt;online         19:49:57 svc:/network/loopback:default&lt;br /&gt;online         19:49:58 svc:/system/system-log:default&lt;br /&gt;online         19:50:01 svc:/system/cryptosvc:default&lt;br /&gt;online         19:50:04 svc:/system/dbus:default&lt;br /&gt;online         19:50:04 svc:/network/physical:default&lt;br /&gt;online         19:50:06 svc:/system/identity:node&lt;br /&gt;online         19:50:14 svc:/network/rpc/bind:default&lt;br /&gt;online         19:50:18 svc:/system/hal:default&lt;br /&gt;online         19:50:20 svc:/network/inetd:default&lt;br /&gt;online         19:50:25 svc:/network/rpc/gss:default&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Bootchart picture offers some details:&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.milax.org/img/milax033bootchart.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 308px;" src="http://www.milax.org/img/milax033bootchart_s.png" border="0" alt="MilaX 0.3.3 boot chart" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br&gt;&lt;br /&gt;Certainly USB-booting yields the best results: for example on my DELL notebook I've booted MilaX from usb stick for 27 seconds. I've not included Moinak's code for compressed ramdisk support in this release, but I hope that I'll make it further.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-8010092869677206007?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/8010092869677206007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=8010092869677206007' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/8010092869677206007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/8010092869677206007'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2009/02/reducing-boot-time.html' title='Reducing Boot Time'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-8574782851881396647</id><published>2009-01-20T04:16:00.000-08:00</published><updated>2009-01-20T05:46:49.131-08:00</updated><title type='text'>Getting maximum info at booting</title><content type='html'>As I already written above, it's very useful to know all the current processes in boot time. You can get more interesting information. If we look at the contents of "live-devices-local" script in OpenSolaris LiveCD we'll see possibility to use iosnoop with output in logfile (iosnoop uses DTrace to monitor disk events in real time):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;...&lt;br /&gt;# Turn on I/O tracing if requested and possible&lt;br /&gt;trace=`prtconf -v /devices|sed -n '/trace/{;n;p;}'|cut -f 2 -d\'`&lt;br /&gt;if [ "$trace" = "on" ]; then&lt;br /&gt;   if [ -n "$mntpt" ]; then&lt;br /&gt;       outputfile="${mntpt}/traceout"&lt;br /&gt;       echo "Enabling I/O Tracing ..." &gt; /dev/console&lt;br /&gt;       /opt/DTT/Bin/iosnoop -Deg &gt; "$outputfile" 2&gt; /dev/console &amp;&lt;br /&gt;       # Wait for iosnoop to actually initialize&lt;br /&gt;       sleep 10&lt;br /&gt;   else&lt;br /&gt;       echo "Unable to enable I/O Tracing" &gt; /dev/console&lt;br /&gt;       echo "Must have a mountable Solaris root slice on harddisk" &gt; /dev/console&lt;br /&gt;       echo "to hold trace output" &gt; /dev/console&lt;br /&gt;   fi&lt;br /&gt;fi&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Here's another fast way without using "live-devices-local" script: boot with "-m milestone=none" and next (I'm using opensnoop):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;mount -F tmpfs -o size=32m swap /var/log&lt;br /&gt;/opt/DTT/Bin/opensnoop -eg &gt; /var/log/opensnoop.log &amp;&lt;br /&gt;svcadm milestone all&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Except iosnoop a lot of helpful information can be gathered using other DTrace scripts (opensnoop,errinfo) with various arguments. For example, the opensnoop script considerably simplifies search of all files necessary for booting without errors.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-8574782851881396647?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/8574782851881396647/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=8574782851881396647' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/8574782851881396647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/8574782851881396647'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2009/01/getting-maximum-info-at-booting.html' title='Getting maximum info at booting'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-939299829162370354</id><published>2009-01-12T02:46:00.000-08:00</published><updated>2009-03-25T23:53:28.269-07:00</updated><title type='text'>Boot chart with help of DTrace and Python</title><content type='html'>Anonymous tracing allows to receive more interesting information about Solaris booting process. I use a simple D-script (boot.d):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#!/usr/sbin/dtrace -Cs&lt;br /&gt;#pragma D option quiet&lt;br /&gt;/* I need process pid, his forks and life time */ &lt;br /&gt;proc:::create&lt;br /&gt;{&lt;br /&gt; printf("&amp;lt;fork ppid=%d cpid=%d execname=%s time=%d /&amp;gt;\n",&lt;br /&gt;         pid,args[0]-&gt;pr_pid,execname,`lbolt*10/ `hz);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;proc:::exec-success&lt;br /&gt;{&lt;br /&gt; printf("&amp;lt;process pid=%d execname=%s time=%d /&amp;gt;\n",&lt;br /&gt;         pid,execname,`lbolt*10/ `hz);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;proc:::exit&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt; printf("&amp;lt;end pid=%d execname=%s time=%d /&amp;gt;\n", &lt;br /&gt;         pid, execname,`lbolt*10/ `hz);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Then I enable anonymous tracing:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;dtrace -AFs /boot/boot.d&lt;br /&gt;reboot&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;After reboot I write a logfile and disable anonymous tracing:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;dtrace -ae -o bootlog&lt;br /&gt;dtrace -A&lt;br /&gt;&lt;/pre&gt; &lt;br /&gt;Logfile looks like this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;CPU FUNCTION                                                                                                                                                 &lt;br /&gt;  0 | exec_common:exec-success &amp;lt;process pid=1 execname=init time=63 /&amp;gt;                                                                        &lt;br /&gt;  0 | cfork:create             &amp;lt;fork ppid=1 cpid=4 execname=init time=66 /&amp;gt;                                                                   &lt;br /&gt;  0 | exec_common:exec-success &amp;lt;process pid=4 execname=ksh93 time=67 /&amp;gt;                                                                       &lt;br /&gt;  0 | exec_common:exec-success &amp;lt;process pid=4 execname=autopush time=87 /&amp;gt;                                                                    &lt;br /&gt;  0 | proc_exit:exit           &amp;lt;end pid=4 execname=autopush time=92 /&amp;gt;                                                                        &lt;br /&gt;  0 | cfork:create             &amp;lt;fork ppid=1 cpid=5 execname=init time=92 /&amp;gt;                                                                   &lt;br /&gt;  0 | exec_common:exec-success &amp;lt;process pid=5 execname=ksh93 time=92 /&amp;gt;                                                                       &lt;br /&gt;  0 | exec_common:exec-success &amp;lt;process pid=5 execname=soconfig time=94 /&amp;gt; &lt;br /&gt;...                   &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now by help of a python it's possible to parse logfile. I've written a small script &lt;a href="http://src.opensolaris.org/source/xref/milax/i86pc/bootchart/bootchart.py"&gt;bootchart.py&lt;/a&gt; for parsing and chart construction. It would be great to trace and draw the cpu part but this is not implemented yet.&lt;br /&gt;To create boot chart you need run bootchart.py with logfile as an argument:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;bootchart.py bootlog&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This is a boot chart example for OpenSolaris 2008.11:&lt;br /&gt;&lt;br&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.milax.org/img/pybootchart.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 210px;" src="http://4.bp.blogspot.com/_v2GhGzvqeNM/SWs-9DluTMI/AAAAAAAAADA/2D0fv5CbuCY/s400/pybootchart.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5290391405933251778" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-939299829162370354?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/939299829162370354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=939299829162370354' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/939299829162370354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/939299829162370354'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2009/01/boot-chart-with-help-of-dtrace-and.html' title='Boot chart with help of DTrace and Python'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_v2GhGzvqeNM/SWs-9DluTMI/AAAAAAAAADA/2D0fv5CbuCY/s72-c/pybootchart.png' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-7704118664457809346</id><published>2008-12-24T03:41:00.000-08:00</published><updated>2009-01-20T05:29:37.676-08:00</updated><title type='text'>Boot charts for 2008.11 and snv101</title><content type='html'>Bootchart is a great &lt;a href="http://www.bootchart.org/"&gt;tool&lt;/a&gt; for performance analysis and visualization of the Linux boot process. Eric Schrock and Dan Price &lt;a href="http://blogs.sun.com/eschrock/date/20050106#boot_chart_results"&gt;worked&lt;/a&gt; on a Bootchart port using DTrace but I can't find any recipes on their blogs.&lt;br /&gt;I've viewed bootchart source files for two days and by means of several hacks managed to receive boot charts for OpenSolaris. First of all I need to get uptime values in bootchart format (this is /proc/uptime content on linux). I've written the small utility (upt.c):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#include &amp;lt;sys/times.h&amp;gt;&lt;br /&gt;#include &amp;lt;limits.h&amp;gt;&lt;br /&gt;#include &amp;lt;dat/dat_platform_specific.h&amp;gt;&lt;br /&gt;&lt;br /&gt;main {&lt;br /&gt;struct tms  ts;&lt;br /&gt;clock_t t = times(&amp;ts);&lt;br /&gt;                                                          &lt;br /&gt;//we need jiffies from uptime value for bootchart&lt;br /&gt;printf("%u\n",(unsigned long) ((DAT_UINT64) t*100 /CLK_TCK));                                                                    &lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now the main script for logging (/boot/bootchartd):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#!/usr/bin/bash                                                                                         &lt;br /&gt;                                                                                                  &lt;br /&gt;PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/gnu/bin:$PATH"                                                 &lt;br /&gt;                                                                                                  &lt;br /&gt;# mounting dir for logging                                                                              &lt;br /&gt;mount -F tmpfs -o size=32m swap /var/log/bootchart                                                                  &lt;br /&gt;                                                                                                  &lt;br /&gt;# start time hack for java parser                                                                       &lt;br /&gt;echo "001" &gt; /var/log/bootchart/ps.log                                                                  &lt;br /&gt;echo "  PID  PPID S %CPU COMMAND" &gt;&gt; /var/log/bootchart/ps.log                                          &lt;br /&gt;echo "    1     0 S  0.0 kernel" &gt;&gt; /var/log/bootchart/ps.log                                           &lt;br /&gt;echo  &gt;&gt; /var/log/bootchart/ps.log                                                                      &lt;br /&gt;                                                                                                  &lt;br /&gt;while true; do                                                                                          &lt;br /&gt;# uptime jiffies                                                                          &lt;br /&gt;uptime=`/sbin/upt`                                                                                  &lt;br /&gt;echo $uptime                                                                                        &lt;br /&gt;# Log the command output and removing pid 0 for preventing "No processes found" error                                              &lt;br /&gt;eval "ps -e -o pid,ppid,s,pcpu,comm"|grep -v sched                                                  &lt;br /&gt;echo                                                                                                &lt;br /&gt;/usr/gnu/bin/sleep 0.2                                                                              &lt;br /&gt;done  &gt;&gt; /var/log/bootchart/ps.log      &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Let’s create directory /var/log/bootchart:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;mkdir /var/log/bootchart&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Next I move /sbin/init to /bin:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;mv /sbin/init /bin&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;and create a new init:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;cat /sbin/init&lt;br /&gt;&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;/boot/bootchartd &amp;&lt;br /&gt;exec /bin/init&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now it's possible to reboot. After booting I write a header file:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;echo "title = Boot chart for $( hostname | sed q ) ($( date ))" &gt; /var/log/bootchart/header             &lt;br /&gt;echo "system.uname = $( uname -srvm | sed q )" &gt;&gt; /var/log/bootchart/header                             &lt;br /&gt;if [ -f /etc/release ]; then                                                                            &lt;br /&gt;echo "system.release = $( sed q /etc/release )" &gt;&gt; /var/log/bootchart/header                        &lt;br /&gt;else                                                                                                    &lt;br /&gt;echo "system.release = $( sed 's/\\.//g;q' /etc/issue )" &gt;&gt; /var/log/bootchart/header               &lt;br /&gt;fi                                                                                                      &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;and create boot chart:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;java -jar bootchart.jar&lt;br /&gt;&lt;br /&gt;Parsing /var/log/bootchart&lt;br /&gt;Wrote image: ./bootchart.png&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This was the first boot chart created for OpenSolaris 2008.11 (Intel CPU 2.26GHz 512mb RAM). No disk and cpu utilization  information yet:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.milax.org/img/osol.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 282px;" src="http://www.milax.org/img/osolm.png" alt="Boot chart for OpenSolaris 2008.11" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Here the boot chart for snv101:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.milax.org/img/snv101.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 441px; height: 208px;" src="http://www.milax.org/img/snv101m.png" alt="Boot chart for snv101" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-7704118664457809346?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/7704118664457809346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=7704118664457809346' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/7704118664457809346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/7704118664457809346'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2008/12/boot-charts-for-200811-and-snv101.html' title='Boot charts for 2008.11 and snv101'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-7133160454953207601</id><published>2008-12-22T22:03:00.000-08:00</published><updated>2009-01-08T11:05:32.342-08:00</updated><title type='text'>Installing pkg without pkg</title><content type='html'>Unfortunately I can't install some IPS packages without dependences. Christopher Bergström has written a small shell &lt;a href="http://www.codestrom.com/files/get-ssx.sh"&gt;script&lt;/a&gt; for sunstudio installation. Some time I've tested it and have created the ruby version for installation of any package. This script does not process "driver" tag in manifest but in the rest is suitable for installation and a bit more exact than shell script. You can view the source code (getpkg.rb) &lt;a href="http://cvs.opensolaris.org/source/xref/milax/i86pc/mini_constructor/pkg/getpkg.rb"&gt;here&lt;/a&gt;.&lt;br /&gt;Sample usage (I want to install SUNWipkg to /opt/ipkg):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# getpkg inst_dir manifest_url &lt;br /&gt;getpkg.rb /opt/ipkg http://pkg.opensolaris.org/release/manifest/0/SUNWipkg%400.5.11%2C5.11-0.101%3A20081104T032047Z &lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-7133160454953207601?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/7133160454953207601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=7133160454953207601' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/7133160454953207601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/7133160454953207601'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2008/12/installing-pkg-without-pkg.html' title='Installing pkg without pkg'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-7545150744928540159</id><published>2008-12-15T06:23:00.000-08:00</published><updated>2008-12-16T03:17:00.578-08:00</updated><title type='text'>Preparing small miniroot with zfs and ssh</title><content type='html'>This is instructions for building smallest OpenSolaris miniroot (standalone RAM) with ssh and zfs.&lt;br /&gt;I use the receptions familiar to funs of minimization according to Jim Connors's &lt;a href="http://blogs.sun.com/jtc/entry/framework_to_help_create_small"&gt;framework&lt;/a&gt;. But now we will use IPS for installation of packages and we should delete files of some packages manually ("--install" or "--uninstall --without-deps" not yet implemented in pkg).&lt;br /&gt;Well, I'm running Solaris Express and will use "/opt/test" as working dir. Here are the packages for small miniroot (/opt/pkg.list):&lt;br /&gt;&lt;pre&gt;SUNWcsd&lt;br /&gt;SUNWcs&lt;br /&gt;SUNWcakr&lt;br /&gt;SUNWcar&lt;br /&gt;SUNWckr&lt;br /&gt;SUNWcnetr&lt;br /&gt;SUNWcsl&lt;br /&gt;SUNWesu&lt;br /&gt;SUNWgss&lt;br /&gt;SUNWgssc&lt;br /&gt;SUNWkey&lt;br /&gt;SUNWkvm&lt;br /&gt;SUNWlibms&lt;br /&gt;SUNWlibsasl&lt;br /&gt;SUNWloc&lt;br /&gt;SUNWlxml&lt;br /&gt;SUNWnfsc&lt;br /&gt;SUNWnfsckr&lt;br /&gt;SUNWopenssl&lt;br /&gt;SUNWos86r&lt;br /&gt;SUNWpr&lt;br /&gt;SUNWpsdcr&lt;br /&gt;SUNWpsdir&lt;br /&gt;SUNWrmodr&lt;br /&gt;SUNWbip&lt;br /&gt;SUNWsmapi&lt;br /&gt;SUNWssh&lt;br /&gt;SUNWsshcu&lt;br /&gt;SUNWsshd&lt;br /&gt;SUNWtecla&lt;br /&gt;SUNWtls&lt;br /&gt;SUNWtoo&lt;br /&gt;SUNWusb&lt;br /&gt;SUNWusbs&lt;br /&gt;SUNWzfs&lt;br /&gt;SUNWzfskr&lt;br /&gt;SUNWzlib&lt;br /&gt;SUNWzone&lt;br /&gt;SUNWbash&lt;br /&gt;SUNWrtls&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;As you can see, I have Realteck network adapter (SUNWrtls). Let's go:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# working dir&lt;br /&gt;export ROOTDIR=/opt/test&lt;br /&gt;&lt;br /&gt;# create the packaging db (pkg already installed on Nevada)&lt;br /&gt;/usr/bin/pkg image-create -F -a opensolaris.org=http://pkg.opensolaris.org ${ROOTDIR}&lt;br /&gt;&lt;br /&gt;cd ${ROOTDIR}&lt;br /&gt;for pkg in `cat ../pkg.list`; do&lt;br /&gt;/usr/bin/pkg install ${pkg}&lt;br /&gt;done&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;But after that we have some additional packages because of dependences. Now we need to remove these unneeded packages (/opt/rm.txt) :&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;SUNWaudd&lt;br /&gt;SUNWgccruntime&lt;br /&gt;SUNWinstall-libs&lt;br /&gt;SUNWmd&lt;br /&gt;SUNWpicl&lt;br /&gt;SUNWpool&lt;br /&gt;SUNWwbsup&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I cannot delete some packages and will use "pkg contents" command:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;for pkg in `cat ../rm.txt`; do&lt;br /&gt;pkg contents -m $pkg|grep file|sed -e 's/.*path=//; s/pkg.csize.*//'|\&lt;br /&gt;awk '{print "./"$1}';&lt;br /&gt;pkg contents -m $pkg|grep link|sed -e 's/.*path=//; s/target.*//'|\&lt;br /&gt;awk '{print "./"$1}';&lt;br /&gt;done &gt; files.tmp&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;We need "libmeta.so" library for devfsadm:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;cat files.tmp|sed 's/.*libmeta.*//g' &gt; files.list&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now I delete packages files:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;for file in `cat ../files.list `; do rm -rf $file; done&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Basic miniroot configuration:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;cd ${ROOTDIR}&lt;br /&gt;&lt;br /&gt;# Copy usr/sfw/lib/libwrap.so.1 to usr/lib&lt;br /&gt;cp ${ROOTDIR}/lib/svc/seed/global.db ${ROOTDIR}/etc/svc/repository.db&lt;br /&gt;&lt;br /&gt;rm ${ROOTDIR}/usr/lib/libcrypto.so*&lt;br /&gt;cp ${ROOTDIR}/usr/sfw/lib/libcrypto.so.0.9.8 ${ROOTDIR}/usr/lib&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# Fix etc/vfstab&lt;br /&gt;echo "/devices/ramdisk:a - / ufs - no nologging" &gt;&gt; ${ROOTDIR}/etc/vfstab&lt;br /&gt;&lt;br /&gt;# Set the timezone&lt;br /&gt;echo "TZ=US/Eastern" &gt; ${ROOTDIR}/etc/TIMEZONE&lt;br /&gt;&lt;br /&gt;# Set hostname&lt;br /&gt;echo "small" &gt; ${ROOTDIR}/etc/nodename&lt;br /&gt;&lt;br /&gt;# Create /etc/inet/hosts and /etc/inet/ipnodes file&lt;br /&gt;echo "127.0.0.1 localhost loghost" &gt; ${ROOTDIR}/etc/inet/hosts&lt;br /&gt;echo "192.168.1.1 small" &gt;&gt; ${ROOTDIR}/etc/inet/hosts&lt;br /&gt;echo "::1 localhost loghost" &gt; ${ROOTDIR}/etc/inet/ipnodes&lt;br /&gt;echo "127.0.0.1 localhost loghost" &gt;&gt; ${ROOTDIR}/etc/inet/ipnodes&lt;br /&gt;echo "192.168.1.1 small" &gt;&gt; ${ROOTDIR}/etc/inet/ipnodes&lt;br /&gt;&lt;br /&gt;# Set nsswitch.conf&lt;br /&gt;cp ${ROOTDIR}/etc/nsswitch.files ${ROOTDIR}/etc/nsswitch.conf&lt;br /&gt;&lt;br /&gt;# Set IP Address&lt;br /&gt;echo "small" &gt; ${ROOTDIR}/etc/hostname.rtls0&lt;br /&gt;&lt;br /&gt;# Set up default route&lt;br /&gt;echo "192.168.1.200" &gt; ${ROOTDIR}/etc/defaultrouter&lt;br /&gt;&lt;br /&gt;# Set the environment variables for svccfg.&lt;br /&gt;SVCCFG_DTD=${ROOTDIR}/usr/share/lib/xml/dtd/service_bundle.dtd.1&lt;br /&gt;SVCCFG_REPOSITORY=${ROOTDIR}/etc/svc/repository.db&lt;br /&gt;SVCCFG=/usr/sbin/svccfg&lt;br /&gt;&lt;br /&gt;export SVCCFG_DTD SVCCFG_REPOSITORY SVCCFG&lt;br /&gt;&lt;br /&gt;${SVCCFG} import ${ROOTDIR}/var/svc/manifest/milestone/sysconfig.xml&lt;br /&gt;&lt;br /&gt;# turnoff boot-archive, manifest-import&lt;br /&gt;${SVCCFG} -s system/boot-archive setprop start/exec=:true&lt;br /&gt;${SVCCFG} -s system/manifest-import setprop start/exec=:true&lt;br /&gt;${SVCCFG} -s network/rpc/bind delpg sysidtool&lt;br /&gt;${SVCCFG} -s system/metainit:default setprop general/enabled=false&lt;br /&gt;&lt;br /&gt;# Here's what needed to add ssh&lt;br /&gt;${SVCCFG} import ${ROOTDIR}/var/svc/manifest/system/cryptosvc.xml&lt;br /&gt;${SVCCFG} -s system/cryptosvc:default setprop general/enabled=true&lt;br /&gt;&lt;br /&gt;${SVCCFG} import ${ROOTDIR}/var/svc/manifest/network/inetd.xml&lt;br /&gt;${SVCCFG} -s network/inetd:default setprop general/enabled=true&lt;br /&gt;&lt;br /&gt;${SVCCFG} import ${ROOTDIR}/var/svc/manifest/network/rpc/gss.xml&lt;br /&gt;${SVCCFG} -s network/rpc/gss:default setprop general/enabled=true&lt;br /&gt;&lt;br /&gt;${SVCCFG} import ${ROOTDIR}/var/svc/manifest/network/ssh.xml&lt;br /&gt;${SVCCFG} -s network/ssh:default setprop general/enabled=true&lt;br /&gt;&lt;br /&gt;# Creating RSA/DSA keys for ssh&lt;br /&gt;/usr/bin/ssh-keygen -q -f ${ROOTDIR}/etc/ssh/ssh_host_rsa_key -t rsa -N ''&lt;br /&gt;/usr/bin/ssh-keygen -q -f ${ROOTDIR}/etc/ssh/ssh_host_dsa_key -t dsa -N ''&lt;br /&gt;&lt;br /&gt;# Edit etc/ssh/sshd_config to allow ssh to root account&lt;br /&gt;ex -s ${ROOTDIR}/etc/ssh/sshd_config &gt; /dev/null &lt;&lt;&gt; /dev/null&lt;br /&gt;&lt;br /&gt;# Remove packaging, xpg4, sfw - you can remove more but be carefully&lt;br /&gt;rm -rf var/sadm/* var/pkg/*&lt;br /&gt;rm -rf usr/xpg4 usr/sfw&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now I prepare a miniroot image:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# we need freespace ~10mb&lt;br /&gt;size=`/usr/bin/du -ks ${ROOTDIR}|/usr/bin/nawk '{print $1+10240}'`&lt;br /&gt;&lt;br /&gt;/usr/sbin/mkfile ${size}k /opt/miniroot&lt;br /&gt;lofidev=`/usr/sbin/lofiadm -a /opt/miniroot`&lt;br /&gt;&lt;br /&gt;# get the miniroot raw device and create a filesystem on it&lt;br /&gt;rlofidev=`echo $lofidev |sed s/lofi/rlofi/`&lt;br /&gt;/usr/sbin/newfs -m 0 $rlofidev&lt;br /&gt;&lt;br /&gt;# mount ufs filesystem&lt;br /&gt;/usr/sbin/mount -o nologging $lofidev /mnt&lt;br /&gt;&lt;br /&gt;/usr/bin/find .  /usr/bin/cpio -pdum /mnt&lt;br /&gt;/usr/sbin/umount /mnt&lt;br /&gt;&lt;br /&gt;/usr/sbin/lofiadm -d /opt/miniroot&lt;br /&gt;/usr/bin/7za a -tgzip -mx=9 /opt/miniroot.gz /opt/miniroot&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Done. Now I have a small OpenSolaris 2008.11 miniroot with ZFS and SSH (32601K gzipped - I've also  removed a number of  unnecessary binaries from SUNWcs). It's possible to make an image even less.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-7545150744928540159?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/7545150744928540159/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=7545150744928540159' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/7545150744928540159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/7545150744928540159'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2008/12/preparing-small-miniroot-with-zfs-and.html' title='Preparing small miniroot with zfs and ssh'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-2164122326844041490</id><published>2008-12-11T06:02:00.000-08:00</published><updated>2008-12-16T00:07:41.074-08:00</updated><title type='text'>Creating 90mb LiveCD using Distribution Constructor</title><content type='html'>Continuing a theme, it's possible to create a 90mb iso (minimal working LiveCD without Gnome and X) using the Distribution Constructor - command-line tool for building preconfigured, bootable OpenSolaris images. In the OpenSolaris 2008.11 release, this tool takes an XML manifest file as input, and builds an ISO image that is based on the parameters specified in the manifest file. I'm running Solaris Express and will use old-format configuration file.&lt;br /&gt;I have added additional packages (SUNWgzip, SUNWgrub, SUNWslim-utils) in my short list (see post of December 08). Note: I need only "rtls" driver for this test so you should add packages for your network adapters. Besides, I use checkpoints as it will be necessary to change a script "/lib/svc/method/live-fs-root".&lt;br /&gt;I have downloaded Distribution Constructor kit:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# hg clone ssh://anon@hg.opensolaris.org/hg/caiman/distro_constructor&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I only have changed the list of packages and use my own checkpoint in "build_dist.bash":&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# ./build_dist.bash small.conf&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;After installation of packages I have a pause (thanks to checkpoint). Now it's necessary to remove string "/usr/sbin/set_lang" in "/lib/svc/method/live-fs-root" and set "system/coreadm enabled=false" in generic_live.xml (otherwise there will be an errors after booting). It's only first test, you can change more. Then I finish creating the image. In DC output there will be some errors - the majority of them concerns Gnome which is not present.&lt;br /&gt;I boot LiveCD in virtual machine - at first sight it works perfectly .&lt;br /&gt;The test is fulfilled: for my list of packages the final iso has the size  90mb (but you can add any packages which are necessary for you).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-2164122326844041490?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/2164122326844041490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=2164122326844041490' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/2164122326844041490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/2164122326844041490'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2008/12/creating-90mb-opensolaris-livecd-using.html' title='Creating 90mb LiveCD using Distribution Constructor'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-6851165073843864992</id><published>2008-12-09T01:04:00.000-08:00</published><updated>2008-12-16T00:14:32.145-08:00</updated><title type='text'>OpenSolaris: life without Gnome</title><content type='html'>I have console OpenSolaris installed (see my post of December 08).  But I have forgotten to install the most valuable package:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;pkg install SUNWzfs-auto-snapshot&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now I can install X:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;pkg install SUNWxorg-server&lt;br /&gt;pkg install SUNWxorg-xsvc&lt;br /&gt;pkg install SUNWxorg-agp&lt;br /&gt;pkg install SUNWxorg-graphics-ddx&lt;br /&gt;pkg install SUNWxorg-client-programs&lt;br /&gt;pkg install SUNWxwfsw&lt;br /&gt;pkg install SUNWxwopt&lt;br /&gt;pkg install FSWxorg-fonts&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;After installation I run "xinit" and get xterm. However it would be better to install some  minimalistic window manager, for example, dwm.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;pkg install SUNWwget&lt;br /&gt;wget http://code.suckless.org/dl/dwm/dwm-5.3.1.tar.gz&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Gcc,binutils,gmake and headers are required:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;pkg install SUNWxorg-headers&lt;br /&gt;pkg install SUNWgmake&lt;br /&gt;pkg install SUNWbinutils&lt;br /&gt;pkg install SUNWgcc&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I love vim. Also I need gzip:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;pkg install SUNWvim&lt;br /&gt;pkg install SUNWgzip&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;If you plan to compile some other apps, I advice to install substudio:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;pkg install sunstudioexpress&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Next I unpack archive, correct config.h and compile dwm. It's possible to start dwm xsession from smf. You can  look how it's made in BeleniX or MilaX.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_v2GhGzvqeNM/ST5GO1kuoXI/AAAAAAAAAA4/W2-AoL6AnjE/s1600-h/opensolaris_dwm.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 238px;" src="http://2.bp.blogspot.com/_v2GhGzvqeNM/ST5GO1kuoXI/AAAAAAAAAA4/W2-AoL6AnjE/s320/opensolaris_dwm.png" alt="" id="BLOGGER_PHOTO_ID_5277733034038042994" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;As a result I got system with  short boot time and an easy and fast window manager.&lt;br /&gt;At the end I need usual user:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;mkdir /home&lt;br /&gt;useradd -d /home/me -m -s /bin/ksh -c "System Developer" me&lt;br /&gt;passwd me&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-6851165073843864992?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/6851165073843864992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=6851165073843864992' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/6851165073843864992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/6851165073843864992'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2008/12/opensolaris-life-without-gnome.html' title='OpenSolaris: life without Gnome'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_v2GhGzvqeNM/ST5GO1kuoXI/AAAAAAAAAA4/W2-AoL6AnjE/s72-c/opensolaris_dwm.png' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094974977265128267.post-7487490514490792025</id><published>2008-12-08T03:15:00.000-08:00</published><updated>2009-03-26T06:40:56.235-07:00</updated><title type='text'>Minimal OpenSolaris 2008.11 Install</title><content type='html'>Using instructions from &lt;a href="http://blogs.sun.com/edp/entry/moving_from_nevada_and_live"&gt;Edward Pilatowicz' blog&lt;/a&gt;  I  got  small working OpenSolaris 2008.11 in the console version: without  Xorg (and Gnome of course).&lt;br /&gt;First of all the list of the core packages for normal work in the console is necessary. My computer has Realtek ethernet adapter and  I also have added a SUNWrtls package. Here's example list (pkg.txt):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;SUNWcsd&lt;br /&gt;SUNWcs&lt;br /&gt;SUNWzone&lt;br /&gt;SUNWcsl&lt;br /&gt;SUNWlibsasl&lt;br /&gt;SUNWlibms&lt;br /&gt;SUNWpr&lt;br /&gt;SUNWlxml&lt;br /&gt;SUNWzlib&lt;br /&gt;SUNWtls&lt;br /&gt;SUNWopenssl&lt;br /&gt;SUNWpool&lt;br /&gt;SUNWzfs&lt;br /&gt;SUNWsmapi&lt;br /&gt;SUNWtecla&lt;br /&gt;SUNWckr&lt;br /&gt;SUNWpicl&lt;br /&gt;SUNWmd&lt;br /&gt;SUNWinstall-libs&lt;br /&gt;SUNWwbsup&lt;br /&gt;SUNWgccruntime&lt;br /&gt;SUNWcar&lt;br /&gt;SUNWcakr&lt;br /&gt;SUNWusbs&lt;br /&gt;SUNWusb&lt;br /&gt;SUNWaudd&lt;br /&gt;SUNWkvm&lt;br /&gt;SUNWos86r&lt;br /&gt;SUNWrmodr&lt;br /&gt;SUNWpsdcr&lt;br /&gt;SUNWpsdir&lt;br /&gt;SUNWcnetr&lt;br /&gt;SUNWesu&lt;br /&gt;SUNWkey&lt;br /&gt;SUNWnfsckr&lt;br /&gt;SUNWnfsc&lt;br /&gt;SUNWgss&lt;br /&gt;SUNWgssc&lt;br /&gt;SUNWbip&lt;br /&gt;SUNWbash&lt;br /&gt;SUNWloc&lt;br /&gt;SUNWsshcu&lt;br /&gt;SUNWsshd&lt;br /&gt;SUNWssh&lt;br /&gt;SUNWtoo&lt;br /&gt;SUNWzfskr&lt;br /&gt;SUNWipf&lt;br /&gt;SUNWrtls&lt;br /&gt;SUNWipkg&lt;br /&gt;SUNWpython-pyopenssl&lt;br /&gt;SUNWpython-cherrypy&lt;br /&gt;SUNWadmr&lt;br /&gt;SUNWadmap&lt;br /&gt;SUNWadmlib-sysid&lt;br /&gt;SUNWPython&lt;br /&gt;SUNWbzip&lt;br /&gt;SUNWxwrtl&lt;br /&gt;SUNWTk&lt;br /&gt;SUNWTcl&lt;br /&gt;SUNWlexpt&lt;br /&gt;SUNWperl584core&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;As last versions of packages have dependences, for example SUNWcs is installing SUNWgccruntime,  SUNWPython is installing packages SUNWTk and SUNWTcl. But finally I got installed system with size about 280 mb - it's a smaller than 3 Gb;)&lt;br /&gt;I use the same commands as in Edward's blog (I'm running Solaris Express):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;zpool create -f rpool c1t1d0s0&lt;br /&gt;zfs set compression=on rpool&lt;br /&gt;zfs create -p rpool/ROOT/indy/opt&lt;br /&gt;zfs set canmount=noauto rpool/ROOT/indy&lt;br /&gt;zfs set canmount=noauto rpool/ROOT/indy/opt&lt;br /&gt;zfs set mountpoint=legacy rpool/ROOT/indy&lt;br /&gt;zfs set mountpoint=legacy rpool/ROOT/indy/opt&lt;br /&gt;&lt;br /&gt;# we're going to do our install in /a&lt;br /&gt;PKG_IMAGE=/a; export PKG_IMAGE&lt;br /&gt;&lt;br /&gt;# mount our zpool on /a&lt;br /&gt;mkdir -p $PKG_IMAGE&lt;br /&gt;mount -F zfs rpool/ROOT/indy $PKG_IMAGE&lt;br /&gt;mkdir -p $PKG_IMAGE/opt&lt;br /&gt;mount -F zfs rpool/ROOT/indy/opt $PKG_IMAGE/opt&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;For Solaris Express you must install pkg (not required if you're booting from OpenSolaris or MilaX LiveCD):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;hg clone ssh://anon@hg.opensolaris.org/hg/pkg/gate&lt;br /&gt;cd gate/src&lt;br /&gt;make install&lt;br /&gt;&lt;br /&gt;# create the basic opensolaris install image..&lt;br /&gt;pkg image-create -F -a opensolaris.org=http://pkg.opensolaris.org $PKG_IMAGE&lt;br /&gt;pkg refresh&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Note: I use here list of basic packages - pkg.txt (see above):&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;for pkg in `cat pkg.txt`; do pkg install $pkg; done&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Next:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;# seed the initial smf repository&lt;br /&gt;cp $PKG_IMAGE/lib/svc/seed/global.db $PKG_IMAGE/etc/svc/repository.db&lt;br /&gt;chmod 0600 $PKG_IMAGE/etc/svc/repository.db&lt;br /&gt;chown root:sys $PKG_IMAGE/etc/svc/repository.db&lt;br /&gt;&lt;br /&gt;# setup smf profiles&lt;br /&gt;ln -s ns_files.xml $PKG_IMAGE/var/svc/profile/name_service.xml&lt;br /&gt;ln -s generic_limited_net.xml $PKG_IMAGE/var/svc/profile/generic.xml&lt;br /&gt;ln -s inetd_generic.xml $PKG_IMAGE/var/svc/profile/inetd_services.xml&lt;br /&gt;ln -s platform_none.xml $PKG_IMAGE/var/svc/profile/platform.xml&lt;br /&gt;&lt;br /&gt;# mark the new system image as uninstalled&lt;br /&gt;sysidconfig -b $PKG_IMAGE -a /lib/svc/method/sshd&lt;br /&gt;touch $PKG_IMAGE/etc/.UNCONFIGURED&lt;br /&gt;&lt;br /&gt;# configure our new /etc/vfstab&lt;br /&gt;printf "rpool/ROOT/indy -\t/\t\tzfs\t-\tno\t-\n" &gt;&gt; $PKG_IMAGE/etc/vfstab&lt;br /&gt;chmod a+r $PKG_IMAGE/etc/vfstab&lt;br /&gt;&lt;br /&gt;# turn off root as a role&lt;br /&gt;printf "/^root::::type=role;\ns/^root::::type=role;/root::::/\nw" |\&lt;br /&gt;ed -s $PKG_IMAGE/etc/user_attr&lt;br /&gt;&lt;br /&gt;# delete the "jack" user&lt;br /&gt;printf "/^jack:/d\nw" | ed -s $PKG_IMAGE/etc/passwd&lt;br /&gt;chmod u+w $PKG_IMAGE/etc/shadow&lt;br /&gt;printf "/^jack:/d\nw" | ed -s $PKG_IMAGE/etc/shadow&lt;br /&gt;chmod u-w $PKG_IMAGE/etc/shadow&lt;br /&gt;&lt;br /&gt;# copy of my existing host sshd keys&lt;br /&gt;cp -p /etc/ssh/*key* $PKG_IMAGE/etc/ssh&lt;br /&gt;&lt;br /&gt;# configure /dev in the new image&lt;br /&gt;devfsadm -r $PKG_IMAGE&lt;br /&gt;ln -s ../devices/pseudo/sysmsg@0:msglog $PKG_IMAGE/dev/msglog&lt;br /&gt;&lt;br /&gt;# update the boot archive in the new image&lt;br /&gt;bootadm update-archive -R $PKG_IMAGE&lt;br /&gt;&lt;br /&gt;# update to the latest version of grub (this command generated&lt;br /&gt;# some errors which i ignored).&lt;br /&gt;$PKG_IMAGE/boot/solaris/bin/update_grub -R $PKG_IMAGE&lt;br /&gt;&lt;br /&gt;# create an informational grub menu in the install image that&lt;br /&gt;# points us to the real grub menu.&lt;br /&gt;cat &lt;&lt;-EOF &gt; $PKG_IMAGE/boot/grub/menu.lst&lt;br /&gt;&lt;br /&gt;#########################################################################&lt;br /&gt;#                                                                       #&lt;br /&gt;# For zfs root, menu.lst has moved to /rpool/boot/grub/menu.lst.        #&lt;br /&gt;#                                                                       #&lt;br /&gt;#########################################################################&lt;br /&gt;EOF&lt;br /&gt;&lt;br /&gt;# create the new real grub menu&lt;br /&gt;cat &lt;&lt;-EOF &gt; /rpool/boot/grub/menu.lst&lt;br /&gt;default 0&lt;br /&gt;timeout 10&lt;br /&gt;splashimage /boot/grub/splash.xpm.gz&lt;br /&gt;&lt;br /&gt;title Solaris 2008.11 console&lt;br /&gt;findroot (pool_rpool,0,a)&lt;br /&gt;bootfs rpool/ROOT/indy&lt;br /&gt;kernel\$ /platform/i86pc/kernel/\$ISADIR/unix -k -B \$ZFS-BOOTFS,console=ttya&lt;br /&gt;module\$ /platform/i86pc/\$ISADIR/boot_archive&lt;br /&gt;&lt;br /&gt;EOF&lt;br /&gt;&lt;br /&gt;# make the grub menu files readable by everyone.&lt;br /&gt;chmod a+r $PKG_IMAGE/boot/grub/menu.lst&lt;br /&gt;chmod a+r /rpool/boot/grub/menu.lst&lt;br /&gt;&lt;br /&gt;# setup /etc/bootsign so that grub can find this zpool&lt;br /&gt;mkdir -p /rpool/etc&lt;br /&gt;echo pool_rpool &gt; /rpool/etc/bootsign&lt;br /&gt;&lt;br /&gt;umount $PKG_IMAGE/opt&lt;br /&gt;umount $PKG_IMAGE&lt;br /&gt;reboot&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;After reboot you get the console version of OpenSolaris with which you can do all that you want. Next you can install only those packages which are necessary for you. For example it's useful to owners of old notebooks. This installation can be made  from an OpenSolaris LiveCD in text mode or with help of a MilaX LiveCD (where's ipkg is included).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094974977265128267-7487490514490792025?l=alexeremin.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexeremin.blogspot.com/feeds/7487490514490792025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3094974977265128267&amp;postID=7487490514490792025' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/7487490514490792025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094974977265128267/posts/default/7487490514490792025'/><link rel='alternate' type='text/html' href='http://alexeremin.blogspot.com/2008/12/minimum-opensolaris-200811-install.html' title='Minimal OpenSolaris 2008.11 Install'/><author><name>alhazred</name><uri>http://www.blogger.com/profile/04819890114311693093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_v2GhGzvqeNM/ST5oiOocsFI/AAAAAAAAABg/dbCa2ZpZRgY/S220/1.png'/></author><thr:total>12</thr:total></entry></feed>
