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

<channel>
	<title>ramblings of the village idiot &#187; Linux</title>
	<atom:link href="http://www.natecarlson.com/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.natecarlson.com</link>
	<description>All geek, most of the time</description>
	<lastBuildDate>Sat, 03 Jul 2010 19:00:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Review: SuperMicro&#8217;s SC847 (SC847A) 4U chassis with 36 drive bays</title>
		<link>http://www.natecarlson.com/2010/05/07/review-supermicros-sc847a-4u-chassis-with-36-drive-bays/</link>
		<comments>http://www.natecarlson.com/2010/05/07/review-supermicros-sc847a-4u-chassis-with-36-drive-bays/#comments</comments>
		<pubDate>Fri, 07 May 2010 07:20:01 +0000</pubDate>
		<dc:creator>nc</dc:creator>
				<category><![CDATA[Geek Stuff]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Storage]]></category>
		<category><![CDATA[Virtualization]]></category>
		<category><![CDATA[Work Stuff]]></category>
		<category><![CDATA[Deduplication]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Nexenta]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[OpenSolaris]]></category>
		<category><![CDATA[SuperMicro]]></category>
		<category><![CDATA[ZFS]]></category>

		<guid isPermaLink="false">http://www.natecarlson.com/?p=958</guid>
		<description><![CDATA[
[Or "my quest for the ultimate home-brew storage array."] At my day job, we use a variety of storage solutions based on the type of data we&#8217;re hosting. Over the last year, we have started to deploy SuperMicro-based hardware with OpenSolaris and ZFS for storage of some classes of data. The systems we have built [...]


Related posts:<ol><li><a href='http://www.natecarlson.com/2009/11/02/sun-adds-block-level-deduplication-to-zfs/' rel='bookmark' title='Permanent Link: Sun adds block-level deduplication to zfs'>Sun adds block-level deduplication to zfs</a></li>
<li><a href='http://www.natecarlson.com/2010/02/23/sun-7210-designed-to-disappoint/' rel='bookmark' title='Permanent Link: Sun&#8217;s Unified Storage 7210 &#8211; designed to disappoint?'>Sun&#8217;s Unified Storage 7210 &#8211; designed to disappoint?</a></li>
<li><a href='http://www.natecarlson.com/2005/09/17/new-backplane-in-my-drive-array/' rel='bookmark' title='Permanent Link: new backplane in my drive array'>new backplane in my drive array</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.natecarlson.com/2010/05/07/review-supermicros-sc847a-4u-chassis-with-36-drive-bays/" title="Permanent link to Review: SuperMicro&#8217;s SC847 (SC847A) 4U chassis with 36 drive bays"><img class="post_image alignleft" src="http://www.natecarlson.com/wp-content/gallery/supermicro-images/supermicro-sc847-front-thumb-150-150.jpg" width="150" height="150" alt="SuperMicro SC847 Thumbnail" /></a>
</p><p>[Or "my quest for the ultimate home-brew storage array."] At my day job, we use a variety of storage solutions based on the type of data we&#8217;re hosting. Over the last year, we have started to deploy SuperMicro-based hardware with OpenSolaris and ZFS for storage of some classes of data. The systems we have built previously have not had any strict performance requirements, and were built with SuperMicro&#8217;s <a href="http://www.supermicro.com/products/chassis/4U/846/SC846E2-R900.cfm">SC846E2 chassis</a>, which supports 24 total SAS/SATA drives, with an integrated port multiplier in the backplane to support multipath to SAS drives. We&#8217;re building out a new system that we hope to be able to promote to tier-1 for some &#8220;less critical data&#8221;, so we wanted better drive density and more performance. We landed on the relatively new <a href="http://www.supermicro.com/products/chassis/4U/?chs=847">SuperMicro SC847</a> chassis, which supports 36 total 3.5&#8243; drives (24 front and 12 rear) in a 4U enclosure. While researching this product, I didn&#8217;t find many reviews and detailed pictures of the chassis, so figured I&#8217;d take some pictures while building the system and post them for the benefit of anyone else interested in such a solution.</p>
<p><span id="more-958"></span></p>
<p><em>Updates:</em><br />
[2010-05-19 Some observations on power consumption appended to the bottom of the post.]<br />
[2010-05-20 Updated notes a bit to clarify that I am not doing multilane or SAS - thanks for reminding me to clarify that Mike.]</p>
<p>In the systems we&#8217;ve built so far, we&#8217;ve only deployed SATA drives since OpenSolaris can still get us decent performance with SSD for read and write cache. This means that in the 4U cases we&#8217;ve used with integrated port multipliers, we have only used one of the two SFF-8087 connectors on the backplane; this works fine, but limits the total throughput of all drives in the system to 4 3gbit/s channels (on this chassis, 6 drives would be on each 3gbit channel.) On our most recent build, we built it with the intention of using it both for &#8220;nearline&#8221;-class storage, and as a test platform to see if we can get the performance we need to store VM images. As part of this decision, we decided to go with a backplane that supports full throughput to each drive. We also decided to use SATA drives for the storage disks, versus 7200rpm SAS drives (which would support multilane, but with the backplane we&#8217;re using it doesn&#8217;t matter), or faster SAS disks (as the SSD caches should give us all the speed we need.) For redundancy, our plan is to use replication between appliances versus running multi-head stacked to the same storage shelves; for an example of a multi-head/multi-shelf setup, see <a href="http://blogs.iphouse.net/mike/2010/05/a-storage-cluster-is-born/">this build</a> by the local geek Mike Horwath of <a href="http://www.iphouse.com">ipHouse</a>.</p>
<p>When purchasing a SuperMicro chassis with a SAS backplane, there are a few things you should be aware of..</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-2600332485776111";
/* 728x90 page bottom ad */
google_ad_slot = "7834445648";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<ol>
<li>There are different models of the chassis that include different style backplanes:</li>
<ul>
<li>&#8216;A&#8217; style (IE &#8211; SC847<strong>A</strong>) &#8211; This chassis includes backplanes that allow direct access to each drive (no port multipliers) via SFF-8087 connectors. In the SC847 case, the front backplane has 6 SFF-8087 connectors, and the rear backplane has 3 SFF-8087 connectors. This allows full bandwidth to every drive, and minimizes the number of cables as much as possible. Downside, of course, is that you need enough controllers to provide 9 SFF-8087 connectors!</li>
<li>&#8216;TQ&#8217; style &#8211; not available for the SC847 cases, but in the SC846 chassis an example part number would be &#8216;SC846<strong>TQ</strong>&#8216;. This backplane provides an individual SATA connector for each drive &#8212; in other words, you will need 24 SATA cables, and 24 SATA ports to connect them to. This will be a bit of a mess cable-wise.. with the SFF-8087 option, I don&#8217;t know why anyone would still be interested in this &#8211; if you have a reason, please comment! This is quite a common option on the 2U chassis &#8211; it can actually be difficult to purchase a 2U barebones &#8220;SuperServer&#8221; that includes SFF-8087 connectors.</li>
<li>&#8216;E1&#8242; style (IE &#8211; SC847<strong>E1</strong>) &#8211; This chassis includes backplanes with integrated 3gbit/s port multipliers, without multipath support. Each backplane has one SFF-8087 connector, so you only need two SFF-8087 ports in a SC847E1 system. The downside is that you are limited to 3gbit/s per channel &#8211; so you&#8217;d have a total of 6 drives on each 3gbit/s channel for the front backplane, and 3 drives on each channel for the rear backplane. SuperMicro also has a &#8216;E16&#8242; option (IE &#8211; SC847E16) which is upcoming, and supports SATA3/SAS2, for a total of 6gbit/s per channel.</li>
<li>&#8216;E2&#8242; style (IE &#8211; SC847<strong>E2</strong>) &#8211; Similar to the SC847E1, this includes a port multiplier on the backplane, but also supports multipath for SAS drives. Each backplane has two SFF-8087 connectors. Same caveats as the E1 apply. They also have a &#8216;E26&#8242; version coming out soon (IE &#8211; SC847E26) which will include SAS2 (6gbit/s) multipliers.</li>
<p><em>I do wish that SuperMicro would offer a &#8220;best of both worlds&#8221; option &#8211; it would be great to be able to get a high amount of bandwidth to each drive, and also support multipath. Maybe something like a SAS2 backplane which only put two or three drives on each channel instead of six drives? If they did two drives per channel with a port multiplier, and supported multipath, it should be possible to get the same amount of total bandwidth to each drive (assuming active/active multipath), and still keep a reasonable number of total SFF-8087 connectors, plus support multipath with SAS drives, and get the bonus of controller redundancy. If anyone knows of an alternate vendor or of plans at SuperMicro to offer this, by all means, comment!</em>
</ul>
<li>You can also choose the type of expansion slots you would like to support on the motherboard tray; you will need to match the tray to the type of motherboard that you purchase. Note that these are the same options available on their 2U chassis &#8211; the concept of the SC847 chassis essentially makes your motherboard choices the same as the 2U systems.</li>
<ul>
<li>&#8216;UB&#8217; option (IE, SC847A-R1400<strong>UB</strong>) &#8211; this option supports SuperMicro&#8217;s proprietary UIO expansion cards. It uses a proprietary riser card to mount the cards horizontally, and will support 4 full-height cards and 3 low-profile cards in the SC847. They get the card density by mounting the components for one (or more) UIO cards on the opposite site of the PCB than you usually see &#8211; the connector itself is still PCI-E x8, but the bracket and components are all on the opposite side. I have not ordered a chassis that uses UIO recently, so I&#8217;m not sure if the sample part number would include riser cards or not. Note that you will need to purchase a SuperMicro board that supports UIO for this chassis.</li>
<li>&#8216;LPB&#8217; option (IE, SC847A-R1400<strong>LPB</strong>) &#8211; this option supports 7 low-profile expansion slots. If you do not have any need for full-height cards, this gives you the maximum number of high-speed slots. This is the option you will need to go with if you want to use a motherboard from a vendor other than SuperMicro.</li>
</ul>
</ol>
<p>For the system I&#8217;m building, we went with the following components:</p>
<ul>
<li>SuperMicro SC847A-R1400LPB chassis &#8211; 36-bay chassis with backplanes that offer direct access to each drive via SFF-8087 connectors. 7 low-profile expansion slots on the motherboard tray.</li>
<li>SuperMicro X8DTH-6F motherboard &#8211; Intel 5520 chipset; supports Intel&#8217;s 5500- and 5600- series Xeon CPUs. Has an integrated LSI 2008 SAS2 controller, which supports 8 channels via two SFF-8087 ports. 7 PCI-E 2.0 x8 slots. 12 total memory slots. IPMI with KVMoIP integrated. Two Gig-E network ports based on Intel&#8217;s newest 82576 chipset. <em>This board is great.. but what would make it perfect for me would be a version of the board that had 18 memory slots and 4 integrated Gig-E ports instead of two. Ah well, can&#8217;t have it all!</em></li>
<li>2x Intel E5620 Westmere processors</li>
<li>24gb DDR3 memory; PC3-10600, registered/ecc.</li>
<li>4x LSI 9211-8i PCI-E SAS-2 HBA &#8211; 2 SFF-8087 ports on each controller; same chipset (LSI 2008) as the onboard controllers. This gives me a total of 10 SFF-8087 SAS2 ports, which is one more than needed to supports all the drive bays. I should also note that we haven&#8217;t had any problems with the LSI2008-based controllers dropping offline with timeouts under OpenSolaris; with our other systems, we started with LSI 3081E-R controllers, and had no end of systems failing due to <a href="http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6894775">bug ID 6894775 in OpenSolaris</a>, which as far as I&#8217;m able to tell has not yet been resolved. Swapping the controllers out with 9211-8i&#8217;s solved all the issues we were having.</li>
<li>Variety of SuperMicro and 3ware SFF-8087 cables in various lengths to reach the ports on the backplanes from the controller locations.</li>
<li>2x Seagate 750gb SATA hard drives for boot disks.</li>
<li>18x Hitachi 2TB SATA hard drives for data disks.</li>
<li>2x Intel 32gb X25-E SATA-2 SSD&#8217;s; used in ZFS for a mirrored Zero Intent Log (ZIL); write cache. (Note: 2.5&#8243; drives; needs a SuperMicro MCP-220-00043-0N adapter to mount in the hot-swap bays.)</li>
<li>1x <a href="http://www.amazon.com/gp/product/B0039SM0AS?ie=UTF8&#038;tag=httpwwwnateca-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=B0039SM0AS">Crucial RealSSD C300 128gb SSD</a><img src="http://www.assoc-amazon.com/e/ir?t=httpwwwnateca-20&#038;l=as2&#038;o=1&#038;a=B0039SM0AS" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />; used in ZFS for a L2ARC read cache. (Also a 2.5&#8243; drive; see note above.)</li>
</ul>
<p>We purchased the system from CDW, with our own customer-specific pricing. I&#8217;m not allowed to share what we paid, but for your reference, I&#8217;ve whipped up a shopping cart at <a href="http://www.provantage.com">Provantage</a> with (essentially) the same components. There is no special pricing here; this is just the pricing that their web site listed as of May 8 2010 at 11:18am central time. <em>Note: I have no affiliation with Provantage. I have ordered from them previously, and enjoyed their service, but cannot guarantee you will have a good experience there. The prices here may or may not be valid if you go to order. You may be able to get better pricing by talking to a customer service rep there. I also had to change a few components for parts that Provantage did not have available &#8211; namely some of the various lengths of SFF-8087 cables. I error&#8217;d on the side of &#8216;long&#8217;, so it should work, but I haven&#8217;t built a system with those exact cables, so can&#8217;t guarantee anything.</em></p>
<p><center>
<a href="http://www.natecarlson.com/wp-content/gallery/supermicro-images/provantage-supermicro-system.jpg" title="" class="thickbox" rel="singlepic83" >
	<img class="ngg-singlepic" src="http://www.natecarlson.com/wp-content/gallery/cache/83__600x_provantage-supermicro-system.jpg" alt="provantage-supermicro-system" title="provantage-supermicro-system" />
</a>
</center></p>
<p><br/><br />
As you can see, the total price for this system came out at just under <strong>$8500</strong>, or <strong>$8717.14</strong> shipped. Not bad at all for a high-performance storage array with 18 2tb data drives and the ability to add 13 more.</p>
<p>If we do decide that this is the route to go for our VM image storage, the config would be similar to above, with the following changes at minimum:</p>
<ul>
<li>More memory (probably 48gb) using 8gb modules to leave room for more expansion without having to replace modules.</li>
<li>Switch from desktop HDDs to enterprise or nearline HDDs (6gb SAS if they are economical); probably also go with lower capacity drives, as our VMs would not require the same amount of total storage, and NexentaStor is priced by the terabyte of raw storage.</li>
<li>Add more (either 4x or 6x total, still used in pairs of 2) X25-E&#8217;s for ZIL/SLOG, possibly also go with 64gb instead of 32gb. (More total drives should mean more total throughput for synchronous writes. If Seagate Pulsars are available, also consider those.</li>
<li>Add additional RealSSD C300&#8217;s for cache drives; the more the better.</li>
<li>Add additional network capacity in the form of PCI-E NIC cards &#8211; either 2x 4-port Gig-E or 2x 10-GigE. This will allow us to make better use of IPMP and LACP to both distribute our network load among our core switches and use more than 2gbit total bandwidth.</li>
</ul>
<p><br/><br />
<center><script type="text/javascript"><!--
amazon_ad_tag = "httpwwwnateca-20"; amazon_ad_width = "600"; amazon_ad_height = "520"; amazon_ad_link_target = "new";//--></script><br />
<script type="text/javascript" src="http://www.assoc-amazon.com/s/ads.js"></script></center><br />
<br/></p>
<p>In any case, on to some pictures of the chassis and build.</p>

<a href="http://www.natecarlson.com/wp-content/gallery/supermicro-images/supermicro-sc847-boxed.jpg" title="" class="thickbox" rel="singlepic21" >
	<img class="ngg-singlepic" src="http://www.natecarlson.com/wp-content/gallery/cache/21__600x_supermicro-sc847-boxed.jpg" alt="supermicro-sc847-boxed" title="supermicro-sc847-boxed" />
</a>
<br />
<em>Chassis in shipping box &#8211; includes good quality rackmount rails and the expected box of screws, power cables, etc. First SuperMicro chassis I&#8217;ve ordered that is palletized.</em><br />
<br/></p>
<p>
<a href="http://www.natecarlson.com/wp-content/gallery/supermicro-images/supermicro-sc847-front.jpg" title="" class="thickbox" rel="singlepic22" >
	<img class="ngg-singlepic" src="http://www.natecarlson.com/wp-content/gallery/cache/22__600x_supermicro-sc847-front.jpg" alt="supermicro-sc847-front" title="supermicro-sc847-front" />
</a>
<br />
<em>Front of the chassis &#8211; 24 drive bays up front.</em><br />
<br/></p>
<p>
<a href="http://www.natecarlson.com/wp-content/gallery/supermicro-images/supermicro-sc847-back-with-cover-removed.jpg" title="" class="thickbox" rel="singlepic20" >
	<img class="ngg-singlepic" src="http://www.natecarlson.com/wp-content/gallery/cache/20__600x_supermicro-sc847-back-with-cover-removed.jpg" alt="supermicro-sc847-back-with-cover-removed" title="supermicro-sc847-back-with-cover-removed" />
</a>
<br />
<em>Rear of the chassis &#8211; 12 drive bays, and a tray for the motherboard above them. Also shows the air shroud to direct airflow over the CPUs; the only part of the chassis that feels cheap at all.. but it serves its purpose just fine.</em><br />
<br/></p>
<p>
<a href="http://www.natecarlson.com/wp-content/gallery/supermicro-images/supermicro-sc847-motherboard-sled-removed.jpg" title="" class="thickbox" rel="singlepic23" >
	<img class="ngg-singlepic" src="http://www.natecarlson.com/wp-content/gallery/cache/23__600x_supermicro-sc847-motherboard-sled-removed.jpg" alt="supermicro-sc847-motherboard-sled-removed" title="supermicro-sc847-motherboard-sled-removed" />
</a>
<br />
<em>System with the motherboard tray removed. Note that as far as the mounting is concern the tray is pretty much the same as a standard SuperMicro 2U system. You&#8217;ll need to order heatsinks, cards, etc that would work in a 2U.</em><br />
<br/></p>
<p>
<a href="http://www.natecarlson.com/wp-content/gallery/supermicro-images/supermicro-sc847-view-from-back-with-tray-removed.jpg" title="" class="thickbox" rel="singlepic24" >
	<img class="ngg-singlepic" src="http://www.natecarlson.com/wp-content/gallery/cache/24__600x_supermicro-sc847-view-from-back-with-tray-removed.jpg" alt="supermicro-sc847-view-from-back-with-tray-removed" title="supermicro-sc847-view-from-back-with-tray-removed" />
</a>
<br />
<em>View of the system from the back with the motherboard and four front fans removed. You can see a bit of the front backplane in the upper right; two of the SFF-8087 connectors are visible. All cable routing goes underneath the fans; there is plenty of room under the motherboard for cable slack. You can also see the connectors that the power supplies slide into on the upper left hand corner, and a pile of extra power cables that are unneeded for my configuration underneath that.</em><br />
<br/></p>
<p>
<a href="http://www.natecarlson.com/wp-content/gallery/supermicro-images/supermicro-sc847a-r1400lpb-front-drive-backplane.jpg" title="" class="thickbox" rel="singlepic32" >
	<img class="ngg-singlepic" src="http://www.natecarlson.com/wp-content/gallery/cache/32__600x_supermicro-sc847a-r1400lpb-front-drive-backplane.jpg" alt="supermicro-sc847a-r1400lpb-front-drive-backplane" title="supermicro-sc847a-r1400lpb-front-drive-backplane" />
</a>
<br />
<em>Another shot of the front backplane. You can see the five of the six SFF-8087 connectors (the other is on the right-hand side of the backplane which is not visible.) Also note the fans that I&#8217;ve removed to get better access to the backplane.</em><br />
<br/></p>
<p>
<a href="http://www.natecarlson.com/wp-content/gallery/supermicro-images/supermicro-sc847a-r1400lpb-fan-connector-and-one-sff8087-port.jpg" title="" class="thickbox" rel="singlepic30" >
	<img class="ngg-singlepic" src="http://www.natecarlson.com/wp-content/gallery/cache/30__600x_supermicro-sc847a-r1400lpb-fan-connector-and-one-sff8087-port.jpg" alt="supermicro-sc847a-r1400lpb-fan-connector-and-one-sff8087-port" title="supermicro-sc847a-r1400lpb-fan-connector-and-one-sff8087-port" />
</a>
<br />
<em>One of the power connectors that the fans slide into (white four-pin connector near the center of the picture); the SFF-8087 connector that is not visible in the picture above is highlighted in red.</em><br />
<br/></p>
<p>
<a href="http://www.natecarlson.com/wp-content/gallery/supermicro-images/supermicro-sc847a-r1400lpb-motherboard-tray-with-studs.jpg" title="" class="thickbox" rel="singlepic34" >
	<img class="ngg-singlepic" src="http://www.natecarlson.com/wp-content/gallery/cache/34__600x_supermicro-sc847a-r1400lpb-motherboard-tray-with-studs.jpg" alt="supermicro-sc847a-r1400lpb-motherboard-tray-with-studs" title="supermicro-sc847a-r1400lpb-motherboard-tray-with-studs" />
</a>
<br />
<em>Motherboard tray before installing the motherboard. This tray uses a different style screw system than I&#8217;ve seen before; instead of having threaded holes that you screw standoffs into, they have standoffs coming up off the bottom (one highlighted in blue), which you screw an adapter onto (highlighted in red) which the motherboard rests on and is secured to.</em><br />
<br/></p>
<p>
<a href="http://www.natecarlson.com/wp-content/gallery/supermicro-images/supermicro-sc847a-tray-removed-back-drive-bays-and-backplane.jpg" title="" class="thickbox" rel="singlepic36" >
	<img class="ngg-singlepic" src="http://www.natecarlson.com/wp-content/gallery/cache/36__600x_supermicro-sc847a-tray-removed-back-drive-bays-and-backplane.jpg" alt="supermicro-sc847a-tray-removed-back-drive-bays-and-backplane" title="supermicro-sc847a-tray-removed-back-drive-bays-and-backplane" />
</a>
<br />
<em>A partial view of the rear backplane on the system; also the bundle of extra power cables and the ribbon cable connected to the front panel.</em><br />
<br/></p>
<p>
<a href="http://www.natecarlson.com/wp-content/gallery/supermicro-images/supermicro-sc847a-r1400lpb-pws-1k41p-1r-1400w-power-supply.jpg" title="" class="thickbox" rel="singlepic35" >
	<img class="ngg-singlepic" src="http://www.natecarlson.com/wp-content/gallery/cache/35__600x_supermicro-sc847a-r1400lpb-pws-1k41p-1r-1400w-power-supply.jpg" alt="supermicro-sc847a-r1400lpb-pws-1k41p-1r-1400w-power-supply" title="supermicro-sc847a-r1400lpb-pws-1k41p-1r-1400w-power-supply" />
</a>
<br />
<em>Labels on one of the power supplies. This system includes a pair of &#8216;PWS-1K41P-1R&#8217; power supplies, which output 1400W at 220V or 1100W at 120V.</em><br />
<br/></p>
<p>
<a href="http://www.natecarlson.com/wp-content/gallery/supermicro-images/supermicro-sc847a-r1400lpb-motherboard-installed-lsi-controllers-boxed.jpg" title="" class="thickbox" rel="singlepic33" >
	<img class="ngg-singlepic" src="http://www.natecarlson.com/wp-content/gallery/cache/33__600x_supermicro-sc847a-r1400lpb-motherboard-installed-lsi-controllers-boxed.jpg" alt="supermicro-sc847a-r1400lpb-motherboard-installed-lsi-controllers-boxed" title="supermicro-sc847a-r1400lpb-motherboard-installed-lsi-controllers-boxed" />
</a>
<br />
<em>Motherboard installed on tray, with the four LSI SAS HBAs in their boxes.</em><br />
<br/></p>
<p>
<a href="http://www.natecarlson.com/wp-content/gallery/supermicro-images/supermicro-sc847a-motherboard-with-intel-xeon-e5620-cpu.jpg" title="" class="thickbox" rel="singlepic28" >
	<img class="ngg-singlepic" src="http://www.natecarlson.com/wp-content/gallery/cache/28__600x_supermicro-sc847a-motherboard-with-intel-xeon-e5620-cpu.jpg" alt="supermicro-sc847a-motherboard-with-intel-xeon-e5620-cpu" title="supermicro-sc847a-motherboard-with-intel-xeon-e5620-cpu" />
</a>
<br />
<em>One of the two Intel E5620 &#8216;Westmere&#8217; Xeon processors set in motherboard but not secured yet.</em><br />
<br/></p>
<p>
<a href="http://www.natecarlson.com/wp-content/gallery/supermicro-images/supermicro-sc847a-motherboard-with-6-dimms-and-cpus-installed.jpg" title="" class="thickbox" rel="singlepic27" >
	<img class="ngg-singlepic" src="http://www.natecarlson.com/wp-content/gallery/cache/27__600x_supermicro-sc847a-motherboard-with-6-dimms-and-cpus-installed.jpg" alt="supermicro-sc847a-motherboard-with-6-dimms-and-cpus-installed" title="supermicro-sc847a-motherboard-with-6-dimms-and-cpus-installed" />
</a>
<br />
<em>Both processors and 24gb of memory installed. No heatsinks yet.</em><br />
<br/></p>
<p>
<a href="http://www.natecarlson.com/wp-content/gallery/supermicro-images/supermicro-sc847a-r1400lpb-complete-motherboard-tray.jpg" title="" class="thickbox" rel="singlepic29" >
	<img class="ngg-singlepic" src="http://www.natecarlson.com/wp-content/gallery/cache/29__600x_supermicro-sc847a-r1400lpb-complete-motherboard-tray.jpg" alt="supermicro-sc847a-r1400lpb-complete-motherboard-tray" title="supermicro-sc847a-r1400lpb-complete-motherboard-tray" />
</a>
<br />
<em>Motherboard tray complete and ready to be installed in the system. Heatsinks and LSI controllers have been installed. Note the two SFF-8087 connectors integrated on the motherboard, and eight more on the four controllers.</em><br />
<br/></p>
<p>
<a href="http://www.natecarlson.com/wp-content/gallery/supermicro-images/supermicro-sc847a-back-driveplane-with-sff8087-cable.jpg" title="" class="thickbox" rel="singlepic25" >
	<img class="ngg-singlepic" src="http://www.natecarlson.com/wp-content/gallery/cache/25__600x_supermicro-sc847a-back-driveplane-with-sff8087-cable.jpg" alt="supermicro-sc847a-back-driveplane-with-sff8087-cable" title="supermicro-sc847a-back-driveplane-with-sff8087-cable" />
</a>
<br />
<em>Prep work on the rear backplane; the chassis shipped with the power cables pre-wired; I connected the SFF-8087 cable.</em><br />
<br/></p>
<p>
<a href="http://www.natecarlson.com/wp-content/gallery/supermicro-images/supermicro-sc847a-lsi-cards-with-cables-connected.jpg" title="" class="thickbox" rel="singlepic26" >
	<img class="ngg-singlepic" src="http://www.natecarlson.com/wp-content/gallery/cache/26__600x_supermicro-sc847a-lsi-cards-with-cables-connected.jpg" alt="supermicro-sc847a-lsi-cards-with-cables-connected" title="supermicro-sc847a-lsi-cards-with-cables-connected" />
</a>
<br />
<em>Motherboard tray installed back in the system; SFF-8087 cables connected to three of the four LSI controllers. I ended up moving one controller over for ease of cabling &#8211; notice the gap in the middle of the four controllers.</em><br />
<br/></p>
<p><em>(Note: The pictures of the finished system below this point were taken on 5/7/2010; thanks to my coworker <a href="http://www.coolleen.com">Colleen</a> for letting me borrow her camera since I <strong>#natefail</strong>&#8216;d to bring mine!)</em><br />
<br/></p>
<p>
<a href="http://www.natecarlson.com/wp-content/gallery/supermicro-images/supermicro-sc847a-fans.jpg" title="" class="thickbox" rel="singlepic38" >
	<img class="ngg-singlepic" src="http://www.natecarlson.com/wp-content/gallery/cache/38__600x_supermicro-sc847a-fans.jpg" alt="supermicro-sc847a-fans" title="supermicro-sc847a-fans" />
</a>
<br />
<em>The seven cooling fans to keep this system running nice and cool.</em><br />
<br/></p>
<p>
<a href="http://www.natecarlson.com/wp-content/gallery/supermicro-images/supermicro-sc847a-hba-cabled-up.jpg" title="" class="thickbox" rel="singlepic40" >
	<img class="ngg-singlepic" src="http://www.natecarlson.com/wp-content/gallery/cache/40__600x_supermicro-sc847a-hba-cabled-up.jpg" alt="supermicro-sc847a-hba-cabled-up" title="supermicro-sc847a-hba-cabled-up" />
</a>
<br />
<em>HBAs with all cables connected.</em><br />
<br/></p>
<p>
<a href="http://www.natecarlson.com/wp-content/gallery/supermicro-images/supermicro-sc847a-r1400lpb-finished-build-with-top-off.jpg" title="" class="thickbox" rel="singlepic41" >
	<img class="ngg-singlepic" src="http://www.natecarlson.com/wp-content/gallery/cache/41__600x_supermicro-sc847a-r1400lpb-finished-build-with-top-off.jpg" alt="supermicro-sc847a-r1400lpb-finished-build-with-top-off" title="supermicro-sc847a-r1400lpb-finished-build-with-top-off" />
</a>
<br />
<em>Finished system build with the top off. One power supply is slightly pulled out since I only have a single power cable plugged in.. if you have one cable plugged in but both power supplies installed, alas, the alarm buzzer is loud.</em><br />
<br/></p>
<p>
<a href="http://www.natecarlson.com/wp-content/gallery/supermicro-images/supermicro-sc847a-front-lights.jpg" title="" class="thickbox" rel="singlepic39" >
	<img class="ngg-singlepic" src="http://www.natecarlson.com/wp-content/gallery/cache/39__600x_supermicro-sc847a-front-lights.jpg" alt="supermicro-sc847a-front-lights" title="supermicro-sc847a-front-lights" />
</a>
<br />
<em>Front hard drive lights after system is finished &#8211; note that we don&#8217;t have every drive bay populated yet.</em><br />
<br/></p>
<p>
<a href="http://www.natecarlson.com/wp-content/gallery/supermicro-images/supermicro-sc847a-rear-lights.jpg" title="" class="thickbox" rel="singlepic42" >
	<img class="ngg-singlepic" src="http://www.natecarlson.com/wp-content/gallery/cache/42__600x_supermicro-sc847a-rear-lights.jpg" alt="supermicro-sc847a-rear-lights" title="supermicro-sc847a-rear-lights" />
</a>
<br />
<em>Rear drive lights while system is running.</em><br />
<br/></p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-2600332485776111";
/* 728x90 page bottom ad */
google_ad_slot = "7834445648";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<p>The build-out on the system went fine for the most part; the only problem I ran into is that the motherboard did not have a BIOS installed which supported the relatively new Westmere processors. Fortunately I had a Nehalem E5520 I could borrow from another system to get the BIOS upgraded.. I wish the BIOS recovery procedure would work for unsupported processors, but ah well. I was pleased with the way the motherboard tray slides out; it makes it easy to get the cabling tucked underneath and routed so that they will not interfere with airflow. There also seems to be plenty of airflow to keep the 36 drives cooled.</p>
<p>I currently have NexentaStor 3.0 running on the system; we have not yet landed on what operating system we will run on this long-term.. but it will likely either be NexentaCore or NexentaStor. If we deploy this solution for our VM images (with some upgrades as mentioned above), we will almost certainly use NexentaStor and the VMDC plugin, but we&#8217;ll cross that bridge if we get there!</p>
<p>Here&#8217;s the disk configuration I have running at the moment with NexentaStor:</p>
<ul>
<li>&#8217;syspool&#8217;: Mirrored ZFS zpool with 2&#215;750gb Seagate drives.</li>
<li>&#8216;NateVol1&#8242;: ZFS zpool with..</li>
<ul>
<li>2 RaidZ3 arrays with 8 2TB disks each</li>
<li>2 2TB disks set as spares</li>
<li>2 36gb Intel X25-E SSDs as a mirrored log device</li>
<li>1 128gb Crucial RealSSD C300 as a cache device</li>
</ul>
</ul>
<p>..and the obligatory screenshot of the data volume config:</p>

<a href="http://www.natecarlson.com/wp-content/gallery/supermicro-images/supermicro-nexenta-snapshot.jpg" title="" class="thickbox" rel="singlepic84" >
	<img class="ngg-singlepic" src="http://www.natecarlson.com/wp-content/gallery/cache/84__600x_supermicro-nexenta-snapshot.jpg" alt="supermicro-nexenta-snapshot" title="supermicro-nexenta-snapshot" />
</a>

<p><br/><br />
This nets 18T usable space, and would allow for a simultaneous failure of any three data disks before there is any risk of data loss. (Each of the sub-arrays in &#8216;NateVol1&#8242; have 3 parity disks &#8211; so I could also lose 3 disks from each of the sub-arrays without any issues.)</p>
<p>Again, this system only has two Gig-E NICs at the moment.. I&#8217;ve done I/O tests with NFS across one NIC and iSCSI across the other NIC, and can max out the bandwidth on both cards simultaneously with multiple runs of <a href="http://www.coker.com.au/bonnie++/">Bonnie++ 1.96</a> without the system breaking a sweat. I like! I should also note that this is with both deduplication and compression enabled.</p>
<p>Another note &#8211; before putting this into production, I did some simple &#8220;amp clamp&#8221; power usage tests on the box, with one power supply unplugged. The other power supply was plugged into 120V. While idling, it consumed 3.3A, and while running multiple copies of Bonnie in the ZFS storage pool (with all active disks lighting up nicely), it consumed 4.1A. Not bad at all for the amount of disk in this machine! I&#8217;d estimate that if the 13 additional drive bays were occupied with 2TB disks, and all those disks were active, the machine would consume about 5.5A &#8211; maybe slightly more. When we racked it up at the data center (in one of our legacy racks that is still 120V), the power usage bumped up by 3.2A combined across the A+B power, which matches nicely with my clamped readings. I&#8217;m very impressed &#8211; under 500 watts while running full out.. wow.</p>
<p>I will update this post once we decide on a final configuration &#8220;for real&#8221; and put this into production, but so far I&#8217;d highly recommend this configuration! If you&#8217;ve used the SC847 chassis, I&#8217;d love to hear what you&#8217;ve thought. I&#8217;d also love to try out the 45-bay storage expansion version of this chassis at some point &#8211; talk about some dense storage!  :)</p>


<p>Related posts:<ol><li><a href='http://www.natecarlson.com/2009/11/02/sun-adds-block-level-deduplication-to-zfs/' rel='bookmark' title='Permanent Link: Sun adds block-level deduplication to zfs'>Sun adds block-level deduplication to zfs</a></li>
<li><a href='http://www.natecarlson.com/2010/02/23/sun-7210-designed-to-disappoint/' rel='bookmark' title='Permanent Link: Sun&#8217;s Unified Storage 7210 &#8211; designed to disappoint?'>Sun&#8217;s Unified Storage 7210 &#8211; designed to disappoint?</a></li>
<li><a href='http://www.natecarlson.com/2005/09/17/new-backplane-in-my-drive-array/' rel='bookmark' title='Permanent Link: new backplane in my drive array'>new backplane in my drive array</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.natecarlson.com/2010/05/07/review-supermicros-sc847a-4u-chassis-with-36-drive-bays/feed/</wfw:commentRss>
		<slash:comments>41</slash:comments>
		</item>
		<item>
		<title>Debian Lenny on Nehalem-based systems</title>
		<link>http://www.natecarlson.com/2009/04/16/debian-lenny-on-nehalem-based-systems/</link>
		<comments>http://www.natecarlson.com/2009/04/16/debian-lenny-on-nehalem-based-systems/#comments</comments>
		<pubDate>Thu, 16 Apr 2009 20:03:17 +0000</pubDate>
		<dc:creator>nc</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Open-source]]></category>

		<guid isPermaLink="false">http://www.natecarlson.com/?p=178</guid>
		<description><![CDATA[
I recently had the opportunity to set up a few Nehalem based servers at SoftLayer to replace some older hardware that we were using.. and these servers /rock/. The servers have the E5520 CPU&#8217;s, and kick the snot out of the E5430&#8217;s that they replaced. We were able to actually able to replace 6 dual-5430&#8217;s [...]


Related posts:<ol><li><a href='http://www.natecarlson.com/2009/04/24/virtuozzo-on-nehalem-systems-at-softlayer/' rel='bookmark' title='Permanent Link: virtuozzo on nehalem systems at softlayer'>virtuozzo on nehalem systems at softlayer</a></li>
<li><a href='http://www.natecarlson.com/2005/09/13/debian-on-an-inspiron-6000/' rel='bookmark' title='Permanent Link: debian on an inspiron 6000'>debian on an inspiron 6000</a></li>
<li><a href='http://www.natecarlson.com/2007/05/02/how-to-compile-nvidia-kernel-modules-on-2620-with-paravirt_ops-enabled/' rel='bookmark' title='Permanent Link: How to compile Nvidia kernel modules on 2.6.20+ with paravirt_ops enabled'>How to compile Nvidia kernel modules on 2.6.20+ with paravirt_ops enabled</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.natecarlson.com/2009/04/16/debian-lenny-on-nehalem-based-systems/" title="Permanent link to Debian Lenny on Nehalem-based systems"><img class="post_image alignleft" src="http://www.natecarlson.com/images/logos/logo-debian.png" width="179" height="61" alt="Debian Logo" /></a>
</p><p>I recently had the opportunity to set up a few Nehalem based servers at <a href="http://www.softlayer.com">SoftLayer</a> to replace some older hardware that we were using.. and these servers /rock/. The servers have the E5520 CPU&#8217;s, and kick the snot out of the E5430&#8217;s that they replaced. We were able to actually able to replace 6 dual-5430&#8217;s with 4 dual-5520&#8217;s, and lower our costs significantly (by about 25%) &#8212; which is nice!</p>
<p>However, I did run into one problem while installing Debian Lenny (5.0) on these systems. The problem is that the on-board Intel Gig-E adapters (PCI ID 8086:10c9) are not supported in the 2.6.26 kernel which Lenny ships with &#8211; d&#8217;oh! If you are not planning on using Xen on your system, you could install the 2.6.29 kernel from Unstable; however, in my case, I wanted to use Xen, and there is no Xen dom0 support in 2.6.29. I was able to overcome this by re-building Debian&#8217;s 2.6.26 kernel (rev 2.6.26-13) with the most recent version of the igb drivers from <a href="http://downloadcenter.intel.com/detail_desc.aspx?agr=Y&#038;DwnldID=13663">Intel&#8217;s web site</a>. </p>
<p>If you have a similar server and don&#8217;t want to go through the same pain I did, read more for directions on how to do this!</p>
<p><span id="more-178"></span></p>
<p><center><script type="text/javascript"><!--
google_ad_client = "pub-2600332485776111";
/* 728x90 page bottom ad */
google_ad_slot = "7834445648";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></center></p>
<p>Here are the steps to install, assuming that you&#8217;re using a KVM-IPMI interface that supports virtual media:</p>
<p>1) Install a base system using the &#8216;netinstall&#8217; or first install disc from Debian. [<a href="http://cdimage.debian.org/debian-cd/current/amd64/iso-cd/">amd64</a>] [<a href="http://cdimage.debian.org/debian-cd/current/i386/iso-cd/">i386</a>]</p>
<p>2) On a different machine, download the updated kernel image which you would like to use from <a href="http://www.natecarlson.com/downloads/debian-lenny-nehalem-kernel/">my web site</a>. <strong>Please</strong> only download the image(s) you intend to use to conserve bandwidth.</p>
<p>3) Create an ISO image that contains the kernel image you would like to use. On a Linux system, the following command would do the trick:</p>
<blockquote><p>genisoimage -o ~/iso/nehalem-kernel-images.iso -J -R linux-image-[whatever]</p></blockquote>
<p>4) Select the generated ISO image using the IPMI interface, and mount it on your guest. Then, install the new kernel with:</p>
<blockquote><p>dpkg -i linux-image-[whatever]</p></blockquote>
<p>5) Reboot, and you should be running the new kernel!</p>
<p>When I built these kernel images, I updated the subrelease to &#8216;999&#8242; to try to ensure that future Debian updates would not overwrite them. I would recommend watching the <a href="http://bugs.debian.org/522922">Debian bug</a> for this issue, and manually install the patched Debian kernel when it comes available.</p>
<p><strong>Note: These kernels are provided with no warranty. I&#8217;ve provided the source I used to build the kernels so you can verify that they only contain the updated igb driver. If you have issues, feel free to comment, and I will try to help you out, but cannot guarantee anything. The kernels may or may not be updated to include security patches as they come available.</strong></p>


<p>Related posts:<ol><li><a href='http://www.natecarlson.com/2009/04/24/virtuozzo-on-nehalem-systems-at-softlayer/' rel='bookmark' title='Permanent Link: virtuozzo on nehalem systems at softlayer'>virtuozzo on nehalem systems at softlayer</a></li>
<li><a href='http://www.natecarlson.com/2005/09/13/debian-on-an-inspiron-6000/' rel='bookmark' title='Permanent Link: debian on an inspiron 6000'>debian on an inspiron 6000</a></li>
<li><a href='http://www.natecarlson.com/2007/05/02/how-to-compile-nvidia-kernel-modules-on-2620-with-paravirt_ops-enabled/' rel='bookmark' title='Permanent Link: How to compile Nvidia kernel modules on 2.6.20+ with paravirt_ops enabled'>How to compile Nvidia kernel modules on 2.6.20+ with paravirt_ops enabled</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.natecarlson.com/2009/04/16/debian-lenny-on-nehalem-based-systems/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Using Procmail with Plesk: rules via Ingo</title>
		<link>http://www.natecarlson.com/2009/01/07/using-procmail-with-plesk-rules-via-ingo/</link>
		<comments>http://www.natecarlson.com/2009/01/07/using-procmail-with-plesk-rules-via-ingo/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 07:43:01 +0000</pubDate>
		<dc:creator>nc</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Horde]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Ingo]]></category>
		<category><![CDATA[Mail]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[Plesk]]></category>
		<category><![CDATA[Procmail]]></category>

		<guid isPermaLink="false">http://www.natecarlson.com/?p=143</guid>
		<description><![CDATA[In my previous post, I discussed how to get automatic procmail integration working with Plesk, to let you set up procmailrc rules to sort mail into folders. At the end of the post, I mentioned that it would be nice to figure out how to get Plesk&#8217;s version of Ingo set up to generate the [...]


Related posts:<ol><li><a href='http://www.natecarlson.com/2009/01/06/using-procmail-with-plesk/' rel='bookmark' title='Permanent Link: Using Procmail with Plesk'>Using Procmail with Plesk</a></li>
<li><a href='http://www.natecarlson.com/2005/09/21/per-user-spamassassin-preferences-in-ldap-with-mimedefang/' rel='bookmark' title='Permanent Link: per-user spamassassin preferences in ldap with mimedefang'>per-user spamassassin preferences in ldap with mimedefang</a></li>
<li><a href='http://www.natecarlson.com/2005/11/21/using-advanced-routing-to-control-traffic-across-your-interfaces/' rel='bookmark' title='Permanent Link: using advanced routing to control traffic across your interfaces'>using advanced routing to control traffic across your interfaces</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>In my <a href="http://www.natecarlson.com/2009/01/06/using-procmail-with-plesk">previous post</a>, I discussed how to get automatic procmail integration working with Plesk, to let you set up procmailrc rules to sort mail into folders. At the end of the post, I mentioned that it would be nice to figure out how to get Plesk&#8217;s version of <a href="http://www.horde.org/ingo/">Ingo</a> set up to generate the rules for us automatically. Well, turns out it&#8217;s pretty easy! Once you set up procmail (as described in my previous post), and make the changes after the break to your Ingo config, any filters that users define via Plesk&#8217;s Horde/Imp/Ingo implementation will become server-side rules automatically. It&#8217;s surprisingly easy, and extremely versatile! The one downside is that if you edit the procmailrc files by hand, and then save rules in Ingo, your changes <b>will</b> be overwritten.</p>
<p><span id="more-143"></span></p>
<p>First, you need to set a password for the &#8216;popuser&#8217; user, and remove the user from &#8216;/etc/ftpusers&#8217;. This will allow Ingo to FTP into the system as that user, and update procmailrc entries.</p>
<p>Then, you need to edit the Ingo config. For some reason, Plesk 9&#8217;s Ingo package for Debian has config files in two locations:<br />
/etc/psa/webmail/horde/ingo/backends.php<br />
/etc/psa-horde/ingo/backends.php</p>
<p>I&#8217;m not sure which one actually gets used, so I created a symlink:<br />
<code><br />
# rm -f /etc/psa-horde/ingo/backends.php<br />
# ln -s /etc/psa/webmail/horde/ingo/backends.php /etc/psa-horde/ingo/backends.php<br />
</code></p>
<p>Then, we need to edit this file. There should be a default entry that looks like:<br />
<code><br />
/* IMAP Example */<br />
$backends['imap'] = array(<br />
    'driver' => 'null',<br />
    'preferred' => 'localhost',<br />
    'hordeauth' => true,<br />
    'params' => array(),<br />
    'script' => 'imap',<br />
    'scriptparams' => array()<br />
);<br />
</code></p>
<p>That&#8217;s not going to do anything for us, so nuke it. Then, copy and paste the entry below:</p>
<p><code><br />
$split = explode('@', Auth::getAuth());<br />
$backends['procmail'] = array(<br />
        'driver'        =>      'vfs',<br />
        'preferred'     =>      'localhost',<br />
        'hordeauth'     =>      'false',<br />
        'params'        =>      array(<br />
                'vfstype'       =>      'ftp',<br />
                'hostspec'      =>      'localhost',<br />
                'filename'      =>      '/var/qmail/mailnames/'.$split[1].'/'.$split[0].'/.procmailrc',<br />
                'port'          =>      21,<br />
                'username'      =>      'popuser',<br />
                'password'      =>      'password'<br />
                                ),<br />
        'script'        =>      'procmail',<br />
        'scriptparams'  =>      array(<br />
                'path_style'    =>      'maildir',<br />
                'variables'     =>      array(<br />
                        'MAILDIR'       =>      '/var/qmail/mailnames/' . $split[1] . '/' . $split[0] . '/Maildir',<br />
                        'DEFAULT'       =>      '${MAILDIR}/'<br />
                                        )<br />
                                )<br />
);<br />
</code></p>
<p>Simply change the password entry to the password you set for popuser. Then, log out of webmail and back in, set up a filter, and it should have updated the procmailrc entry for you. It&#8217;s magic!</p>
<p>Again, if this is useful or if you have any questions, please leave me a comment!</p>


<p>Related posts:<ol><li><a href='http://www.natecarlson.com/2009/01/06/using-procmail-with-plesk/' rel='bookmark' title='Permanent Link: Using Procmail with Plesk'>Using Procmail with Plesk</a></li>
<li><a href='http://www.natecarlson.com/2005/09/21/per-user-spamassassin-preferences-in-ldap-with-mimedefang/' rel='bookmark' title='Permanent Link: per-user spamassassin preferences in ldap with mimedefang'>per-user spamassassin preferences in ldap with mimedefang</a></li>
<li><a href='http://www.natecarlson.com/2005/11/21/using-advanced-routing-to-control-traffic-across-your-interfaces/' rel='bookmark' title='Permanent Link: using advanced routing to control traffic across your interfaces'>using advanced routing to control traffic across your interfaces</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.natecarlson.com/2009/01/07/using-procmail-with-plesk-rules-via-ingo/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Using Procmail with Plesk</title>
		<link>http://www.natecarlson.com/2009/01/06/using-procmail-with-plesk/</link>
		<comments>http://www.natecarlson.com/2009/01/06/using-procmail-with-plesk/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 23:47:15 +0000</pubDate>
		<dc:creator>nc</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Mail]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[Plesk]]></category>
		<category><![CDATA[Procmail]]></category>

		<guid isPermaLink="false">http://www.natecarlson.com/?p=133</guid>
		<description><![CDATA[For many years now, I&#8217;ve been maintaining a separate mail server, web server, and shell server. I&#8217;m getting busy these days, and just don&#8217;t have the time to dedicate to this maintenance. About a year and a half ago, I purchased a 30-domain Plesk license, which I am using for all the sites I host [...]


Related posts:<ol><li><a href='http://www.natecarlson.com/2009/01/07/using-procmail-with-plesk-rules-via-ingo/' rel='bookmark' title='Permanent Link: Using Procmail with Plesk: rules via Ingo'>Using Procmail with Plesk: rules via Ingo</a></li>
<li><a href='http://www.natecarlson.com/2005/09/21/per-user-spamassassin-preferences-in-ldap-with-mimedefang/' rel='bookmark' title='Permanent Link: per-user spamassassin preferences in ldap with mimedefang'>per-user spamassassin preferences in ldap with mimedefang</a></li>
<li><a href='http://www.natecarlson.com/2008/05/18/if-you-manage-routers-and-dont-have-rancid-get-it/' rel='bookmark' title='Permanent Link: if you manage routers and don&#8217;t have rancid, get it'>if you manage routers and don&#8217;t have rancid, get it</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>For many years now, I&#8217;ve been maintaining a separate mail server, web server, and shell server. I&#8217;m getting busy these days, and just don&#8217;t have the time to dedicate to this maintenance. About a year and a half ago, I purchased a 30-domain Plesk license, which I am using for all the sites I host for friends and family, but I haven&#8217;t cut my own sites over to it yet. I&#8217;m finally getting to the point where I want to stop having to worry about all the VM&#8217;s, and thinking about moving my sites and e-mail over to Plesk. The one big downside for me is that Plesk, by default, does not support server-side mail sorting or filtering. I am on about 50 different mailing lists, etc, and really don&#8217;t want to have to deal with sorting out that e-mail by hand. So, I did a bit of searching, and found that there are ways of getting Plesk to use Procmail &#8211; here are a few blog posts that discuss the subject:</p>
<p><a href="http://www.russwittmann.com/2007/07/14/server-side-mail-filtering-using-qmailprocmail-under-plesk/">http://www.russwittmann.com/2007/07/14/server-side-mail-filtering-using-qmailprocmail-under-plesk/</a><br />
<a href="http://rackerhacker.com/2007/11/27/sort-e-mail-in-plesk-with-procmail/">http://rackerhacker.com/2007/11/27/sort-e-mail-in-plesk-with-procmail/</a></p>
<p>In my case, I am not using Plesk&#8217;s built-in spam filtering (instead, I&#8217;m fronting it with Maia Mailguard &#8211; if you are curious on how to get that working, comment, and I&#8217;ll write a post on it someday), so the spam part of this really doesn&#8217;t apply for me.. but the posts do describe how to get procmail working. The one big downside is that it isn&#8217;t done automatically &#8212; any time the account is updated via Plesk, the .qmail file will be overwritten, and you will need to edit it by hand to get things working again. One of the posts suggests making it immutable, but, well, that&#8217;s a pain in the rear too.  ;)  </p>
<p>I wrote a quick script that will run through this setup for you, and then set up Plesk&#8217;s event handlers to call this script after an account is created or updated. My system is Plesk 9.0.0 on Debian 64-bit, using Postfix as the MTA &#8212; even though it&#8217;s Postfix, Plesk calls a virtual mail delivery agent that still uses the .qmail files. If you are interested in how this works, read more!</p>
<p><span id="more-133"></span></p>
<p>Without further ado, here is the script that I am using to auto-update the .qmail and .procmailrc files. Save this as /usr/local/sbin/add-procmail-rules.pl, and then read through the comments and make any updates that are needed.</p>
<p><b>### &#8212; start of add-procmail-rules.pl ###</b><br />
<code><br />
#!/usr/bin/perl -w<br />
#<br />
# Plesk event handler script to use procmail for mail delivery instead of<br />
# Plesk's default mail handler.<br />
#<br />
# By Nate Carlson<br />
# http://www.natecarlson.com<br />
use strict;<br />
#<br />
# Basic configuration, in case Parallels changes where Plesk stores stuff.<br />
my($topdir) = "/var/qmail/mailnames";<br />
my($qmailcfg) = ".qmail";<br />
my($procmailcfg) = ".procmailrc";<br />
my($maildir) = "Maildir";<br />
#<br />
# First, sleep for 5 seconds to make sure that Plesk has finished writing<br />
# out it's configuration to the .qmail file<br />
sleep(5);<br />
#<br />
# Grab the e-mail address from Plesk's NEW_MAILNAME variable, and split<br />
# it into user/domain parts.<br />
my($emailaddress) = $ENV{'NEW_MAILNAME'};<br />
my($user,$domain) = split(/\@/, $emailaddress, 2);<br />
#<br />
# Verify that we were able to split NEW_MAILNAME into user/domain parts;<br />
# die if not.<br />
if(!$user || !$domain) {<br />
        print "NEW_MAILNAME was not valid!\n";<br />
        exit 1;<br />
}<br />
#<br />
# Set the user directory; die if it does not exist.<br />
my($userdir) = "$topdir/$domain/$user";<br />
if ( ! -d "$userdir") {<br />
        print "User directory $userdir does not exist.";<br />
        exit 1;<br />
}<br />
#<br />
# Make sure the qmail cfg file exists<br />
if (! -f "$userdir/$qmailcfg") {<br />
        print "User does not have a dot-qmail file; exiting.";<br />
        exit 1;<br />
}<br />
#<br />
# Read in old qmail cfg file<br />
open(OLDQMAILCFG, "<$userdir/$qmailcfg");<br />
my(@oldqmailcfg) = <OLDQMAILCFG>;<br />
close(OLDQMAILCFG);<br />
#<br />
# Rename the old file for a backup copy<br />
rename "$userdir/$qmailcfg", "$userdir/$qmailcfg.old";<br />
#<br />
# Write out our custom .qmail file, only changing the deliverquota line<br />
# to procmail.<br />
open(QMAILCFG, ">$userdir/$qmailcfg");<br />
#<br />
my($oldline);<br />
foreach $oldline (@oldqmailcfg) {<br />
        chomp($oldline);<br />
        if ($oldline =~ /deliverquota/) {<br />
                print QMAILCFG "| /usr/bin/procmail -m -o .procmailrc\n";<br />
        } else {<br />
                print QMAILCFG "$oldline\n";<br />
        }<br />
}<br />
close(QMAILCFG);<br />
#<br />
# If the procmail file does not already exist, write out a totally base<br />
# config file. If you want to move tagged spam to a different folder,<br />
# you will need to update this. If it already exists, leave it alone.<br />
if (! -f "$userdir/$procmailcfg") {<br />
        open(PROCMAILCFG, ">$userdir/$procmailcfg");<br />
        print PROCMAILCFG "MAILDIR=$userdir/$maildir\n";<br />
        print PROCMAILCFG 'DEFAULT=${MAILDIR}/' . "\n";<br />
        close(PROCMAILCFG);<br />
}<br />
#<br />
# Get the right ownership of these files<br />
system("chown popuser:popuser $userdir/$qmailcfg $userdir/$qmailcfg.old $userdir/$procmailcfg");<br />
</code></p>
<p><i>2009/01/08 Update: The previous version of this script blew away whatever was in the file, which broke Plesk&#8217;s spam filtering and mail redirection features. I&#8217;ve changed the script above to a new version which directly replaces the local delivery agent with procmail, but leaves the rest of the .qmail file alone. This should be better.</i></p>
<p>Note that I am not accounting for people who want their end users to be able to update their .procmailrc files &#8212; this article assumes that the root user will be the one making updates. In my case, this works fine; however, at some point, I will probably investigate setting up Plesk&#8217;s hacked-up version of Ingo to update the .procmailrc files for individual users. That way, users could define filters via IMP Webmail, and have them automatically applied on the server side.</p>
<p><b>Update:</b> I figured out how to make this work with Ingo. Check out my next post <a href="http://www.natecarlson.com/2009/01/07/using-procmail-with-plesk-rules-via-ingo/">here</a>.</p>
<p>If you have any questions or comments, or find this useful, please leave me a comment below!</p>


<p>Related posts:<ol><li><a href='http://www.natecarlson.com/2009/01/07/using-procmail-with-plesk-rules-via-ingo/' rel='bookmark' title='Permanent Link: Using Procmail with Plesk: rules via Ingo'>Using Procmail with Plesk: rules via Ingo</a></li>
<li><a href='http://www.natecarlson.com/2005/09/21/per-user-spamassassin-preferences-in-ldap-with-mimedefang/' rel='bookmark' title='Permanent Link: per-user spamassassin preferences in ldap with mimedefang'>per-user spamassassin preferences in ldap with mimedefang</a></li>
<li><a href='http://www.natecarlson.com/2008/05/18/if-you-manage-routers-and-dont-have-rancid-get-it/' rel='bookmark' title='Permanent Link: if you manage routers and don&#8217;t have rancid, get it'>if you manage routers and don&#8217;t have rancid, get it</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.natecarlson.com/2009/01/06/using-procmail-with-plesk/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>if you manage routers and don&#8217;t have rancid, get it</title>
		<link>http://www.natecarlson.com/2008/05/18/if-you-manage-routers-and-dont-have-rancid-get-it/</link>
		<comments>http://www.natecarlson.com/2008/05/18/if-you-manage-routers-and-dont-have-rancid-get-it/#comments</comments>
		<pubDate>Mon, 19 May 2008 05:28:18 +0000</pubDate>
		<dc:creator>nc</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[networking]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://www.natecarlson.com/?p=88</guid>
		<description><![CDATA[RANCID, the &#8220;Really Awesome New Cisco confIg Differ&#8221; (nice backronym, eh?) is a program that periodically goes out and fetches the config files from your routers / switches / many other devices that it supports. If you manage any of these type of devices, and do not currently use RANCID, well, all I can say [...]


Related posts:<ol><li><a href='http://www.natecarlson.com/2009/11/02/sun-adds-block-level-deduplication-to-zfs/' rel='bookmark' title='Permanent Link: Sun adds block-level deduplication to zfs'>Sun adds block-level deduplication to zfs</a></li>
<li><a href='http://www.natecarlson.com/2009/01/06/using-procmail-with-plesk/' rel='bookmark' title='Permanent Link: Using Procmail with Plesk'>Using Procmail with Plesk</a></li>
<li><a href='http://www.natecarlson.com/2005/09/24/annoying-file-sharing-stuff-with-windows-xp-professional/' rel='bookmark' title='Permanent Link: annoying file sharing stuff with windows xp professional'>annoying file sharing stuff with windows xp professional</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://www.shrubbery.net/rancid/">RANCID</a>, the &#8220;Really Awesome New Cisco confIg Differ&#8221; (nice backronym, eh?) is a program that periodically goes out and fetches the config files from your routers / switches / many other devices that it supports. If you manage any of these type of devices, and do not currently use RANCID, well, all I can say is.. do it!</p>
<p>Why am I bringing this up now?  We had a switch failure at work lately, and somehow while replacing the failed component, the switch managed to wipe it&#8217;s configuration (how? no idea.)  Without RANCID, we would have been trying to figure out at least 4-5 months of configuration from the last time that the file was copied off the switch. We do have a RANCID server, which was unfortunately behind the switch that failed.. but fortunately, the server was being backed up by our <a href="http://backuppc.sourceforge.net">BackupPC</a> server, so we were able to hop on the web interface and grab a day-old config file. Even if we hadn&#8217;t had the BackupPC server, however, it would have only been a 15-minute job to recable the RANCID server onto a different switch and grab the config file from there &#8212; much better than the multi-hour job to rebuild the config of the failed switch. However, this does tell me that it&#8217;s actually not a bad idea to set up a job to regularly sync your switch config files from your RANCID server to an off-site machine.</p>
<p>In short: RANCID rocks! Use it!</p>


<p>Related posts:<ol><li><a href='http://www.natecarlson.com/2009/11/02/sun-adds-block-level-deduplication-to-zfs/' rel='bookmark' title='Permanent Link: Sun adds block-level deduplication to zfs'>Sun adds block-level deduplication to zfs</a></li>
<li><a href='http://www.natecarlson.com/2009/01/06/using-procmail-with-plesk/' rel='bookmark' title='Permanent Link: Using Procmail with Plesk'>Using Procmail with Plesk</a></li>
<li><a href='http://www.natecarlson.com/2005/09/24/annoying-file-sharing-stuff-with-windows-xp-professional/' rel='bookmark' title='Permanent Link: annoying file sharing stuff with windows xp professional'>annoying file sharing stuff with windows xp professional</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.natecarlson.com/2008/05/18/if-you-manage-routers-and-dont-have-rancid-get-it/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How to compile Nvidia kernel modules on 2.6.20+ with paravirt_ops enabled</title>
		<link>http://www.natecarlson.com/2007/05/02/how-to-compile-nvidia-kernel-modules-on-2620-with-paravirt_ops-enabled/</link>
		<comments>http://www.natecarlson.com/2007/05/02/how-to-compile-nvidia-kernel-modules-on-2620-with-paravirt_ops-enabled/#comments</comments>
		<pubDate>Wed, 02 May 2007 15:47:49 +0000</pubDate>
		<dc:creator>nc</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open-source]]></category>

		<guid isPermaLink="false">http://www.natecarlson.com/2007/05/02/how-to-compile-nvidia-kernel-modules-on-2620-with-paravirt_ops-enabled/</guid>
		<description><![CDATA[
If you try to compile the nvidia kernel module on 2.6.20 or higher kernels that have paravirt_ops enabled (like the Debian kernels), you will run into a problem &#8211; it&#8217;ll complain that a non-GPL compatible license is using the GPL-only code paravirt_ops. I finally found a workaround (other than building the kernel without paravirt ops) [...]


Related posts:<ol><li><a href='http://www.natecarlson.com/2009/04/16/debian-lenny-on-nehalem-based-systems/' rel='bookmark' title='Permanent Link: Debian Lenny on Nehalem-based systems'>Debian Lenny on Nehalem-based systems</a></li>
<li><a href='http://www.natecarlson.com/2005/09/13/debian-on-an-inspiron-6000/' rel='bookmark' title='Permanent Link: debian on an inspiron 6000'>debian on an inspiron 6000</a></li>
<li><a href='http://www.natecarlson.com/2009/12/08/drbd-accepted-to-mainline-kernel-for-2-6-33/' rel='bookmark' title='Permanent Link: DRBD accepted to mainline kernel for 2.6.33!'>DRBD accepted to mainline kernel for 2.6.33!</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a class="post_image_link" href="http://www.natecarlson.com/2007/05/02/how-to-compile-nvidia-kernel-modules-on-2620-with-paravirt_ops-enabled/" title="Permanent link to How to compile Nvidia kernel modules on 2.6.20+ with paravirt_ops enabled"><img class="post_image alignleft" src="http://www.natecarlson.com/images/logos/logo-nvidia.jpg" width="270" height="200" alt="Nvidia Logo" /></a>
</p><p>If you try to compile the nvidia kernel module on 2.6.20 or higher kernels that have paravirt_ops enabled (like the Debian kernels), you will run into a problem &#8211; it&#8217;ll complain that a non-GPL compatible license is using the GPL-only code paravirt_ops. I finally found a workaround (other than building the kernel without paravirt ops) &#8211; thanks to <a href="http://www.nvnews.net/vbulletin/showthread.php?t=87541">this page</a>, you can just modify your kbuild source to get things to work. Here&#8217;s a quote from that site:</p>
<blockquote><p>
Delete the following two lines (1197-1198) in file modpost.c:</p>
<p>if (!mod->gpl_compatible)<br />
   check_for_gpl_usage(exp->export, basename, exp->name);
</p></blockquote>
<p>I rebuilt the 2.6.21 linux-kbuild package for Debian with the above changes, and lo and behold, it works! Thanks!</p>


<p>Related posts:<ol><li><a href='http://www.natecarlson.com/2009/04/16/debian-lenny-on-nehalem-based-systems/' rel='bookmark' title='Permanent Link: Debian Lenny on Nehalem-based systems'>Debian Lenny on Nehalem-based systems</a></li>
<li><a href='http://www.natecarlson.com/2005/09/13/debian-on-an-inspiron-6000/' rel='bookmark' title='Permanent Link: debian on an inspiron 6000'>debian on an inspiron 6000</a></li>
<li><a href='http://www.natecarlson.com/2009/12/08/drbd-accepted-to-mainline-kernel-for-2-6-33/' rel='bookmark' title='Permanent Link: DRBD accepted to mainline kernel for 2.6.33!'>DRBD accepted to mainline kernel for 2.6.33!</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.natecarlson.com/2007/05/02/how-to-compile-nvidia-kernel-modules-on-2620-with-paravirt_ops-enabled/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>finally, a &#8220;control panel&#8221; that i kind of like!</title>
		<link>http://www.natecarlson.com/2006/09/06/finally-a-control-panel-that-i-kind-of-like/</link>
		<comments>http://www.natecarlson.com/2006/09/06/finally-a-control-panel-that-i-kind-of-like/#comments</comments>
		<pubDate>Wed, 06 Sep 2006 16:14:09 +0000</pubDate>
		<dc:creator>nc</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Open-source]]></category>

		<guid isPermaLink="false">http://www.natecarlson.com/2006/09/06/finally-a-control-panel-that-i-kind-of-like/</guid>
		<description><![CDATA[I&#8217;ve seen a wide gamut of those &#8220;control panel&#8221; things for hosting providers, and most of the ones I&#8217;ve looked at, I haven&#8217;t liked. They usually cost tons of money, use software I hate (ie, qmail), and do not integrate well with my preferred distribution (Debian). I ran across one today that seems to work [...]


Related posts:<ol><li><a href='http://www.natecarlson.com/2009/04/16/debian-lenny-on-nehalem-based-systems/' rel='bookmark' title='Permanent Link: Debian Lenny on Nehalem-based systems'>Debian Lenny on Nehalem-based systems</a></li>
<li><a href='http://www.natecarlson.com/2008/03/14/mosso-the-hosting-cloud/' rel='bookmark' title='Permanent Link: mosso &#8211; &#8220;the hosting cloud&#8221;?'>mosso &#8211; &#8220;the hosting cloud&#8221;?</a></li>
<li><a href='http://www.natecarlson.com/2006/01/12/full-suspendresume-finally-working-on-my-inspiron-6000/' rel='bookmark' title='Permanent Link: full suspend/resume *finally* working on my inspiron 6000'>full suspend/resume *finally* working on my inspiron 6000</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>I&#8217;ve seen a wide gamut of those &#8220;control panel&#8221; things for hosting providers, and most of the ones I&#8217;ve looked at, I haven&#8217;t liked. They usually cost tons of money, use software I hate (ie, qmail), and do not integrate well with my preferred distribution (Debian). I ran across one today that seems to work pretty darn well &#8212; <a href="http://www.syscp.de/">SysCP</a>.</p>
<p>Advantages:</p>
<ul>
<li>Designed for Debian</li>
<li>Open-source</li>
<li>Uses &#8220;good&#8221; software (Apache, Postfix, Courier&#8217;s pop3 daemon, etc)</li>
<li>Stores users in MySQL, so they are entirely virtualized</li>
<li>Fairly easy-to-use web interface</li>
</ul>
<p>Things I don&#8217;t like about it (right now):</p>
<ul>
<li>Only supports woody/sarge</li>
<li>Only supports Apache version 1, and PHP version 4 (probably easily worked around)</li>
</ul>
<p>So far, so good.. I will probably move my virtual hosting over to this platform eventually, with redundant MySQL servers and mail servers and such. Because it uses postfix and virtual MySQL mailboxes, it should also tie in very well with Maia Mailguard.</p>


<p>Related posts:<ol><li><a href='http://www.natecarlson.com/2009/04/16/debian-lenny-on-nehalem-based-systems/' rel='bookmark' title='Permanent Link: Debian Lenny on Nehalem-based systems'>Debian Lenny on Nehalem-based systems</a></li>
<li><a href='http://www.natecarlson.com/2008/03/14/mosso-the-hosting-cloud/' rel='bookmark' title='Permanent Link: mosso &#8211; &#8220;the hosting cloud&#8221;?'>mosso &#8211; &#8220;the hosting cloud&#8221;?</a></li>
<li><a href='http://www.natecarlson.com/2006/01/12/full-suspendresume-finally-working-on-my-inspiron-6000/' rel='bookmark' title='Permanent Link: full suspend/resume *finally* working on my inspiron 6000'>full suspend/resume *finally* working on my inspiron 6000</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.natecarlson.com/2006/09/06/finally-a-control-panel-that-i-kind-of-like/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>hp&#8217;s printer support under linux is getting better</title>
		<link>http://www.natecarlson.com/2006/05/03/hps-printer-support-under-linux-is-getting-better/</link>
		<comments>http://www.natecarlson.com/2006/05/03/hps-printer-support-under-linux-is-getting-better/#comments</comments>
		<pubDate>Wed, 03 May 2006 15:07:50 +0000</pubDate>
		<dc:creator>nc</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open-source]]></category>

		<guid isPermaLink="false">http://www.natecarlson.com/2006/05/03/hps-printer-support-under-linux-is-getting-better/</guid>
		<description><![CDATA[Our printer (Epson Stylus Photo R200) died on us Monday night. I talked things over with Tiff, and we decided to go with an all-in-one printer, so she could do copying and such, too (she often could use that for work). One of my requirements was also to get a network-connected printer, so we don&#8217;t [...]


Related posts:<ol><li><a href='http://www.natecarlson.com/2005/09/21/tethering-a-sprint-pcs-sanyo-4900-via-usb-with-linux/' rel='bookmark' title='Permanent Link: tethering a sprint pcs sanyo 4900 via usb with linux'>tethering a sprint pcs sanyo 4900 via usb with linux</a></li>
<li><a href='http://www.natecarlson.com/2001/10/01/wireless-sniffing-under-linux/' rel='bookmark' title='Permanent Link: wireless sniffing under linux'>wireless sniffing under linux</a></li>
<li><a href='http://www.natecarlson.com/2005/09/13/debian-on-an-inspiron-6000/' rel='bookmark' title='Permanent Link: debian on an inspiron 6000'>debian on an inspiron 6000</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>Our printer (Epson Stylus Photo R200) died on us Monday night. I talked things over with Tiff, and we decided to go with an all-in-one printer, so she could do copying and such, too (she often could use that for work). One of my requirements was also to get a network-connected printer, so we don&#8217;t have to have a computer on to be able to print from one of the other PC&#8217;s in the house. We ended up picking up an <a href="http://www.shopping.hp.com/webapp/shopping/product_detail.do?storeName=storefronts&#038;landing=printers&#038;category=all_in_ones&#038;orderflow=1&#038;product_code=Q5843A%23ABA&#038;catLevel=1">HP Photosmart 3210</a>, which seemed to be a decent mix of price and features. Price was $260 (at Best Buy), minus a $60 rebate, and a free $20 Best Buy gift card with the purchase. I also had $130 in Best Buy cards already, so it won&#8217;t be a very high out-of-pocket expense.</p>
<p>In any case, got the printer home, and plugged it into the network. It went through a self-initialization cycle, which took about 5 minutes. During this, I started the driver install under both Linux and Windows. For Windows, I just popped the CD in, and let it do it&#8217;s thing. For Linux, I used the <a href="http://hplip.sourceforge.net/">HPLIP</a> driver. Surprisingly (not my experience working with Epson printers under Linux), I had the HP printer fully working about 2 minutes after an &#8220;apt-get install hplip hpijs-ppds&#8221;. All I had to do was run &#8220;hp-makeuri <ipaddress>&#8220;, plug the URI into cups, and it worked! It also automatically installed a scanner driver, so I can fire up Kooka and scan over the network.. surprisingly simple.</p>
<p>On the Windows box, on the other hand, the install took about 20 minutes total &#8211; 10 minutes of installing, 2-3 minutes for a reboot, and about 5-10 more minutes of installing after the reboot. The software works fine, but still, that took forever!</p>
<p>I&#8217;m glad to see that HP&#8217;s doing some serious work on getting better support for their printers in Linux. I think I&#8217;ll be pretty happy with this printer &#8211; the output is pretty nice, and it is *fast*.</ipaddress></p>


<p>Related posts:<ol><li><a href='http://www.natecarlson.com/2005/09/21/tethering-a-sprint-pcs-sanyo-4900-via-usb-with-linux/' rel='bookmark' title='Permanent Link: tethering a sprint pcs sanyo 4900 via usb with linux'>tethering a sprint pcs sanyo 4900 via usb with linux</a></li>
<li><a href='http://www.natecarlson.com/2001/10/01/wireless-sniffing-under-linux/' rel='bookmark' title='Permanent Link: wireless sniffing under linux'>wireless sniffing under linux</a></li>
<li><a href='http://www.natecarlson.com/2005/09/13/debian-on-an-inspiron-6000/' rel='bookmark' title='Permanent Link: debian on an inspiron 6000'>debian on an inspiron 6000</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.natecarlson.com/2006/05/03/hps-printer-support-under-linux-is-getting-better/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>new debian i386 libc6 packages for xen</title>
		<link>http://www.natecarlson.com/2006/03/23/new-debian-i386-libc6-packages-for-xen/</link>
		<comments>http://www.natecarlson.com/2006/03/23/new-debian-i386-libc6-packages-for-xen/#comments</comments>
		<pubDate>Thu, 23 Mar 2006 16:17:18 +0000</pubDate>
		<dc:creator>nc</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://www.natecarlson.com/2006/03/23/new-debian-i386-libc6-packages-for-xen/</guid>
		<description><![CDATA[As those of you who use Xen on the i386 arch know, the libc6 stuff can be rather annoying. The Debian libc6 developers have finally released a test glibc that includes xen compatibility &#8212; no more moving /lib/tls out of the way and losing performance!
You can grab the packages from:
http://people.debian.org/~aurel32/xen/
Hopefully these will be mainline soon.


Related [...]


Related posts:<ol><li><a href='http://www.natecarlson.com/2005/09/13/debian-on-an-inspiron-6000/' rel='bookmark' title='Permanent Link: debian on an inspiron 6000'>debian on an inspiron 6000</a></li>
<li><a href='http://www.natecarlson.com/2009/04/16/debian-lenny-on-nehalem-based-systems/' rel='bookmark' title='Permanent Link: Debian Lenny on Nehalem-based systems'>Debian Lenny on Nehalem-based systems</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>As those of you who use Xen on the i386 arch know, the libc6 stuff can be rather annoying. The Debian libc6 developers have finally released a test glibc that includes xen compatibility &#8212; no more moving /lib/tls out of the way and losing performance!</p>
<p>You can grab the packages from:<br />
<a href="http://people.debian.org/~aurel32/xen/">http://people.debian.org/~aurel32/xen/</a></p>
<p>Hopefully these will be mainline soon.</p>


<p>Related posts:<ol><li><a href='http://www.natecarlson.com/2005/09/13/debian-on-an-inspiron-6000/' rel='bookmark' title='Permanent Link: debian on an inspiron 6000'>debian on an inspiron 6000</a></li>
<li><a href='http://www.natecarlson.com/2009/04/16/debian-lenny-on-nehalem-based-systems/' rel='bookmark' title='Permanent Link: Debian Lenny on Nehalem-based systems'>Debian Lenny on Nehalem-based systems</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.natecarlson.com/2006/03/23/new-debian-i386-libc6-packages-for-xen/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>full suspend/resume *finally* working on my inspiron 6000</title>
		<link>http://www.natecarlson.com/2006/01/12/full-suspendresume-finally-working-on-my-inspiron-6000/</link>
		<comments>http://www.natecarlson.com/2006/01/12/full-suspendresume-finally-working-on-my-inspiron-6000/#comments</comments>
		<pubDate>Thu, 12 Jan 2006 20:51:37 +0000</pubDate>
		<dc:creator>nc</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Dell]]></category>
		<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://www.natecarlson.com/2006/01/12/full-suspendresume-finally-working-on-my-inspiron-6000/</guid>
		<description><![CDATA[With the current version of the Linux kernel (2.6.15), some patches, and ATI&#8217;s fglrx driver version 8.20.8, software suspend/resume *finally* works, with full accelerated graphics support. Woohoo! Uptime on my laptop is now 6 days, and that involves many trips between home and work, and many suspend/resumes.
If you&#8217;d like a copy of the scripts I&#8217;m [...]


Related posts:<ol><li><a href='http://www.natecarlson.com/2005/09/13/debian-on-an-inspiron-6000/' rel='bookmark' title='Permanent Link: debian on an inspiron 6000'>debian on an inspiron 6000</a></li>
<li><a href='http://www.natecarlson.com/2007/04/07/new-resume-format/' rel='bookmark' title='Permanent Link: new resume format'>new resume format</a></li>
<li><a href='http://www.natecarlson.com/2006/09/06/finally-a-control-panel-that-i-kind-of-like/' rel='bookmark' title='Permanent Link: finally, a &#8220;control panel&#8221; that i kind of like!'>finally, a &#8220;control panel&#8221; that i kind of like!</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>With the current version of the Linux kernel (2.6.15), some <a href="http://rtr.ca/dell_i9300/kernel/kernel-2.6.15/">patches</a>, and ATI&#8217;s fglrx driver version 8.20.8, software suspend/resume *finally* works, with full accelerated graphics support. Woohoo! Uptime on my laptop is now 6 days, and that involves many trips between home and work, and many suspend/resumes.</p>
<p>If you&#8217;d like a copy of the scripts I&#8217;m using to get suspend working properly, let me know. I can either suspend with a FN-ESC, or by running a script (usually the method I use if I want to shut down the network card and restart it when I resume.)</p>


<p>Related posts:<ol><li><a href='http://www.natecarlson.com/2005/09/13/debian-on-an-inspiron-6000/' rel='bookmark' title='Permanent Link: debian on an inspiron 6000'>debian on an inspiron 6000</a></li>
<li><a href='http://www.natecarlson.com/2007/04/07/new-resume-format/' rel='bookmark' title='Permanent Link: new resume format'>new resume format</a></li>
<li><a href='http://www.natecarlson.com/2006/09/06/finally-a-control-panel-that-i-kind-of-like/' rel='bookmark' title='Permanent Link: finally, a &#8220;control panel&#8221; that i kind of like!'>finally, a &#8220;control panel&#8221; that i kind of like!</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.natecarlson.com/2006/01/12/full-suspendresume-finally-working-on-my-inspiron-6000/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>mt-daapd is teh cool</title>
		<link>http://www.natecarlson.com/2005/12/28/mt-daapd-is-teh-cool/</link>
		<comments>http://www.natecarlson.com/2005/12/28/mt-daapd-is-teh-cool/#comments</comments>
		<pubDate>Wed, 28 Dec 2005 17:28:31 +0000</pubDate>
		<dc:creator>nc</dc:creator>
				<category><![CDATA[Geek Stuff]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://www.natecarlson.com/?p=31</guid>
		<description><![CDATA[Tim (one of my co-workers) and I have been messing around with mt-daapd for the last couple days, and I gotta say, the software *rocks*!
For those of you not familiar with DAAP, it&#8217;s the protocol that Apple uses for iTunes&#8217;s music operations over the network. mt-daapd is an open-source product that runs on Linux, and [...]


Related posts:<ol><li><a href='http://www.natecarlson.com/2006/01/12/full-suspendresume-finally-working-on-my-inspiron-6000/' rel='bookmark' title='Permanent Link: full suspend/resume *finally* working on my inspiron 6000'>full suspend/resume *finally* working on my inspiron 6000</a></li>
<li><a href='http://www.natecarlson.com/2006/03/04/new-favorite-music-player-for-linux/' rel='bookmark' title='Permanent Link: new favorite music player for linux'>new favorite music player for linux</a></li>
<li><a href='http://www.natecarlson.com/2005/09/23/some-notes-about-monitoring-systems/' rel='bookmark' title='Permanent Link: some notes about monitoring systems'>some notes about monitoring systems</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p><a href="http://timf.anansi-web.com/serendipity/">Tim</a> (one of my co-workers) and I have been messing around with <a href="http://www.mt-daapd.org">mt-daapd</a> for the last couple days, and I gotta say, the software *rocks*!</p>
<p>For those of you not familiar with DAAP, it&#8217;s the protocol that Apple uses for iTunes&#8217;s music operations over the network. mt-daapd is an open-source product that runs on Linux, and lets you set up an iTunes server. The current stable version is pretty nifty, but if you&#8217;re willing to go bleeding edge, you get lots of sweet features, like the ability to set up smart playlists via the web interface, and the ability to transcode pretty much any audio format on the fly, so iTunes can play ogg vorbis files over the network. If you&#8217;d like to try out mt-daapd&#8217;s current CVS version, I&#8217;ve got Debian packages built for it &#8211; give me a holler.</p>
<p>It&#8217;s also fairly trivial to set up a SSH tunnel to a remote iTunes server, and share that iTunes share on your local network.. assuming that you have a Linux box with mDNSResponder set up, at least. It&#8217;s pretty simple &#8211; just set up your SSH connection:</p>
<p>ssh username@remote-linux-box -N -f -L *:3690:ip-of-itunes-or-mt-daapd-server:3689</p>
<p>Then, in your /etc/mdns/mDNSResponder.conf file:</p>
<p>&#8220;Nate&#8217;s Music at Home&#8221;                  _daap._tcp.     local.  3690</p>
<p>With this, I can easily stream music from my mt-daapd server at home to any box running iTunes on my subnet at work.</p>
<p>Like I said, teh cool!</p>


<p>Related posts:<ol><li><a href='http://www.natecarlson.com/2006/01/12/full-suspendresume-finally-working-on-my-inspiron-6000/' rel='bookmark' title='Permanent Link: full suspend/resume *finally* working on my inspiron 6000'>full suspend/resume *finally* working on my inspiron 6000</a></li>
<li><a href='http://www.natecarlson.com/2006/03/04/new-favorite-music-player-for-linux/' rel='bookmark' title='Permanent Link: new favorite music player for linux'>new favorite music player for linux</a></li>
<li><a href='http://www.natecarlson.com/2005/09/23/some-notes-about-monitoring-systems/' rel='bookmark' title='Permanent Link: some notes about monitoring systems'>some notes about monitoring systems</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.natecarlson.com/2005/12/28/mt-daapd-is-teh-cool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>using advanced routing to control traffic across your interfaces</title>
		<link>http://www.natecarlson.com/2005/11/21/using-advanced-routing-to-control-traffic-across-your-interfaces/</link>
		<comments>http://www.natecarlson.com/2005/11/21/using-advanced-routing-to-control-traffic-across-your-interfaces/#comments</comments>
		<pubDate>Mon, 21 Nov 2005 20:44:39 +0000</pubDate>
		<dc:creator>nc</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[Routing]]></category>

		<guid isPermaLink="false">http://www.natecarlson.com/?p=307</guid>
		<description><![CDATA[[This page originally lived at http://www.natecarlson.com/linux/advanced-routing-in-out.php. I am working on migrating all content over to WordPress, which is why this post exists. This document is mostly up-to-date; please leave a comment with any changes!]
One of my tasks at work has been to set up Nagios to monitor all of our critical services. In the process [...]


Related posts:<ol><li><a href='http://www.natecarlson.com/2005/11/21/advanced-routing-in-linux-to-force-traffic-to-interfaces/' rel='bookmark' title='Permanent Link: advanced routing in linux to force traffic to interfaces'>advanced routing in linux to force traffic to interfaces</a></li>
<li><a href='http://www.natecarlson.com/2001/10/01/wireless-sniffing-under-linux/' rel='bookmark' title='Permanent Link: wireless sniffing under linux'>wireless sniffing under linux</a></li>
<li><a href='http://www.natecarlson.com/2005/12/28/mt-daapd-is-teh-cool/' rel='bookmark' title='Permanent Link: mt-daapd is teh cool'>mt-daapd is teh cool</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p><em>[This page originally lived at <a href="http://www.natecarlson.com/linux/advanced-routing-in-out.php">http://www.natecarlson.com/linux/advanced-routing-in-out.php</a>. I am working on migrating all content over to WordPress, which is why this post exists. This document is mostly up-to-date; please leave a comment with any changes!]</em></p>
<p>One of my tasks at work has been to set up Nagios to monitor all of our critical services. In the process of setting this up, I&#8217;ve ran into a very interesting issue related to the way Linux does ARP with a &#8220;strange&#8221; routing table. This article details what the problem I ran into was, and what I did to resolve it with Advanced Routing.</p>
<p><font size="-2"><i>Last modified: 11/21/2005 <a href="mailto:natecars@natecarlson.com">Nate Carlson</a></i></font></p>
<p>As an aside, this article could also be very useful for people who have two separate ISP&#8217;s, with a separate IP range from each ISP. The gist of what I end up doing is setting up source routes to guarantee that traffic will go back out the proper interface, which can be necessary to get the expected behavior out of your network.</p>
<p>First of all, I need to explain a bit about our network layout. For each of our public-facing boxes, we have two network interfaces &#8211; &#8220;front&#8221; and &#8220;back&#8221;. Let&#8217;s call the front interface eth0, and the back interface eth1. Front is used to serve actual data to the world, and back is supposed to be used for management purposes. Assume that 10.100.0.0/16 is our front network, and 10.101.0.0/16 is our back network. Our routing table looks something like this:</p>
<pre>
Destination	Gateway		Genmask		Flags Metric Ref    Use Iface
10.0.0.0	10.101.0.254	255.255.255.0   UG    0      0        0 eth1
10.101.0.0	0.0.0.0		255.255.0.0     U     0      0        0 eth1
10.100.0.0	0.0.0.0		255.255.0.0     U     0      0        0 eth0
0.0.0.0		10.100.0.1	0.0.0.0         UG    0      0        0 eth0
</pre>
<p>
10.100.0.254 and 10.101.0.254 are the uplink &#8220;internal&#8221; routers; 10.100.0.1 is the load balancer that these boxes are behind. 10.0.0.0/24 is a management network at our main office, which is where the Nagios server is located that monitors this box. Let&#8217;s say that the local IP&#8217;s on this box are 10.100.0.100 and 10.101.0.100.</p>
<p>On the Nagios server, I am only monitoring 10.100.0.100 (front) network at this point. I should probably be monitoring both, but hadn&#8217;t set that up yet; this is rather fortunate, as if I was monitoring both interfaces, I wouldn&#8217;t see the strange behavior. What is this behavior, you ask? In times of low load (IE, no traffic going to/from the box besides the Nagios monitoring), the box would occasionally become unreachable. I could verify this by trying to ping it&#8217;s address on the 10.100.0.0 network &#8211; I wasn&#8217;t able to reach it. However, the second I ping the 10.101.0.0 interface, the 10.100.0.0 interface becomes reachable again. I worked with the network guy on and off for a few weeks to try to figure out what was causing this behavior, and finally we figured out that it&#8217;s the way that the Linux kernel sends ARP requests. What happens is that the ARP entry for 10.101.0.254 times out on the Linux box (because of the lack of traffic), and it tries to re-resolve it. However, since the address we&#8217;re trying to connect to from the Nagios is in the 10.100.0.0 network, the Linux box sends an arp entry out the eth1 interface that looks like:</p>
<p>&#8220;Who has 10.101.0.254? Tell 10.100.0.100&#8243;</p>
<p>The Cisco router we&#8217;re using denies this request, as the IP asking for the ARP entry is not part of the network it&#8217;s asking for. In the ARP debug logs on the Cisco, we got an error like:</p>
<p>&#8220;IP ARP req filtered src 10.100.0.100 <mac>, dst 10.101.0.254 <mac> wrong cable, interface <interface>&#8220;</p>
<p>So, what can we do to get around this problem? I can see three solutions, any of which would work:<br />
1) Add a static ARP entry for the router on the Linux box<br />
2) Set up advanced routing on the Linux box, so traffic will go back out the same interface it came in<br />
3) Figure out a way to get the router to answer the filtered ARP requests, and/or mangle the ARP request with iptables to &#8220;appear&#8221; to come from the right IP.</p>
<p>I really didn&#8217;t like either #1 or #3, so I went with #2. Here&#8217;s what the rules I added end up looking like:</p>
<p>## Table 100 &#8211; Traffic in/out of eth0, front<br />
$ ip route add table 100 10.0.0.0/24 via 10.100.0.254 dev eth0<br />
$ ip route add table 100 default via 10.100.0.1 dev eth0</p>
<p>## Table 101 &#8211; Traffic in/out of eth1, back<br />
$ ip route add table 101 10.0.0.0/24 via 10.101.0.254 dev eth1</p>
<p>## Main table; default routes. Default to using the &#8220;back&#8221; interface for comms to HQ.<br />
$ ip route add table main 10.0.0.0/24 via 10.101.0.254 dev eth1</p>
<p>$ ip route add table main 172.16.4.0/24 via 10.19.0.254 dev eth1</p>
<p>## Make our traffic follow these rules<br />
$ ip rule add from 10.100.0.0/16 lookup 100<br />
$ ip rule add from 10.101.0.0/16 lookup 101</p>
<p>With these rules in place, everything&#8217;s working great &#8211; traffic&#8217;s flowing in and out of the interfaces, as expected. Now, when the box tries to reply to traffic that hit it at 10.100.0.100, it will go back out the eth0 interface, and ARP for 10.100.0.254, which works just fine. All by the wonders of source routing.</p>
<p>If you have any comments on this document, please feel free to drop me an e-mail at: <a href="mailto:natecars@natecarlson.com">natecars@natecarlson.com</a></p>


<p>Related posts:<ol><li><a href='http://www.natecarlson.com/2005/11/21/advanced-routing-in-linux-to-force-traffic-to-interfaces/' rel='bookmark' title='Permanent Link: advanced routing in linux to force traffic to interfaces'>advanced routing in linux to force traffic to interfaces</a></li>
<li><a href='http://www.natecarlson.com/2001/10/01/wireless-sniffing-under-linux/' rel='bookmark' title='Permanent Link: wireless sniffing under linux'>wireless sniffing under linux</a></li>
<li><a href='http://www.natecarlson.com/2005/12/28/mt-daapd-is-teh-cool/' rel='bookmark' title='Permanent Link: mt-daapd is teh cool'>mt-daapd is teh cool</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.natecarlson.com/2005/11/21/using-advanced-routing-to-control-traffic-across-your-interfaces/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>advanced routing in linux to force traffic to interfaces</title>
		<link>http://www.natecarlson.com/2005/11/21/advanced-routing-in-linux-to-force-traffic-to-interfaces/</link>
		<comments>http://www.natecarlson.com/2005/11/21/advanced-routing-in-linux-to-force-traffic-to-interfaces/#comments</comments>
		<pubDate>Mon, 21 Nov 2005 19:01:04 +0000</pubDate>
		<dc:creator>nc</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open-source]]></category>

		<guid isPermaLink="false">http://www.natecarlson.com/2005/11/21/advanced-routing-in-linux-to-force-traffic-to-interfaces/</guid>
		<description><![CDATA[At work, I had an interesting problem where boxes would just seem to stop responding to ping packets for awhile on one interface, until you ping the other interface on the box. It turned out to be a problem with the way that Linux sends ARP requests when you&#8217;ve got routing set up across two [...]


Related posts:<ol><li><a href='http://www.natecarlson.com/2005/11/21/using-advanced-routing-to-control-traffic-across-your-interfaces/' rel='bookmark' title='Permanent Link: using advanced routing to control traffic across your interfaces'>using advanced routing to control traffic across your interfaces</a></li>
<li><a href='http://www.natecarlson.com/2005/09/21/tethering-a-sprint-pcs-sanyo-4900-via-usb-with-linux/' rel='bookmark' title='Permanent Link: tethering a sprint pcs sanyo 4900 via usb with linux'>tethering a sprint pcs sanyo 4900 via usb with linux</a></li>
<li><a href='http://www.natecarlson.com/2001/10/01/wireless-sniffing-under-linux/' rel='bookmark' title='Permanent Link: wireless sniffing under linux'>wireless sniffing under linux</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p>At work, I had an interesting problem where boxes would just seem to stop responding to ping packets for awhile on one interface, until you ping the other interface on the box. It turned out to be a problem with the way that Linux sends ARP requests when you&#8217;ve got routing set up across two interfaces. I decided to use Linux&#8217;s advanced routing features to fix this problem for our case. Basically, I just end up forcing traffic onto the interface for the IP address that the box was reached on &#8211; if you hit the box on it&#8217;s front-facing IP, the traffic will go back out the front side; if you hit the rear-facing IP, the traffic will go out the rear interface. Figuring this info could be useful for other people, I&#8217;ve written a quick article about how to set it up:</p>
<p><a href="http://www.natecarlson.com/linux/advanced-routing-in-out.php">http://www.natecarlson.com/linux/advanced-routing-in-out.php</a></p>
<p>This is also useful if you have two separate ISP&#8217;s with different address ranges, and want to make sure the traffic goes back out the proper interface. Hope you find it useful!</p>


<p>Related posts:<ol><li><a href='http://www.natecarlson.com/2005/11/21/using-advanced-routing-to-control-traffic-across-your-interfaces/' rel='bookmark' title='Permanent Link: using advanced routing to control traffic across your interfaces'>using advanced routing to control traffic across your interfaces</a></li>
<li><a href='http://www.natecarlson.com/2005/09/21/tethering-a-sprint-pcs-sanyo-4900-via-usb-with-linux/' rel='bookmark' title='Permanent Link: tethering a sprint pcs sanyo 4900 via usb with linux'>tethering a sprint pcs sanyo 4900 via usb with linux</a></li>
<li><a href='http://www.natecarlson.com/2001/10/01/wireless-sniffing-under-linux/' rel='bookmark' title='Permanent Link: wireless sniffing under linux'>wireless sniffing under linux</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.natecarlson.com/2005/11/21/advanced-routing-in-linux-to-force-traffic-to-interfaces/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>per-user spamassassin preferences in ldap with mimedefang</title>
		<link>http://www.natecarlson.com/2005/09/21/per-user-spamassassin-preferences-in-ldap-with-mimedefang/</link>
		<comments>http://www.natecarlson.com/2005/09/21/per-user-spamassassin-preferences-in-ldap-with-mimedefang/#comments</comments>
		<pubDate>Wed, 21 Sep 2005 20:46:49 +0000</pubDate>
		<dc:creator>nc</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[LDAP]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[Spam]]></category>

		<guid isPermaLink="false">http://www.natecarlson.com/?p=313</guid>
		<description><![CDATA[[This page originally lived at http://www.natecarlson.com/linux/mimedefang-ldap-prefs.php. I am working on migrating all content over to WordPress, which is why this post exists. This document is mostly up-to-date; please leave a comment with any changes!]
This document describes how to set up my patches for Mimedefang which allow you to store per-user preferences for SpamAssassin in LDAP. [...]


Related posts:<ol><li><a href='http://www.natecarlson.com/2009/01/07/using-procmail-with-plesk-rules-via-ingo/' rel='bookmark' title='Permanent Link: Using Procmail with Plesk: rules via Ingo'>Using Procmail with Plesk: rules via Ingo</a></li>
<li><a href='http://www.natecarlson.com/2009/01/06/using-procmail-with-plesk/' rel='bookmark' title='Permanent Link: Using Procmail with Plesk'>Using Procmail with Plesk</a></li>
<li><a href='http://www.natecarlson.com/2005/09/13/debian-on-an-inspiron-6000/' rel='bookmark' title='Permanent Link: debian on an inspiron 6000'>debian on an inspiron 6000</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p><em>[This page originally lived at <a href="http://www.natecarlson.com/linux/mimedefang-ldap-prefs.php">http://www.natecarlson.com/linux/mimedefang-ldap-prefs.php</a>. I am working on migrating all content over to WordPress, which is why this post exists. This document is mostly up-to-date; please leave a comment with any changes!]</em></p>
<p>This document describes how to set up my patches for <a href="http://www.mimedefang.com">Mimedefang</a> which allow you to store per-user preferences for SpamAssassin in LDAP. If you run into any problems, please drop me an e-mail at <a href="mailto:ipsec@natecarlson.com">ipsec@natecarlson.com</a></p>
<p>First of all, let&#8217;s go over some background info on Mimedefang, in case you&#8217;re not familiar with it. Mimedefang is a program that ties into Sendmail using the Milter API. It allows you to do basically whatever type of filtering you&#8217;d like in Perl. It has built-in ties to SpamAssasin, virus scanners, and many other useful programs. More information is available at the <a href="http://www.mimedefang.com">web site</a>.</p>
<p>Note that the authors of Mimedefang do offer a commercial program called Can-It Pro! that integrates per-user preferences, per-user bayesian filters, and many other nice features with a slick web front-end. This is available from Roaring Penguin, at <a href="http://www.roaringpenguin.com/">http://www.roaringpenguin.com</a>. If you&#8217;d like per-user everything, with a nice management interface, check it out! My previous employer is also a Can-It reseller; if you&#8217;d like more information, their site is at <a href="http://www.real-time.com/">http://www.real-time.com</a>.</p>
<p>One of the weaknesses in Mimedefang&#8217;s ties to SpamAssassin are that there isn&#8217;t any good way to implement per-user preferences and such. SpamAssassin 3.0 and above has support for storing the preferences in LDAP or MySQL, so I figured it was time to try to figure out a method of having per-user preferences. Since my users are already in LDAP, it seemed to make sense to store the preferences in LDAP, so that&#8217;s the approach I took. This code should be easily adaptable to store preferences in MySQL instead, though.</p>
<p>Note that this code does not seem to work if enable Mimedefang&#8217;s embedded perl interpretor.</p>
<p>Now, to the code!</p>
<p><script type="text/javascript"><!--
google_ad_client = "pub-2600332485776111";
/* 728x90 page bottom ad */
google_ad_slot = "7834445648";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<p>Contents:<br />
<a href="#patch">Download patch, rebuild Mimedefang</a><br />
<a href="#sa-config">Configure SpamAssassin for LDAP preferences</a><br />
<a href="#ldap-config">Configure Slapd for LDAP preferences</a><br />
<a href="#md-config">Configure your mimedefang-filter to use LDAP</a><br />
<a href="#test">Add SpamAssassin Attributes, and test!</a><br />
<a href="#todo">My TODO List</a></p>
<p><a name="patch"><strong>Download patch, rebuild Mimedefang</strong></a></p>
<p>My patch to enable LDAP in Mimedefang is available from:<br />
<a href="http://www.natecarlson.com/downloads/mimedefang/mimedefang-sa-prefs-ldap.patch">http://www.natecarlson.com/downloads/mimedefang/mimedefang-sa-prefs-ldap.patch</a></p>
<p>You&#8217;ll need to apply this to the root of the Mimedefang source, and rebuild and reinstall Mimedefang. The patch will also probably apply to /usr/bin/mimedefang.pl, but I haven&#8217;t tested that. If you&#8217;re a Debian Testing user, I have a deb package available at:</p>
<p>http://www.natecarlson.com/downloads/mimedefang/mimedefang_2.51-2.nc.1_i386.deb</p>
<p>This package is based on Debian&#8217;s Mimedefang 2.51-2 package.</p>
<p><a name="sa-config"><strong>Configure SpamAssassin for LDAP preferences</strong></a></p>
<p>You&#8217;ll need to configure SpamAssassin to use LDAP as your preference container. I personally put the configuration in /etc/mail/spamassassin/prefs-ldap.cf. Here&#8217;s what I use:</p>
<p><code>user_scores_dsn ldap://ldap.server/dc=example,dc=com?spamassassin?sub?uid=__USERNAME__<br />
user_scores_ldap_username     cn=binduser,dc=example,dc=com<br />
user_scores_ldap_password     bindpw</code></p>
<p>You&#8217;ll need to create a user to bind to the LDAP server as, along with a password. I haven&#8217;t managed to convince SpamAssassin to do an anonymous bind yet; if you do figure this out, please let me know. This example will search for an entry with the attribute &#8216;uid&#8217; equal to the username (passed from Mimedefang in the filter section below). Edit as needed.</p>
<p><a name="ldap-config"><strong>Configure Slapd for LDAP preferences</strong></a><br />
You&#8217;ll also need to set up the schema for your LDAP server to support the SpamAssassin tag. Based on the sample documentation with SpamAssassin, I edited &#8216;/etc/ldap/schema/inetorgperson.schema&#8217;, and added the following:</p>
<p><code>spamassassin<br />
see http://SpamAssassin.org/ .<br />
attributetype ( 2.16.840.1.113730.3.1.220<br />
	NAME 'spamassassin'<br />
	DESC 'SpamAssassin user preferences settings'<br />
	EQUALITY caseExactMatch<br />
	SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )</code></p>
<p>You&#8217;ll also need to add &#8216;$ spamassassin&#8217; to the end of the &#8216;MAY&#8217; entry at the end of the file. Once you&#8217;ve added these entries, restart slapd, and make sure you don&#8217;t get any errors.</p>
<p><a name="md-config"><strong>Configure your mimedefang-filter to use LDAP</strong></a></p>
<p>The next step is to configure your mimedefang-filter to use the new code.</p>
<p>My patch to the example config file is available from:<br />
<a href="http://www.natecarlson.com/downloads/mimedefang/mimedefang-ldap-filter.patch">http://www.natecarlson.com/downloads/mimedefang/mimedefang-ldap-filter.patch</a></p>
<p>This should be pretty self-explanitory. Search for XXXXX&#8217;s for things you need to fill in (LDAP server and base). My example code will search the ldap server for the first recipient, as &#8216;mail=mail@domain&#8217; and for just &#8216;mail=@domain&#8217;. You&#8217;ll likely want to replace the get_username_ldap subroutine altogether, depending on your needs. Be sure to test your config with &#8216;mimedefang.pl -test&#8217;, and then reload your config.</p>
<p><a name="test"><strong>Add SpamAssassin Attributes, and test!</strong></a></p>
<p>Once you&#8217;ve got all of the above set up, you should be set to go. First thing you&#8217;ll want to do is add some SpamAssassin preferences to the LDAP database. You want to add an attribute of &#8217;spamassassin&#8217; with a value of &#8217;sa_config_option config_value&#8217;. For example, to whitelist mail from &#8216;user@example.com&#8217; to your user named &#8216;nate&#8217; in LDAP, you&#8217;d add the attribute &#8217;spamassassin&#8217; with a value of &#8216;whitelist_from user@example.com&#8217; to the &#8216;nate&#8217; user. Then, send a mail through, and see if it worked!</p>
<p><a name="todo"><strong>My TODO List</strong></a></p>
<ul>
<li>Write a web-based interface to modify user&#8217;s SpamAssassin entries</li>
<li>Write better documentation, with more details</li>
<li>Add support for MySQL preferences</li>
<li>Document using Bayes in MySQL for individual users (it works, just have to config it)</li>
<li><em>Lots more, I&#8217;m sure!</em></li>
</ul>


<p>Related posts:<ol><li><a href='http://www.natecarlson.com/2009/01/07/using-procmail-with-plesk-rules-via-ingo/' rel='bookmark' title='Permanent Link: Using Procmail with Plesk: rules via Ingo'>Using Procmail with Plesk: rules via Ingo</a></li>
<li><a href='http://www.natecarlson.com/2009/01/06/using-procmail-with-plesk/' rel='bookmark' title='Permanent Link: Using Procmail with Plesk'>Using Procmail with Plesk</a></li>
<li><a href='http://www.natecarlson.com/2005/09/13/debian-on-an-inspiron-6000/' rel='bookmark' title='Permanent Link: debian on an inspiron 6000'>debian on an inspiron 6000</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.natecarlson.com/2005/09/21/per-user-spamassassin-preferences-in-ldap-with-mimedefang/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>tethering a sprint pcs sanyo 4900 via usb with linux</title>
		<link>http://www.natecarlson.com/2005/09/21/tethering-a-sprint-pcs-sanyo-4900-via-usb-with-linux/</link>
		<comments>http://www.natecarlson.com/2005/09/21/tethering-a-sprint-pcs-sanyo-4900-via-usb-with-linux/#comments</comments>
		<pubDate>Wed, 21 Sep 2005 20:23:08 +0000</pubDate>
		<dc:creator>nc</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open-source]]></category>

		<guid isPermaLink="false">http://www.natecarlson.com/?p=282</guid>
		<description><![CDATA[[This page originally lived at http://www.natecarlson.com/linux/sanyo-4900.php. I am working on migrating all content over to WordPress, which is why this post exists. The original post is ancient, but most of the comments still apply to modern phones and 3G plans.]
This document describes how to connect a Linux box to Sprint&#8217;s &#8220;Vision&#8221; (3G) network using a [...]


Related posts:<ol><li><a href='http://www.natecarlson.com/2001/09/13/infrared-between-a-sony-vaio-pcg-f390-and-a-nokia-8290-phone/' rel='bookmark' title='Permanent Link: infrared between a sony vaio pcg-f390 and a nokia 8290 phone'>infrared between a sony vaio pcg-f390 and a nokia 8290 phone</a></li>
<li><a href='http://www.natecarlson.com/2005/11/22/types-of-vpn-available-under-linux/' rel='bookmark' title='Permanent Link: Types of VPN available on Linux'>Types of VPN available on Linux</a></li>
<li><a href='http://www.natecarlson.com/2001/10/01/wireless-sniffing-under-linux/' rel='bookmark' title='Permanent Link: wireless sniffing under linux'>wireless sniffing under linux</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p><em>[This page originally lived at <a href="http://www.natecarlson.com/linux/sanyo-4900.php">http://www.natecarlson.com/linux/sanyo-4900.php</a>. I am working on migrating all content over to WordPress, which is why this post exists. The original post is ancient, but most of the comments still apply to modern phones and 3G plans.</em>]</p>
<p>This document describes how to connect a Linux box to Sprint&#8217;s &#8220;Vision&#8221; (3G) network using a Sanyo SCP-4900 and the PCS Connection Kit USB cable.</p>
<p><font size="-2"><i>$Id: sanyo-4900.php,v 1.17 2005/09/21 15:54:10 natecars Exp $</i></font></p>
<p><b>Background:</b><br />
**NOTE**: I have not had my Sprint phone in over a year; I am now using T-Mobile&#8217;s wireless data service when I need it. It&#8217;s slower, but I like T-Mobile&#8217;s phones better. Sprint does also now state that you are not supposed to use your Vision service with a laptop unless you pay laptop prices, or they will cut you off. YMMV. People who have Sprint phones do tell me that the below still seems to work.</p>
<p>In my ever-lasting search for high speed wireless internet access, I decided to try out Sprint PCS&#8217;s new Vision service. They recently dropped their prices. For $40/mo, I&#8217;m getting 300 anytime minutes, free long distance, and unlimited &#8216;high speed&#8217; (56-144k) data (this is the Vision service). The best part is that the data service is simple to get working with Linux &#8211; all you need is the proper USB drivers, and the knowledge to set up a PPP connection. The phone&#8217;s cost varies from free to $150 (depending on what deal you get). Sprint used to sell the data cable (with Windows software) for $69.99, but it&#8217;s no longer available from them. You can get it from Sanyo directly for $29.99, from <a href="https://store.sanyousa.com/osb/itemdetails.cfm/ID/74">https://store.sanyousa.com/osb/itemdetails.cfm/ID/74</a>. Radio Shack and various other stores also carry the cable. I&#8217;ve also used the setup instructions below with a Samsumg A500 phone and the proper USB cable, which worked fine.</p>
<p>NOTE: There are conflicting reports to what exactly Sprint means by &#8216;unlimited vision&#8217;. Apparently, they have told some people that the unlimited vision is for phone use only, and does not apply when you&#8217;re using the phone with the USB cable. The USB cable solution was actually recommended to me by an employee at a Sprint store to start with, and I checked with two other Sprint reps that it was acceptable use before purchasing. I can also confirm that I have not been charged for any Vision usage, beyond the standard $10/mo, even though I have been using it via the USB cable. But to protect yourself, be sure to check with your Sprint rep, and make sure that this use is acceptable before doing it. If you end up getting billed for the usage, don&#8217;t say I didn&#8217;t warn you!</p>
<p>Some other sites that have information on Sprint PCS equipment with Linux:<br />
<a href="http://www.tummy.com/articles/laptops/merlin-c201/">http://www.tummy.com/articles/laptops/merlin-c201/</a></p>
<p>
<b>First Step: Make sure your kernel has the right options</b><br />
To use the PCS phone, you&#8217;ll need to have USB support for the USB card in your computer, and support for USB ACM devices (CONFIG_USB_ACM). The kernel included with recent versions of both Debian and RedHat includes everything you need. Also make sure you have hotplugging enabled, so that the modules will be loaded automatically.</p>
<p><b>Second Step: Plug in the phone, and watch the drivers load</b><br />
All you need to do is plug in your phone, and all the drivers should be loaded automatically. Note that I have had a few cases where I needed to reset the phone to get the USB interface to show up. When I plug my phone in, I see the following:</p>
<p>Nov  5 19:35:29 knight kernel: hub.c: new USB device 00:07.2-1, assigned address 2<br />
Nov  5 19:35:29 knight kernel: usb.c: USB device 2 (vend/prod 0&#215;474/0&#215;701) is not claimed by any active driver.<br />
Nov  5 19:35:33 knight /etc/hotplug/usb.agent: Setup acm for USB product 474/701/0<br />
Nov  5 19:35:33 knight kernel: usb.c: registered new driver acm<br />
Nov  5 19:35:33 knight kernel: ttyACM0: USB ACM device<br />
Nov  5 19:35:33 knight kernel: acm.c: v0.21:USB Abstract Control Model driver for USB modems and ISDN adapters</p>
<p><b>Third Step: Create a dialup connection</b><br />
Now that you&#8217;ve got an ACM device, you just need to create a dialup connection. Note that the ACM device name may vary &#8211; just search through /dev for the proper device. On my (default) Debian install, it&#8217;s /dev/ttyACM0. On RedHat 7.3, it&#8217;s /dev/input/ttyACM0. Once you&#8217;ve found that, the number to dial to get a connection to the Vision network is &#8216;#777&#8242; (which is #PPP on the keypad). So, use whatever method you prefer to create a dialer that will dial #777. On my Debian box, I&#8217;m using the standard &#8216;pon&#8217; scripts. Here are the config files I use:</p>
<p>/etc/ppp/peers/sprint:</p>
<pre>
# You usually need this if there is no PAP authentication
noauth
# The chat script (be sure to edit that file, too!)
connect "/usr/sbin/chat -v -f /etc/chatscripts/sprint"
# Set up routing to go through this PPP link
defaultroute
# Use remote DNS
usepeerdns
# Default modem
/dev/ttyACM0
# Connect at high speed
230400
local
novj
</pre>
<p>
/etc/chatscripts/sprint:</p>
<pre>
TIMEOUT         5
ABORT           '\nBUSY\r'
ABORT           '\nERROR\r'
ABORT           '\nNO ANSWER\r'
ABORT           '\nNO CARRIER\r'
ABORT           '\nNO DIALTONE\r'
ABORT           '\nRINGING\r\n\r\nRINGING\r'
''              \rAT
TIMEOUT         12
OK              ATD#777
TIMEOUT         22
CONNECT         ""
</pre>
<p>
So, I run the command &#8216;pon sprint&#8217; (if you&#8217;re on RedHat, try running &#8216;pppd call sprint&#8217;), wait a few seconds, and then start surfing. If you have problems with the above script not working, please try the script below (Thanks to Matthew Brichacek for the info):</p>
<pre>

TIMEOUT         5
ABORT           '\nBUSY\r'
ABORT           '\nERROR\r'
ABORT           '\nNO ANSWER\r'
ABORT           '\nNO CARRIER\r'
ABORT           '\nNO DIALTONE\r'
ABORT           '\nRINGING\r\n\r\nRINGING\r'
''              \rAT
TIMEOUT         12
OK		"ATZ"
OK		"ATE0V1"
OK		"AT+IFC=2,2"
OK              ATD#777
TIMEOUT         22
CONNECT         ""
</pre>
<p>
Here in Minneapolis, I generally get ping times of 300-500ms, and download speeds of 7-12kbytes/sec. Not bad at all, considering it&#8217;s a connection I can take with me everywhere I go! Note that Sprint also gives you a (dynamic) public IP address, where the rest of the wireless phone connections I&#8217;ve tried have been NAT translated. This service works beautifully with FreeS/WAN as a VPN Client. Well, hope this has been helpful.. good luck getting your connection up!</p>
<p><font size="-2"><i>If you have any comments on this document, please feel free to drop me an e-mail at: <a href="mailto:natecars@natecarlson.com">natecars@natecarlson.com</a>. The contents of this page are freely distributable, as long as a link is provided to this page.</font></i></p>


<p>Related posts:<ol><li><a href='http://www.natecarlson.com/2001/09/13/infrared-between-a-sony-vaio-pcg-f390-and-a-nokia-8290-phone/' rel='bookmark' title='Permanent Link: infrared between a sony vaio pcg-f390 and a nokia 8290 phone'>infrared between a sony vaio pcg-f390 and a nokia 8290 phone</a></li>
<li><a href='http://www.natecarlson.com/2005/11/22/types-of-vpn-available-under-linux/' rel='bookmark' title='Permanent Link: Types of VPN available on Linux'>Types of VPN available on Linux</a></li>
<li><a href='http://www.natecarlson.com/2001/10/01/wireless-sniffing-under-linux/' rel='bookmark' title='Permanent Link: wireless sniffing under linux'>wireless sniffing under linux</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.natecarlson.com/2005/09/21/tethering-a-sprint-pcs-sanyo-4900-via-usb-with-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>debian on an inspiron 6000</title>
		<link>http://www.natecarlson.com/2005/09/13/debian-on-an-inspiron-6000/</link>
		<comments>http://www.natecarlson.com/2005/09/13/debian-on-an-inspiron-6000/#comments</comments>
		<pubDate>Tue, 13 Sep 2005 20:16:30 +0000</pubDate>
		<dc:creator>nc</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open-source]]></category>

		<guid isPermaLink="false">http://www.natecarlson.com/?p=277</guid>
		<description><![CDATA[[This page originally lived at http://www.natecarlson.com/linux/inspiron6000.php. I am working on migrating all content over to WordPress, which is why this post exists. Most of the comments on this post are waaay out of date.. if you still have an Inspiron 6000, any modern distribution should take care of you.]
This document contains some rough notes on [...]


Related posts:<ol><li><a href='http://www.natecarlson.com/2006/01/12/full-suspendresume-finally-working-on-my-inspiron-6000/' rel='bookmark' title='Permanent Link: full suspend/resume *finally* working on my inspiron 6000'>full suspend/resume *finally* working on my inspiron 6000</a></li>
<li><a href='http://www.natecarlson.com/2009/04/16/debian-lenny-on-nehalem-based-systems/' rel='bookmark' title='Permanent Link: Debian Lenny on Nehalem-based systems'>Debian Lenny on Nehalem-based systems</a></li>
<li><a href='http://www.natecarlson.com/2001/10/01/wireless-sniffing-under-linux/' rel='bookmark' title='Permanent Link: wireless sniffing under linux'>wireless sniffing under linux</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p><em>[This page originally lived at <a href="http://www.natecarlson.com/linux/inspiron6000.php">http://www.natecarlson.com/linux/inspiron6000.php</a>. I am working on migrating all content over to WordPress, which is why this post exists. Most of the comments on this post are waaay out of date.. if you still have an Inspiron 6000, any modern distribution should take care of you.</em>]</p>
<p>This document contains some rough notes on what I needed to do to get Linux running smoothly on my Inspiron 6000.</p>
<p><em>Last modified: 9/13/05 Nate Carlson</em></p>
<p>I recently purchased a Dell Inspiron 6000, and of course am running Linux on it. The notebook has some &#8220;bleeding edge&#8221; hardware in it, so there is still some tweaking required to make things work properly.</p>
<p>First of all, some notes on installation. With Debian&#8217;s sarge rc3 installer, I had to use the 2.4 kernel, as the 2.6 kernel would not detect the CD-ROM. (The CD-ROM on this laptop is an ATAPI drive on a PIIX SATA bridge, and the SATA driver included with the 2.6 kernel does not support ATAPI-over-SATA.) When installing with 2.4, disk access will be s-l-o-w, because the 2.4 kernel does not support DMA with the chipset. Besides having to use a 2.4 kernel, you can install as usual.</p>
<p>After installation, you&#8217;ll want to upgrade to a 2.6 kernel. At first, whenever I enabled the ATAPI feature in the SATA driver, any heavy disk i/o would hang the system. I ran into a web site on the Inspiron 9300 that that has a patch to fix this behavior. You can grab the patch from:</p>
<p><a href="http://www.rtr.ca/dell_i9300/">http://www.rtr.ca/dell_i9300/</a></p>
<p>The patch on this site also includes patches to properly support the touchpad, which is very nice!.</p>
<p>If you have an Intel ipw2200 card, you will also want to install the wireless drivers. The driver is availabile in the &#8216;ipw2200-source&#8217; package on Debian. Follow the directions to build and install; remember to grab the firmware image per the direction&#8217;s instructions.</p>
<p>My 6000 has an ATI Radeon X300 PCI-E video card. To get acceleration on this card, you will want the fglrx drivers from ATI. There are Debian packages for these drivers available from:</p>
<p><a href="http://xoomer.virgilio.it/flavio.stanchina/debian/fglrx-installer.html">http://xoomer.virgilio.it/flavio.stanchina/debian/fglrx-installer.html</a></p>
<p>Again, just follow the directions to install. I am using Xorg from Ubuntu, so I used the Xorg packages.</p>
<p>If you have the Bluetooth module, installation is trivial &#8211; just make sure you have the Bluetooth USB drivers in your kernel, and it should work. The Bluetooth card shows up as a standard USB dongle.</p>
<p>Well, that&#8217;s it for now &#8211; I will try to organize this document better and include some more information at a later date. Hope it helps!</p>
<p>If you have any comments on this document, please feel free to drop me an e-mail at: <a href="mailto:natecars@natecarlson.com">natecars@natecarlson.com</a></p>


<p>Related posts:<ol><li><a href='http://www.natecarlson.com/2006/01/12/full-suspendresume-finally-working-on-my-inspiron-6000/' rel='bookmark' title='Permanent Link: full suspend/resume *finally* working on my inspiron 6000'>full suspend/resume *finally* working on my inspiron 6000</a></li>
<li><a href='http://www.natecarlson.com/2009/04/16/debian-lenny-on-nehalem-based-systems/' rel='bookmark' title='Permanent Link: Debian Lenny on Nehalem-based systems'>Debian Lenny on Nehalem-based systems</a></li>
<li><a href='http://www.natecarlson.com/2001/10/01/wireless-sniffing-under-linux/' rel='bookmark' title='Permanent Link: wireless sniffing under linux'>wireless sniffing under linux</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.natecarlson.com/2005/09/13/debian-on-an-inspiron-6000/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>wireless sniffing under linux</title>
		<link>http://www.natecarlson.com/2001/10/01/wireless-sniffing-under-linux/</link>
		<comments>http://www.natecarlson.com/2001/10/01/wireless-sniffing-under-linux/#comments</comments>
		<pubDate>Mon, 01 Oct 2001 20:27:15 +0000</pubDate>
		<dc:creator>nc</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open-source]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Wireless]]></category>

		<guid isPermaLink="false">http://www.natecarlson.com/?p=286</guid>
		<description><![CDATA[[This page originally lived at http://www.natecarlson.com/linux/wireless-sniff.php. I am working on migrating all content over to WordPress, which is why this post exists. Most of the comments on this post are waaay out of date.. but the concepts are similar.]
This document describes how I got sniffing of 802.11b wireless networks working with my Linux box and [...]


Related posts:<ol><li><a href='http://www.natecarlson.com/2005/09/21/tethering-a-sprint-pcs-sanyo-4900-via-usb-with-linux/' rel='bookmark' title='Permanent Link: tethering a sprint pcs sanyo 4900 via usb with linux'>tethering a sprint pcs sanyo 4900 via usb with linux</a></li>
<li><a href='http://www.natecarlson.com/2005/09/13/debian-on-an-inspiron-6000/' rel='bookmark' title='Permanent Link: debian on an inspiron 6000'>debian on an inspiron 6000</a></li>
<li><a href='http://www.natecarlson.com/2005/09/21/per-user-spamassassin-preferences-in-ldap-with-mimedefang/' rel='bookmark' title='Permanent Link: per-user spamassassin preferences in ldap with mimedefang'>per-user spamassassin preferences in ldap with mimedefang</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p><em>[This page originally lived at <a href="http://www.natecarlson.com/linux/wireless-sniff.php">http://www.natecarlson.com/linux/wireless-sniff.php</a>. I am working on migrating all content over to WordPress, which is why this post exists. Most of the comments on this post are waaay out of date.. but the concepts are similar.</em>]</p>
<p>This document describes how I got sniffing of 802.11b wireless networks working with my Linux box and a Prism2 wireless card.<br />
<font size="-2"><i>Last modified: 10/01/01 <a href="mailto:natecars@natecarlson.com">Nate Carlson</a></i></font></p>
<p><b>Background:</b></p>
<p>We&#8217;ve been playing around with wireless networking at work, and one of the things I&#8217;ve been wanting to do is learn how to sniff networks for wireless packets, just to see what I can get. Hard part is all I have to work with for wireless cards are PrismII and Aironet cards, and the NetStumbler (for Windows) software only supports Orinoco. Of course, since I do the rest of my work in Linux anyways, I wanted to be able to sniff under Linux. So, I did some research, and it turns out that everything you need to do the sniffing is indeed available for Linux; it just hasn&#8217;t been well documented. So, here&#8217;s my attempt to document it! :)</p>
<p><b>First Step: Compile required PCMCIA packages</b></p>
<p>First step is to set up the PCMCIA stuff properly. You will need the following:</p>
<p><a href="http://pcmcia-cs.sourceforge.net">Standard PCMCIA Card Services package</a> (you probably already have this)<br />
<a href="http://www.linux-wlan.com/linux-wlan">Linux WLAN Package</a> (provides full support for PrismII cards)<br />
<a href="http://www.lava.net/~newsham/wlan/wlan-monitor.patch">Patch to WLAN drivers to enable monitoring of packets</a> (same patch you need for airsnort; this patch is integrated into linux-wlan-ng-0.1.10!)</p>
<p><a href="http://developer.axis.com/software/tools">Prismdump</a> (dumps the packets from the wireless network into a PCAP file<br />
<a href="http://www.tcpdump.org">CVS version of PCAP and TCPDUMP</a> (current versions do not support 802.11b packets; CVS does)<br />
<a href="http://www.ethereal.com">Newest version of Ethereal</a> (not strictly needed, but it lets you break down the packets for viewing</p>
<p>Download all the above packages, and compile and install according to the included directions (yeah, I might write a cheat sheet here eventually.) Make sure that you apply the patch to the linux-wlan package before compiling it (obvious). Note that depending what kind of PrismII card you have, you may need to modify the PCMCIA configuration to bind it to the PrismII card.</p>
<p><b>Second Step: Put the card into monitor mode, and sniff some packets</b></p>
<p>To put the card into monitor mode (note: this WILL make the network card unusable for normal traffic!), run the following command:</p>
<p>wlanctl-ng wlan0 lnxreq_wlansniff channel=N enable=true</p>
<p>Generally, you&#8217;ll want to sniff on Channel 6 (it&#8217;s the default, and most people don&#8217;t change the default), but you may want to play with other channels, too. To stop sniffing, run the same thing, except enable=false.</p>
<p>Once you have the card in sniffing mode, you can use prismdump to dump some packets out into a pcap-format file. This is really simple; just run:</p>
<p>prismdump > sniff.out</p>
<p>I generally also run airsnort&#8217;s capture with the &#8216;-c&#8217; flag while I am doing this; that way, I can see how many packets have gone through. This file will grow, quick. Once it starts growing, it means you have some data!</p>
<p><b>Final Step: Analyze the packets!</b></p>
<p>Well, now that you have some packets saved to disk, I suppose you want to view them, huh? If all you want is the ESSID, and you don&#8217;t care about anything else, you can just dump the packets with tcpdump:</p>
<p>tcpdump -X -x -r sniff.out</p>
<p>Here is a sniff of one of my boxes doing a probe for AP&#8217;s:</p>
<pre>11:38:09.496277 Probe Request (thisisessid) [ 11.0 Mbit]
0x0000   000b 7468 6973 6973 6573 7369 6401 0482        ..thisisessid..
0x0010   040b 16ff ffff ff                              .......
</pre>
<p>In the above, it&#8217;s easy to spot the essid: &#8216;thisisessid&#8217;. Not much else that&#8217;s very useful in this packet.</p>
<p>Here&#8217;s a Beacon packet from my AP at home:</p>
<pre>03:33:58.788488 Beacon (abcdefghijkl) [ 11.0 Mbit] ESS CH: 6 , PRIVACY
0x0000   9a81 d49c 7700 0000 5000 1500 000c 7465        ....w...P.....ab
0x0010   6368 6e69 6361 6c69 7479 0104 8284 0b16        cdefghijkl......
0x0020   0301 0605 0400 0200 00ff ffff ff               .............
</pre>
<p>As you can see, Privacy (WEP) is invoked in this case, and the essid is &#8216;abcdefghijkl&#8217;. Fairly simple.</p>
<p>For even more information, such as the mac address, etc, you can load these packets into Ethereal by clicking File->Open, and loading the file. Note that for encrypted packets, I had to turn off the &#8216;Enable MAC name resolution&#8217;, &#8216;Enable network name resolution&#8217;, and &#8216;Enable transport name resolution&#8217; options. Once you load up Ethereal, you can anaylze these packets just like any other packet &#8212; beyond what I want to document right now.  :)</p>
<p>But, that&#8217;s the basics, I may add more details later.</p>
<p>If you have any comments on this document, please feel free to drop me an e-mail at: <a href="mailto:natecars@natecarlson.com">natecars@natecarlson.com</a></p>
<p><b>UPDATE: Sniffing networks on an AiroNet card</b></p>
<p>If you have an AiroNet card, it&#8217;s possible to sniff packets if you have a kernel > 2.4.7 and the CVS versions of libpcap and tcpdump. To do this:</p>
<pre>
# echo 'Mode: rfmon' > /proc/driver/aironet/eth0/Config
# tcpdump -i eth0 -w <output_file>
</pre>
<p>..and then load the file into Ethereal as usual.</p>


<p>Related posts:<ol><li><a href='http://www.natecarlson.com/2005/09/21/tethering-a-sprint-pcs-sanyo-4900-via-usb-with-linux/' rel='bookmark' title='Permanent Link: tethering a sprint pcs sanyo 4900 via usb with linux'>tethering a sprint pcs sanyo 4900 via usb with linux</a></li>
<li><a href='http://www.natecarlson.com/2005/09/13/debian-on-an-inspiron-6000/' rel='bookmark' title='Permanent Link: debian on an inspiron 6000'>debian on an inspiron 6000</a></li>
<li><a href='http://www.natecarlson.com/2005/09/21/per-user-spamassassin-preferences-in-ldap-with-mimedefang/' rel='bookmark' title='Permanent Link: per-user spamassassin preferences in ldap with mimedefang'>per-user spamassassin preferences in ldap with mimedefang</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.natecarlson.com/2001/10/01/wireless-sniffing-under-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>infrared between a sony vaio pcg-f390 and a nokia 8290 phone</title>
		<link>http://www.natecarlson.com/2001/09/13/infrared-between-a-sony-vaio-pcg-f390-and-a-nokia-8290-phone/</link>
		<comments>http://www.natecarlson.com/2001/09/13/infrared-between-a-sony-vaio-pcg-f390-and-a-nokia-8290-phone/#comments</comments>
		<pubDate>Thu, 13 Sep 2001 20:30:04 +0000</pubDate>
		<dc:creator>nc</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Open-source]]></category>

		<guid isPermaLink="false">http://www.natecarlson.com/?p=290</guid>
		<description><![CDATA[[This page originally lived at http://www.natecarlson.com/linux/vaio-infrared.php. I am working on migrating all content over to WordPress, which is why this post exists. This is ancient, and probably no longer applies.]
This document describes how I got infrared working between my Sony VAIO PCG-F390 and my Nokia 8290 GSM Phone.
Last modified: 9/13/01 Nate Carlson
Background:
I&#8217;ve always wanted wireless [...]


Related posts:<ol><li><a href='http://www.natecarlson.com/2005/09/21/tethering-a-sprint-pcs-sanyo-4900-via-usb-with-linux/' rel='bookmark' title='Permanent Link: tethering a sprint pcs sanyo 4900 via usb with linux'>tethering a sprint pcs sanyo 4900 via usb with linux</a></li>
<li><a href='http://www.natecarlson.com/2008/02/24/bust-your-phone-need-a-temp-replacement-quick-att-customer-youre-in-luck/' rel='bookmark' title='Permanent Link: Bust your phone? Need a temp replacement quick? AT&#038;T customer? You&#8217;re in luck!'>Bust your phone? Need a temp replacement quick? AT&#038;T customer? You&#8217;re in luck!</a></li>
<li><a href='http://www.natecarlson.com/2001/10/01/wireless-sniffing-under-linux/' rel='bookmark' title='Permanent Link: wireless sniffing under linux'>wireless sniffing under linux</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p></p><p><em>[This page originally lived at <a href="http://www.natecarlson.com/linux/vaio-infrared.php">http://www.natecarlson.com/linux/vaio-infrared.php</a>. I am working on migrating all content over to WordPress, which is why this post exists. This is ancient, and probably no longer applies.]</em></p>
<p>This document describes how I got infrared working between my Sony VAIO PCG-F390 and my Nokia 8290 GSM Phone.<br />
<font size="-2"><i>Last modified: 9/13/01 <a href="mailto:natecars@natecarlson.com">Nate Carlson</a></i></font></p>
<p><b>Background:</b><br />
I&#8217;ve always wanted wireless internet, but didn&#8217;t want to pay the insane rates for Ricochet, etc. I finally ended up picking up a Nokia 8290 phone, which has an integrated modem that you can access over the infrared port. Set up under Windows was fairly simple (just download the ircomm updates, and away it goes), but I had some trouble getting it working under Linux. My two main problems were the broken serial port that the laptop sets up for the port, and then I had problems with latency that were caused by the kernel parameters I was using. I hope this document will make a similar set up easier for you. :)</p>
<p><b>First Step: Compile options into the kernel</b></p>
<p>I used the following options with kernel version 2.4.9-ac8:</p>
<p>CONFIG_IRDA=m<br />
CONFIG_IRLAN=m<br />
CONFIG_IRNET=m<br />
CONFIG_IRCOMM=m<br />
CONFIG_IRDA_ULTRA=y<br />
CONFIG_IRDA_OPTIONS=y<br />
CONFIG_IRDA_CACHE_LAST_LSAP=y</p>
<p>CONFIG_IRDA_FAST_RR=y<br />
CONFIG_IRDA_DEBUG=y<br />
CONFIG_IRTTY_SIR=m<br />
CONFIG_IRPORT_SIR=m<br />
CONFIG_NSC_FIR=m</p>
<p>Just make sure you have these options configured, and build as usual. Note that the CONFIG_IRDA_FAST_RR is very important; without it, you get extremely high latency on the link! I was getting ~5000ms pings over PPP once I brought the link up before I added that option; now I get around 1000.</p>
<p><b>Second Step: Set up the module config</b></p>
<p>pre-install nsc-ircc /bin/setserial /dev/ttyS2 irq 0 port 0 uart none<br />
alias irda0 nsc-ircc<br />
options nsc-ircc dongle_id=0&#215;09 io=0&#215;3e8 irq=10 dma=0</p>
<p>The setserial command disables the (broken) serial port for infrared that the notebook enables by default. If you don&#8217;t disable it, things aren&#8217;t going to work.</p>
<p><b>Third Step: Activate the Infrared Subsystem</b><br />
Before you can activate the infrared devices under Linux, you will need to create the character devices (ie, serial ports) that you will use to connect to you infrared device. You only need to do this once. To create it:</p>
<p># mknod /dev/ircomm0 c 161 0</p>
<p># mknod /dev/ircomm1 c 161 1</p>
<p>If you need more than two serial devices, just increment the minor number.</p>
<p>Once you have the character devices ready, you&#8217;re ready to bring up the link. To do this, run:</p>
<p># irattach irda0 -s 1</p>
<p>Once you have run this command, you should be able to snoop the traffic on the infrared port by using irdadump. You will always see traffic from your own computer, and if you have a device activated and in the line of sight, you should be able to see packets coming from that device.</p>
<p><b>Last Step: Use the port!</b></p>
<p>Once you see traffic from the other devices, you&#8217;re ready to go! Just point your favorite terminal program or ppp dialer to /dev/ircomm0, and you&#8217;re set. If you are using this to access your Nokia phone, you may also find applications such as &#8216;gnokii&#8217; and the gsmutils package useful; they allow you to back up your phonebook, and do other interesting operations like that.</p>
<p>If you have any comments on this document, please feel free to drop me an e-mail at: <a href="mailto:natecars@natecarlson.com">natecars@natecarlson.com</a></p>


<p>Related posts:<ol><li><a href='http://www.natecarlson.com/2005/09/21/tethering-a-sprint-pcs-sanyo-4900-via-usb-with-linux/' rel='bookmark' title='Permanent Link: tethering a sprint pcs sanyo 4900 via usb with linux'>tethering a sprint pcs sanyo 4900 via usb with linux</a></li>
<li><a href='http://www.natecarlson.com/2008/02/24/bust-your-phone-need-a-temp-replacement-quick-att-customer-youre-in-luck/' rel='bookmark' title='Permanent Link: Bust your phone? Need a temp replacement quick? AT&#038;T customer? You&#8217;re in luck!'>Bust your phone? Need a temp replacement quick? AT&#038;T customer? You&#8217;re in luck!</a></li>
<li><a href='http://www.natecarlson.com/2001/10/01/wireless-sniffing-under-linux/' rel='bookmark' title='Permanent Link: wireless sniffing under linux'>wireless sniffing under linux</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.natecarlson.com/2001/09/13/infrared-between-a-sony-vaio-pcg-f390-and-a-nokia-8290-phone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using memcached (feed is rejected)
Page Caching using memcached (request URI is rejected)
Database Caching 224/758 queries in 1.670 seconds using memcached

Served from: www.natecarlson.com @ 2010-07-30 11:55:05 -->