<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Kernel FAQs</title><link>http://www.kernelfaq.com/</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/kernelfaq" /><description></description><language>en</language><managingEditor>noreply@blogger.com (Gireesh)</managingEditor><lastBuildDate>Fri, 20 Apr 2012 11:11:21 PDT</lastBuildDate><generator>Blogger</generator><atom:id xmlns:atom="http://www.w3.org/2005/Atom">tag:blogger.com,1999:blog-8738755844193885355</atom:id><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">67</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/">25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/kernelfaq" /><feedburner:info uri="kernelfaq" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><itunes:explicit>no</itunes:explicit><itunes:subtitle></itunes:subtitle><geo:lat>45.363508</geo:lat><geo:long>-75.729009</geo:long><creativeCommons:license>http://creativecommons.org/licenses/by/2.0/</creativeCommons:license><feedburner:emailServiceId>kernelfaq</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fkernelfaq" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fkernelfaq" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fkernelfaq" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/kernelfaq" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fkernelfaq" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fkernelfaq" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fkernelfaq" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><item><title>The Internet Protocol (IP)</title><link>http://feedproxy.google.com/~r/kernelfaq/~3/gs9GrVq0GoE/internet-protocol-ip.html</link><category>Network</category><author>noreply@blogger.com (osfaqs)</author><pubDate>Thu, 10 Feb 2011 03:46:00 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8738755844193885355.post-8014526341181685892</guid><description>&lt;a href="http://4.bp.blogspot.com/_2oAz6eQpkek/SyPgiCF6hoI/AAAAAAAAARM/53t_yKkr8Y0/s1600-h/networking.PNG"&gt;&lt;img alt="Network" border="1" id="BLOGGER_PHOTO_ID_5414418052311320194" src="http://4.bp.blogspot.com/_2oAz6eQpkek/SyPgiCF6hoI/AAAAAAAAARM/53t_yKkr8Y0/s400/networking.PNG" style="cursor: pointer; display: block; height: 128px; margin: 0px auto 10px; text-align: center; width: 128px;" /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif;"&gt;
&lt;span style="font-size: small;"&gt;The network layer of OSI reference model takes care of routing, relaying, moving information from the source to the destination. The popular protocol of the network layer is the Internet Protocol (IP).&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;br /&gt;
IP has two functions:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt; 1. Addressing&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;2. Fragmentation&lt;br /&gt;&lt;br /&gt;
Addressing is about how each node in a network is identified. We make use of IP addresses here. There are two versions of IP addresses. We call them as IPv4 and IPv6 based on the version.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: small;"&gt;Fragmentation is necessary when the datagram (the information from the upper layer - transport layer) has to traverse through a number of networks where the allowed packet size is smaller than the source network. The IP takes care of this fragmentation at the source and reassembly at the destination. There are some fields in the IP header to allow the fragmentation and reassembly. Different fields and the IP header are explained in below paragraphs.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span class="fullpost"&gt;
&lt;u&gt;&lt;b&gt;IP Header Structure&lt;/b&gt;&lt;/u&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-KLRzAQFpzE4/TVPKokGUO2I/AAAAAAAAAV0/vki6XKX5wQw/s1600/ip_header.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="292" src="http://2.bp.blogspot.com/-KLRzAQFpzE4/TVPKokGUO2I/AAAAAAAAAV0/vki6XKX5wQw/s400/ip_header.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="MsoNormal" style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; line-height: normal;"&gt;
&lt;span style="font-size: small;"&gt;&lt;b&gt;Version (4 bits)&lt;/b&gt;: IP header
format (IP version)&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; line-height: normal;"&gt;
&lt;span style="font-size: small;"&gt;&lt;b&gt;Header Length (4 bits)&lt;/b&gt;: Size of
IP header in multiples of 4 bytes. Minimum value is 5 (20 bytes)&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; font-size: small;"&gt;&lt;span style="line-height: 115%;"&gt;&lt;b&gt;Type of Service (1 byte)&lt;/b&gt;: Specifies what
treatment the datagram should undergo as it traverses the network.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-JEWcxwmPlnE/TVPLhAd4uOI/AAAAAAAAAV4/dpqONPDqgmY/s1600/tos.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="120" src="http://3.bp.blogspot.com/-JEWcxwmPlnE/TVPLhAd4uOI/AAAAAAAAAV4/dpqONPDqgmY/s400/tos.PNG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="MsoNormal" style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; line-height: normal;"&gt;
&lt;span style="font-size: small;"&gt;&lt;b&gt;Total Length (2 bytes)&lt;/b&gt;: &amp;nbsp;Datagram length in bytes – includes both header
and data. Maximum size 65535 bytes.&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; line-height: normal;"&gt;
&lt;span style="font-size: small;"&gt;&lt;b&gt;Identification (2 bytes)&lt;/b&gt;: A value
assigned to the datagram by the sender. It is used in assembling the fragments
of a datagram, if required.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; font-size: small;"&gt;&lt;span style="line-height: 115%;"&gt;&lt;b&gt;Flags (3 bits)&lt;/b&gt;:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://4.bp.blogspot.com/-knaGWQyXysw/TVPL07fdgfI/AAAAAAAAAV8/7ClkZzhszuE/s1600/flags.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-knaGWQyXysw/TVPL07fdgfI/AAAAAAAAAV8/7ClkZzhszuE/s1600/flags.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class="MsoNormal" style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; line-height: normal;"&gt;
&lt;span style="font-size: small;"&gt;&lt;b&gt;Fragmentation Offset (13 bits)&lt;/b&gt;: &amp;nbsp;Indicates where in the datagram this fragment
belongs. The offset is measured in units of 64 bits.&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; line-height: normal;"&gt;
&lt;span style="font-size: small;"&gt;&lt;b&gt;Time to Live (1 byte)&lt;/b&gt;: Maximum
lifetime allowed for datagram. TTL is decremented by one each time the datagram
crosses a router; and the datagram is discarded once the TTL reaches zero. The
purpose is to avoid the possibility of undeliverable datagrams indefinitely
keep circulating over the Internet.&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; line-height: normal;"&gt;
&lt;span style="font-size: small;"&gt;&lt;b&gt;Protocol (1 byte)&lt;/b&gt;: &amp;nbsp;Indicates the protocol used by the sender.&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; line-height: normal;"&gt;
&lt;span style="font-size: small;"&gt;Header Checksum (2 bytes): &amp;nbsp;This field protects only the header fields.
Computation: Sum all 16-bit words, then get 1’s complement of it. While a
packet is passed from one network to the other, routers decrement the TTL
field. At that time, they have to re-compute header checksum and fill this
field.&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; line-height: normal;"&gt;
&lt;span style="font-size: small;"&gt;&lt;b&gt;Source and destination addresses&lt;/b&gt;:
4 bytes each for source and destination IPv4 addresses.&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal" style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; line-height: normal;"&gt;
&lt;span style="font-size: small;"&gt;&lt;b&gt;Options (variable length)&lt;/b&gt;: This
field has some optional tools to monitor the proper functioning of several
network functionalities, namely: loose source routing option forces the
datagram to cross a given list of IP devices to reach its destination; the
strict source routing forces the datagram to cross exclusively the given list
of IP devices; the record route option is used to trace the route the datagram
takes; the timestamp option requires each traversed router to record (append)
its IP address and time to the datagram.&lt;/span&gt;&lt;/div&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; font-size: small;"&gt;&lt;span style="line-height: 115%;"&gt;&lt;b&gt;Padding&lt;/b&gt;: &amp;nbsp;All zero field used to guarantee that the
header ends on a 32-bit boundary.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="fullpost"&gt;
&lt;span style="font-family: &amp;quot;Trebuchet MS&amp;quot;,sans-serif; font-size: small;"&gt;&lt;br /&gt;
Reference: &lt;a href="http://astore.amazon.com/kernelfaqs-20/detail/0521869854" rel="nofollow"&gt;Hands-On Networking: From Theory to Practice&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;

&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738755844193885355-8014526341181685892?l=www.kernelfaq.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=gs9GrVq0GoE:pBbY4arl-po:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=gs9GrVq0GoE:pBbY4arl-po:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=gs9GrVq0GoE:pBbY4arl-po:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=gs9GrVq0GoE:pBbY4arl-po:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=gs9GrVq0GoE:pBbY4arl-po:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=gs9GrVq0GoE:pBbY4arl-po:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=gs9GrVq0GoE:pBbY4arl-po:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=gs9GrVq0GoE:pBbY4arl-po:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=gs9GrVq0GoE:pBbY4arl-po:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=gs9GrVq0GoE:pBbY4arl-po:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=gs9GrVq0GoE:pBbY4arl-po:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=gs9GrVq0GoE:pBbY4arl-po:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=gs9GrVq0GoE:pBbY4arl-po:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=gs9GrVq0GoE:pBbY4arl-po:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=gs9GrVq0GoE:pBbY4arl-po:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=gs9GrVq0GoE:pBbY4arl-po:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kernelfaq/~4/gs9GrVq0GoE" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2011-02-10T06:48:26.674-05:00</atom:updated><media:thumbnail url="http://4.bp.blogspot.com/_2oAz6eQpkek/SyPgiCF6hoI/AAAAAAAAARM/53t_yKkr8Y0/s72-c/networking.PNG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.kernelfaq.com/2011/02/internet-protocol-ip.html</feedburner:origLink></item><item><title>SR-IOV in XenServer</title><link>http://feedproxy.google.com/~r/kernelfaq/~3/BrCVuUwkZmk/sr-iov-in-xenserver.html</link><category>Virtualization</category><category>Xen</category><author>noreply@blogger.com (osfaqs)</author><pubDate>Tue, 26 Oct 2010 08:05:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8738755844193885355.post-417603089332179290</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/_2oAz6eQpkek/TMbtxtMITGI/AAAAAAAAAVk/9h9Rw9gjYB4/s1600/xen.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_2oAz6eQpkek/TMbtxtMITGI/AAAAAAAAAVk/9h9Rw9gjYB4/s1600/xen.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
SR-IOV is a PCI device virtualization technology that allows a single PCI device to appear as multiple PCI devices on the physical PCI bus; the real physical device is called the Physical Function (PF) while the others are called Virtual Functions (VFs).&lt;br /&gt;
&lt;br /&gt;
The purpose of this is for the hypervisor to directly assign one or more VFs to a virtual machine (VM) using Intel VT-D technology: the guest will be able to use the VF as any other directly assigned PCI device. &lt;br /&gt;
&lt;br /&gt;
&lt;span class="fullpost"&gt;
The common use case is an SR-IOV NIC. Assigning one or more VFs to a virtual machine allows the virtual machine to directly exploit the hardware without any mediation by the hypervisor. This means better performances and scalability since it has very little or no impact on dom0. &lt;br /&gt;&lt;br /&gt;

On the downside the VFs have no relations with VIFs and bridges in dom0 so they have to be configured separately and independently by the user. Also a virtual machine loses all the assigned VFs after being migrated to a different host. Thus, virtual machines that are migrated between hosts using XenMotion or High Availability (HA) failover require manual reinstatement of VFs on the new host. &lt;br /&gt; &lt;br /&gt;

Because Provisioning Services hosts tend to be network I/O bound rather than memory or CPU bound, they are ideal candidates to take advantage of this capability. The limitations on XenServer virtual machine failover and XenMotion are not significant in a Provisioning Services deployment because Provisioning Services implements its own HA and load balancing mechanisms. &lt;br /&gt; &lt;br /&gt;

&lt;b&gt;Requirements&lt;/b&gt;
&lt;br /&gt;
To make use of this capability, you must have a host server in which a SR-IOV capable network device is installed. The device tested for this article is the Intel® 82599 10 Gigabit Ethernet Controller. &lt;br /&gt;&lt;br /&gt;

Note: The setup procedure below requires that the 10 GigE NIC not be used as the management interface for the host. A second physical NIC must be installed on the system for that purpose.&lt;br /&gt;&lt;br /&gt;

&lt;b&gt;Procedure&lt;/b&gt;&lt;br /&gt;
Use the following procedure to configure an SR-IOV-enabled Provisioning Services VM on XenServer 5.6, provided that your system meets the hardware and firmware requirements described above.&lt;br /&gt;&lt;br /&gt;
&lt;li&gt;Enable iommu on the host&lt;br /&gt;
Edit /boot/extlinux.conf and add iommu=1 to the xen command line options.
Regenerate the bootloader by executing the following within the XenServer host console:&lt;br /&gt;
&lt;pre&gt;extlinux /boot&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Loading the pciback driver into dom0&lt;br /&gt;This must be done every time the host boots. To do this automatically, add the following line to /etc/rc.local:&lt;br /&gt;
&lt;pre&gt;modprobe pciback&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;Reboot the host&lt;/li&gt;
&lt;li&gt;Assign one or more VFs to a virtual machine.&lt;br /&gt;
Get a list of VFs in the system executing the lspci command in the XenServer console. You should see many (such as 120) devices like this:
07:10.0 Ethernet controller: Intel Corporation 82559 Ethernet Controller Virtual Function (rev 01)&lt;br /&gt;&lt;br /&gt;
Assign one of these VFs to the target virtual machine executing the following command:&lt;br /&gt;
&lt;pre&gt;xe vm-param-set other-config:pci=0/0000:07:10.0 uuid=uuid_of_the_VM&lt;/pre&gt;
&lt;br /&gt;&lt;br /&gt;
Substitute 07:10.0 in the example above with the pci bus address of the VF you want to assign.
&lt;/li&gt;
&lt;li&gt;Boot the virtual machine and install the correct VF driver in it. Once the driver is installed, Provisioning Services should be installed and configured as normal.
&lt;/li&gt;
&lt;br /&gt;&lt;br /&gt;

&lt;b&gt;Source&lt;/b&gt;&lt;br /&gt;
&lt;a href="http://support.citrix.com/article/CTX126624" rel="nofollow"&gt;Citrix Xen Knowledge Center&lt;/a&gt;
&lt;br/&gt;&lt;br/&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738755844193885355-417603089332179290?l=www.kernelfaq.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=BrCVuUwkZmk:djRwhUjAoos:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=BrCVuUwkZmk:djRwhUjAoos:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=BrCVuUwkZmk:djRwhUjAoos:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=BrCVuUwkZmk:djRwhUjAoos:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=BrCVuUwkZmk:djRwhUjAoos:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=BrCVuUwkZmk:djRwhUjAoos:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=BrCVuUwkZmk:djRwhUjAoos:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=BrCVuUwkZmk:djRwhUjAoos:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=BrCVuUwkZmk:djRwhUjAoos:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=BrCVuUwkZmk:djRwhUjAoos:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=BrCVuUwkZmk:djRwhUjAoos:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=BrCVuUwkZmk:djRwhUjAoos:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=BrCVuUwkZmk:djRwhUjAoos:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=BrCVuUwkZmk:djRwhUjAoos:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=BrCVuUwkZmk:djRwhUjAoos:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=BrCVuUwkZmk:djRwhUjAoos:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kernelfaq/~4/BrCVuUwkZmk" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2010-10-26T11:05:39.626-04:00</atom:updated><media:thumbnail url="http://2.bp.blogspot.com/_2oAz6eQpkek/TMbtxtMITGI/AAAAAAAAAVk/9h9Rw9gjYB4/s72-c/xen.jpg" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.kernelfaq.com/2010/10/sr-iov-in-xenserver.html</feedburner:origLink></item><item><title>Link Aggregations (Trunking)</title><link>http://feedproxy.google.com/~r/kernelfaq/~3/tCdqZTB8o2Y/link-aggregations-trunking.html</link><category>UNIX</category><category>Network</category><category>FreeBSD</category><category>Mac</category><category>Linux</category><category>Windows</category><category>OpenSolaris</category><category>Solaris</category><author>noreply@blogger.com (osfaqs)</author><pubDate>Sat, 12 Dec 2009 07:37:00 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8738755844193885355.post-5119983322487219029</guid><description>&lt;a href="http://4.bp.blogspot.com/_2oAz6eQpkek/SyPgiCF6hoI/AAAAAAAAARM/53t_yKkr8Y0/s1600-h/networking.PNG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 128px; height: 128px;" src="http://4.bp.blogspot.com/_2oAz6eQpkek/SyPgiCF6hoI/AAAAAAAAARM/53t_yKkr8Y0/s400/networking.PNG" border="1" alt="Network" id="BLOGGER_PHOTO_ID_5414418052311320194" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Definition&lt;/strong&gt;&lt;br /&gt;The intention behind link aggregation is to have a logical interface with higher bandwidth other capabilities by combining a set of physical interfaces.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Different Names&lt;/strong&gt;&lt;br /&gt;Link aggregation is also called Ethernet Bonding or NIC Bonding or Network Bonding (or just Bonding), NIC Teaming (or just Teaming), Port Channel, Link Bundling, EtherChannel, MLT (Multi-Link Trunking), Trunking, Fat Pipe, etc.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;strong&gt;Uses&lt;/strong&gt;&lt;br /&gt;The link aggregations are normally used as a solution for different requirements like&lt;br /&gt;1. using limited IP address space to serve large amount of bandwidth using a number of physical links more than IP addresses&lt;br /&gt;2. security where aggregated interface hides the existence of physical interfaces&lt;br /&gt;3. better connection availability (no change in connection status even if one of the physical link fails)&lt;br /&gt;4. higher performance using physical interfaces with performance less than required&lt;br /&gt;5. load balancing to effectively use physical links to their capacity&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Standard&lt;/strong&gt;&lt;br /&gt;Link aggregations now conform to the IEEE 802.3ad standard. The definition is now moved to a standalone &lt;br /&gt;&lt;br /&gt;standard IEEE 802.1AX. The standard defines link aggregation like this: "Link Aggregation allows one or more links to be aggregated together to form a Link Aggregation Group, such that a MAC client can treat the Link Aggregation Group as if it were a single link". The standard also defined the Link Aggregation Control Protocol (LACP) for the networking devices that intend to support IEEE 802.3ad standard. The devices with LACP support can be used to form a link aggregation via LACP. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Applications&lt;/strong&gt;&lt;br /&gt;Based on the requirements, link aggregation can be typically used in different cases. It can be between two switches thus providing higher bandwidth between the hosts connected through them without hardware upgrade. It can be between a server and a switch in which case the network connection between the server and the switch can provide higher performance. It can also be between servers to provide higher bandwith transfers between them.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Other Sources&lt;/strong&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Link_aggregation" rel="nofollow"&gt;Link Aggregation at Wikipedia&lt;/a&gt;&lt;br /&gt;&lt;a href="http://docs.sun.com/app/docs/doc/816-4554/fpjvl?a=view" rel="nofollow"&gt;Sun Documentation on Link Aggregation&lt;/a&gt;&lt;br /&gt;&lt;a href="http://standards.ieee.org/getieee802/download/802.1AX-2008.pdf" rel="nofollow"&gt;IEEE 802.1AX-2008&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738755844193885355-5119983322487219029?l=www.kernelfaq.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=tCdqZTB8o2Y:UlyeZ17nzaM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=tCdqZTB8o2Y:UlyeZ17nzaM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=tCdqZTB8o2Y:UlyeZ17nzaM:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=tCdqZTB8o2Y:UlyeZ17nzaM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=tCdqZTB8o2Y:UlyeZ17nzaM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=tCdqZTB8o2Y:UlyeZ17nzaM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=tCdqZTB8o2Y:UlyeZ17nzaM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=tCdqZTB8o2Y:UlyeZ17nzaM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=tCdqZTB8o2Y:UlyeZ17nzaM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=tCdqZTB8o2Y:UlyeZ17nzaM:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=tCdqZTB8o2Y:UlyeZ17nzaM:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=tCdqZTB8o2Y:UlyeZ17nzaM:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=tCdqZTB8o2Y:UlyeZ17nzaM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=tCdqZTB8o2Y:UlyeZ17nzaM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=tCdqZTB8o2Y:UlyeZ17nzaM:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=tCdqZTB8o2Y:UlyeZ17nzaM:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kernelfaq/~4/tCdqZTB8o2Y" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2010-06-18T10:57:35.103-04:00</atom:updated><media:thumbnail url="http://4.bp.blogspot.com/_2oAz6eQpkek/SyPgiCF6hoI/AAAAAAAAARM/53t_yKkr8Y0/s72-c/networking.PNG" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.kernelfaq.com/2009/12/link-aggregations-trunking.html</feedburner:origLink></item><item><title>Creating and deleting VNICs in OpenSolaris</title><link>http://feedproxy.google.com/~r/kernelfaq/~3/tc14Um2WGaQ/creating-and-deleting-vnics-in.html</link><category>Network</category><category>OpenSolaris</category><author>noreply@blogger.com (osfaqs)</author><pubDate>Fri, 09 Oct 2009 05:48:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8738755844193885355.post-8137978838896500922</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_2oAz6eQpkek/SvkhWBNy0AI/AAAAAAAAAH0/n0wDBT0eZyU/s1600-h/opensolaris.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 128px; height: 128px;" src="http://2.bp.blogspot.com/_2oAz6eQpkek/SvkhWBNy0AI/AAAAAAAAAH0/n0wDBT0eZyU/s200/opensolaris.png" border="0" alt="OpenSolaris"id="BLOGGER_PHOTO_ID_5402385890174750722" /&gt;&lt;/a&gt;&lt;br /&gt;A physical network adapter is also called a Network Interface Card or in short a NIC. The Crossbow project in OpenSolaris added more virtualization capabilities to the existing network stack starting from OpenSolaris Build 105. The latest OpenSolaris version 2009.06 has Crossbow features enabled.&lt;br /&gt;&lt;br /&gt;A virtual NIC, or in short a VNIC, is a pseudo network interface created over an existing physical NIC. A phisical NIC can have more than one VNICs on it. Each VNICs created will have a separate MAC address. It is possible to make use of Crossbow's resource management to control bandwidth through VNICs.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;In OpenSolaris with Crossbow, it is possible to create virtual NICs using Data Link Administration command dladm. To create a virtual NIC over an existing physical NIC, e1000g0, execute&lt;br /&gt;&lt;code&gt;# dladm create-vnic -t -l e1000g0 vnic1&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;We passed &lt;code&gt;-t&lt;/code&gt; to dladm to indicate that the VNIC is to be made temporary meaning that the VNIC is available until we either reboot the system or delete it through dladm. To create persistent VNICs, remove &lt;code&gt;-t&lt;/code&gt; from the above.&lt;br /&gt;&lt;br /&gt;The option &lt;code&gt;-l e1000g0&lt;/code&gt; indicate that the VNIC is to be created over physical interface e1000g0. The name of newly created VNIC will be &lt;code&gt;vnic1&lt;/code&gt;. This was passed as last argument to dladm.&lt;br /&gt;&lt;br /&gt;To delete an VNIC, we again use &lt;code&gt;dladm&lt;/code&gt; command.&lt;br /&gt;&lt;code&gt;# dladm delete-vnic vnic1&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;To make use of VNICs created through &lt;code&gt;dladm&lt;/code&gt;, they need to be plumbed and assigned a valid IP address. In short, VNICs are similar to any physical NICs once they are created.&lt;br /&gt;&lt;code&gt;# ifconfig vnic1 plumb&lt;/code&gt;&lt;br /&gt;&lt;code&gt;# ifconfig vnic1 1.1.1.1 up&lt;/code&gt;&lt;br /&gt;&lt;code&gt;# ifconfig vnic1 down&lt;/code&gt;&lt;br /&gt;&lt;code&gt;# ifconfig vnic1 unplumb&lt;/code&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738755844193885355-8137978838896500922?l=www.kernelfaq.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=tc14Um2WGaQ:L36fZGKeSxo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=tc14Um2WGaQ:L36fZGKeSxo:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=tc14Um2WGaQ:L36fZGKeSxo:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=tc14Um2WGaQ:L36fZGKeSxo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=tc14Um2WGaQ:L36fZGKeSxo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=tc14Um2WGaQ:L36fZGKeSxo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=tc14Um2WGaQ:L36fZGKeSxo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=tc14Um2WGaQ:L36fZGKeSxo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=tc14Um2WGaQ:L36fZGKeSxo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=tc14Um2WGaQ:L36fZGKeSxo:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=tc14Um2WGaQ:L36fZGKeSxo:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=tc14Um2WGaQ:L36fZGKeSxo:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=tc14Um2WGaQ:L36fZGKeSxo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=tc14Um2WGaQ:L36fZGKeSxo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=tc14Um2WGaQ:L36fZGKeSxo:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=tc14Um2WGaQ:L36fZGKeSxo:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kernelfaq/~4/tc14Um2WGaQ" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2010-06-18T10:57:35.128-04:00</atom:updated><media:thumbnail url="http://2.bp.blogspot.com/_2oAz6eQpkek/SvkhWBNy0AI/AAAAAAAAAH0/n0wDBT0eZyU/s72-c/opensolaris.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.kernelfaq.com/2009/10/creating-and-deleting-vnics-in.html</feedburner:origLink></item><item><title>Process and Thread counts</title><link>http://feedproxy.google.com/~r/kernelfaq/~3/4VNw54y4_nA/process-and-thread-counts.html</link><category>UNIX</category><category>FreeBSD</category><category>Mac</category><category>Linux</category><category>Windows</category><category>OpenSolaris</category><category>Solaris</category><author>noreply@blogger.com (osfaqs)</author><pubDate>Fri, 02 Oct 2009 13:55:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8738755844193885355.post-1466744058300408548</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_2oAz6eQpkek/SvkhsuR9c9I/AAAAAAAAAH8/247zWI9ya30/s1600-h/Computer.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 128px; height: 128px;" src="http://3.bp.blogspot.com/_2oAz6eQpkek/SvkhsuR9c9I/AAAAAAAAAH8/247zWI9ya30/s200/Computer.png" border="0" alt="Computer"id="BLOGGER_PHOTO_ID_5402386280228942802" /&gt;&lt;/a&gt;&lt;br /&gt;While using any operating system, at any time, there may be a need to know the number of active processes and threads. In Microsoft Windows operating systems, it is possible through different GUI-based tools like Windows Built-in Task Manager, SysInternals Process Explorer etc. But in Unix, Linux or any of the Unix variant operating systems, we normally look for commands to get things done.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;The below commands have been tested in OpenSolaris so far. They are expected to work on Linux and other Unix variant operating systems as well.&lt;br /&gt;&lt;br /&gt;For example, to find the number of iperf processes, &lt;br /&gt;&lt;code&gt;# ps -ef | grep iperf | grep -v "grep" | wc -l&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;If you know how this works, you can then skip this paragraph. The first command &lt;code&gt;ps&lt;/code&gt; is the key command which gets us all running processes at that time. The output of &lt;code&gt;ps&lt;/code&gt; is then piped to &lt;code&gt;grep&lt;/code&gt;. The &lt;code&gt;grep&lt;/code&gt; command is used to search for lines containing &lt;code&gt;iperf&lt;/code&gt; (the process we are interested in). Since &lt;code&gt;grep&lt;/code&gt; will also be listed as a process with &lt;code&gt;iperf&lt;/code&gt; word in the same line, we need to get rid of that entry. Otherwise, our list will have one extra entry which we are not interested in. So, we have second &lt;code&gt;grep&lt;/code&gt;. Here we remove all lines containing word &lt;code&gt;grep&lt;/code&gt; in the lines from first &lt;code&gt;grep&lt;/code&gt;. The last command &lt;code&gt;wc&lt;/code&gt; (word count) is used to get count of lines which is nothing but the number of running &lt;code&gt;iperf&lt;/code&gt; processes.&lt;br /&gt;&lt;br /&gt;Similarly to find the number of &lt;code&gt;iperf&lt;/code&gt; threads,&lt;br /&gt;&lt;code&gt;# ps -eLf | grep iperf | grep -v "grep" | wc -l&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Here the only change is in the arguments passed to &lt;code&gt;ps&lt;/code&gt; command. The argument &lt;code&gt;-L&lt;/code&gt; hints &lt;code&gt;ps&lt;/code&gt; to look for only light weight processes (also called threads).&lt;br /&gt;&lt;br /&gt;There is one more way of finding the number of threads. In this method, we make use of &lt;cod&gt;mdb&lt;/code&gt;, the modular debugger.&lt;br /&gt;&lt;br /&gt;To find the number of &lt;code&gt;iperf&lt;/code&gt; threads using this method, execute&lt;br /&gt;&lt;code&gt;# echo ::threadlist | mdb -k | grep iperf | wc -l&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Here passing &lt;code&gt;::threadlist&lt;/code&gt; to &lt;code&gt;mdb&lt;/code&gt; shows a list of threads running in the system. In that list, &lt;code&gt;grep&lt;/code&gt; for &lt;code&gt;iperf&lt;/code&gt; and find the count of lines.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738755844193885355-1466744058300408548?l=www.kernelfaq.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=4VNw54y4_nA:HTUG22v4r5A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=4VNw54y4_nA:HTUG22v4r5A:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=4VNw54y4_nA:HTUG22v4r5A:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=4VNw54y4_nA:HTUG22v4r5A:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=4VNw54y4_nA:HTUG22v4r5A:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=4VNw54y4_nA:HTUG22v4r5A:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=4VNw54y4_nA:HTUG22v4r5A:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=4VNw54y4_nA:HTUG22v4r5A:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=4VNw54y4_nA:HTUG22v4r5A:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=4VNw54y4_nA:HTUG22v4r5A:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=4VNw54y4_nA:HTUG22v4r5A:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=4VNw54y4_nA:HTUG22v4r5A:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=4VNw54y4_nA:HTUG22v4r5A:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=4VNw54y4_nA:HTUG22v4r5A:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=4VNw54y4_nA:HTUG22v4r5A:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=4VNw54y4_nA:HTUG22v4r5A:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kernelfaq/~4/4VNw54y4_nA" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2010-06-18T10:57:35.139-04:00</atom:updated><media:thumbnail url="http://3.bp.blogspot.com/_2oAz6eQpkek/SvkhsuR9c9I/AAAAAAAAAH8/247zWI9ya30/s72-c/Computer.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.kernelfaq.com/2009/10/process-and-thread-counts.html</feedburner:origLink></item><item><title>Naming in Solaris and OpenSolaris</title><link>http://feedproxy.google.com/~r/kernelfaq/~3/34mIc7YY0sw/naming-in-solaris-and-opensolaris.html</link><category>UNIX</category><category>Network</category><category>OpenSolaris</category><category>Solaris</category><author>noreply@blogger.com (osfaqs)</author><pubDate>Sun, 26 Jul 2009 09:01:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8738755844193885355.post-7769684012504566185</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2oAz6eQpkek/SvkdldYbqpI/AAAAAAAAAGs/xZn1DjBAClA/s1600-h/solaris.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 128px; height: 128px;" src="http://4.bp.blogspot.com/_2oAz6eQpkek/SvkdldYbqpI/AAAAAAAAAGs/xZn1DjBAClA/s200/solaris.png" border="0" alt="Solaris"id="BLOGGER_PHOTO_ID_5402381757387090578" /&gt;&lt;/a&gt;&lt;br /&gt;For browsers to be able to display webpages, the underlying network stack has to resolve web address to IP address. This name resolution is performed by different ways. One of them in by using DNS (Domain Name System).&lt;br /&gt;&lt;br /&gt;For example, to open the home page of this site, we request web browser to open the page at www.osfaqs.com. The naming system first resolves www.osfaqs.com to its corresponding IP address using DNS. In a simple way, you can find the IP address for any valid web site using ping. For example, run "ping www.osfaqs.com". Ping program works based on ICMP protocol for which name resolution is required before continuing to send request to www.osfaqs.com. You can see the IP address being displayed by the ping program before sending request to the server hosting www.osfaqs.com.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;In Solaris, naming servers can be specified through a configuration file resolv.conf. This file has a standard location /etc/resolv.conf. To add 208.67.222.222 as one of the naming servers, add an entry in /etc/resolv.conf like this&lt;br /&gt;&lt;code&gt;&lt;br /&gt;nameserver 208.67.222.222&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;If you have multiple naming servers, add them in the same way in separate lines.&lt;br /&gt;&lt;br /&gt;Solaris also has a file, nsswitch.conf, which controls how a process looks up various databases. Each of these databases comes from a source like hosts, groups, users, etc. This file specifies the order in which the naming system has to look up the sources. For the naming system to be able to resolve domain names to IP addresses, make sure that the line with hosts also has dns; i.e., there should be a line in /etc/nsswitch.conf like this&lt;br /&gt;&lt;code&gt;&lt;br /&gt;hosts: files dns&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;If naming fails even after setting up naming system in /etc/resolv.conf and /etc/nsswitch.conf, look at routing table. Default route may be set to a different route.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738755844193885355-7769684012504566185?l=www.kernelfaq.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=34mIc7YY0sw:DjSEv6gTVPI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=34mIc7YY0sw:DjSEv6gTVPI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=34mIc7YY0sw:DjSEv6gTVPI:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=34mIc7YY0sw:DjSEv6gTVPI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=34mIc7YY0sw:DjSEv6gTVPI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=34mIc7YY0sw:DjSEv6gTVPI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=34mIc7YY0sw:DjSEv6gTVPI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=34mIc7YY0sw:DjSEv6gTVPI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=34mIc7YY0sw:DjSEv6gTVPI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=34mIc7YY0sw:DjSEv6gTVPI:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=34mIc7YY0sw:DjSEv6gTVPI:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=34mIc7YY0sw:DjSEv6gTVPI:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=34mIc7YY0sw:DjSEv6gTVPI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=34mIc7YY0sw:DjSEv6gTVPI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=34mIc7YY0sw:DjSEv6gTVPI:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=34mIc7YY0sw:DjSEv6gTVPI:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kernelfaq/~4/34mIc7YY0sw" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2010-06-18T10:57:35.289-04:00</atom:updated><media:thumbnail url="http://4.bp.blogspot.com/_2oAz6eQpkek/SvkdldYbqpI/AAAAAAAAAGs/xZn1DjBAClA/s72-c/solaris.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.kernelfaq.com/2009/07/naming-in-solaris-and-opensolaris.html</feedburner:origLink></item><item><title>Changing MTU for an interface in Solaris</title><link>http://feedproxy.google.com/~r/kernelfaq/~3/fdPKBITCgP0/changing-mtu-for-interface-in-solaris.html</link><category>UNIX</category><category>Network</category><category>OpenSolaris</category><category>Solaris</category><author>noreply@blogger.com (osfaqs)</author><pubDate>Tue, 21 Jul 2009 11:38:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8738755844193885355.post-3916714593477433636</guid><description>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_2oAz6eQpkek/SvkdldYbqpI/AAAAAAAAAGs/xZn1DjBAClA/s1600-h/solaris.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 128px; height: 128px;" src="http://4.bp.blogspot.com/_2oAz6eQpkek/SvkdldYbqpI/AAAAAAAAAGs/xZn1DjBAClA/s200/solaris.png" border="0" alt="Solaris"id="BLOGGER_PHOTO_ID_5402381757387090578" /&gt;&lt;/a&gt;&lt;br /&gt;MTU (Maximum Transfer Unit) of an interface specifies the maximum number of bytes (octets)  of a protocol data unit (PDU) supported by the protocol. For example, in Ethernet v2, the MTU has been standardized to 1500 bytes. In case of Jumbo Ethernet Frames, usually MTU can be in the range from 1500 to 9000. Some hardwares support more than 9000 (upto 16Kilobytes). The maximum limit is set by the hardware vendors.&lt;br /&gt;&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;In Solaris, MTU of an interface can be changed (at least) in two ways. One is by using ifconfig as in other operating systems and the other is by using dladm (Data Link Administration command).&lt;br /&gt;&lt;br /&gt;Similar to Linux, FreeBSD and other operating systems, MTU of an interface can be changed using ifconfig.&lt;br /&gt;Usage:&lt;br /&gt;&lt;pre&gt;ifconfig &amp;lt;interface&amp;gt; mtu &amp;lt;new_allowable_mtu&amp;gt;&lt;/pre&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;pre&gt;ifconfig bge0 mtu 6000&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;In Solaris, it is also possible to change MTU of an interface using dladm command. For this, the interface should be in unplumbed state.&lt;br /&gt;Usage:&lt;br /&gt;&lt;pre&gt;dladm set-linkprop -p mtu=&amp;lt;new_allowable_mtu&amp;gt; &amp;lt;interface&amp;gt;&lt;/pre&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;pre&gt;dladm set-linkprop -p mtu=2000 bge0&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Note that the MTU changed using dladm command is persistent. For a temporary change in MTU, pass an extra -t as below:&lt;br /&gt;&lt;pre&gt;dladm set-linkprop -t -p mtu=&amp;lt;new_allowable_mtu&amp;gt; &amp;lt;interface&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738755844193885355-3916714593477433636?l=www.kernelfaq.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=fdPKBITCgP0:aQ1uiAu1eXI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=fdPKBITCgP0:aQ1uiAu1eXI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=fdPKBITCgP0:aQ1uiAu1eXI:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=fdPKBITCgP0:aQ1uiAu1eXI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=fdPKBITCgP0:aQ1uiAu1eXI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=fdPKBITCgP0:aQ1uiAu1eXI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=fdPKBITCgP0:aQ1uiAu1eXI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=fdPKBITCgP0:aQ1uiAu1eXI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=fdPKBITCgP0:aQ1uiAu1eXI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=fdPKBITCgP0:aQ1uiAu1eXI:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=fdPKBITCgP0:aQ1uiAu1eXI:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=fdPKBITCgP0:aQ1uiAu1eXI:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=fdPKBITCgP0:aQ1uiAu1eXI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=fdPKBITCgP0:aQ1uiAu1eXI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=fdPKBITCgP0:aQ1uiAu1eXI:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=fdPKBITCgP0:aQ1uiAu1eXI:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kernelfaq/~4/fdPKBITCgP0" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2010-06-18T10:57:35.313-04:00</atom:updated><media:thumbnail url="http://4.bp.blogspot.com/_2oAz6eQpkek/SvkdldYbqpI/AAAAAAAAAGs/xZn1DjBAClA/s72-c/solaris.png" height="72" width="72" /><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.kernelfaq.com/2009/07/changing-mtu-for-interface-in-solaris.html</feedburner:origLink></item><item><title>Solaris Device Driver Attach Failure</title><link>http://feedproxy.google.com/~r/kernelfaq/~3/_T5jZq6Y8Cg/solaris-device-driver-attach-failure.html</link><category>Kernel</category><category>Solaris</category><author>noreply@blogger.com (Gireesh)</author><pubDate>Sat, 11 Jul 2009 06:03:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8738755844193885355.post-9042424059986332435</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://i247.photobucket.com/albums/gg149/gireeshdn/solaris.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="Solaris" border="0" rg="true" src="http://i247.photobucket.com/albums/gg149/gireeshdn/solaris.jpg" /&gt; &lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;p&gt;Many times, we have seen failure while attaching a driver module to its corresponding device(s). The more frequent error message is "driver loaded successfully but failed to attach". We don't find any more information in the system log (/var/adm/messages or dmesg) too.&lt;/p&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;
&lt;p&gt;During the driver attach, the Operating System tries to know the presence of the device to which driver module is to be attached. To do this, it checks the &lt;code&gt;name&lt;/code&gt; property of each device in the device tree and them proceeds with matching &lt;code&gt;compatible&lt;/code&gt; property if it finds no match. If it finds no matching &lt;code&gt;compatible&lt;/code&gt; property, then it fails the attach operation.&lt;/p&gt;&lt;br /&gt;
&lt;p&gt;We can make use of &lt;code&gt;-i&lt;/code&gt; (the alias) option of &lt;code&gt;add_drv&lt;/code&gt; to specify device to which the driver need to be attached. For example, to attach driver module &lt;code&gt;xyz&lt;/code&gt; to a PCIe device with vendor ID &lt;code&gt;0xABCD&lt;/code&gt; and device ID &lt;code&gt;0x1234&lt;/code&gt;, use &lt;code&gt;add_drv -i '"pciexABCD,1234"' xyz&lt;/code&gt;. This will result in attaching driver module &lt;code&gt;xyz&lt;/code&gt; to the device with vendor ID &lt;code&gt;0xABCD&lt;/code&gt; and device ID &lt;code&gt;0x1234&lt;/code&gt;. This can be verified by running &lt;code&gt;modinfo&lt;/code&gt;.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738755844193885355-9042424059986332435?l=www.kernelfaq.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=_T5jZq6Y8Cg:bUH1491Oltk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=_T5jZq6Y8Cg:bUH1491Oltk:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=_T5jZq6Y8Cg:bUH1491Oltk:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=_T5jZq6Y8Cg:bUH1491Oltk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=_T5jZq6Y8Cg:bUH1491Oltk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=_T5jZq6Y8Cg:bUH1491Oltk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=_T5jZq6Y8Cg:bUH1491Oltk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=_T5jZq6Y8Cg:bUH1491Oltk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=_T5jZq6Y8Cg:bUH1491Oltk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=_T5jZq6Y8Cg:bUH1491Oltk:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=_T5jZq6Y8Cg:bUH1491Oltk:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=_T5jZq6Y8Cg:bUH1491Oltk:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=_T5jZq6Y8Cg:bUH1491Oltk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?i=_T5jZq6Y8Cg:bUH1491Oltk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=_T5jZq6Y8Cg:bUH1491Oltk:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/kernelfaq?a=_T5jZq6Y8Cg:bUH1491Oltk:63t7Ie-LG7Y"&gt;&lt;img src="http://feeds.feedburner.com/~ff/kernelfaq?d=63t7Ie-LG7Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kernelfaq/~4/_T5jZq6Y8Cg" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-08-15T07:59:01.724-04:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.kernelfaq.com/2009/07/solaris-device-driver-attach-failure.html</feedburner:origLink></item><item><title>Getting Solaris Live Core Dump</title><link>http://feedproxy.google.com/~r/kernelfaq/~3/rCRbc-T7nJI/getting-solaris-live-core-dump.html</link><category>Kernel</category><category>Solaris</category><author>noreply@blogger.com (Gireesh)</author><pubDate>Sun, 04 Jan 2009 06:22:00 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8738755844193885355.post-3116307416776384814</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://i247.photobucket.com/albums/gg149/gireeshdn/solaris.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="Computer" border="0" rg="true" src="http://i247.photobucket.com/albums/gg149/gireeshdn/solaris.jpg" /&gt; &lt;/a&gt;&lt;/div&gt;
“Live core” is the crash dump of the live running Solaris system, without actually rebooting or altering the system in any way.

This requires understanding of &lt;bold style="font-weight: bold;"&gt;dumpadm&lt;/bold&gt; and &lt;bold style="font-weight: bold;"&gt;savecore&lt;/bold&gt; commands. Man pages of these commands can be found online at Sun Documentation site.

Find primary memory size:
&lt;pre&gt;
-bash-3.00# prtconf | grep Memory
Memory size: 8192 Megabytes
&lt;/pre&gt;

Generate the core dump device (good to have its size same as primary memory size)
&lt;pre&gt;
-bash-3.00# mkfile -n 8G /var/crash/myhost/livecore
-bash-3.00# ls -l /var/crash/myhost/
total 50
-rw-r--r--   1 root     root           3 Jan  2 04:33 bounds
-rw------T   1 root     root     8589934592 Jan  2 04:23 livecore
&lt;/pre&gt;
&lt;span class="fullpost"&gt;
Using dumpadm (Dump administration command), set dump device as the above generated file
&lt;pre&gt;
-bash-3.00# dumpadm -d /var/crash/myhost/livecore
Dump content: kernel pages
Dump device: /var/crash/myhost/livecore (dedicated)
Savecore directory: /var/crash/myhost
Savecore enabled: yes
&lt;/pre&gt;

Generate live core using savecore:
&lt;pre&gt;
-bash-3.00# savecore -L
dumping to /var/crash/myhost/livecore, offset 65536, content: kernel
100% done: 564893 pages dumped, compression ratio 2.91, dump succeeded
System dump time: Fri Jan  2 04:26:41 2009
Constructing namelist /var/crash/myhost/unix.29
Constructing corefile /var/crash/myhost/vmcore.29
100% done: 564893 of 564893 pages saved
&lt;/pre&gt;

Core dump generated two files: vmcore.29 and unix.29.
&lt;pre&gt;
-bash-3.00# ls -l /var/crash/myhost/
total 12284738
-rw-r--r--   1 root     root           3 Jan  2 04:33 bounds
-rw------T   1 root     root     8589934592 Jan  2 04:33 livecore
-rw-r--r--   1 root     root     1913028 Jan  2 04:30 unix.29
-rw-r--r--   1 root     root     4675993600 Jan  2 04:33 vmcore.29
&lt;/pre&gt;

&lt;pre&gt;
-bash-3.00# file  /var/crash/myhost/vmcore.29
/var/crash/myhost/vmcore.29:     SunOS 5.10 Generic_127127-11 64-bit SPARC crash dump from ''
&lt;/pre&gt;

&lt;pre&gt;
-bash-3.00# file  /var/crash/myhost/unix.29
/var/crash/myhost/unix.29:       ELF 64-bit MSB executable SPARCV9 Version 1, UltraSPARC1 Extensions Required, statically linked, not stripped, no debugging information available
&lt;/pre&gt;

Man pages online:
&lt;li&gt;dumpadm (1M) : &lt;br/&gt;&lt;a rel="nofollow" href="http://docs.sun.com/app/docs/doc/819-2240/dumpadm-1m?a=view"&gt;http://docs.sun.com/app/docs/doc/819-2240/dumpadm-1m?a=view&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;savecore (1M) : &lt;br/&gt;&lt;a rel="nofollow" href="http://docs.sun.com/app/docs/doc/816-5166/savecore-1m?a=view"&gt;http://docs.sun.com/app/docs/doc/816-5166/savecore-1m?a=view&lt;/a&gt;&lt;/li&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738755844193885355-3116307416776384814?l=www.kernelfaq.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=yVtvS1P7"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=Ee0HMsUM"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=wpoeZ05N"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=dPtc0CA2"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=dPtc0CA2" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=1rT3a6sw"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=gceTN6jj"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=gceTN6jj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=TwEg33td"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=n0Dibn4G"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=n0Dibn4G" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=lqm2IVXq"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=7Oo0OtAS"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=7Oo0OtAS" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=2h9aDPyr"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=V2uybkkh"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kernelfaq/~4/rCRbc-T7nJI" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-08-15T07:59:37.904-04:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">2</thr:total><feedburner:origLink>http://www.kernelfaq.com/2009/01/getting-solaris-live-core-dump.html</feedburner:origLink></item><item><title>Direct Memory Access (DMA)</title><link>http://feedproxy.google.com/~r/kernelfaq/~3/r30IBNAyeI4/direct-memory-access-dma.html</link><category>Kernel</category><author>noreply@blogger.com (Gireesh)</author><pubDate>Sat, 15 Nov 2008 01:40:00 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8738755844193885355.post-1299334601125910243</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://i247.photobucket.com/albums/gg149/gireeshdn/solaris.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="Computer" border="0" rg="true" src="http://i247.photobucket.com/albums/gg149/gireeshdn/solaris.jpg" /&gt; &lt;/a&gt;&lt;/div&gt;
Direct Memory Access (DMA) is a way by which hardwares directly access host memory for reading or writing independent of CPU. The alternative approach is called the Programmed I/O where all read/write transactions will be through CPU and hence the CPU will be unavailable to other tasks during I/O. Due to the unavailability of CPU during I/O, programmed I/O approach is not preferred where there is a need for higher data transfers between hardwares and memory.&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;br /&gt;For example, a network device uses DMA approach to read/write buffers in host memory. In this way, CPU can be utilized in an efficient manner to process received frames than processing I/O.&lt;br /&gt;&lt;br /&gt;For a DMA transfer, CPU initiates it by issuing a command. The DMA transfer command is executed by a DMA controller on the board. In case of PCI and other technologies, bus mastering technique is mostly used for DMA transfer. In bus mastering technique, the device takes control of the bus and performs DMA transfers on its own&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Types of DMA&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Devices perform one of the three ways of DMA&lt;br /&gt;1. Bus-Master DMA&lt;br /&gt;2. First-Party DMA, and&lt;br /&gt;3. Third-Party DMA&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Bus-Master DMA&lt;/strong&gt;&lt;br /&gt;The device takes control of the bus and performs DMA transfers on its own. In this type, device driver has to program the device's DMA interface (registers) according to its specification.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;First-Party DMA&lt;/strong&gt;&lt;br /&gt;Under first-party DMA, the device uses a channel from the system's DMA engine to drive that device's DMA bus cycles. The device driver has to configure the channel in a cascade mode to avoid DMA engine from interfering with transfers.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Third-Party DMA&lt;/strong&gt;&lt;br /&gt;Third-party DMA uses a system DMA engine resident on the main system board, which has several DMA channels that are available for use by devices. The device relies on the system's DMA engine to perform the data transfers between the device and memory. The driver uses DMA engine routines to initialize and program the DMA engine. For each DMA data transfer, the driver programs the DMA engine and then gives the device a command to initiate the transfer in cooperation with that engine.&lt;br /&gt;&lt;br /&gt;References:&lt;br /&gt;1. &lt;a href="http://dlc.sun.com/osol/docs/content/DRIVER/docinfo.html" rel="nofollow"&gt;Writing Device Drivers&lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://en.wikipedia.org/wiki/Direct_memory_access" rel="nofollow"&gt;Direct Memory Access&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738755844193885355-1299334601125910243?l=www.kernelfaq.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=ILHuJZmq"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=jUIh2r4h"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=QZHzGsAu"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=2wWnzbkZ"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=2wWnzbkZ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=EYDXFPLk"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=ZCGFvnHU"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=ZCGFvnHU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=FSEYXthD"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=XGjcXLnK"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=XGjcXLnK" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=n8Xk0xaZ"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=1lgzkfze"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=1lgzkfze" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=X8ZmyGwp"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=joQ072fP"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kernelfaq/~4/r30IBNAyeI4" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-08-15T08:01:30.813-04:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.kernelfaq.com/2008/11/direct-memory-access-dma.html</feedburner:origLink></item><item><title>TCP Connection Termination</title><link>http://feedproxy.google.com/~r/kernelfaq/~3/B9PEh6408wo/tcp-connection-termination.html</link><category>Network</category><author>noreply@blogger.com (Gireesh)</author><pubDate>Sun, 09 Nov 2008 07:40:00 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8738755844193885355.post-4998590520074125575</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://i247.photobucket.com/albums/gg149/gireeshdn/network.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://i247.photobucket.com/albums/gg149/gireeshdn/network.jpg" alt="Network" /&gt;&lt;/a&gt;&lt;/div&gt;Since TCP is a reliable and ordered delivery protocol, it makes sure that both ends are in sync with each other while terminating a session. Both end systems send a message with FIN bit set. FIN bit indicates connection finish request. Other end sends an ACK to the FIN message.&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;br /&gt;
The connection is considered terminated once both hosts sends termination request through FIN messages and received corresponding ACK mesages.&lt;br /&gt;
&lt;a href="http://i247.photobucket.com/albums/gg149/gireeshdn/tcp_termination.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img alt="TCP Connection Termination" border="0" src="http://i247.photobucket.com/albums/gg149/gireeshdn/tcp_termination.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;
Above figure shows how a TCP connection is terminated between two hosts. &lt;br /&gt;
&lt;br /&gt;
1. TCP connection termination Initiator sends a message with FIN bit set.&lt;br /&gt;
&lt;br /&gt;
2. On receiving connection termination request through FIN, other end initiates connection termination by indicating the upper layer (applications using this connection) that the connection is going to be ended. It sends an ACK.&lt;br /&gt;
&lt;br /&gt;
3. The other end sends a message with FIN bit set indicating that its part of connection termination is also done (meaning that the application using this connection has terminated). It waits until it received a message with ACK and then closes its part of connection.&lt;br /&gt;
&lt;br /&gt;
4. Now the initiator sends ACK to the FIN and waits for double the maximum segment life time to make sure that the ACK has been received by the other end. Then, it closes its part of connection.&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738755844193885355-4998590520074125575?l=www.kernelfaq.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=vBUa4MdA"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=7gyS1byD"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=ZBjfYcNf"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=tWryQ0nL"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=tWryQ0nL" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=OgDmz52I"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=GgyORbkM"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=GgyORbkM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=Yo30UZtE"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=TaNaUJeH"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=TaNaUJeH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=uSy3nYj6"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=NvV4Siwo"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=NvV4Siwo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=SFD6nF03"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=hs94s5HE"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kernelfaq/~4/B9PEh6408wo" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-08-15T08:01:40.377-04:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.kernelfaq.com/2008/11/tcp-connection-termination.html</feedburner:origLink></item><item><title>TCP 3-way Handshake in Connection Establishment</title><link>http://feedproxy.google.com/~r/kernelfaq/~3/9JgY5jPgu-s/tcp-is-transport-layer-protocol-which.html</link><category>Network</category><author>noreply@blogger.com (Gireesh)</author><pubDate>Sun, 09 Nov 2008 04:48:00 PST</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8738755844193885355.post-3490335534702153534</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://i247.photobucket.com/albums/gg149/gireeshdn/network.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="Network" border="0" src="http://i247.photobucket.com/albums/gg149/gireeshdn/network.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
TCP is a transport layer protocol which is responsible for reliable and ordered delivery of stream of bytes from source to destination. One end acts as a server and the other acts as a client. Before starting any data transfer it has to establish a session between client and server.&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;br /&gt;
To establish such a session (connection), TCP uses 3-way handshake method. During this period, both clients and servers exchange connection parameters and also do negotiate on the values to be used between them. &lt;br /&gt;
&lt;br /&gt;
For example, some parameters like interface MTU, TCP window size etc. in one system can be more than that supported by other. In that case, they exchange their current settings and set to a mutually usable value for that connection.&lt;br /&gt;
&lt;br /&gt;
Below figure shows how a TCP session is established between a client and a server. This involves three steps or handshakes. Each steps involves sending a frame from originator to destination.&lt;br /&gt;
&lt;br /&gt;
&lt;img align="center" alt="TCP 3-way Handshake" border="0" rg="true" src="http://i247.photobucket.com/albums/gg149/gireeshdn/tcp_3way_handshake.jpg" /&gt;&lt;br /&gt;
&lt;br /&gt;
1. Client sends its sequence number SEQ[A] to server. This sequence number is used by the server for synchronization which is very important for TCP's reliable and ordered delivery. Optionally, client and servers can synchronize their MSS (Maximum Segment Size). MSS is defined by the length field. If MSS is specified by client, through this it informs server that it can receive segments whose size can not exceed MSS. It sets acknowledgement field to 0 since this is the first frame to server in this session.&lt;br /&gt;
&lt;br /&gt;
2. Server sends acknowledgement to the received frame (ACK) along with its sequence number SEQ[B]. Again, similar to server client uses this for synchronization between them. While sending ACK to client, it increments the sequence number (SEQ[A] + 1) which indiates to client that the server has received the frame with sequence SEQ[A] and expecting to receive new sequence frame (SEQ[A] + 1).&lt;br /&gt;
&lt;br /&gt;
3. Now client acknowledges the frame from server by sending frame with (SEQ[B] + 1).&lt;br /&gt;
&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738755844193885355-3490335534702153534?l=www.kernelfaq.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=nXL4XQT6"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=QzgOG9F5"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=AgbdCh8M"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=BGbMGfK6"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=BGbMGfK6" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=w6zajYoe"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=h8PzSXfF"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=h8PzSXfF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=nfpNE3fW"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=QwOf3VAM"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=QwOf3VAM" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=uckSbwfm"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=hOz7TCZm"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=hOz7TCZm" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=bD7TJiva"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=Ndr9lFCZ"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kernelfaq/~4/9JgY5jPgu-s" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-08-15T08:01:47.502-04:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.kernelfaq.com/2008/11/tcp-is-transport-layer-protocol-which.html</feedburner:origLink></item><item><title>Two Drivers In A Single Loadable Module</title><link>http://feedproxy.google.com/~r/kernelfaq/~3/gK5sSfXqfp8/two-drivers-in-single-loadable-module.html</link><category>Kernel</category><category>Solaris</category><author>noreply@blogger.com (Gireesh)</author><pubDate>Sun, 12 Oct 2008 20:30:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8738755844193885355.post-3352713817729539603</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://i247.photobucket.com/albums/gg149/gireeshdn/solaris.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="Computer" border="0" rg="true" src="http://i247.photobucket.com/albums/gg149/gireeshdn/solaris.jpg" /&gt; &lt;/a&gt;&lt;/div&gt;
Including two drivers in a single loadable module is not supported.
&lt;br/&gt;&lt;br/&gt;
However, it can be done in a non-compliant way by making three loadable modules.
&lt;br/&gt;&lt;br/&gt;
Put all the driver code in one common module and write two small wrapper modules for each driver. The small wrappers need _init, _fini, _info, dev_ops/cb_ops structures for the driver and a line so the two small driver wrappers depend on the main module and get linked with its symbols. &lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br/&gt;
Each mini-driver stub should include: 

char _depends_on[] = "misc/foo";
where "misc/foo" is the name of the common code module.
&lt;br /&gt;&lt;br/&gt;
The common module would be a "misc." module, with it's own _init, _fini and _info functions. The module ops would be of the "misc" type using a modlmisc structure (look this up in &amp;gt;sys/modctl.h&amp;lt;).
&lt;br /&gt;&lt;br /&gt;
The underlying driver just includes the common shared code.
&lt;br /&gt;&lt;br /&gt;
The mini-driver stubs each have their own separate dev_ops structures and can be made unloadable. The misc module with the common driver code will be automatically held via the driver stub modules depending on them.
&lt;br /&gt;&lt;br /&gt;
Note that this method, and using modlmisc, are not DDI-compliant, and so may not work in future releases of Solaris.
&lt;br /&gt;&lt;br /&gt;
Source: &lt;a href="http://developers.sun.com/solaris/developer/support/driver/faqs.html#QA4.11" rel="nofollow"&gt;http://developers.sun.com/solaris/developer/support/driver/faqs.html#QA4.11&lt;/a&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738755844193885355-3352713817729539603?l=www.kernelfaq.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=S2cBLn5x"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=ToCwrVkh"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=KZxUMwYu"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=8rRhHGgn"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=8rRhHGgn" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=yXiMwo6L"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=HCttEEle"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=HCttEEle" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=XFsIdWMX"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=wyBRLmyp"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=wyBRLmyp" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=PLcTSAuB"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=dSxsCX1A"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=dSxsCX1A" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=gAeuZ13e"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=7KH0nms9"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kernelfaq/~4/gK5sSfXqfp8" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-08-15T08:01:54.540-04:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.kernelfaq.com/2008/10/two-drivers-in-single-loadable-module.html</feedburner:origLink></item><item><title>Configuring NIS in Solaris</title><link>http://feedproxy.google.com/~r/kernelfaq/~3/lcmrnJbnV8c/notes-from-usrlibnetsvcypypstart-when.html</link><category>Network</category><category>Solaris</category><author>noreply@blogger.com (Gireesh)</author><pubDate>Sun, 24 Aug 2008 06:42:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8738755844193885355.post-6525337858908458533</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://i247.photobucket.com/albums/gg149/gireeshdn/network.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="Computer" border="0" rg="true" src="http://i247.photobucket.com/albums/gg149/gireeshdn/network.jpg" /&gt; &lt;/a&gt;&lt;/div&gt;
Notes from /usr/lib/netsvc/yp/ypstart &lt;br /&gt;
&lt;pre&gt;# When to start ypserv
#       The value of $domain is non-null *and*
#       The directory /var/yp/$domain exists *and*
#       There is an executable ypserv in $YPDIR
#
# When to start ypbind
#       The value of $domain is non-null *and*
#       There is an executable ypbind in $YPDIR *and*
#       The directory /var/yp/binding/$domain exists.
&lt;/pre&gt;
&lt;span class="fullpost"&gt;
&lt;b&gt;NIS client configuration&lt;/b&gt;&lt;br /&gt;
1. Run domainname to see if an NIS domainname is returned. If a value is not returned, run domainname NIS_domainname and create &lt;code&gt;/etc/defaultdomain&lt;/code&gt; containing the name of the NIS domainname.
&lt;br /&gt;&lt;br /&gt;
2. Create a directory named &lt;code&gt;/var/yp/binding/`domainname`&lt;/code&gt; if one does not already exist.
&lt;br /&gt;&lt;br /&gt;
3. If you want the NIS client to broadcast for a NIS server (Note: there must be a NIS server on your subnet), start NIS with &lt;code&gt;/usr/lib/netsvc/yp/ypstart&lt;/code&gt;. If you want to manually specify one or more NIS server(s) to use, run &lt;code&gt;ypinit -c&lt;/code&gt; and then &lt;code&gt;/usr/lib/netsvc/yp/ypstart&lt;/code&gt;. Note that each manually specified NIS server must have an entry in &lt;code&gt;/etc/hosts&lt;/code&gt;.
&lt;br /&gt;&lt;br /&gt;
4. Modify the name service switch file (&lt;code&gt;/etc/nsswitch.conf&lt;/code&gt;) to use the NIS databases. You may want to copy &lt;code&gt;/etc/nsswitch.nis&lt;/code&gt; over &lt;code&gt;/etc/nsswitch.conf&lt;/code&gt;. Make sure to modify the &lt;code&gt;hosts:&lt;/code&gt; line in &lt;code&gt;/etc/nsswitch.conf&lt;/code&gt; if you want to use DNS for hostname resolution:
&lt;code&gt;hosts:      dns nis files&lt;/code&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;b&gt;NIS slave configuration&lt;/b&gt;
&lt;br /&gt;
1. Run &lt;code&gt;/usr/sbin/ypinit -s NIS_master&lt;/code&gt; to transfer the NIS maps from the NIS master to the NIS slave. NIS_master must be present in &lt;code&gt;/etc/hosts&lt;/code&gt;.
&lt;br /&gt;&lt;br /&gt;
2. Edit &lt;code&gt;/var/yp/binding/`domainname`/ypservers&lt;/code&gt; and add the hostname of the NIS slave to ensure that &lt;code&gt;ypbind&lt;/code&gt; binds to the local host.
&lt;br /&gt;&lt;br /&gt;
3. Stop and restart NIS services via &lt;code&gt;/usr/lib/netsvc/yp/ypstop&lt;/code&gt; and &lt;code&gt;/usr/lib/netsvc/yp/ypstart&lt;/code&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;b&gt;Miscellaneous NIS notes&lt;/b&gt;&lt;br /&gt;
The NIS line length limit is 1024 characters.
&lt;br /&gt;&lt;br /&gt;
Starting NIS
&lt;code&gt;/usr/lib/netsvc/yp/ypstart&lt;/code&gt;
Stopping NIS
&lt;code&gt;/usr/lib/netsvc/yp/ypstop&lt;/code&gt;
To stop NIS at system boot, remove the file &lt;code&gt;/etc/defaultdomain&lt;/code&gt;.
&lt;br /&gt;&lt;br /&gt;
&lt;b&gt;NIS troubleshooting&lt;/b&gt;&lt;br /&gt;
If NIS appears to hang when pushing maps from the NIS master to NIS slave servers, check the contents of &lt;code&gt;/var/yp/ypxfr.log&lt;/code&gt;. "touch" the file if it is not created.
&lt;br /&gt;&lt;br /&gt;
&lt;code&gt;Create clnt failure: RPC: Program not registered&lt;/code&gt;&lt;br /&gt;
If you receive this error when attempting to change a user's password, the &lt;code&gt;rpc.yppasswdd&lt;/code&gt; daemon is not running on the NIS master server. It is located in &lt;code&gt;/usr/lib/netsvc/yp&lt;/code&gt;&lt;br /&gt;
More information: &lt;a href="http://www.netsys.com/sunmgr/1998-08/msg00030.html" rel="nofollow"&gt;http://www.netsys.com/sunmgr/1998-08/msg00030.html&lt;/a&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;code&gt;passwd (NIS): Couldn't change passwd/attributes for user&lt;/code&gt;&lt;br /&gt;
The &lt;code&gt;rpc.yppasswdd&lt;/code&gt; daemon is probably running, but it is not pointing to the directory containing the NIS maps. By default, &lt;code&gt;rpc.yppasswdd&lt;/code&gt; looks for NIS maps in &lt;code&gt;/var/yp&lt;/code&gt;. If NIS maps are in &lt;code&gt;/var/yp/maps&lt;/code&gt;, for example, use the following command to start &lt;code&gt;rpc.yppasswdd&lt;/code&gt;
&lt;code&gt;/usr/lib/netsvc/yp/rpc.yppasswdd -D /var/yp/maps&lt;/code&gt;&lt;br /&gt;
More information: &lt;a href="http://aa11.cjb.net/sun_managers/2000/01/msg00160.html" rel="nofollow"&gt;http://aa11.cjb.net/sun_managers/2000/01/msg00160.html&lt;/a&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;code&gt;No response from ypxfr on host&lt;/code&gt;&lt;br /&gt;
Check &lt;code&gt;/var/yp/ypxfr.log&lt;/code&gt;. It is possible that the /var file system on the remote host is full.
&lt;code&gt;Thu May 31 10:33:16: Transferred map ypservers from host (2 entries).
write: No space left on device&lt;/code&gt;
&lt;br /&gt;&lt;br /&gt;
Maps are pushed from the master server to the slave servers via the make utility and the NIS Makefile located in &lt;code&gt;/var/yp&lt;/code&gt;. Maps are pulled from the master server via the ypxfr utility.
&lt;br /&gt;&lt;br /&gt;
Push maps from master server
&lt;code&gt;cd /var/ypmake&lt;/code&gt;
&lt;br /&gt;&lt;br /&gt;
List NIS maps
&lt;code&gt;ypcat -x&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;-- or --&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;ypwhich -x&lt;/code&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;b&gt;List of NIS servers&lt;/b&gt;&lt;br /&gt;
&lt;code&gt;ypcat ypservers&lt;/code&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;b&gt;Which NIS server are you bound to?&lt;/b&gt;&lt;br /&gt;
&lt;code&gt;ypwhich&lt;/code&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;b&gt;Forcing ypbind to use a particular NIS server&lt;/b&gt;&lt;br /&gt;
&lt;code&gt;/usr/lib/netsvc/yp/ypbind -ypsetme&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;ypset NIS_server&lt;/code&gt;&lt;br /&gt;
&lt;code&gt;ypwhich (to confirm NIS server)&lt;/code&gt;
&lt;br /&gt;&lt;br /&gt;
Master and slave servers are distinguished by their ability to effect permanent changes to NIS maps. Changes may be made to an NIS map on a slave server, but the next map transfer from the master will overlay this change.
&lt;br /&gt;&lt;br /&gt;
Source: &lt;a href="http://www.brandonhutchinson.com/Solaris_NIS_configuration.html" rel="nofollow"&gt;http://www.brandonhutchinson.com/Solaris_NIS_configuration.html&lt;/a&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738755844193885355-6525337858908458533?l=www.kernelfaq.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=JjJw8uQp"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=Vm2M3EEa"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=PP0MragV"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=Fk8PvZh8"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=Fk8PvZh8" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=BmpD8guG"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=MmrA8zoV"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=MmrA8zoV" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=xWKttFSE"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=MTK5QXci"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=MTK5QXci" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=R5rUG9Sp"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=vgBUTzUZ"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=vgBUTzUZ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=d8BZUZhM"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=jAZwyiEa"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kernelfaq/~4/lcmrnJbnV8c" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-08-15T08:02:02.847-04:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.kernelfaq.com/2008/08/notes-from-usrlibnetsvcypypstart-when.html</feedburner:origLink></item><item><title>Linux Kernel Cross-compilation</title><link>http://feedproxy.google.com/~r/kernelfaq/~3/hCqLgHD_zaA/linux-kernel-cross-compilation.html</link><category>Linux</category><category>Kernel</category><author>noreply@blogger.com (Gireesh)</author><pubDate>Wed, 06 Aug 2008 19:29:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8738755844193885355.post-7318337442636853373</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://i247.photobucket.com/albums/gg149/gireeshdn/linux.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="Computer" border="0" rg="true" src="http://i247.photobucket.com/albums/gg149/gireeshdn/linux.jpg" /&gt; &lt;/a&gt;&lt;/div&gt;
Linux Kernel can be compiled in a machine for a different architecture. This is useful in fixing compilation issues for different architectures without actually using them.

&lt;br /&gt;
&lt;br /&gt;
&lt;span class="fullpost"&gt;
Using ARCH option, the target architecture can be specified. It is also possible to specify the cross-compile toolchain through CROSS_COMPILE and specific compiler using CC options.
&lt;br /&gt;
&lt;br /&gt;
Example:
To compile the kernel for a 64-bit Intel platform,
# make ARCH=x86_64 defconfig
&lt;br /&gt;
&lt;br /&gt;
To compile with ARM toolchain at /usr/local/bin,
# make ARCH=arm CROSS_COMPILE=/usr/local/bin/arm-linux-
&lt;br /&gt;
&lt;br /&gt;
It is useful even for a non-cross-compiled kernel to change what the build system uses for the compiler. Examples of this are using the distcc or ccache programs, both of which help greatly reduce the time it takes to build a kernel. To use the ccache program as part of the build system, enter:
&lt;br /&gt;
&lt;br /&gt;
&lt;code&gt;# make CC="ccache gcc"&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
Source: &lt;a href="http://www.linuxtopia.org/online_books/linux_kernel/kernel_configuration/ch05s04.html" rel="nofollow"&gt;http://www.linuxtopia.org/online_books/linux_kernel/kernel_configuration/ch05s04.html&lt;/a&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738755844193885355-7318337442636853373?l=www.kernelfaq.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=Q8IZEcep"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=gzKV7Jbi"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=abYr9dV3"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=udY1cjx4"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=udY1cjx4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=ikjq4Lsm"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=6u6A6pEf"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=6u6A6pEf" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=A2fu6Dl9"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=PuYxhaex"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=PuYxhaex" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=z6liCymH"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=pejET5P9"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=pejET5P9" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=0qJmGxdk"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=fHpTZmfM"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kernelfaq/~4/hCqLgHD_zaA" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-08-15T08:03:02.871-04:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.kernelfaq.com/2008/08/linux-kernel-cross-compilation.html</feedburner:origLink></item><item><title>Applying patches to Solaris</title><link>http://feedproxy.google.com/~r/kernelfaq/~3/G2CZ2OZ4RoA/applying-patches-to-solaris.html</link><category>Kernel</category><category>Solaris</category><author>noreply@blogger.com (Gireesh)</author><pubDate>Sat, 02 Aug 2008 21:16:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8738755844193885355.post-7254277670973384299</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://i247.photobucket.com/albums/gg149/gireeshdn/solaris.jpg" imageanchor="1" style="background-color: transparent; border: 0pt none; margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="Solaris" height="128" src="http://i247.photobucket.com/albums/gg149/gireeshdn/solaris.jpg" style="border: 0pt none;" width="128" /&gt;&lt;/a&gt;&lt;/div&gt;
Use this procedure to download either a signed or an unsigned Solaris patch and then apply it to your system.

If you want to apply signed patches, you must first set up the package keystore.

&lt;span class="fullpost"&gt;&lt;br /&gt;
1. Gain access to the system in one of the following ways:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a. Log in to the system where you want to apply the patch.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;b. Download the patch and use the ftp command to copy the patch to the target system.
&lt;br /&gt;&lt;br /&gt;
2. Start a web browser and go to the SunSolve Online Patch Portal at http://sunsolve.Sun.COM.&lt;br /&gt;
&lt;br /&gt;
3. Determine whether to download a specific patch or a patch cluster, then do one of the following.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a. Type the patch number (patch-id) in the Find Patch search field, then click Find Patch. Entering patch-id downloads the latest patch revision. If this patch is freely available, the patch README appears. If this patch is not freely available, an ACCESS DENIED message appears.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;b. Note that patch numbers for SPARC based and x86 based systems are different. The patch IDs are listed in the patch README. Ensure that you apply the patch that matches your system architecture.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;c. Select the Recommended Patch Cluster that matches the Solaris release that is running on the system that you want to patch.&lt;br /&gt;
&lt;br /&gt;
4. Download the patch by following these instructions:&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a. To download a copy of the signed patch, click the Download Signed Patch (n bytes) button.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;b. To download an unsigned patch, click the Download Patch (n bytes) button. When the patch or patches are successfully downloaded, close the web browser.&lt;br /&gt;
&lt;br /&gt;
5. Change to the directory that contains the downloaded patch.&lt;br /&gt;
&lt;br /&gt;
6. Become superuser or assume an equivalent role.&lt;br /&gt;
&lt;br /&gt;
7. (Unsigned patch) If you downloaded an unsigned patch, unzip the patch.&lt;br /&gt;
&lt;code&gt;# unzip patch-id&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
8. Apply the signed or unsigned patch.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;a. If you downloaded a signed patch, apply it.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;For example: &lt;code&gt;# patchadd /tmp/111879-01.jar&lt;/code&gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;b. If you downloaded an unsigned patch, apply it.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;For example: &lt;code&gt;# patchadd /tmp/111879-01&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
9. Verify that the patch has been successfully applied.&lt;br /&gt;
For example: &lt;code&gt;# patchadd -p | grep 111879 Patch: 111879-01 Obsoletes:  Requires:  Incompatibles:  Packages: SUNWwsr&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
Source: &lt;a href="http://docs.sun.com/app/docs/doc/819-2379" rel="nofollow"&gt;Sun System Administration Guide: Basic Administration&lt;/a&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738755844193885355-7254277670973384299?l=www.kernelfaq.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=npcAnoVw"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=MsaKt5bU"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=XuGllo17"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=3terIs87"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=3terIs87" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=P3TxuwZp"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=EAURAODp"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=EAURAODp" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=GMdnHTEH"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=V6h5PDGH"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=V6h5PDGH" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=hHP7CuMf"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=habNUKUt"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=habNUKUt" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=zCVhIaAh"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=PhEK7rc9"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kernelfaq/~4/G2CZ2OZ4RoA" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-08-15T08:02:08.107-04:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.kernelfaq.com/2008/08/applying-patches-to-solaris.html</feedburner:origLink></item><item><title>Adding CD/DVD drives to a running Xen domainU guest</title><link>http://feedproxy.google.com/~r/kernelfaq/~3/MeO0m09FuZ8/adding-cddvd-drives-to-running-xen.html</link><category>Virtualization</category><category>Xen</category><author>noreply@blogger.com (Gireesh)</author><pubDate>Sat, 02 Aug 2008 08:50:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8738755844193885355.post-1561030387255041693</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://i247.photobucket.com/albums/gg149/gireeshdn/xen.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="Computer" border="0" rg="true" src="http://i247.photobucket.com/albums/gg149/gireeshdn/xen.jpg" /&gt; &lt;/a&gt;&lt;/div&gt;
Xen provides great flexibility in terms of dynamically adding block devices such as disk drives and CDROM/DVD drives to running domainU guest systems.
&lt;br /&gt;
This is achieved using the &lt;i&gt;xm block-attach&lt;/i&gt; command, the syntax for which is as follows:
&lt;br /&gt;
&lt;pre&gt;xm block-attach &amp;lt;Domain Id&amp;gt; &amp;lt;Backend Device&amp;gt; &amp;lt;Frontend Device&amp;gt; &amp;lt;Mode&amp;gt;
&lt;/pre&gt;
&lt;span class="fullpost"&gt;
where:
&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt; &lt;i&gt;&amp;lt;Domain Id&amp;gt;&lt;/i&gt; is the id of the domainU to which the device is to be attached (this can be obtained by running &lt;i&gt;xm list&lt;/i&gt;)
&lt;/li&gt;
&lt;li&gt; &lt;i&gt;&amp;lt;Backend Device&amp;gt;&lt;/i&gt; represents the device as it is represented on the domain0 host system prefixed with the type. For example:
&lt;/li&gt;&lt;/ul&gt;
&lt;tt&gt;phy:/dev/sr0&lt;/tt&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt; &lt;i&gt;&amp;lt;Frontend Device&amp;gt;&lt;/i&gt; is the device name for access on the domainU guest system. This name &lt;i&gt;must&lt;/i&gt; be prefixed with &lt;i&gt;xvd&lt;/i&gt; otherwise the device will not be visible to the domainU guest. For example:
&lt;/li&gt;
&lt;/ul&gt;
&lt;tt&gt;/dev/xvda1&lt;/tt&gt;
&lt;br /&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt; &lt;i&gt;&amp;lt;Mode&amp;gt;&lt;/i&gt; is the read/write mode under which the device is to be attached. Options are &lt;i&gt;r&lt;/i&gt; for read-only, &lt;i&gt;w&lt;/i&gt; for read/write and &lt;i&gt;w!&lt;/i&gt; for read/write with sharing.
&lt;/li&gt;
&lt;/ul&gt;
With this information in mind we can now attach a DVD device to a running domainU guest. The first step is to identify the correct device on the domain0 host. The device name varies from one Linux distribution to another so the best way to achieve this is to insert is disk into the drive and run the mount command. For example, the following mount output shows an iso9660 format DVD disk on device &lt;i&gt;/dev/sr0&lt;/i&gt;:
&lt;br /&gt;&lt;br /&gt;

&lt;pre&gt;/dev/sr0 on /media/LXFDVD100A type iso9660 (ro,nosuid,nodev,uhelper=hal,uid=500)
&lt;/pre&gt;
&lt;br /&gt;
Next we need to identify the domainU to which we wish to attach the device. A list of running running guests can be obtained using &lt;i&gt;xm list&lt;/i&gt;:
&lt;br /&gt;&lt;br /&gt;
&lt;pre&gt;xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0   875     1     r-----    574.0
XenGuest1                                    3   128     1     -b----     96.4
&lt;/pre&gt;
This shows only one guest running which is XenGuest1 with an ID of 3.
&lt;br /&gt;
With this information we can now attach our DVD device to the domainU guest:
&lt;br /&gt;&lt;br /&gt;
&lt;pre&gt;xm block-attach 3 phy:/dev/sr0 /dev/xvda2 r&lt;/pre&gt;
Once the device is attached log into the domainU system and check the device is now visible:
&lt;br /&gt;&lt;br /&gt;
&lt;pre&gt;brw-r----- 1 root disk 202, 2 2008-05-02 15:12 /dev/xvda2&lt;/pre&gt;
Assuming the device is visible all that remain is to mount it:
&lt;br /&gt;&lt;br /&gt;
&lt;pre&gt;mount /dev/xvda2 /mnt
mount: block device /dev/xvda2 is write-protected, mounting read-only
&lt;/pre&gt;
The device is now mounted and accessible. 
&lt;br /&gt;
To detach the device first unmount it from the domainU system:
&lt;br /&gt;&lt;br /&gt;
&lt;pre&gt;umount /mnt&lt;/pre&gt;
Finally, detach the device from the domain0 host using &lt;i&gt;xm block-detach&lt;/i&gt; combined with the domainU ID and the frontend device name (in this case /dev/xvda2):
&lt;br /&gt;&lt;br /&gt;
&lt;pre&gt;xm block-detach 3 /dev/xvda2&lt;/pre&gt;
&lt;br /&gt;
Source: &lt;a href="http://www.virtuatopia.com/index.php/How_to_add_a_CDROM_or_DVD_drive_to_a_running_Xen_domainU_guest" rel="nofollow"&gt;http://www.virtuatopia.com/index.php/How_to_add_a_CDROM_or_DVD_drive_to_a_running_Xen_domainU_guest&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738755844193885355-1561030387255041693?l=www.kernelfaq.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=rTJewR5k"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=b51Qverp"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=oukMgwpY"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=F6lejyF4"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=F6lejyF4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=2VtrxzxI"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=W8jcBmHf"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=W8jcBmHf" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=q0QbFKaM"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=sLQjmGmY"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=sLQjmGmY" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=5rwzPUvz"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=zzO9I7C4"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=zzO9I7C4" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=JeEaBhxP"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=3yIzVP4c"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kernelfaq/~4/MeO0m09FuZ8" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-08-15T08:03:09.404-04:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.kernelfaq.com/2008/08/adding-cddvd-drives-to-running-xen.html</feedburner:origLink></item><item><title>Building Linux Kernel from a read-only source</title><link>http://feedproxy.google.com/~r/kernelfaq/~3/OPCW0XBCsqk/building-linux-kernel-from-read-only.html</link><category>Linux</category><category>Kernel</category><author>noreply@blogger.com (Gireesh)</author><pubDate>Thu, 31 Jul 2008 19:05:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8738755844193885355.post-3705527446513345670</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://i247.photobucket.com/albums/gg149/gireeshdn/linux.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="Computer" border="0" rg="true" src="http://i247.photobucket.com/albums/gg149/gireeshdn/linux.jpg" /&gt; &lt;/a&gt;&lt;/div&gt;
It is possible to build Linux Kernel using Kernel source in a read-only location like CD/DVD media, remote server which can only be read, etc.
To achieve this, pass as a parameter the location where the built Kernel image is to be placed.

&lt;code&gt;make O=/home/mylogin/kernels/linux-2.6.26/&lt;/code&gt;

Make sure that you pass all other required parameters to Make while building Kernel.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738755844193885355-3705527446513345670?l=www.kernelfaq.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=3WFKbnWT"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=g86ahA6m"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=yHC3MTXG"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=8ZtjpO0S"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=8ZtjpO0S" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=dugtiGus"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=4lbuNPeZ"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=4lbuNPeZ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=YEgyXrYE"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=MGeuLC4Q"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=MGeuLC4Q" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=o9d7cqao"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=8DaqUWc2"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=8DaqUWc2" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=Iy84fHPw"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=5HOjzRRG"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kernelfaq/~4/OPCW0XBCsqk" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-07-05T15:39:54.781-04:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.kernelfaq.com/2008/07/building-linux-kernel-from-read-only.html</feedburner:origLink></item><item><title>Avoiding Firefox CPU Hog</title><link>http://feedproxy.google.com/~r/kernelfaq/~3/wL-zjuTnWSg/how-i-avoided-higher-cpu-usage-by.html</link><category>Windows</category><category>Firefox</category><author>noreply@blogger.com (Gireesh)</author><pubDate>Mon, 14 Jul 2008 10:52:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8738755844193885355.post-5880901432547555493</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://i247.photobucket.com/albums/gg149/gireeshdn/firefox.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="Computer" border="0" rg="true" src="http://i247.photobucket.com/albums/gg149/gireeshdn/firefox.jpg" /&gt; &lt;/a&gt;&lt;/div&gt;

&lt;p&gt;I use Firefox as a primary browser. I always use the latest available version of Firefox, so the current installed version in my system is 3.0.1.&lt;/p&gt;
&lt;p&gt;After updating Firefox to 3.0.1, it started to consume more than 95% CPU. That's very bad for any application. I used &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx" rel="nofollow"&gt;Process Explorer&lt;/a&gt; to get some details about firefox process. I found that the firefox process started a thread "WINMM.dll!timeGetSystem Time+0x44" which was consuming more CPU time.&lt;/p&gt;
&lt;span class="fullpost"&gt;
&lt;p&gt;
&lt;a href="http://i247.photobucket.com/albums/gg149/gireeshdn/firefox_before.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="Firefox CPU Usage - Before" border="0" src="http://i247.photobucket.com/albums/gg149/gireeshdn/firefox_before.png" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 437px; height: 490px;" /&gt;&lt;/a&gt;&lt;br/&gt;
I suspended that thread using process explorer.&lt;br/&gt;
&lt;a href="http://i247.photobucket.com/albums/gg149/gireeshdn/firefox_thread_suspend.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="Firefox Thread Suspend" border="0" src="http://i247.photobucket.com/albums/gg149/gireeshdn/firefox_thread_suspend.png" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 437px; height: 490px;" /&gt;&lt;/a&gt;
&lt;br/&gt;
Now, the CPU utilization is around 5%.&lt;br/&gt;
&lt;a href="http://i247.photobucket.com/albums/gg149/gireeshdn/firefox_cpu_use.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="Firefox CPU Usage" border="0" src="http://i247.photobucket.com/albums/gg149/gireeshdn/firefox_cpu_use.png" style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 436px; height: 490px;" /&gt;&lt;/a&gt;&lt;br/&gt;
I tried this two times. As you can see in the above "CPU Usage History", CPU Usage became very less after suspending "WINMM.dll!timeGetSystem Time+0x44" thread.&lt;br/&gt;
I am not sure about internals of firefox, but this may give some hint on fixing the CPU consumption issue.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738755844193885355-5880901432547555493?l=www.kernelfaq.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=ZNs3huXR"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=ArIqRmQu"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=9F5RA2HS"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=LmR7P5Pc"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=LmR7P5Pc" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=k6WWTEZh"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=PAzbhu18"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=PAzbhu18" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=0Hi9YMIS"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=oW6PmObb"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=oW6PmObb" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=IAtzo5Y0"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=fphYDq4I"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=fphYDq4I" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=TE0yMKzW"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=WdRwH8it"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kernelfaq/~4/wL-zjuTnWSg" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-08-15T08:03:36.909-04:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">3</thr:total><feedburner:origLink>http://www.kernelfaq.com/2008/07/how-i-avoided-higher-cpu-usage-by.html</feedburner:origLink></item><item><title>Subversion Features</title><link>http://feedproxy.google.com/~r/kernelfaq/~3/inr-u_GcYug/subversion-features.html</link><category>SCM</category><author>noreply@blogger.com (Gireesh)</author><pubDate>Mon, 07 Jul 2008 09:58:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8738755844193885355.post-4513026623082688423</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://i247.photobucket.com/albums/gg149/gireeshdn/computer.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="Computer" border="0" rg="true" src="http://i247.photobucket.com/albums/gg149/gireeshdn/computer.jpg" /&gt; &lt;/a&gt;&lt;/div&gt;

Subversion provides many features similar to other SCM tools. Below is a list of features provided by Subversion.
&lt;ul&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Commit_%28data_management%29" rel="nofollow" title="Commit (data management)"&gt;Commits&lt;/a&gt; are true &lt;a href="http://en.wikipedia.org/wiki/Atomicity_%28database_systems%29" rel="nofollow" title="Atomicity (database systems)"&gt;atomic&lt;/a&gt; operations. Interrupted commit operations do not cause repository inconsistency or corruption.
&lt;/li&gt;
&lt;li&gt;Renamed/copied/moved/removed files retain full revision history.&lt;/li&gt;
&lt;li&gt;Directories, renames, and file &lt;a href="http://en.wikipedia.org/wiki/Metadata" rel="nofollow" title="Metadata"&gt;metadata&lt;/a&gt; (but not timestamps) are versioned. Entire directory trees can be moved around and/or copied very quickly, and retain full revision history.&lt;/li&gt;
&lt;li&gt;Versioning of &lt;a href="http://en.wikipedia.org/wiki/Symbolic_link" rel="nofollow" title="Symbolic link"&gt;symbolic links&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Native support for binary files, with space-efficient binary-diff storage.&lt;/li&gt;&lt;span class="fullpost"&gt;&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Apache_HTTP_Server" rel="nofollow" title="Apache HTTP Server"&gt;Apache HTTP Server&lt;/a&gt; as network server, &lt;a href="http://en.wikipedia.org/wiki/WebDAV" rel="nofollow" title="WebDAV"&gt;WebDAV&lt;/a&gt;/&lt;a href="http://en.wikipedia.org/wiki/Delta-V_%28Internet_Protocol%29" rel="nofollow" title="Delta-V (Internet Protocol)"&gt;DeltaV&lt;/a&gt; for &lt;a href="http://en.wikipedia.org/wiki/Protocol_%28computing%29" rel="nofollow" title="Protocol (computing)"&gt;protocol&lt;/a&gt;. There is also an independent server &lt;a href="http://en.wikipedia.org/wiki/Process_%28computing%29" rel="nofollow" title="Process (computing)"&gt;process&lt;/a&gt; that uses a custom protocol over &lt;a class="mw-redirect" href="http://en.wikipedia.org/wiki/TCP/IP" rel="nofollow" title="TCP/IP"&gt;TCP/IP&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Branching_%28software%29" rel="nofollow" title="Branching (software)"&gt;Branching&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Revision_tag" rel="nofollow" title="Revision tag"&gt;tagging&lt;/a&gt; are cheap operations, independent of file size, though Subversion itself does not distinguish between a tag, a branch, and a directory&lt;/li&gt;
&lt;li&gt;Natively &lt;a href="http://en.wikipedia.org/wiki/Client-server" rel="nofollow" title="Client-server"&gt;client/server&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Abstraction_layer" rel="nofollow" title="Abstraction layer"&gt;layered&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Library_%28computing%29" rel="nofollow" title="Library (computing)"&gt;library&lt;/a&gt; design.&lt;/li&gt;
&lt;li&gt;Client/server protocol sends &lt;a href="http://en.wikipedia.org/wiki/Diff" rel="nofollow" title="Diff"&gt;diffs&lt;/a&gt; in both directions.&lt;/li&gt;
&lt;li&gt;Costs are proportional to change size, not data size.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Parsing" rel="nofollow" title="Parsing"&gt;Parsable&lt;/a&gt; output, including &lt;a href="http://en.wikipedia.org/wiki/XML" rel="nofollow" title="XML"&gt;XML&lt;/a&gt; log output.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Open_source" rel="nofollow" title="Open source"&gt;Open source&lt;/a&gt; licensed — "&lt;a href="http://en.wikipedia.org/wiki/CollabNet" rel="nofollow" title="CollabNet"&gt;CollabNet&lt;/a&gt;/&lt;a href="http://en.wikipedia.org/wiki/Tigris.org" rel="nofollow" title="Tigris.org"&gt;Tigris.org&lt;/a&gt; Apache-style license"&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/Internationalization_and_localization" rel="nofollow" title="Internationalization and localization"&gt;Internationalised&lt;/a&gt; program messages.&lt;/li&gt;
&lt;li&gt;File locking for unmergeable files ("reserved checkouts").&lt;/li&gt;
&lt;li&gt;Path-based authorization.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/PHP" rel="nofollow" title="PHP"&gt;PHP&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Python_%28programming_language%29" rel="nofollow" title="Python (programming language)"&gt;Python&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Perl" rel="nofollow" title="Perl"&gt;Perl&lt;/a&gt;, and &lt;a href="http://en.wikipedia.org/wiki/Java_%28programming_language%29" rel="nofollow" title="Java (programming language)"&gt;Java&lt;/a&gt; &lt;a href="http://en.wikipedia.org/wiki/Language_binding" rel="nofollow" title="Language binding"&gt;language bindings&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Full &lt;a href="http://en.wikipedia.org/wiki/MIME" rel="nofollow" title="MIME"&gt;MIME&lt;/a&gt; support - the MIME Type of each file can be viewed or changed, with the software knowing which MIME types can have their differences from previous versions shown.
&lt;/li&gt;&lt;/ul&gt;Source: &lt;a href="http://en.wikipedia.org/wiki/Subversion_%28software%29" rel="nofollow"&gt;http://en.wikipedia.org/wiki/Subversion_(software)&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738755844193885355-4513026623082688423?l=www.kernelfaq.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=w9ZRVt2y"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=wAbcO3gZ"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=EdRKN7rD"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=pLanzv9R"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=pLanzv9R" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=0gwnPNuh"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=70APo3oS"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=70APo3oS" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=jbKQpU8G"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=NvWDEg8t"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=NvWDEg8t" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=IiBvE7g3"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=NZrZBiFm"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=NZrZBiFm" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=p2OXhSqc"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=YaoJNze7"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kernelfaq/~4/inr-u_GcYug" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-08-15T08:04:05.222-04:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.kernelfaq.com/2008/07/subversion-features.html</feedburner:origLink></item><item><title>Subversion - A version control system</title><link>http://feedproxy.google.com/~r/kernelfaq/~3/pbPswVqRWyw/subversion-version-control-system.html</link><category>SCM</category><author>noreply@blogger.com (Gireesh)</author><pubDate>Mon, 30 Jun 2008 09:33:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8738755844193885355.post-8518678254251146279</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://i247.photobucket.com/albums/gg149/gireeshdn/computer.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="Computer" border="0" rg="true" src="http://i247.photobucket.com/albums/gg149/gireeshdn/computer.jpg" /&gt; &lt;/a&gt;&lt;/div&gt;

&lt;p&gt;Subversion is one of the widely used source version controling system. It was initiated by &lt;a href="http://en.wikipedia.org/wiki/CollabNet" rel="nofollow"&gt;CollabNet &lt;/a&gt;during 2000.
&lt;/p&gt;

&lt;p&gt;Subversion is available with major operating systems. In Unix/Linux environments, Subversion can be used through command "svn". To check for installation of svn in a system, you can use "which svn". If installed, "which" returns the path to svn binary.
&lt;/p&gt;

&lt;p&gt;&lt;span class="fullpost"&gt;Subversion source package can be downloaded, built and installed. Source packages are available for download &lt;a href="http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=260&amp;amp;expandFolder=74" rel="nofollow"&gt;here&lt;/a&gt;.
&lt;/p&gt;

&lt;p&gt;Similar to CVS (Concurrent Versions System), Subversion also provides SCM (Source Configuration Management) features like check-in (commiting changes to repository), check-out (getting latest commited version), branch (create a branch to experiment some changes without affecting other users), merge (merging a branch to mainline), etc.&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738755844193885355-8518678254251146279?l=www.kernelfaq.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=5CMUsxrs"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=imvm6Yl8"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=2TrAvBxm"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=ojkowl5W"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=ojkowl5W" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=VhfrfQmk"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=pRWF5GAq"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=pRWF5GAq" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=tgUprnJL"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=o6aksQvw"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=o6aksQvw" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=zoYwj4WN"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=XUk5uzp2"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=XUk5uzp2" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=hg71FVtj"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=Fjs9OiMN"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kernelfaq/~4/pbPswVqRWyw" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-08-15T08:04:13.374-04:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.kernelfaq.com/2008/06/subversion-version-control-system.html</feedburner:origLink></item><item><title>Understanding Filesystem Table (fstab)</title><link>http://feedproxy.google.com/~r/kernelfaq/~3/Ok22aNtfyKs/understanding-filesystem-table-fstab.html</link><category>Linux</category><author>noreply@blogger.com (Gireesh)</author><pubDate>Sun, 15 Jun 2008 19:18:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8738755844193885355.post-6250031476549698699</guid><description>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://i247.photobucket.com/albums/gg149/gireeshdn/linux.jpg"&gt;&lt;img style="cursor: pointer; width: 128px; height: 128px;" src="http://i247.photobucket.com/albums/gg149/gireeshdn/linux.jpg" alt="Linux" border="0" /&gt;&lt;/a&gt;
&lt;/div&gt;I found this article in the &lt;a rel="nofollow" href="http://ubuntuforums.org/showthread.php?t=283131"&gt;Ubuntu Forums&lt;/a&gt;.
&lt;br/&gt;
&lt;font size="3"&gt;&lt;u&gt;&lt;b&gt;Introduction&lt;/b&gt;&lt;/u&gt;&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
/etc/fstab is a system configuration file and is used to tell the Linux kernel which partitions (file systems) to mount and where on the file system tree.&lt;br /&gt;
&lt;br /&gt;
/etc/mtab is an index of all mounted partitions/file systems.&lt;br /&gt;
&lt;br /&gt;
&lt;font color="darkred"&gt;&lt;u&gt;Note&lt;/u&gt;: See references section at the end of this how to for useful links.&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class="fullpost"&gt;
&lt;font size="2"&gt;How to mount&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;The mount command and fstab go hand in hand&lt;/u&gt;:&lt;ol style="list-style-type: decimal"&gt;&lt;li&gt;Options for mount and fstab are similar.&lt;/li&gt;
&lt;li&gt;If a device/partition is not listed in fstab &lt;b&gt;ONLY ROOT&lt;/b&gt; may mount the device/partition.&lt;/li&gt;
&lt;li&gt;Users can mount a removable device using pmount.&lt;/li&gt;
&lt;li&gt;Users may mount a device/partition if the device is in fstab with the proper options.&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;a href="http://www.tuxfiles.org/linuxhelp/mounting.html" target="_blank"&gt;How to mount&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://help.ubuntu.com/community/AutomaticallyMountPartitions" target="_blank"&gt;Mount Partitions Automatically&lt;/a&gt; (At BOOT).&lt;br /&gt;
&lt;a href="http://users.bigpond.net.au/hermanzone/p10.htm" target="_blank"&gt;&lt;font color="navy"&gt;Filesystems and Mounting&lt;/font&gt;&lt;/a&gt; &lt;b&gt;&lt;font color="red"&gt;Thanks Hermanzone&lt;/font&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
mount has a multitude of options. Manpage: &lt;a href="http://www.die.net/doc/linux/man/man8/mount.8.html" target="_blank"&gt;man mount&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;pmount&lt;/u&gt;: Pmount allows a user to mount &lt;u&gt;removable media&lt;/u&gt;.&lt;br /&gt;
pmount uses /media/&amp;lt;NAME&amp;gt; as the mount point.&lt;br /&gt;
&lt;br /&gt;
Syntax: &lt;div style="margin:20px; margin-top:5px; "&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Quote:&lt;/div&gt;
 &lt;table cellpadding="6" cellspacing="0" border="0" width="80%"&gt;
 &lt;tr&gt;
  &lt;td class="ubuntu_quotebackground"&gt;
   
    pmount &amp;lt;device&amp;gt; &amp;lt;NAME&amp;gt;
   
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/div&gt;Example:&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;pmount /dev/dsa1 data&lt;/pre&gt;
&lt;/div&gt;This creates a directory &amp;quot;data&amp;quot; in /media (mount point is /media/data) and mounts your removable device there.&lt;br /&gt;
&lt;br /&gt;
To unmount:&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;pumount &amp;lt;NAME&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;u&gt;Note&lt;/u&gt;: pmount does not like to mount to an existing directory in /media.&lt;ul&gt;&lt;li&gt;For example, if you have a directory /media/usb ; pmount /dev/sda1 usb may fail.&lt;/li&gt;
&lt;li&gt;If you are having problems with gnome-volume-manager or pmount check the contents of /media and delete directories as needed.&lt;/li&gt;
&lt;li&gt;Obviously do not delete a directory in /media if a device is mounted to this mount point.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;a href="http://doc.gwos.org/index.php/Understanding_fstab#Configure_pmount_for_internal_HD" target="_blank"&gt;Configure pmount for internal drives&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;font size="2"&gt;&lt;b&gt;To show your partitions/usb devices, first plug in your usb card.&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;To list your mounted partitions&lt;/u&gt;:&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;mount&lt;/pre&gt;
&lt;/div&gt;&lt;u&gt;To list all your partitions, mounted or not&lt;/u&gt;:&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;sudo fdisk -l&lt;/pre&gt;
&lt;/div&gt;&lt;u&gt;To list all your partitions by &lt;b&gt;UUID&lt;/b&gt;&lt;/u&gt;:&lt;br /&gt;
First connect all your devices, then:&lt;br /&gt;
&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;ls /dev/disk/by-uuid -alh&lt;/pre&gt;
&lt;/div&gt;============== END OF INTRODUCTION ===============&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;font size="3"&gt;&lt;b&gt;&lt;u&gt;fstab Syntax&lt;/u&gt;&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin:20px; margin-top:5px; "&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Quote:&lt;/div&gt;
 &lt;table cellpadding="6" cellspacing="0" border="0" width="100%"&gt;
 &lt;tr&gt;
  &lt;td class="ubuntu_quotebackground"&gt;
   
    [Device] [Mount Point] [File_system] [Options] [dump] [fsck order]
   
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/div&gt;&lt;font size="2"&gt;&lt;b&gt;Device = Physical location.&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
/dev/hd&lt;font color="red"&gt;x&lt;/font&gt;&lt;font color="green"&gt;y&lt;/font&gt; or /dev/sd&lt;font color="red"&gt;x&lt;/font&gt;&lt;font color="green"&gt;y&lt;/font&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;font color="red"&gt;x&lt;/font&gt; will be a letter starting with a, then b,c,....&lt;br /&gt;
&lt;font color="green"&gt;y&lt;/font&gt; will be a number starting with 1, then 2,3,....&lt;br /&gt;
&lt;br /&gt;
Thus hda1 = First partition on the master HD.&lt;blockquote&gt; See &lt;a href="http://ubuntuforums.org/showthread.php?t=282018" target="_blank"&gt;Basic partitioning&lt;/a&gt; for more information&lt;/blockquote&gt;&lt;u&gt;&lt;b&gt;Note&lt;/b&gt;&lt;/u&gt;&lt;b&gt;: zip discs are always numbered &amp;quot;4&amp;quot;.&lt;/b&gt;&lt;br /&gt;
Example: USB Zip = /dev/sda&lt;font color="red"&gt;4&lt;/font&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;b&gt;Note&lt;/b&gt;&lt;/u&gt;&lt;b&gt;: You can also identify a device by udev, volume label (AKA LABEL), or uuid.&lt;br /&gt;
&lt;br /&gt;
These fstab techniques are helpful for removable media because the device (/dev/sd&lt;font color="red"&gt;x&lt;/font&gt;y) may change. For example, sometimes the USB device will be assigned /dev/sda1, other times /dev/sdb1. This depends on what order you connect USB devices, and where (which USB slot) you use to connect. This can be a major aggravation as you must identify the device before you can mount it.  fstab does not work well if the device name keeps changing.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
To list your devices, first put connect your USB device (it does not need to be mounted).&lt;br /&gt;
&lt;u&gt;By volume label&lt;/u&gt;:&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;ls /dev/disk/by-label -lah&lt;/pre&gt;
&lt;/div&gt;&lt;u&gt;By id&lt;/u&gt;:&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;ls /dev/disk/by-id -lah&lt;/pre&gt;
&lt;/div&gt;&lt;u&gt;By uuid&lt;/u&gt;:&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;ls /dev/disk/by-uuid -lah&lt;/pre&gt;
&lt;/div&gt;&lt;b&gt;IMO, LABEL is easiest to use as you can set a label and it is human readable.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;The format to use instead of the device name in the fstab file is&lt;/u&gt;:&lt;br /&gt;
&lt;br /&gt;
LABEL=&amp;lt;label&amp;gt; (Where &amp;lt;label&amp;gt; is the volume label name, ex. &amp;quot;data&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
UUID=&amp;lt;uuid&amp;gt; (Where &amp;lt;uuid&amp;gt; is some alphanumeric (hex) like fab05680-eb08-4420-959a-ff915cdfcb44).&lt;br /&gt;
&lt;br /&gt;
Again, IMO, using a label has a strong advantage with &lt;b&gt;removable media&lt;/b&gt; (flash drives).&lt;br /&gt;
&lt;br /&gt;
&lt;font size="2"&gt;&lt;b&gt;See &lt;u&gt;How to use Labels&lt;/u&gt; below.&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;For udev&lt;/u&gt;: udev does the same thing as LABEL, but I find it more complicated.&lt;br /&gt;
See &lt;a href="http://ubuntuforums.org/showthread.php?t=168221" target="_blank"&gt;How to udev&lt;/a&gt; for a very nice how to on udev.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;font size="2"&gt;&lt;b&gt;Mount point.&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;
This is where the partition is mounted or accessed within the &amp;quot;tree&amp;quot; (ie /mnt/hda1). &lt;br /&gt;
You can use any name you like.&lt;br /&gt;
In general&lt;ol style="list-style-type: decimal"&gt;&lt;li&gt;/mnt Typically used for fixed hard drives HD/SCSI.&lt;/li&gt;
&lt;li&gt;/media Typically used for removable media (CD/DVD/USB/Zip).&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
Examples:&lt;ol style="list-style-type: decimal"&gt;&lt;li&gt;/mnt/windows&lt;/li&gt;
&lt;li&gt;/mnt/data&lt;/li&gt;
&lt;li&gt;/media/usb&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;u&gt;To make a mount point&lt;/u&gt;:&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;sudo mkdir /media/usb&lt;/pre&gt;
&lt;/div&gt;&lt;font size="2"&gt;&lt;b&gt;File types:&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;auto&lt;/u&gt;:&lt;/b&gt; The file system type (ext3, iso9660, etc) it detected automatically. Usually works. Used for removable devices (CD/DVD, Floppy drives, or USB/Flash drives) as the file system may vary on these devices.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Linux file systems&lt;/u&gt;: ext2, ext3, jfs, reiserfs, reiser4, xfs, swap.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Windows&lt;/u&gt;:&lt;br /&gt;
vfat = FAT 32, FAT 16&lt;br /&gt;
ntfs= NTFS&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Note&lt;/u&gt;: For NTFS rw &lt;a href="http://ubuntuforums.org/showthread.php?t=217009" target="_blank"&gt;ntfs-3g&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;CD/DVD/iso&lt;/u&gt;: iso9660&lt;blockquote&gt;&lt;u&gt;To mount an iso image (*.iso NOT CD/DVD device)&lt;/u&gt;: &lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;sudo mount -t iso9660 -o ro,loop=/dev/loop0 &amp;lt;ISO_File&amp;gt; &amp;lt;Mount_Point&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/blockquote&gt;&lt;u&gt;Network file systems&lt;/u&gt;: &lt;b&gt;This section assumes the server and client are already setup.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;nfs&lt;/u&gt; Example:&lt;div style="margin:20px; margin-top:5px; "&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Quote:&lt;/div&gt;
 &lt;table cellpadding="6" cellspacing="0" border="0" width="100%"&gt;
 &lt;tr&gt;
  &lt;td class="ubuntu_quotebackground"&gt;
   
    server:/shared_directory /mnt/nfs nfs &amp;lt;options&amp;gt; 0 0
   
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/div&gt;&lt;blockquote&gt;More detailed information on &lt;a href="https://help.ubuntu.com/community/SettingUpNFSHowTo" target="_blank"&gt;nfs&lt;/a&gt;&lt;/blockquote&gt;&lt;u&gt;smb&lt;/u&gt; (samba) : Samba mounts can be performed very easily via gui tools (See &lt;a href="https://help.ubuntu.com/community/SettingUpSamba" target="_blank"&gt;Ubuntu Wiki Setting up Samba&lt;/a&gt;). If you mount a samba share with the gui tools it will be placed in ~/.gvfs , a hidden directory in your home directory.&lt;br /&gt;
&lt;br /&gt;
This section is limited to fstab and you will need a fstab entry to mount samba shares at boot.&lt;br /&gt;
&lt;br /&gt;
smbfs is now depreciated for cifs : &lt;a href="http://linux-cifs.samba.org/" target="_blank"&gt;http://linux-cifs.samba.org/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
cifs still uses a credentials file to avoid the need to enter a password. If you do not use a credentials file, you will mount a samba share with sudo and enter your username and password in a terminal.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin:20px; margin-top:5px; "&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Quote:&lt;/div&gt;
 &lt;table cellpadding="6" cellspacing="0" border="0" width="100%"&gt;
 &lt;tr&gt;
  &lt;td class="ubuntu_quotebackground"&gt;
   
    //Server/share /mnt/samba cifs users,auto,credentials=/path/credentials_file,noexec  0 0
   
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Server = Name (if in /etc/hosts) or IP Address of samba server.&lt;/li&gt;
&lt;li&gt;share = Name of shared directory (folder).&lt;/li&gt;
&lt;li&gt;/mnt/samba = your desired mount point.&lt;/li&gt;
&lt;li&gt;/path/credentials_file = full path to your credentials file. A credentials file should be owned by root (permissions 400) and contain two lines :&lt;br /&gt;
&lt;div style="margin:20px; margin-top:5px; "&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Quote:&lt;/div&gt;
 &lt;table cellpadding="6" cellspacing="0" border="0" width="100%"&gt;
 &lt;tr&gt;
  &lt;td class="ubuntu_quotebackground"&gt;
   
    username = samba_user&lt;font face="monospace"&gt;&lt;br /&gt;
&lt;/font&gt;password = samba_user_password
   
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;blockquote&gt;&lt;blockquote&gt;samba_user = samba user (on server).&lt;/blockquote&gt;&lt;blockquote&gt; samba_user_password = samba user password (on server).&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;noexec for security (it can be bypassed ...).&lt;/li&gt;
&lt;/ul&gt; &lt;br /&gt;
smbfs : depreciated, but similar.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin:20px; margin-top:5px; "&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Quote:&lt;/div&gt;
 &lt;table cellpadding="6" cellspacing="0" border="0" width="100%"&gt;
 &lt;tr&gt;
  &lt;td class="ubuntu_quotebackground"&gt;
   
    //win_box/shared_folder /mnt/samba smbfs rw,credentials=/home/user_name/winbox-credentials.txt 0 0
   
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/div&gt;&lt;font color="blue"&gt;And from Buck2348:&lt;/font&gt;&lt;blockquote&gt;&lt;div style="margin:20px; margin-top:5px; "&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Quote:&lt;/div&gt;
 &lt;table cellpadding="6" cellspacing="0" border="0" width="100%"&gt;
 &lt;tr&gt;
  &lt;td class="ubuntu_quotebackground"&gt;
   
    I don't mount any vfat shares but uid and gid work with smbfs shares.  I might have to try out your syntax.&lt;br /&gt;
&lt;br /&gt;
I could not automount at boot my smbfs shares until I found the &lt;a href="http://www.ubuntuforums.org/showthread.php?t=103274" target="_blank"&gt;this fix&lt;/a&gt; in the Forums.  I hope it will help someone else.  I think the problem was related to the fact that I don't use a username and password in the Windows systems.  All I had to do was add &lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;username=share,password=&lt;/pre&gt;
&lt;/div&gt; to the options list in the fstab line for these shares.
   
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/div&gt;&lt;/blockquote&gt;&lt;blockquote&gt;More detailed information on &lt;a href="http://doc.gwos.org/index.php/HowToMountsmbfsSharesPermanently" target="_blank"&gt;samba&lt;/a&gt;&lt;/blockquote&gt;&lt;u&gt;sshfs&lt;/u&gt; : Network shares over ssh&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://ubuntu.wordpress.com/2005/10/28/how-to-mount-a-remote-ssh-filesystem-using-sshfs/" target="_blank"&gt;http://ubuntu.wordpress.com/2005/10/...m-using-sshfs/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;sshfs#user@server:/share  fuse  user,allow_other  0  0&lt;/pre&gt;
&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&amp;quot;Server&amp;quot; = Samba server (by IP or name if you have an entry for the server in your hosts file&lt;/li&gt;
&lt;li&gt;&amp;quot;share&amp;quot; = name of the shared directory&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;font size="2"&gt;&lt;b&gt;Options:&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Ubuntu 8.04 now defaults to &amp;quot;relatime&amp;quot;. For a discussion of this option see&lt;/b&gt; : &lt;a href="http://lwn.net/Articles/244829/" target="_blank"&gt;http://lwn.net/Articles/244829/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;font color="red"&gt;defaults = rw, suid, dev, exec, auto, nouser, and async.&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;font color="blue"&gt;Options for a separate /home : nodev,nosuid,relatime&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
My recommended options for &lt;font color="navy"&gt;removable (USB) drives&lt;/font&gt; are in &lt;font color="green"&gt;green&lt;/font&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;font color="red"&gt;auto&lt;/font&gt;= mounted at boot&lt;br /&gt;
&lt;font color="green"&gt;noauto&lt;/font&gt;= not mounted at boot&lt;br /&gt;
&lt;br /&gt;
&lt;font color="green"&gt;user&lt;/font&gt;= when mounted the mount point is owned by the user who mounted the partition&lt;br /&gt;
&lt;font color="red"&gt;users&lt;/font&gt;= when mounted the mount point is owned by the user who mounted the partition and the group users&lt;br /&gt;
&lt;br /&gt;
&lt;font color="red"&gt;ro&lt;/font&gt;= read only&lt;br /&gt;
&lt;font color="green"&gt;rw&lt;/font&gt;= read/write&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;VFAT/NTFS&lt;/u&gt;&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Ownership and permissios of vfat / ntfs are set at the time of mounting&lt;/b&gt;. This is often a source of confusion.&lt;br /&gt;
 &lt;br /&gt;
uid= Sets owner. Syntax: may use user_name or user ID #.&lt;br /&gt;
gid= sets group ownership of mount point. Again may use group_name or GID #.&lt;br /&gt;
&lt;br /&gt;
umask can be used to set permissions if you wish to change the default.&lt;br /&gt;
Syntax is &amp;quot;odd&amp;quot; at first.&lt;br /&gt;
To set a permissions of 777, umask=000&lt;br /&gt;
To set permissions of 700, umask=077&lt;br /&gt;
&lt;br /&gt;
&lt;font color="blue"&gt;Best is to set directories with executable permissions and file with read write. To do this, use fmask and dmask (rather then umask):&lt;br /&gt;
dmask=027&lt;br /&gt;
fmask=137&lt;br /&gt;
&lt;br /&gt;
With these options files are not executable (all colored green in a terminal w/ ls)&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Linux native file systems&lt;/u&gt;&lt;/b&gt;: Use defaults or users. To change ownership and permissions, mount the partition, then use chown and chmod.&lt;br /&gt;
&lt;br /&gt;
Note: Warning re: sync and flash devices:&lt;br /&gt;
    &lt;a href="http://readlist.com/lists/vger.kernel.org/linux-kernel/22/111748.html" target="_blank"&gt;&lt;font color="red"&gt;&lt;u&gt;Warning&lt;/u&gt;&lt;/font&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Additional Options: (From &lt;a href="http://wiki.linuxquestions.org/wiki/Fstab" target="_blank"&gt;wiki.linuxquestions.org/wiki/Fstab&lt;/a&gt;):&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;sync/async - All I/O to the file system should be done (a)synchronously.&lt;/li&gt;
&lt;li&gt;auto - The filesystem can be mounted automatically (at bootup, or when mount is passed the -a option). This is really unnecessary as this is the default action of mount -a anyway.&lt;/li&gt;
&lt;li&gt;noauto - The filesystem will NOT be automatically mounted at startup, or when mount passed -a. You must explicitly mount the filesystem.&lt;/li&gt;
&lt;li&gt;dev/nodev - Interpret/Do not interpret character or block special devices on the file system.&lt;/li&gt;
&lt;li&gt;exec / noexec - Permit/Prevent the execution of binaries from the filesystem.&lt;/li&gt;
&lt;li&gt;suid/nosuid - Permit/Block the operation of suid, and sgid bits.&lt;/li&gt;
&lt;li&gt;ro - Mount read-only.&lt;/li&gt;
&lt;li&gt;rw - Mount read-write.&lt;/li&gt;
&lt;li&gt;user - Permit any user to mount the filesystem. This automatically implies noexec, nosuid,nodev unless overridden.&lt;/li&gt;
&lt;li&gt;nouser - Only permit root to mount the filesystem. This is also a default setting.&lt;/li&gt;
&lt;li&gt;defaults - Use default settings. Equivalent to rw, suid, dev, exec, auto, nouser, async.&lt;/li&gt;
&lt;li&gt;_netdev - this is a network device, mount it after bringing up the network. Only valid with fstype nfs.&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;font size="2"&gt;&lt;b&gt;Dump&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;
Dump: Dump field sets whether the backup utility dump will backup file system. If set to &amp;quot;0&amp;quot; file system ignored, &amp;quot;1&amp;quot; file system is backed up.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;font size="2"&gt;&lt;b&gt;Fsck order&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;
Fsck: Fsck order is to tell fsck what order to check the file systems, if set to &amp;quot;0&amp;quot; file system is ignored.&lt;br /&gt;
&lt;br /&gt;
See also: &lt;a href="http://ubuntu.wordpress.com/?s=tune2fs&amp;amp;searchbutton=go%21" target="_blank"&gt;Tuning the Filesystem Check at Bootup&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;font size="2"&gt;&lt;b&gt;Fstab Examples&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin:20px; margin-top:5px; "&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Quote:&lt;/div&gt;
 &lt;table cellpadding="6" cellspacing="0" border="0" width="100%"&gt;
 &lt;tr&gt;
  &lt;td class="ubuntu_quotebackground"&gt;
   
    /dev/sda14  /mnt/zen  ext3  relatime  0  2&lt;br /&gt;
&lt;br /&gt;
# Usb device (assuming vfat)&lt;br /&gt;
/dev/sdb1  /media/usb  auto  users,uid=1000,gid=100,utf8,dmask=027,fmask=137   0  0&lt;br /&gt;
&lt;br /&gt;
#Data partition&lt;br /&gt;
LABEL=data  /mnt/usr_data  ext3  auto,users,rw,relatime  0  0&lt;br /&gt;
&lt;br /&gt;
# Flash drive By UUID&lt;br /&gt;
UUID=fab05680-eb08-4420-959a-ff915cdfcb44 /media/flash vfat user,uid=1000,gid=100,utf8,dmask=027,fmask=137   0  0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/dev/disk/by-id/usb-IOMEGA_ZIP_250_059B00301400B0F1-part4  /mnt/zip  vfat  users,uid=1000,gid=100,utf8,dmask=027,fmask=137   0  0&lt;br /&gt;
&lt;br /&gt;
/dev/hda1  /mnt/windows  ntfs-3g  auto,users,uid=1000,gid=100,utf8,dmask=027,fmask=1  37   0  0&lt;br /&gt;
&lt;br /&gt;
# VFAT&lt;br /&gt;
# FAT ~ Linux calls FAT file systems vfat)&lt;br /&gt;
# /dev/hda1&lt;br /&gt;
UUID=12102C02102CEB83  /media/windows  ntfs-3g  auto,users,uid=1000,gid=100,utf8,dmask=027,fmask=1  37   0  0&lt;br /&gt;
&lt;br /&gt;
# NTFS ~ Use ntfs-3g for write access (rw) &lt;br /&gt;
# /dev/hda1&lt;br /&gt;
UUID=12102C02102CEB83  /media/windows  ntfs-3g  auto,users,uid=1000,gid=100,utf8,dmask=027,fmask=1  37   0  0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;font color="blue"&gt;# Separate Home&lt;br /&gt;
# /dev/sda7&lt;br /&gt;
UUID=413eee0c-61ff-4cb7-a299-89d12b075093  /home  ext3  nodev,nosuid,relatime  0  2&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
# Samba&lt;br /&gt;
//server/share  /media/samba  cifs  user=user,uid=1000,gid=100  0  0&lt;br /&gt;
# &amp;quot;Server&amp;quot; = Samba server (by IP or name if you have an entry for the server in your hosts file&lt;br /&gt;
# &amp;quot;share&amp;quot; = name of the shared directory&lt;br /&gt;
# &amp;quot;user&amp;quot; = your samba user&lt;br /&gt;
# This set up will ask for a password when mounting the samba share. If you do not want to enter a password, use a credentials file.&lt;br /&gt;
# replace &amp;quot;user=user&amp;quot; with &amp;quot;credentials=/etc/samba/credentials&amp;quot; In the credentials file put two lines&lt;br /&gt;
# user=user&lt;br /&gt;
# password=password&lt;br /&gt;
# make the file owned by root and ro by root (sudo chown root.root /etc/samba/credentials &amp;amp;&amp;amp; sudo chmod 400 /etc/samba/credentials)&lt;br /&gt;
&lt;br /&gt;
# NFS&lt;br /&gt;
Server:/share  /media/nfs  nfs  rsize=8192 and wsize=8192,noexec,nosuid&lt;br /&gt;
# &amp;quot;Server&amp;quot; = Samba server (by IP or name if you have an entry for the server in your hosts file&lt;br /&gt;
# &amp;quot;share&amp;quot; = name of the shared directory&lt;br /&gt;
&lt;br /&gt;
#SSHFS&lt;br /&gt;
Sshfs#user@server:/share  fuse  user,allow_other  0  0&lt;br /&gt;
# &amp;quot;Server&amp;quot; = Samba server (by IP or name if you have an entry for the server in your hosts file&lt;br /&gt;
# &amp;quot;share&amp;quot; = name of the shared directory
   
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/div&gt;=========== End of fstab =============&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;font size="3"&gt;&lt;b&gt;&lt;u&gt;How to Label&lt;/u&gt;&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Linux&lt;/u&gt;: How the label and the UUID are set depends on the file system type used. It can normally be set when creating/formatting the file system and the file system type usually has some tool to change it later on (e.g. e2tunefs,xfs_admin,reiserfstune,etc.)&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.linux.com/howtos/Partition/labels.shtml" target="_blank"&gt;Labels&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Mke2fs/e2label/tune2fs&lt;/u&gt;:&lt;br /&gt;
&lt;br /&gt;
Note: For either ext2 or ext3 file systems.&lt;br /&gt;
&lt;br /&gt;
&lt;font color="red"&gt;&lt;b&gt;&lt;font size="2"&gt;&lt;u&gt;WARNING&lt;/u&gt;: mke2fs will reformat your partition and set a label at the same time. This will delete any data on the target partition.&lt;br /&gt;
&lt;br /&gt;
To set a label without reformatting use e2label or tune2fs&lt;/font&gt;&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;
&lt;ol style="list-style-type: decimal"&gt;&lt;li&gt;Make a label:&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;mke2fs -L &amp;lt;label&amp;gt; &amp;lt;dev&amp;gt;&lt;/pre&gt;
&lt;/div&gt;OR&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;e2label &amp;lt;dev&amp;gt; &amp;lt;label&amp;gt;&lt;/pre&gt;
&lt;/div&gt;OR&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;tune2fs -L &amp;lt;label&amp;gt; &amp;lt;dev&amp;gt;&lt;/pre&gt;
&lt;/div&gt;Examples:&lt;div style="margin:20px; margin-top:5px; "&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Quote:&lt;/div&gt;
 &lt;table cellpadding="6" cellspacing="0" border="0" width="100%"&gt;
 &lt;tr&gt;
  &lt;td class="ubuntu_quotebackground"&gt;
   
    mke2fs -L data /dev/hda3
   
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/div&gt;OR&lt;div style="margin:20px; margin-top:5px; "&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Quote:&lt;/div&gt;
 &lt;table cellpadding="6" cellspacing="0" border="0" width="100%"&gt;
 &lt;tr&gt;
  &lt;td class="ubuntu_quotebackground"&gt;
   
    e2label /dev/hda3 data
   
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/div&gt;OR&lt;div style="margin:20px; margin-top:5px; "&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Quote:&lt;/div&gt;
 &lt;table cellpadding="6" cellspacing="0" border="0" width="100%"&gt;
 &lt;tr&gt;
  &lt;td class="ubuntu_quotebackground"&gt;
   
    tune2fs -L data /dev/hda3
   
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;Create a mount point:&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;sudo mkdir /media/data&lt;/pre&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;Add an entry to /etc/fstab:&lt;div style="margin:20px; margin-top:5px; "&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Quote:&lt;/div&gt;
 &lt;table cellpadding="6" cellspacing="0" border="0" width="100%"&gt;
 &lt;tr&gt;
  &lt;td class="ubuntu_quotebackground"&gt;
   
    LABEL=data /media/data ext3 defaults 0 0
   
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;To mount:&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;sudo mount LABEL=data&lt;/pre&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;ReiserFS&lt;/u&gt;:&lt;br /&gt;
 Use reiserfstune:&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;reiserfstune --l &amp;lt;Label&amp;gt; &amp;lt;device&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;blockquote&gt;&lt;u&gt;Note&lt;/u&gt;:That is a small &amp;quot;L&amp;quot; and not the number 1.&lt;/blockquote&gt;&lt;u&gt;JFS&lt;/u&gt;:&lt;br /&gt;
 Use jfs_tune:&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;jfs_tune -L &amp;lt;Label&amp;gt; &amp;lt;device&amp;gt;&lt;/pre&gt;
&lt;/div&gt;To show the label: &lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;jfs_tune -l &amp;lt;device&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;blockquote&gt;&lt;u&gt;Note&lt;/u&gt;:That is a small &amp;quot;L&amp;quot; and not the number 1.&lt;/blockquote&gt;&lt;u&gt;XFS&lt;/u&gt;:&lt;br /&gt;
 Use xfs_admin:&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;sudo xfs_admin -L &amp;lt;Label&amp;gt; &amp;lt;device&amp;gt;&lt;/pre&gt;
&lt;/div&gt; To show the label: &lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;xfs_admin -l &amp;lt;device&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;blockquote&gt;&lt;u&gt;Note&lt;/u&gt;:That is a small &amp;quot;L&amp;quot; and not the number 1.&lt;/blockquote&gt;&lt;u&gt;FAT (Windows partitions)&lt;/u&gt;:&lt;br /&gt;
&lt;br /&gt;
Use mtools to label a FAT partition:&lt;br /&gt;
&lt;ol style="list-style-type: decimal"&gt;&lt;li&gt;Install mtools:&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;sudo aptitude install mtools&lt;/pre&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;Copy the mtools configuration file to ~:&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;cp /etc/mtools.conf ~/.mtoolsrc&lt;/pre&gt;
&lt;/div&gt;&lt;u&gt;Note&lt;/u&gt;: ~ is shorthand for /home/user_name.&lt;/li&gt;
&lt;li&gt;Mount your flash drive.&lt;/li&gt;
&lt;li&gt;Edit ~/.mtoolsrc:&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;gedit ~/.mtoolsrc&lt;/pre&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;Add these lines to the end of ~/.mtoolsrc:&lt;br /&gt;
&lt;div style="margin:20px; margin-top:5px; "&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Quote:&lt;/div&gt;
 &lt;table cellpadding="6" cellspacing="0" border="0" width="100%"&gt;
 &lt;tr&gt;
  &lt;td class="ubuntu_quotebackground"&gt;
   
    drive i: file=&amp;quot;&amp;lt;device&amp;gt;&amp;quot;&lt;br /&gt;
mtools_skip_check=1
   
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/div&gt;Where &amp;lt;device&amp;gt; is the device assigned to your mounted USB device/flash drive (ie sda1, sdb1, ...).&lt;br /&gt;
&lt;u&gt;&lt;b&gt;Note&lt;/b&gt;&lt;/u&gt;&lt;b&gt;: You can do this from the command line:&lt;/b&gt;&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;echo 'drive i: file=&amp;quot;&amp;lt;device&amp;gt;&amp;quot;' &amp;gt;&amp;gt; ~/.mtoolsrc
echo mtools_skip_check=1 &amp;gt;&amp;gt; ~/.mtoolsrc&lt;/pre&gt;
&lt;/div&gt;&lt;blockquote&gt;Although you will need to edit ~/.mtoolsrc for each new device if the device assignment changes.&lt;/blockquote&gt;&lt;u&gt;&lt;b&gt;Example&lt;/b&gt;&lt;/u&gt;&lt;b&gt;: = drive i: file=&amp;quot;/dev/sda1&amp;quot;&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Change to drive i:&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;mcd i:&lt;/pre&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;Check the current label:&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;mlabel -s i:&lt;/pre&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;Change the current label:&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;sudo mlabel -s i:DATA&lt;/pre&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;Or &lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;sudo mlabel i:DATA&lt;/pre&gt;
&lt;/div&gt;&lt;blockquote&gt;pieroxy reports the -s flag did not work, &lt;font color="blue"&gt;thanks pieroxy&lt;/font&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;u&gt;Note&lt;/u&gt;: mlabel USES ALL CAPS.&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;Add an entry to fstab:&lt;div style="margin:20px; margin-top:5px; "&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Quote:&lt;/div&gt;
 &lt;table cellpadding="6" cellspacing="0" border="0" width="100%"&gt;
 &lt;tr&gt;
  &lt;td class="ubuntu_quotebackground"&gt;
   
    LABEL=DATA &amp;lt;mount_point&amp;gt; vfat defaults 0 0
   
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/div&gt;&lt;u&gt;Note&lt;/u&gt;: You can also mount the usb device with:&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;mount LABEL=&amp;lt;label&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;u&gt;NTFS (Windows partitions)&lt;/u&gt;:&lt;blockquote&gt;&lt;font color="blue"&gt;Thanks to rudyj for pointing out the oversight.&lt;/font&gt;&lt;/blockquote&gt;Use ntfsprogs:&lt;br /&gt;
&lt;br /&gt;
First install ntfsprogs:&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;sudo aptitude install ntfsprogs&lt;/pre&gt;
&lt;/div&gt;Or use Synaptic.&lt;br /&gt;
&lt;br /&gt;
Then:&lt;br /&gt;
&lt;ol style="list-style-type: decimal"&gt;&lt;li&gt;Show label:&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;ntfslabel &amp;lt;device&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;Change label:&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;ntfslabel &amp;lt;device&amp;gt; &amp;lt;label&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;blockquote&gt;&lt;b&gt;Where:&lt;/b&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&amp;lt;label&amp;gt; = your new label&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&amp;lt;device&amp;gt; = your partition to label (/dev/hda1 perhaps)&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;&lt;/li&gt;
&lt;li&gt;Add an entry to fstab:&lt;div style="margin:20px; margin-top:5px; "&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Quote:&lt;/div&gt;
 &lt;table cellpadding="6" cellspacing="0" border="0" width="100%"&gt;
 &lt;tr&gt;
  &lt;td class="ubuntu_quotebackground"&gt;
   
    LABEL=DATA &amp;lt;mount_point&amp;gt; ntfs(or ntfs-3g) defaults 0 0
   
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/div&gt;&lt;u&gt;Note&lt;/u&gt;: You can also mount the usb device with:&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;mount LABEL=&amp;lt;label&amp;gt;&lt;/pre&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;br /&gt;
============== END OF LABEL ===============&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;font size="3"&gt;&lt;b&gt;&lt;u&gt;Examples of fstab options&lt;/u&gt;&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;font color="blue"&gt;&lt;b&gt;&lt;font size="2"&gt;********* FAT **********&lt;/font&gt;&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
FAT partitions are easy to share between Linux and Windows as both OS will read FAT &amp;quot;out of the box&amp;quot; without additional installation or configuration.&lt;br /&gt;
&lt;br /&gt;
In this example I will use /mnt/data as my mount point.&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;sudo mkdir /mnt/data&lt;/pre&gt;
&lt;/div&gt;fstab:&lt;div style="margin:20px; margin-top:5px; "&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Quote:&lt;/div&gt;
 &lt;table cellpadding="6" cellspacing="0" border="0" width="100%"&gt;
 &lt;tr&gt;
  &lt;td class="ubuntu_quotebackground"&gt;
   
    LABEL=data /mnt/data vfat &amp;lt;&lt;i&gt;&lt;b&gt;see options below&lt;/b&gt;&lt;/i&gt;&amp;gt; 0 0
   
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/div&gt;Default permissions of /mnt/data:&lt;div style="margin:20px; margin-top:5px; "&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Quote:&lt;/div&gt;
 &lt;table cellpadding="6" cellspacing="0" border="0" width="100%"&gt;
 &lt;tr&gt;
  &lt;td class="ubuntu_quotebackground"&gt;
   
    drwxr-xr-x  2 root root
   
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/div&gt;&lt;ol style="list-style-type: decimal"&gt;&lt;li&gt;&lt;u&gt;fstab options&lt;/u&gt;: &lt;b&gt;defaults&lt;/b&gt;&lt;br /&gt;
mount /mnt/data yields: mount: only root can mount /dev/sdb1 on /mnt/data&lt;br /&gt;
&lt;br /&gt;
sudo mount /mnt/data mounts the device.&lt;br /&gt;
Permissions:&lt;div style="margin:20px; margin-top:5px; "&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Quote:&lt;/div&gt;
 &lt;table cellpadding="6" cellspacing="0" border="0" width="100%"&gt;
 &lt;tr&gt;
  &lt;td class="ubuntu_quotebackground"&gt;
   
    drwxr-xr-x  7 root root
   
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/div&gt;&lt;u&gt;Note&lt;/u&gt;: ONLY ROOT has rw permissions. &lt;img src="http://i247.photobucket.com/albums/gg149/gireeshdn/eusa_snooty.gif" border="0" alt="" title="Not talking" class="inlineimg" /&gt;&lt;/li&gt;
&lt;li&gt;&lt;u&gt;fstab options&lt;/u&gt;: &lt;b&gt;users,noauto,rw&lt;/b&gt;&lt;br /&gt;
mount /mnt/data mounts the partition.&lt;br /&gt;
Permissions:&lt;div style="margin:20px; margin-top:5px; "&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Quote:&lt;/div&gt;
 &lt;table cellpadding="6" cellspacing="0" border="0" width="100%"&gt;
 &lt;tr&gt;
  &lt;td class="ubuntu_quotebackground"&gt;
   
    drwxr-xr-x  7 bodhi adm
   
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/div&gt;&lt;u&gt;Note&lt;/u&gt;: The user can mount the device and has rw permissions. &lt;img src="http://i247.photobucket.com/albums/gg149/gireeshdn/icon_razz.gif" border="0" alt="" title="Razz" class="inlineimg" /&gt;&lt;br /&gt;
&lt;u&gt;Note&lt;/u&gt;: The ownership and permissions of the mount point have changed !&lt;/li&gt;
&lt;li&gt;&lt;u&gt;fstab options&lt;/u&gt;: &lt;b&gt;users,noauto,gid=100,umask=007&lt;/b&gt;&lt;br /&gt;
mount /mnt/data mounts the partition.&lt;br /&gt;
Permissions:&lt;div style="margin:20px; margin-top:5px; "&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Quote:&lt;/div&gt;
 &lt;table cellpadding="6" cellspacing="0" border="0" width="100%"&gt;
 &lt;tr&gt;
  &lt;td class="ubuntu_quotebackground"&gt;
   
    drwxrwx---  7 bodhi users
   
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/div&gt;&lt;u&gt;Note&lt;/u&gt;: The user can mount the device and now both the user and the users group have rw permissions.&lt;br /&gt;
&lt;u&gt;Note&lt;/u&gt;: The ownership and permissions of the mount point have changed again ! &lt;img src="http://i247.photobucket.com/albums/gg149/gireeshdn/icon_twisted.gif" border="0" alt="" title="Twisted Evil" class="inlineimg" /&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;font color="green"&gt;&lt;b&gt;&lt;font size="2"&gt;********* Linux Native File Systems **********&lt;/font&gt;&lt;/b&gt;&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;In this example I will use ext3, but this holds true for ext2, reiserfs, jfs, and xfs.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin:20px; margin-top:5px"&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Code:&lt;/div&gt;
 &lt;pre&gt;sudo mkdir /mnt/ext3&lt;/pre&gt;
&lt;/div&gt;fstab:&lt;div style="margin:20px; margin-top:5px; "&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Quote:&lt;/div&gt;
 &lt;table cellpadding="6" cellspacing="0" border="0" width="100%"&gt;
 &lt;tr&gt;
  &lt;td class="ubuntu_quotebackground"&gt;
   
    LABEL=ext3 /mnt/ext3 auto &lt;b&gt;&amp;lt;see options below&amp;gt;&lt;/b&gt; 0 0
   
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/div&gt;&lt;ol style="list-style-type: decimal"&gt;&lt;li&gt;&lt;u&gt;fstab options&lt;/u&gt;: &lt;b&gt;defaults&lt;/b&gt;&lt;br /&gt;
mount /mnt/data yields: mount: only root can mount LABEL=ext3 on /mnt/ext3&lt;br /&gt;
&lt;br /&gt;
sudo mount /mnt/ext3 mounts the device.&lt;br /&gt;
Permissions:&lt;div style="margin:20px; margin-top:5px; "&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Quote:&lt;/div&gt;
 &lt;table cellpadding="6" cellspacing="0" border="0" width="100%"&gt;
 &lt;tr&gt;
  &lt;td class="ubuntu_quotebackground"&gt;
   
    bodhi@Arch:~$ls -l /mnt | grep ext3&lt;br /&gt;
drwxr-xr-x  3 bodhi users  1024 2006-11-07 17:26 ext3
   
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/div&gt;&lt;u&gt;Note&lt;/u&gt;: Ownership has changed ! owner=bodhi, group=users, however ONLY USER (and root of course) has rw permissions.&lt;/li&gt;
&lt;li&gt;&lt;u&gt;fstab options&lt;/u&gt;: &lt;b&gt;users,noauto&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
mount /mnt/ext3 mounts the partition.&lt;br /&gt;
Permissions:&lt;div style="margin:20px; margin-top:5px; "&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Quote:&lt;/div&gt;
 &lt;table cellpadding="6" cellspacing="0" border="0" width="100%"&gt;
 &lt;tr&gt;
  &lt;td class="ubuntu_quotebackground"&gt;
   
    bodhi@Arch:~$mount /mnt/ext3/&lt;br /&gt;
bodhi@Arch:~$ls -l /mnt | grep ext3&lt;br /&gt;
drwxr-xr-x  3 bodhi users  1024 2006-11-07 17:26 ext3
   
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/div&gt;&lt;u&gt;Note&lt;/u&gt;: The user can mount the device and has rw permissions. &lt;img src="http://i247.photobucket.com/albums/gg149/gireeshdn/icon_razz.gif" border="0" alt="" title="Razz" class="inlineimg" /&gt;&lt;br /&gt;
&lt;u&gt;Note&lt;/u&gt;: Ownership remains bodhi:users&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;u&gt;Note&lt;/u&gt;: ext2 and ext3 do not take uid=xxx, gid=xxx, or umask=xxx&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
To set group rw permissions:&lt;br /&gt;
&lt;u&gt;fstab options&lt;/u&gt;: &lt;b&gt;users,noauto&lt;/b&gt;&lt;ol style="list-style-type: decimal"&gt;&lt;li&gt;mount the partition: &lt;b&gt;mount /mnt/ext3&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;Set permisions of the mount point: &lt;b&gt;chmod 777 /mnt/ext3&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;b&gt;&lt;font color="red"&gt;The set ownership and permissions will remain in effect with un-mount and re-boot.&lt;/font&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;div style="margin:20px; margin-top:5px; "&gt;
 &lt;div class="smallfont" style="margin-bottom:2px"&gt;Quote:&lt;/div&gt;
 &lt;table cellpadding="6" cellspacing="0" border="0" width="100%"&gt;
 &lt;tr&gt;
  &lt;td class="ubuntu_quotebackground"&gt;
   
    &lt;b&gt;bodhi@Arch:~$chmod 777 /mnt/ext3&lt;/b&gt;&lt;br /&gt;
bodhi@Arch:~$ls -l /mnt | grep ext3&lt;br /&gt;
drwxrwxrwx  3 bodhi users  1024 2006-11-07 17:51 ext3&lt;br /&gt;
bodhi@Arch:~$&lt;b&gt;umount /mnt/ext3/&lt;/b&gt;&lt;br /&gt;
bodhi@Arch:~$ls -l /mnt | grep ext3&lt;br /&gt;
&lt;font color="red"&gt;drwxr-xr-x  2 root  root   4096 2006-11-07 17:28 ext3&lt;/font&gt;&lt;br /&gt;
bodhi@Arch:~$&lt;b&gt;mount /mnt/ext3/&lt;/b&gt;&lt;br /&gt;
bodhi@Arch:~$ls -l /mnt | grep ext3&lt;br /&gt;
&lt;font color="blue"&gt;drwxrwxrwx  3 bodhi users  1024 2006-11-07 17:51 ext3&lt;/font&gt;&lt;br /&gt;
bodhi@Arch:~$
   
  &lt;/td&gt;
 &lt;/tr&gt;
 &lt;/table&gt;
&lt;/div&gt;&lt;u&gt;Note&lt;/u&gt;: The permissions revert when the partition is un-mounted &lt;font color="red"&gt;RED&lt;/font&gt;&lt;br /&gt;
&lt;u&gt;Note&lt;/u&gt;: The permissions remain rw when the partition is re-mounted &lt;font color="blue"&gt;BLUE&lt;/font&gt;&lt;br /&gt;
Permissions:&lt;br /&gt;
&lt;u&gt;Note&lt;/u&gt;: The user can mount the device and now both the user and the users group have rw permissions. &lt;img src="http://i247.photobucket.com/albums/gg149/gireeshdn/icon_cool.gif" border="0" alt="" title="Cool" class="inlineimg" /&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;br /&gt;
&lt;br /&gt;
============== END OF EXAMPLES ===============&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;&lt;font size="3"&gt;&lt;b&gt;References&lt;/b&gt;&lt;/font&gt;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Partitioning&lt;/u&gt;: &lt;a href="http://ubuntuforums.org/showthread.php?t=282018" target="_blank"&gt;Basic partitioning&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Mount&lt;/u&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://www.tuxfiles.org/linuxhelp/mounting.html" target="_blank"&gt;How to mount filesystems in Linux&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://help.ubuntu.com/community/AutomaticallyMountPartitions" target="_blank"&gt;Ubuntu Automatically Mount Partitions&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.die.net/doc/linux/man/man8/mount.8.html" target="_blank"&gt;man mount&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://users.bigpond.net.au/hermanzone/p10.htm" target="_blank"&gt;Mount Other Filesystems&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Fstab&lt;/u&gt;:&lt;br /&gt;
&lt;a href="http://en.wikipedia.org/wiki/Fstab" target="_blank"&gt;fstab wiki&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.tuxfiles.org/linuxhelp/fstab.html" target="_blank"&gt;How to edit and understand /etc/fstab&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://ubuntu.wordpress.com/?s=tune2fs&amp;amp;searchbutton=go%21" target="_blank"&gt;Tuning the Filesystem Check at Bootup&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Labels&lt;/u&gt;: &lt;a href="http://www.linux.com/howtos/Partition/labels.shtml" target="_blank"&gt;How to use Labels&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;udev&lt;/u&gt;: &lt;a href="http://ubuntuforums.org/showthread.php?t=168221" target="_blank"&gt;How to udev&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;NTFS&lt;/u&gt;: &lt;a href="http://ubuntuforums.org/showthread.php?t=217009" target="_blank"&gt;ntfs-3g&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Zip dirve how-to&lt;/u&gt;: &lt;a href="http://www.faqs.org/docs/Linux-mini/ZIP-Drive.html" target="_blank"&gt;How to Zip Drive&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;nfs&lt;/u&gt;:&lt;br /&gt;
&lt;a href="https://help.ubuntu.com/community/SettingUpNFSHowTo" target="_blank"&gt;How to set up NFS&lt;/a&gt;&lt;br /&gt;
&lt;a href="https://help.ubuntu.com/community/NFSv4Howto" target="_blank"&gt;How to NFS v4&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://www.unhandledexceptions.com/tutorials/tut_11.html" target="_blank"&gt;&lt;font color="black"&gt;Debian/Ubuntu NFS Guide&lt;/font&gt;&lt;/a&gt; &lt;font color="navy"&gt;Short but sweeeet !&lt;/font&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Mount Windows Sares&lt;/u&gt;: &lt;a href="https://help.ubuntu.com/community/MountWindowsSharesPermanently" target="_blank"&gt;Mount Windows shares permanently&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Samba&lt;/u&gt;:&lt;br /&gt;
&lt;a href="https://help.ubuntu.com/community/SettingUpSamba" target="_blank"&gt;Setting up Samba&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://doc.gwos.org/index.php/HowToMountsmbfsSharesPermanently" target="_blank"&gt;How to mount smbfs shares permanently&lt;/a&gt;&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738755844193885355-6250031476549698699?l=www.kernelfaq.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=eNEIPaHE"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=DjCNaVGm"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=Njh0gsBM"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=b2244psB"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=b2244psB" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=K5eS3As7"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=uNZUf0Jk"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=uNZUf0Jk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=Qw6VfKCi"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=g8sulyzu"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=g8sulyzu" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=buhyPXvY"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=m0fXb43Y"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=m0fXb43Y" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=Q54yohgK"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=FLFzxZRJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kernelfaq/~4/Ok22aNtfyKs" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-08-15T08:05:49.336-04:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.kernelfaq.com/2008/06/understanding-filesystem-table-fstab.html</feedburner:origLink></item><item><title>Integrating Subversion (SVN) with Nautilus</title><link>http://feedproxy.google.com/~r/kernelfaq/~3/J-QjRdIS5z4/integrating-subversion-svn-with.html</link><category>Linux</category><category>SCM</category><author>noreply@blogger.com (Gireesh)</author><pubDate>Sun, 08 Jun 2008 17:42:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8738755844193885355.post-137692884399427400</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://i247.photobucket.com/albums/gg149/gireeshdn/linux.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="Computer" border="0" rg="true" src="http://i247.photobucket.com/albums/gg149/gireeshdn/linux.jpg" /&gt; &lt;/a&gt;&lt;/div&gt;
Recently I switched from Windows to Ubuntu Linux. While using Windows, I was using Tortoise SVN as Subversion client. I was searching for an equivalent tool to use in Ubuntu.  I found a page in www.willsimpson.org which explains how to integrate Subversion and Nautilus.

Nautilus is a file manager (like Explorer in Windows) in Ubuntu Linux using GNOME. One of the interesting feature of Nautilus is its nautilus scripts. While using Nautilus, a groups of scripts are available anytime on the right-click of mouse. Some of its FAQs can be found &lt;a href="http://g-scripts.sourceforge.net/faq.php" rel="nofollow"&gt;here&lt;/a&gt;.

Here is the procedure on how to add Subversion functionality to Nautilus similar to Tortoise SVN in Windows. This uses nautilus scripts feature.

&lt;span id="fullpost"&gt;In a terminal
&lt;code&gt;sudo aptitude search nautilus-script&lt;/code&gt;&lt;blockquote&gt;p   nautilus-script-audio-convert   - A nautilus audio converter script      
p   nautilus-script-collection-svn  - Nautilus subversion management scripts 
p   nautilus-script-debug           - Simple nautilus debugging script       
p   nautilus-script-manager         - A simple management tool for nautilus scripts
&lt;/blockquote&gt;&lt;code&gt;sudo apt-get install nautilus-script-collection-svn&lt;/code&gt;
&lt;blockquote&gt;The following NEW packages will be installed:
nautilus-script-collection-svn nautilus-script-manager&lt;/blockquote&gt;&lt;code&gt;nautilus-script-manager&lt;/code&gt;
&lt;blockquote&gt;Usage: nautilus-script-manager {enable script-name|disable script-name|list-enabled|list-available}&lt;/blockquote&gt;&lt;code&gt;nautilus-script-manager list-available&lt;/code&gt;
&lt;blockquote&gt;Subversion&lt;/blockquote&gt;&lt;code&gt;nautilus-script-manager enable Subversion&lt;/code&gt;
&lt;blockquote&gt;Please restart nautilus to get an updated menu. (I didn’t need to restart nautilus) &lt;/blockquote&gt;Source: &lt;a href="http://www.willsimpson.org/173/subversion-nautilus-intergration" rel="nofollow"&gt;http://www.willsimpson.org/173/subversion-nautilus-intergration&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738755844193885355-137692884399427400?l=www.kernelfaq.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=dKzse0o5"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=JL3jAKPv"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=sHH5PRQA"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=vzOKhYMz"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=vzOKhYMz" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=4CE5OL73"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=0KB14HoN"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=0KB14HoN" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=pH0L2wxG"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=Xx7lj2Wi"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=Xx7lj2Wi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=hmZp6B90"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=2fUlLTCu"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=2fUlLTCu" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=WZ49y5L5"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=noVzrtMO"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kernelfaq/~4/J-QjRdIS5z4" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-07-05T15:35:07.201-04:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.kernelfaq.com/2008/06/integrating-subversion-svn-with.html</feedburner:origLink></item><item><title>Developing a Kernel module for FreeBSD</title><link>http://feedproxy.google.com/~r/kernelfaq/~3/HgkAfyxXDEo/developing-kernel-module-for-freebsd.html</link><category>FreeBSD</category><category>Kernel</category><author>noreply@blogger.com (Gireesh)</author><pubDate>Sat, 07 Jun 2008 12:16:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8738755844193885355.post-1467416173595351538</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://i247.photobucket.com/albums/gg149/gireeshdn/freebsd.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="Computer" border="0" rg="true" src="http://i247.photobucket.com/albums/gg149/gireeshdn/freebsd.jpg" /&gt; &lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: justify;"&gt;Here are a first few lines from an article on how to develop Kernel modules for FreeBSD.

&lt;/div&gt;&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;FreeBSD 7.0 has already been released. If you are a real hacker, the best way to jump in and learn it is hacking together an introductory kernel module. In this article I’ll implement a very basic module that prints a message when it is loaded, and another when it is unloaded. I’ll also cover the mechanics of compiling our module using standard tools and rebuilding the stock FreeBSD kernel. Let’s do it!&lt;/div&gt;&lt;span class="fullpost"&gt;&lt;div style="text-align: justify;"&gt;
&lt;/div&gt;&lt;div style="text-align: justify;"&gt;There are some prerequisites for this article. I assume you have a little bit of C programming knowledge, though nothing too fancy. If I reference a pointer or a structure, I expect you to understand those concepts without much explanation. I also expect you to be familiar with UNIX-like operating systems and know your way around basic shell usage.&lt;/div&gt;
The article is at &lt;a href="http://www.freesoftwaremagazine.com/articles/writing_a_kernel_module_for_freebsd" rel="nofollow"&gt;http://www.freesoftwaremagazine.com/articles/writing_a_kernel_module_for_freebsd&lt;/a&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738755844193885355-1467416173595351538?l=www.kernelfaq.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=OoHLxh0j"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=PSeDt04U"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=jNoOqmAe"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=zhGv1AqF"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=zhGv1AqF" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=FdSiT7VA"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=s8k9BUoA"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=s8k9BUoA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=joIlXOcN"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=T4QumGSn"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=T4QumGSn" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=EqacXIRe"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=f4vSqLRp"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=f4vSqLRp" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=z4XcbL53"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=Mmql82hX"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kernelfaq/~4/HgkAfyxXDEo" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-08-15T08:05:51.539-04:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.kernelfaq.com/2008/06/developing-kernel-module-for-freebsd.html</feedburner:origLink></item><item><title>Driver causing crash during boot</title><link>http://feedproxy.google.com/~r/kernelfaq/~3/tpsXBqWFLrI/driver-causing-crash-during-boot.html</link><category>Kernel</category><category>Solaris</category><author>noreply@blogger.com (Gireesh)</author><pubDate>Mon, 02 Jun 2008 20:36:00 PDT</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-8738755844193885355.post-5622787835256666640</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://i247.photobucket.com/albums/gg149/gireeshdn/solaris.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="Computer" border="0" rg="true" src="http://i247.photobucket.com/albums/gg149/gireeshdn/solaris.jpg" /&gt; &lt;/a&gt;&lt;/div&gt;
If you keep driver file under /usr/kernel, that driver will be loaded during boot time.  While testing an updated driver if you keep driver file under /usr/kernel and if that driver can cause  system crash during its load, that will result in system crash during boot and eventually result in system not getting into operational.&lt;span class="fullpost"&gt;

To get out of this issue, boot the system in interactive mode using boot -a at OK prompt. This allows us to specify the default directory for modules to be loaded. At the prompt Enter default directory for modules:[/platform/SUNW, Ultra-1 /kernel /usr/kernel], you can specify the module directory without /usr/kernel. Through this, system will not load buggy driver at /usr/kernel/drv. Once the system is up with OS, you can remove the driver files.

Source: &lt;a href="http://developers.sun.com/solaris/developer/support/driver/faqs.html#QA3.27" rel="nofollow"&gt;http://developers.sun.com/solaris/developer/support/driver/faqs.html#QA3.27&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8738755844193885355-5622787835256666640?l=www.kernelfaq.com' alt='' /&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=FaHwK8L3"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=41" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=7buiEhkb"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=43" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=7GeA4DaH"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=45" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=asZNFOMj"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=asZNFOMj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=vI2DvVNt"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=50" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=MaS64KrB"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=MaS64KrB" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=yrJwWNEi"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=52" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=0Ktktyip"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=0Ktktyip" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=BvfxwSEK"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=54" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=Znv8fvD0"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?i=Znv8fvD0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=JLLzQ8wU"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=129" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~f/kernelfaq?a=aDOw0qAJ"&gt;&lt;img src="http://feeds.feedburner.com/~f/kernelfaq?d=42" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/kernelfaq/~4/tpsXBqWFLrI" height="1" width="1"/&gt;</description><atom:updated xmlns:atom="http://www.w3.org/2005/Atom">2009-08-15T08:06:04.601-04:00</atom:updated><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><feedburner:origLink>http://www.kernelfaq.com/2008/06/driver-causing-crash-during-boot.html</feedburner:origLink></item><media:rating>nonadult</media:rating></channel></rss>

