Posted by: claudio in eeepc, en, linux
There is a number of updates in the Eeepc fastinit reimplementation that you might be interested in:
- It works, as confirmed by Eeepc users that tested the program.
- Metalshark fixed a bug in the reimplementation that prevented it to load the shutdown splash screen.
- Kept finit.c as an accurate reimplementation of the original Eeepc fastinit, and spawned finit-mod.c as a modified/optimized version intended to be a drop-in replacement for fastinit. A third version, finit-alt.c, contains changes to allow alternative Linux distributions to boot in the Eeepc (currently supports Mandriva 2008).
Read on for details and results of booting Mandriva 2008 on a regular (non-Eeepc) laptop using finit-alt.
Read the rest of this entry »
53 Comments »
Last week I came across a no-brand, very cheap-looking USB webcam with id 0ac8:0323 and recognized by Linux as a “Z-Star Microelectronics Corp. Luxya WC-1200 USB 2.0 Webcam”, which seems to be misleading in this case.

From the USB ID it is supposed to contain a Vimicro VC0323 controller, and it was recognized as so by the GSPCA driver. This camera, however, seems to have a number of quirks that cause the driver to decode the image incorrectly: the image is fed as YUV instead of Jpeg (like the VC0321), image start offset is different from what the driver expects for VC0323 or VC0321, and finally the sensor appears to be mounted upside-down inside the camera. Read on for fix details and GSPCA patches.
Read the rest of this entry »
9 Comments »
Posted by: claudio in alsa, en, linux
For those interested in Linux HDA sound troubleshooting, Eduardo Habkost’s Codecgraph tool finally gains a tarball and page.
Codecgraph is a tool to generate a graph based on the ALSA description of a High Definition Audio codec. The generated graph depicts the HDA codec layout and node connections, helping driver troubleshooting and maintenance. Codecgraph’s parser reads the codec description from /proc/asound/card*/codec#0 and parsed data is sent to Graphviz for actual graph generation.
I mentioned codecgraph before as the tool used to fix 5.1 sound in six and threestack ALC888-based HP systems, and recently it was used to fix 5.1/7.1 sound in the Dell Inspiron 530.
1 Comment »
On New Year’s Eve a loose heatsink fried my old Asus motherboard northbridge, so I replaced the entire system with a nice and inexpensive Dell Inspiron 530. It’s a G33/ICH9-based system, which runs almost out-of-the box with Linux 2.6.23, except for the ethernet controller (you’ll need an upgraded e1000 driver from Intel) and HDA sound (multichannel and headphone detection not working). Use the following ALSA patch to fix both sound problems:
It adds the ALC888 6stack-dell mode for the Inspiron 530 and hopefully for other Dell systems based on the ALC888. The patch has already been submited upstream and should show up in the next kernel version. The patch has also been added to the current Mandriva Cooker kernel.
4 Comments »
Slow booting plagues most Linux distributions today, and while this is not a such big issue for systems that are booted once a year, it becomes an annoyance in laptops or other computers you initialize every day. Different solutions for this problem have been proposed, but booting of a typical Linux system today still takes too much time. It has been said that the Asus Eeepc boots remarkably faster than regular Linux distributions, thanks to its “fastinit” system initialization program. A quick analysis of its workings shows what it essentally does, and it’s quite obvious: start the user interface as fast as possible, and initialize the rest later. A more detailed analysis allowed us to rewrite it, and even find a couple of bugs in the original code.
Read the rest of this entry »
7 Comments »
The following patch allows the Syntek 174f:5212 camera found in some HP laptops (including the Compaq Presario C700 series) to be used in Linux with the linux-uvc driver. The image quality is fairly good, with decent colors, white balance and frame rate in luvcview. The patch is a bit intrusive since it requires quirk testing at the start of the isochronous payload frame decoding to completely bypass synchronization, but it seems to work very well. This patch is against revision 158 of the linux-uvc subversion repository.
Syntek camera framegrabs: 1, 2.
Update: Posted Herton Krzesinski’s fixed version. Posted Laurent Pinchart’s final version.
2 Comments »

XMP goes full circle: earlier this week I merged a patch from Lorence Lombardo that allows the player to work in AHI-compatible Amiga systems. Of course it’s not the most efficient way to play Amiga formats on an Amiga, but a curious development nonetheless. I was surprised to see how easy it is to configure the audio output in this port, even compared to the simple descriptor/ioctl approach used in most Unixes:
int fd;
if ((fd = open("AUDIO:B/16/F44100/C/2/BUFFER/358000, O_WRONLY)) < 0)
return -1;
write(fd, data, len);
close(fd);
I also spent some time preparing a Windows port built with MinGW. If the Amiga API above was the simplest to implement, the WinMM API is in the opposite extreme (words like “clumsy” and “design disaster” come quickly to mind). The following code does the exacly same thing using the WinMM API. Don’t read if you have a weak stomach.
Read the rest of this entry »
1 Comment »

Inspired by the UNIX History Graphing Project, I started to chart the relationship between different families of trackers. The result is the Tracker History Graphing Project — currently it only contains the Soundtracker and MED lineages and a few MS-DOS trackers, but to plan is to extend it to become a comprehensive map of the majority of known trackers.
It is interesting to note that many of the most famous Amiga trackers share the same codebase which was placed in public domain by the early authors. Building upon existing and testing codebase created generations of trackers through true evolution. In the PC side, on the other hand, each author was very protective regarding his code and every new tracker author reinvented the wheel creating new quirk-infested replayer routines.
Also note from the excerpt above that, contrary to popular belief that it stands from “Mahoney and Kaktus”, the “M.K.” magic ID in four-channel MODs was actually added to Soundtracker 2.3 by Michael Kleps. According to Soundtracker 2.2: “now the d.o.c news ! 1. the next soundtracker is finished ( 31 instruments ) , but only for internal use !!”. The Soundtracker History 1.05 says “12.1988 - Amiga - Soundtracker v2.2 - Unknown [Michael Kleps] Of DOC now with 31 imstruments (from now we could find M.K. inside)” but this is not the case, at least in my copy of ST 2.2.
3 Comments »
Following the port of xmp to QNX6 I wiped out Neutrino from the test machine and installed BeOS Max Edition. A new BeOS sound driver was written, based on the OSX CoreAudio driver and documentation found in the Internet. Some tweaking was required to build the driver since the SoundPlayer API is in C++ and the rest of application is C.

Sound quality is fine, terminal settings work correctly and latency is decent. Should we try Plan9 now?
No Comments »
Following the development of the investigations on the recently reported Mesa problem triggered by Neverball and Metisse, Ademar reports that “the workaround is not effective with at least ATI 9250 video cards, where we now have a crash at a different place”. We set up a system with an ATI Radeon 9250, and, indeed, it still crashes:
Mesa: Mesa 7.0.1 DEBUG build Oct 1 2007 18:52:02
Mesa warning: couldn't open libtxc_dxtn.so, software DXTn compression/
decompression unavailable
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1218062640 (LWP 17221)]
_generic_read_RGBA_span_RGB565_MMX () at x86/read_rgba_span_x86.S:590
590 pushl MASK_565_H
A segfault in a push instruction sounds very odd. Read on to see what the differential diagnosis session with Boto and Salem lead us into. And unlike the previous patch, this one resulted in a real fix for a real problem:
Don’t read the patch if you want to find the bug yourself based on the scenario description below.
Read the rest of this entry »
No Comments »
|