<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5890567984672491244</id><updated>2011-12-12T10:09:01.401-05:00</updated><category term='scripting'/><category term='gallery'/><category term='Collect'/><category term='RAID5'/><category term='bash_profile'/><category term='MythTV'/><category term='XFS ASLA'/><category term='mysql'/><category term='Wedding'/><category term='Photos'/><category term='Pictures'/><category term='drupal'/><category term='ASLA'/><category term='pvr-150'/><category term='Share'/><category term='SPDIF'/><category term='bash'/><category term='lirc'/><category term='snort'/><title type='text'>SethSec</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://sethsec.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5890567984672491244/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://sethsec.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Seth</name><uri>http://www.blogger.com/profile/05253599496757968918</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5890567984672491244.post-715944241687355625</id><published>2009-10-27T12:11:00.003-04:00</published><updated>2009-10-27T12:19:48.392-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pictures'/><category scheme='http://www.blogger.com/atom/ns#' term='Share'/><category scheme='http://www.blogger.com/atom/ns#' term='Wedding'/><category scheme='http://www.blogger.com/atom/ns#' term='Collect'/><category scheme='http://www.blogger.com/atom/ns#' term='Photos'/><title type='text'>Use dropbox to collect wedding photos (or any other group photos) with friends and family</title><content type='html'>After my wedding, I searched for hours trying to find the easiest way for all my friends and family to send me their digital photos. An FTP server would have worked, but would have been slightly more intimidating to the non-technical folk. I decided that a shared dropbox account was the perfect solution, and it worked out even better than I could have imagined. I received 1900 unique pictures in 2 weeks!!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;I created a new account, and sent the following email to everyone who attended:&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Thanks so much for making our special day an amazing one! Now that it is over we would love to get everyone's perspective. So, we would appreciate it if you could drop your photos in our dropbox (instructions below).&lt;br /&gt;&lt;br /&gt;This is an account that we will all share. This means that you can all check back in a week and download as many pictures as you like, and it also means that you can potentially delete all the pictures everyone else has uploaded… so be careful!&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;How to upload pictures:&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Browse to this website: &lt;a class="http" href="http://www.getdropbox.com/"&gt;http://www.getdropbox.com/&lt;/a&gt; &lt;/li&gt;&lt;li&gt;Log in using this username/password combo (login is in upper right corner):&lt;br /&gt;    Username: &lt;enter&gt;&lt;br /&gt;    Password: &lt;enter&gt; &lt;/li&gt;&lt;li&gt;Once you get logged in click on the word Photos &lt;/li&gt;&lt;li&gt;If you would like us to know which pictures are yours, create a folder with your name&lt;br /&gt;    ie: Seth's Pics &lt;/li&gt;&lt;li&gt;Click on the folder you just created &lt;/li&gt;&lt;li&gt;Click the UPLOAD BUTTON&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;strong&gt;There are three ways to upload pictures:&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;p&gt;Use the mass upload feature&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;This is by far the easiest. &lt;/li&gt;&lt;li&gt;Click the blue button that says "Choose Files" &lt;/li&gt;&lt;li&gt;Hold shift and can use the arrow keys to select up to 50 pictures at a time and select "open" &lt;/li&gt;&lt;li&gt;Then click submit to upload them to the site!&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;If that doesn’t work, you can try the “Basic Uploader”&lt;br /&gt;&lt;ul&gt;&lt;li&gt; This one is much slower because you have to select one file at a time like in most email clients. If the first option doesn’t work, I recommend going to the third. &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Install the software package on your computer &lt;/p&gt;&lt;ul&gt;&lt;li&gt;Hit cancel, and then goto the “Install” link on the top right of the page. &lt;/li&gt;&lt;li&gt;Install the software package using the same username and password from above &lt;/li&gt;&lt;li&gt;This will create a “sync” folder on your computer where you can just copy all of the files from the original folder to this sync folder. Within minutes they will all upload to the server automatically! &lt;/li&gt;&lt;li&gt;*** This means that every picture someone else uploads will also automatically sync to your computer, so be mindful that this can eat up all of your bandwidth and/or hard drive space. ***&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Thanks again! &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5890567984672491244-715944241687355625?l=sethsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sethsec.blogspot.com/feeds/715944241687355625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5890567984672491244&amp;postID=715944241687355625' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5890567984672491244/posts/default/715944241687355625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5890567984672491244/posts/default/715944241687355625'/><link rel='alternate' type='text/html' href='http://sethsec.blogspot.com/2009/10/use-dropbox-to-collect-wedding-photos.html' title='Use dropbox to collect wedding photos (or any other group photos) with friends and family'/><author><name>Seth</name><uri>http://www.blogger.com/profile/05253599496757968918</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5890567984672491244.post-4299778934265861307</id><published>2008-06-11T20:55:00.005-04:00</published><updated>2008-06-11T22:19:46.587-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='gallery'/><title type='text'>Mysql fix</title><content type='html'>I don't believe this post will be very useful to anyone else, but I want to record it anyway. I noticed a few weeks ago that my &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;drupal&lt;/span&gt; installation was complaining that the watchdog table had crashed. With my limited understanding of &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;mysql&lt;/span&gt;, I &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_2"&gt;didn't&lt;/span&gt; event know that a table *could* crash. Everything else on the site looked fine to the anonymous user so I just ignored it.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That brings me to today. I found this interesting script online that will dump all of my &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;mysql&lt;/span&gt; databases every hour to another &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_4"&gt;file system&lt;/span&gt;. I figured I would give a shot. I entered my root db password and the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;dst&lt;/span&gt; directory and let her rip. I got a few errors right away:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[root@www storage]# &lt;strong&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;mysql&lt;/span&gt;-backup.sh&lt;/strong&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;mysqldump&lt;/span&gt;: Error 1194: Table 'watchdog' is marked as crashed and should be repaired when dumping table `watchdog` at row: 283&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;mysqldump&lt;/span&gt;: Got error: 145: Table './drupal/watchdog' is marked as crashed and should be repaired when using LOCK TABLES&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;mysqldump&lt;/span&gt;: Got error: 145: Table './gallery2/g2_CacheMap' is marked as crashed and should be repaired when using LOCK TABLES&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:Courier New;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:+0;"&gt;Google quickly found the following post: &lt;a href="http://gallery.menalto.com/node/72721"&gt;http://gallery.menalto.com/node/72721&lt;/a&gt;, where a user kindly posted the solution to their own problem: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Stage 1: Checking your &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;tablesRun&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;myisamchk&lt;/span&gt; *.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;MYI&lt;/span&gt; or &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;myisamchk&lt;/span&gt; -e *.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;MYI&lt;/span&gt; if you have more time. Use the -s (silent) option to suppress unnecessary information.If the &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;mysqld&lt;/span&gt; server is stopped, you should use the --update-state option to tell &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;myisamchk&lt;/span&gt; to mark the table as “checked.”You have to repair only those tables for which &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;myisamchk&lt;/span&gt; announces an error. For such tables, proceed to Stage 2.If you get unexpected errors when checking (such as out of memory errors), or if &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;myisamchk&lt;/span&gt; crashes, go to Stage 3.&lt;br /&gt;Stage 2: Easy safe &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;repairFirst&lt;/span&gt;, try &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;myisamchk&lt;/span&gt; -r -q &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;tbl&lt;/span&gt;_name (-r -q means “quick recovery mode”). This attempts to repair the index file without touching the data file. If the data file contains everything that it should and the delete links point at the correct locations within the data file, this should work, and the table is fixed.source: &lt;/span&gt;&lt;a class="bb-url" href="http://dev.mysql.com/doc/refman/5.0/en/repair.html" rel="nofollow"&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;Website&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[root@www storage]# &lt;strong&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;myisamchk&lt;/span&gt; -r -q /var/lib/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;mysql&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;drupal&lt;/span&gt;/watchdog.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;MYI&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;- check record delete-chain&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;- recovering (with sort) &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;MyISAM&lt;/span&gt;-table '/var/lib/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;mysql&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_28"&gt;drupal&lt;/span&gt;/watchdog.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_29"&gt;MYI'Data&lt;/span&gt; records: 513&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;- Fixing index 1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Found block that points outside data file at 122592&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_30"&gt;MyISAM&lt;/span&gt;-table '/var/lib/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_31"&gt;mysql&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_32"&gt;drupal&lt;/span&gt;/watchdog.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_33"&gt;MYI&lt;/span&gt;' is not fixed because of errors&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Try fixing it by using the --safe-recover (-o), the --force (-f) option or by not using the --quick (-q) flag&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[root@www storage]# &lt;strong&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_34"&gt;myisamchk&lt;/span&gt; -r /var/lib/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_35"&gt;mysql&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_36"&gt;drupal&lt;/span&gt;/watchdog.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_37"&gt;MYI&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;- recovering (with sort) &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_38"&gt;MyISAM&lt;/span&gt;-table '/var/lib/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_39"&gt;mysql&lt;/span&gt;/&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_40"&gt;drupal&lt;/span&gt;/watchdog.&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_41"&gt;MYI&lt;/span&gt;'&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Data records: 513&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;- Fixing index 1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Found block that points outside data file at 122592&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;- Fixing index 2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As you can see, I had to get rid of the -q option to get it to work, but it did in fact work. Same &lt;span class="blsp-spelling-corrected" id="SPELLING_ERROR_42"&gt;command&lt;/span&gt; worked to fix g2_&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_43"&gt;CasheMap&lt;/span&gt;, but that one took quite a bit longer.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Looks like that did the trick.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5890567984672491244-4299778934265861307?l=sethsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sethsec.blogspot.com/feeds/4299778934265861307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5890567984672491244&amp;postID=4299778934265861307' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5890567984672491244/posts/default/4299778934265861307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5890567984672491244/posts/default/4299778934265861307'/><link rel='alternate' type='text/html' href='http://sethsec.blogspot.com/2008/06/mysql-fix.html' title='Mysql fix'/><author><name>Seth</name><uri>http://www.blogger.com/profile/05253599496757968918</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5890567984672491244.post-1186266980322536518</id><published>2008-06-06T13:14:00.005-04:00</published><updated>2008-06-11T21:10:47.080-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='bash_profile'/><category scheme='http://www.blogger.com/atom/ns#' term='snort'/><category scheme='http://www.blogger.com/atom/ns#' term='scripting'/><title type='text'>Some snort login kung-fu...</title><content type='html'>&lt;div align="left"&gt;I was recently playing around with my .bash_profile file looking for new ways to alert myself as well as my team to problems with production snorts. I ended up with two little tricks that I have found really useful and I figured I would share.&lt;br /&gt;&lt;br /&gt;For those that don't know, the .bash_profile file is an sh script that runs at user login. At a bare minimum it sets the users PATH, but it can be used for a whole lot more. It's located in the root of the users home directory. Ex: /home/snort/.bash_profile, or /root/.bash_profile&lt;br /&gt;&lt;br /&gt;Before I go any further I will tell you that both of these tricks are obviously reactive in nature. They only let you know there is a problem the next time you log into the device. A more proactive solution would involve setting thresholds and sending emails to admins, but 1) there are already plenty of scripts that do that, and 2) that is not a luxury I have on my sensors. I have inbound ssh, outbound 80 for updates and outbound 443 for logging.&lt;br /&gt;&lt;br /&gt;Nevertheless, this reactive approach is much cooler than nothing at all and I think it would still be helpful on any snort installation no matter what other active health monitoring is in place.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Display most recent snort signatures on login&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;strong&gt;&lt;/strong&gt;&lt;div align="left"&gt;&lt;br /&gt;The first function I added to .bash_profile is called checksnortsigs(). It sorts the files in /etc/snort/rules by date order, and grabs the date of the most recent .rules file. It's that simple. It then just prints that information when you log in and gives a little advice on what to do next:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;checksnortsigs()&lt;br /&gt;{&lt;br /&gt;if [ -f /etc/init.d/snortd ]; then&lt;br /&gt;LATESTRULE=`ls -ltr /etc/snort/rules/*.rules tail -1 awk '{print $6, $7}'`&lt;br /&gt;echo "-------------- Snort Installation Detected -----------------"&lt;br /&gt;echo "The most recent snort rules on this machine were updated on:"&lt;br /&gt;echo " ******* $LATESTRULE *******"&lt;br /&gt;echo "If the date above is more than 1 month old, run oinkmaster"&lt;br /&gt;echo "manually and verify it completes without error."&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;echo "------------------------------------------------------------"&lt;br /&gt;echo&lt;br /&gt;fi&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;checksnortsigs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Output (which is displayed as soon as the user logs in) looks like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;strong&gt;Last login: Thu May 29 16:27:36 2008 from xxxxxxxx&lt;br /&gt;-------------- Snort Installation Detected -----------------&lt;br /&gt;The most recent snort rules on this machine were updated on:&lt;br /&gt;******* May 30 *******&lt;br /&gt;If the date above is more than 1 month old, run oinkmaster&lt;br /&gt;manually and verify it completes without error.&lt;br /&gt;------------------------------------------------------------&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;strong&gt;&lt;span style="font-size:130%;"&gt;Display % dropped packets and Mbps stats on login&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div align="left"&gt;&lt;br /&gt;Shortly after that, and this came to me after playing around with sguil and seeing how nicely the snort.stats information is integrated into the analyst console, I decided that I also wanted to display recent % dropped packets and Mbps statistics each time someone logged in. There are a few more steps to get this one working, but they are all very easy:&lt;br /&gt;&lt;br /&gt;1) Enable the following line in snort.conf:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;preprocessor perfmonitor: time 300 file /var/log/snort/snort.stats pktcnt 10000&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2) Restart snort&lt;br /&gt;&lt;br /&gt;3) I created a very simple bash script that is basically one line of code along with a bit of "usage" code to make it easier for others to run. I called it get-snort-stats.sh. I created it for the bash_profile script, but it can be used as a standalone program at all. Here it is:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#!/bin/bash&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# A very simple utility that will display the % dropped packets as well as throughput statistics.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Snort records this information every 5 minutes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Author: Seth Art&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;# Created: May 20th, 2008&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;########################### &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#Usage&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;###########################&lt;br /&gt;if [ -z $1 ]; then &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;echo &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;echo "Usage: get-snort-stats [number of lines to display]..." &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;echo exit&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;case $1 in&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;'-h''--help')&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;echo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;echo "Usage: get-snort-stats [number of lines to display]..."&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;echo " -h, --help display this help and exit"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;echo&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;exit 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;;;esac&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;########################### &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#Main&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;###########################&lt;br /&gt;tail -$1 /var/log/snort/snort.stats awk -F , '{print "Dropped Packets = " $2, "\t", "Mbps = "$3}'&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4) This bit ties the get-snort-stats command in with the .bash_profile script. Add the following function to .bash_profile&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;getsnortstats()&lt;br /&gt;{&lt;br /&gt;if [ -f /etc/init.d/snortd ]; then&lt;br /&gt;echo "------------------------------------------------------------"&lt;br /&gt;echo" Snort % Pkts dropped and mbits/sec for the last 20 minutes "&lt;br /&gt;/usr/local/bin/get-snort-stats.sh 4&lt;br /&gt;echo "------------------------------------------------------------"&lt;br /&gt;fi&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;5) Add the call to the getsnortstats() function right below the checksnortsigs() fucntion call in bash_profile:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;checksnortsigs&lt;br /&gt;getsnortstats&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5) Now I'm positive there is a better way to do this, but to make sure the snort.stats file doesn't grow out of control I simply put a line that rm's snort.stats every night in the same script I ued to run oinkmaster, recreate sig-msg.map, and restart snort. Not the most elegant solution I know, but it works...&lt;br /&gt;&lt;br /&gt;When all is said and done, you should see the following information when you log in from now on:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;&lt;span style="font-family:courier new;"&gt;Last login: Thu May 29 16:27:36 2008 from xxxxxxxx &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;-------------- Snort Installation Detected ----------------- &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;The most recent snort rules on this machine were updated on: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;******* May 30 ******* &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;If the date above is more than 1 month old, run oinkmaster &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;manually and verify it completes without error. &lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="font-family:courier new;"&gt;------------------------------------------------------------&lt;br /&gt;------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Snort % Pkts dropped and mbits/sec for the last 20 minutes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Dropped Packets = 0.000 Mbps = 4.672&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Dropped Packets = 0.000 Mbps = 4.796&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Dropped Packets = 0.000 Mbps = 4.369&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;Dropped Packets = 0.000 Mbps = 5.071&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;&lt;span style="font-family:courier new;"&gt;&lt;strong&gt;------------------------------------------------------------&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;Enjoy :) &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5890567984672491244-1186266980322536518?l=sethsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sethsec.blogspot.com/feeds/1186266980322536518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5890567984672491244&amp;postID=1186266980322536518' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5890567984672491244/posts/default/1186266980322536518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5890567984672491244/posts/default/1186266980322536518'/><link rel='alternate' type='text/html' href='http://sethsec.blogspot.com/2008/06/some-snort-login-kung-fu.html' title='Some snort login kung-fu...'/><author><name>Seth</name><uri>http://www.blogger.com/profile/05253599496757968918</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5890567984672491244.post-4817572944541592789</id><published>2008-02-18T12:34:00.005-05:00</published><updated>2008-02-18T15:25:36.209-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MythTV'/><category scheme='http://www.blogger.com/atom/ns#' term='pvr-150'/><category scheme='http://www.blogger.com/atom/ns#' term='lirc'/><title type='text'>MythTV Upgrade - Part 2</title><content type='html'>&lt;strong&gt;Configuring lirc (Remote control daemon)&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Getting the remote control to work has been on my to-do list for as long as I've been using MythTV. Early on I decided to go with a wireless mouse/keyboard combo instead. I have been using the &lt;a href="http://ione-usa.com/index.php?page=shop.product_details&amp;amp;flypage=shop.flypage&amp;amp;product_id=46&amp;amp;category_id=403aa782a4283038673984497e941106&amp;amp;option=com_phpshop&amp;amp;Itemid=1"&gt;Ione Scorpius P-20&lt;/a&gt; for quite a while and it has served me well.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5168376986593672082" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" height="124" alt="" src="http://4.bp.blogspot.com/_CunbzMFsEf0/R7nDfG84O5I/AAAAAAAAABI/9xpUk4bSCII/s200/1508ab6e0ef5b76c8fa615387a97104d.jpg" width="176" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;Every 6 months or so I would try to get the remote working, and every time I would fail... until this weekend. I couldn’t have done it without the following two sites:&lt;br /&gt;&lt;br /&gt;1) &lt;a href="http://www.mythtv.org/wiki/index.php/MCE_Remote"&gt;http://www.mythtv.org/wiki/index.php/MCE_Remote&lt;/a&gt;&lt;br /&gt;2) &lt;a href="http://www.hauppauge.co.uk/board/showthread.php?t=8048"&gt;http://www.hauppauge.co.uk/board/showthread.php?t=8048&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_CunbzMFsEf0/R7nbKm84O6I/AAAAAAAAABQ/8yOyacEiuPw/s1600-h/Mce-hauppauge.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5168403022685420450" style="FLOAT: right; MARGIN: 0px 0px 10px 10px; CURSOR: hand" alt="" src="http://2.bp.blogspot.com/_CunbzMFsEf0/R7nbKm84O6I/AAAAAAAAABQ/8yOyacEiuPw/s200/Mce-hauppauge.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I have a Hauppauge PVR-150 Tuner card which came with the Remote and the IR receiver. I would say my biggest stumbling point along the way was that until this weekend I never knew exactly which remote I had. Apparently the PVR-150 has come with a whole bunch of different remotes over its lifetime.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As it turns out, I have a MCE USB2, Version 2, Hauppauge PVR-Kit remote. How I was supposed to know that without luckily finding that first link, I have no idea. A picture truly is worth a thousand words sometimes. The only identifying number on the back was "RC 6" ir.&lt;br /&gt;&lt;br /&gt;So now on to the configuration:&lt;br /&gt;&lt;br /&gt;MythDora4 comes with lircd version 0.8.2-CVS:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;[root@mythtv mythtv]# /usr/sbin/lircd -v&lt;br /&gt;lircd 0.8.2-CVS&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;After reading a bunch of caveats on the MythTV.org wiki link above, I decided to use CVS and go right to the latest version.&lt;br /&gt;&lt;br /&gt;I following the wiki instructions exactly:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;407 cd /usr/src&lt;br /&gt;408 cvs -d:pserver:anonymous@lirc.cvs.sourceforge.net:/cvsroot/lirc login&lt;br /&gt;409 cvs -z8 -d:pserver:anonymous@lirc.cvs.sourceforge.net:/cvsroot/lirc co lirc&lt;br /&gt;410 cd lirc&lt;br /&gt;411 ls&lt;br /&gt;412 ./autogen.sh&lt;br /&gt;413 ./setup.sh&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;Menu Option # (1) - Driver Configuration (enter)&lt;br /&gt;Menu Option # (8) - USB Devices (enter)&lt;br /&gt;Menu Option # (t) - Windows Media Center Remotes (new version, Philips et al.) (enter)&lt;br /&gt;Menu Option # (3) - Save your configuration and run configure (enter)&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;418 make &amp;amp;&amp;amp; make install&lt;br /&gt;419 modprobe lirc_mceusb2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This installed lircd in /usr/local/sbin/lircd (This will be important later). First I used mode2 to see if the IR receiver was working:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;[root@mythtv lirc]# mode2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;(I then pressed the up arrow on the remote)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;space 100000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;pulse 2750&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;space 750&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;pulse 500&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;space 400&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;pulse 500&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;space 350&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;snip&gt;- That output means it was catching the signals&lt;br /&gt;&lt;br /&gt;Unfortunately when I started lircd, ran irw, and then pressed the same buttons, nothing showed up:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;[root@mythtv lirc]# /usr/local/sbin/lircd /etc/lircd.conf&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;[root@mythtv lirc]# irw&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I tried a few pre-made lircd.conf files online, but the one from that second link is what finally worked. The lircd.conf file is what maps the IR code to a button on your remote. It looks something like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;Power 0x00007bf3 # no e2,e3&lt;br /&gt;MyTV 0x00007bb9 # starts at af&lt;br /&gt;MyMusic 0x00007bb8 # starts at af&lt;br /&gt;MyPictures 0x00007bb6 # starts at af&lt;br /&gt;MyVideos 0x00007bb5 # starts at af&lt;br /&gt;Record 0x00007be8 # no e2,e3&lt;br /&gt;Stop 0x00007be6 # no e2,e3&lt;br /&gt;Pause 0x00007be7 # no e2,e3&lt;br /&gt;&lt;snip&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This time, when I run irw i see the following output:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;[root@mythtv lirc]# lircd /etc/lircd.conf&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;[root@mythtv lirc]# irw&lt;br /&gt;000000037ff07be1 00 Up mceusb&lt;br /&gt;000000037ff07be0 00 Down mceusb&lt;br /&gt;000000037ff07bdf 00 Left mceusb&lt;br /&gt;000000037ff07bde 00 Right mceusb&lt;br /&gt;000000037ff07bfa 00 Five mceusb&lt;br /&gt;000000037ff07bf9 01 Six mceusb&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;That is farther then I have ever been before. Now the last part is the .lircrc file. This file maps the named button to the program and action (or keystroke) and is located in the users home directory. (ex: /home/mythtv/.lircrc)&lt;br /&gt;&lt;br /&gt;To review:&lt;br /&gt;&lt;br /&gt;Lircd.conf -&gt; Maps IR code to a button name on remote&lt;br /&gt;.lircrc -&gt; Maps the button on the remote to a corresponding keystroke (application dependent).&lt;br /&gt;&lt;br /&gt;An excerpt of the .lircrc file looks something like this:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;# Down = Scroll/Channel Down.&lt;br /&gt;begin&lt;br /&gt;prog = mythtv&lt;br /&gt;button = Down&lt;br /&gt;config = Down&lt;br /&gt;repeat = 2&lt;br /&gt;end&lt;br /&gt;&lt;snip&gt;&lt;/span&gt;&lt;br /&gt;This tells us that when (according to lircd.conf) the down button is pressed, if we are in mythtv, this should be equivalent to the down arrow.&lt;br /&gt;&lt;br /&gt;I then started lircd with my new lircd.conf and .lircrc files in place:&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;[root@mythtv lirc]# lircd /etc/lircd.conf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And with that my remote control worked with MythTV for the first time ever.&lt;br /&gt;&lt;br /&gt;The last thing I did was to change the /etc/rc.d/init.d/lircd file so that the service script starts my newly compiled lircd .0.8.3-CVS rather than the stock lircd.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:georgia;"&gt;Just to reiterate which version is which:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;[root@mythtv mythtv]# /usr/sbin/lircd -v&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;lircd 0.8.2-CVS&lt;br /&gt;[root@mythtv lirc]#/usr/local/sbin/lircd -v&lt;br /&gt;lircd 0.8.3-CVS&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;I added the text in red to the following file: /etc/rc.d/init.d/lircd&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;font-size:85%;"&gt;[ -x /usr/local/sbin/lircd ] exit 1&lt;br /&gt;[ -x /usr/local/sbin/lircmd ] exit 1&lt;br /&gt;&lt;br /&gt;start(){&lt;br /&gt;if [ -f /etc/lircd.conf ]; then&lt;br /&gt;echo -n $"Starting infrared remote control daemon: "&lt;br /&gt;daemon /usr/local/sbin/lircd $LIRCD_OPTIONS&lt;br /&gt;RETVAL=$?&lt;br /&gt;echo&lt;br /&gt;fi&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Troubleshooting:&lt;br /&gt;&lt;br /&gt;The licrd binary that came with MythDora4 wrote debug information to /var/log/messages. On the lircd I complied myself, it wrote message to /var/log/lircd. Tailing (with a -f) whichever log file lirc is writing to can be a really good way to troubleshoot.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5890567984672491244-4817572944541592789?l=sethsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sethsec.blogspot.com/feeds/4817572944541592789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5890567984672491244&amp;postID=4817572944541592789' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5890567984672491244/posts/default/4817572944541592789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5890567984672491244/posts/default/4817572944541592789'/><link rel='alternate' type='text/html' href='http://sethsec.blogspot.com/2008/02/mythtv-upgrade-part-2.html' title='MythTV Upgrade - Part 2'/><author><name>Seth</name><uri>http://www.blogger.com/profile/05253599496757968918</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_CunbzMFsEf0/R7nDfG84O5I/AAAAAAAAABI/9xpUk4bSCII/s72-c/1508ab6e0ef5b76c8fa615387a97104d.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5890567984672491244.post-4826570490916014195</id><published>2008-02-03T10:15:00.005-05:00</published><updated>2008-02-16T14:37:34.899-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RAID5'/><category scheme='http://www.blogger.com/atom/ns#' term='XFS ASLA'/><category scheme='http://www.blogger.com/atom/ns#' term='MythTV'/><category scheme='http://www.blogger.com/atom/ns#' term='ASLA'/><category scheme='http://www.blogger.com/atom/ns#' term='SPDIF'/><title type='text'>MythTV Upgrade - Part 1</title><content type='html'>&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I've been using &lt;a href="http://www.mythtv.org/"&gt;MythTV&lt;/a&gt; for about 3 years now, both on Fedora Core and also on Ubuntu on my laptop. My first MythTV system was built with A LOT of help from &lt;a href="http://wilsonet.com/mythtv/fcmyth.php"&gt;Jarod Wilson's infamous How-To&lt;/a&gt;. A few months ago I built two MythTV systems for my family and decided to use &lt;a href="http://g-ding.tv/?q=MythDora"&gt;MythDora4&lt;/a&gt;. It was so quick and easy that I decided to use MythDora for my own rebuild as well.&lt;br /&gt;&lt;br /&gt;I should start off by saying that I don’t use MythTV for the PVR functionality. I use it solely as a digital jukebox. I watch TV shows and movies using MythVideo, MythMusic is always a big hit at parties, and occasionally I use MythImage for slideshows.&lt;br /&gt;&lt;br /&gt;In the past I had all my media files on my WindowsXP box and used cifs to mount the windows shares on my MythTV box. I played music/videos directly through the share and performance was great even with a 10/100 Mbps NIC.&lt;br /&gt;&lt;br /&gt;For this iteration, I decided to also upgrade to a 1.5TB RAID5 array so that I could start burning all of my DVD's to .ISO files. This way I can browse through my entire DVD collection digitally.&lt;br /&gt;&lt;br /&gt;Lastly, I recently bought a Harmon/Kardon receiver and Polk Audio Center channel and Bookshelf speakers and slowly realized that I wasn’t going to be able to appreciate the new hardware unless I got digital audio working. (And yes… it is amazing)&lt;br /&gt;&lt;br /&gt;Below, are my notes, impressions, etc for the entire setup. I am going to put as much detail as possible so that if I ever have to do this again I have it all in one place.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Hardware&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;Dell 8300 Tower, Dell BIOS A07&lt;br /&gt;CPU: P4 2.8Ghz Hyperthreaded&lt;br /&gt;Memory: 1.25Gb PC3200&lt;br /&gt;Audio: M-Audio 5.1 Audio Card&lt;br /&gt;Video: Nvidia GeForce 5200 AGP (VGA/DVI/SVIDIO)&lt;br /&gt;Capture Card: Hauppauge PRV-150 Tuner Card&lt;br /&gt;Network: 10/100/1000 Intel NIC&lt;br /&gt;Storage:&lt;br /&gt;(1) 40 GB HDD (IDE) (for the OS)&lt;br /&gt;(2) 500GB IDE HDD's (for the RAID)&lt;br /&gt;(2) 500GB SATA HDD's (for the RAID)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Configuring the OS&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The install of the OS is really simple and extremely intuitive. The problems I ran into were caused by my additional disks, but were a result of a bug/lack of code/oversight/etc in the Dell BIOS. The motherboard has two IDE controllers, and two onboard SATA controllers. My buddies at work gave me the thumbs up on a RAID array that included two IDE and two SATA drives so that’s what I went ahead and did. I already had one 500 IDE, so I went and bought one more 500GB IDE and two 500GB SATA drives. This was good advice, and to fast forward, I did get it working, but Dell was not going to make it easy for me.&lt;br /&gt;&lt;br /&gt;After tons of research trying to prove that I wasn’t crazy, I confirmed that on this Dell 8300 BIOS, if you use either or both of the SATA controllers, the BIOS will only let you boot off a SATA drive. This means that if I installed the MBR (Master Boot Record) on one of my IDE drives, no matter what I did in the BIOS, I could not boot off of it. Most BIOS’s would obviously let you choose whichever disk you would like, but of course that would make too much sense.&lt;br /&gt;&lt;br /&gt;The most obvious option was to just install the MBR onto one of the SATA drives. However the whole point of using a separate system disk is that I want to make the RAID array and the OS completely independent of each other. If the disk that had the MBR on it died, I would be out of luck.&lt;br /&gt;&lt;br /&gt;A more elegant solution to this problem which was proposed by my coworker, is to instal the MBR on both of the SATA disks, so that if one died, the other one would just pick up, but like I mentioned earlier, I wanted to keep the RAID seperate.&lt;br /&gt;&lt;br /&gt;So what I finally decided to do was to install the MBR on a 128 MB USB disk. The end result is kind of a convoluted setup, but I think it’s a pretty cool solution. I like the cool factor that my machine won’t boot without that thumb drive in place, and of course this keeps my RAID array completely separate from the OS. Speaking of cool... I shortly found out that 5 drives in that stock Dell case was the farthest thing from it, but that will be a completely seperate article :)&lt;br /&gt;&lt;br /&gt;So back to the installation. While installing the OS I choose to make my own partitioning scheme, which looked like this:&lt;br /&gt;/boot partition on sdc (the USB disk) using all 128MB&lt;br /&gt;/boot1 partition on hda (100MB)&lt;br /&gt;/ partition went to hda as well (my 40GB system disk).&lt;br /&gt;For all three I used the ext3 filesystem.&lt;br /&gt;swap went on hda as well (2048 GB)&lt;br /&gt;&lt;br /&gt;I then installed the OS, rebooted, and FINALLY saw that wonderful line “Grub loading… Please wait” or whatever it is.&lt;br /&gt;&lt;br /&gt;So for this first boot both phase I and II of the boot loader took place on the USB drive. To play around I wanted to also see if I could get the actual kernel to boot from the system disk rather than the USB disk. To do that I had to do the following:&lt;br /&gt;&lt;br /&gt;I edited the grub/grub.conf that was on the USB disk to look like this:&lt;br /&gt;&lt;br /&gt;default=0&lt;br /&gt;timeout=5&lt;br /&gt;splashimage=(hd0,0)/grub/splash.xpm.gz&lt;br /&gt;hiddenmenu&lt;br /&gt;title MythDora-hda (2.6.20-1.2944.fc6)&lt;br /&gt;&lt;strong&gt;root (hd5,0)&lt;/strong&gt;&lt;br /&gt;kernel /vmlinuz-2.6.20-1.2944.fc6 ro root=LABEL=/ rhgb quiet&lt;br /&gt;initrd /initrd-2.6.20-1.2944.fc6.img&lt;br /&gt;title MythDora-usb (2.6.20-1.2944.fc6)&lt;br /&gt;root (hd0,0)&lt;br /&gt;kernel /vmlinuz-2.6.20-1.2944.fc6 ro root=LABEL=/ rhgb quiet&lt;br /&gt;initrd /initrd-2.6.20-1.2944.fc6.img&lt;br /&gt;&lt;br /&gt;I then copied the following files from /boot/ to /boot1:&lt;br /&gt;config-2.6.20-1.2944.fc6&lt;br /&gt;initrd-2.6.20-1.2944.fc6.img&lt;br /&gt;symvers-2.6.20-1.2944.fc6.gz&lt;br /&gt;vmlinuz-2.6.20-1.2944.fc6&lt;br /&gt;System.map-2.6.20-1.2944.fc6&lt;br /&gt;&lt;br /&gt;I then edited /etc/fstab to look like this:&lt;br /&gt;&lt;br /&gt;LABEL=/ / ext3 defaults 1 1&lt;br /&gt;&lt;strong&gt;/dev/hda1 /boot ext3 defaults 1 2&lt;/strong&gt;&lt;br /&gt;Devpts /dev/pts devpts gid=5,mode=620 0 0&lt;br /&gt;Tmpfs /dev/shm tmpfs defaults 0 0&lt;br /&gt;Proc /proc proc defaults 0 0&lt;br /&gt;Sysfs /sys sysfs defaults 0 0&lt;br /&gt;LABEL=SWAP-hda2 swap swap defaults 0 0&lt;br /&gt;/dev/cdrom /media/cdrom auto noauto,ro,user 0 0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Then I rebooted again. This time, grub still ran from the USB disk, but it looked at hd5,0 for the kernel, which on my machine is /dev/hda1. It found it and then mounted /dev/hda1 to /boot.&lt;br /&gt;&lt;br /&gt;I am not sure which is better: Leaving the entire boot partition on the USB drive, for using this phased approach; but this is the way I left it. Let me know if you think it makes a difference.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The only current problem with the actual OS (MythDora4) is that atrpms recently deprecated the FC6 package repository so updating the system is kind of at a standstill until the next version of MythDora comes out. Luckily, &lt;a href="http://g-ding.tv/?q=content/what-were-working"&gt;http://g-ding.tv/?q=content/what-were-working&lt;/a&gt;, shows that the next release based on Fedora Core 8 will be coming soon. They are just waiting on the release of version 0.21 of MythTV.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;So I'll leave off with that. Parts two and three will include the following topics:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Configuring the storage (RAID5 + XFS)&lt;br /&gt;Configuring Digital Audio (S/PDIF over coax using alsa)&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;Still on the task list it to get the following working:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Configuring LIRC (Remote control)&lt;br /&gt;Configuring VGA to Component Video&lt;/strong&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5890567984672491244-4826570490916014195?l=sethsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sethsec.blogspot.com/feeds/4826570490916014195/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5890567984672491244&amp;postID=4826570490916014195' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5890567984672491244/posts/default/4826570490916014195'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5890567984672491244/posts/default/4826570490916014195'/><link rel='alternate' type='text/html' href='http://sethsec.blogspot.com/2008/02/mythtv-upgrade-part-1.html' title='MythTV Upgrade - Part 1'/><author><name>Seth</name><uri>http://www.blogger.com/profile/05253599496757968918</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5890567984672491244.post-3346194491898380054</id><published>2008-01-31T15:06:00.001-05:00</published><updated>2008-01-31T15:29:58.133-05:00</updated><title type='text'>Hello</title><content type='html'>So this is going to be my technical brain dump space on the web.  As someone who has spent thousands of hours of my life asking Google how to do stuff, I finally feel like I am rounding the curve to the point where I can give something back.&lt;br /&gt;&lt;br /&gt;I would guess that 98% or more of this blog will be related to open source Linux projects.  Some of the ones I use the most are Snort, MythTV and Drupal.  Most of my entries will be pretty basic and for my own records, but I hope that every once and a while someone else will find one of my entries useful and it will help them the way that so many amazing pages have helped me in the past.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5890567984672491244-3346194491898380054?l=sethsec.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://sethsec.blogspot.com/feeds/3346194491898380054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5890567984672491244&amp;postID=3346194491898380054' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5890567984672491244/posts/default/3346194491898380054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5890567984672491244/posts/default/3346194491898380054'/><link rel='alternate' type='text/html' href='http://sethsec.blogspot.com/2008/01/hello.html' title='Hello'/><author><name>Seth</name><uri>http://www.blogger.com/profile/05253599496757968918</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
