Installing Rockbox on e200R is Scary

The initial way of installing Rockbox on the Sansa e200R series seriously scare away lots of people, and some of those who have attempted to perform the install really should better have been scared, judging from their desperate cries for help in the forum etc.

Another downside of the initial procedure was that it required the user to download a binary-patched version of the original bootloader, a bootloader that is the property of SanDisk that we have no rights to redistribute – especially not a modified one.

The current work-in-progress method is to build an installer program that can be uploaded to the player and then it does the necessary patching live in the target, removing the need to download anything that isn’t clearly a product of the Rockbox project.

We still lack a working way for this on Windows though, so the current plan is to initially provide a live CD with Linux and the e200R installer on for the Windows crowd, but we’ll see how things evolve…

Manufacturers Hate Customers

I’ve been involved in the Rockbox project since before it was named Rockbox and in fact long before the first code as written. I’ve contributed to it pretty much over the years and I have a fair insight in how most of the ports have been made and what efforts that are behind them. Today, Rockbox runs on around 25 different digital music players.

The first ports of Rockbox was (in retrospect) rather easy since we took it to architectures what were made with circuits and chips for which we could find documentation online.

Recently, music players as well as other consumer electronics are being made using products and circuits from companies that blatantly refuse to hand out documentation. Companies such as PortalPlayer (now Nvidia), Austrian Micro Systems, Samsung, ALI, NEC, Broadcom, Telechip, Texas Instruments, Sigmatel (to name a few) all make interesting and fun hardware but…

Let’s say I am looking into alternatives when creating new hardware. I want to build something new and cool. Something not done before, that would be portable and feature sound and an LCD and whatnot. I see what cool manufacturers there are out there and I can read their propaganda on their fancy web sites. So, I want to compare company A’s fancy chip with company B’s. I contact them in order to get to know as much as possible to be able to compare these beauties.

Data Sheet for a technical thing

No, you cannot get any docs. We will not tell you how our products are used until you sign up for a huge contract. These companies don’t only require NDAs to be signed and similar, they simply won’t let you get the docs no matter what if you’re a small player and are just interested in comparing and evaluating products.

I’ve contacted several companies with this purpose in mind. I work with embedded products for companies doing products using such chips, so I would assume I should be the kind of person these companies would respond to with an open mind and a will to sell me their stuff. But they clearly hate customers.

This problem is of course also tightly related with the eternal discussion of manufacturers not wanting to hand out docs to hardware they sell for PCs, such as graphic cards (AMD/ATI, Nvidia, etc) and network cards (Broadcom, etc). These companies usually hide behind a blurry statement about protecting their intellectual property and being afraid of ending up in the hands of the competition but that always and unconditionally end up with the arguments:

  • The competitors can get this info anyway by simply acting like a big customer, or possibly by buying the info from an existing customer. This protection only hides the info from the little people, not from the big guys with resources.
  • Getting information from the hardware based on a detailed description on how to use it is quite frankly a very ineffective way of cloning someone else’s design and not a likely scenario.
  • Development in these areas is at such a high speed these days, so getting the docs for the current hardware give hardly any competitive edge since the mere operation of copying it to make an own version of it takes a long time and by the time it would be done it would already be outdated.

I sometimes wonder if the chip manufacturers do this on demand from their bigger customers, the consumer electronics companies, to help them keep things hidden so that we – the general public – will have a harder time to modify and/or reverse engineer their products, which may lead to additional support issues for them.

We see this development of secret-docs going in the wrong direction. Samsung used to publish a lot of docs for their ARM-core based microcontrollers, but they no longer do so. Marvell bought the Xscale family from Intel and recently they took away all the public docs for them…

We see “open source” projects (like Neuros uses TI chips) go with these companies so that they can’t reveal all source code.nvidia chip

Luckily, not everything is darkness. There are occasional bright spots, as the other day when AMD announced their intention of bringing their open source ATI drivers up to speed with what could be expected of them..

So what is there to do about this? What can we “little people” do to change these big evil corporations? There’s really only one way: put the money where the docs is! Buy stuff from the good companies. Recommend your clients to release docs openly. Recommend your clients to buy hardware (parts) from companies that host their documentation publicly.

Break Out Of That Proxy

SSH proxy functionality overview

Far too often we end up behind a proxy that limits our network access in one or more ways. There are however clever ways that in most cases allow us to work around the nuisances the proxies impose, and I’ve written down my “guide” on how to do it here!

This is a procedure I’ve used myself many times and I’ve ended up explaining it to others several times as well so I felt it was about time I wrote it down.

I’ve tried to catch most quirks and be detailed and accurate, but please point out if you find any errors or mistakes in there. I hope to be able to perhaps add more specific config examples and command lines as well to make it even easier to follow.

Full-Screen is Hip

iPod Touch

Clearly the major electronic device companies are starting to really like full-screen touch displays for their phones and media devices, and we see them coming from all directions now:

Apple’s iPhone, and its sibling the recently announced ipod Touch, the Nokia concept phone, LD prada, HTC touch, Creative Zen “touch” and I bet we’ll soon see more from other manufacturers following. Like Samsung, Philips, Sony Ericsson and the likes…

We’ve seen devices like Arhos 604 and the Acer MP-500 before but I think what we see now with Apple’s iphone lead is the final step of the ladder and all the prime companies follow suit.

Rockbox build downloads Aug 2007

rockbox400.png

During August 2007, 71164 Rockbox zip files were downloaded from build.rockbox.org. All existing 25 different packages were downloaded and the download counters were distributed like this:

(Model, number of downloads, share of the total number of downloads)

  1. ipodvideo 17829 (25.1%)
  2. sansae200 9909 (13.9%)
  3. ipodnano 9110 (12.8%)
  4. ipodvideo64mb 7649 (10.7%)
  5. h300 3153 (4.4%)
  6. gigabeatf 3113 (4.4%)
  7. h120 2720 (3.8%)
  8. iaudiox5 2712 (3.8%)
  9. ipodcolor 2400 (3.4%)
  10. ipodmini2g 2286 (3.2%)
  11. ipod4gray 2098 (2.9%)
  12. h10_5gb 1380 (1.9%)
  13. h10 1322 (1.9%)
  14. ipodmini1g 1191 (1.7%)
  15. ipod3g 984 (1.4%)
  16. recorder 615 (0.9%)
  17. ipod1g2g 606 (0.9%)
  18. player 551 (0.8%)
  19. iaudiom5 341 (0.5%)
  20. h100 299 (0.4%)
  21. recorder8mb 256 (0.4%)
  22. recorderv2 227 (0.3%)
  23. fmrecorder 207 (0.3%)
  24. ondiofm 105 (0.1%)
  25. ondiosp 101 (0.1%)

Do note that #4 on the list is the bigger sized version of the #1 on the list, so taken all ipod video together they account for 35.8% of all downloads!

Also, consider that this list does not include any downloads done from the download.rockbox.org servers (that host the daily and archived builds), nor do we keep track of any svn update traffic etc.

Portalplayer targets are #1 to #4, more than 60% of the downloads…

The downloads split on main architecture:

  1. portalplayer 56764 (79.7%)
  2. coldfire 9225 (12.9%)
  3. samsung 3113 (4.3%)
  4. sh1 2062 (2.8%)

ABI Breakage

Domenico Andreoli, the Debian curl and libcurl maintainer posted to the curl-library list about the recent libcurl soname bump and the related issue of ABI breakage.

I responded, explaining my view on why the soname bump from 3 to 4 was valid, but I’ve also gone back in my mail archives and checked out a private discussion I had with Bjorn Reese over this subject a long time ago and I feel it is about time it hits the air.

An ABI breakage occurs when one or more of the following changes are made

Functions:

  • Change function names
  • Remove existing functions
  • Change parameters
  • Change behavior
  • Change undefined behavior
  • Add dependence on other functions (e.g. A() must be called before B())

Data structures:

  • Change the order of elements
  • Add elements
  • Remove elements
  • Change the data type or size
  • Change alignment
  • Change element values (e.g. change bits in flag variables)

Global variables:

  • Change variable names or types
  • Remove variables

Update: Dan Fandrich posted on the curl-library list and mentioned Mike Hearn’s great related page: Writing shared libraries.

Plenty Pointless Printer Processes

I recently got a new printer for my home network. My old Epson Photo 870 printer with a D-Link Ethernet-to-parallel port printer server thing suddenly died one day not too long ago.

HP Photosmart C6180I opted for a solution with native Ethernet support that could also work as a copier and scanner so that those (even though rather rarely needed) functions would also be dealt with nicely. (In fact fax too, but I can’t think I’ll ever use that so I haven’t bothered to connect it to the phone system.) I went with the HP C6180 thing, since seemed like a nice setup for a fairly low price. Even though I don’t necessarily plan to print to it from my Linux hosts, I did read some positive reviews about it when used from Linux with CUPS so that was another point talking for this particular model. The printer even has wifi support but I’m using wired Ethernet since it is faster and I have the printer standing next to my wifi router anyway. Also, having scanner supported would mean I can finally put away my 7 year old USB scanner that I’ve been lugging out to use on occasion.

Sometimes (or is it often?) we get to hear that the printer situation on Linux is horrible or at least far from perfect, and while I agree with that I find the situation on Windows horrible – but for entirely different reasons

I followed the printer’s user manual on how to install it on Anja‘s (my wife’s) laptop that runs Windows XP, by inserting the CD and clicking “yes – over Ethernet” etc and it went on and and installed. And wow, did it get installed!

It brought four new icons to the desktop and after the lengthy process was at the end there were at least ten new processes running in the system and for some reason they actually made an impact and the system felt slower! I had to go on a kill frenzy to clear up the worst mess. The amazing part is that even though I killed every single process starting with “HP”, everything still worked exactly like I wanted. And with “msconfig” I could also prevent some of the worst stuff to start again at next reboot… (This kind of behavior is sadly not specific for printers-only on Windows…)

I did have some initial quirks with the printer, until I set it to use a fixed IP address. I’m not sure it really had something to do with it, but I wanted fixed IP anyway and the problems seemed to vanish.

curl, open source and networking