1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 1639 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 1683 1684 1685 1686 1687 1688 1689 1690
|
\chapter{X-WINDOW}
\section{Introduccin.}
X Window es un entorno grfico desarrollado para el sistema operativo
UNIX por el MIT1. Proporciona al sistema un interfaz completamente
grfico en base a ventanas en las que se ejecutarn las distintas
aplicaciones que podemos ejecutar, mens desplegables,... todo ello
con el uso del ratn en todo momento.
Si se est familiarizado con cualquier otro entorno similar, no ser
muy difcil el trabajar en el nuevo que se ofrece. De esta forma se
cubre una de las deficiencias achacadas al UNIX en general en un
momento en que cada vez es ms importante el aspecto, y la sencillez
de manejo para el usuario final.
Para ser ms concretos en la definicin hay que decir que X est
desarrollado bajo el modelo cliente-servidor. La parte que realiza la
tarea de servidor gestiona todo el acceso al hardware. El software
cliente se comunica con el servidor mediante el envo de rdenes
(mensajes) destinadas a la gestin del entorno y muestra de datos
mediante ste. Ejemplo de clientes son xterm (simula un terminal en
una ventana), xman, xview, Mosaic (existe una versin para LINUX),
etc.. cada uno de lo que coloquialmente denominamos "programas para X
" "programas para ejecutar bajo X" (aunque con xterm tambin podemos
ejecutar cualquier otro software que no est concebido para X). El
servidor se encarga de algunas tareas como las descritas a
continuacin:
\begin{itemize}
\item Manipulacin a bajo nivel de ventanas (operaciones de creacin y
destruccin de las mismas), sin confundirlo con el manejo que
posteriormente podemos hacer mediante el gestor escogido.
\item Servir como gestor de recursos del sistema para las aplicaciones
a ejecutar.
\item Procesar rdenes para el dibujo de grficos.
\item Notificar a las aplicaciones los eventos ocurridos (pulsado de
una tecla, movimiento del ratn, errores...)
\item Monitorizar y comunicar a las aplicaciones los errores que se
pueden generar.
\item Control de la pantalla.
\item Comunicacin entre los diferentes clientes (cortar y pegar...)
\end{itemize}
Incluso el gestor de ventanas (hay varios disponibles) es un programa
cliente ms de los que se pueden ejecutar, es ms, ser necesario
ejecutar uno de ellos obligatoriamente para trabajar en este entorno,
algunas de sus tareas son:
\begin{itemize}
\item Permitir redimensionar las ventanas.
\item Mover las ventanas a cualquier posicin de la pantalla.
\item Convertir una ventana en un icono y viceversa.
\item Decorar ventanas con barras de ttulos y desplazamiento, bordes,
botones, etc.
\item Control de todas las ventanas abiertas en un determinado
momento.
\item Lanzamiento de aplicaciones.
\end{itemize}
{\tt X Window} est concebido para entornos de red, clientes y
servidor pueden ser ejecutados en mquinas distintas, el proceso de
comunicacin cliente-servidor (paso de mensajes) es totalmente
transparente para el usuario.
En nuestro caso ejecutaremos el servidor y todos los clientes en la
misma mquina (para LINUX tambin es una red) lo cual no supone
problema alguno.
La versin actual del entorno X Window es la nmero once, en su
revisin nmero 6 y pertenece al denominado "X Consortium", grupo
formado en 1988 por el MIT junto a otras empresas como DEC,
IBM,.. cuyo objetivo es la cooperacin con la industria para la
creacin y evolucin de un estndar grfico basado en el X Window.
Existen varias categoras de miembros en esta organizacin,
estructurado en forma de equipos multidisciplinares que participan en
el desarrollo, implementacin, revisin y prueba de cualquier idea que
surja en el mbito del desarrollo del entorno grfico. Cualquier
persona tiene cabida en esta entidad.
XFree86 es la implementacin del X Window que tenemos a nuestra
disposicin para LINUX (y otras implementaciones del UNIX) en su
versin 3.1.22, basada en el servidor X386 desarrollado por el MIT
destinado a plataformas de Intel 386/486 y Pentium adems de la
configuracin hardware comn a este tipo de procesadores. Para conocer
ms detalles del software instalado podemos ejecutar el comando
'xdpyinfo' en una ventana de terminal el cual nos mostrar informacin
detallada sobre la versin y caractersticas del entorno grfico.
XFree86 est distribuido bajo una licencia que permite disponer
libremente tanto de software que lo forma en forma de cdigo fuente
como en formato binario. Est desarrollado, mantenido y distribuido
por grupo XFree86 Project Inc., cuyo fin es el desarrollar el servidor
X Window para cualquier UNIX ejecutable en plataformas PC
(http://www.xfree.org).
En la distribucin que hemos tomado como referencia (Slackware), las
series que empiezan con la letra X (X, XAP, XD,....) son las
relacionadas con este software. Para nuestros fines ser necesario
instalar las series X y XAP, con ello dispondremos del X Window y
algunas aplicaciones que nos pueden ser de utilidad para el entorno.
Hay que avisar de algo muy importante, el software viene sin
configurar, esto es, una vez instalado hay que realizar este proceso a
fin de poder ejecutarlo. Intentar ejecutar este interfaz sin haberlo
configurado previamente puede producir efectos no deseados, incluso en
la documentacin adicional se nos insiste en la posibilidad de daar
nuestro hardware por lo que se recomienda encarecidamente el
documentarse bien antes de dar este paso.
En este captulo se intentar explicar lo ms detalladamente posible
todos los pasos necesarios para poder configurar este software, o al
menos, el poder ejecutar XFree86 de una forma que denominar 'mnima'3
(el entorno funciona en slo un modo) para, a partir de este punto,
poder profundizar en el resto de parmetros que rodean a este proceso.
XFree86 no es sencillo de configurar, o ms concretamente, no es tan
sencillo como lo pueden ser otros entornos grficos (algunos incluso
tienen la capacidad de detectar el hardware y autoconfigurarse), pero
esta dificultad es directamente proporcional a su flexibilidad,
XFree86 puede ser ejecutado en un amplsimo conjunto del hardware
disponible en el mercado destinado al uso de grficos perteneciente a
distintos fabricantes y , por tanto, con la ausencia de estndares
bien definidos que faciliten la tarea. Muchos fabricantes anuncian sus
productos como "compatibles con ..." aunque a la hora de la verdad nos
podemos encontrar que esta compatibilidad no es total.
En el proceso que nos ocupa tendremos que enfrentarnos al manejo de
parmetros con los que puede que no estemos familiarizados en
absoluto, tales como ancho de banda, tasas de desplazamiento vertical
y horizontal, pulsos de reloj... que son los que interesa conocer para
nuestro propsito. Se va a tener siempre en cuenta lo que se puede
denominar como 'caso peor', no se dispone de la informacin tcnica
necesaria sobre la tarjeta grfica montada en el ordenador ni del
monitor o esta no se ajusta a la contenida en alguno de los ficheros
con informacin de los que acompaan al Xfree86.
Si nuestro hardware se ajusta exactamente a las especificaciones de
alguno de estos ficheros tendremos el 90 % del trabajo hecho, pero no
hay que olvidar que la mayora de los PC de los que hay en nuestro
entorno carecen de los manuales con las especificaciones tcnicas
mnimas del tipo de componentes que lo forman.
Existen en el mercado implementaciones de este tipo de software
dedicado a su explotacin comercial cuya ventaja puede consistir en
una mayor estabilidad, soporte tcnico, facilidad de instalacin y
configuracin, mayor rendimiento, etc... A pesar de poder existir
diferencias todos son compatibles entre s.
\section{ Informacin Disponible}
A la hora de enfrentarnos a la configuracin del XFree86 disponemos de
la siguiente informacin:
\begin{itemize}
\item Ficheros FAQ y HOWTO:
\begin{itemize}
\item /usr/doc/faq/faq/linux-faq.xxx4
\item /usr/doc/faq/howto/XFree86-HOWTO
\item Directorio /usr/doc/faq/faq/xfaq
\end{itemize}
\item Otros ficheros:
\begin{itemize}
\item Contenidos en el directorio /var/X11R6/lib/doc. Nos
pueden ser de ayuda en el momento de la configuracin con
informacin para cada uno de los servidores de los que
disponemos,sobre tarjetas grficas, monitores, ...
\end{itemize}
\end{itemize}
Se recomienda leer los siguientes ficheros (como mnimo): README,
README.Config, VideoModes.doc y README.Linux adems de las pginas del
manual (comando man) referentes al XFree86 y al servidor escogido.
\section{Hardware necesario}
XFree86 puede ser ejecutado en la mayora del hardware existente en el
mercado destinado a los grficos. Dependiendo del servidor escogido
podremos ejecutar el entorno X en diferentes tipos de hardware, cada
servidor est concebido para soportar un grupo concreto de tarjetas
grficas, desde las monocromo, pasando por las VGA, SVGA, ... todo
ello con buses del tipo ISA, VESA o PCI. Como ejemplo a continuacin
se detalla parte del hardware que puede manejar el servidor XF86_SVGA,
destinado al manejo de este tipo de tarjetas grficas:
\begin{itemize}
\item Tseng ET3000, ET4000AX, ET4000/W32
\item Western Digital/Paradise PVGA1
\item Western Digital WD90C00, WD90C10, WD90C11,
WD90C24, WD90C30, WD90C31, WD90C33
\item Genoa GVGA
\item Trident TVGA8800CS, TVGA8900B, TVGA8900C,
TVGA9000i, TVGA9100B, TVGA9200CX, TVGA9320,
TVGA9400CX, TVGA9420
\item ATI 18800, 18800-1, 28800-2, 28800-4, 28800-5, 28800-6, 68800-3, 68800-6, 68800AX, 68800LX, 88800
\item NCR 77C22, 77C22E, 77C22E+
\item Cirrus Logic CLGD5420, CLGD5422, CLGD5424, CLGD5426, CLGD5428,
CLGD5429, CLGD5430, CLGD5434, CLGD6205, CLGD6215, CLGD6225,
CLGD6235, CLGD6420
\item Compaq AVGA
\item OAK OTI067, OTI077
\item Avance Logic AL2101
\item MX MX68000, MX680010
\item Video 7/Headland Technologies HT216-32
\end{itemize}
Dos definiciones previas:
\begin{description}
\item[Servidor]: es la parte del software que va a encargarse del
manejo del hardware tanto grfico como el resto de componentes del
ordenador, establecer un interfaz con todas las aplicaciones cliente
que corrern en el sistema y que simplemente han de enviar las rdenes
precisas al servidor para obtener los resultados necesarios.
\item En la configuracin del XFree86 no hablaremos de las
tarjetas grficas refirindonos a su nombre (marca y modelo) sino al
chipset (juego de chips) que la integran, en la definicin del
hardware que soporta cada servidor nos vamos a encontrar con la
especificacin de los juegos que puede manejar, agrupados por sus
fabricantes. Podemos conocer la tarjeta que tenemos pero nos hace
falta saber la circuitera que integra.
\end{description}
El primer paso que tenemos que dar es escoger un servidor de los que
tenemos disponibles, esto es imprescindible (la utilidad setup nos
obligar a escoger uno) antes de iniciar nuestro cometido.
Tambin hay que hacer una resea en cuanto al resto del hardware
necesario, XFree86 necesita gran cantidad de recursos para
funcionar. En la documentacin de que se dispone se indica que un
procesador Intel 386 (o compatible) con la mxima velocidad posible y
4 Mb. de memoria RAM es la configuracin mnima para poder ejecutar X,
pero se recomienda al mismo tiempo el disponer de un procesador modelo
486 y de 8 Mb. de memoria RAM para poder ejecutar el entorno en unas
condiciones optimas. En general se puede decir que, independientemente
del procesador habremos de disponer de 16 Mb de memoria virtual como
mnimo (8 Mb. de RAM y 8 de rea de intercambio) para que el sistema
funcione bien, a ms memoria principal, mejor. Si no disponemos de
rea de intercambio teniendo 16 Mb. de memoria principal o ms no ser
necesario el configurarla.
\section{Instalacin del Software }
Una vez ms podemos acudir al programa SETUP para realizar este
proceso. Hemos de instalar las series X y XAP como mnimo para poder
utilizar la versin del X Window que vamos a utilizar. Si posee un
conocimiento exacto del software que necesita instalar y donde se
encuentra puede utilizar PKGTOOL, pero conviene recordar que
instalando este software 'a mano' habr que introducir un comando a
fin de dejar el sistema a punto para su configuracin, todo esto se
describe a continuacin.
El primer paso a dar es escoger el servidor que se ajusta a nuestras
necesidades, esto lo podemos hacer consultando los ficheros contenidos
en el directorio /var/X11R6/lib/doc con nombre 'README.xxx' siendo xxx
el nombre de cada uno de los servidores y adems podemos recurrir al
manual de cada uno de ellos5. Los servidores de los que disponemos
son:
\begin{itemize}
\item XF86_SVGA:
Servidor genrico para tarjetas SVGA. Contiene soporte para
juegos de chips acelerados6 de los fabricantes Cirrus 542[0,2,4,6,8,9], 543[0,4], Western Digital 90C3[1,3] y Oak Technologies Inc. OTI087, no acelerado para el resto de chips.
\item XF86_Mono:
Para tarjetas del tipo Monocromo, incluso las Hrcules.
\item XF86_VGA16:
Para tarjetas VGA con capacidad para 16 colores.
\item XF86_S3:
Servidor acelerado para tarjetas con chips S3.
\item XF86_Mach32:
Servidor acelerado para tarjetas con chips ATI Mach32.
\item XF86_Mach64:
Servidor acelerado para tarjetas con chips ATI Mach64.
\item XF86_Mach8:
Servidor acelerado para tarjetas con chips ATI Mach8.
\item XF86_8514:
Servidor acelerado para tarjetas con chips 8514/A.
\item XF86_P9000:
Servidor acelerado para tarjetas con chips P9000.
\item XF86_AGX:
Servidor acelerado para tarjetas con chips AGX.
\item XF86_W32:
Servidor acelerado para tarjetas con chips ET4000/W32.
\end{itemize}
Una vez escogido el servidor que mejor se adapta a nuestras
necesidades daremos paso a la instalacin del software. Si lo hacemos
mediante el programa SETUP el mismo har todas las tareas de
instalacin necesarias por nosotros, de hacerlo mediante PKGTOOL o con
los comandos tar y gzip hemos de asegurarnos que el servidor est
correctamente instalado mediante el comando:
\begin{verbatim}
# ln -sf /usr/X11R6/bin/XF86_SVGA /usr/X11R6/bin/X
\end{verbatim}
Esto crear un enlace al fichero XF86_SVGA (puesto como ejemplo)
llamado X, en este caso tendremos que el fichero X seala al servidor
que hemos escogido, si tecleamos:
\begin{verbatim}
# ls -all X
\end{verbatim}
obtendremos por pantalla el siguiente resultado:
{\tt lrwxrwxrwx 1 root root 24 Mar 19 18:21 X->/usr/X11R6/bin/XF86_SVGA}
Si la instalacin se hace mediante SETUP es recomendable hacerla con
la opcin VERBOSE activada de forma que podemos ver y confirmar todo
el software que se va a instalar, de esta forma nos podemos hacer una
idea de todas las utilidades de que vamos a disponer para utilizar el
entorno.
\section{Configuracin.}
\subsection{Detectando el Hardware.}
En este momento y tras revisar todos los conceptos desarrollados en
los captulos anteriores nos podemos encontrar ante dos situaciones
bien distintas:
\begin{enumerate}
\item Conocemos perfectamente todos los parmetros necesarios, ya que
disponemos de informacin tcnica suficiente tanto del monitor como de
la tarjeta grfica que tenemos instalada o, por otra parte, nuestro
hardware coincide exactamente con la informacin disponible en alguno
de los ficheros de ayuda que acompaan a Xfree86. En este caso el
proceso ser muy sencillo, ya que nicamente tendremos que trasladar
esto parmetros al lugar correcto y, salvo pequeos ajustes, tendremos
funcionando nuestro servidor X y alguna de las aplicaciones con las
que contamos (clientes).
\item No disponemos de informacin alguna referente al ordenador en el
que vamos a instalar XFree86 (cosa bastante frecuente en los
denominados ordenadores "clnicos"). Aqu tendremos que recurrir
igualmente a los ficheros mencionados, pero antes podemos ejecutar un
comando que nos va a servir para obtener informacin muy til sobre
nuestro sistema:
\end{enumerate}
\begin{verbatim}
# X -probeonly > salida.tmp1 2>&18
\end{verbatim}
De esta forma en el fichero creado (salida.tmp1) tendremos informacin
que nos puede ser de inters, la entrada
\begin{verbatim}
'2>&1'
\end{verbatim}
permite que el fichero recoja la salida estndar y los errores.
En el ltimo punto de este apartado se describe mayor informacin
sobre todos los valores que se necesitan conocer y cmo extraerlos a
partir de la informacin tcnica disponible sobre la tarjeta grfica y
el monitor. La configuracin detallada a continuacin se basa en
parmetros que pueden funcionar en nuestra mquina pero no por ello
son los ptimos, se tratan en general de contribuciones de distintos
autores, valores estndar para una familia de perifricos, etc...
\begin{figure}[htbH]
\tiny
\begin{verbatim}
XFree86 Version 3.1.2 / X Window System
(protocol Version 11, revision 0, vendor release 6000)
Operating System: Linux
Configured drivers:
SVGA: server for 8-bit colour SVGA (Patchlevel 0):
et4000, et4000w32, et4000w32i, et4000w32p, et3000, pvga1, wd90c00,
wd90c10, wd90c30, wd90c24, wd90c31, wd90c33, gvga, vgawonder,
tvga8800cs, tvga8900b, tvga8900c, tvga8900cl, tvga9000, clgd5420,
clgd5422, clgd5424, clgd5426, clgd5428, clgd5429, clgd5430, clgd5434,
clgd5436, clgd6205, clgd6215, clgd6225, clgd6235, ncr77c22, ncr77c22e,
cpq_avga, oti067, oti077, oti087, mx, al2101, ali2228, ali2301,
ali2302, ali2308, ali2401, cl6410, cl6412, cl6420, cl6440, video7,
ct65520, ct65530, ct65540, ct65545, ark1000vl, ark1000pv, ark2000pv,
realtek, generic
(using VT number 7)
XF86Config: /usr/X11R6/lib/X11/XF86Config
(**) stands for supplied, (--) stands for probed/default values
(**) Mouse: type: Microsoft, device: /dev/mouse, baudrate: 1200
(**) SVGA: Graphics device ID: "Generic SVGA"
(**) SVGA: Monitor ID: "Generic Monitor"
(**) FontPath set to "/usr/X11R6/lib/X11/fonts/misc/"
(--) Trident chipset version: 0x13 (TVGA8900C)
(--) SVGA: chipset: tvga8900c
(--) SVGA: videoram: 1024k
(--) SVGA: clocks: 25.14 28.32 44.84 35.85 57.15 64.84 50.29 39.84
(--) SVGA: Maximum allowed dot-clock: 90.000 MHz
(**) SVGA: Mode "640x480": mode clock = 25.175, clock used = 25.140
(**) SVGA: Virtual resolution set to 800x600
(--) SVGA: SpeedUp code selection modified because virtualX != 1024
\end{verbatim}
\caption{\label{Figura-4-1} Aspecto del fichero salida.tmp1}
\end{figure}
Podemos ver que ya tenemos informacin sobre la tarjeta grfica que
tenemos instalada y una lnea indicada como 'clocks' que puede ser de
utilidad posteriormente.
Existe un programa que tambin ayuda a dar informacin sobre nuestra
tarjeta grfica que se indica como opcional si el proceso anterior no
ha tenido el xito esperado, este es el Superprobe. Tras su invocacin
tendremos una pantalla similar a la siguiente y la informacin que se
indica:
\begin{verbatim}
SuperProbe Version 2.5
(c) Copyright 1993,1994 by David Wexelblat <dwex@xfree86.org>
(...)
6-bit First video: Super-VGA
Chipset: Trident 8900C
Memory: 1024 Kbytes
RAMDAC: Generic 8-bit pseudo-color DAC
(with 6-bit wide lookup tables (or mode))
\end{verbatim}
Tenemos igualmente las caractersticas de nuestra tarjeta grfica con
la que podemos acceder a los ficheros Devices y ModeDB.txt para buscar
los valores para este parmetro que coincidan.
Una vez hemos hecho este proceso previo vamos a crear el fichero
principal de configuracin para nuestro sistema, XF86Config,
ubicndolo en el directorio /var/X11/lib. Tenemos uno con el nombre
XF86Config.eg que nos va a servir como base para desarrollar nuestro
propio fichero de configuracin, si lo deseamos podemos crear una
copia del mismo a partir de la cual trabajar:
{\tt \# cp -a XF86Config.eg XF86Config}
\subsection{El Fichero XF86Config.}
Est estructurado en siete secciones principales, cada una de las
cuales contiene informacin referente a distintos parmetros que va a
necesitar para funcionar el servidor grfico, estos son:
\begin{description}
\item[Files] Directorios donde va a buscar los ficheros necesarios
para poder utilizar distintas fuentes y colores.
\item[ServerFlags] Algunas opciones a utilizar a la hora de
ejecutar el servidor X.
\item[Keyboard] Configuracin de algunas teclas especiales y la
forma en que el servidor va a responder ante stas.
\item[Pointer] Para la configuracin del ratn.
\item[Monitor] Datos sobre el monitor.
\item[Device] Aqu es donde especificaremos todos los datos
referentes a la tarjeta grfica.
\item[Screen] Configuracin del rea de trabajo de la que podemos
disponer en nuestra pantalla.
\end{description}
Todas las secciones tienen una sintaxis similar:
\begin{verbatim}
Section "Nombre de la Seccin"
Parmetros
.
.
EndSection
\end{verbatim}
Cada una de las secciones ser descrita con el fin de especificar la
estructura de nuestro sistema, en general no hay que hacer muchos
cambios en este fichero, exceptuando las secciones Monitor y Device.
El comando introducido para la creacin del fichero salida.tmp1
extraer ciertos valores del fichero (los marcados con el smbolo
(**)) y los marcados con el smbolo (--) los calcular a partir del
hardware disponible y ciertos algoritmos que el servidor contiene.
Las modificaciones a realizar en el fichero las podemos hacer con
cualquiera de los procesadores de texto que acompaan al LINUX (vim,
jed, jove, emacs...), con el que estemos ms familiarizados.
\subsubsection{Files}
En esta seccin generalmente no se ha de hacer cambio alguno, a no ser
que hayamos instalado determinados tipos de fuentes de carcteres
extra que deseamos que el servidor encuentre. Si durante la
instalacin del software hemos instalado las fuentes denominadas
'75dpi' y '100dpi' incluiremos estas lneas en la seccin (eliminando
el signo '\#' del comienzo de cada lnea).
\subsubsection{Serverflags}
Tenemos tres parmetros que afectarn al comportamiento del servidor
durante su funcionamiento.
\begin{itemize}
\item NoTrapSignals permite al servidor el interrumpirse a la llegada
de cierto tipo de seales y crear un fichero que despus podremos
revisar con un programa depurador (debugger). La opcin por defecto
consiste en una salida 'limpia' del programa.
\item DontZap Inhabilita el uso de la combinacin de teclas
<Ctrl>+<Alt>+<Del> para terminar la ejecucin del servidor.
\item DontZoom: Activada har que no podamos cambiar la resolucin
(modos) del XFree86 a que podemos optar durante la ejecucin del
servidor mediante las teclas <Ctrl>+<Alt>+<TeclNum_+> y
<Ctrl>+<Alt>+<TeclNum_-> (signos +/- del teclado numrico).
\end{itemize}
\subsubsection{Seccin Keyboard}
En el apartado Protocol dejaremos definido el "Standard" ya que no es
muy normal el tener que utilizar el modo "Xqueue" debido al hardware
para el que est concebido.
\begin{itemize}
\item Autorepeat viene seguido de dos parmetros que van a permitirnos
el afinar el comportamiento del teclado en cuanto a la capacidad de
autorepeticin cuando mantenemos una tecla pulsada durante un tiempo.
\item ServerNumLock permite al servidor el utilizar la parte numrica
del teclado.
\item Xleds seguido de la serie de nmeros del uno al tres (1, 1 2 1
2 3) har que el software cliente maneje los indicadores luminosos del
teclado (NumLock, CapsLock y ScrollLock).
\item LeftAlt, RightAlt, AltGr, ScrollLock y RightAlt seguido de uno
de los parmetros siguientes: Meta, Compose, ModeShift, ModeLock,
ScrollLock, Control nos va a definir el comportamiento de estas teclas
que podamos considerar como 'especiales'. Si no especificamos nada
los valores por defecto sern:
\begin{verbatim}
LeftAlt Meta.
RightAlt Meta.
RightCtrl Compose.
ScrollLock ModeLock.
\end{verbatim}
Ser necesario modificar el valor de la tecla RightAlt a ModeShift, de
esta forma el servidor reconocer la tecla marcada generalmente como
"Alt Gr".
\end{itemize}
\subsubsection{Seccin Pointer}
\begin{itemize}
\item Microsoft es el parmetro que utilizaremos en el apartado
Procotol dado que la mayora de los ratones existentes son compatibles
con este protocolo, si disponemos de un ratn que no responde con este
protocolo podemos probar con uno de los siguientes: BusMouse,
Logitech, MMSeries, Mouseman, MouseSystems, PS/2, MMHitTab, OSMouse.
El apartado Device contiene el fichero que manejar el ratn y que
estar contenido en el directorio /dev, esta lnea puede contener
'/dev/mouse' como enlace al nombre del manejador del puerto en el que
tengamos conectado el dispositivo. Es conveniente el comprobar si
existe este enlace, si necesitamos crearlo nosotros mismos o, si lo
deseamos, podemos poner el nombre directamente del manejador de la
forma '/dev/ttyS0' (puerto al que lo tengamos conectado).
\item BaudRate <valor> indicar al servidor la velocidad de
comunicacin con el ratn (en baudios). El valor estndar es 1200.
\item Emulate3Buttons y Emulate3Timeout <valor> permiten al servidor
el emular la existencia de un tercer botn en nuestro ratn en el
supuesto que no lo tuviese o no lo reconoce existiendo ste, esto se
hace pulsando los dos botones simultneamente (en uno con tres botones
no utilizaremos el botn central).
\item ChordMidle reconoce el mencionado 3er. botn del ratn, aunque
se especifica que es para ratones del tipo Logitech.
\item SampleRate <valor> Fija el nmero de eventos que el ratn
enviar al servidor por segundo. Vlido solo para algunos ratones
Logitech.
\item ClerDTR 'limpia' la lnea DTR del puerto serie usado por el
ratn. Vlido slo para ratones que utilizan el protocolo
MouseSystems.
\item ClearRTS Tiene el mismo objetivo que el parmetro anterior pero
en este caso se encarga de la lnea RTS.
\end{itemize}
\subsubsection{Seccin Monitor.}
En esta seccin especificaremos el tipo de monitor disponible y los
modos (resolucin) con los que queremos trabajar, hay varios tipos
disponibles dependiendo del servidor, monitor y tarjeta grfica:
640x480, 800x600, 1024x768 y 1280x1024. Pero no slo existen estos
modos, en teora se puede configurar cualquier modo que nuestro
hardware pueda gestionar siempre que los valores introducidos indiquen
al servidor como ha de comportarse.
En funcin del hardware podremos trabajar con una, dos, tres o todas
las resoluciones disponibles sin ms que pulsar la combinacin de
teclas <Ctr>+<Alt> y el signo '+' '-' del teclado numrico durante
la ejecucin de X-Window, generalmente los modos 640x480 y 800x600 son
soportados por todo tipo de hardware.
En el fichero README.Config como apartado final tenemos una serie de
modos disponibles y los parmetros que tendremos que introducir en
nuestro fichero XF86Config.
En la figura podemos ver los modos agrupados por la resolucin y con
los parmetros a utilizar en el fichero de configuracin, a stos
valores debemos de hacer constante referencia a la hora de configurar
la seccin que se describe.
\begin{figure}[htbH]
\small
\begin{verbatim}
# Mode Refresh Hor. Sync Dot-clock Interlaced? VESA?
# -------------------------------------------------------------
# 640x480 60Hz 31.5k 25.175M No No
# 640x480 60Hz 31.5k 25.175M No No
# 640x480 63Hz 32.8k 28.322M No No
# 640x480 70Hz 36.5k 31.5M No No
# 640x480 72Hz 37.9k 31.5M No Yes
# 800x600 56Hz 35.1k 36.0M No Yes
# 800x600 56Hz 35.4k 36.0M No No
# 800x600 60Hz 37.9k 40.0M No Yes
# 800x600 60Hz 37.9k 40.0M No No
# 800x600 72Hz 48.0k 50.0M No Yes
# 1024x768i 43.5Hz 35.5k 44.9M Yes No
# 1024x768 60Hz 48.4k 65.0M No Yes
# 1024x768 60Hz 48.4k 62.0M No No
# 1024x768 70Hz 56.5k 75.0M No Yes
# 1024x768 70Hz 56.25k 72.0M No No
# 1024x768 76Hz 62.5k 85.0M No No
# 1280x1024i 44Hz 51kHz 80.0M Yes No
# 1280x1024i 44Hz 47.6k 75.0M Yes No
\end{verbatim}
\caption{\label{Figura-4-2} Extracto de la tabla de modos disponibles}
\end{figure}
A continuacin se explica la forma en que hemos de completar esta
seccin nicamente de forma que tengamos disponible un par de modos o
resoluciones. Si deseamos disponer de ms modos el mecanismo es
similar.
Dependiendo de la tarjeta grfica y el monitor instalados optaremos
por una de las formas en que podemos configurar los modos que se nos
ofrece.
\begin{figure}[htbH]
\begin{verbatim}
# 640x480@60Hz Non-Interlaced mode
# Horizontal Sync = 31.5kHz
# Timing: H=(0.95us, 3.81us, 1.59us), V=(0.35ms, 0.064ms, 1.02ms)
#
# name clock horizontal timing vertical timing flags
"640x480" 25.175 640 664 760 800 480 491 493 525
# Alternate 800x600@56Hz Non-Interlaced mode
# Horizontal Sync = 35.4kHz
# Timing: H=(0.89us, 4.00us, 1.11us) V=(0.11ms, 0.057ms, 0.79ms)
#
# name clock horizontal timing vertical timing flags
"800x600" 36 800 832 976 1016 600 604 606 634
\end{verbatim}
\caption{\label{Figura-4-3} Algunos de los modos en su especificacin
concreta}
\end{figure}
Los tems que forman la seccin son:
\begin{itemize}
\item Identifier "<cadena>": Aqu hemos de introducir el nombre de
nuestro monitor a fin de identificarlo. Este nombre deber coincidir
con el introducido posteriormente en la seccin Screen. Si vamos a
definir varias secciones Monitor cada una debe tener un identificador
propio.
\item VendorName "<cadena>": Fabricante del Monitor.
\item ModelName "<cadena>": Modelo del Monitor.
Estas dos ltimas entradas son opcionales y pueden dejarse tal como
estn (al igual que la primera si slo vamos a tener un monitor
configurado).
\item HorizSync <rango>: Especificaremos el valor/es del rango/s de
frecuencia/s horizontal/es (Tasa de Desplazamiento Horizontal9) del
monitor. Existen varias formas de especificar este valor, se puede ver
en el fichero como ejemplo:
\begin{itemize}
\item Valor constante: 31.510 para monitores con frecuencia fija.
\item Rango de Valores: 30-64 para monitores multifrecuencia.
\item Mltiples valores: 31.5, 35.2 para monitores con frecuencia fija
y la necesidad de especificar varios valores.
\item Mltiples Rangos: 15-25, 30-50 para monitores multifrecuencia
con varios rangos de valores.
\end{itemize}
La frecuencia indica el nmero de lneas trazadas por segundo que el
monitor puede soportar durante su trabajo.
Esta forma de indicar los valores tambin nos ser til para el
siguiente (VertRefresh).
La unidad por defecto son los kiloherzios (kHz), aunque podemos
especificar otros mltiplos sin ms que indicarlo (Mhz para
Megaherzios, Hz para Herzios).
\item VertRefresh <rango>: Los valores que indiquemos en este apartado
son para la Tasa de Desplazamiento Vertical del monitor, la unidad por
defecto en este caso es el Herzio (podemos especificar tambin
kiloherzios y megaherzios). En este caso damos a conocer el nmero de
imgenes por segundo (entendiendo una imagen como el trazado de una
pantalla completa) a que el monitor puede trabajar.
Tanto la Tasa de Desplazamiento Horizontal como la Vertical ayudarn
al servidor a conocer si los modos que vamos a especificar
posteriormente son soportados por el monitor.
Si desconocemos los valores para el monitor en el que estamos
configurando el X Window tenemos tres opciones:
\begin{enumerate}
\item Recurrir al fichero Monitors en el que
tenemos una lista de monitores y los modos que se pueden
configurar en estos. Est formada en base de contribuciones de
usuarios.
\begin{verbatim}
#Date: Fri, 16 Sep 1994 23:16:32 -0700
#From: "Leonard N. Zubkoff" <lnz@dandelion.com>
Section "Monitor"
Identifier "Apollo 1280x1024-68Hz"
VendorName "Apollo"
ModelName "010700-005"
BandWidth 125
HorizSync 73.702
VertRefresh 68.24
Mode "1280x1024"
DotClock 124.996
HTimings 1280 1312 1504 1696 VTimings 1024 1027 1030 1080
EndMode
EndSection
\end{verbatim}
\item En la distribucin Slackware viene un programa llamado
ConfigXF86 que ayuda en la configuracin del servidor. Consta
de una serie de mens en los que pregunta el tipo de hardware
a configurar, algunos parmetros que debe conocer y ste
crear un fichero (llamado Xconfig!) con los valores
correctos. Seguimos teniendo el problema a la hora de no
conocer exactamente el hardware disponible.
\item Escoger la entrada del fichero Monitors que ms se
parece al nuestro y probar a incluirlo en nuestro fichero, de
esta forma haremos la prueba por 'ensayo y error', ya que al
arrancar el Servidor ste nos indicar mediante un mensaje de
error si los campos no estn bien introducidos (podemos crear
un fichero con la salida estndar para poder ver despus el
contenido de este en este caso). De esta forma seguimos
corriendo el riesgo de daar el monitor.
\end{enumerate}
\item Gamma <valor/es>: Valor opcional para introducir la correccin
gamma de un monitor. Puede ser introducido como un valor o tres
valores separados. No todos los servidores usan esta informacin.
\item Mode "<nombre>" Detallaremos a continuacin los modos en que
queremos que trabaje el monitor. Podremos definir tantos como el
hardware pueda soportar. Es conveniente el intentarlo con un modo de
los ms simples (640x480 por ejemplo) hasta que funcione correctamente
para, posteriormente, configurar los modos adicionales que deseemos.
En este apartado existen igualmente dos formas de definir los campos
que van a formar cada modo:
\begin{verbatim}
ModeLine "640x480" 25.127 640 664 760 800 480 491 493 525
Mode "640x480"
DotClock 25.127
HTimings 640 664 760 800
VTimings 480 491 493 525
EndMode
\end{verbatim}
Que modos se pueden configurar y cmo se pueden conocer estos
valores?
Para definir un modo hay que tener en cuenta que el valor DotClock del
modo a definir coincide con uno de los valores que hemos obtenido de
los DotClocks de la tarjeta grfica y obtendremos el resto de
parmetros del fichero README.Config.
Del fichero salida.tmp1 que hemos creado anteriormente observemos los
valores obtenidos para la tarjeta grfica:
{\tt (--) SVGA: clocks: 25.14 28.32 44.84 35.85 57.15 64.84 50.29 39.8411}
Y que el valor marcado en 'negrita' coincide (aunque no exactamente)
con el primer valor sealado para el modo escogido para el ejemplo:
\begin{verbatim}
ModeLine "640x480" 25.127 640 664 760 800 480 491 493 525
Mode "640x480"
DotClock 25.127
HTimings 640 664 760 800
VTimings 480 491 493 525
EndMode
\end{verbatim}
Esta regla se tiene que aplicar para el resto de modos que existen en
el fichero README.Config, el primer valor de la resolucin escogida
debe coincidir con uno de los valores de la lnea clocks de la tarjeta
grfica.
Si tenemos dos formas de configurar un modo y en ambas el valor para
DotClock coincide con alguno de los ndices de la lnea mencionada,
podemos probar las dos formas y ver cual se ajusta ms al hardware o
funciona correctamente (siguiendo con el supuesto de no conocer el
hardware disponible). Es aconsejable intentar aquellos marcados como
VESA
\begin{verbatim}
# Alternate 800x600@60Hz Non-Interlaced mode
# Horizontal Sync = 37.9kHz
(...)
# VESA 800x600@72Hz Non-Interlaced mode
# Horizontal Sync = 48kHz
# Timing: H=(1.12us, 2.40us, 1.28us) V=(0.77ms, 0.13ms, 0.48ms)
(...)
\end{verbatim}
En este caso podemos escoger primero el segundo grupo de valores.
\begin{figure}[htbH]
\small
\begin{verbatim}
# Alternate 800x600@60Hz Non-Interlaced mode
# Horizontal Sync = 37.9kHz
# Timing: H=(1.20us, 3.80us, 1.40us) V=(0.13ms, 0.053ms, 0.69ms)
#
# name clock horizontal timing vertical timing flags
"800x600" 40 800 848 1000 1056 600 605 607 633
# VESA 800x600@72Hz Non-Interlaced mode
# Horizontal Sync = 48kHz
# Timing: H=(1.12us, 2.40us, 1.28us) V=(0.77ms, 0.13ms, 0.48ms)
#
# name clock horizontal timing vertical timing flags
"800x600" 50 800 856 976 1040 600 637 643 666 +hsync +vsync
\end{verbatim}
\caption{\label{Figura-4-4} Dos formas de definir el modo "800x600"}
\end{figure}
Los cuatro valores que se definen en la figura como horizontal timing
y vertical timing indican al servidor cmo ha de hacer para visualizar
el modo definido.
\item Flags: Nos servir para especificar parmetros opcionales en la
definicin. En este apartado podemos introducir los siguientes
valores: "Interlace" para el modo entrelazado. "DoubleScan" cuando
cada lnea debe ser definida dos veces. "+HSync" y "-HSync" para
ajustar la sincrona horizontal del monitor al igual que los
parmetros "+VSync" y "-VSync" para la vertical. "Composite" para
indicar que la sincrona es de este tipo en monitores que lo
soporten. "+CSync" y "-CSync" sirven igualmente para concretar este
apartado.
\end{itemize}
\subsubsection{Seccin Device.}
Para la definicin de la tarjeta grfica instalada. En la seccin
anterior se ha tenido que hacer constante referencia a este elemento a
pesar de no estar especificado hasta el momento. Esta seccin es
opcional.
\begin{itemize}
\item Identifier "<cadena>": Al igual que en el caso anterior, el
identificador asignado deber coincidir con el colocado en la seccin
Screen posterior. Podemos tener varias tarjetas grficas definidas.
\item VendorName "<cadena>": Nombre del fabricante (opcional)12.
\item BoardName "<cadena>": Nombre de la tarjeta grfica (opcional).
\item Chipset "<tipo>": Especifica tipo de chip que configura la
tarjeta. En muchos casos esta entrada no hace falta indicarla, pues el
servidor puede probar el tipo de tarjeta instalada (opcional).
\item Ramdac "<tipo>": Tipo de RAMDAC usado por la tarjeta. Utilizado
solo por algunos servidores y en otros casos no hace falta indicarlo
(opcional).
\item DacSpeed <valor>: Velocidad del RAMDAC, indicado en
Mhz. Utilizado por un numero muy reducido de servidores.
\item Clocks <valor1> <valor2> ...... : Quiz el campo ms importante
de esta seccin, aqu especificaremos los valores para los pulsos de
reloj que utiliza la tarjeta grfica. Para el ejemplo los extraeremos
del fichero creado al principio (salida.tmp1) y los colocaremos en
esta lnea sin alterar su orden ni intentar el redondeo de alguno de
ellos, hemos de trasladar estos valores tal cual.
De no colocar esta lnea (tambin puede tomarse como opcional), ser
el servidor el que los calcule cada vez que arranque o basndose en la
informacin de la entrada siguiente, utilizadas para tarjetas de tipo
programable.
\item Clockchip "<tipo>": Especifica el tipo de chip que incorpora la
tarjeta grfica para las que lo tienen del tipo programable. Slo
algunos servidores soportan este tipo de tarjetas (opcional).
\item ClockProg "<comando>" [textclock]: Se ejecutar el comando
sealado a fin de fijar el reloj de la tarjeta grfica en lugar de
utilizar el cdigo incorporado al servidor. Este comando debe
especificarse como una ruta en la estructura de ficheros
disponible. La lnea Clocks debe estar presente para especificar que
valores estarn disponibles para el servidor.
La palabra textclock indica al servidor que el comando debe ser
ejecutado para restaurar el modo texto a la salida o en el cambio de
terminales virtuales, debe coincidir con uno de los valores de la
lnea Clocks.
El comando es ejecutado con el identificador real del usuario con la
salida y la entrada estndar (stdin y stdout) hacia la salida
grfica. A este se le pasan dos argumentos, la frecuencia del reloj en
Mhz y un ndice a la entrada concreta en la entrada Clocks. La salida
puede ser 0 (correcto) o un valor en el rango 1-254.
El comando es ejecutado en la inicializacin del primer modo
configurado y en el cambio de resolucin. Si el programa falla en su
comienzo el servidor terminar. Si es durante un cambio de modo, este
no es cambiado pero el servidor sigue ejecutndose.
\item Opcin "<cadena_de_opciones": En el manual del servidor tenemos
informacin de las opciones soportadas a la hora de ejecutar el
servidor (opcional). Tenemos otra opcin indicndolos en la subseccin
DISPLAY de la seccin siguiente.
\item VideoRam <memoria>: Cantidad de RAM de vdeo disponible, medida
en Kbytes. El servidor puede determinarla en el arranque (opcional).
\item BIOSBase <direccin>: Nos sirve para especificar la direccin
base de la parte de la BIOS encargada del manejo de la salida por
pantalla con tarjetas VGA. Normalmente sta es C0000 (hex.)
(opcional).
\item MemBase <direccin>: Indicar la direccin base de un buffer de
la tarjeta grfica destinado al trazado de lneas. Utilizado solo por
algunos servidores (opcional).
\item IOBase <direccin>: Especifica la direccin base de la BIOS para
la entrada/salida. Utilizada solo por algunos servidores (opcional).
\item DACBase <direccin>: La tarjeta grfica VGA dispone de un DAC
(Digital to Analogic Converter) como componente destinado a convertir
la seal digital a una analgica entendible por en monitor. Con este
campo indicamos la direccin de este componente (opcional).
\item POSBase <direccin>: Para la direccin base del POS. Utilizado
solo por algunos servidores (opcional).
\item COPBase <direccin>: Direccin base del coprocesador
numrico. Utilizado solo por algunos servidores (opcional).
\item VGABase <direccin>: Direccin base de la memoria de la tarjeta
grfica VGA. Utilizada solo por algunos servidores (opcional).
\item Instance <valor>: Indicaremos al servidor (el que lo utilice) si
la tarjeta grfica est integrada en la placa base o est colocada
como una tarjeta de expansin ms (opcional).
\item Speedup "<valor>": Detallaremos las velocidades habilitadas para
el servidor. Utilizado solo por algunos servidores (opcional).
\end{itemize}
Los siguientes tres parmetros estn indicados para el servidor
XF86_S3 nicamente, hay que dirigirse al manual de ste servidor para
ms detalles:
\begin{itemize}
\item S3MNAdjust <M> <N>
\item S3MClk
\item S3RefClock
\end{itemize}
\subsubsection{Seccin Screen}
Una vez introducidos el valor/es para los monitores y tarjetas
grficas que deseemos (recuerdo que se pueden definir varios en cada
una de las secciones) es en esta seccin en donde concretaremos que
configuracin ha de utilizar un servidor en particular. Podemos tener
varias secciones de este tipo.
\begin{itemize}
\item Driver "<cadena>": Cada una de estas secciones debe comenzar con
esta entrada y la <cadena> especificada debe ser nica. El servidor a
utilizar debe ser concretado en esta parte, podemos introducir: Accel,
Mono, SVGA, VGA2 y VGA16.
\item Device "<cadena>": Que dispositivo grfico vamos a utilizar
(debe estar definido anteriormente!).
\item Monitor "<cadena>": Monitor a utilizar (tambin definido con
anterioridad).
\item ScreenNo <nmero>: Para alterar el orden en que son consideradas
las entradas Screen. Si no se concreta el orden es el de entrada de
cada una de ellas (opcional).
\item BlankTime <valor>: Minutos que deben transcurrir el ordenador
sin actividad para que se apague la pantalla. El valor por defecto es
de 10 minutos. Se restablecer de nuevo la pantalla si pulsamos
cualquier tecla o movemos el ratn.
\item SuspendTime <valor>: Para monitores compatibles con el tipo VESA
DPMS este valor (en minutos) especifica el tiempo de inactividad para
pasar al estado 'suspendido'.
\item OffTime <valor>: Para los monitores anteriores, especifica el
tiempo para pasar al estado 'off', el valor por defecto es de 30.
\end{itemize}
SuspendTime y OffTime son utilizadas slo por algunos servidores.
\subsubsection{Subseccin Display}
Nos encontramos ante una subseccin incluida en la que estamos
especificando para determinar ciertos valores, a pesar de la
nomenclatura la sintaxis es igual a la de una seccin (con las
palabras Subsection EndSubsection).
Para algunos servidores y tarjetas grficas esta subseccin es
obligatoria. Si tenemos varias secciones Display cada una debe
identificarse por una entrada Depth nica que despus ser utilizada
en caso de definir, por ejemplo, ms de un tipo de resolucin en
cuanto a colores disponibles (8, 16...).
\begin{itemize}
\item Depth <valor>: Donde valor puede ser: 8, 15, 16 24 32. De esta
forma especificamos los 'bpp' (bits per pixel) que el servidor debe
utilizar (si tiene esta capacidad) para la generacin de colores y
depende de la memoria disponible en la tarjeta grfica. Por ejemplo
para una resolucin de "800x600" con una definicin de 16 bits por
pixel (65535 posibles colores) necesitamos $(800x600x16)/(8x1024)=
937.5$ Kb de memoria.
En memoria dispondremos de esta forma de los bits especificados para
referenciar un color concreto para cada pixel. El valor almacenado no
es mas que un ndice a un mapa de colores que indica al hardware como
ha de dibujar cierto color. A mayor valor mayor nmero de colores
podrn utilizar los clientes ejecutados.
\item Weight <valor>: Para indicar el 'peso' de los tres colores
bsicos que forman la imagen (RBG) cuando el servidor trabaja en el
modo 16bpp. Valores de referencia pueden ser 555 y 565 (opcional).
\item Virtual <valorx> <valory>: Resolucin de la pantalla virtual a
usar. El primer valor debe ser mltiplo de 8 para servidores en color
y de 32 para servidores monocromo. Si no existe este campo el servidor
lo calcular de forma que se puedan representar todos los modos
configurados. Algunos servidores no soportan esta capacidad
(opcional).
\item ViewPort <x> <y>: Determina la posicin inicial de la esquina
superior izquierda de la pantalla inicial. Slo es necesario cuando la
pantalla virtual es diferente de la resolucin del modo inicial
configurado. Si no se especifica se considerar la pantalla inicial
centrada en el rea virtual definida (opcional).
\item Modes "<cadena>" ....: Obligatoria para algunos
servidores. Indicaremos la lista de modos a utilizar concretados en la
seccin Monitor. Si algn modo no cumple ciertos requisitos en su
especificacin el servidor lo eliminar de los modos disponibles al
ejecutarse.
\item InvertVCLK "<cadena>" [0$\|$1]: Especifico del servidor
XF86_S3. Indica el estado invertido/no-invertido de los modos. Si el
modo es "*" se aplicar a todos los modos. Ciertas tarjetas grficas
necesitan este parmetro para funcional (opcional).
\item EarlySC "<cadena>" [0$\|$1]: Servidor XF86_S3 (opcional).
\item BlankDelay "<cadena>" <valor1> <valor2>: Para el servidor S3
(opcional).
\item Visual "<cadena>": Esta entrada opcional indica el tipo por
defecto de visualizacin para la pantalla principal (root). Para
servidores de 8bpp tenemos los siguientes valores: StaticGray,
GrayScale, StaticColor, TrueColor y DirectColor.
Para servidores de 16bpp y 32bpp solo tenemos disponible el valor
TrueColor.
Para el servidor de 1bpp disponemos del valor StaticGray.
Para servidores de 4bpp son: StaticGray, GrayScale, StaticColor,
PseudoColor.
\item Option "<opciones>": En el manual de cada uno de los servidores
se especifican ciertos parmetros que pueden ser incluidos en esta
lnea (opcional).
\item Black <red> <green> <blue>: Permite especificar el color 'negro'
en el manejador VGA2 del servidor XF86_Mono.
\item White <red> <green> <blue>: Para indicar el color 'blanco' como
en caso anterior.
\end{itemize}
A fin de configurar ciertos aspectos disponemos adems de dos
programas que permiten configurar detalles como el grfico a utilizar
como puntero, si deseamos que se emitan ciertas seales sonoras
durante nuestro trabajo, el aspecto de la pantalla principal (root),
posibilidades de ahorro de energa, etc.. Dichos programas son xset y
xsetroot.
Xset permite configurar el servidor desde la lnea de comandos (o
introduciendo los parmetros deseados en el fichero correspondiente),
para conocer la configuracin actual teclear 'xset q'.
Xsetroot lo utilizaremos si necesitamos configurar el aspecto del rea
de trabajo, permite escoger el tipo de ratn, el tipo de fondo a
utilizar (podemos incluir el grfico que deseemos), etc...
\section{ Clculo de valores para la entrada ModeLine}
A continuacin se expondr de forma detallada el mecanismo mediante el
cual se obtiene la imagen que podemos ver en nuestro monitor durante
una sesin de trabajo como base para entender todo el proceso descrito
anteriormente para configurar XFree86, por ltimo se describe paso a
paso un ejemplo de cmo calcular los valores que van a describir una
resolucin a partir de las caractersticas tcnicas de un monitor. El
uso de la terminologa anglosajona (siempre en cursiva) responde a un
intento de claridad utilizando al mximo lo que puede encontrarse en
cualquier documentacin al respecto no obstante se intentar utilizar
un trmino en castellano cuando sea posible.
Como en otras ocasiones formas de obtener un mismo resultado puede
haber varias una vez conocida la relacin entre los datos que se
necesitan utilizar, puede basarse en este caso para calcular las
entradas ptimas para su monitor. De no tener disponibles los datos
necesarios para operaciones como las descritas en el ejemplo pueden
utilizarse las frecuencias especificadas para el monitor a fin de
escoger la entrada vlida, siempre teniendo en cuenta si el monitor
soporta los valores asignados por el modo escogido.
Puede describirse la forma de dibujar la pantalla del ordenador
haciendo un smil con la escritura de un texto a mano o con un
procesador de textos, la tarjeta grfica emite una serie de seales
que provocan que tres haces de electrones (uno por color: rojo, azul y
verde) causen con su impacto en una zona sensible del tubo de imagen
el que aparezca un punto luminoso, este fenmeno es repetido con una
frecuencia muy alta, con el objetivo de mantener iluminado el mximo
tiempo posible esta zona de la pantalla (pixel), de no ser as el
punto se apagara sin ms.
Si aprovechamos este efecto para el trazado de lneas horizontales a
en base a puntos contiguos ya tenemos el patrn mnimo que
utilizaremos para cualquier dibujo. El trazado de las lneas se hace
de izquierda a derecha de la pantalla, por lo que empezando por la
esquina superior izquierda de la misma y siguiendo en la lnea de
abajo en sucesivas ocasiones tendremos como resultado el dibujo de una
pantalla completa.
Debido a las limitaciones impuestas por los monitores el trazado de
las lneas horizontales no comienza al principio de la pantalla ni
finaliza en el extremo, se deja un margen a ambos lados debido a que
el control de las seales en los extremos es difcil. Por el mismo
motivo no son dibujadas todas las lneas para el trazado de una
pantalla, de ah que la imagen presente un marco alrededor.
Hacen falta por tanto una serie de seales para que este proceso est
perfectamente sincronizado que son generadas por la tarjeta grfica
mediante un circuito del tipo 6845 o similar, adems dispone de
memoria RAM y otros componentes que ayudan al trabajo en modo texto y
grfico. El 6845 genera los pulsos de reloj (dot clocks) que van a
provocar el dibujado de los puntos en la pantalla, adems la seal
(horizontal sync) que provoca que se salte a la lnea siguiente para
trazar otra lnea (horizontal retrace) y, una vez finalizado el
trazado de una pantalla completa, (se ha llegado al extremo inferior
derecho de la pantalla) se debe producir una (vertical sync) que
provoque la vuelta al punto de partida de la pantalla (vertical
retrace).
Existen asimismo una serie de tiempos de espera que hay que respetar
antes y despus de la generacin de las seales descritas en el
prrafo anterior, para desactivar y activar correctamente los haces de
electrones durante estos intervalos, ya que no deseamos que se dibuje
nada en la pantalla. Estos tiempos se denominan Front Porch para el
instante antes de una seal y Back Porch para despus.
Con todo lo expuesto resolveremos un modo para un monitor y una
tarjeta grfica imaginarios, suponemos un monitor con las siguientes
caractersticas:
\begin{itemize}
\item Frecuencia Horizontal: 15-40 KHz.
\item Frecuencia Vertical: 40-100 Hz.
\item Ancho de Banda mximo: 80 MHz.
\item Sincronismo Horizontal: 2 ms.
\item Front Porch y Back Porch: 2 ms.
\item Sincronismo Vertical: 0,08 ms.
\item Front Porch: 0,02 ms.
\item Back Porch: 0,6 ms.
\end{itemize}
Nuestro objetivo consiste en calcular la entrada ModeLine de tal forma
que podamos trabajar en esta resolucin, adems de con una tasa de
refresco (RR13) de la imagen lo ms alta posible a fin de reducir
drsticamente el parpadeo de la imagen en la pantalla que en ocasiones
no es apreciable, pero puede perjudicarnos seriamente. El estndar
VESA define una frecuencia de 72 Hz (72 imgenes/segundo) como valor
ideal.
Con una Frecuencia Horizontal de 40 Khz. tenemos que se puede trazar
una lnea un tiempo de 25 ms $(1/40000)$ que con un tiempo total de
espera de 6 ms. (Sincronismo Horizontal + Back Porch + Front Porch)
nos deja con 19 ms. para el trazado de una lnea.
Dividiendo los 19 ms. entre el nmero de puntos totales que queremos
por lnea, obtendremos el tiempo que se tarda en dibujar cada uno de
ellos y de ah la frecuencia a la que ha de trabajar la tarjeta
grfica, si quiere realizarlo correctamente (este ser el valor que
pondremos como dotclock).
\begin{equation}
\text{Tiempo por pixel} = \frac{19 ms}{640 puntos} = 29.6 ns >> 30 ns.
\end{equation}
Por lo que necesitaremos que la tarjeta grfica trabaje al menos a 33
Mhz. para poder obtener dicho resultado. Utilizaremos el valor ms
cercano posible si no disponemos de ste y siempre por debajo del
ancho de banda mximo soportado por el monitor.
Todos los valores referidos al trazado horizontal (los cuatro primeros
de la lnea ModeLine sin contar la entrada dot clock) estn
especificados en puntos, por lo que necesitamos pasar los tiempos de
espera a esta magnitud. Tambin hay que sealar que todas estas
entradas deben ser mltiplos de 8 debido al tipo de registros
integrados en la tarjeta VGA y la forma en que el programa XFree86 los
utiliza.
Con 2 ms. de tiempo para los valores de espera hemos de saber cuantos
puede dibujar la tarjeta grfica en ese tiempo:
\begin{equation}
Puntos = \frac{2 ms}{33 Mhz} = 66 \rightarrow 64 \text{(mltiplo de 8 ms cercano)}
\end{equation}
Ya podemos introducir en la lnea los cinco primeros valores para la
resolucin deseada.
ModeLine "640x480" 33 640 (640+64) (640+64+64) (640+64+64+64)
Podemos ver que el primer valor se corresponde con el nmero de puntos
que deseamos, el segundo con el punto de inicio del trazado de una
lnea, el tercero en punto en el que ha de finalizar y por ltimo se
refleja el nmero total de puntos dibujados (aunque no visibles,
claro).
Los valores que definen el trazado vertical de la pantalla hemos de
trasladarlos a lneas, en este caso no es necesario el redondeo a un
valor mltiplo de 8. Para conseguir esto hemos de dividir los valores
presentados entre el tiempo que se tarda en trazar una lnea (25 ms)
obtenido al comienzo del ejemplo, obtenemos:
\begin{itemize}
\item Sincronismo Vertical: 3 lneas.
\item Front Porch: 0.8 lneas 1 lnea.
\item Back Porch: 24 lneas.
\end{itemize}
Obtenemos as los siguientes valores verticales:
480 481 484 508
El primer valor indica las lneas que queremos, la segunda y la
tercera en cual comienza y finaliza la seal de sincronismo y por
ltimo el nmero total de lneas trazadas.
Para los valores obtenidos podemos obtener la Frecuencia de Refresco
de la pantalla a partir del siguiente clculo:
% Dot clock 33 Mhz.
% RR = ----------------------------------= ------------------= 78 Hz.
% Puntos x Lineas (totales) 832 x 508
\begin{equation}
RR = \frac{ Dot clock}{Puntos \cdot Lineas (totales)} =
\frac{33 MHz}{832 \cdot 508} = 78 Hz
\end{equation}
Podemos ver que el valor conseguido est por encima del recomendado
por el estndar mencionado.
A lo largo de toda la exposicin se ha dado por entendido que no se
desea utilizar ningn modo entrelazado, debido a que no se trata de un
modo ptimo de trabajo con el entorno grfico y se encuentra ya en
desuso.
\section{Disfrutando de Xfree86.}
Una vez tenemos configurado el software se proceder a ejecutar
XFree86, si se hace tecleando:
{\tt \# X}
Simplemente arranca el servidor, por lo que la pantalla se nos
mostrar de color oscuro, aparecer el smbolo del ratn y ... nada
ms. Que se ha hecho mal?, la respuesta es NADA.
Acostumbrados a otros sistemas operativos se puede pensar que algo ha
ido mal y que, por tanto, hay que volver a revisar el fichero
XF86Config para ver que parmetro se ha introducido mal. Para
atenernos a la terminologa hay que decir que adems del servidor hay
que ejecutar algunos clientes bsicos para podernos comunicar con el
servidor correctamente, el principal en este caso es el gestor de
ventanas.
Se ejecutar el entorno utilizando el comando 'startx', fichero que
obtendr los parmetros que deseamos pasar al servidor y a los
clientes a ejecutar mediante el programa xinit que es el que realmente
realiza la tarea de arrancar el software.
Startx busca la existencia de los ficheros .xinitrc y .xserverrc en el
directorio del usuario que lo invoca, de no existir utilizar
/usr/X11R6/lib/X11/xinit/xinitrc y /usr/X11R6/lib/X11/xinit/xserverrc
respectivamente.
El fichero xserverrc generalmente no necesitaremos crearlo ya que por
defecto se ejecuta el servidor denominado X (recuerde que con este
valor ejecutaremos el escogido durante la instalacin).
Caso de no existir ninguno de los ficheros xinitrc posibles xinit
ejecutar:
{\tt \# xterm -geometry +1+1 -n login -display :0}
\begin{figure}[htbH]
\small
\begin{verbatim}
#!/bin/sh
# $XConsortium: startx.cpp,v 1.4 91/08/22 11:41:29 rws Exp $
# $XFree86: xc/programs/xinit/startx.cpp,v 3.0 1994/05/22 00:02:28 dawes Exp $
(...)
userclientrc=$HOME/.xinitrc
userserverrc=$HOME/.xserverrc
sysclientrc=/usr/X11R6/lib/X11/xinit/xinitrc
sysserverrc=/usr/X11R6/lib/X11/xinit/xserverrc
clientargs=""
serverargs=""
if [ -f $userclientrc ]; then
clientargs=$userclientrc
else if [ -f $sysclientrc ]; then
clientargs=$sysclientrc
fi
fi if [ -f $userserverrc ]; then
serverargs=$userserverrc
else if [ -f $sysserverrc ]; then
serverargs=$sysserverrc
fi
fi
whoseargs="client"
while [ "x$1" != "x" ]; do
case "$1" in
/''*|\.*) if [ "$whoseargs" = "client" ]; then
clientargs="$1"
else
serverargs="$1"
fi ;;
--) whoseargs="server" ;;
*) if [ "$whoseargs" = "client" ]; then
clientargs="$clientargs $1"
else
serverargs="$serverargs $1"
fi ;;
esac
shift
done
xinit $clientargs -- $serverargs
\end{verbatim}
\caption{\label{Figura-4-5} Fichero startx}
\end{figure}
Para el caso en que deseemos especificar algunas opciones que el
servidor se debe tener en cuenta a la hora de ejecutarse, se dispone
de las siguientes (estas opciones son generales, para ms informacin
acudir al manual del servidor que estemos utilizando):
\begin{itemize}
\item vtXX: Con el nmero 'XX' concretaremos el terminal virtual
(accesibles mediante las teclas F1...F12) que el servidor escoger
para su ejecucin. Si no se concreta se escoger el primero
disponible, es decir, sin procesos pendientes a la espera de entrada
de usuarios. Puede verse que terminal va a utilizarse en el fichero
'salida.tmp1' que creamos al comienzo, antes de crear el fichero
XF86Config, en la lnea '(using VT number 7)' .
\item -probeonly: El servidor finalizar antes de pasar a
ejecutarse. Acceder al fichero XF86Config para extraer cierta
informacin, el resto la detectar. De ah el comando descrito para la
creacin del fichero 'salida.tmp1'.
\item -bpp <valor>: Fija el valor para 'bits per pixel (bits
utilizados para especificar cada punto de la imagen en pantalla). El
valor por defecto es 8. No todos los servidores soportan el resto de
valores posibles (15, 16, 24, 32).
\item -weight <valor>: Para el valor de los tres colores (RGB) en el
modo 16bpp. Por defecto ser 565.
\item -gamma <valor>: Correccin para el parmetro gamma, en el rango
[0.1,10]. Por defecto es 1.0 para los valores R, G y B. No todos los
servidores lo soportan.
\item -rgamma <valor>: Igual al caso anterior para el campo R (color rojo).
\item -ggamma <valor>: Igual al caso anterior para el campo G (color verde).
\item -bgamma <valor>: Para el campo B (color azul).
\item -showconfig: Presenta una lista de 'drivers' grficos
configurados en el servidor.
\item -verbose: Muestra la mxima informacin posible en el arranque.
\item -xf86config <fichero>: El fichero de configuracin es distinto
al XF86Config. Slo se puede aprovechar esta posibilidad si se ejecuta
el servidor como administrador (root).
\item -keeptty: til para el testeo del servidor en su desarrollo.
\end{itemize}
\begin{figure}[htbH]
\small
\begin{verbatim}
#!/bin/sh
# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap
# merge in defaults and keymaps
if [ -f $sysresources ]; then
xrdb -merge $sysresources
fi
if [ -f $sysmodmap ]; then
xmodmap $sysmodmap
fi
if [ -f $userresources ]; then
xrdb -merge $userresources
fi
if [ -f $usermodmap ]; then
xmodmap $usermodmap
fi
# start some nice programs
xsetroot -solid SteelBlue
fvwm
\end{verbatim}
\caption{\label{Figura-4-6} Fichero xinitrc.fvwm}
\end{figure}
En realidad existen varios ficheros xinitrc.<nombre> en el directorio
/usr/X11R6/lib/X11/xinit y un enlace al fichero xinitrc.fvwm
(xinitrc). En el caso de ejemplo y que viene por defecto en la
instalacin se ejecuta el gestor de ventanas fvwm14.
Los ficheros que el fichero menciona inicialmente (.Xresources y
.Xmodmap) son los que configuran el entorno a nivel de recursos15 y
teclado. El programa que gestiona los recursos es el xrdb y para la
redefinicin del teclado es xmodmap.
En nuestro caso no existe inicialmente el fichero .Xresources por lo
que el sistema tomar por defecto los valores especificados en el
fichero .Xdefaults.
Podemos crear un fichero .xinitrc para cada usuario o modificar el
xinitrc para que todas las sesiones que iniciemos de XFree86 sean
afectadas por los mismos parmetros totalmente a nuestro gusto. Para
ello veamos un ejemplo muy sencillo de fichero:
\begin{verbatim}
#!/bin/sh
# Un simple fichero .xinitrc
# Iniciamos un terminal virtual (pueden ser ms).
color_xterm -geometry -20+10 -fg darkslategray -bg white &
# Otros clientes
oclock -geometry 70x70+5+5 &
xload -geometry 85x60+85+5 &
xsetroot -solid red &
# Ejecutamos el gestor de ventanas
exec fvwm
\end{verbatim}
En este ejemplo solo se ha introducido cinco clientes: un terminal
virtual, un sencillo reloj analgico, un monitor de la carga del
sistema, para definir el color de la pantalla y por fin el gestor de
ventanas. Sealar la importancia que tiene el que los clientes se
ejecuten en segundo plano (indicado por el smbolo '\&') o
concurrentemente y el comando exec para el gestor de ventanas.
De no ejecutar los clientes en segundo plano nos veramos en la
situacin de que el servidor los ejecutara uno despus de otro, en
este caso el terminal virtual sera el primero en ejecutarse, al
finalizar su ejecucin dara paso al reloj y as sucesivamente.
Con el comando exec el gestor de ventanas sustituir al proceso xinit
que arranc el servidor, de esta forma cuando salgamos del gestor de
ventanas tambin finalizar ste.
Cada uno de los clientes tiene una serie de modificadores propios que
nos ayudan a definir el tamao de la ventana en el que va a
ejecutarse, colores, posicin... que hay que buscar en el manual
propio a fin de poder configurarlo adecuadamente.
Por ltimo mencionar la forma de finalizar la ejecucin del servidor (
y posteriormente del tndem servidor+gestor de ventanas), se puede
hacer mediante las teclas: <Ctr>+<Alt>+<Backspace>16 o con la opcin
adecuada del gestor de ventanas.
Como se puede observar hasta el momento tenemos varias posibilidades a
la hora de configurar el comportamiento del entorno grfico en
general: el fichero XF86Config, ficheros xinitrc y xserverrc o
directamente en la invocacin del programa startx, por ejemplo:
{\tt \# startx -- -bpp 16 -weight 555}
En el apartado siguiente se ver como puede modificarse el aspecto del
gestor de ventanas a utilizar adems de una breve explicacin del
trmino recursos17 y como utilizar este mecanismo para cambiar el
aspecto de los programas clientes que se vayan ejecutar y que permiten
este sistema con lo que ya habremos repasado las principales formas de
configurar el 'entorno grfico' de LINUX.
\section{Personalizar el entorno.}
Hasta el momento hemos visto los valores que nos van a definir las
condiciones en las que el servidor trabajar en relacin con los
clientes que podamos ejecutar. Se han configurado modos o
resoluciones, directorios donde encontrar ciertos ficheros,
frecuencias horizontales y verticales, pulsos de reloj de la tarjeta
grfica...
Todo esto es imprescindible para la ejecucin del X Window en la
mquina que vayamos a utilizar pero no hemos visto todava la forma de
aplicar nuestros gustos personales al trabajo que vayamos a realizar,
la forma de especificar colores a utilizar, tipos de ventanas, forma
del ratn, iconos, etc...
De esta tarea se encarga el gestor de ventanas que es un cliente al
que hemos hecho constante referencia en apartados anteriores y vamos a
concretar algo ms sus caractersticas.
Existen muchos gestores implementados para el X Window, cada uno con
unas caractersticas propias que lo distinguen totalmente de los dems
en cuanto a apariencia del rea de trabajo, uso de recursos del
sistema, licencia de uso, forma de configurarlo,....
Una de las opciones que ms llaman la atencin sobre alguno de estos
gestores de ventanas es el poder definir un rea de trabajo virtual
ms grande que el espacio definido por nuestra pantalla, as podemos
tener las ventanas fuera de los lmites del rea que puede verse a
travs de la pantalla repartidas por el rea de trabajo a nuestro
antojo.
Uno de los ms extendidos, implementado especficamente para el
sistema operativo LINUX es el fvwm. Este gestor de ventanas es el que
viene definido por defecto en los ficheros de configuracin, aunque la
distribucin Slackware contiene otros.
|