Mostrando entradas con la etiqueta Informática. Mostrar todas las entradas
Mostrando entradas con la etiqueta Informática. Mostrar todas las entradas

jueves, 11 de septiembre de 2008

Servidor de correo en Gentoo ( Postfix + Dovecot + postfixadmin + mysql)

Ya va siendo hora de ir escribiendo el primer post sobre informática. En este caso se trata de cómo montar un servidor de correo en Gentoo, aunque es facilmente aplicable a cualquier distribución de Linux.
En este caso partía con ventaja, ya que anteriormente había montado un servidor de correo de similares características pero bajo una Debian. Bajo mi humilde experiencia ambas son igual de fáciles o igual de difíciles, cuestión de gusto XD.
No quería empezar este post sin antes mencionar la gran fuente de conocimiento que me ha proporcionado gentoo-wiki.com en particular el siguiente link.

http://gentoo-wiki.com/HOWTO_Secure_Mail_Server_using_Dovecot

Instalación

Antes de instalar cualquier ebuild se debe configurar los flags que deben utilizar algunos ebuilds que son necesarios. Para ello se deben poner las siguientes líneas en el fichero /etc/portage/package.use.

Fichero: /etc/portage/package.use
net-mail/dovecot pop3d mysql
mail-mta/postfix ssl mysql mbox nis pam
mail-filter/dspam virtual-users mysql daemon
dev-lang/php apache2 concurrentmodphp hash imap mhash mysql mysqli posix postgres sqlite threads xml xmlreader xmlwriter xpm zip


Después de esto, se debe elimiar ssmtp que puede dar problemas de compatibilidad con postfix.

emerge -Ca ssmtp.

Ahora es cuando ya se pueden instalar los paquetes necesarios para montar el servidor de correo.

emerge -uD dovecot postfix clamav dspam dspam-web squirrelmail

Y por último para terminar la sección de instalación hay que ejecutar el script de configuración de dovecot.

emerge --config dovecot.

Configuración
Para la configuración del servidor no es necesario seguir el mismo orden que se ha establecido, sin embargo es el más aconsejable.

postfixadmin

Lo primero que hay que a hacer es configurar el servidor smtp postfix. No obstante, antes de empezar con la configuración pura de postfix, se instala postfixadmin, paquete muy aconsejable para la gestión de cuentas de correo.

emerge -a postfixadmin.

Con postfixadmin se consigue una fácil administración de las cuentas de correo y de los dóminios que controla el servidor de correo. Además permite otras gestiones como es la gestión de alias dentro del dominio.

Para concluir con la instalación de postfixadmin hay que aplicar el siguiente script de base de datos.

/usr/share/doc/postfixadmin-2.1.0/DATABASE_MYSQL.TXT.gz

postfix

Una vez configurado postfixadmin, es hora de configurar postfix (servidor smtp). Esta instalación está basada en la creación de direcciones virtuales y dominio virtuales, es por este motivo que se creará un nuevo directorio en el árbol de postfix. Para hacer ésto, hay que ejecutar los siguientes comandos:


  • mkdir /var/spool/postfix/virtual

  • chown postfix:postfix /var/spool/postfix/virtual

  • chmod a+rwx /var/spool/postfix/virtual



Lo siguiente que se necesita para seguir con la instalación de postfix es, conocer el uid del usuario postfix y el gid del grupo postfix. Para ésto es necesario mirar en los ficheros /etc/passwd y /etc/group.

Fichero: /etc/postfix/main.cf

smtpd_banner = $myhostname ESTMP $mail_name (Gentoo)
biff = no

append_dot_mydomain = no

alias_database = hash:/etc/postfix/aliases
alias_maps = $alias_database
myhostname = <hostname>
mydomain = <domain>
myorigin = $myhostname
mydestination = $myhostname, localhost.$mydomain
mail_spool_directory = /var/spool/mail
home_mailbox = Mailbox
debug_peer_level = 2
debugger_command =
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
xxgdb = $daemon_directory/$process_name $process_id & sleep 5
disable_vrfy_command = yes
show_user_unknown_table_name = no

virtual_transport = virtual
virtual_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_minimum_uid = <postfix_uid>
virtual_uid_maps = static:<postfix_uid>
virtual_gid_maps = static:<postfix_gid>
virtual_mailbox_base = /var/spool/postfix/virtual
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_mailbox_limit = 51200000

# Additional for quota support
virtual_create_maildirsize = yes
virtual_mailbox_extended = yes
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = Espacio de usuario sobrepasado. Inténtelo más tarde
virtual_overquota_bounce = yes



Fichero: /etc/postfix/mysql_virtual_alias_maps.cf

user = <db_user_postfix>
password = <db_pass_postfix>
hosts = localhost
dbname = postfix
table = alias
select_field = goto
where_field = address


Fichero: /etc/postfix/mysql_virtual_domains_maps.cf

user = <db_user_postfix>
password = <db_pass_postfix>
hosts = localhost
dbname = postfix
table = domain
select_field = description
where_field = domain
#additional_conditions = and backupmx = '0' and active = '1'


Fichero: /etc/postfix/mysql_virtual_mailbox_maps.cf

user = <db_user_postfix>
password = <db_pass_postfix>
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = username
#additional_conditions = and active = '1'


Fichero: /etc/postfix/mysql_relay_domains_maps.cf
user = <db_user_postfix>
password = <db_pass_postfix>
hosts = localhost
dbname = postfix
table = domain
select_field = domain
where_field = domain
additional_conditions = and backupmx = '1'


Fichero: /etc/postfix/mysql_virtual_mailbox_limit_maps.cf
user = <db_user_postfix>
password = <db_pass_postfix>
hosts = localhost
dbname = postfix
table = mailbox
select_field = maildir
where_field = quota
#additional_conditions = and active = '1'


Una vez que los ficheros han sido configurados, unicamente queda reiniciar postfix mediante /etc/init.d/postfix restart.

Dovecot

Configurado ya postfix (servidor SMTP), es hora de configurar el servidor IMAP / POP3. Dovecot es el encargado de gestionar las conexiones IMAP y POP3.

La configuración que se utiliza a continuación es válida para un servidor IMAP y POP3, de forma que el cliente es el encargado de decidir el método de conexión con el servidor de correo.


Fichero: /etc/dovecot/dovecot-mysql.conf
driver = mysql
connect = dbname=postfix user=<db_user_postfix> host=localhost password=<db_pass_postfix>
default_pass_scheme = PLAIN-MD5
password_query = SELECT password FROM mailbox WHERE username = '%u'
user_query = SELECT maildir, <postfix_uid> AS uid, <postfix_gid> AS gid FROM mailbox WHERE username = '%u'

Fichero: /etc/dovecot/dovecot.conf
auth_verbose = yes
mail_debug = yes
mail_access_groups = mail

base_dir = /var/run/dovecot/
protocols = imap imaps pop3 pop3s
listen = *
disable_plaintext_auth = no
shutdown_clients = yes
log_path = /var/log/mail.log
info_log_path = /var/log/mail.log
log_timestamp = "%b %d %H:%M:%S "
syslog_facility = mail
disable_plaintext_auth = no
ssl_disable = no
ssl_cert_file = /etc/ssl/certs/dovecot.pem
ssl_key_file = /etc/ssl/private/dovecot.pem
login_chroot = yes
login_user = postmaster
login_process_per_connection = yes
login_processes_count = 2
login_max_processes_count = 128
login_max_connections = 256
login_greeting = <Mensaje de bienvenida>
login_log_format_elements = user=<%u> method=%m rip=%r lip=%l %c
login_log_format = %$: %s
mail_location = maildir:/var/spool/postfix/virtual/%d/%n
first_valid_uid = <postfix_uid>
pop3_uidl_format = %08Xu%08Xv
auth default {
mechanisms = PLAIN
userdb sql {
args = /etc/dovecot/dovecot-mysql.conf
}
passdb sql {
args = /etc/dovecot/dovecot-mysql.conf
}
user = root
count = 2
}


Para generar los certificados, simplemente hay que ejecutar:

  1. openssl genrsa -out key.pem 1024
  2. openssl req -new -key key.pem -out request.pem
  3. openssl req -x509 -key key.pem -in request.pem -out certificate.pem
  4. openssl x509 -inform der -in certificate.crt -out certificate.pem


Posteriormente se copia key.pem a /etc/ssl/private/dovecot.key y certificate.pem a /etc/ssl/certs/dovecot.pem

Postfixadmin

Al instalar postfixadmin, éste queda almacenado en el directorio /usr/share/webapp/postfixadmin dentro del que se encuentra el directorio htdoc que contiene el software de gestión. Por lo tanto se copia el contenido del directorio a la siguiente ruta:

/var/www/localhost/htdocs/postfixadmin

Cuando se haya terminado de copiar el directorio, hay que asignarle permisos especiales en apache debido a que no es aconsejable que cualquier máquina pueda acceder a esta URL. Por lo tanto hay que añadir las siguientes líneas a apache.

Fichero: /etc/apache2/vhosts.d/default_vhost.include

<Directory "/var/www/localhost/htdocs/postfixadmin">
AllowOverride All
Order deny,allow
Deny from all
Allow from 192.168.19.176/28 127.0.0.1
DirectoryIndex index.php
</Directory>


A continuación se configura el fichero config.inc.php quedando como el siguiente:

Fichero: /var/www/localhost/htdocs/postfixadmin/config.inc.php

<?php
if (ereg ("config.inc.php", $_SERVER['PHP_SELF']))
{
header ("Location: login.php");
exit;
}
$CONF['configured'] = true;
$CONF['postfix_admin_url'] = '';
$CONF['postfix_admin_path'] = dirname(__FILE__);

$CONF['default_language'] = 'es';

$CONF['database_type'] = 'mysql';
$CONF['database_host'] = 'localhost';
$CONF['database_user'] = '<db_user_postfix>';
$CONF['database_password'] = '<db_pass_postfix>';
$CONF['database_name'] = 'postfix';
$CONF['database_prefix'] = '';

$CONF['database_tables'] = array (
'admin' => 'admin',
'alias' => 'alias',
'config' => 'config',
'domain' => 'domain',
'domain_admins' => 'domain_admins',
'log' => 'log',
'mailbox' => 'mailbox',
'vacation' => 'vacation',
'vacation_notification' => 'vacation_notification',
);
$CONF['admin_email'] = 'admin@<your-domain>';

$CONF['smtp_server'] = 'localhost';
$CONF['smtp_port'] = '25';

$CONF['encrypt'] = 'md5';
$CONF['min_password_length'] = 5;
$CONF['generate_password'] = 'NO';
$CONF['show_password'] = 'NO'
$CONF['page_size'] = '10';

$CONF['default_aliases'] = array (
'abuse' => 'abuse@<your-domain>',
'hostmaster' => 'hostmaster@<your-domain>',
'postmaster' => 'postmaster@<your-domain>',
'webmaster' => 'webmaster@<your-domain>'
);

$CONF['domain_path'] = 'YES';
$CONF['domain_in_mailbox'] = 'NO';

$CONF['aliases'] = '10';
$CONF['mailboxes'] = '10';
$CONF['maxquota'] = '10';

$CONF['quota'] = 'NO';
$CONF['quota_multiplier'] = '1024000';
$CONF['transport'] = 'NO';

$CONF['transport_options'] = array (
'virtual', // for virtual accounts
'local', // for system accounts
'relay' // for backup mx
);

$CONF['transport_default'] = 'virtual';

$CONF['vacation'] = 'NO';
$CONF['vacation_domain'] = 'autoreply.<your-domain>';
$CONF['vacation_control'] ='YES';
$CONF['vacation_control_admin'] = 'YES';

$CONF['alias_control'] = 'NO';
$CONF['alias_control_admin'] = 'NO';
$CONF['special_alias_control'] = 'NO';
$CONF['alias_goto_limit'] = '0';

$CONF['backup'] = 'YES';
$CONF['sendmail'] = 'YES';
$CONF['logging'] = 'YES';
$CONF['fetchmail'] = 'YES';
$CONF['fetchmail_extra_options'] = 'NO';

$CONF['show_header_text'] = 'NO';
$CONF['header_text'] = ':: Postfix Admin ::';

$CONF['user_footer_link'] = "http://<your-domain>/main";

$CONF['show_footer_text'] = 'YES';
$CONF['footer_text'] = 'Return to <your-domain>';
$CONF['footer_link'] = 'http://<your-domain>';

$CONF['welcome_text'] = <<<EOM
Hi,

Welcome to your new account.
EOM;

$CONF['emailcheck_resolve_domain']='YES';
$CONF['show_status']='NO';
$CONF['show_status_key']='NO';
$CONF['show_status_text']='&nbsp;&nbsp;';

$CONF['show_undeliverable']='NO';
$CONF['show_undeliverable_color']='tomato';
$CONF['show_undeliverable_exceptions']=array("unixmail.domain.ext","exchangeserver.domain.ext","gmail.com");
$CONF['show_popimap']='NO';
$CONF['show_popimap_color']='darkgrey';

$CONF['show_custom_count']=2;
$CONF['show_custom_domains']=array("subdomain.domain.ext","domain2.ext");
$CONF['show_custom_colors']=array("lightgreen","lightblue");

$CONF['theme_logo'] = 'images/logo-default.png';
$CONF['theme_css'] = 'css/default.css';

if (file_exists(dirname(__FILE__) . '/config.local.php')) { # for /
include(dirname(__FILE__) . '/config.local.php');
}


Sin embargo, antes de dejar el fichero de config.inc.php así, se debe crear una cuenta de administrador o superadministrador. Para esto lo único que se hace es poner $CONF['configured'] = false; y confirmar que existe el fichero setup.php en el mismo directorio. A continuación se abre un navegador y se introduce la URL de postfixadmin:

http://localhost/postfixadmin/setup.php



Una vez que se ha creado la cuenta se renombra el fichero setup.php a setup.php.disabled y en el fichero config.inc.php se pone a true la propiedad configured.

Referencias
http://gentoo-wiki.com/HOWTO_Secure_Mail_Server_using_Dovecot
http://panoptic.com/wiki/aolserver/How_to_generate_self-signed_SSL_certificates

lunes, 25 de agosto de 2008

Debian en Acer Aspire 2003WLMi. (Actualización del 02/08/2004)

Aquí tenéis una configuración de mi portátil en Debian. Está claro que el hw de mi portátil es un poco antíguo, pero siempre viene bien tener un punto de referencia. Por otro lado prometo que actualizaré este post con nueva información ya que ha pasado mucho tiempo desde este HOWTO.

Configuración del equipo



TipoComponentesEstadoRepresentaciónDescripción
Power ManagerACPIFuncionando
Testeando suspender, e hibernación.
RatónTouchPad (Synaptic)Funcionando
Touchpad con dos teclas, pulsación en la superficie, y un joystick de cuatro direcciones.(Por fin funciona el joystick)
Tarjeta GráficaATI Radeon Mobility 9200 (M9+)Funcionando
Funciona perfectamente con dri, glx. Sin el uso de los drivers de ATI
PantallaWXGA 15.4" con resolución de 1280x800.Funcionando
Funcionamiento correcto con XFree 4.3
Disco DuroHITACHI DK23FA-60 (60 GB)Funcionando
UDMA 100 Funciona correctamente.
DVD/CDRWMatshita DVD-RAM UJ-815AFuncionando
Funciona correctamente, software recomendado k3b o x-cd-roast.
EthernetRealtek RTL8101Funcionando
Funciona correctamente.
WirelessIntel PRO/Wireless 2100Funcionando
Wi-Fi con driver ipw2100 de Intel + hostap (para la encriptación WEP). Ahora también sin la necesidad de HOSTAP.
SonidoIntel i810Funcionando
Funcionando bajo ALSA (Con reproducción de dos sonidos simultaneos)
ModemIntel 82801DB AC'97 (winmodem)No Testeado
En pruebas
PCMCIAENE Technology Inc CB1410Hardware Detectado
No usado.
FirewireTI TSB43AB21 IEEE-1394a-2000Hardware Detectado
No usado.
USBIntel 82891DBFuncionando
Testeado con ratón USB, y Disco duro externo.
IrDASMC IrCC Fast Infrared (FIR)Funciona (Actualizado)
Testeado con mi movil Nokia 7650.
Teclas EspecialesAcer special keysFuncionando (Parcialmente)
Funcionando todas, menos BLUETOOTH, Fn+F1, Fn+F2, Fn+F3 y Fn+F4

ACPI [Inicio]


Hago uso del ACPI que se incluye en la serie del Kernel 2.6.x, en mi caso en este momento estoy con el kernel 2.6.7, si el uso de ningún parche del proyecto ACPI.
De momento conseguimos que funcione tanto el botón de apagado, y que el ordenador se apague y no se quede esperando a apagar.
Además con ACPI podemos ver el estado de bateria, procesador ..., y todo lo relacionado con el power manger.
De momento no he conseguido que funcione la suspensión ni la hibernación. Pero estoy mirando el proyecyo swsusp.


CPUFREQ


Para gestionar la velocidad de nuestra cpu, he usado el programa cpufreq, que se puede conseguir haciendo apt-get install cpufreq. Además tenemos que seleccionar la opciones en el kernel para que podamos cambiar la frecuencia de la cpu. Estas opciones son las siguientes:



[*] CPU Frequency scaling
[ ] Enable CPUfreq debugging
< > /proc/cpufreq interface (deprecated)
Default CPUFreq governor (userspace)
---><*> 'performance' governor
<*> 'powersave' governor
--- 'userspace' governor for userspace frequency scaling
[ ] /proc/sys/cpu/ interface (2.4. / OLD)
<*> 'ondemand' cpufreq policy governor
<*> CPU frequency table helpers
--- CPUFreq processor drivers
<*> ACPI Processor P-States driver
< > AMD Mobile K6-2/K6-3 PowerNow!
< > AMD Mobile Athlon/Duron PowerNow!
< > AMD Opteron/Athlon64 PowerNow!
< > Cyrix MediaGX/NatSemi Geode Suspend Modulation
<*> Intel Enhanced SpeedStep
[*] Use ACPI tables to decode valid frequency/voltage pairs
[*] Built-in tables for Banias CPUs
<M> Intel Speedstep on ICH-M chipsets (ioport interface)
<M> Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)
< > Intel Pentium 4 clock modulation
< > nVidia nForce2 FSB changing
< > Transmeta LongRun
< > VIA Cyrix III Longhaul
--- shared options
[ ] /proc/acpi/processor/../performance interface (deprecated)
[*] Relaxed speedstep capability checks

Una vez que compilamos el kernel con estas opciones pasamos ahora a configurar el cpufreq,haciendo los siguientes pasos



  • $cd /sys/devices/system/cpu/cpu/cpufreq

  • $cat scaling_available_governors ondemand pwersave performance userspace

  • $echo ondemand > scaling_governor

  • $cat scaling_min_freq 600000

  • $cat scaling_max_freq 1600000


RATÓN [Inicio]


El ratón que incluye el portatil es del tipo synaptic. Para esto hacemos apt-get install synaptic y conseguiremos instalar el driver synaptic. Aun así usaremos para el control del ratón la interfaz GPM. Para más información sobre el GPM mira la página de Dmitry Torokhov's page.


Además tenemos que seleccionar las siguientes opciones en el kernel:



<*> Event interfacez
<M> Event debugging
[*] Mice
<*> PS/2 mouse
[*] Synaptics TouchPad

Cuando tengamos todo esto solo tenemos que poner la configuración del fichero /etc/gpm.conf. Y poner la configuración adecuada en la configuración de las X, que a continuación podemos ver.



Section "InputDevice"
Identifier "Touchpad"
Driver "synaptics"
Option "CorePointer" "1"
Option "Protocol" "auto-dev"
Option "Protocol" "event"
Option "ZAxisMapping" "4 5"
Option "Device" "/dev/gpmdata"
Option "UpDownScrolling" "on"
Option "LeftEdge" "1900"
Option "RightEdge" "5400"
Option "TopEdge" "1900"
Option "BottomEdge" "4000"
Option "FingerLow" "25"
Option "FingerHigh" "30"
Option "MaxTapTime" "180"
Option "MaxTapMove" "220"
Option "MinSpeed" "0.02"
Option "MaxSpeed" "0.18"
Option "AccelFactor" "0.0010"
Option "SHMConfig" "on"
Option "HorizScrollDelta" "100"
Option "VertScrollDelta" "100"
Option "Emulate3Buttons"
EndSection

Tarjeta gráfica [Inicio]

Este ha sido mi mayor problema para que funcionase correctamente. Dado que la tarjeta gráfica es una ATI Mobility Radeon 9200, lo primero fue probar con los drivers de ATI, pero no he conseguido que con los drivers de ATI funcionase el dri. Con lo que si hacemos un glxgear nos da unos resultados de entre 250 ~ 315 FPS, que es bastante bajo.

Entonces decidí probar con los driver de dri, además de ser drivers open.

Para esto debemos habilitar las siguientes opciones en el kernel:

<M> /dev/agpgart (AGP Support)
<M> ATI chipset support
<M> Intel 440LX/BX/GX, I8xx and E7x05 chipset support
[*] Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
<M> ATI Rage 128
<M> ATI Radeon

Además hay que instalar los siguientes paquetes:

  • xfree86-common_4.3.0.dfsg.1-4_all.deb
  • xlibmesa-dri_4.3.0.dfsg.1-4_i386.deb
  • xlibmesa-gl_4.3.0.dfsg.1-4_i386.deb
  • xlibmesa-glu_4.3.0.dfsg.1-4_i386.deb
  • xserver-common_4.3.0.dfsg.1-4_i386.deb
  • xserver-xfree86_4.3.0.dfsg.1-4_i386.deb
  • x-window-system-core_4.3.0.dfsg.1-4_i386.deb
  • xlibs_4.3.0.dfsg.1-4_all.deb
  • libxt6_4.3.0.dfsg.1-4_i386.deb

Además yo instalé el paquete correspondiente que hay en http://www.freedesktop.org/~dri/snapshots/. Una vez hechoesto tenía el problema de que no arrancaba las X, con lo que reinstalé el paquete xserver-xfree86 con apt-get install xserver-xfree86 --reinstall.

A continuación muestro la configuración de la tarjeta en las X:

=== ATI device section ===
Section "Device"
Identifier "ATI Graphics Adapter"
Driver "radeon"
ChipID 0x5c61
Option "EnablePageFlip" "yes"
Option "AGPMode" "4"
Option "BusType" "AGP"
BusID "PCI:1:0:0"
Screen 0
EndSection

Para saber si está activado el dri hacemos glxinfo | grep direct.

Con esta configuración he conseguido unos registros en el glxgears de 2050 FPS.

Aquí tienes mi fichero /etc/X11/XF86Config-4

Pantalla [Inicio]

La configuración de la pantalla es bastante sencillo, sólo hay que decirle la resolución correcta. Entonces sólo tenemos que editar un fichero, que será nuestro /etc/X11/XF86Config-4.

A continuación pongo la parte del fichero para la configuración de la pantalla:

# **********************************************************************
# Monitor section
************************************************************************
# Any number of monitor sections may be present
Section "Monitor"
Identifier "Acer Panel WXGA"
#DisplaySize 330 210
HorizSync 31.5 - 91.1
VertRefresh 60 - 100
Option "DPMS"
Modeline "1280x800@60" 83.91 1280 1312 1624 1656 800 816 824 841
EndSection

Con esta configuración la pantalla funciona de vicio.

Disco Duro [Inicio]

No es necesario hacer nada en la configuración para configurar el disco duro.

Con el kernel 2.6.7

/dev/hda:
Timing buffered disk reads: 82 MB in 3.03 seconds = 27.02 MB/sec

DVD/CDRW [Inicio]

En el kernel 2.6.7 no es necesario usar la emulación SCSI, pero yo he seguido usandola, y no he tenido problemas. Así que tendríamos que en el lilo.conf append="hdc=ide-scsi"

Para la grabación, yo uso el programa K3B, o en su defecto X-CD-Roast.

Como hemos utilizado la emulación el DVD-RW estará en /dev/scd0, con lo que yo hago los siguientes enlaces:

  • ln -s /dev/scd0 /dev/dvd
  • ln -s /dev/scd0 /dev/cdrom

Las opciones del kernel que hay que habilitar son:

  • CONFIG_BLK_DEV_IDECD
  • CONFIG_BLK_DEV_IDESCSI
  • CONFIG_BLK_DEV_SR

Ethernet [Inicio]

Para configurar la tarjeta de red lo único que hay que hacer es cargar el módulo
8139too, para esto lo tenemos que tener seleccionado como módulo en el kernel.

Wireless [Inicio]

Desde el principio utilizo el driver de Intel en su desarrollo open,
que se encuentra en el proyecto ipw2100.

Lo único que hay que hacer es descargarse las fuentes, y compilarlas, para que este funcione. Pero de esta manera tiene un problema, y es que no funciona la encriptación WEP, por lo menos en la versión que utilizo ( 0.41 ).

Para solucionar el problema de la encriptación, vamos a recurrir a HOST AP DRIVER, con el que si que tendremos la posibilidad de utilizar el WEP. Para esto seguimos las siguientes instrucciones.

  1. Compilamos primero el hostap.
  2. Después compilamos el ipw2100.
  3. Por último dejamos el fichero del firmware ( ipw2100-1.0.fw ) en el directorio /etc/firmware.

Otra manera de hacer esto es aplicando parches sobre el kernel ( así es como lo tengo yo ), para esto tenemos que hacer lo siguiente.

  1. Aplicamos el parche del hostap en el kernel.
  2. Aplicamos el parche del ipw2100.
  3. Habilitamos las siguientes opciones en el kernel

    • CONFIG_IPW2100
    • CONFIG_IPW2100_LEGACY_FW_LOAD
    • CONFIG_HOSTAP
    • CONFIG_HOSTAP_PLX
    • CONFIG_HOSTAP_PCI

Nota: Con esto sólo tengo un problema, y es que cuando compilo el kernel, antes de compilar tengo que declarar una variable de entorno con el root. Esta es export HOSTAP_SRC=/<directorio_del_kernel>/drivers/net/wireless. Con esto compila perfectamente. Otro detalle a destacar es que las opciones del kernel dichas, las tengo marcadas como módulo.

Sonido [Inicio]

Para el sonido tenemos dos opciones, o bien usar ALSA, o usar
OSS. En mi caso me decanto por ALSA, ya que con alsa conseguimos
que nuestra tarjeta funcione con sonido Full Duplex, cosa que no quiere decir que podamos escuchar dos o más sonidos a la vez, sino que podemos grabar y reproducir a la vez. Para la reproducción de dos sonidos simultaneos, veremos como conseguirlo con ALSA.

Para empezar tenemos que configurar nuestro kernel con las siguientes opciones.

<*> Advanced Linux Sound Architecture
<*> Sequencer support
<*> Sequencer dummy client
[*] OSS API emulation
<*> OSS Mixer API
<*> OSS PCM (digital audio) API
[*] OSS Sequencer API
PCI devices --->
<*> Intel i8x0/MX440, SiS 7012; Ali 5455; NForce Audio; AMD768/8111

Para habilitar la reproducción simultanea de dos sonido tenemos que hacer los siguiente.

Tenemos que tener dentro de nuestro fichero .asoundrc lo siguiente.
#~/.asoundrc
# Everuthng sall be dmixed
pcm.!default{
type plug
slave.pcm "ossmix"
}
#OSS via aoss should d(mix)stroyed:
pcm.dsp0{
type plug
slave.pcm "ossmix"
}
#out ICE1712 dmix:
pcm.ossmix{
type dmix
ipc_key 1024
slave{
pcm "hw:0,0"
period_time 0
period_size 1024
buffer_size 4096
rate 44100
}
bindings{
0 0
1 1
}
}
ctl.mixer0 {
type hw
card 0
}

Modem [Inicio]


PCMCIA [Inicio]

En este apartado me detecta el hardware, pero no he tenido la posibilidad de probar este dispositivo.

FireWire [Inicio]

Aunque no he podido comprobar el funcionamiento de este dispositivo, si que me detecta el hardware, además de activarme la red sobre el IEEE1394, con el módulo eth1394.

USB [Inicio]

Para hacer funcionar el USB, tendremos que seleccionar las siguientes opciones en el kernel.

Bus options (PCI, PCMCIA, EISA, MCA, ISA)
[*] Support for hot-pluggable devices
SCSI device support
<M> SCSI device support
<M> SCSI disk support
<M> SCSI CDROM support
[*] Enable vendor-specific extensions (for SCSI CDROM)
<M> SCSI generic support
[*] Probe all LUNs on each SCSI device
[*] Build with SCSI REPORT LUNS support
USB support
<*> Support for USB
[*] USB device filesystem
<*> EHCI HCD (USB 2.0) support
<*> OHCI HCD support
<*> UHCI HCD (most Intel and VIA) support
<*> USB Modem (CDC ACM) support
<M> USB Mass Storage support
[*] USB Mass Storage verbose debug
[*] SanDisk SDDR-09 (and other SmartMedia) support (EXPERIMENTAL)
[*] SanDisk SDDR-55 SmartMedia support (EXPERIMENTAL)

IrDA [Inicio]

Actualización 2/8/2004: Ya está configurado los irda, lo primero es saber que chipset debemos usar, en nuestro caso hemos de usar el smsc_ircc2, para esto activaremos las siguientes opciones en el kernel.

Bus options (PCI, PCMCIA, EISA, MCA, ISA)
[*] ISA support
<M> IrDA (infrared) subsystem support
--- IrDA protocols
<M> IrLAN protocol
<M> IrNET protocol
<M> IrCOMM protocol
[*] Ultra (connectionless) protocol
--- IrDA options
[*] Cache last LSAP
[*] Fast RRs (low latency)
[*] Debug information
Infrared-port device drivers --->
--- SIR device drivers
<M> IrTTY /uses Linux serial driver)
--- Old SIR device drivers
<M> IrPort (IrDA serial driver)
--- FIR device drivers
<M> SMSC IrCC (EXPERIMENTAL)

Una vez tengamos compilado el kernel, con esta opciones, tenemos que cargar el módulo smsc_ircc2,
con esto nos va a aparecer una nueva interfaz, llamada irda0, no confundir con irlan0.

Después de esto tenemos que instalar el paquete irda-utils, con el apt. Despues sólo
tenemos que escribir la siguiente instrucción: irattach irda0, teniendo cargados los módulos
irda y smsc_ircc2. Así ya está configurado el irda. Para usar la conectividad con el
móvil uso OpenObex, que obtenemos instalando el paquete openobex-apps.

Teclas Especiales[Inicio]

Para poder usar la teclas especiales de acer vamos a necesitar instalar
Acer Hotkey driver for Linux, con esto vamos a habilitar los botones, pero estos no activan nada. Para poder hacer que ejecuten un comando, vamos a utilizar Hotkeys. Entonces seguiremos los siguientes pasos.

  1. Instalamos acerhk.
  2. Cargamos el modulo creado por acerhk, con modprobe acerhk poll=1.
  3. Instalamos hotkeys (hacemos apt-get install hotkeys).
  4. Creamos un fichero en /usr/share/hotkeys/, que se llame acer_aspire_2000.def. El enlace no muestra el contenido exacto ya que es un fichero xml.
  5. Una vez creado el fichero tenemos que configurar el fichero /etc/hotkeys.conf, con el siguiente contenido.
  6. Por último arrancamos hotkeys, y ya está.


Además de las instrucciones anteriores vamos a necesitar mapear una teclas esto lo conseguimos con lo siguiente:

  • setkeycodes e03e 123 (Tecla vol+)
  • setkeycodes e03f 138 (Tecla vol-)
  • setkeycodes e071 148 (Tecla P1)
  • setkeycodes e072 149 (Tecla P2)
  • setkeycodes e012 122 (Tecla ARCADE)

Las únicas teclas que no funcionan con esta configuración son Bluetooth, Fn+F1, Fn+F2, Fn+F3 y Fn+F4.

Para no tener que mapear cada vez que iniciamos, creamos un script y lo ponemos en /etc/init.d/.