Monday, September 1, 2008

LIRC and Hauppauge PVR-150 on OpenSuSE 11.0

Well, despite what's been said elsewhere, it IS possible! It's a bit error-ridden at first, but here is the procedure that I used to compile and install the PVR-150 patched LIRC 0.8.3-CVS.


First, Download the tarball mentioned in the Version 3 blog post at Marks Braindump. You can pretty much follow his instructions on the installation in the blog post, with some changes that are specific to getting it to compile on OpenSuSE 11.


  1. First, remove all traces of the OpenSuSE LIRC from you system. Uninstall the RPMS and everything else that goes with them. Then unload all of the kernel modules, especially lirc_i2c (if you have it loaded).

  2. In your kernel source directory, run make oldconfig && make prepare.

  3. In your kernel source directory, run make prepare scripts which, among other things, compiles the required genksyms scurript.

  4. I was getting a compile error like "WARNING: Symbol version dump /usr/src/`uname -r`/Module.symvers is missing". Find out which kernel you're running (uname -r). In yout kernel source directory, copy your Module.symvers file from /usr/src/linux-obj. I was running i386 architecture with the "default" kernel, so mine was located at /usr/src/linux-obj/i386/debug/Module.symvers. Copy that into /usr/src/linux.
  5. In the lirc (patched) directory, run setup.sh as instructed. DO NOT tell it to run configure - just save settings and exit.

  6. Edit the generated configure.sh file, adding a --with-kerneldir=/usr/src/KERNELDIR, replacing KERNELDIR with the actual path to your kernel soruce (i.e. /usr/src/`uname -r`).

  7. make. If no errors, make install.

  8. I decided to reboot at this point, and when I did, everything worked perfectly.



Also, I found that I needed to explicitly specify --device=/dev/lirc0 when starting LIRC, as well as not specifying a driver. I just took the /etc/init.d/lirc from the official OpenSuSE 11.0 package, commented out line 108 in makeargs() that adds the -H $LIRC_DRIVER to the args, and added LIRC_DEVICE="/dev/lirc0" to the top after the INIT info.



Unfortunately, figuring out this process took me a long time. I've reconstructed these instructions from various post-it notes, the whiteboard next to my desk, and some bash history files and terminal dumps. If this doesn't seem to work for you, please drop an email to jason AT jason antman DOT com, with as much information as you have, and I'll figure it out and update the instructions.



Now, finally, an up-to-date system AND MythTV.

Labels: , , , ,

Thursday, July 17, 2008

Massive Updates

I know I've been quite for a while. I've been quite busy. Unfortunately, due to changing priorities, there are a lot of projects I've been working on, but few of them have gotten finished. A sampling, in no specific order:



  • Migrating my network/service monitoring to Nagios 3, totally re-writing my config files to make use of the new features, and making one coherent list of all the services that should be in it and aren't.

  • Planning to totally re-wire all networking at the ambulance corps building to eliminate some problems. This includes building an 8U wall-mount rack, and also trying a PC Engines ALIX.2c1 board as a router (still undecided on WAN/LAN/DMZ or WAN/LAN/WLAN). It also means a long day of work at some point in the future, and lots of cable drops.

  • tuxOstat, the linux-controlled thermostat, is pretty much on the back burner. It's a stable beta with severely reduced functionality, but has been handling my cooling needs without any major bugs in the past month or so. It still only has a basic CLI interface and a very simple kludge of a web GUI, but it works. Other modes (heating, fan only), predictive temperature calculation, other temperature/zone calculation modes, and physical controls (buttons, menu on LCD) are still to come, as well as the move from PC to Soekris (if I can ever figure it out, and get one with USB). I now feel that an ALIX board might be a better shot, as they take CF (more space than the Soekris), have a slightly faster processor, and also support USB at about half the price point.

  • I'm considering moving my main web site to a CMS, and letting the wiki serve more as a knowledge base.

  • I'm working on patching together a new access point for the ambulance corps, based on Pyramid Linux. I needed something which would run on the Soekris net4526, had at least WEP, and supported some sort of captive portal. Pyramid has WifiDog, but that only wants to do local authentication or RADIUS, and I wanted direct auth to LDAP and MySQL logging. On the positive side, it just uses some PHP pages hosted under Apache to handle authentication - the WAP redirects the user to a login page on a (separate) web server, the user does their stuff, and then the WAP makes a request to the server to determine whether it should open up the firewall, keep the user locked down, or totally kick them. So, once I figure out some routing issues, I'll get back to working on the new project - BlackLabAuth, a re-write of the WifiDog auth server software that's geared towards a closed-access network (i.e. only people and/or MACs already listed in LDAP can login) with full logging to MySQL. I already have some code in CVS, but some issues with my development Soekris board have slowed the project for the time being. When finished, I'll have not only the new auth server available for download (with documentation) but also a ready-to-run (well, some configuration time needed, but minor and scripted) image for the net4526.

  • My desktop that I use for MythTV filled up its' disk. Totally. I ordered a cheap Syba SATA card (PCI) from NewEgg, along with a 500GB WD SATA-150 disk, but no luck. Though the card (Syba / Initio 1622 chipset, shows up as Class 0106: 1101:1622 (rev 02)) said it was supported under Linux, the driver CD mentioned nothing about it. Some investigation on the Syba website turned up a zipped archive. After extraction, I found a readme that gave (poor) instructions on how to re-compile a kernel, and warned that you MUST have 2.6.15. Oh well, I wasn't going to give up 2.6.16.27 (the newest RPM'd kernel for OpenSuSE 10.1). The standard drivers for it didn't appear until 2.6.25 or so. So... after many debates with myself as to whether I should blow away my whole MythTV installation and upgrade from the now-ancient 10.1, I decided that I'll only be in my apartment for another year, I should make it last. Some investigation turned up a $24 Silicon Image-based card that should work fine, and it's now in the mail...



I'm sure I missed something big, but I'll update as needed, and attempt to make it a daily habit to post something interesting or, at the very least, hard-to-find. After all, I'm sure that I use this blog and my wiki as an informational resource (my bad memory) more than anyone else would...

Labels: , , , , , , , , ,

Tuesday, February 26, 2008

February 26, 2008

Well, while I haven't made much progress on anything interesting - mainly my NMS comparison or any of my other projects - due to my busy schedule, I did get an hour or two to clean up my network at the apartment, swapping out my 24-port Linksys switch in my room for the 5-port Netgear previously used for printing. I threw all of the printers and the print server on their own VLAN on the main 3com switch.

I've also started thinking more about MythTV - I use it for TV in my room (feeding a grossly insufficient 21" CRT monitor), and my roommate has a Dell GX270 by the big TV in the living room, though it was running Freevo (and now has a dead tuner and no RAM, or something like that). So, I decided that I might do things right - drop a 5- or 8-port GigE switch in the apartment, put GigE NICs in the two boxes with tuners (putting MythTV on the GX270 also), and setting up a centralized system. The problem is that the ideal solution would be a single dedicated back-end system for storage and control, with the two tuner/video out boxes just providing A/V I/O. Unfortunately, the two boxes with tuners are both high-spec'ed P4's, and I'm not sure what I can come up with in terms of a server for the backend.

Now, the question for anyone who may be reading - I'd like to setup a good amount (1-2TB) of storage for this. My roommate wants a RAID configuration, but I don't see the need for videos - if I lose my TV recordings, I set MythTV to record it again the next time it's on. Anyway, I have an 8-bay external SCAI enclosure and cards in all of the servers, but SCSI disks are expensive. I was thinking of going to SATA 3.0. Most likely, I'd get some sort of 4-8 disk enclosure, start with 1-3 disks in the 400-750GB range.

So, the question - what type of system specs would be needed to stream audio and video, uncompressed, perhaps even HDTV (we have the TV and cable box, would just need an HD tuner) to remote storage over the network? I was thinking of doing either a Linux master MythTV backend with eSATA cards, or letting each TV computer be its' own backend, and then doing Solaris/ZFS with iSCSI or ATAoE. Any suggestions? I'm pretty much thinking of using a PowerEdge 2550 for this.

Anyway, I'm also filling up my backup disks at home, and don't want to shorten my expiration cycle. My nightly backup runs put quite a strain on my main Fast Ethernet LAN, so I've been planning for a while on moving to GigE. My thought at home is to setup a second, separate GigE switch/lan, with GigE NICs in all of the servers. Not exactly cheap, but I can pickup a Linux-/Solaris-compatible Negear GA311 for around $40, in addition to the Intel Pro/1000 XT and Asante GigaNIC that I already have. The problem here is finding a good GigE switch - I'd really like something with Telnet, SNMP, VLANs, the works.

In other news, I highly recommend reading the Groklaw story on Microsoft's latest pledge for interoperability. I especially liked the one quote from the ECIS statement:
For years now, Microsoft has either failed to implement or has actively corrupted a range of truly open standards adopted and implemented by the rest of the industry. Unless and until that behaviour stops, today's words mean nothing.

More fundamentally, today's announcement is still all about the rest of the world interoperating with Microsoft on Microsoft's own terms, not the other way around.
There's even links to *ten* previous Microsoft statements promising interoperability.
The thing is, this is a promise to interoperate with old-fashioned competitors. It doesn't enable interoperability with the GPL, which is not compatible with patent licenses, and that is Microsoft's true competition.
From Michael Cunningham, VP and General Counsel of Red Hat:
Eight years ago the U.S. regulatory authorities, and four years ago the European regulators made clear to Microsoft that its refusal to disclose interface information for its monopoly software products violates the law. So, it is hardly surprising to see even Microsoft state today that “interoperability across systems is an important requirement” and announce a “change in [its] approach to interoperability.” Of course, we’ve heard similar announcements before, almost always strategically timed for other effect. Red Hat regards this most recent announcement with a healthy dose of skepticism. Three commitments by Microsoft would show that it really means what it is announcing today:
  • Commit to open standards: Rather than pushing forward its proprietary, Windows-based formats for document processing, OOXML, Microsoft should embrace the existing ISO-approved, cross-platform industry standard for document processing, Open Document Format (ODF) at the International Standards Organization’s meeting next week in Geneva. Microsoft, please demonstrate implementation of an existing international open standard now rather than make press announcements about intentions of future standards support.
  • Commit to interoperability with open source: Instead of offering a patent license for its protocol information on the basis of licensing arrangements it knows are incompatible with the GPL – the world’s most widely used open source software license – Microsoft should extend its Open Specification Promise to all of the interoperability information that it is announcing today will be made available. The Open Specification Promise already covers many Microsoft products that do not have monopoly market positions. If Microsoft were truly committed to fostering openness and preventing customer lock-in, it would extend this promise to the protocol and interface information it intends to disclose today. There is no explanation for refusing to extend the Open Specification Promise to “high-volume” products, other than a continued intention on Microsoft’s part to lock customers into its monopoly products, and lock out competitors through patent threats.
  • Commit to competition on a level playing field: Microsoft’s announcement today appears carefully crafted to foreclose competition from the open source community. How else can you explain a “promise not to sue open source developers” as long as they develop and distribute only*/ “non-commercial” implementations of interoperable products? This is simply disingenuous. The only hope for reintroducing competition to the monopoly markets Microsoft now controls – Windows, Office, etc. – is through commercial distributions of competitive open source software products.
Amen!!!

Labels: , , , ,

Saturday, July 14, 2007

Update

I haven't been too active on here lately, mainly due to spending my summer as a paid transport EMT, working 50 hours a week or so, and still trying to keep up on "life".


I have a few things planned for the next month or so of summer, so stay tuned. Some of them include:




  • Redesign of my site including lots of information that's been stored away in text files, and a new wiki for technical information.
  • Some embedded development work, and notes on that.
  • Converting some sort of low-cost handheld computer, tablet, or eBook reader for use as a Linux-based RSS reader (updated over LAN nightly and cached locally), hopefully including an image of my software as well as some conduit to an RSS reader program, and ability to email a list of "flagged" articles on sync (RSS update over network).
  • A vast update of my Code Repo with most of my home-grown F/OSS programs, including my (very basic) web-based budget/finance program.
  • An update to PHP EMS Tools
  • Notes on my experience with MythTV, an integrating it with IR controls, Cablevision SA set-top box, and ultimately a "smart room".
  • My never-ending quest to find a way to interface a CDMA handset to a computer for purposes of sending SMS from the command line (Nagios out-of-band alerts on a budget).
  • A trial run of Asterisk and VoIP from the house to the dorm.
  • Some more projects including:

    • Finding and implementing a hardware/software trouble- and change-tracking system, which will also integrate with my Wiki.
    • Choosing bug tracking software for my internal projects.
    • Choosing and implementing a network-wide backup system to handle *nix, Windows, and my remote *nix machines.
    • OpenSolaris.
    • Figuring out a system to handle automated nightly/weekly tasks on my diverse machines including log analysis, backups, software updates, and the usual stuff (SpamAssassin updates and training and other routine tasks).
    • A status tracker/to-do list of my numerous projects.
    • Releasing most of my web-based kludges under GPL for anyone who may be interested.




Labels: , , , , ,