Project management lessons from the FreeDOS Project
A lot of people seem to think that open source is a magic solution to project management and that open source projects will automatically attract a large and healthy community of contributors and users who will improve the software. This, of course, is not the case. In fact, creating a successful open source project is a really major and difficult effort. You have to deliver an initial promise that people find interesting, attract other people, then facilitate and lead the community, etc. You just have to look at all the failed projects on SourceForge that never delivered any code to see that "open source" is not a guarantee for success.
Even though project management is a key element of every open source project, there are only few resources about this topic. That's why I always enjoy reading about the experience from open source project leaders. Jim Hall, the founder of the FreeDOS project, recently posted a series of four articles which I find particularly interesting.
Here are links to the articles along with a quick summary:
- Free and Open Source Software: the first article just describes what free software and open source are all about. It also looks at Raymond's model and compares the cathedral and the bazaar style of development.
- Open source software in the real world: this article summarizes a number of key lessons learned: every project needs a clear purpose (i.e. you have to solve an actual problem); initial users of the software should be recruited as developers; releases are important; and every project needs an active coordinator or maintainer.
- Cultivating Open Source Software: you need a web site; making the source code availability in an easy way is important; documentation is often hard to write but is vital; you need a bug tracking system and responding to bug reports is important to attract good feedback.
- Transitions in an open source software project: finally, when you need to hand over the project, make sure to communicate openly, arrange for your replacement and stick around to ensure a successful hand over.
I really like these articles from Jim Hall since they contain a lot of great insights that apply to other projects, so I suggest you check them out!
(Originally published on FOSSBazaar)
Marvell publishes roadmap of its ARM series called Armada
For those who haven't seen it yet, LinuxDevices published an article recently looking at the roadmap of Marvell's ARM line. The new line is called Armada and for Debian the Armada 510 (known as Dove) is of particular interest. To me, it essentially looks like a Kirkwood (the current platform) but with ARMv6/v7 (instead of ARMv5), integrated VGA and some other features. According to the article, the Armada 510 is aimed at "high-end smartbooks and tablets".
I'm happy to see the integration of VGA because I'd like to see more ARM based smartbooks, tablets and thin clients. At the same time, I'm worried that the VGA will be some proprietary chip without proper open source drivers and I'm surprised that the new chip only offers 1.2 GHz. After all, the current Kirkwood chip clocks 1.2 GHz already, so I'd have expected an increase to 2.0 GHz for the next generation.
New devices from QNAP: TS-110, TS-210 and TS-410
When I visited Taiwan last week to talk about Debian at a conference on smartbooks, I used the opportunity to meet up with the folks from QNAP. It was really nice to meet many of my contacts at QNAP in person. We talked about their roadmap and existing products and I found out that they had just released a number of new devices that may be of interest to Debian users.
I really like the hardware from QNAP but one downside of their high quality is also that the devices are fairly expensive. Last week they introduced a number of lower cost alternatives: in addition to the TS-119 and TS-219, you now have the TS-110 and TS-210. They feature a 800 MHz CPU (instead of 1.2 GHz on the TS-119/TS-219), 256 MB (instead of 512 MB) and have a plastic case (as a result of which, the TS-110 now has a fan unlike the TS-119). Similarly, in addition to the TS-419 and TS-419U, you now have a TS-410 and TS-410U.
Since the TS-110/TS-210 and TS-119/TS-219 are compatible, the Debian installer will work out of the box.
New Debian on NSLU2 documentation available
I wrote several new guides about Debian on the Linksys NSLU2 this weekend. The new guides cover the following topics:
- Troubleshooting: common problems and their solutions
- Internals about the boot process of Debian on the NSLU2
- Modifying a NSLU2 firmware image
- Cloning a NSLU2
- Migration guide: how to move your Debian installation from your NSLU2 to a SheevaPlug.
You can find this documentation at my Debian on NSLU2 site.
Debian installer for SheevaPlug available
You can now use the Debian installer to install Debian on the Marvell SheevaPlug. This routine will install Debian testing (squeeze), which is currently under development. The installer itself is also under development, so there may be problems from time to time but it should generally work pretty well. The Debian installer doesn't support installations to flash, but you can use it to install to a USB stick or disk as well as to an SD card. Here are installation instructions.
Upgrading SheevaPlug's U-Boot to version 3.4.19
Marvell made a new version of U-Boot for the SheevaPlug available last month. This version, 3.4.19, integrates SD card support and improves support for FAT32 USB partitions (although USB support in general is still a bit flaky). This page describes how to install this new version of U-Boot on your SheevaPlug.
First of all, download the SheevaPlug U-Boot 3.4.19. Unpack the zip file and copy the file u-boot-3.4.19/u-boot-rd88f6281Sheevaplug_400db_nand.bin to your TFTP server. I suggest you call the file u-boot.bin.
Then start your SheevaPlug and type the following:
setenv serverip 192.168.1.2 # IP of your TFTP server setenv ipaddr 192.168.1.200 bubt u-boot.bin
The upgrade process will ask whether you want to change the environment:
**Warning**
If U-Boot Endiannes is going to change (LE->BE or BE->LE),
Then Env parameters should be overridden..
Override Env parameters? (y/n) n
Make sure to answer "n" here.
We also need to make a small change to the u-boot configuration because this version of u-boot no longer accepts the console parameter we have been using. Thanks to Tom Rinehart for pointing this out. Instead of console, we'll therefore add a new bootargs_console and update bootcmd to make use of it:
setenv bootargs_console console=ttyS0,115200 printenv bootcmd
You'll see that bootcmd contains $(console). You have to set a new bootcmd and change the console parameter to $(bootargs_console). In my case, I'd type:
setenv bootcmd 'setenv bootargs $(bootargs_console); run bootcmd_usb; bootm 0x400000 0x0800000; reset'
Make sure you don't forget the quotes!
Finally, save the environment and restart your machine:
saveenv reset
Debian installer for QNAP TS-119, TS-219 and TS-219P available
The Debian installer for QNAP TS-119, TS-219 and TS-219P devices (based on Marvell's 1.2 GHz Kirkwood chip) is now available, together with installation instructions. The installer is still under development and it will install Debian testing, which is also under development. However, I think it's working pretty well. If you try the installer, please send me feedback.
Fan control on the D-Link DNS-323
The kernel in Debian doesn't have support for the fan control chip on the D-Link DNS-323. Since some people said that their device runs quite hot after installing Debian, I've prepared a 2.6.29 based kernel that includes the fan driver.
If you want to install this kernel, edit the file /etc/apt/sources.list and add the following line:
deb http://people.debian.org/~tbm/orion lenny main
Now you can install the new kernel:
apt-get update apt-get install linux-image-orion5x
After a reboot, you can control the fan this way:
echo 0 > /sys/class/hwmon/hwmon?/device/pwm1 # turn it off echo 255 > /sys/class/hwmon/hwmon?/device/pwm1 # turn it to full speed
Any values between 0 and 255 will work.
According to Anselmo Luginbuhl, you should also be able to use the lm-sensors package to automatically control the fan:
"Execute pwmconfig, it will make some tests and generate the fancontrol config file. At the end of the procedure it will ask you to "Select fan output to configure, or other action:", just be sure to pass through choice "1" or it would not fill in the configuration file, save the configuration and start the daemon /etc/init.d/fancontrol.
Probably the only thing that needs some attention to get an optimal result is to choose the right parameters for max and min temperature at which the fan should start or stop to minimize the °C and the noise."
Finally, this kernel also includes some performance patches from Marvell, so you might see some performance increases too.
Corporate participation in open source communities
Someone recently asked me a few question about corporate participation in open source communities and I thought I'd share my thoughts on this topic here.
Are there differences between an open source project done for a corporation and one done for personal reasons?
There are many different ways to run an open source project, led by a corporation or by someone else. Some projects that are run by corporations have few outside contributors. This is often the case with projects that require copyright assignment (i.e. contributors have to assign their copyright to the corporation). These projects may not gain all the benefits of a true open source community, such as outside contributions or high levels of peer review. However, they may still be very successful projects and may have high levels of quality.
Projects done by a corporation may have better planning and may have more resources than other projects. When a corporation, especially a large one, starts or becomes involves in a project it can also give credibility to the project and attract a lot of interest to the project. This means that projects done by corporations may have a bigger impact and might also be more visible in terms of publicity.
How do corporations successfully utilize an open source community?
Corporations can benefit from an open source community in many ways. For example, they can often find people who will review their code or make code contributions. If people become excited about what the corporation does, they might also spread the word and create viral marketing for the corporation. Establishing a community around one's project is often also a good way to identify people to hire since you already have experience working with them and know their capabilities.
How do open source communities successfully utilize their corporate relationships?
Corporations can make several unique contributions. For example, large corporations can use their name to attract attention to a project and give it credibility. Furthermore, corporations have some capabilities that personal contributors often don't have access. They may have special testing equipment (such as servers with thousands of CPUs or hard drives) or access to a testing lab where a professional usability test can be done. Finally, corporations can sponsor developer conferences, which are typically very effective means for the community to come together and work on activities together.
It is important for projects to remember that corporations are not charities and that they will invest in an open source project for a reason. Therefore, they have to ensure that the corporation will get tangible outcomes from their involvement or sponsorship, otherwise they may not stay involved in the long run.
What are the risks for a corporation when working with an open source community?
One risk is that the code (or other form of contribution) is not accepted. However, this is a risk any contributor to a project faces. Before making any sort of contribution, it is therefore important to become familiar with the project and its culture. Every project has their own "do's" and "don'ts" that have to be followed.
Another risk is that a corporation will invest in a community project that later on is abandoned by the community. However, in this case, the corporation could take the lead and continue to maintain the project.
What are the risks for an open source community when working with a corporation?
One potential risk is that the corporation will assert too much control over the project. It's important for projects to ensure that the community as a whole has influence over the direction of a project rather than one particular player.
Are certain certifications needed in order for someone to participate in open source projects for a corporation?
Certifications are not needed to get involved in or start a project. However, it is important to become familiar with the open source community and the project one wants to contribute to. A good first step is to read the book Producing Open Source Software by Karl Fogel which is available online. As a next step, the community in which someone wants to get involved in should be studied, for example by reading the mailing list archives. This will help to become familiar with the culture of a project as well as the mechanisms to contribute to the project.
How do open source communities communicate and collaborate with corporations?
In the best case, employees from corporations would interact in the project like any other contributor. That is, they should use the existing communication channels, such as mailing lists, IRC or developer gatherings. Many companies are good at working "with the community" but the ideal scenario is for a company to be part of the community and to work "in the community", just like other contributors. This is the most effective way for them to make changes to the code and project.
Of course, not every corporation will get involved in a project directly. That's why it makes sense for projects to collaborate with corporations in other ways. For example, projects can talk directly to companies to get samples of their hardware in order to add support for them in their software. Projects can also work directly with corporations to find out how their project can better meet the needs of enterprise users.
Initial thoughts on the new QNAP TS-219P
QNAP has announced a new device earlier this month, the QNAP TS-219P. The
specs are very similar to the TS-219 (1.2 GHz Kirkwood CPU, 512 MB RAM and
16 MB flash) but the device is smaller and has some other advantages.
What I like about the new TS-219P:
- The device is more compact and looks really nice.
- The fan is less noisy than the one in the TS-209 and TS-219.
- There are two eSATA ports.
What I don't like so much:
- The device only has one Ethernet. I'd really like to see two Ethernet ports.
- The serial connector cannot easily be accessed through the SATA slot, something that was possible with the TS-209.
Since the TS-219 and TS-219P are quite similar, Debian and the installer will work without any problems. I updated my QNAP page to document the QNAP TS-219P, including some pictures of the new device.
SheevaPlug lenny tar ball and SD cards
I updated my SheevaPlug installation instructions today to document how to boot from an SD card. The u-boot boot loader shipped with the SheevaPlug doesn't have SD/MMC card support, but PlugComputer forum user kwonsk created one that does (and which works pretty well, except for not working with some SD cards).
First successful installation on QNAP TS-219
I performed the first successful installation of Debian on the QNAP TS-219 using the Debian installer today. Everything is in place now but the Linux 2.6.29 kernel has to move to testing so installations will work.
Automatic power on QNAP Turbo Station devices
All ARM based QNAP machines can turn on automatically when power is applied if the device was not powered down correctly. This is helpful when your power goes down. Follow the instructions below if you want to turn automatic power on using Debian on a QNAP TS-109, TS-119, TS-209, TS-219, TS-409 or TS-409U.
Edit the file /etc/apt/sources.list and add the following line:
deb http://people.debian.org/~tbm/orion lenny main
Now install a new version of qcontrol:
apt-get update apt-get install qcontrol
Finally, turn the automatic power feature on:
qcontrol -d & qcontrol autopower on kill %1 rm /var/run/qcontrol.sock
Update on QNAP TS-119/TS-219 kernel support
I mentioned a few weeks ago that initial kernel support for the QNAP TS-119 and TS-219 Turbo NAS got accepted for 2.6.30 but that there were some issues left. Here's an update:
- SATA: Kirkwood uses a different SATA PHY and the Orion settings weren't quite right, leading to the timeouts I saw. As it turns out, Saeed Bishara from Marvell had a patch for this already and it will be in 2.6.30-rc6.
- Flash: writing to flash is now possible thanks to a patch from Peter Horton that has been merged into 2.6.30-rc5.
- Parsing the MAC address: Thomas Reitmayr created a patch to parse the MAC address from flash but the kernel people thought this should be done in userspace. I haven't looked into this yet... maybe the best solution is to document that the MAC address will change.
- SATA lights: Thomas Reitmayr created a patch to fix this issue.
The SATA and flash fixes are already in our 2.6.29 kernel.
Debian 5.0 (lenny) tar ball for QNAP TS-119 and TS-219
Since the installer isn't quite ready yet, I created a tar ball containing Debian lenny for the QNAP TS-119 and TS-219 along with some installation instructions. The QNAP firmware is used to partition the hard drive and unpack the tar ball, so Debian can be installed without having to put the hard drive into another machine.
Debian 5.0 (lenny) tar ball for the SheevaPlug
It took me a while because of travel and other projects, but I finally released a tar ball containing Debian lenny for the SheevaPlug along with some installation instructions. It should be really easy to install Debian this way, but I'll also make sure that SheevaPlug support will be in the Debian installer for the next release of Debian. For now, check out the tar ball I prepared!
Adventures with the Qstarz BT-Q1000X GPS logger and receiver
Spring has arrived in Europe and I'm looking forward to spending more
time outdoors. While I was pondering some plans, I thought it would be
nice to have a GPS. I've never used a GPS before but it seems it will
allow me to combine outdoors activities such as walking and hiking with
geek things. In particular, I'm interested in tracking where I'm going
(what route, what distance, what speed, etc), geotagging photos and
possibly contributing to OpenStreetMap. Since last week, I have a
Qstarz BT-Q1000X (Travel Recorder X), a GPS logger and receiver, and
I've been playing around with it a bit. This device uses the new MTK II
chip, which gives good accuracy and long battery time.
I've created a new gps category in which I'll share my experience using a GPS in general and specifically the Qstarz BT-Q1000X. I've also created a Qstarz BT-Q1000X and Debian page to describe how to use this GPS device on Linux and I'll add more information to the page as I try out different applications.
OSI signs an MOU with the Korea Software Copyright Committee
I visited Seoul last week to represent the Open Source Initiative (OSI) at an open source conference and to sign a Memorandum of Understanding (MOU) with the Korea Software Copyright Committee (SOCOP). SOCOP organized a conference with the title "Free Open Source Software License Insight Conference", and the international speakers included Brett Smith of the FSF, Brendan Scott of Open Source Law, Michael Coté of RedMonk and myself. From the questions we received, it seems that there is a lot of interest in legal questions related to open source. There were a number of folks from hardware companies that asked specific questions what they could do and couldn't do (e.g. related to including sources for GPL code and properly giving credit for BSD code).
I think the conference was a great success. The talks were of high value and we got good questions. The audience was quite mixed, ranging from managers to developers. Even though they had simultaneous translation of the talks, the majority of the people listened in English... this gives me hope that some of these folks will end up becoming involved in the international open source community.
SOCOP is working on a number of activities related to open source,
including:
- An information portal called OLIS.
- The translation of all OSI approved licenses to Korean.
- The verification of open source code to identify which code uses which license.
- More promotional activities, including workshops and conferences.
The day after the conference, I went to the SOCOP office to sign the MOU between SOCOP and OSI with Mr Yung Bo Koo, the chairman of SOCOP. The MOU says that we'll share knowledge and expertise, help with promotional activities and support each other's activities in other ways. I was delighted to sign the MOU between SOCOP and OSI, and I look forward to a fruitful cooperation between our organizations in the future. It's great to see so much interest and so many activities around open source in the Republic of Korea.
Test kernel for Orion with performance patches available
Marvell posted some performance patches for ARM that speed up the copy_to_user and clear_user functions which are used to copy data around. I see quite a bit of performance increase with these patches on Orion, and I've prepared a test kernel so you can try them out too. This kernel should be treated as experimental, but I'm looking for testers with Orion-based hardware (e.g. QNAP TS-109, TS-209, and TS-409) who are interested in giving it a go.
If your system has a rescue mode (the QNAP devices and the HP mv2120 do), I suggest you first make a backup of your flash. On the QNAP devices, you can do this with:
cat /dev/mtdblock1 /dev/mtdblock2 /dev/mtdblock3 > qnapimg.bin
Then edit the file /etc/apt/sources.list and add the following line:
deb http://people.debian.org/~tbm/orion lenny main
Load the key used to sign this repository so that apt can verify it:
gpg --keyserver pgp.earth.li --recv-keys 68FD549F gpg --export -a 68FD549F | apt-key add -
Now you can install the new kernel:
apt-get update apt-get install linux-image-2.6-orion5x flash-kernel
After the installation of the kernel, reboot and do some tests: Do you see any speedup? Do you see any problems?
Kernel support for QNAP TS-119 and TS-219 Turbo NAS in 2.6.30
My patch for initial kernel support for the QNAP TS-119 and TS-219 Turbo NAS got accepted and will be in 2.6.30. I can run Debian on a USB disk without any problems but there are some issues left (some severe, some cosmetic):
- SATA: there are long timeouts when initializing the disk. In most cases, the disk is eventually recognized but it can take quite some time. I've no idea why those timeouts happen.
- Flash: I can read from flash just fine but writing doesn't work.
- Parsing the MAC address: even though a MAC address is set in u-boot, the QNAP firmware stores the real MAC address in flash (similar to the TS-109 and TS-209). The TS-109/TS-209 code to read the MAC address doesn't work because the flash on the TS-219 is connected in a different way (SPI).
- SATA lights: the activity light doesn't work.
Unfortunately, I've no idea how to resolve these issues. However, the QNAP TS-119 and TS-219 have started shipping so hopefully someone else will investigate these issues.