��� ������� �������� ��: English Castellano Deutsch Francais Nederlands Portugues Russian Turkce Arabic |
����� Katja and Guido Socher �� ������: ���� �������� �������� ���������� LinuxFocus. ��� ����� �����, ������ � ����������, � ����� ����. �� �������� �������� ����� ����� �����. ����� ��� ������ ����� ��������� Linux, ������� �������� ��� �� ��, ��� ������ �������� � ��������� ������. ��� ���� �� ������, �� ������� �� �������� ��� ������� ��������. ��� �������� �����: linuxfocus.org/~guido. ����������:
|
������:
� ���� ������ �� ������ ���������� ����������� �������� ������, ������� �����
��������� ����� ������������ ���� � Linux PC.
������, �������� ������� (����� ������������ ����) ����� ��������� � ������� ������������.
������ ������ ����������� ���, ��� ��� �� ������������, ����� ����� ����� c ��������������� ��� ������ ���������� ����������������� ������ �� ����� �������. ������� � �����-�� ������� ��������� �����, ��� ��� �� �� ����� ������, �� �����, ������ ��� � ��� ����� ���������� �������, ��� ��� ����� ������������� ���������� ��������, ��� ��������� ���������. �� ����� �� ��������� �������, �� ��������, ��� ��-�� ������������ �������� ��������� � ������������ �������� �� �����-����� ��������. � �������, ����� ����� �������� �������� ����������� ������ �������, ��� ������������ ���������� ��� �� �������� ������, � ������� �� ������ ����� ���������.
��� ������ ������ �� ������������ ��������� ���������:
���.1: ��������� ����� |
���.2: ��������� |
��� �������� ��� ������� ����������� ��� ��������� �����, ���� � ����������� 6�6 � ���
� ���������� 6�7, � ����� 4�� 2��-�� �������� ������ c 3.7�� ������.
���.4: "������" � ���� ������� �������
��������� �������� ������ �� 8��, 17.5��, � 8�� ����� ��� �������� �� ���.4. �� ������
������� ���, ������� ������ ���� � ������ ������ �������� ����� � ����� ������ ��. ������
��������� � ��� ������, ��� �� ������� �������� �����. �����, ����� ������ ���� �������
�������, ��� ����� � 6�6 �����������. �������� ����� 3.7�� ������. ����� � ����������
������ ���� �������� �� 3�� ������, ��� ��� ����� ������, ��������� ������. ����������
������ ������ ��� ��� ������.
������� ������ ������ �������� ���������, � �� ����� ��� ������e ����� �������� � ������.
���.5: ��������� ����� � "������"
����, ������� ������ �������� � ����� � 6�6 �����������. ���������, ��� ��� �����
���������. ��� ������ ������ �������� � ��������� ���� ������.
������ �������� ��������� ��������� ����� � 2�7 �����������. �� ������� ��������� ����� ��
�������� �������� ������. ���������� �������� �� ��������� ����� �
������� ������ ��� ����������. ��������� ��������� ��������� ����� � �������� ��������
������, ��� �������� �� �������:
���.6: ��������� ����� 2�7.
����������� ��������� ������� 1��-� �������� ������ � �������� �� ��� ��������� ��������
������ 4��. ������� ������ ������� ��������� ���� � ����� ������� ��. ���
����������� 16 �������, ������ �������� ��������� ��������.
��������� �� ����� ����� ��������, ������ ��� ����� ��������������������
� ��������� �������� ��������: ������� ����� ����������� ��������� �
����� � ������� ��� �����������. ��� ��������� ���������� �����. ������������ � ���,
����� ������ ������� ���������, ��� ��� ���������� ����� ������� ������ ��� ������ ������.
�� ������ ����� ���������� ������� ����� ������ ��������� ������ ��� �������
�������������� ��������.
� ������ �� �������� ����������� ����������, ������� ���������� ���
����������� ��� ����� � ����.
���. 7: "����"
�������� ��������� ���, ��� ���� �� �� ������ ��������� ����. ������� � �����
�������, ��� ���������� ������� ������ ��������� ��������� ��������� c����.
�������� ���� �� ��������� (��� �����������, ��� ���������� ��������) � �������� �� ��� �����
(�������������� ������� 4��-� ������� ������), ����� ���� �������� ���. ���������� ���������
����� ������ ��������� ������ � ����� ����� ��������� ��������� ��������� �����.
� ������ ������� �������� ���� � �������� ���. ����������� ��������� ������ ���� ��������,
�� �� ������� ������. ���� �� ������ ��������� ��, ��� ������ ��������� �� 2-4��.
���� ��������� ������������ ��������, ��� �������� ������� ������, ����� �� ����� ���������
��� ����. ��������� ������ � �����.
�������� �� �� ����� �� ������ �������
����� ���, ��� ����������, ���������, ��� ��� ��� ��������. �������� �����������
��������� �� 1.5� � ������������ �� � ����������� ���������. ����� ���������
�����������, ������� ����� ���� ������ ������ ����������� �� 10-20 ��������. ������
���������, �� ������� ��������� �������������� ������ 1 �������. �� ��������� ���������,
���� ���������� ��.
���.8: ��� ������� ���������
�������� �� ������ ��� ������� ������ 10��, ��� ����� �������������� � �������� ���.
������� ������ �� ���������� 1.5�� �� ����� ������. ��������� ������ � ���� ������ ������.
��� ������ ���� ����������� ���� �����.
���. 9, 10: ��� �������� ���� �� ������
������ �� ������ ���������� ����������� ���������, �������� ���� �������, �� ����
����� �����.
���. 11: ��������� ��������
���������� ����������� ��������� ������ ������ ����� � ������ ���������
�� ��������� �����. ���������� �� ������ - 3 ���������. �������� �� ���
������� (��. ���. ����).
����� ������ ����� �� ������, ���� �� ���������� ��������� ������.
�������� ������� � ����� � ������ �������� ���. ������ ����� �������. ���������
������ � ������� ��������� ������, ��������� ��� ���� ������� ������ ���
�������������� ������ ��������. ����������� ������ ������� ���������������
��������, ������� ������ �������� ��������� � ���. ������ ������� ��������
����� ��������� � 1-� ��������� ����� � ����������� ��������, ����� ���� �����
������ ���� ������� � ����.
���. 12: ������� � ������ �� ����� ������
���������, ��� ������� � ������ ��������� �� ����� � ��� �� ������.
��� ���������� �������� ���� ������ ��������� �����, � �� ������������ ����� � ����.
�������� �� �� ����� � ���������� ����� ������.
���� � ������ � ��������� �������� ���������� ������ ��������� ������� ����
������� �������, ������� ����� ���� ������ ���� ������������� �������. ������
������� ����� �������� ������ ���������, ���������� ���� � ��� ����������� ��������
����������. �� �������� ���������, ���� 3�� 0.1��-�� ������� � ������� �������� �
������� ��� �� ���������������� �������� ������, ����� ���������� ��������� �������.
������ ������ � ��������� ������� � �������� ���������� ���� ��� � ������� ���� ���.
������ � ���� ������� ������ ������������ ������������ ��������.
����� ����� ����� �����, ��������� 0.5� (��� �������, ���� ������) ������� 0.1�� ������� � ������� �� ����� � ��������� ���� ������ � ��������� �����. ��� ����������� 9 ��������, 6 ��� ���, 2 ��� �������� ��� ��� ����� � ���� � 1 ��� ���� �������. �� ������ �������� ������ ����� �������� � ���������� ����������, ������� ����� �� ������ �������� � ��������������� ������ � ����� ����������.
���� ��������� ������� ��� ��������� ������. ��� ��������, ��� ���� ��� ����
(��� �� ����� � ���� �� ������ �������) ��������� �� �����, ������ ��� ����������.
����� ����� ����, ���� �� ����� ��������� � ����� �����������, � �� ����� ���
����������� - � ��������.
���. 13: ������ ������
���� ���������� ��������� ������������ ��� PC ��� �������� ���
��������� ������, ���������� �� � ������������ ����.
����� �� ������������� ���� ������������ ���������, �� ������ ����� ��������� ��
�� ����������� � �������� ������� ���������� � ������ ���� ����� ����, ���
���������� ���������� ���������� �������, ��� �������� � ���������� ������ ���������.
����� ������ ���������. ��� ����� ���������� ��� 200-250�� ����� �����������
"�����������", ����� ��������� �� �����������. ������������� 3�� ����������� ���������
�� ���� ����� 7 ��. ������ ���������� ��������� ����� ������� ������� ��
���� ����������, ������ ��� � ���� ������ �������� ������������ ������� ��
��������� ����� "����", ��� �������� �������� ����������� ��������. ��������� BIOS
���������� ������������� ���������
�������� �� ��������� ������������� �����, ���������
�� ��� ����� �������� ��������� "���", ���������� ���� ��� ����� ��������� ����� ���������
������� ������ ����� ������� � �������� ��. ����� ���������� �������� ������
��������� 1.5 ������� �������.
������������:
���. 14: ������������
��� �� ������ �� ����� ����, �� ���������� ����������������� ���� �������.
��� ����� ��� ����������� �������� ����������� ������� � ��� ������
������������� �����. � �������� �������� ��������� �� ������ ������������
����� ���� ������� � ���������� ����� � ����������� �� ������ 6� � 24�.
���������� 7805 ��������
����������� ����������� ����������. ������������ ����, �� ������� ��� �������
�������� ��������, ��� ������������ ���� ������������� (470��� � 0.1���).
���������� �� ��� ����� ����� � ���������� ���������� 7805, ������ ��� ��
����� ������ ������������� � ������ �� �����.
���������� ���������� ������ ���� ������� ������ ���. �� ���� ��� ������ ����
� ��� ���� ��� ����������� ��� ��� ����� � ����. �� ���������� ��������� n-p-n
����������-����������, ������ ��� ������ ������ ����� ������� ���.
BC875 ��� BC618 ����� ������������� ����� 500��. �������� 47��� �� �����
����� ��� ����������� ��������� "����" �������� ���� (��������, �����
��������� �� ���������). ���������� �� ������������ ����� ����� 4� ��� ���������
"���" � ���� 1� ��� "����". ���������� �������� ������ ��� ����������.
��������� 15 �� ������������ ��� � �������� ���� ������ � ����������.
���������� ���������� ��������� ("���" ��� "����").
���� �� ������ ������ �������. ������� ���������� (���������� ����������� �������� ������)
������ ���������, ��������� �� ������������ ���������� ������� ����������.
�� ������� ��������� �� 15 �� �� �������������� ���������, ������ � �������, ��
���� ������, ��� � ��� ���� �� �����. ������� ������ ��� ���������
��������� 2��.
������������ ���� ��� ���������� � �������� ��������� ����� � ������������� ����������
�� �������. ��������� ������������ ����� ��������� ������ �� ���� � �����.
����� �� ���������� ���� ������ ��� �����. � ����� �� ��������� ������ �� ���������
� ������ ������� � ����� ������������ ������� �����. ���� ������������ ���� �����
25 �����, �� ���������� ���� 9. ������ ����� ������������ ��� �������� ����� � ����
��� ����������� ������������� �����.
��������� ������������� �����:
25-���������� D-SUB "����" ��� PC. ������� ����������� ����������� �������� 1 STROBE [-->] ����� (���������� ������) 2 D0 [-->] 0 ��� ������ 3 D1 [-->] 1 ��� ������ 4 D2 [-->] 2 ��� ������ 5 D3 [-->] 3 ��� ������ 6 D4 [-->] 4 ��� ������ 7 D5 [-->] 5 ��� ������ 8 D6 [-->] 6 ��� ������ 9 D7 [-->] 7 ��� ������ 10 ACK [<--] �������� ������ ������ 11 BUSY [<--] ������� �� ����� � ������ (�����) 12 PE [<--] ��������� ������ 13 SEL [<--] �������� ��������� �������� 14 AUTOFD [-->] �������������� ������� ������ ����� �������� ������� 15 ERROR [<--] ������ 16 INIT [-->] ������������� �������� 17 SELIN [-->] ������� ����� ������ 18 GND [---] ������ 19 GND [---] ������ 20 GND [---] ������ 21 GND [---] ������ 22 GND [---] ������ 23 GND [---] ������ 24 GND [---] ������ 25 GND [---] �������� ������������ ���� ���������� � 18-�� �������� (������) � � ��������� ������ ������ 2-9
==== pprobi.c ===== /* vim: set sw=8 ts=8 si : */ /* * ��� ��������� �������� ��������� ����������� ������������. * �� ������ �������������� * ��� �������� �� � ������������ � ������������� ��������� GNU. * ����������� �� http://www.gnu.org/copyleft/. * * ������ Katja Socher <[email protected]> * � Guido Socher <[email protected]> * */ #include <stdio.h> #include <unistd.h> #include <stdlib.h> #include <stdarg.h> #include <string.h> #include <math.h> #include <signal.h> #include "robi.h" /* ----------- */ static int opt_r=0; static int fd=0; /* ----------- */ /* ----------- */ void help() { printf("pprobi -- control software for a walking robot\n\ USAGE: pprobi [-h] [parport-device]\n\ \n\ OPTIONS:\n\ -h this help\n\ -r reset the parallel port data pins (all zero) and exit\n\ \n\ The default device is /dev/parport0 \n\ "); #ifdef VERINFO puts(VERINFO); #endif exit(0); } /* Signal handler: all off then exit */ void offandexit(int code) { robi_setdata(fd,0); set_terminal(0); exit(0); } /* ----------- */ int main(int argc, char **argv) { int state,bpat,alternate; char *dev; /* The following things are used for getopt: */ int ch; extern char *optarg; extern int optind; extern int opterr; opterr = 0; while ((ch = (char)getopt(argc, argv, "hr")) != -1) { switch (ch) { case 'h': help(); /*no break, help does not return */ case 'r': opt_r=1; break; case '?': fprintf(stderr, "serialtemp ERROR: No such option. -h for help.\n"); exit(1); /*no default action for case */ } } if (argc-optind < 1){ /* less than one argument */ dev="/dev/parport0"; }else{ /* the user has provided one argument */ dev=argv[optind]; } fd=robi_claim(dev); /* robi_claim has its own error checking */ /* catch signals INT and TERM and switch off all data lines before * terminating */ signal(SIGINT, offandexit); signal(SIGTERM, offandexit); /* initialize parpprt data lines to zero: */ robi_setdata(fd,0); set_terminal(1); /* set_terminal has its own error handling */ state=0; alternate=0; if (opt_r){ offandexit(1); } while(1){ ch=getchoice(); if (ch!=0) state=ch; if (ch == ' '){ printf("Stop\n"); robi_setdata(fd,0); usleep(500*1000); } if (ch == 'q'|| ch == 'x'){ printf("Quit\n"); break; } if (state=='l'){ /*right */ printf("walking right\n"); walkright(fd); } if (state=='h'){ /*left */ printf("walking left\n"); walkleft(fd); } if (state=='j'){ printf("walking back\n"); walkback(fd); } if (state=='k'){ if (alternate){ printf("walking straight on a\n"); walkstraight_a(fd); }else{ printf("walking straight on b\n"); walkstraight_b(fd); } alternate=(alternate +1) %2; } } /* we get here if q was typed */ set_terminal(0); return (0); } ==== robi.c ===== /* vim: set sw=8 ts=8 si : */ /* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License. * See http://www.gnu.org/copyleft/ for details. * * Written by Katja Socher <[email protected]> * and Guido Socher <[email protected]> * */ #include <stdio.h> #include <stdlib.h> #include <stdarg.h> #include <sys/types.h> #include <sys/time.h> #include <fcntl.h> #include <unistd.h> #include <signal.h> #include <linux/ppdev.h> #include <sys/ioctl.h> #include <termios.h> #include "robi.h" /* like printf but exit the program */ static int die(const char *fmt, ...) { va_list ap; va_start(ap, fmt); vprintf(fmt, ap); va_end(ap); exit(1); } /* get one character from stdin * Returns non zero if char was read otherwise zero * The arrow keys are mapped as follows: * <- = h * -> = l * v = j * ^ = k */ int getchoice() { int c; char s[20]; if (fgets(s,20,stdin)){ c=s[0]; switch (c){ case 0x1b: /* ESC */ if (s[1] == 0x5b){ /* arrow keys are pressed */ switch (s[2]){ case 0x41: /*up arrow*/ c='k'; break; case 0x42: /*down arrow*/ c='j'; break; case 0x44: /*l arrow*/ c='h'; break; case 0x43: /*r arrow*/ c='l'; break; default: c=0; } }else{ c=0; } break; case ' ': case 'h': case 'j': case 'k': case 'l': case 'q': case 'x': break; default: c=0; } return(c); } return(0); } /* Set the Terminal to Non Canonical mode with echo off * or reset the terminal. * USAGE: set_terminal(1) for canonical */ int set_terminal(int canonical) { static struct termios originalsettings; struct termios newsettings; static int origok=0; /* set if originalsettings valid */ if (canonical){ /* save original settings and set canonical mode*/ tcgetattr(fileno(stdin),&originalsettings); newsettings=originalsettings; newsettings.c_lflag &= ~ICANON; newsettings.c_lflag &= ~ECHO; newsettings.c_cc[VMIN]=0; /* do not block */ newsettings.c_cc[VTIME]=1; /* 100 ms */ if (tcsetattr(fileno(stdin),TCSANOW,&newsettings) !=0){ die("ERROR: could not set terminal attributes on stdin\n"); } origok=1; }else{ if (origok){ /* restore settings */ tcsetattr(fileno(stdin),TCSANOW,&originalsettings); } } return(0); } /* open /dev/parportX device and claim it. * USAGE: fd=robi_claim("/dev/parport0"); * The return value is a file descriptor used by other * functions such as robi_setdata */ int robi_claim(char *dev) { int fd,i; fd = open(dev, O_RDWR ); if (fd < 0) { die("ERROR: cannot open device %s\n",dev); } i=0; /* we need exclusive rights as we do not set the control lines*/ /*ioctl(fd, PPEXCL, &i)&& die("ERROR: request for exclusive rights failed\n");*/ ioctl(fd, PPCLAIM, &i)&&die("ERROR: could not claim parport\n"); return(fd); } /* Walk left */ int walkleft(int fd) { /* first B legs to ground */ robi_setdata(fd,LEGBD); usleep(400 *1000); /* all A legs 1 step */ robi_setdata(fd, LEGB1 | LEGB3 ); usleep(1100 *1000); /* first A legs to ground, cool B*/ robi_setdata(fd,LEGAD); usleep(400 *1000); robi_setdata(fd,0); usleep(1000 *1000); return(0); } /* Walk right */ int walkright(int fd) { /* first A legs to ground */ robi_setdata(fd,LEGAD); usleep(500 *1000); robi_setdata(fd, LEGA3 | LEGAD); usleep(300 *1000); /* all A legs 1 step */ robi_setdata(fd, LEGA1 | LEGA3 ); usleep(1100 *1000); /* first B legs to ground, cool A*/ robi_setdata(fd,LEGBD); usleep(400 *1000); robi_setdata(fd,0); usleep(1000 *1000); return(0); } /* Walk with all 3 legs 1 step forward */ int walkstraight_a(int fd) { /* first A legs to ground */ robi_setdata(fd,LEGAD); usleep(800 *1000); /* all A legs 1 step */ robi_setdata(fd, LEGA1 | LEGA2 | LEGA3 ); usleep(1000 *1000); /* first B legs to ground, cool A*/ robi_setdata(fd,LEGBD); usleep(500 *1000); robi_setdata(fd,0); usleep(1200 *1000); return(0); } /* Walk with all 3 legs 1 step forward */ int walkstraight_b(int fd) { /* first B legs to ground */ robi_setdata(fd,LEGBD); usleep(400 *1000); /* all B legs 1 step */ robi_setdata(fd,LEGB1 | LEGB2 | LEGB3); usleep(1000 *1000); /* A down and cool */ robi_setdata(fd,LEGAD); usleep(800 *1000); robi_setdata(fd,0); usleep(1200 *1000); return(0); } /* Walk with all 6 legs 1 step back */ int walkback(int fd) { /* first A legs to ground */ robi_setdata(fd,LEGAD); usleep(800 *1000); /* all B legs 1 step in the air*/ robi_setdata(fd, LEGB1 | LEGB2 | LEGB3 ); usleep(500 *1000); /* first B legs to ground, cool A*/ robi_setdata(fd,LEGBD); usleep(500 *1000); /* all A legs 1 step in the air*/ robi_setdata(fd,LEGA1 | LEGA2 | LEGA3); usleep(500 *1000); /* A down and cool */ robi_setdata(fd,LEGAD); usleep(800 *1000); robi_setdata(fd,0); usleep(1000 *1000); return(0); } /*---------*/ /* Write a bit pattern to the data lines * USAGE: rc=robi_setdata(fd,bitpat); * The return value is 0 on success. */ int robi_setdata(int fd,unsigned char bitpat) { int rc; rc=ioctl(fd, PPWDATA, &bitpat); return(rc); } ==== robi.h ===== /* vim: set sw=8 ts=8 si et: */ #ifndef H_ROBI #define H_ROBI 1 #define VERINFO "version 0.2" /* the first thing you need to do: */ extern int robi_claim(char *dev); /* write a bit pattern to the data lines of the parallel port: */ extern int robi_setdata(int fd,unsigned char bitpat); /* input and terminal functions */ extern int set_terminal(int canonical); extern int getchoice(); extern int walkstraight_a(int fd); extern int walkstraight_b(int fd); extern int walkback(int fd); extern int walkleft(int fd); extern int walkright(int fd); /* data pins to legs: * A1------=------B1 * = * = * B2------=------A2 * = * = * A3------=------B3 * * * Pin to set A-legs to ground= AD * Pin to set B-legs to ground= BD * * parallel port leg name * ------------------------- * data 0 A1 * data 1 A2 * data 2 A3 * data 3 AD * data 4 B1 * data 5 B2 * data 6 B3 * data 7 BD */ #define LEGA1 1 #define LEGA2 2 #define LEGA3 4 #define LEGAD 8 #define LEGB1 16 #define LEGB2 32 #define LEGB3 64 #define LEGBD 128 #endif
��������� ���������� ��������� ppdev ���� ������ 2.4.� (��� ����� ���� ������ 2.3.� ��� 2.4.�, � ����� ������� ��� �� ����� ��������). ��� ������� � ������� ��������� ��� ��������� ���������������� ��������� ������������� �����. ��� ������������� ����� ������ ���� �� ���� �� ������ �������� ������ ���� ��� ������������ ������ �����, ������� �������� �� ���������� root ��� ������� ���������. ��������� ppdev ���������� ���� ���������� /dev/parport0 � ����� ��������� ��������� � ���� ������� �� ������ ��������������, ���� ��������� ������������ ���� ���������.
��� ���������� ppdev ��� ������ � ���� ��� ����� �������������� ������ PARPORT ������ � ����������� PPDEV. � ����� .config ��� ������ ��������� ��������� �������:
# # Parallel port support # CONFIG_PARPORT=m CONFIG_PARPORT_PC=m CONFIG_PARPORT_PC_FIFO=y # CONFIG_PARPORT_PC_SUPERIO is not set # CONFIG_PARPORT_AMIGA is not set # CONFIG_PARPORT_MFC3 is not set # CONFIG_PARPORT_ATARI is not set # CONFIG_PARPORT_SUNBPP is not set CONFIG_PARPORT_OTHER=y CONFIG_PARPORT_1284=y # # Character devices # CONFIG_PPDEV=m #
� ������ ������� ��������� �������������� ������������ ���� �������� ioctl PPCLAIM.
����� ��� ������������� �������� � ����� non canonical. ��� ����� ���
����, ����� �������� ���� �������� � ���������� ��� ������������� �������� Enter
����� ������� �����. ����� ��������� ������ � ����, ��� ������� ���������, �� ���� ��
����� ������ �������������, � ����� ��������� ������ ��������� � ������������ �
��������. ���� �� �� ����� ������, ��������� ������ ����� ���������� ��������� ���������
��������� ������� (��������, ��������� �����).
������� ioctl(fd, PPWDATA, &bitpat); ������������ ��� ���������
�������� ����� �� ����� ������.
�������� ������ ������ ������ ���� ������������ � �������� ������ ����� ���������� ��������� �������:
����: A1------=------B1 = = B2------=------A2 = = A3------=------B3 ������� ��� ����������� A-��� �� ������ = AD ������� ��� ����������� B-��� �� ������ = BD ������������ �������� ����� ����� ����������: data 0 A1 data 1 A2 data 2 A3 data 3 AD data 4 B1 data 5 B2 data 6 B3 data 7 BD����� ������ "0" �������� ������� ����� ����������, ������� �������������� � ������������� ����� �� 2-� ������� (D0).
�� ��������, ��� �� �������� ����� ������������, ������� ������. �������� ��� � ���, �������� ���� �� ����� ������ �����������!
|
Webpages maintained by the LinuxFocus Editor team
© Katja and Guido Socher, FDL LinuxFocus.org Click here to report a fault or send a comment to LinuxFocus |
Translation information:
|
2001-10-12, generated by lfparser version 2.17