<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Rambling Comments</title>
    <link rel="alternate" type="text/html" href="http://www.lenholgate.com/blog/" />
    <link rel="self" type="application/atom+xml" href="http://www.lenholgate.com/blog/atom.xml" />
    <id>tag:www.lenholgate.com,2010-12-10:/blog//12</id>
    <updated>2010-12-24T05:35:57Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 5.12</generator>

<entry>
    <title>How to reset the BIOS on a Vortex86-6071LV</title>
    <link rel="alternate" type="text/html" href="http://www.lenholgate.com/blog/2005/08/how-to-reset-the-bios-on-a-vortex86-6071lv.html" />
    <id>tag:www.socketframework.com,2005:/blog//12.540</id>

    <published>2005-08-10T10:57:13Z</published>
    <updated>2010-12-24T05:35:57Z</updated>

    <summary>The embedded Linux project came back to life this week when the manufacturer sent us some new video driver source for the SiS 550 on the Vortex86-6071LV. At present the new driver seems to work as well as the old...</summary>
    <author>
        <name>Len</name>
        
    </author>
    
        <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en-us" xml:base="http://www.lenholgate.com/blog/">
        <![CDATA[<p>The <a href="http://www.lenholgate.com/archives/000425.html">embedded Linux project</a> came back to life this week when the manufacturer sent us some new video driver source for the SiS 550 on the Vortex86-6071LV. At present the new driver seems to work as well as the old one; i.e. not very well at all... </p>

<p>Anyway, whilst adjusting the BIOS settings for the LCD panel I managed to set them to something which meant that neither the LCD panel nor the external VGA would display anything. Since both displays were dead during boot up and since I hadn't made a note of the key presses required to navigate the BIOS screens to undo the change I was in a bit of a bind; the device booted OK and I could continue to work on is using a telnet session.</p>

I called the manufacturer last night and they sent me <a href="http://www.lenholgate.com/zips/ICOP-6070-BIOS-Reset.pdf" onclick="_gaq.push(['_trackEvent', 'Downloads', 'ICOP-6070-BIOS-Reset.pdf']);">this pdf</a> today which shows the official way to reset the BIOS. It's a fairly obvious 'short out the battery' trick but as you need to do it with a bit of wire (there's no jumper provided) I'm uploading it here because it details where the bit of wire should be placed and how long for...]]>
        
    </content>
</entry>

<entry>
    <title>Another day learning the Linux way...</title>
    <link rel="alternate" type="text/html" href="http://www.lenholgate.com/blog/2005/07/another-day-learning-the-linux-way.html" />
    <id>tag:www.socketframework.com,2005:/blog//12.515</id>

    <published>2005-07-07T18:04:02Z</published>
    <updated>2010-12-24T04:41:40Z</updated>

    <summary>My client has decided that we should ignore the video driver problem and press on with the proof of concept using the external VGA screen as a display. So this week was spent learning about building software for a machine...</summary>
    <author>
        <name>Len</name>
        
    </author>
    
        <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en-us" xml:base="http://www.lenholgate.com/blog/">
        <![CDATA[My client has decided that we should ignore the <a href="http://www.lenholgate.com/archives/000428.html">video driver problem</a> and press on with the proof of concept using the external VGA screen as a display. So this week was spent learning about building software for a machine running a minimal Linux installation using libc 2.3.2 on a machine running a proper distro using libc something else...]]>
        <![CDATA[<p>The first job was to evaluate a couple of small web browsers, <a href="http://www.dillo.org">dillo</a> and <a href="http://www.pixil.org/">viewml</a>; their choice, not mine (not that I have any issues with the choice, I just didn't do any research around it). Our target device has 32mb of disk space so we can't afford stuff that takes up a lot of space.</p>

<p>Since neither option was 'easy' I bounced between the two as problems came up. The first thing I did was install a pre-built version of dillo on my dev box from an rpm. I figured I'd put the executable and the dynamic libs that it needed on the target machine and see what happened. That's when I was introduced to the wonderful world of 'different versions of libc'... This is much more like DLL hell than the <a href="http://www.lenholgate.com/archives/000429.html">rpm problem</a> I had last week ;) Due to the wonders of dynamic linking most things directly, or indirectly, rely on a dynamicly linked version of the c runtime library, libc. Of course, everything that a program links to that links with libc has to agree on the same version of libc... My pre-built version of dillo for Fedora Core 4 was linked with a different version of libc to the version that's available on the target machine... To follow the advice that James Antill gave in <a href="http://www.lenholgate.com/archives/000429.html">his comment to my earlier post</a> I'd need to find a prebuilt version of dillo for the correct version of libc...</p>

<p>I briefly considered going back to building my own version from source and decided against it, for now, instead I grabbed the Fedora Core 1 ISO images and installed them in a virtual machine. Fedora Core 1 uses the same version of libc that my target device does... Around this time I realised that even though my target device is x86 Linux and my development box is x86 Linux I'm still, effectively, cross-compiling - I expect there's a <a href="http://linux.bytesex.org/cross-compiler.html">better way to do this</a> than the way I'm currently doing it but we need a proof of concept by the end of the week and right now the 'hack around the problems' approach appears to be working well enough. </p>

<p>So, whilst I kicked off the Fedora 1 download I took a look at <a href="http://www.pixil.org">Pixil's</a> Viewml browser. This had the, by now, standard list of prerequisites to be downloaded and built. They all built fine and then the pixil stuff failed because it didn't like my version of GCC. Now, call me old fashioned but I like an OS where, if you need two versions of a compiler, you can just install one version in one place and one version in another. I've been working with Microsoft's Visual Studio like that since they brought out the .Net ones... I've had all versions of Visual Studio installed since they came out and I compile my code with most of them on a regular basis. It doesn't seem quite so simple on Linux... Of course I haven't investigated it fully but... Well, it failed the 'Nike' test... I couldn't 'just do it'...</p>

<p>The Pixil code didn't compile because my newer compiler was stricter than the one they'd used. I did some web searches and found their newsgroup. I found some patches but not a full set. They spoke of making a set of patches available; that was in October. They didn't seem to have done so. That was pretty much enough of a reason for me to drop that particular piece of software from our evaluation. File it in the 'not really as active as we'd like' bin.</p>

<p>So it was back to Dillo. By now I'd downloaded and installed Fedora 1, found that there wasn't an RPM for Fedora 1 (or if there was one, failed to find it), grabbed the source and built it. It ran fine on my VMWare box but of course that had all the requirements installed. Requirement number 0 was X11...</p>

<p>After a while I'd managed to work out that I needed a minimal X11 system on the device. I'd downloaded some prebuilt binaries and started to do a trial and error thing to copy just the bits I needed onto the device. More of my unix heritage was coming back; ldd is your friend, as is the log file that the X server creates... After a little while I realised that a couple of the crashes I was getting could possibly be due to the fact that the binaries were not necessarily built JUST for the i386... I wasn't 100% sure but I pulled down the sources, adjusted the compiler flags and made sure that I built a version with a makefile that knew I wanted it to work on a real 386. I then did the same for the browser itself.</p>

<p>Time passes...</p>

<p>By the end of yesterday I got to the point where I had the basic X background and cursor briefly appearing as xinit ran the browser on the device and then something horrible happened to the display and things died. At this point we pulled the plug until we either get new hardware with a supported display driver or the manufacturer of our existing hardware comes up with a working driver...</p>

<p>The whole experience was fun. I learned a lot. I remembered a lot and I realised why Linux and Open Source appeal to hackers. There are just <i>so many</i> problems to solve. And, after all, the fun is in solving the problems...</p>]]>
    </content>
</entry>

<entry>
    <title>So, where&apos;s the Unix version of CodeProject?</title>
    <link rel="alternate" type="text/html" href="http://www.lenholgate.com/blog/2005/06/so-wheres-the-unix-version-of-codeproject.html" />
    <id>tag:www.socketframework.com,2005:/blog//12.513</id>

    <published>2005-06-30T21:49:32Z</published>
    <updated>2010-12-24T04:41:00Z</updated>

    <summary>Software development is hard. Lots of details that are hard to get your head around and harder to simplify. CodeProject is a wonderful resource for Windows programmers where programmers try and make the complicated more simple for others; I view...</summary>
    <author>
        <name>Len</name>
        
    </author>
    
        <category term="Geek Speak" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en-us" xml:base="http://www.lenholgate.com/blog/">
        <![CDATA[Software development is hard. Lots of details that are hard to get your head around and harder to simplify. <a href="http://www.codeproject.com/">CodeProject</a> is a wonderful resource for Windows programmers where programmers try and make the complicated more simple for others; I view it as giving something back. If I've spent several weeks fighting to understand a problem and now I do it's nice to write up and article and post it, either here, or on CodeProject, so that others don't have to fight so hard. Where's the similar resource for Unix?]]>
        
    </content>
</entry>

<entry>
    <title>Showstopper?</title>
    <link rel="alternate" type="text/html" href="http://www.lenholgate.com/blog/2005/06/showstopper.html" />
    <id>tag:www.socketframework.com,2005:/blog//12.511</id>

    <published>2005-06-30T18:14:28Z</published>
    <updated>2010-12-24T04:40:26Z</updated>

    <summary>Today was &quot;get the Vortex86&apos;s SiS 550 graphics card working in graphics mode&quot; day. In summary, I didn&apos;t and it&apos;s because the LCD is a DSTN one and the current Linux SiS drivers don&apos;t support it yet......</summary>
    <author>
        <name>Len</name>
        
    </author>
    
        <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en-us" xml:base="http://www.lenholgate.com/blog/">
        <![CDATA[<p>Today was "get the Vortex86's SiS 550 graphics card working in graphics mode" day. </p>

In summary, I didn't and it's because the <a href="http://www.dmp.com.tw/tech/icop_cd/HTML/LCD.htm#VOX-064-TS">LCD </a>is a DSTN one and the current <a href="http://www.winischhofer.at/linuxsisvga.shtml">Linux SiS drivers</a> don't support it yet...]]>
        <![CDATA[<p>The first job of the day was to build a new 2.4.31 kernel with support for the network card in the VMWare machine. I needed this so that I could easilly test my new kernel and get to the point where I was confortable configuring LILO with multiple boot options before moving on to doing it for real on the Vortex86. This all went like a breeze and I then added support for the SiS framebuffer drivers and rebuilt the kernel and put it on the Vortex86.</p>

<p>I booted into the new kernel on the Vortex86 and it recognised the graphics card. Unfortunately it didn't display correctly in graphics mode.</p>

<p>After much reading of Dr. Thomas Winischhofer's pages on the SiS drivers and much experimentation I'd managed to get graphics to display correctly on an external monitor but had no luck with the LCD panel. I'd fired off some questions to our board supplier and the manufacturer earlier in the day but had got not reply so I figured <a href="http://www.catb.org/~esr/faqs/smart-questions.html">I'd done enough</a> to be able to ask Dr. Winischhofer some questions about my problem.</p>

<p>Thomas responded pretty quickly and confirmed what I'd begun to fear. It was the graphics card and LCD panel combo that was the problem and at present there's no support for this combo in the current Linux driver sources. Thomas is prepared to do the work if my client is prepared to pay him so I guess I'll have to wait and see what happens.</p>

<p>My next posting about the Vortex86 could be related to installing Windows CE or XP embedded on it as the LCD is supposed to be supported under those OS's...</p>]]>
    </content>
</entry>

<entry>
    <title>Travelling at the speed of a floppy drive</title>
    <link rel="alternate" type="text/html" href="http://www.lenholgate.com/blog/2005/06/travelling-at-the-speed-of-a-floppy-drive.html" />
    <id>tag:www.socketframework.com,2005:/blog//12.510</id>

    <published>2005-06-29T20:22:06Z</published>
    <updated>2010-12-24T04:39:59Z</updated>

    <summary>This afternoon has been &quot;one of those&quot; afternoons. It started innocently enough when I checked my mail and my cables had arrived. I plugged a floppy drive into the Vortex86 and checked that I could boot off of it into...</summary>
    <author>
        <name>Len</name>
        
    </author>
    
        <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en-us" xml:base="http://www.lenholgate.com/blog/">
        <![CDATA[This afternoon has been "one of those" afternoons. It started innocently enough when I checked my mail and my cables had arrived. I plugged a floppy drive into the Vortex86 and checked that I could boot off of it into DOS. All was well, if you ignore the fact that the only way I could get a) a floppy drive and b) a power supply to power it was to take the cover off of a 1U server box that I had laying around and use the PSU and floppy drive from that. What makes that even worse is the fact that because there's obviously a soft power switch on the motherboard somewhere I couldn't even disconnect the PSU from the motherboard in the 1U, I had to have it running with the cover open and all the fans screaming at me just so that I could use the PSU and the floppy - I really should get one of those nice pluggable PSUs that they rave about on <a href="http://www.hackaday.com/">HackADay</a> every now and then.]]>
        <![CDATA[<p>Next on my list after booting from a floppy was to get to the point where I could restore the new R53 ghost image into the Vortex86. This took longer than expected when I realised that my copies of Ghost 2001 and Ghost 2002 would not work with the image... The ghost explorer tool with 2002 allowed me to explore the image but Ghost itself wouldnt work with it. So I bought a copy of Ghost 9 (looks like the year as the version fad is passing) which appears to be a completely different kind of program and which doesn't seem to support Linux images anymore, but which comes with Ghost 2003 which does (go figure)...  But... Ghost 2003 refused to install on my main dev box, something to do with a windows installer mismatch that appears to be due to something from XP SP2, perhaps... Virtual machines to the rescue, but this time Virtual PC; I've been using Virtual PC for a while (it comes with my MSDN Universal sub) and I had a Win2k image that I installed Ghost 2003 onto... From there I made a boot disk, or two, or three, until I managed to get something that worked with the network card on the Vortex86 (it's a Realtec 8139) and also allowed me to connect to somewhere or something that I could put the ghost image on. There's a new option in Ghost 2003 that makes you a network boot disk that connects to a windows share (which saves you having to know all the "net use" stuff and saves you having to search around the web for someone who was clever enough to fit everything you need on a single floppy), except of course it wouldnt connect to my dev box as that doesn't have legacy transports enabled and so doesn't play nicely with non XP boxes - error 53, the network is busy (only it's not busy, it's just not bothering to listen to non XP boxes). I eventually worked out what was going on and connected to a share on my Win2k domain controller instead and all was well...</p>

<p>So now I was in a position to overwrite the hard disk on the Vortex86 with the new ghost image, only that's not how I work ;) Since trashing the disk on the Vortex86 would delay the project by a while I decided to test load the image onto a VMWare machine first... Please wait whilst more boot disks are made and tested...</p>

<p>By this point I'm fairly fed up with things that boot from floppy disks. It takes SO long. During one of the reboots I googled around and found <a href="http://www.winimage.com/download.htm">this</a>, WinImage, a program that can create an image file from a floppy (and much more) so that VMWare can boot from a nice fast floppy image rather than a real floppy drive... So I boot the VMWare box from the floppy image, connect to my domain controller, install the ghost image and reboot. It crashes because the kernel doesn't know about SCSI disks and the VMWare default was to make its hard disk a SCSI one... One new VMWare box later and I'm booting into X-Linux R53 under VMWare... Whilst this isn't going to help me a great deal as I need to get the new kernel working with real hardware that I can't emulate in VMWare at least it will speed up the initial games with LILO and booting into the new kernel, etc.</p>

<p>Once I was comfortable that I had all the tools in place I booted the Vortex86 and ghosted the new image onto it, rebooted and everything worked fine.</p>]]>
    </content>
</entry>

<entry>
    <title>2.4.31 Kernel build is go...</title>
    <link rel="alternate" type="text/html" href="http://www.lenholgate.com/blog/2005/06/2431-kernel-build-is-go.html" />
    <id>tag:www.socketframework.com,2005:/blog//12.509</id>

    <published>2005-06-29T10:50:53Z</published>
    <updated>2010-12-24T04:39:40Z</updated>

    <summary>As I mentioned yesterday I&apos;m currently playing around with Linux on an embedded PC. Stage 0: was to get a build environmet set up. That&apos;s complete now and I have a build of the 2.4.31 kernel running whilst I type...</summary>
    <author>
        <name>Len</name>
        
    </author>
    
        <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en-us" xml:base="http://www.lenholgate.com/blog/">
        <![CDATA[<p>As I mentioned <a href="http://www.lenholgate.com/archives/000425.html">yesterday</a> I'm currently playing around with Linux on an embedded PC.</p>

Stage 0: was to get a build environmet set up. That's complete now and I have a build of the 2.4.31 kernel running whilst I type this.]]>
        <![CDATA[<p>Getting a build machine set up was pretty painless. I downloaded the evaluation of <a href="http://www.vmware.com/products/desktop/ws_features.html">VMWare Workstation 5</a> and had hoped to grab a <a href="http://www.vmware.com/vcommunity/technology/vm/">pre-built image</a> from Red Hat but the only images that they have available are <a href="http://www.redhat.com/solutions/partners/rhrp/vmware/">enterprise server builds</a> that were around 900->1000mb downloads with no details about what had been installed on them. Instead I went for Fedora Core 4, 4 650mb iso's later I'm thinking that I should upgrade my broadband ...</p>

<p>Fedora installed nicely onto the virtual machine and so far I'm quite impressed. I especially like the way you can run as a normal user and whenever you need to do something that requires root privs it simpy prompts you for the root password and then displays a little warning icon to remind you of the extra power that you have... Why doesn't windows do that ? ;)</p>

<p>Next on the list was grabbing the appropriate kernel sources. The version of X-Linux that's actually on the PC at present is <a href="http://www.dmp.com.tw/tech/os-xlinux/r52.htm">this one (r52)</a> which is based on the 2.4.28 kernel. However <a href="http://www.dmp.com.tw/tech/os-xlinux/">r53</a> has just come out and I'll be upgrading the device to that as soon as I get my floppy cable... R53 is based on 2.4.31 and to enable graphics support I need to rebuild the kernel after setting the appropriate config options. I've decided that the R52 -> R53 upgrade is my first priority as the manufacturer is bound to tell me to upgrade as soon as I have any problems, so I might as well do it now. What's more R53 uses Lilo as the boot loader and I'm more familar with that then the SYSLINUX loader used in R52, I'll need to have the PC boot into various kernel configs so I'd prefer to be using a loader that I'm used to...</p>

<p>Tech support from the manufacturer implies that the graphics support for the correct chipset (SiS 550)is available as standard in the 2.6.3 kernel and they're a bit vague about support in 2.4.28 and 2.4.31. So I grabbed all three versions of the kernel source from <a href="http://www.kernel.org/">here</a> with the the intention of first trying 2.4.31.</p>

<p>The manufacturer supplies the kernel .config file, so after finding <a href="http://www.digitalhermit.com/linux/Kernel-Build-HOWTO.html">this page</a>, I did what it said and kicked off a build with the same settings that were used for R53.</p>

<p>Of course the build failed with a compile error that moaned about an incomplete array... I checked the source and found an array that used NR_CPUS... A quick google for NR_CPUS 2.4.31 took me <a href="http://lkml.org/lkml/2005/6/12/59">here</a> and I downloaded the patches for 2.4.31 and gcc 4.x that were listed <a href="http://lkml.org/lkml/2005/6/12/57">here</a>. </p>

<p>The build has just completed, so I guess it must be time to check my mail and see if the floppy drive cable has arrived...</p>]]>
    </content>
</entry>

<entry>
    <title>And now for something completely different</title>
    <link rel="alternate" type="text/html" href="http://www.lenholgate.com/blog/2005/06/and-now-for-something-completely-different.html" />
    <id>tag:www.socketframework.com,2005:/blog//12.508</id>

    <published>2005-06-28T22:10:26Z</published>
    <updated>2010-12-24T04:39:12Z</updated>

    <summary>One of my clients has asked me to do some investigative work for them in relation to Linux running on a Vortex86-6071LV (a PC/104 format PC which is 386 PC on a board that&apos;s around 6&quot; x 4&quot; x 1/2&quot;)....</summary>
    <author>
        <name>Len</name>
        
    </author>
    
        <category term="Geek Speak" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="Linux" scheme="http://www.sixapart.com/ns/types#category" />
    
    
    <content type="html" xml:lang="en-us" xml:base="http://www.lenholgate.com/blog/">
        <![CDATA[<p>One of my clients has asked me to do some investigative work for them in relation to Linux running on a <a href="http://www.dmp.com.tw/tech/icop_cd/HTML/PC104.htm#6071">Vortex86-6071LV</a> (a PC/104 format PC which is 386 PC on a board that's around 6" x 4" x 1/2"). </p>

Should be fun.]]>
        <![CDATA[<p>The machine in question is actually a <a href="http://www.dmp.com.tw/tech/icop_cd/HTML/LCD.htm#VOX-064-TS">VOX-064-TS</a> thin frame PC with a touch screen which is pretty cool. The 'disk' is a 32mb solid state device and it's kinda weird to see this tiny PC boot up via the usual AMI BIOS screens and then into Linux in around 10 seconds from this super fast disk (I want solid state disks for my dev box! to hell with the expense ;) )</p>

<p>The PC has all the usual connections but the plugs are all 'mini-me' versions of what you'd expect. So the first thing I did this morning was order some adapters so that I can stick a floppy drive on it and connect an external USB hard disk. Right now I'm ever so slightly nervous of screwing up the disk image and having no way of rebuilding the box...</p>

<p>The current piece of work has three main stages; first I need to get the onboard graphics card working properly in graphics mode. Then I need to get a web browser on board and finally I need to get the touch screen working. Should be fun. Today was mostly spent re-awakening my unix skills and downloading a Linux distro and tool chain so that I can rebuild the kernel if/when I need to.</p>]]>
    </content>
</entry>

</feed>



