<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Emile "iMil" Heitor 's home &#187; OpenSolaris</title>
	<atom:link href="http://imil.net/wp/tag/opensolaris/feed/" rel="self" type="application/rss+xml" />
	<link>http://imil.net/wp</link>
	<description>life, unix and stuff</description>
	<lastBuildDate>Wed, 08 Feb 2012 22:31:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Moar link.</title>
		<link>http://imil.net/wp/2010/04/24/moar-link/</link>
		<comments>http://imil.net/wp/2010/04/24/moar-link/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 09:45:44 +0000</pubDate>
		<dc:creator>iMil</dc:creator>
				<category><![CDATA[Blogroll]]></category>
		<category><![CDATA[802.3ad]]></category>
		<category><![CDATA[EtherChannel]]></category>
		<category><![CDATA[OpenSolaris]]></category>

		<guid isPermaLink="false">http://imil.net/wp/?p=484</guid>
		<description><![CDATA[Le NAS dont je vous entretenais recemment, comme un bon NAS qu&#8217;il est, effectue beaucoup de traffic sur le réseau privé d&#8217;hébergement. Il sert et  il leeche à tout va; Or, ce gentil petit équipement est muni de deux cartes réseau Gigabit, et a la bonne idée d&#8217;être branché sur un switch lui aussi [...]]]></description>
			<content:encoded><![CDATA[<p>Le NAS dont je vous entretenais recemment, comme un bon NAS qu&#8217;il est, effectue beaucoup de traffic sur le réseau privé d&#8217;hébergement. Il <a href="http://fr.wikipedia.org/wiki/Network_File_System">sert</a> et  il <a href="http://fr.wikipedia.org/wiki/Leech">leeche</a> à tout va; Or, ce gentil petit équipement est muni de deux cartes réseau Gigabit, et a la bonne idée d&#8217;être branché sur un switch lui aussi Gigabit&#8230; hmmm&#8230; et si ?</p>
<p>Et si.</p>
<p>Le switch en question ET l&#8217;OS en question, <a href="http://www.opensolaris.com/">OpenSolaris</a>, implémentent le protocole <a href="http://fr.wikipedia.org/wiki/IEEE_802.3ad">LACP</a> (Link Aggregation Control Protocol), ou 802.3ad.</p>
<p>Ce protocole permet :</p>
<ul>
<li>d&#8217;augmenter la capacité du lien</li>
<li>le failover</li>
<li>le load balancing</li>
</ul>
<p>Il serait dommage de s&#8217;en priver.</p>
<p>Coté Solaris, on désactive <a href="http://hub.opensolaris.org/bin/view/Project+nwam/">nwam</a> (j&#8217;aime pas les trucs &#8220;automagic&#8221;) et on prépare l&#8217;interface d&#8217;aggregation :</p>
<pre>
# svcadm disable nwam
# cd /etc
# echo "192.168.0.2/24" > hostname.aggr1
# echo "192.168.0.254" > defaultrouter
# chmod u+w inet/hosts
# echo "192.168.0.2 machine.domaine.tld" >> inet/hosts
# cat > resolv.conf < < EOF
domainname domaine.tld
nameserver 192.168.0.1
EOF
# cp nsswitch.dns nsswitch.conf
# svcadm enable network/physical:default
</pre>
<p>On <i>unplumb</i> les deux interfaces réseau :
</pre>
<pre>
# ifconfig igb0 unplumb
# ifconfig igb1 unplumb
# ifconfig -a # verification que les interfaces sont bien descendues
lo0: flags=2001000849<up ,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
lo0: flags=2002000849</up><up ,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1
        inet6 ::1/128
</up></pre>
<p>Puis on crée l&#8217;interface aggrégée à l&#8217;aide de <code>dladm</code> :</p>
<pre>
# dladm create-aggr -d igb0 -d igb1 1
# ifconfig aggr1 plumb 192.168.0.2 netmask 255.255.255.0 up
# ifconfig -a # verification de l'activité du lien
lo0: flags=2001000849<up ,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
aggr1: flags=1000843</up><up ,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 192.168.0.2 netmask ffffff00 broadcast 192.168.0.255
        ether 0:24:81:a9:ab:10
lo0: flags=2002000849</up><up ,LOOPBACK,RUNNING,MULTICAST,IPv6,VIRTUAL> mtu 8252 index 1
        inet6 ::1/128
</up></pre>
<p>Ça a l&#8217;air pas mal.</p>
<p>Coté switch maintenant. On déclare un lien <a href="http://en.wikipedia.org/wiki/EtherChannel">EtherChannel</a> (qui supporte le protocole LACP) auquel on affecte un identifiant :</p>
<pre>
interface port-channel 1
</pre>
<p>Puis on &#8220;attache&#8221; les ports 1 et 2 du switch à ce lien aggrégé :</p>
<pre>
interface range ethernet g(1-2)
channel-group 1 mode auto
</pre>
<p>C&#8217;est tout.</p>
<p>L&#8217;interface EtherChannel ainsi configurée est manipulable comme un port classique du switch, on peut donc par exemple l&#8217;affecter à un VLAN de cette façon :</p>
<pre>
interface port-channel 1
switchport access vlan 3
</pre>
<p>C&#8217;est prêêêt !</p>
<p>Vous pouvez désormais épater vos amis en débranchant l&#8217;un ou l&#8217;autre des <a href="http://fr.wikipedia.org/wiki/RJ45">RJ45</a> alors que vous sauvegardez des documentations multimedia  à haute teneur informatives.</p>
]]></content:encoded>
			<wfw:commentRss>http://imil.net/wp/2010/04/24/moar-link/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>omnomnomnomnom</title>
		<link>http://imil.net/wp/2010/04/10/omnomnomnomnom/</link>
		<comments>http://imil.net/wp/2010/04/10/omnomnomnomnom/#comments</comments>
		<pubDate>Sat, 10 Apr 2010 11:45:40 +0000</pubDate>
		<dc:creator>iMil</dc:creator>
				<category><![CDATA[Blogroll]]></category>
		<category><![CDATA[OpenSolaris]]></category>
		<category><![CDATA[RAID]]></category>
		<category><![CDATA[ZFS]]></category>

		<guid isPermaLink="false">http://imil.net/wp/?p=472</guid>
		<description><![CDATA[Au boulot, j&#8217;ai mis en place un NAS. À force de lire les louanges de ZFS, je me suis dit que c&#8217;était l&#8217;occasion idéale d&#8217;utiliser réellement ses capacités, et plus simplement comme &#8220;le filesystem de Solaris/OpenSolaris&#8221;.
Nous sommes partis de l&#8217;hypothèse suivante :

Nous utiliserons les fonctions RAID de ZFS, et non pas le RAID5 natif fourni [...]]]></description>
			<content:encoded><![CDATA[<p>Au boulot, j&#8217;ai mis en place un <a href="http://fr.wikipedia.org/wiki/Stockage_en_r%C3%A9seau_NAS">NAS</a>. À force de lire les louanges de <a href="http://fr.wikipedia.org/wiki/ZFS">ZFS</a>, je me suis dit que c&#8217;était l&#8217;occasion idéale d&#8217;utiliser réellement ses capacités, et plus simplement comme &#8220;le filesystem de Solaris/OpenSolaris&#8221;.</p>
<p>Nous sommes partis de l&#8217;hypothèse suivante :</p>
<ul>
<li>Nous utiliserons les fonctions RAID de ZFS, et non pas le RAID5 natif fourni par le controlleur du serveur de disques; en effet, après moult lectures, il apparait que le mode <i>RAID-Z</i> de ZFS est non seulement plus flexible, plus rapide, mais également plus sur (voir par exemple <a href="http://blogs.sun.com/bonwick/entry/raid_z">ici</a> ou <a href="http://en.wikipedia.org/wiki/Non-standard_RAID_levels#RAID-Z">ici</a>)</li>
<li>La partition de boot/root fonctionnera, elle, en mode mirror et sera disponible sur tous les disques</li>
<li>Le reste de la place disponible formera un <i>pool raidz</i>. Nous aurions pu choisir <i>raidz2</i>, mais ce dernier nous aurait coûté de l&#8217;espace en moins.</li>
</ul>
<p>Le serveur que nous utilisons pour ce <i>setup</i> comporte une carte HP de type <i>Smart Array g6</i>, dont le firmware ne permet pas de mode <a href="http://fr.wikipedia.org/wiki/JBOD">JBOD</a>, aussi, chaque disque formera une unité logique RAID0.</p>
<p>Les disques ont une taille de 1To; le système occuppant moins de 10Go, nous spécifions à l&#8217;installation que nous ne souhaitons utiliser &#8220;que&#8221; 30Go pour le système, le reste sera affecté au <i>raidz</i>.</p>
<p>Une fois <a href="http://www.opensolaris.com/">OpenSolaris</a> installé sur le disque logique numero 1, nous mettons en place le <i>mirroring</i> sur chaque unité logique. Pour ce faire, nous allons préparer un premier disque à l&#8217;aide de la commande <code>format</code> puis dupliquer la table de partitions du disque 1 sur ce second disque à l&#8217;aide des commandes <code>prtvtoc</code> et <code>fmthard</code> :</p>
<pre>
# format
Searching for disks...done

AVAILABLE DISK SELECTIONS:
       0. c8t0d0 <default cyl 60795 alt 2 hd 255 sec 126>
          /pci@0,0/pci8086,340a@3/pci103c,3241@0/sd@0,0
       1. c8t1d0 </default><default cyl 60795 alt 2 hd 255 sec 126>
          /pci@0,0/pci8086,340a@3/pci103c,3241@0/sd@1,0
       2. c8t2d0 </default><default cyl 60795 alt 2 hd 255 sec 126>
          /pci@0,0/pci8086,340a@3/pci103c,3241@0/sd@2,0
       3. c8t3d0 </default><default cyl 60795 alt 2 hd 255 sec 126>
          /pci@0,0/pci8086,340a@3/pci103c,3241@0/sd@3,0
       4. c8t4d0 </default><default cyl 60795 alt 2 hd 255 sec 126>
          /pci@0,0/pci8086,340a@3/pci103c,3241@0/sd@4,0
       5. c8t5d0 </default><default cyl 60795 alt 2 hd 255 sec 126>
          /pci@0,0/pci8086,340a@3/pci103c,3241@0/sd@5,0

Specify disk (enter its number): 1
selecting c8t1d0
[disk formatted]
No Solaris fdisk partition found

FORMAT MENU:
        disk       - select a disk
        type       - select (define) a disk type
        partition  - select (define) a partition table
        current    - describe the current disk
        format     - format and analyze the disk
        fdisk      - run the fdisk program
        repair     - repair a defective sector
        label      - write label to the disk
        analyze    - surface analysis
        defect     - defect list management
        backup     - search for backup labels
        verify     - read and display labels
        save       - save new disk/partition definitions
        inquiry    - show vendor, product and revision
        volname    - set 8-character volume name
        !<cmd>     - execute </cmd><cmd>, then return
        quit
format> fdisk
No fdisk table exists. The default partition for the disk is:

  a 100% "SOLARIS System" partition

Type "y" to accept the default partition, otherwise type "n" to edit the partition table.
y
format> quit

# prtvtoc /dev/rdsk/c8t0d0s2 |fmthard -s - /dev/rdsk/c8t1d0s2
</cmd></default></pre>
<p>Pour rappel, le <i>slice</i> numero 2 (s2) représente l&#8217;intégralité du disque.</p>
<p>Intervient à cet instant une astuce particulière relative à notre <i>setup</i>. J&#8217;ai dit plus haut que nous avons pris le parti de <i>mirrorer</i> la partition système sur tous les disques, cela signifie que sur chacun d&#8217;eux, nous devons disposer de <b>deux</b> <i>slices</i>, or, le disque numero 1, en cours d&#8217;utilisation, ne peut être manipulé de la sorte. Nous allons donc :</p>
<ul>
<li>Créer un deuxième <i>slice</i> sur le second disque</li>
<li>Intégrer le <i>slice</i> 1 du second disque au <i>pool</i> système</li>
<li>Détacher le disque 1 du <i>pool</i> système</li>
<li>Effacer le <i>slice</i> système du disque numero 1</li>
<li>Re-formatter le disque numero 1</li>
<li>Importer la table de partition du disque 2 vers le disque 1</li>
</ul>
<pre>
# format
[...]
Specify disk (enter its number): 1
format> partition
[...]
partition> 3
Part      Tag    Flag     Cylinders         Size            Blocks
  3 unassigned    wu       0                0         (0/0/0)              0

Enter partition id tag[unassigned]:
Enter partition permission flags[wu]: wm
Enter new starting cyl[0]: 1955
Enter partition size[0b, 0c, 0e, 0.0mb, 0.0gb]: 900gb
partition> label
partition> quit
format> quit
</pre>
<p>Notez que la valeur du cylindre de départ est égale au prochain cylindre disponible. Dans notre cas, le dernier cylindre de la partition système était 1954.</p>
<p>On attache le 1er <i>slice</i> du second disque à <i>rpool</i></p>
<pre>
# zpool attach -f rpool c8t0d0s0 c8t1d0s0
</pre>
<p>On attend que le <i>mirroring</i> soit effectué (quelques secondes), puis on détache le premier disque :</p>
<pre>
# zpool detach rpool c8t0d0s0
</pre>
<p>On détruit maintenant le partitionnement du disque 1</p>
<pre>
# format
[...]
Specify disk (enter its number): 0
[...]
format> fdisk
             Total disk size is 60798 cylinders
             Cylinder size is 32130 (512 byte) blocks

                                               Cylinders
      Partition   Status    Type          Start   End   Length    %
      =========   ======    ============  =====   ===   ======   ===
          1       Active    Solaris2          1  60797    60797    100

SELECT ONE OF THE FOLLOWING:
   1. Create a partition
   2. Specify the active partition
   3. Delete a partition
   4. Change between Solaris and Solaris2 Partition IDs
   5. Exit (update disk configuration and exit)
   6. Cancel (exit without updating disk configuration)
Enter Selection:
fdisk> 3
[...]
Specify the partition number to delete (or enter 0 to exit): 1
fdisk> 1
[...]
Indicate the type of partition you want to create
  1=SOLARIS2   2=UNIX        3=PCIXOS     4=Other
  5=DOS12      6=DOS16       7=DOSEXT     8=DOSBIG
  9=DOS16LBA   A=x86 Boot    B=Diagnostic C=FAT32
  D=FAT32LBA   E=DOSEXTLBA   F=EFI        0=Exit? 1

Specify the percentage of disk to use for this partition
(or type "c" to specify the size in cylinders). 100

Should this to become the active partition? If yes, it will be
activated each time the computer is reset or turned on.
Please type "y" or "n". y

Enter Selection: 5
</pre>
<p>On exporte la table de partitions du disque 2 vers le disque 1</p>
<pre>
# prtvtoc /dev/rdsk/c8t1d0s2 |fmthard -s - /dev/rdsk/c8t0d0s2
</pre>
<p>Puis on rattache le <i>slice</i> 1 du disque 1 à <i>rpool</i> :</p>
<pre>
# zpool attach -f rpool c8t0d0s0 c8t1d0s0
</pre>
<p>Voila !</p>
<p>Nous pouvons maintenant préparer et importer la table des partitions sur les disques suivants grâce au même combo utilisé pour le disque 2 (<code>format&gt;fdisk</code>, <code>prtvtoc</code> et <code>fmthard</code>).<br />
Ainsi, il est maintenant possible d&#8217;attacher l&#8217;ensemble de nos <i>slices</i> au <i>pool</i> système :</p>
<pre>
zpool attach -f rpool c8t0d0s0 c8t2d0s0
zpool attach -f rpool c8t0d0s0 c8t3d0s0
etc...
</pre>
<p>Une fois ceci effectué, il est indispensable d&#8217;installer <code>grub</code> sur l&#8217;ensemble des disques, de façon que notre <i>NAS</i> puisse <i>booter</i> indifféremment sur n&#8217;importe lequel.</p>
<pre>
# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c8t0d0s0
# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c8t1d0s0
# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c8t2d0s0
etc...
</pre>
<p>On constate le succès de l&#8217;opération grâce à la commande <code>zpool</code> :</p>
<pre>
# zpool status
  pool: rpool
 state: ONLINE
 scrub: resilver completed after 0h6m with 0 errors on Fri Apr  9 16:27:03 2010
config:

        NAME          STATE     READ WRITE CKSUM
        rpool         ONLINE       0     0     0
          mirror      ONLINE       0     0     0
            c8t1d0s0  ONLINE       0     0     0
            c8t2d0s0  ONLINE       0     0     0
            c8t0d0s0  ONLINE       0     0     0
            c8t3d0s0  ONLINE       0     0     0  6.10G resilvered
            c8t4d0s0  ONLINE       0     0     0  6.10G resilvered
            c8t5d0s0  ONLINE       0     0     0  6.10G resilvered

errors: No known data errors
</pre>
<p>Désormais, tous nos disques disposent également d&#8217;un second <i>slice</i>, s3, qui sera lui affecté à un <i>pool raidz</i>, nous effectuons l&#8217;opération de cette façon :</p>
<pre>
# zpool create -f omnomnom raidz c8t0d0s3 c8t1d0s3 c8t2d0s3 c8t3d0s3 c8t4d0s3 c8t5d0s3
</pre>
<p>Ce qui nous donne :</p>
<pre>
# zpool status
  pool: omnomnom
 state: ONLINE
 scrub: none requested
config:

        NAME          STATE     READ WRITE CKSUM
        omnomnom        ONLINE       0     0     0
          raidz1      ONLINE       0     0     0
            c8t0d0s3  ONLINE       0     0     0
            c8t1d0s3  ONLINE       0     0     0
            c8t2d0s3  ONLINE       0     0     0
            c8t3d0s3  ONLINE       0     0     0
            c8t4d0s3  ONLINE       0     0     0
            c8t5d0s3  ONLINE       0     0     0

errors: No known data errors

  pool: rpool
 state: ONLINE
 scrub: resilver completed after 0h6m with 0 errors on Fri Apr  9 16:27:03 2010
config:

        NAME          STATE     READ WRITE CKSUM
        rpool         ONLINE       0     0     0
          mirror      ONLINE       0     0     0
            c8t1d0s0  ONLINE       0     0     0
            c8t2d0s0  ONLINE       0     0     0
            c8t0d0s0  ONLINE       0     0     0
            c8t3d0s0  ONLINE       0     0     0  6.10G resilvered
            c8t4d0s0  ONLINE       0     0     0  6.10G resilvered
            c8t5d0s0  ONLINE       0     0     0  6.10G resilvered

errors: No known data errors
</pre>
<p>On peut dès lors utiliser les commandes <i>ZFS</i> pour créer un filesystem sur notre <i>pool raidz</i> :</p>
<pre>
# zfs create omnomnom/backup
</pre>
<p>Placer un quota :</p>
<pre>
# zfs set quota=3.5T omnomnom/backup
</pre>
<p>Ou encore exporter un autre système de fichiers en NFS :</p>
<pre>
# zfs set sharenfs=on omnomnom/share
</pre>
<p>Trop dur.</p>
<p>Un petit df pour la route :</p>
<pre>
# df -h
Filesystem            Size  Used Avail Use% Mounted on
rpool/ROOT/opensolaris
                       24G  2.9G   21G  13% /
swap                  7.2G  332K  7.2G   1% /etc/svc/volatile
/usr/lib/libc/libc_hwcap1.so.1
                       24G  2.9G   21G  13% /lib/libc.so.1
swap                  7.2G  8.0K  7.2G   1% /tmp
swap                  7.2G   52K  7.2G   1% /var/run
rpool/export           21G   21K   21G   1% /export
rpool/export/home      21G   29K   21G   1% /export/home
rpool/export/home/imil
                       21G  862K   21G   1% /export/home/imil
rpool                  21G   78K   21G   1% /rpool
omnomnom                4.3T   35K  4.3T   1% /omnomnom
omnomnom/backup         3.5T   32K  3.5T   1% /omnomnom/backup
omnomnom/share          4.3T   32K  4.3T   1% /omnomnom/share
</pre>
<p>Merci à <a href="http://www.rottenbytes.info/">nico</a> pour ses nombreux conseils.</p>
]]></content:encoded>
			<wfw:commentRss>http://imil.net/wp/2010/04/10/omnomnomnomnom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>pkgin 0.3.0 dans ton wip</title>
		<link>http://imil.net/wp/2009/12/03/pkgin-0-3-0-dans-ton-wip/</link>
		<comments>http://imil.net/wp/2009/12/03/pkgin-0-3-0-dans-ton-wip/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 11:04:23 +0000</pubDate>
		<dc:creator>iMil</dc:creator>
				<category><![CDATA[Blogroll]]></category>
		<category><![CDATA[DragonFly BSD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[NetBSD]]></category>
		<category><![CDATA[OpenSolaris]]></category>
		<category><![CDATA[pkgin]]></category>
		<category><![CDATA[pkgsrc]]></category>

		<guid isPermaLink="false">http://imil.net/wp/?p=357</guid>
		<description><![CDATA[Pkgin 0.3.0 voit -enfin- le jour. Pas de changements fondamentaux dans le code de gestion d&#8217;install/upgrade mais plutot une tripotée de petits fixes issus d&#8217;utilisateurs-hackers autour du globe. Dans le désordre :
. Basculement vers autoconf pour la génération du Makefile
. Correction du bug d&#8217;affichage en console
. Pas mal de fixes autour de la standardisation des [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://imil.net/pkgin">Pkgin</a> 0.3.0 voit -enfin- le jour. Pas de changements fondamentaux dans le code de gestion d&#8217;install/upgrade mais plutot une tripotée de petits fixes issus d&#8217;utilisateurs-hackers autour du globe. Dans le désordre :</p>
<p>. Basculement vers autoconf pour la génération du Makefile<br />
. Correction du bug d&#8217;affichage en console<br />
. Pas mal de fixes autour de la standardisation des variables<br />
. Le lookup du pkg_summary en bz2 ou gz est désormais automatique<br />
. Gros ménage des conditions pour opensolaris<br />
. substitution de variables dans repositories.conf ($arch et $osrelease)<br />
. De traditionnels bugfixes<br />
. Portage -encore un peu hors des clous- pour SunOS 5.8</p>
<p>Le soft est disponible sur <a href="http://pkgsrc-wip.sourceforge.net/">pkgsrc-wip</a> et si aucune plainte n&#8217;apparait, je mettrai à jour pkgsrc.</p>
<p>À vos torture tests !<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://imil.net/wp/2009/12/03/pkgin-0-3-0-dans-ton-wip/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>pkgsrc sur opensolaris, 64 bits et sunstudio 12</title>
		<link>http://imil.net/wp/2009/11/17/pkgsrc-sur-opensolaris-64-bits-et-sunstudio-12/</link>
		<comments>http://imil.net/wp/2009/11/17/pkgsrc-sur-opensolaris-64-bits-et-sunstudio-12/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 21:03:59 +0000</pubDate>
		<dc:creator>iMil</dc:creator>
				<category><![CDATA[Blogroll]]></category>
		<category><![CDATA[OpenSolaris]]></category>
		<category><![CDATA[pkgsrc]]></category>

		<guid isPermaLink="false">http://imil.net/wp/?p=336</guid>
		<description><![CDATA[Pkgsrc sur OpenSolaris, c&#8217;est bien, mais des packages compilés en 64 bits avec Sun Studio, c&#8217;est quand même la grosse classe. Et parmi eux pkgin, evidemment :)
Malheureusement, ce n&#8217;est pas une opération spécialement bien documentée, et surtout, elle nécessite une modification (en tout cas à ce jour) de mk/compilers/sunpro.mk.
J&#8217;utiliserai /opt comme base pour l&#8217;installation du [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.pkgsrc.org">Pkgsrc</a> sur <a href="http://www.opensolaris.org">OpenSolaris</a>, c&#8217;est bien, mais des packages compilés en 64 bits avec <a href="http://developers.sun.com/sunstudio/">Sun Studio</a>, c&#8217;est quand même la grosse classe. Et parmi eux <a href="http://imil.net/pkgin">pkgin</a>, evidemment :)</p>
<p>Malheureusement, ce n&#8217;est pas une opération spécialement bien documentée, et surtout, elle nécessite une <a href="http://mail-index.netbsd.org/pkgsrc-bugs/2009/10/27/msg034289.html">modification</a> (en tout cas à ce jour) de <code>mk/compilers/sunpro.mk</code>.</p>
<p>J&#8217;utiliserai <code>/opt</code> comme base pour l&#8217;installation du framework car cela semble être l&#8217;usage pour tous les utilisateurs chevronnés du binôme Solaris/pkgsrc.</p>
<p>Je suppose dans le reste de ce post que la machine cible est 64 bits-capable et que le package <code>sunstudio12u1</code> est installé via <i>pkg</i>.</p>
<p>Tout d&#8217;abord, on <i>checkout</i> pkgsrc de manière tout à fait classique :</p>
<pre>
imil@geonosis:/opt$ pfexec cvs -d anoncvs@anoncvs.fr.netbsd.org:/cvsroot co pkgsrc
</pre>
<p>On modifie ensuite le fichier <code>mk/compilers/sunpro.mk</code>, à partir de la ligne 88 :</p>
<pre>
# SunPro compiler must be passed certain flags to compile/link 64-bit code.
#.if !empty(CC_VERSION:M5.9)
_COMPILER_ABI_FLAG.64= -m64
#.elif ${MACHINE_ARCH} == "sparc"
#_COMPILER_ABI_FLAG.64= -xtarget=ultra -xarch=v9
#.else
#_COMPILER_ABI_FLAG.64= -xarch=amd64
#.endif
</pre>
<p>Puis on <i>bootstrap</i> pkgsrc de cette façon :</p>
<pre>
imil@geonosis:/opt/pkgsrc/bootstrap$ CC=/opt/sunstudio12.1/bin/cc pfexec ./bootstrap --prefix=/opt/pkg --abi=64
</pre>
<p>Le fichier <code>/opt/pkg/etc/mk.conf</code> sera renseigné avec les valeurs qui ont servi à <i>bootstraper</i> pkgsrc.</p>
<p>On vérifie l&#8217;exactitude de l&#8217;opération simplement :</p>
<pre>
imil@geonosis:/opt/pkgsrc/bootstrap$ file /opt/pkg/bin/bmake
/opt/pkg/bin/bmake:     ELF 64-bit LSB executable AMD64 Version 1 [SSE2 SSE FXSR CMOV FPU], dynamically linked, stripped
</pre>
<p>poh poh poh, ça claque ou bien.<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://imil.net/wp/2009/11/17/pkgsrc-sur-opensolaris-64-bits-et-sunstudio-12/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenSolaris nfs client: &#8220;permission denied&#8221;</title>
		<link>http://imil.net/wp/2009/11/06/opensolaris-nfs-client-permission-denied/</link>
		<comments>http://imil.net/wp/2009/11/06/opensolaris-nfs-client-permission-denied/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 09:16:06 +0000</pubDate>
		<dc:creator>iMil</dc:creator>
				<category><![CDATA[Blogroll]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[NFS]]></category>
		<category><![CDATA[OpenSolaris]]></category>

		<guid isPermaLink="false">http://imil.net/wp/?p=323</guid>
		<description><![CDATA[Petite astuce, ça evitera de chercher trop loin. J&#8217;ai constaté que, par defaut, mon desktop OpenSolaris ne parvenait pas à lister le contenu d&#8217;un serveur NFS situé sur une Debian GNU/Linux testing.
Quelques recherches m&#8217;ont conduit sur ce thread ou l&#8217;on comprend que l&#8217;implémentation de NFSv4 n&#8217;est pas encore totalement synchro entre Linux et Solaris. Ainsi, [...]]]></description>
			<content:encoded><![CDATA[<p>Petite astuce, ça evitera de chercher trop loin. J&#8217;ai constaté que, par defaut, mon desktop OpenSolaris ne parvenait pas à lister le contenu d&#8217;un serveur NFS situé sur une Debian GNU/Linux testing.</p>
<p>Quelques recherches m&#8217;ont conduit sur <a href="http://www.linuxquestions.org/questions/linux-networking-3/nfs-server-on-ubuntu-doesnt-play-nice-with-nfs-client-on-solaris-626508/">ce thread</a> ou l&#8217;on comprend que l&#8217;implémentation de NFSv4 n&#8217;est pas encore totalement synchro entre Linux et Solaris. Ainsi, il suffit de modifier la valeur de <code>NFS_CLIENT_VERSMAX</code> dans le fichier <code>/etc/default/nfs</code> sur le client OpenSolaris de cette façon :</p>
<pre>
NFS_CLIENT_VERSMAX=3
</pre>
<p>Pour forcer l&#8217;utilisation de NFSv3, moyennant quoi, j&#8217;accède désormais sans problème à mes documentations multimédia à haute teneur informatives.<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://imil.net/wp/2009/11/06/opensolaris-nfs-client-permission-denied/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpènSölârïs et les locales</title>
		<link>http://imil.net/wp/2009/10/25/opensolaris-et-les-locales/</link>
		<comments>http://imil.net/wp/2009/10/25/opensolaris-et-les-locales/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 11:01:11 +0000</pubDate>
		<dc:creator>iMil</dc:creator>
				<category><![CDATA[Blogroll]]></category>
		<category><![CDATA[locales]]></category>
		<category><![CDATA[OpenSolaris]]></category>

		<guid isPermaLink="false">http://imil.net/wp/?p=314</guid>
		<description><![CDATA[Parce que cela sera plus pratique, parce que ça fait un bail que j&#8217;y ai pas retouché, parce qu&#8217;il y a certaines technos que j&#8217;ai envie de vraiment manipuler et parce que j&#8217;aime bien varier les plaisirs, j&#8217;ai installé un desktop sous OpenSolaris 2009.06.
L&#8217;installation étant devenue aussi triviale qu&#8217;une bête Ubuntu, je ne m&#8217;étendrai pas [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.sun.com/jperkin/entry/apt_get_and_5_000">Parce que cela sera plus pratique</a>, parce que ça fait un bail que j&#8217;y ai pas retouché, parce qu&#8217;il y a <a href="http://fr.wikipedia.org/wiki/ZFS">certaines technos</a> que j&#8217;ai envie de vraiment manipuler et parce que j&#8217;aime bien varier les plaisirs, j&#8217;ai installé un desktop sous <a href="http://opensolaris.org/os/">OpenSolaris</a> 2009.06.</p>
<p>L&#8217;installation étant devenue aussi triviale qu&#8217;une bête <a href="http://www.ubuntu.com/">Ubuntu</a>, je ne m&#8217;étendrai pas ici sur cet aspect.</p>
<p>Il y a cependant un élément qui m&#8217;a donné du fil à retordre, un truc qui m&#8217;agace toujours autant, quel que soit l&#8217;UNIX, les <a href="http://en.wikipedia.org/wiki/Locale">locales</a> et prises de tête connexes.</p>
<p>Pour plein de raisons toutes aussi subjectives qu&#8217;historiques, aucune de mes machines n&#8217;utilise <a href="http://fr.wikipedia.org/wiki/UTF-8">UTF-8</a>, et d&#8217;habitude, je place simplement <code>LANG=en_US.ISO8859-15</code> ainsi que <code>LC_CTYPE=fr_FR.ISO8859-15</code>. Première astuce, sous OpenSolaris, il est nécessaire de renseigner la variable <code>LANG</code> dans <code>/etc/default/init</code>. <code>LC_CTYPE</code> trouvera sa place dans un <code>${HOME}/.bashrc</code> ou équivalent.</p>
<p>À ce stade, <a href="http://www.washington.edu/alpine/">alpine</a> et <a href="http://irssi.org/">irssi</a> affichent correctement les caractères accentués.</p>
<p>Arrive alors la configuration du clavier, que j&#8217;ai pour habitude de <i>mapper</i> en <i>qwerty</i>, laissant à la touche <i>Compose</i> (AltGr chez moi) le soin d&#8217;accentuer les caractères. Généralement, je fais cela à l&#8217;aide de ces lignes dans mon fichier <code>/etc/X11/xorg.conf</code> :</p>
<pre>
	Option "XkbRules"   "xorg"
	Option "XkbModel"   "pc105"
	Option "XkbLayout"  "us"
	Option "XkbOptions" "compose:ralt"
</pre>
<p>Ce qui a pour effet de permettre le fonctionnement suivant :</p>
<p>Frappe simultanée de <i>AltGr + &#8216;</i> puis <i>e</i> donne <i>é</i></p>
<p>Sauf que cette fois, sur le X11/gnome fourni par Sun, cette combinaison donne <i>&#8216;é</i> (avec l&#8217;apostrophe devant). Très enervant.<br />
J&#8217;écume une liste infinie de forums, documents, wikis et j&#8217;en passe, sans réellement trouver de solution, et finalement, en désespoir de cause, modifie dans <code>gnome-terminal</code> la valeur de <i>Input Method</i>, me rendant compte qu&#8217;avec la valeur <i>Simple</i>, le comportement que je souhaite se produit.</p>
<p>N&#8217;étant pas exactement à l&#8217;aise avec ce nouveau desktop, je ne me lancerai pas en conjectures infondées, mais à la lecture de plusieurs <i>posts</i>, je crois comprendre qu&#8217;il faut démarrer <code>scim</code> (Smart Common Input Method) sans la session gnome, et placer les valeurs suivantes dans le fichier <code>${HOME}/.profile</code> qui sera lu par <code>gdm</code> :</p>
<pre>
export GTK_IM_MODULE=scim
export QT_IM_MODULE=scim
</pre>
<p>Moyennant quoi: àéüí</p>
<p>phew, ça marche.</p>
<p>J&#8217;aborde le problème de manière tout à fait empirique et je n&#8217;aime pas ça, mais je crois comprendre qu&#8217;un <strong>autre</strong> <i>Input Method manager</i> est installé par defaut, <code>iiim</code>. J&#8217;ai préféré le desinstaller (<code>$ pfexec pkg uninstall SUNWiiim*</code>) afin de ne pas générer de conflits.</p>
<p>Probablement ai-je mal cherché, mais si un lecteur averti possède quelques pointeurs sur la question, je serai ravi de comprendre réellement comment fonctionne tout ce petit monde.</p>
<p><strong>update</strong></p>
<p>ah, oui, le screenshot.<br />
<a href="http://imil.net/gfx/osol-shot.jpg"><br />
<img src="/gfx/osol-shot.jpg" width="400"/><br />
</a><br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://imil.net/wp/2009/10/25/opensolaris-et-les-locales/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

<!-- Served from: imil.net @ 2012-02-09 10:36:10 by W3 Total Cache -->
