Cheap Hardware For Open Source Developers

Blog post by Michael Crawford on Sun, 2008-10-26 12:47

Matt Zehner, a teacher at Branham High School in San Jose, sponsors the school's SPARE e-Waste recycling program: Students Promoting Awareness of Recycling and the Environment.

Their focus is on putting discarded hardware back into productive use so it doesn't enter the waste stream, as many electronic products are full of toxic materials like lead and arsenic.

His club was featured in the Cambrian Times' article Branham High School club masters art of turning trash into treasure.

He is also one of my two housemates.

When I killed my PC's motherboard with a failed firmware upgrade, he suggested I help myself to his goodies. I came home with six Pentium III boxes, the fastest being 700 MHz.

I've only examined two so far, but the only problems with either of them were worn out CD-ROM and floppy disk drives. Such drives are so cheap these days that I replaced the CDs on both units with Dual-Layer DVD Burners! Oh, Man, I remember when my first 4x SCSI CD burner set me back four hundred hard-earned bucks...

Matt was very excited about my proposal to offer salvaged AGP, PCI and even ISA cards to Open Source developers. They could supply whole working computers, but shipping wouldn't be economical outside of Silicon Valley. But for motherboards with onboard video, sound or ethernet, it would be economical to ship just the motherboard, CPU and memory.

(Complete computers could be provided to those able to pick them up at the school.)

SPARE would ask for a modest donation, but it would be way cheaper than buying such cards from a computer dealer.

I'm going to propose that we develop a web application that would catalog all these cards in a way that would aid developers in finding specific products.

What I have in mind is a very stripped-down Linux install on a floppy, CD or USB Flash drive. It would boot, scan the PCI bus then record the slot numbers, PCI Vendor and Device IDs in an XML file on a Flash drive, then shut back down. The student would then insert this Flash drive in another computer dedicated to this purpse, that would upload all the ID numbers to their website's database.

The web application would have a textual description of all the products in the database - there is someone who maintains such a listing specifically for Open Source use - so each card would be listed according to its function, manufacturer, model number and possibly revision number.

One problem they have is that the hard drives in their older computers aren't really big enough for use with "modern" operating systems like WinXP and Vista - they're typically ten or twenty gigabytes. Thus they're not able to put these hard drives back into service, so they have to be scrapped.

But it occurred to me that the kids could pre-install Ubuntu and Haiku on them, which would do just fine with such small drives. I vaguely recall that back in the day most of my own BeOS drives were only two gigabytes. (And one of those two-gig drives cost twelves hundred clams!)

Comments

Re: Cheap Hardware For Open Source Developers

Quote:

What I have in mind is a very stripped-down Linux install on a floppy, CD or USB Flash drive. It would boot, scan the PCI bus then record the slot numbers, PCI Vendor and Device IDs in an XML file on a Flash drive, then shut back down. The student would then insert this Flash drive in another computer dedicated to this purpse, that would upload all the ID numbers to their website's database.

Something like this would be very interesting with LinuxBIOS efforts. Given a list of the computer's hardware (and chipset info), a parser should be able to assemble the OS bits needed to produce a Linux BIOS for exactly that computer, taking the guesswork and difficulty out of process. For that matter, it should be possible to assemble the bits and pieces of Haiku to make a Haiku BIOS (some day after Haiku achieves general stability). Upload the system info to a website. It builds the BIOS for you and emails it to you. Only one drawback I can think of with this scheme: it cannot communicate the board's errata; mfr's almost never build hardware that matches the spec. :(

Back on topic, creating a central repository of used hardware available for the asking and/or a donation is a nifty idea. I've got a bunch of stuff I really ought to sell, including all my Be stuff from ten years ago. If y'all can design the database and web interfaces, I've got a VPS I'm not doing much with; it could handle the prototyping and development effort very nicely.

Neal

Re: Cheap Hardware For Open Source Developers

I like this idea a lot. If possible I'd like to add my own hardware to the effort. I don't have many complete systems but many cards and drives. This online repository should allow for location and individual hardware parts.

As far as the system goes, remember that a lot of pre-2001 systems can't boot off of USB mass storage (at least I haven't had much luck). Best would be a modified kernel of some operating system that could fit on a floppy drive. Just put some kernel on a floppy, boot the system, and it would output a specially formatted syslog that the master application could parse. OpenBSD's boot disk does something very close already if you look at /sbin/dmesg it will give you something like the following:

OpenBSD 3.6 (GENERIC) #59: Fri Sep 17 12:32:57 MDT 2004
    deraadt@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC
cpu0: Intel Pentium III ("GenuineIntel" 686-class, 128KB L2 cache) 598 MHz
cpu0: FPU,V86,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE
real mem  = 132685824 (129576K)
avail mem = 114442240 (111760K)
using 1645 buffers containing 6737920 bytes (6580K) of memory
mainbus0 (root)
bios0 at mainbus0: AT/286+(ab) BIOS, date 02/24/00, BIOS32 rev. 0 @ 0xfd890
apm0 at bios0: Power Management spec V1.2
apm0: AC on, battery charge unknown
pcibios0 at bios0: rev 2.1 @ 0xfd890/0x770
pcibios0: PCI IRQ Routing Table rev 1.0 @ 0xfdf40/160 (8 entries)
pcibios0: PCI Interrupt Router at 000:31:0 ("Intel 82371FB ISA" rev 0x00)
pcibios0: PCI bus #1 is the last bus
bios0: ROM list: 0xc0000/0x8000 0xe0000/0x1000! 0xe1000/0x3000!
cpu0 at mainbus0
pci0 at mainbus0 bus 0: configuration mode 1 (no bios)
pchb0 at pci0 dev 0 function 0 "Intel 82810" rev 0x03: rng active, 8Kb/sec
vga1 at pci0 dev 1 function 0 "Intel 82810 Graphics" rev 0x03: aperture at 0xf8000000, size 0x4000000
wsdisplay0 at vga1: console (80x25, vt100 emulation)
wsdisplay0: screen 1-5 added (80x25, vt100 emulation)
ppb0 at pci0 dev 30 function 0 "Intel 82801AA Hub-to-PCI" rev 0x02
pci1 at ppb0 bus 1
clct0 at pci1 dev 9 function 0 "Cirrus Logic CS4281 CrystalClear Audio" rev 0x01 irq 11
ac97: codec id 0x43525913 (Cirrus Logic CS4297A rev 3)
ac97: codec features headphone, 20 bit DAC, 18 bit ADC, Crystal Semi 3D
audio0 at clct0
de0 at pci1 dev 11 function 0 "DEC 21140" rev 0x22: irq 9
de0: 21140A [10-100Mb/s] pass 2.2 address 00:c0:f0:30:21:ae
de1 at pci1 dev 13 function 0 "DEC 21140" rev 0x22: irq 9
de1: 21140A [10-100Mb/s] pass 2.2 address 00:c0:f0:17:ff:a3
de2 at pci1 dev 14 function 0 "DEC 21140" rev 0x22: irq 10
de2: 21140A [10-100Mb/s] pass 2.2 address 00:c0:f0:30:19:34
ichpcib0 at pci0 dev 31 function 0 "Intel 82801AA LPC" rev 0x02
pciide0 at pci0 dev 31 function 1 "Intel 82801AA IDE" rev 0x02: DMA, channel 0 wired to compatibility, channel 1 wired to compatibility
pciide0: channel 0 disabled (no drives)
wd0 at pciide0 channel 1 drive 0: 
wd0: 16-sector PIO, LBA, 6149MB, 12594960 sectors
wd1 at pciide0 channel 1 drive 1: 
wd1: 32-sector PIO, LBA, 14652MB, 30008475 sectors
wd0(pciide0:1:0): using PIO mode 4, Ultra-DMA mode 2
wd1(pciide0:1:1): using PIO mode 4, Ultra-DMA mode 4
uhci0 at pci0 dev 31 function 2 "Intel 82801AA USB" rev 0x02: irq 11
usb0 at uhci0: USB revision 1.0
uhub0 at usb0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
"Intel 82801AA SMBus" rev 0x02 at pci0 dev 31 function 3 not configured
isa0 at ichpcib0
isadma0 at isa0
pckbc0 at isa0 port 0x60/5
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pcppi0 at isa0 port 0x61
midi0 at pcppi0: 
sysbeep0 at pcppi0
npx0 at isa0 port 0xf0/16: using exception 16
pccom0 at isa0 port 0x3f8/8 irq 4: ns16550a, 16 byte fifo

Re: Cheap Hardware For Open Source Developers

Also, this might be helpful for the effort:
http://articles.techrepublic.com.com/5100-10878_11-5030725.html

I used Aida32 while I was working as a computer tech. It's indispensable.

Re: Cheap Hardware For Open Source Developers

Would you see such a program hosted on the Drupal Haiku-OS.org ?
If you see it as a dedicated website, this could be easily homemade.

In the same way, i have a lot of hardware to donate, since i collect all old hardware at my company to test it under BeOS and donate it.

Re: Cheap Hardware For Open Source Developers

WinXP is easily installed on a 10gig HD (or partition). I've done it forever, and installed lots of heavy apps on it. I simply keep my music and data somewhere else. Vista is another story, I wouldn't know because I will not even come close to a computer with that OS on it.

Re: Cheap Hardware For Open Source Developers

I've long thought a system of cataloging hardware would be valuable.

- A tool to scan a machine and prepare a report in a standardized form.

- A tool to submit the report to a web-based database

- The web db can be searched, requests taken for an item, ...

The hardware scan tool could be valuable for another element of reclaiming
unwanted hardware:

Organizations tend to hold onto unused hardware for a long time. This is due
to many factors, but I think there's potential to improve the situation.

A service which offers to remove unused hardware, providing an accurate catalog
of all the components being taken. This would allow management to:

- be sure no really good stuff is going away

- declare a donation value to a non-profit

- maintain accurate inventory records

The scan/report tool might shake loose some better good discards,
offering a higher level of usability downstream.

the Linux command 'lshw' (list hardware) does a quite thorough job, offers
the option of an XML report.

Any progress on the schema/catalog?

Have you considered creating a project at http://launchpad.net ?

Previous efforts with recycling - http://longrun.zwiki.org/TheLongrunStory

Thanks,
Kent