Echostar DishPVR 721 GPL Software Released
Faw writes "It was mentioned before that Echostar was releasing a Linux based PVR. It has been out for a month now, and the modifications to the kernel and other software are here. The cool thing is the site is running on the same receiver. Someone is already hacking it. Wonder how long until the receiver get slashdotted."
Wonder how long until the receiver get slashdotted.
Honey, while you're getting me that beer, can you wiggle those rabbit ears a little? The cables gone out again.
*scratch*scratch*
I have been pwned because my
Many students are caught in my campus to use IP addresses without authorization (often the address belongs to some other student, causing network conflicts). This is the only action commonly called "stealing" here w.r.t. IP.
After only 4 comments, I'm getting a blank page on the site listed in the article. Guess that didn't take too long to slashdot.
"Champagne for my real friends - and real pain for my sham friends!" http://ericblade.postalboard.com/
* Run a firewall on it, nobody on earth is gonna think my Hi-Fi firewall runs on that :)
* Is it downstream only ? if not we can broadcast useful stuff...
Any other ideas, am racking my brains... :)
-- Live Long And Prosper
For those wondering, PVR stands for personal video recorder. It's like a VCR, but it's digital. Now on to my question.
How will the new FCC copy-protection regulations being passed effect TiVo and other PVR devices? Are they going to be rendered completely useless, or is there going to be some loophole?
A musician without the RIAA, is like a fish without a bicycle.
I'm not even gonna say it.
Grandfather clause
OTOH, if they can't interface with the new formats, they will be as useless as your dad's collection of Slim Whitman 8-tracks.
I have been pwned because my
A lot of people focus on Personal Video Recording, but what we really lack is the possibility to transmit video via ethernet cable (TCP/IP), so that we can have 10-20 televisions without having tons of coax cable around.
It's very simple: One box located at the satellite dish (or TV-cable where it enters the building) receives the TV-signal and provides it via ethernet in full quality, and another box at the TV receives that signal and provides the ability to remote control the receiver via a remote control and ethernet.
But I guess this violates the DMCA?
Dybdahl.
Ok, any idea what arch the processor is? Wasn't mentioned as far as I could see. Also, now all someone has to do is make a web interface so that we can pick what programs we want to record over the net, ala Tivo.
SealBeater
-- Its survival of the fittest...and we got the fucking guns!!!
Almost forgot, what's the file format for the archived video? Is it straight MPEG or something propriatary? Can I install NFS or somesuch on it? Sorry, it's just a day for questions apparently.
SealBeater
-- Its survival of the fittest...and we got the fucking guns!!!
Well, if replacing a piece of software recompiled from the source tree causes the unit to fail, that means the binary must not correspond to the source. Thus the GPL'ed source must have had further, secret modifications that are not being released. Isn't that a violation of the GPL?
This is easily done, and no, it does not violate the DMCA.
The TV signal is first encoded using an MPEG or similar format. This encoded signal is then streamed on the network via multicast. There are plenty of these systems out there, most are rather expensive but, they do exist and it can be done with Linux. The trick is to have a powerful enough box to do the realtime MPEG encoding.
Commercial versions of this are used for desktop video conferencing, distance learning and even entertainment transmission. Nothing sells highend networking equipment better than a demo with a Top Gun DVD broadcasting to a dozen PCs and TVs around the room.
This discussion was held before but here goes:
Combining two pieces of software more than just calling each other through the shell constitutes them being one program, especially in this case where the software won't even *compile* without the missing (proprietary) code. This is not allowed under the GPL - either the entire software is released under the GPL or you can't release it under the GPL at all. (see here)
Admittedly, it's nice of them to release the code and make it avaliable to the public, I'm sure it'll be interesting for everyone - but once again, the GPL is beaten.
Wonder how long until the receiver get slashdotted
/. is having a story regarding that famous .cx site.. *phew* ..
Somehow I thought
It's still early.. -_-
geek page at KY speaks
Do you prefer John Wayne Gacy?
Echostar/Starband still will not release client specs to allow Linux computers to directly connect to starband satellite modems with normal speeds.
You can connect the Linux box to the satellite modem, but it operates at around 64kbits up/down, with the windows client installed, it gets more like 768 down 64 up. Many people have requested the specs to write a driver for Linux, but they were told that the specs would not be given out to support the development of any sort of open source driver.
Don't get the idea that Echostar is Linux friendly. Starband proves that.
I've had enough abrasive sigs. Kittens are cute and fuzzy.
Wonder how long until the receiver get slashdotted.
yeah, someone set up us the bomb.
I noticed that there is a phone jack on the back. But I only have a cell phone. Is it likely I'd be able to use some VOIP box for this thing to connect? Could it connect using the USB porn intead?
Also, I have an apartment, so permanently installing this thing wouldn't be an option for me. Is it likely I'd get a decent signal through my window? (assuming I can get a good path)
> I noticed that there is a phone jack on the back. [ideamaster.com] But I only have a cell phone. Is it likely I'd be able to use some VOIP box for this thing to connect? Could it connect using the USB porn intead?
Also, I have an apartment, so permanently installing this thing wouldn't be an option for me. Is it likely I'd get a decent signal through my window? (assuming I can get a good path)
The real question would be what do you plan on buying one of these for?
Google Cache of 721 system info:
8 C: www.ideamaster.com/budget/721.htm+&hl=en&ie=UT F-8
http://216.239.53.100/search?q=cache:rqTXC_SC83
I can think of several ways to pull this off; the sytem has a smart card and reader. I can see having the hardware check to make sure the software corresponds to a certain signature before allowing anything to happen. There may also be a few kernel modules and things where they could do secret stuff (IIRC the smart card software and the tuner software were both modules.)
I am kind of curious to know if they went with GNU's gettext for translation in their UI. They were looking at it at one point. It'd be interesting if someone could find out. They may not have realized that gettext is GPLed (Not LGPLed.) It'd be fun to see how much of the UI code they kept from when I was working on it. It was a hideous mess back then; they essentially developed a C++ screen library on top of GDK and the programmer who was working on it when I got there was in the "Oooh! Lets inherit everything!" phase of learning C++. Everything was done with pixmaps and hotspots and given a choice I'd sooner program in MFC (and I don't do windows!)
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
It's a double click ad.
It was me, I did it, I moved your cheese
It could be something fairly innocuous.
:)
From the hack-site linked in the original story,
"And any attempt to edit post-startup scripts or executable binaries (e.g. the lbreakout game) resulted in that executable failing to run.
I don't yet know how it works, but it appears that the 721 features a built- in mechanism to prevent changes to core files, guaranteeing their integrity. I suspect a SHA1-based message digest is stored (somewhere) for each protected file, and checked at run-time. It's possible the XFS filesystem's extended attributes contain the file checksum data."
This could be the mechanism for discouraging changes, I dunno. I also have not thought about any GPL implications, but it doesn't sound like a violation to me.
But hey, it runs XFS! Ain't that cool!
Interesting note: the results from Netcraft about the specific DB721 box that is running on 204.45.37.181 is that it is running micro_httpd. Though it doesn't have a specific Linux distribution... hmm... maybe I should nmap it and try to get a finger print off of it. :-)
I'm interested in doing something very similar for my new home, but I would like to have HD capability right off the bat. There are already many satellite stations broadcasting HD material, and I'd like to make use of that... especially since most of my monitors support HD resolutions. Aside from my Sony Wega in the living room, every other display is on a Mac or PC. I already have Cat5e to most rooms and have a nice managed 3com switch bringing it all together.
As some others have pointed out, Echostar is doing precisely what the GPL requires of them and nothing more. (they released the kernel code and some common shell utils, the PVR-specific stuff is still secret)
This is like making a Slashdot headline for a company that buys a license for each copy of Windows and Office it is using. Why are we so excited they just obeyed the license?
...to see a bunch of geeks get their undies in a bunch over the "GPL".
Read my sig if you like, but I'll never see yours, thanks to Discussions, Viewing, Disable sigs...
HOWTO: Install a Web Server on Your Dish Network PVR-721
August 2002
INTRODUCTION
Ever wanted to run a Web server on your Dish Network PVR-721? This document describes one method of doing so. If you have physical access to a PVR-721, a Linux-based PC, and a USB-to-Ethernet adapter, you can make your PVR-721 serve up HTML while you watch your favorite shows. The technique described in this document is pretty safe. It doesn't require permanent physical changes to the PVR-721, nor does it require you to break any "warranty stickers" on your PVR-721.
REQUIREMENTS
You'll need a few things before you get started.
1. Dish Network PVR-721 with system software revision 102 or earlier
2. Spare Linux desktop PC with:
a. Kernel 2.4.x
b. XFS support - Highly recommend SGI XFS Installer paired with RedHat 7.3
c. Available IDE connection (master or slave, primary or secondary)
3. Rough working knowledge of Linux administration from the command line
4. USB-to-Ethernet adapter
5. Secure Local Area Network (firewalled at minimum)
6. Separate PC with telnet client and Web browser
If you don't meet all the requirements, you'll need to get creative. Creativity is beyond the scope of this document.
SWAP THE DRIVE OVER
First you'll need to attach the PVR-721's hard drive to a Linux PC so you can copy files to it. Since you won't want to break the "warranty sticker" preventing you from removing the PVR-721's hard drive, you'll want to put the PVR-721 very close to the Linux PC. Here are step-by-step instructions:
1. Power down the Linux PC, remove its cover, and locate the IDE cable and an extra hard drive power cable
2. Power down the PVR-721 (pull power plug), remove its cover, place it near the Linux PC, and locate the hard drive
3. Warning: be very careful not to touch the power supply which is located opposite the hard drive; it is not enclosed, and might shock you
4. Remove the IDE cable and power cable from the PVR-721's hard drive
5. Attach the Linux PC's IDE cable and power cable to the PVR-721's hard drive
Now you can access the PVR-721's hard drive from the Linux PC. It sounds kinda scary, but it's not that bad.
Troubleshooting: If your system can't find the 721's drive, try isolating it as the master drive on the secondary IDE channel. That would make it
MOUNT THE XFS FILESYSTEMS
Create the mount points first.
mkdir
I added these lines to
Bear in mind that hdc5 and hdc6 are interchangeable. The PVR-721 is using one as the root device now, and the other one will be used for the next software update. So you may have to look at the
INSTALL THE WEB SERVER
Next you'll edit some configuration files on the PVR-721, enabling you to start the Web server.
Edit the
1. Replace the ifconfig line with the static IP address that you'd like the PVR-721 to use.
2. We send all output to debug log files on the data partition. Either send it to log files or send to
3. We start syslogd and klogd for fun. These are optional. The PVR-721's startup scripts start them and then kill those processes because they apparently caused some issues. We like to see the debug info.
4. The echo lines will blink the Message LED every 5 minutes, to indicate CRON is still working.
5. The PVR-721's system clock is in GMT, so scheduling events to run at certain hours of the day takes some math.
Now place the files python-bash.py, telnetd-wrapper.py, and pythonshell.py in the
pythonshell.py: This listens on port 8023. If you telnet to it, it will open up a Python interpreter shell. Quite handy.
telnetd-wrapper.py: This listens on port 23. This is the middle-man between your telnet client and a bash shell. It's really ugly. Basically it reconnects you to 8024, which has python-bash.py running on it. But the middle man strips out carriage returns. It's ugly, but it's the best we've got so far. We're looking for help here getting Twisted's Python Telnet Daemon or SSH daemon working. Their Telnetd opens a python shell, but it could be hacked to give us bash instead.
python-bash.py: This listens on port 8024, it only helps telnetd-wrapper.py. Also note that these two processes quit after you exit from the telnet session. But cron starts them again within 10 minutes.
Place the index.html from below into the
Edit the
At this point you may wish to nose around. Feel free. You may look, but don't touch. Any changes you make to startup scripts or binary executables will be detected by the PVR-721 the next time it boots. It will display a "bad hard drive" error message, and reinstall itself, wiping the slate clean (so to speak). Not only will you lose your changes, you'll lose any previously recorded programs. On the bright side, you don't have to worry about permanently damaging the PVR-721 - if you mess it up, it automagically heals itself. A nifty feature, huh?
SWAP THE DRIVE BACK
When you're through nosing around, unmount the PVR-721's boot partition and shutdown the Linux PC. Power it down, and swap the hard drive back. Step-by-step:
1. Shut down the Linux PC with "/sbin/shutdown -hf now"
2. Make sure the Linux PC is powered off
3. Unplug the Linux PC's IDE cable and hard drive cable from the PVR-721
4. Plug the PVR-721's IDE cable and hard drive cable into the PVR-721's hard drive
5. Plug in the USB-to-Ethernet adaptor and network cable.
6. Boot the PVR-721
Your PVR-721 should boot normally; you won't be able to see anything different, except that the link light on your USB-to-Ethernet adapter will illuminate.
START THE WEB SERVER
Now you'll want to start the Web server by playing the LBreakout game on the PVR-721. No, that's no joke. We've secretly replaced the LBreakout game with the cron daemon, which launches the Web server. Sneaky, huh? You'll know it's worked when the "Online" LED on the PVR-721's front panel illuminates. Here are step-by-step instructions:
1. Access the main menu of the PVR-721's user interface
2. Navigate to the "Games" menu
3. Press "Select" to start the LBreakout game
4. Notice that the game doesn't actually start; instead, the cron daemon starts up.
5. Within 10 minutes, the "Online" LED will illuminate on the front panel.
6. Now turn to a computer with a Web browser (any computer on the LAN will do)
7. Point the Web browser at the PVR-721's new home page:
a. http://ipaddress:8000/index.html
8. Verify that you can access the PVR-721's filesystem via the Web server
a. Click the "Echostar" link under the "Proc Filesystem" heading
Congratulations, you did it. You're running a Web server on your Dish Network PVR-721. What's next? It's up to you.
If you're feeling adventurous, try connecting to the telnet server on port 23. It's not a real telnet server, so it won't work exactly like you'd expect, but it provides some functionality.
A WORD OF CAUTION
The PVR-721's filesystem is protected by two security mechanisms, the boot-time "auto-reinstall" mechanism mentioned above, and a "secure loader."
At boot time, the auto-install mechanism checks the disk for validity. It examines each executable (binary or shell script) required for startup. If it finds any changes to those files, it assumes the disk is invalid and reinstalls the operating system from a standby boot partition.
At run time, the secure loader examines executables as they are loaded. If it detects any changes to the executable, it refuses to load it. It's safe to change configuration files (e.g. crontab), and to run the executables that shipped with DishLinux, but "foreign" executables aren't permitted to run. Fortunately DishLinux ships with Python 1.5 support. Python scripts aren't subject to the secure loader.
For details of our research into PVR-721 security and speculation on the implementation details of these security mechanisms, check out our paper on the subject.
It'd be even better if they would port to FreeBSD and abandon the over-hyped no good linux copycat of BSD.
The front page story links through this address:
7 ee eeb9082bd8763f6759d0d3&threadid=6558
7 ee eeb9082bd8763f6759d0d3&threadid=6558
/. stories concerning DoubleClick.
http://www.dbstalk.com/showthread.php?s=8a08531
The link at the top of the "Read More..." page links direct at:
http://www.dbstalk.com/showthread.php?s=8a08531
Is this part of Slashcode or a goof or what? Just found it curious considering the generally negative
The Inside Story of the MIT Blackjack Team's Conquest of the Casinos
h tm l
http://www.wired.com/wired/archive/10.09/vegas.
Echostar sends the bills for starband, until likely until your 1 year is up. Echostar and starband have had lawsuits against each other. Echostar refused to give the client list of starband customers over to starband for direct billing.
.
.)
Though, my 1 year with starband is almost up. I only have a PVR 501, and I'm out in Ironto (between blacksburg VA and roanoke VA). I'd be very much interested in any way to get another Internet Connection. Or to do cool things with my PVR 501. Last I checked, it was not possible to get a 721 PVR standalone (e.g. if you're already a dish customer, you're out of luck).
Please do not let the Dish/Direct TV destroy things. Unfortunately, based on the actions between dish and starband, and the very misleading advertisements that Dish has been putting on their systems trying to get folks to support the merge, I fear what Dish (e.g. echostar) will do . .
On a side note, Gilat ( the maker of the starband modem technology, is selling around the 50 cents to 80 cents range . .
When are we Europeans going to get a service like this ?? If it runs linux and is hackable I'l sign up on the spot !
echo '[q]sa[ln0=aln80~Psnlbx]16isb572CCB9AE9DB03273snlbxq' |dc
Wow you are in ironto... Do you know Michael Krawitz?
I've had enough abrasive sigs. Kittens are cute and fuzzy.
At one point, I was approached to write something similar for a FreeBSD based devices, but at the time I had too much on my plate to accept the contract.
The protocol stack modifications allow for more data in the pipeline without an acknowledgement on a long delay link (e.g. a satellite link).
The basic problem with satellite links is that the latency increases the amount of data that must remain in the sender's buffer without acknowledgement, so the unacknowledged data times the number of active clients becomes the limiting factor. There are several approaches to dealing with this, but all of them require adulterating the protocol stack to the point that what you are running is not really TCP over IP, it's something else.
The problem is that you simply *can't* crank the TCP window size large enough to cover the latency, without reducing the number of clients that the server can support. Maybe this will change when 64 bit systems with 128G of RAM become available, but I rather expect that the extra memory will be used for supporting a larger number of simultaneous subscribers, rather than better supporting existing subscribers without using their proprietary protocol.
The reason the data rate goes down is that there is not an implementation of this stack for Linux (there is one for FreeBSD, but it's not published, to my knowledge), and there's also an implementation for Windows (not published).
Just because the call something a "driver" in the Windows world doesn'yt actually mean that it's really a "driver", and not something else.
In any case, it works at all because, in the face of the lack of a driver, the connection falls back to simple TCP/IP. *That* works, because the assumption is that the data will be mostly unidirectional, out to the remote site.
There's actually a lot of information available on the concept (but nearly none on the implementation, and I couldn't disclose anything anyway) if you dig around the various web sites.
-- Terry
Greetings, thanks for the article guys! It was great having everyone from Slashdot visit us at DBSTalk.COM today! I am hoping the Internet Access on the 721 can be Slashdotted! Before the 721 it was announced that when Internet access is available on the 721 that you will be able to use ANY broadband service you want. However on the last tech chat it was announced that they changed their minds and that Internet access will be available only to those who subscribe to one of their partners DSL service. I feel like I have been lied to and I am mad as hell about this, this is the reason I purchased a 721, if I just wanted a Dual Channel PVR I would have cenceled Dish Network and picked up a DirecTivo for $19 at Circuit City. I invite all the code hacker to work on this and post their finding at DBSTalk.COM we have a large group of 721 users owners and hackers there. Thanks!
I don't know him. I just moved here last year. Should I? (where can I find him?)
This conversation should be in e-mail
(backwards)
moc.elohten@maps-todhsals
It's not "irrational"...
What do they have to lose by publishing the protocol specifications?
A heck of a lot, actually. They open the market to competitors who would otherwise have an R&D barrier to entry.
By doing that, they compress the amount of time they have available to amortize their R&D costs, before someone else enters the market and puts a downward price pressure on the service, as it becomes commoditized.
As a result, the price to consumers between the time of disclosure and the time that the price pressure actually starts, must be higher, which reduced the market further, so the price must be even higher... until it finds an equalibria point for the reduced amortization period.
This is true, even if there ends up being a small additional Linux developer market on top of the consumer market (if you can see more than that in what "they would gain from linux support", then you need to make a business case to that effect).
The net result is a higher cost to consumers, and a lower overall availability of the service.
It's not always a black-and-white, positive thing to have all information disclosed, no matter what.
-- Terry
How do you get from "downward price pressure" to "higher cost to consumers"?
I've had enough abrasive sigs. Kittens are cute and fuzzy.
"How do you get from "downward price pressure" to "higher cost to consumers"?"
...I get there by noting that R&D costs to be recovered remain a fixed constant, and the time available for recovery of those costs is reduced.
:= Recovery time, in years := Number of users := R&D costs := Cost per consumer per year
People with an incomplete understanding of market economies always ignore fixed initial costs, for some reason, when trying to promote the idea of "free" software.
Please read this part again:
| By doing that, they compress the amount of
| time they have available to amortize their
| R&D costs, before someone else enters the
| market and puts a downward price pressure
| on the service, as it becomes commoditized.
Then I divide the R&D costs by the time available, and spread that cost across the total number of users.
For people who can't do "story problems", here is the math:
R
N
C
?
C / N / R = ?
Say our R&D costs were $10,000. Say the number of users was 1000. And say we had 5 years to recover our costs, because that's how long it would take someone to duplicate our work, without access to our source code. So:
$10,000 / 1000 / 5 = $2/year cost per user for R&D
Now, let's give away our source code. Now it takes our competitor a year to productize it and get their business processes in place so they can compete equally:
$10,000 / 1000 / 1 = $10/year cost per user for R&D
Now, say only 3/4 the users are willing to pay the inflated costs, and the rest say "screw you, you greedy capitalist bastards, we will do without":
$10,000 / 750 / 1 = $13.33/year cost per user for R&D
Do you "get it" now??? *Eventually*, the cost will go down... but *ONLY* after the R&D costs have been amortized out by *someone* - a customer - paying for them. The money "Joe The Programmer" was paid to write the code in the first place had to come from *somewhere*.
-- Terry
I will point out the obvious, yet again...
This is *NOT* a driver for a particular piece of hardware, it is a *protocol stack*, which could care less who you buy your hardware or satellite service from.
"Without the Gilat modem and whatever runs on the server side, this is useless. They stand to lose nothing by providing a driver for hardware and a service that they control."
This is wrong. Control is *precisely* what they give up, as soon as they document/publish their protocol, unless they have a patent on it (they don't, according to my search of the patent database).
As you pointed out: it works at the high data rate with Windows (where they have implemented their stack) but not with Linux (where they have not). Thus the issue is software,l not hardware dependent.
This is *exactly* what Real, Inc. does, by documenting their protcols well enough to permit implementation of a proxy server over a NAT or firewall, but *NOT* well enough for you to implement a Real Audio server (no QOS encapsulated protocol documentation, for the protocol between the client and the server, which is tunneled through the proxy connection without being interpreted by it). By *NOT* documenting their protocol, they keep control of the server side of the market.
Let me put it this way: if *I* had source code to a Real Audio player that implemented the client side of the QOS protocol, I *could easily* implement the server side. As it is, you have to spend a lot of money reverse engineering the QOS protocol (Network Appliance did exactly this, in order to implement their streaming media caching server -- cached content needs the same QOS moderation in the stream the server sends to the client).
-- Terry