Re: Compiling an embedded driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


Roger,

On page #4 of the board's manual you will find a somewhat brief and cryptic
reference to building additional software tools and modules using the
CD-ROM's included GNU Tool chain. Since I don't have this CD I can't
determine whether this tool chain is set up to run natively (directly on the
board) or in hosted mode (cross compiling).

My bet is your CD has a cross compiled tool set (i386) and a few native
(ARM) software modules. This means you'll need either a PC with a Linux
distro installed (Ubuntu or Debian) or to install and run the tools using
either  MingW or Cygwin under your MS Window OS (hopefully XP, but not Vista
).

Building new software or changing what you have on the CD in a hosted PC
using a cross compile tool chain is the best option. This approach will keep
your board filesystem clean and your host has the memory and disk space to
hold the tools and build the software. There are instructions in the manual
that again cryptically explain how to add new software from the CD to the
board's filesystem, I would imagine the same approach (FTP) will work for
software you build on the Linux host you set up.

While there is several references in the manual about building addtional
software and then updating the image in your Flash, I strongly advise you to
do so with care. As a first step, explore the CD and make a list of the
filenames you find in the tool set. You can then go over to the GNU website
(www.gnu.org) and under the software link you'll find a list of progams
names like the ones in your CD tool list with descriptions and links to
manuals.

Again, based only on the manual, it appears that you have the kernel and a
shell with a few GNU tools installed in the board's filesystem image. I did
a bit more research for you and found the following list of what might be
available to you on the CD in either source or modules.


   Utilities
   - *bash*: shell command
   - *tinylogin*: login and user manager utility
   - *telnet*: Telnet client program
   - *busybox*: Linux utility collection
   - *ftp*: FTP client programDaemons
   - *pppd*: Dial in/out over serial port and PPPoE
   - *snmpd*: SNMP agent program
   - *telnetd*: Telnet server program
   - *inetd*: TCP server program
   - *ftpd*: FTP server program
   - *boa*: Web server program
   - *sshd*: secured shell server
   - *iptables*: Firewall service manager
   - *armd*: Artila manager daemonTool Chain for Linux
   - *GCC*: C/C++ PC cross compiler
   - *GLIBC*: POSIX Library

The best insight I gleened from this list was the 'busybox' Linux utility
collection. This is a widely available and well documented set of GNU tools
for embedded boards like this one. I'll wager that you'll find this is the
core of the tools available to you from the board's shell prompt.

If you are going to rebuild your kernel and the modules, then I suggest you
first become a bit more familar with the tools and get your PC
cross-compiling host working. There are several excellent monographs on the
web about building a cross compiled kernel and the modules drivers but they
often do not give many of the necessary specifics relevant to targeting
specific board's. You'll have to spend some time doing a few test builds of
the utility software that the board already runs as a first step and to
locate the build scripts that you'll need to run your builds from.

The e-mail address for the board's support person I've come across was
support@xxxxxxxxxxx



On Sun, Mar 8, 2009 at 1:50 AM, Roger <roger@xxxxxxxxxx> wrote:

> Hi
> Thank you all again for your helpful information.
>
> My studies of the driver and your info has convinced me
> that I don't have to do anything with the a91_serial.c driver.
> Instead I should modify the module that lies above and
> where the character replacement takes place. Perhaps add
> a special ioctl to disable this modifying of the input
> data. I will you use the serial port to
> transfer binary data so any tampering with data is not
> acceptable.
> I found an ioctl TIOCGICOUNT that reads the error counters.
> But I do not know how to reset them yet.
> But there again it will be much smarter and improve speed
> to just change the module where this takes place.
> I don't know which module that is but I will search for it.
> And then we are back to the original question; How to
> compile the driver.
>
> About support:
>
> As far as I can see the www.artila.com website does not have
> any support-mail or forum.
>
> Prince wrote:
>   ... it might be easier for your first foray into
>    embedded Linux development to follow closely the path
>   laid out pretty clearly by your board's manufacturer.
>
> I haven't seen that. Perhaps this info is hidden somewhere
> in all the files on the cd. Or, I have read it and didn't
> understood it.
> The http://www.artila.com/manual/matrix520_QIG.pdf does not
> say how to build a module or the kernel.
>
> Their representative in Sweden does not know any details
> and refers me to all the newsgroup on the net.
>
> About me:
>
> I have been writing serial communication programs since
> 1986 for DOS and all versions of Windows up to XP.
> My last project used an 33 MHz AT91R40008 with no OS.
> I used the lwip stack and wrote all the rest myself.
> That was a lot of work, but gave me total control
> over the system.
>
> But I wanted to learn more and use all the benefits
> a real OS can give, and now I have spent a week trying
> to find information about some basic things.
>
> Has the Linux community ever thought of collecting ALL
> the information in one structured place?
>
> When I write for Windows I find all info I need in
> Microsofts MSDL.
>
> The success of a Linux project seems to depend on
> who you know, or to hunt down the one man that has
> that piece of information you need.
>
> Maybe in 6 months I have come through this and
> will have better feelings for Linux.
>
> Thanks again all for your efforts to help me.
>
> Roger
>
>
>
>
>
>
>
>
>
>
>
> -------------------------------------------------------------------
> List admin: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm
> FAQ:        http://www.arm.linux.org.uk/mailinglists/faq.php
> Etiquette:  http://www.arm.linux.org.uk/mailinglists/etiquette.php
>
-------------------------------------------------------------------
List admin: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm
FAQ:        http://www.arm.linux.org.uk/mailinglists/faq.php
Etiquette:  http://www.arm.linux.org.uk/mailinglists/etiquette.php

[Linux ARM]     [Linux ARM MSM]     [Linux ARM Kernel]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

Add to Google Follow linuxarm on Twitter