This file is indexed.

/usr/share/doc/HOWTO/fr-html/Framebuffer-HOWTO.html is in doc-linux-fr-html 2013.01-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

   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
1691
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for Linux (vers 25 March 2009), see www.w3.org">
<meta name="GENERATOR" content="LinuxDoc-Tools 0.9.69">
<title>Framebuffer HOWTO</title>
</head>
<body>
<h1>Framebuffer HOWTO</h1>
<h2>Alex Buell, <code>alex.buell@tahallah.clara.co.uk</code></h2>
v1.2, 27 F&eacute;vrier 2000
<hr>
<em>Ce document d&eacute;crit l'emploi des
p&eacute;riph&eacute;riques d'acc&egrave;s &agrave; la
m&eacute;moire vid&eacute;o avec diverses configurations
mat&eacute;rielles munies de Linux. La gestion de plusieurs
&eacute;crans est &eacute;galement trait&eacute;e.</em>
<hr>
<h2><a name="s1">1. History</a></h2>
<p>Revision history</p>
<p>19990607 - Release of 1.0</p>
<p>19990722 - Release of 1.1</p>
<p>20000222 - Release of 1.2</p>
<h2><a name="s2">2. Contributions</a></h2>
<p>Merci aux personnes dont les noms suivent pour avoir aid&eacute;
&agrave; l'am&eacute;lioration du HOWTO Framebuffer.</p>
<ul>
<li>Jeff Noxon <code>jeff@planetfall.com</code></li>
<li>Francis Devereux <code>f.devereux@cs.ucl.ac.uk</code></li>
<li>Andreas Ehliar <code>ehliar@futurniture.se</code></li>
<li>Martin McCarthy <code>marty@ehabitat.demon.co.uk</code></li>
<li>Simon Kenyon <code>simon@koala.ie</code></li>
<li>David Ford <code>david@kalifornia.com</code></li>
<li>Chris Black <code>cblack@cmpteam4.unil.ch</code></li>
<li>N Becker <code>nbecker@fred.net</code></li>
<li>Bob Tracy <code>rct@gherkin.sa.wlk.com</code></li>
<li>Marius Hjelle <code>marius.hjelle@roman.uib.no</code></li>
<li>James Cassidy <code>jcassidy@misc.dyn.ml.org</code></li>
<li>Andreas U. Trottmann
<code>andreas.trottmann@werft22.com</code></li>
<li>Lech Szychowski <code>lech7@lech.pse.pl</code></li>
<li>Aaron Tiensivu <code>tiensivu@pilot.msu.edu</code></li>
<li>Jan-Frode Myklebust pour ses informations sur les cartes
Permedia <code>janfrode@ii.uib.no</code></li>
<li>Et les autres, trop nombreux pour tous figurer ici. Un grand
merci &agrave; eux.</li>
</ul>
Un grand merci &agrave; Rick Niles
<code>frederick.a.niles@gsfc.nasa.gov</code> qui a accept&eacute;
que son Mini-HOWTO Multi-Head soit inclus dans ce HOWTO. Merci aux
personnes suivantes pour avoir compil&eacute; les versions
libc5/glibc2 du gestionnaire XF86_FBdev pour X11 sur les
architectures Intel&nbsp;:
<ul>
<li>Brion Vibber <code>brion@pobox.com</code></li>
<li>Gerd Knorr <code>kraxel@cs.tu-berlin.de</code></li>
</ul>
<p>bien s&ucirc;r l'auteur du code&nbsp;:</p>
<ul>
<li>Martin Schaller - auteur du concept originel de
p&eacute;riph&eacute;rique d'acc&egrave;s &agrave; la
m&eacute;moire vid&eacute;o.</li>
<li>Roman Hodek
<code>Roman.Hodek@informatik.uni-erlangen.de</code></li>
<li>Andreas Schwab
<code>schwab@issan.informatik.uni-dortmund.de</code></li>
<li>Guenther Kelleter</li>
<li>Geert Uytterhoeven
<code>Geert.Uytterhoeven@cs.kuleuven.ac.be</code></li>
<li>Roman Zippel <code>roman@sodom.obdg.de</code></li>
<li>Pavel Machek <code>pavel@atrey.karlin.mff.cuni.cz</code></li>
<li>Gerd Knorr <code>kraxel@cs.tu-berlin.de</code></li>
<li>Miguel de Icaza <code>miguel@nuclecu.unam.mx</code></li>
<li>David Carter <code>carter@compsci.bristol.ac.uk</code></li>
<li>William Rucklidge <code>wjr@cs.cornell.edu</code></li>
<li>Jes Sorensen <code>jds@kom.auc.dk</code></li>
<li>Sigurdur Asgeirsson</li>
<li>Jeffrey Kuskin <code>jsk@mojave.stanford.edu</code></li>
<li>Michal Rehacek <code>michal.rehacek@st.mff.cuni.edu</code></li>
<li>Peter Zaitcev <code>zaitcev@lab.ipmce.su</code></li>
<li>David S. Miller <code>davem@dm.cobaltmicro.com</code></li>
<li>Dave Redman <code>djhr@tadpole.co.uk</code></li>
<li>Jay Estabrook</li>
<li>Martin Mares <code>mj@ucw.cz</code></li>
<li>Dan Jacobowitz <code>dan@debian.org</code></li>
<li>Emmanuel Marty <code>core@ggi-project.org</code></li>
<li>Eddie C. Dost <code>ecd@skynet.be</code></li>
<li>Jakub Jelinek <code>jj@ultra.linux.cz</code></li>
<li>Phil Blundell <code>philb@gnu.org</code></li>
<li>S'il y en a d'autres, qu'ils se manifestent et ils seront
cit&eacute;s. :o)</li>
</ul>
<h2><a name="s3">3. Qu'est-ce qu'un tampon de m&eacute;moire
vid&eacute;o ?</a></h2>
<p>Un tampon de m&eacute;moire vid&eacute;o d&eacute;finit une
abstraction logicielle d'acc&egrave;s aux
p&eacute;riph&eacute;riques vid&eacute;o. Il correspond &agrave; la
m&eacute;moire d'affichage de certains contr&ocirc;leurs graphiques
et propose une interface unifi&eacute;e aux logiciels qui n'ont
alors plus &agrave; se soucier des d&eacute;tails de bas niveau
relatifs au mat&eacute;riel [Extrait du fichier framebuffer.txt
&eacute;crit par Geert Uytterhoeven's. Se reporter aux sources du
noyau]</p>
<h2><a name="s4">4. Quels avantages pr&eacute;sente le tampon de
m&eacute;moire vid&eacute;o ?</a></h2>
<p>Le logo ! Plus s&eacute;rieusement, on dispose d'une interface
ind&eacute;pendante de l'architecture mat&eacute;rielle. Les
gestionnaires de console des machines de type Intel sont
rest&eacute;s radicalement diff&eacute;rents de ceux des autre
plate-formes jusqu'&agrave; une phase de d&eacute;veloppement
avanc&eacute;e des noyaux 2.1.x. Avec l'introduction dans le noyau
2.1.109 de cette interface, les choses se sont
am&eacute;lior&eacute;es&nbsp;: la gestion des consoles sur PC
s'est uniformis&eacute;e, les consoles en mode graphique affichant
le logo du pingouin ont fait leur apparition et le code s'est
propag&eacute; aux autres types de machines. Notez que les noyaux
2.0.x ne disposent pas du gestionnaire d'acc&egrave;s &agrave; la
m&eacute;moire vid&eacute;o. Peut-&ecirc;tre quelqu'un finira-t-il
par int&eacute;grer le code des versions 2.1.x dans ces noyaux. Le
portage version 0.9.x pour les machines m68k font exception en ce
qu'elles int&egrave;grent le pilote. <em>Avec la
disponibilit&eacute; des noyaux 2.2.x, le gestionnaire de
m&eacute;moire vid&eacute;o s'av&egrave;re stable et robuste. Vous
devriez l'utiliser si votre carte vid&eacute;o le supporte et si
vous employez un noyau 2.2.x. La question ne se pose pas si vous
travaillez avec un 2.0.x, du moins sur un PC.</em></p>
<ul>
<li>0.9.x (m68k) - introduction du gestionnaire. Notez que les
versions 0.9.x &eacute;quivalent d'un point de vue fonctionnel
&agrave; la version 1.0.9 sur architecture Intel avec les
am&eacute;liorations des 1.2.x.</li>
<li>2.1.107 - apparition du gestionnaire de m&eacute;moire
vid&eacute;o sur PC ainsi que des nouveaux pilotes pour les
consoles. Le d&eacute;filement en arri&egrave;re n'est pas encore
disponible.</li>
<li>2.1.113 - ajout du d&eacute;filement en arri&egrave;re au
pilote vgacon.</li>
<li>2.1.116 - ajout du d&eacute;filement en arri&egrave;re au
pilote vesafb.</li>
<li>2.2.x - matroxfb et atyfb ( cartes graphiques Matrox et ATI
respectivement ).</li>
</ul>
<p>Le gestionnaire de m&eacute;moire vid&eacute;o offre des
possibilit&eacute;s int&eacute;ressantes si on pr&eacute;cise
quelques options au noyau lors du d&eacute;marrage. Certaines sont
sp&eacute;cifiques &agrave; un type de carte donn&eacute;.</p>
<ul>
<li><code>video=xxx:off</code> - d&eacute;sactive
l'auto-d&eacute;tection d'un pilote</li>
<li><code>video=map:octal-number</code> - associe des consoles
virtuelles ( VC ) &agrave; un gestionnaire de m&eacute;moire
vid&eacute;o
<ul>
<li><code>video=map:01</code> VC0 est associ&eacute;e &agrave; FB0,
VC1 &agrave; FB1, VC2 &agrave; FB0, VC3 &agrave; FB1...</li>
<li><code>video=map:0132</code> VC0 est associ&eacute;e &agrave;
FB0, VC1 &agrave; FB1, VC2 &agrave; FB3, VC4 &agrave; FB2, VC5
&agrave; FB0...</li>
</ul>
</li>
</ul>
<p>La d&eacute;tection des gestionnaires de m&eacute;moire
vid&eacute;o a lieu dans un ordre fix&eacute; au niveau du noyau.
Vous pouvez l'alt&eacute;rer gr&acirc;ce &agrave; l'option
<code>video=xxx</code> qui permet de forcer la d&eacute;tection de
certains p&eacute;riph&eacute;riques avant les autres.</p>
<h2><a name="s5">5. Utilisation du tampon de m&eacute;moire
vid&eacute;o sur architecture Intel</a></h2>
<h2><a name="ss5.1">5.1 Vesafb, qu&egrave;s acco ?</a></h2>
<p>Vesafb est un gestionnaire de m&eacute;moire vid&eacute;o sur
compatible PC d&eacute;di&eacute; aux cartes cartes graphiques
conformes aux sp&eacute;cifications VESA 2.0. Son fonctionnement
est li&eacute; de pr&egrave;s aux gestionnaires de m&eacute;moire
vid&eacute;o g&eacute;n&eacute;riques du noyau.</p>
<p>Vesafb permet le recours aux modes graphiques sur PC pour
l'utilisation des consoles textes en point par point. Vesafb
autorise &eacute;galement l'affichage d'un logo et c'est
vraisemblablement ce pour quoi vous voulez vous en servir :o)</p>
<p>On ne peut malheureusement pas utiliser vesafb avec des cartes
VESA 1.2. En effet, ces cartes n'utilisent pas un adressage
lin&eacute;aire. Par ce terme, on entend que tous les octets de la
m&eacute;moire vid&eacute;o sont accessibles &agrave; un instant
donn&eacute;. Historiquement, les anciennes cartes vid&eacute;o ne
rendaient la m&eacute;moire graphique disponible qu'au travers
d'une fen&ecirc;tre de 64 ko qui correspondait &agrave; la taille
de la plus grande zone de m&eacute;moire contig&uuml;e
g&eacute;rable directement par le microprocesseur (d'o&ugrave; les
limitations des cartes CGA/EGA). Quelqu'un &eacute;crira
peut-&ecirc;tre un gestionnaire de p&eacute;riph&eacute;riques
vesafb12 pour ce type de cartes, mais il consommera une
m&eacute;moire par ailleurs pr&eacute;cieuse pour le noyau et
&ccedil;a restera de toute fa&ccedil;on un sale bricolage. :o(</p>
<p>Il existe cependant un moyen d&eacute;tourn&eacute;
d'acc&eacute;der aux fonctionnalit&eacute;s VESA 2.0 sur une carte
VESA 1.2. Peut-&ecirc;tre pouvez vous charger depuis le DOS un
programme de type TSR qui, utilis&eacute; conjointement avec
loadlin, aidera &agrave; configurer la carte pour les modes
graphiques voulus. Cela ne marchera pas toujours. Ainsi, certaines
cartes de chez Cirrus Logic, telles les VLB 54xx, se retrouvent
&agrave; une position en m&eacute;moire (par exemple entre 15 et 16
Mo) qui en interdit l'utilisation sur les syst&egrave;mes munis de
plus de 32 Mo de m&eacute;moire. Rien de r&eacute;dhibitoire si on
dispose d'un BIOS permettant de ne pas affecter de m&eacute;moire
entre 15 et 16 Mo ("Memory Hole") mais il m'a sembl&eacute;
comprendre que Linux n'aime pas &ccedil;a. Si l'exp&eacute;rience
vous tente, vous pouvez essayer UNIVBE (disponible sur
l'Internet).</p>
<p>Vous pouvez aussi essayer divers patches noyaux. Il en existe
notamment pour les anciennes cartes S3 telles la S3 Trio ou la
Virge qui se conforment &agrave; la norme VESA 1.2. Les patches
sont disponibles via&nbsp;: <a href=
"ftp://ccssu.crimea.ua/pub/linux/kernel/v2.2/unofficial/s3new.diff.gz">
ftp://ccssu.crimea.ua/pub/linux/kernel/v2.2/unofficial/s3new.diff.gz</a>&gt;.</p>
<h2><a name="ss5.2">5.2 Comment faire fonctionner le gestionnaire
vesafb ?</a></h2>
<p>A supposer que vous utilisiez menuconfig, vous devrez passer par
les &eacute;tapes suivantes&nbsp;: Dans le menu "Console
drivers"&nbsp;:</p>
<ul>
<li>VGA Text Console</li>
<li>Video Selection Support</li>
<li>Support for frame buffer devices (experimental)</li>
<li>VESA VGA Graphic console</li>
<li>Advanced Low Level Drivers</li>
<li>Choisissez les gestionnaires Mono, 2bpp, 4bpp, 8bpp, 16bpp,
24bpp et 32bpp .</li>
<li>VGA character/attributes support</li>
</ul>
<p>Si votre processeur (de type x86) supporte le MTRR, activez le.
Il permet d'acc&eacute;l&eacute;rer les copies entre la
m&eacute;moire syst&egrave;me et la carte graphique. Vous pouvez
naturellement le mettre en marche une fois la console
op&eacute;rationnelle. <em>IMPORTANT&nbsp;: pour les noyaux 2.1.x,
activez le choix des fonctionnalit&eacute;s exp&eacute;rimentales
via le menu ``Code Maturity Level''. Ceci est inutile pour les
noyaux 2.2.x.</em></p>
<ul>
<li>Prompt for development and/or incomplete code/drivers</li>
</ul>
<p>Le support des composants VGA (en mode texte) - vgafb -
appartenait &agrave; la liste ci-dessus mais il en a
&eacute;t&eacute; supprim&eacute; en raison de son obsolescence. Il
dispara&icirc;tra sous peu. S&eacute;lectionnez plut&ocirc;t "VGA
Text Console".</p>
<p>V&eacute;rifiez bien que le support "Mac variable bpp packed
pixel" n'est pas activ&eacute;. [En 2.2.111/112, il semblerait
qu'il le soit si "Advanced Low Level Drivers" l'est. Ce n'est plus
le cas en 2.1.113] Les fontes peuvent &eacute;galement &ecirc;tre
stock&eacute;es en m&eacute;moire mais rien n'y oblige et l'emploi
de setfont du paquetage kbd-0.99 reste possible pour charger les
fontes ad&eacute;quates (reportez vous &agrave; la section relative
aux fontes).</p>
<p>Assurez vous que rien n'est modularis&eacute;. [J'ai des doutes
quand aux possibilit&eacute;s de modularisation de l'ensemble -
corrections bienvenues]</p>
<p>Vous devrez ensuite cr&eacute;er les p&eacute;riph&eacute;riques
associ&eacute;s au gestionnaire de m&eacute;moire vid&eacute;o dans
le r&eacute;pertoire /dev. Pour le premier, il vous suffit de
taper</p>
<hr>
<pre>
# mknod /dev/fb0 c 29 0
</pre>
<hr>
Les suivants doivent &ecirc;tre multiples de 32, soit, pour
/dev/fb1&nbsp;:
<hr>
<pre>
# mknod /dev/fb1 c 29 32
</pre>
<hr>
et ainsi de suite jusqu'au huiti&egrave;me si vous le
souhaitez&nbsp;:
<hr>
<pre>
# mknod /dev/fb7 c 29 224
</pre>
<hr>
Recompilez votre noyau,modifiez l'/etc/lilo.conf de fa&ccedil;on
&agrave; ajouter le param&egrave;tre VGA=ASK, lancez lilo. Ceci
vous permettra de choisir le mode graphique que vous voulez.
<p>Voici mon lilo.conf personnel&nbsp;:</p>
<pre>
# LILO configuration file
boot = /dev/hda3
delay = 30 
prompt
vga = ASK # L'utilisateur devra entrer le mode
image = /vmlinuz
  root = /dev/hda3
  label = Linux
  read-only # Les systemes de fichiers autres que UMSDOS doivent etre montes
            # en lecture seule pour la phase de verification
</pre>
<p>Red&eacute;marrez le noyau et essayez comme test d'entrer 0301
au prompt VGA. Vous devriez vous retrouver en 640x480 sur 256
couleurs avec un d&eacute;licieux petit logo de
ping^H^H^H^Hmanchot.</p>
<p>A l'invite LILO, vous DEVEZ fournir un chiffre sous la forme
d'un ``0'' suivi de 3 digits sans ``x'' hexad&eacute;cimal. Si LILO
fournit directement l'argument au noyau, ceci n'est pas
n&eacute;cessaire.</p>
<p>Une fois que tout marche convenablement, vous pouvez explorer
les diff&eacute;rents modes (voir plus bas) et une fois choisi
celui qui vous convient, il sera temps de le fixer via le
param&egrave;tre ``VGA=x'' du fichier de configuration de lilo. La
table plus bas vous fournira le nombre correspondant au mode. Par
exemple, pour du 1280x1024 en 256 couleurs, vous emploierez
``VGA=0x307'' et relancerez lilo. Le reste se trouve dans les HOWTO
relatifs &agrave; lilo et &agrave; loadlin.</p>
<p><em>NOTE !</em> vesafb n'active pas automatiquement le
d&eacute;filement vers l'arri&egrave;re. Vous devez le
pr&eacute;ciser au noyau&nbsp;: video=vesa:ypan ou
video=vesa:ywrap. Les deux font la m&ecirc;me chose mais de
fa&ccedil;on un peu diff&eacute;rente. ywrap est bien plus rapide
qu'ypan mais risque de ne pas fonctionner sur des cartes VESA 2.0
ne respectant pas tout &agrave; fait les sp&eacute;cifications.
L'option n'est disponible qu'&agrave; partir du noyau 2.1.116. Les
noyaux pr&eacute;c&eacute;dents ne permettent pas le
d&eacute;filement vers l'arri&egrave;re.</p>
<h2><a name="s6">6. De quels modes VESA puis-je me servir
?</a></h2>
<p>Cela d&eacute;pend de votre carte graphique, en particulier de
la quantit&eacute; de m&eacute;moire dont elle dispose. A vous de
voir quels sont les modes qui fonctionnent le mieux.</p>
<p>La table suivante fournit les num&eacute;ros des modes que vous
pouvez passer &agrave; l'invite VGA (en fait les indices se sont
vus ajouter 0x200 afin de s'y retrouver plus facilement dans la
table).</p>
<pre>
Couleurs   640x400 640x480 800x600 1024x768 1152x864 1280x1024 1600x1200
---------+--------------------------------------------------------------
 4 bits  |    ?       ?     0x302      ?        ?        ?         ?
 8 bits  |  0x300   0x301   0x303    0x305    0x161    0x307     0x31C
15 bits  |    ?     0x310   0x313    0x316    0x162    0x319     0x31D
16 bits  |    ?     0x311   0x314    0x317    0x163    0x31A     0x31E
24 bits  |    ?     0x312   0x315    0x318      ?      0x31B     0x31F
32 bits  |    ?       ?       ?        ?      0x164      ?
</pre>
8 bits = 256 couleurs, 15 bits = 32768 couleurs, 16 bits = 65536
couleurs, 24 bits = 16,8 millions de couleurs, 32 bits&nbsp;: la
m&ecirc;me chose qu'en 24 bits mais les 8 bits restant peuvent
servir &agrave; diverses fins et l'ensemble s'adapte parfaitement
aux bus 32 bits PCI/VLB/EISA. Les modes suppl&eacute;mentaires sont
&agrave; la discr&eacute;tion du fabricant puisque la
sp&eacute;cification VESA 2.0 s'arr&ecirc;te au mode 0x31f. Il vous
faudra s&ucirc;rement t&acirc;tonner pour les trouver.
<h2><a name="ss6.1">6.1 Utilisation des cartes graphiques
Matrox</a></h2>
<p>Si vous disposez d'une carte Matrox, vous emploierez le pilote
matroxfb au lieu de vesafb. Matroxfb g&egrave;re les Mystique
Millenium I, II ainsi que les G100 et G200. Il permet aussi d'avoir
plusieurs cartes dans la m&ecirc;me machine. La configuration d'une
carte Matrox passe par les &eacute;tapes suivantes&nbsp;:</p>
<p>Mise &agrave; jour du BIOS Matrox que vous trouverez &agrave;
<a href=
"http://www.matrox.com/mgaweb/drivers/ftp_bios.htm">http://www.matrox.com/mgaweb/drivers/ftp_bios.htm</a>&gt;.
Attention, vous aurez besoin du DOS pour proc&eacute;der &agrave;
la mise &agrave; jour.</p>
<p>Allez dans le menu ``Code Maturity Level'' et activez l'option
suivante&nbsp;:</p>
<ul>
<li>Prompt for development and/or incomplete code/drivers</li>
</ul>
[Ceci peut changer dans les futurs noyaux. Le HOWTO sera alors
modifi&eacute;]
<p>Dans le menu ``Console Drivers'', s&eacute;lectionnez&nbsp;:</p>
<ul>
<li>VGA Text Console</li>
<li>Video Selection Support</li>
<li>Support for frame buffer devices (experimental)</li>
<li>Matrox Acceleration</li>
<li>Suivant votre type de carte :
<ul>
<li>Millennium I/II support</li>
<li>Mystique support</li>
<li>G100/G200 support</li>
</ul>
</li>
<li>Pour employer plusieurs cartes Matrox simultan&eacute;ment,
activez l'option ``Multihead support''.</li>
<li>Advanced Low Level Drivers</li>
<li>Choisissez les pilotes Mono, 2bpp, 4bpp, 8bpp, 16bpp, 24bpp et
``32bpp packed pixel''.</li>
</ul>
<p>Recompilez votre noyau et modifiez le fichier
<code>/etc/lilo.conf</code>. Inspirez vous du mien, vous irez plus
vite.</p>
<pre>
# Fichier de configuration de LILO 
boot = /dev/hda3
delay = 30 
prompt
vga = 792  # N&eacute;cessaire pour une r&eacute;initialisation dans un &eacute;tat normal
# Linux bootable partition config begins
image = /vmlinuz
  append = "video=matrox:vesa:440" # On bascule sur le pilote Matroxfb
  root = /dev/hda3
  label = Linux
  read-only # Non-UMSDOS filesystems should be mounted read-only for checking
</pre>
<p>Vous devrez ensuite cr&eacute;er les p&eacute;riph&eacute;riques
associ&eacute;s au gestionnaire de m&eacute;moire vid&eacute;o dans
le r&eacute;pertoire /dev. Pour le premier, il vous suffit de
taper&nbsp;:</p>
<hr>
<pre>
# mknod /dev/fb0 c 29 0
</pre>
<hr>
Les suivants doivent &ecirc;tre multiples de 32, soit, pour
/dev/fb1&nbsp;:
<hr>
<pre>
# mknod /dev/fb1 c 29 32
</pre>
<hr>
et ainsi de suite jusqu'au huiti&egrave;me si vous le
souhaitez&nbsp;:
<hr>
<pre>
# mknod /dev/fb7 c 29 224
</pre>
<hr>
C'est tout ! Si l'un d'entre vous se sert simultan&eacute;ment de
plusieurs cartes, qu'il me contacte aussi vite que possible afin
que je documente davantage.
<h2><a name="ss6.2">6.2 Utilisation des cartes graphiques
Permedia.</a></h2>
<p>Les cartes de type Permedia ne sont pas support&eacute;es par le
pilote vesafb. Heureusement, il existe un gestionnaire de
m&eacute;moire vid&eacute;o sp&eacute;cifique aux cartes Permedia.
En supposant que vous employez menuconfig pour param&eacute;trer le
noyau avant une compilation, ex&eacute;cutez les instructions
suivantes :</p>
<p>Allez dans le menu ``Code Maturity Level'' et activez l'option
suivante&nbsp;:</p>
<ul>
<li>Prompt for development and/or incomplete code/drivers</li>
</ul>
[Ceci peut changer dans les futurs noyaux. Le HOWTO sera alors
modifi&eacute;]
<p>Dans le menu ``Console Drivers'', s&eacute;lectionnez&nbsp;:</p>
<ul>
<li>VGA Text Console</li>
<li>Video Selection Support</li>
<li>Support for frame buffer devices (experimental)</li>
<li>Permedia2 support (experimental)</li>
<li>Generic Permedia2 PCI board support</li>
<li>Advanced Low Level Drivers</li>
<li>Choisissez les pilotes Mono, 2bpp, 4bpp, 8bpp, 16bpp, 24bpp et
``32bpp packed pixel''.</li>
<li>Si vous souhaitez incorporer les fontes, activez les options
suivantes&nbsp;:
<ul>
<li>Compiled-in fonts</li>
<li>Sparc console 12x22 font</li>
</ul>
</li>
</ul>
<p>Recompilez votre noyau et modifiez le fichier
<code>/etc/lilo.conf</code>. Inspirez vous du mien pour aller plus
vite.</p>
<pre>
# Fichier de configuration de LILO
boot = /dev/hda3
delay = 30 
prompt
vga = 792  # N&eacute;cessaire pour une r&eacute;initialisation dans un &eacute;tat normal
# Linux bootable partition config begins
image = /vmlinuz
  append = "video=pm2fb:mode:1024x768-75,font:SUN12x22,ypan" # then switch to pm2fb
  root = /dev/hda3
  label = Linux
  read-only # Non-UMSDOS filesystems should be mounted read-only for checking
</pre>
<p>La ligne ``pm2fb:mode:1024x768-75,font:SUN12x22,ypan'' indique
que le pilote op&eacute;rera dans une r&eacute;solution de 1024 par
768 &agrave; 75Hz avec les fontes SUN 12 par 22 (si vous les avez
incluses). Ypan autorise le d&eacute;filement. Vous pouvez employer
un autre mode.</p>
<p>Vous devrez ensuite cr&eacute;er les p&eacute;riph&eacute;riques
associ&eacute;s au gestionnaire de m&eacute;moire vid&eacute;o dans
le r&eacute;pertoire /dev. Pour le premier, il vous suffit de
taper</p>
<hr>
<pre>
# mknod /dev/fb0 c 29 0
</pre>
<hr>
Les suivants doivent &ecirc;tre multiples de 32, soit, pour
/dev/fb1&nbsp;:
<hr>
<pre>
# mknod /dev/fb1 c 29 32
</pre>
<hr>
et ainsi de suite jusqu'au huiti&egrave;me si vous le
souhaitez&nbsp;:
<hr>
<pre>
# mknod /dev/fb7 c 29 224
</pre>
<hr>
<p>Pour davantage de renseignements concernant les
fonctionnalit&eacute;s du pilote Permedia, consultez <a href=
"http://www.cs.unibo.it/~nardinoc/pm2fb/index.html">http://www.cs.unibo.it/~nardinoc/pm2fb/index.html</a>&gt;.</p>
<p>video=pm2fb:[option[,option[,option...]]]</p>
<p>o&ugrave; vous disposez des options suivantes&nbsp;:</p>
<ul>
<li>off pour d&eacute;sactiver le pilote.</li>
<li>mode:resolution pour fixer la r&eacute;solution. Les modes
proviennent du fichier fb.modes.ATI contenu dans le paquetage
logiciel pbset de Geert Uytterhoeven. Tous les modes sont en 8 bits
par pixel. Voici ceux disponibles&nbsp;:
<ul>
<li>640x480-(60,72,75,90,100)</li>
<li>800x600-(56,60,70,72,75,90,100)</li>
<li>1024x768-(60,70,72,75,90,100,illo) illo=80KHz 100Hz</li>
<li>1152x864-(60,70,75,80)</li>
<li>1280x1024-(60,70,74,75)</li>
<li>1600x1200-(60,66,76)</li>
</ul>
</li>
<li>Par d&eacute;faut, la console fonctionne en 640 par 480
&agrave; 60 Hz.</li>
<li>font:fontname pour fixer la fonte. Par exemple :
font:SUN12x22.</li>
<li>ypan offre une taille virtuelle dans le sens vertical aussi
importante que la m&eacute;moire vid&eacute;o l'autorise.</li>
<li>oldmem ne servira qu'aux propri&eacute;taires d'une
CybervisionPPC. Ajoutez cette option si votre carte est munie de
SGRAM Fujitsu, ce qui est le cas des CyberVisionPPC
ant&eacute;rieures au 30/12/1999.</li>
<li>virtual (transitoire) est &agrave; employer si le noyau fixe
lui-m&ecirc;me les adresses d'acc&egrave;s sur les bus PCI.</li>
</ul>
<h2><a name="ss6.3">6.3 Utilisation des cartes graphiques
ATI</a></h2>
<p>Remarque&nbsp;: les informations qui suivent ne viennent pas de
moi vu que je ne dispose pas d'une carte ATI pour les
v&eacute;rifier. Si je me trompe, n'h&eacute;sitez pas &agrave; me
corriger, &agrave; m'insulter ou &agrave; m'envoyer votre carte !
8-)</p>
<p>Les cartes ATI sont plus ou moins bien g&eacute;r&eacute;es par
le pilote vesafb selon leur qualit&eacute; intrins&egrave;que.
Heureusement, il existe un gestionnaire de m&eacute;moire
vid&eacute;o sp&eacute;cifique aux cartes ATI. En supposant que
vous employez menuconfig pour param&eacute;trer le noyau avant une
compilation, ex&eacute;cutez les instructions suivantes&nbsp;</p>
<p>Allez dans le menu ``Code Maturity Level'' et activez l'option
suivante&nbsp;:</p>
<ul>
<li>Prompt for development and/or incomplete code/drivers</li>
</ul>
[ceci peut changer dans les futurs noyaux. Ce HOWTO sera alors
modifi&eacute;]
<p>Dans le menu ``Console Drivers'', s&eacute;lectionnez&nbsp;:</p>
<ul>
<li>VGA Text Console</li>
<li>Video Selection Support</li>
<li>Support for frame buffer devices (experimental)</li>
<li>ATI Mach64 display support</li>
<li>Advanced Low Level Drivers</li>
<li>Choisissez les pilotes Mono, 2bpp, 4bpp, 8bpp, 16bpp, 24bpp et
``32bpp packed pixel''.</li>
<li>Si vous souhaitez incorporer les fontes, activez les options
suivantes&nbsp;:
<ul>
<li>Compiled-in fonts</li>
<li>Sparc console 12x22 font</li>
</ul>
</li>
</ul>
<p>Recompilez votre noyau et modifiez le fichier
<code>/etc/lilo.conf</code>. Inspirez vous du mien, ce sera le plus
rapide.</p>
<pre>
# Fichier de configuration de LILO
boot = /dev/hda3
delay = 30
prompt
vga = 792  # N&eacute;cessaire pour une r&eacute;initialisation dans un &eacute;tat normal
# Linux bootable partition config begins
image = /vmlinuz
  append = "video=atyfb:mode:1024x768,font:SUN12x22"
  root = /dev/hda3
  label = Linux
  read-only # Non-UMSDOS filesystems should be mounted read-only for checking
</pre>
<p>La ligne ``atyfb:mode:1024x768,font:SUN12x22'' indique que le
pilote op&eacute;rera dans une r&eacute;solution de 1024 par
768.</p>
<p>Vous devrez ensuite cr&eacute;er les p&eacute;riph&eacute;riques
associ&eacute;s au gestionnaire de m&eacute;moire vid&eacute;o dans
le r&eacute;pertoire /dev. Pour le premier, il vous suffit de
taper&nbsp;:</p>
<hr>
<pre>
# mknod /dev/fb0 c 29 0
</pre>
<hr>
Les suivants doivent &ecirc;tre multiples de 32, soit, pour
/dev/fb1&nbsp;:
<hr>
<pre>
# mknod /dev/fb1 c 29 32
</pre>
<hr>
et ainsi de suite jusqu'au huiti&egrave;me si vous le
souhaitez&nbsp;:
<hr>
<pre>
# mknod /dev/fb7 c 29 224
</pre>
<hr>
<p>video=atyfb:[option[,option[,option...]]]</p>
<p>o&ugrave; vous disposez des options suivantes&nbsp;:</p>
<ul>
<li>font:STRING pour fixer la fonte. Par exemple&nbsp;:
font:SUN12x22</li>
<li>noblink d&eacute;sactive l'extinction de l'&eacute;cran</li>
<li>noaccel d&eacute;sactive les routines
d'acc&eacute;l&eacute;ration</li>
<li>vram:ULONG pr&eacute;cise au pilote atyfb la quantit&eacute; de
m&eacute;moire vid&eacute;o disponible</li>
<li>pll:ULONG ?</li>
<li>mclk:ULONG ?</li>
<li>vmode:ULONG ?</li>
<li>cmode:ULONG - fixe le nombre de bits par pixel&nbsp;: 0, 8, 15,
16, 24 ou 32</li>
</ul>
<h2><a name="ss6.4">6.4 Quelles cartes graphiques se conforment aux
sp&eacute;cifications VESA 2.0 ?</a></h2>
<p>Voici une liste de cartes qui fonctionnent avec vesafb:</p>
<ul>
<li>ATI PCI VideoExpression 2MB (au maximum 1280 par 1024 en
8bit)</li>
<li>ATI PCI All-in-Wonder</li>
<li>Matrox Millennium PCI - BIOS v3.0</li>
<li>Matrox Millennium II PCI - BIOS v1.5</li>
<li>Matrox Millennium II AGP - BIOS v1.4</li>
<li>Matrox Millennium G200 AGP - BIOS v1.3</li>
<li>Matrox Mystique &amp; Mystique 220 PCI - BIOS v1.8</li>
<li>Matrox Mystique G200 AGP - BIOS v1.3</li>
<li>Matrox Productiva G100 AGP - BIOS v1.4</li>
<li>Toutes les cartes &agrave; base de Riva 128</li>
<li>Diamond Viper V330 PCI 4MB</li>
<li>Genoa Phantom 3D/S3 ViRGE/DX</li>
<li>Hercules Stingray 128/3D avec une sortie pour la
t&eacute;l&eacute;vision</li>
<li>Hercules Stingray 128/3D sans sortie pour la
t&eacute;l&eacute;vision - une mise &agrave; jour du BIOS est
n&eacute;cessaire (contactez support@hercules.com)</li>
<li>SiS 6326 PCI/AGP 4MB</li>
<li>STB Lightspeed 128 (&agrave; base de Nvida Riva 128) PCI</li>
<li>STB Velocity 128 (&agrave; base de Nvida Riva 128) PCI</li>
<li>Jaton Video-58P ET6000 PCI 2MB-4MB (au maximum 1600 par 1200 en
8bit)</li>
<li>Voodoo2 2000</li>
</ul>
<p>Une liste de cartes m&egrave;res incluant un jeu de composants
graphiques&nbsp;:</p>
<ul>
<li>Trident Cyber9397</li>
<li>SiS 5598</li>
</ul>
<p>Les cartes qui ne fonctionnent pas&nbsp;:</p>
<ul>
<li>TBA</li>
</ul>
<h2><a name="ss6.5">6.5 Vesafb est-il modularisable ?</a></h2>
<p>A ma connaissance, Vesafb ne peut pas &ecirc;tre
modularis&eacute;. Les d&eacute;veloppeurs de vesafb s'y atteleront
peut-&ecirc;tre un jour. De toute fa&ccedil;on, si le pilote est
modularis&eacute;, vous ne disposerez d'aucun affichage &agrave;
l'&eacute;cran tant que le module vesafb n'aura pas
&eacute;t&eacute; modprob&eacute;. Il vaut s&ucirc;rement mieux le
laisser dans le noyau, des fois que le d&eacute;marrage se passe
mal.</p>
<h2><a name="ss6.6">6.6 Comment puis-je modifier le curseur
?</a></h2>
<p>[Tir&eacute; du fichier VGA-softcursor.txt - merci &agrave;
Martin Mares!]</p>
<p>Linux offre une certaine latitude pour modifier l'allure du
curseur. En principe, vous pouvez fixer la taille de celui-ci et,
par la m&ecirc;me occasion, contourner quelques probl&egrave;mes
mat&eacute;riels de cartes Trident d&eacute;fectueuses (cf. #define
TRIDENT_GLITCH dans le fichier drivers/char/vga.c). Si vous activez
l'option de g&eacute;n&eacute;ration logicielle du curseur
("Software generated cursor"), des nouveaut&eacute;s se
pr&eacute;sentent&nbsp;: un curseur rouge, un qui intervertisse la
couleur de premier plan et celle du fond, une mise en relief du
caract&egrave;re actif qui laisse le curseur mat&eacute;riel
visible ou non. Je n'ai s&ucirc;rement pas pens&eacute; &agrave;
tout.</p>
<p>On contr&ocirc;le l'allure du curseur via la s&eacute;quence
d'&eacute;chappement</p>
<pre>
&lt;ESC&gt;[?1;2;3c
</pre>
ou 1, 2 et 3 sont des param&egrave;tres que l'on va d&eacute;crire
&agrave; pr&eacute;sent. Les param&egrave;tres absents prennent la
valeur 0.
<p>Le premier param&egrave;tre correspond &agrave; la taille du
curseur (0=d&eacute;faut, 1=transparent, 2=soulign&eacute;, ...,
8=caract&egrave;re plein). Ajoutez 16 pour rendre actif le curseur
logiciel, 32 si la couleur de fond doit &ecirc;tre
syst&eacute;matiquement chang&eacute;e, 64 pour que les couleurs de
premier plan et de fond soient distinctes. La graisse est
ignor&eacute;e pour les deux derniers attributs.</p>
<p>Le second param&egrave;tre indique quels sont les bits
d'attributs &agrave; changer (un simple ou exclusif). Sur un
&eacute;cran VGA standard, les quatre bits de poids fort
pr&eacute;cisent le fond et les quatre de poids faible le premier
plan. Dans chaque quartet, les trois bits de poids faible donnent
la couleur et celui de poids fort active la mise en relief (ou
active le clignotement suivant la configuration de la carte
VGA).</p>
<p>Le troisi&egrave;me param&egrave;tre correspond aux valeurs que
doivent prendre les bits que l'on souhaite modifier. Le
positionnement d'un bit a lieu avant son masquage; on force donc
&agrave; 0 un bit en l'activant &agrave; la fois dans le masque de
s&eacute;lection et dans celui de positionnement.</p>
<p>Un curseur qui souligne et clignote : echo -e '\033[?2c' Un bloc
qui clignote : echo -e '\033[?6c' Un bloc rouge qui ne clignote pas
: echo -e '\033[?17;0;64c'</p>
<h2><a name="s7">7. Le pilote de m&eacute;moire vid&eacute;o sur
les Atari m68k</a></h2>
<p>Cette partie d&eacute;crit les options offertes par le pilote de
m&eacute;moire vid&eacute;o sur les machines Atari m68k.</p>
<h2><a name="ss7.1">7.1 Quels sont les modes disponibles sur les
machines Atari m68k ?</a></h2>
<pre>
Couleurs   320x200  320x480  640x200  640x400  640x480  896x608  1280x960
---------+---------------------------------------------------------------
 1 bit   |                            sthigh   vga2     falh2    tthigh
 2 bits  |                   stmid             vga4
 4 bits  | stlow                             ttmid/vga16 falh16
 8 bits  |          ttlow                      vga256
</pre>
<p><code>ttlow, ttmid et tthigh</code> sont seulement
employ&eacute;s sur les mod&egrave;les TT tandis que <code>vga2,
vga4, vga15, vga256, falh3 et falh16</code> ne servent que sur le
Falcon. Lorsqu'une option <code>video=xxx</code> est donn&eacute;e
au noyau, en l'absence toute sous-option, le noyau teste les modes
vid&eacute;o dans l'ordre suivant jusqu'&agrave; ce qu'il en trouve
un d'adapt&eacute; au mat&eacute;riel:</p>
<ul>
<li><code>ttmid</code></li>
<li><code>tthigh</code></li>
<li><code>vga16</code></li>
<li><code>sthigh</code></li>
<li><code>stmid</code></li>
</ul>
Vous pouvez pr&eacute;ciser le mode &agrave; employer pour
&eacute;viter l'auto-d&eacute;tection. Par exemple,
<code>video=vga16</code> procure un &eacute;cran en 640 par 480
avec une profondeur de 4 bits.
<h2><a name="ss7.2">7.2 Sous options suppl&eacute;mentaires sur les
machines Atari m68k</a></h2>
<p>Options suppl&eacute;mentaires disponibles avec le
param&egrave;tre <code>video=xxx</code>&nbsp;:</p>
<ul>
<li><code>inverse</code> - inversion des couleur de fond et de
premier plan. Normalement le fond est noir; cette option le rend
blanc.</li>
<li><code>font</code> - fonte &agrave; employer en mode texte. Les
fontes suivantes sont actuellement disponibles :
<code>VGA8x8</code>, <code>VGA8x16</code>, <code>PEARL8x8</code>.
La fonte <code>VGA8x8</code> est utilis&eacute;e par d&eacute;faut
si la dimension verticale de l'&eacute;cran est inf&eacute;rieure
&agrave; 400 pixels sans quoi la fonte <code>VGA8x16</code> est
employ&eacute;e.</li>
<li><code>internal</code> - tr&egrave;s int&eacute;ressant. Se
reporter &agrave; la section suivante.</li>
<li><code>external</code> - idem.</li>
<li><code>monitorcap</code> - description des modes multisync
disponibles. PROSCRIT pour les moniteurs &agrave; fr&eacute;quence
fixe.</li>
</ul>
<h2><a name="ss7.3">7.3 Sous option "internal" sur les machines
Atari m68k</a></h2>
<p>Syntaxe&nbsp;:
<code>internal:(xres);(yres)[;(xres_max);(yres_max);(offset)]</code></p>
<p>L'option indique les fonctionnalit&eacute;s ajout&eacute;s par
certains p&eacute;riph&eacute;riques vid&eacute;o tels les modes
d'OverScan. <code>(xres)</code> et <code>(yres)</code> fournissent
les dimensions &eacute;tendues de l'&eacute;cran. Si vos modes
d'OverScan n&eacute;cessitent une bordure noire, vous devrez
expliciter les trois derniers arguments de la sous-option
<code>internal:</code>. <code>(xres_max)</code> correspond &agrave;
la plus grande dimension de ligne accept&eacute;e par le
mat&eacute;riel tandis que <code>(yres_max)</code> donne le nombre
maximal de lignes et <code>(offset)</code> le d&eacute;calage en
octets entre la partie visible de la m&eacute;moire vid&eacute;o et
son emplacement physique.</p>
<p>Les mat&eacute;riel vid&eacute;o &eacute;tendu requiert souvent
une activation qui fait appel aux options
<code>"switches=*"</code>. [L'auteur appr&eacute;cierait de
recevoir des informations suppl&eacute;mentaires &agrave; ce sujet.
La documentation m68k du noyau manque de clart&eacute; sur ce sujet
et l'auteur ne poss&egrave;de pas d'Atari! Des exemples seront
&eacute;galement les bienvenus.]</p>
<h2><a name="ss7.4">7.4 Sous option "external" sur les machines
Atari m68k</a></h2>
<p>Syntaxe&nbsp;:
<code>external:(xres);(yres);(depth);(org);(scrmem)[;(scrlen)[;(vgabase)[;(colw)[;(coltype)[;(xres_virtual)]]]]]</code></p>
<p>On rentre dans le compliqu&eacute;. Le pr&eacute;sent document
essaye d'&ecirc;tre aussi clair que possible mais l'auteur n'a rien
contre une relecture afin d'&ecirc;tre s&ucirc;r qu'il n'a rien
loos^H^Hup&eacute;.</p>
<p>Cette sous-option indique que vous disposez de
p&eacute;riph&eacute;riques vid&eacute;o externes
(vraisemblablement une carte vid&eacute;o) et indique comment Linux
doit l'employer. Normalement, le noyau se limite &agrave; ce qu'il
peut apprendre des p&eacute;riph&eacute;riques vid&eacute;o
internes. Vous devez donc lui fournir tous les param&egrave;tres
n&eacute;cessaires afin qu'il soit en mesure de g&eacute;rer des
p&eacute;riph&eacute;riques externes. Il y a deux limitations :
vous basculerez dans le mode ad&eacute;quat avant l'initialisation
et une fois celle-ci effectu&eacute;e, vous ne pourrez pas changer
de mode.</p>
<p>Les trois premiers param&egrave;tres sont &eacute;vidents. Ils
correspondent aux dimensions de la zone d'affichage : hauteur et
largeur en pixel suivies de la profondeur. Le param&egrave;tre de
profondeur servant d'exposant au nombre 2 donne le nombre de
couleurs. Par exemple, pour un affichage en 256 couleurs, vous
pr&eacute;ciserez un param&egrave;tre de 8. Le param&egrave;tre
d&eacute;pend de l'adaptateur graphique externe bien que vous soyez
de toute fa&ccedil;on limit&eacute; par le mat&eacute;riel.</p>
<p>Vous devez ensuite d&eacute;crire au noyau l'organisation de la
m&eacute;moire vid&eacute;o via le param&egrave;tre
<code>(org)</code>.</p>
<ul>
<li><code>n</code> - plans dispos&eacute;s normalement, les uns
&agrave; la suite des autres.</li>
<li><code>i</code> - plans entrelac&eacute;s, c'est &agrave; dire
16 bits du premier plan, puis du suivant etc. Seuls les modes
vid&eacute;o natifs d'Atari utilisent &ccedil;a et aucune carte
vid&eacute;o ne le g&egrave;re.</li>
<li><code>p</code> - pixels regroup&eacute;s. Les bits constitutifs
des diff&eacute;rents plans d'un m&ecirc;me pixel se suivent. Ce
mode est le plus courant en 256 couleurs.</li>
<li><code>t</code> - couleurs vraies. Il s'agit du mode
pr&eacute;c&eacute;dent en l'absence de toute table de
correspondance des couleurs. Ces modes sont
g&eacute;n&eacute;ralement sur 24 bits et procurent quelques 16,8
millions de couleurs.</li>
</ul>
<p><em>A cot&eacute; de &ccedil;a</em>, le param&egrave;tre
<code>(org)</code> a une signification bien diff&eacute;rente pour
les modes monochromes.</p>
<ul>
<li><code>n</code> - couleurs usuelles, c'est &agrave; dire 0 pour
le blanc et 1 pour le noir;</li>
<li><code>i</code> - couleurs invers&eacute;es, c'est &agrave; dire
0 pour le noir et 1 pour le blanc.</li>
</ul>
<p>L'&eacute;l&eacute;ment suivant ayant trait au
p&eacute;riph&eacute;rique vid&eacute;o fixe l'adresse de base de
la m&eacute;moire vid&eacute;o. Il est donn&eacute; par le
param&egrave;tre <code>(scrmem)</code> sous forme
hexad&eacute;cimal (pr&eacute;fix&eacute; par <code>0x</code>).
Vous devriez trouver cette information dans la documentation
fournie avec le p&eacute;riph&eacute;rique.</p>
<p>Le param&egrave;tre suivant, <code>(scrlen)</code>, fournit au
noyau la taille de la zone de m&eacute;moire vid&eacute;o. S'il est
absent, il est calcul&eacute; &agrave; partir des valeurs de
<code>(xres)</code>, <code>(yres)</code> et <code>(depth)</code>.
En bref, il ne sert &agrave; rien de pr&eacute;ciser une valeur. Si
vous donnez &agrave; sa suite le param&egrave;tre
<code>(vgabase)</code>, laissez le champ vide en rentrant deux
point-virgules. Autrement, oubliez le.</p>
<p>Le param&egrave;tre <code>(vgabase)</code> est optionnel. En son
absence, le noyau ne pourra lire ni &eacute;crire le moindre des
registres de couleur du p&eacute;riph&eacute;rique et il vous
faudra donc installer les couleurs appropri&eacute;es avant le
d&eacute;marrage de Linux. Si la carte est compatible VGA, vous
pouvez donner au noyau l'adresse o&ugrave; se trouvent les
registres vid&eacute;o de fa&ccedil;on &agrave; ce qu'il modifie
lui-m&ecirc;me les tables des couleurs. Vous trouverez cette
information dans la documentation fournie avec le
p&eacute;riph&eacute;rique. Afin d'&ecirc;tre <em>clair</em>,
<code>(vgabase)</code> est une adresse de <em>base</em>, donc
align&eacute;e sur un multiple de 4k. Pour l'acc&egrave;s en
lecture ou en &eacute;criture aux registres, le noyau utilise une
plage d'adresses comprises entre <code>(vgabase) + 0x3c7</code> et
<code>(vgabase) + 0x3c9</code>. La valeur est donn&eacute;e en
hexad&eacute;cimal et doit &ecirc;tre pr&eacute;fix&eacute;e par
<code>0x</code> (tout comme <code>(scrmem)</code>).</p>
<p><code>(colw)</code> ne sert que si <code>(vgabase)</code> est
sp&eacute;cifi&eacute;. Il donne au noyau la taille des registres
de couleur, c'est &agrave; dire le nombre de bits par couleur
(rouge/verte/bleue). La valeur par d&eacute;faut est de 6 bits mais
il est courant d'en sp&eacute;cifier 8.</p>
<p><code>(coltype)</code> s'emploie en conjonction avec
<code>(vgabase)</code>. Il pr&eacute;cise aux noyau le type des
registres de la carte graphique. Actuellement, deux mod&egrave;les
sont g&eacute;r&eacute;s&nbsp;: <code>vga</code> et
<code>mv300</code>. Par d&eacute;faut, <code>vga</code> est
employ&eacute;.</p>
<p><code>(xres_virtual)</code> n'est n&eacute;cessaire qu'avec les
cartes ProMST/ET4000 pour lesquelles la longueur physique des
lignes diff&egrave;re de leur taille visible. Avec une ProMST, on
donnera la valeur 2048 tandis que pour l'ET4000 cela
d&eacute;pendra de l'initialisation de la carte vid&eacute;o.</p>
<h2><a name="s8">8. Le pilote de m&eacute;moire vid&eacute;o avec
les Amiga</a></h2>
<p>Cette partie d&eacute;crit les options offertes sur les Amiga,
options voisines de celles de l'Atari m68k.</p>
<h2><a name="ss8.1">8.1 Quels sont les modes disponibles sur les
machines Amiga ?</a></h2>
<p>&Ccedil;a d&eacute;pend du composant employ&eacute; dans votre
Amiga. Il y en a essentiellement trois&nbsp;: <code>OCS, ECS et
AGA</code>. Tous on recours au pilote de m&eacute;moire
vid&eacute;o.</p>
<ul>
<li>Modes NTSC
<ul>
<li><code>ntsc</code> - 640x200</li>
<li><code>ntsc-lace</code> - 640x400</li>
</ul>
</li>
<li>PAL modes
<ul>
<li><code>pal</code> - 640x256</li>
<li><code>pal-lace</code> - 640x512</li>
</ul>
</li>
<li>Modes ECS - 2 bits de couleur avec les composants ECS, 8 bits
avec les composants AGA
<ul>
<li><code>multiscan</code> - 640x480</li>
<li><code>multiscan-lace</code> - 640x960</li>
<li><code>euro36</code> - 640x200</li>
<li><code>euro36-lace</code> - 640x400</li>
<li><code>euro72</code> - 640x400</li>
<li><code>euro72-lace</code> - 640x800</li>
<li><code>super72</code> - 800x300</li>
<li><code>super72-lace</code> - 800x600</li>
<li><code>dblntsc</code> - 640x200</li>
<li><code>dblpal</code> - 640x256</li>
<li><code>dblntsc-ff</code> - 640x400</li>
<li><code>dblntsc-lace</code> - 640x800</li>
<li><code>dblpal-ff</code> - 640x512</li>
<li><code>dblpal-lace</code> - 640x1024</li>
</ul>
</li>
<li>Modes VGA - 2 bits de couleur avec les composants ECS, 8 bits
avec les composants AGA
<ul>
<li><code>vga</code> - 640x480</li>
<li><code>vga70</code> - 640x400</li>
</ul>
</li>
</ul>
<h2><a name="ss8.2">8.2 Sous options suppl&eacute;mentaires sur les
machines Amiga m68k</a></h2>
<p>Elles sont voisines de celles de l'Atari m68k&nbsp;:</p>
<ul>
<li><code>depth</code> - pr&eacute;cise le nombre de bits par
pixel.</li>
<li><code>inverse</code> - m&ecirc;me chose que sur les Atari.</li>
<li><code>font</code> - m&ecirc;me chose que sur les Atari, mais la
fonte <code>PEARL8x8</code> remplace la fonte <code>VGA8x8</code>
si la largeur de la zone d'affichage est inf&eacute;rieure &agrave;
400 pixels.</li>
<li><code>monitorcap</code> - description des modes multisync
disponibles. PROSCRIT pour les moniteurs &agrave; fr&eacute;quence
fixe.</li>
</ul>
<h2><a name="ss8.3">8.3 Cartes d'extension graphiques
g&eacute;r&eacute;es sur Amiga</a></h2>
<ul>
<li><code>Phase5 CyberVision 64</code> (composant S3 Trio64)</li>
<li><code>Phase5 CyverVision 64-3D</code> (composant S3 ViRGE)</li>
<li><code>MacroSystems RetinaZ3</code> (composant NCR
77C32BLT)</li>
<li><code>Helfrich Piccolo, SD64, GVP ECS Spectrum, Village Tronic
Picasso II</code>II+ and IV/ (Cirrus Logic GD542x/543x)</li>
</ul>
<h2><a name="s9">9. Le pilote de m&eacute;moire vid&eacute;o sur
les Macintosh m68k</a></h2>
<p>La version courante du gestionnaire de m&eacute;moire
vid&eacute;o ne g&egrave;re que les modes choisis sous MacOS avant
l'initialisation de Linux ainsi que les modes couleur en 1, 2, 4 et
8 bits.</p>
<p>Le pilote g&egrave;re les options de la forme&nbsp;:</p>
<pre>
video=macfb:&lt;font&gt;:&lt;inverse&gt;
</pre>
Les fontes VGA8x8, VGA8x16, 6x11, etc... sont disponibles. L'option
inverse permet bien s&ucirc;r d'inverser la vid&eacute;o.
<h2><a name="s10">10. Le pilote de m&eacute;moire vid&eacute;o sur
les PowerPC</a></h2>
<p>L'auteur aimerait recevoir des informations relatives au
gestionnaire de m&eacute;moire vid&eacute;o sur ces machines.</p>
<h2><a name="s11">11. Le pilote de m&eacute;moire vid&eacute;o sur
les Alpha</a></h2>
<h2><a name="ss11.1">11.1 Modes disponibles</a></h2>
<p>Pour l'instant il n'y a que la carte PCI TGA. Elle offre un mode
de 80 lignes par 30 colonnes en 640x480 avec une profondeur de 8,
24 ou 32 bits.</p>
<h2><a name="ss11.2">11.2 Cartes graphiques g&eacute;r&eacute;es
par le pilote de m&eacute;moire vid&eacute;o</a></h2>
<p>La carte graphique suivante a &eacute;t&eacute; test&eacute;e
avec succ&egrave;s&nbsp;:</p>
<ul>
<li><code>DEC TGA PCI (DEC21030)</code> - 640x480 @ 8 bit or 24/32
bit versions</li>
</ul>
<h2><a name="s12">12. Le pilote de m&eacute;moire vid&eacute;o sur
les SPARC</a></h2>
<h2><a name="ss12.1">12.1 Cartes graphiques g&eacute;r&eacute;es
par le pilote de m&eacute;moire vid&eacute;o</a></h2>
<ul>
<li>MG1/MG2 - version SBus ou int&eacute;gr&eacute;e (Sun3) - au
maximum 1600x1280 monochrome (BWtwo)</li>
<li>CGthree - semblable aux MG1/MG2 mais offrant la couleur -
r&eacute;solution maximale ?</li>
<li>GX - SBus - au maximum 1152x900 en 8bits (CGsix)</li>
<li>TurboGX - SBus - au maximum 1152x900 en 8 bits (CGsix)</li>
<li>SX - SS10/SS20 - au maximum 1280x1024 en 24 bits -
(CGfourteen)</li>
<li>ZX(TZX) - SBus - carte acc&eacute;l&eacute;ratrice 3D 24 bits -
r&eacute;solution maximale ? (Leo)</li>
<li>TCX - AFX - Sparc 4 - au maximum 1280x1024 en 8 bits</li>
<li>TCX(S24) - AFX - Sparc 5 - au maximum 1152x900 en 24 bits</li>
<li>Creator - SBus - au maximum 1280x1024 en 24 bits (FFB)</li>
<li>Creator3D - SBus - au maximum 1920x1200 en 24 bits (FFB)</li>
<li>ATI Mach64 - carte acc&eacute;l&eacute;ratrice 8/24 bits pour
Sparc64 sur bus PCI</li>
</ul>
<p>Une option de la PROM permet l'envoi des caract&egrave;res
d'affichage &agrave; l'&eacute;cran ou sur une console
s&eacute;rie. Jetez un oeil &agrave; la FAQ du Frame Buffer sur
Sparc&nbsp;: <a href=
"http://c3-a.snvl1.sfba.home.com/Framebuffer.html">http://c3-a.snvl1.sfba.home.com/Framebuffer.html</a>&gt;.</p>
<h2><a name="ss12.2">12.2 Configuration du gestionnaire de
m&eacute;moire vid&eacute;o</a></h2>
<p>Pendant la configuration du noyau (make config ou autre), il
vous faut choisir entre <code>promcon</code> ou <code>fbcon</code>.
La compilation des deux est possible mais il faudra
sp&eacute;cifier au noyau le pilote &agrave; employer. Par
d&eacute;faut, <code>fbcon</code> est essay&eacute; en premier au
d&eacute;marrage. Si <code>promcon</code> n'a pas &eacute;t&eacute;
s&eacute;lectionn&eacute;, <code>dummycon</code> est activ&eacute;
pendant l'initialisation. Une fois les bus initialis&eacute;s, si
<code>fbcon</code> est compil&eacute;, le noyau recherche les
p&eacute;riph&eacute;riques pr&eacute;c&eacute;dents et se sert de
<code>fbcon</code>. En l'absence de gestionnaires de m&eacute;moire
vid&eacute;o, le noyau a recours &agrave; <code>promcon</code>.</p>
<p>Voici les options du noyau&nbsp;:</p>
<pre>
video=sbus:options
        options inclue les &eacute;l&eacute;ments suivants, s&eacute;par&eacute;s par une virgule :
                nomargins       marge nulle;    
                margins=12x24   marge de 12 par 24 (calcul&eacute; par d&eacute;faut en 
                fonction de la r&eacute;solution);
                off             inhibition de la d&eacute;tection des pilotes de
                m&eacute;moire vid&eacute;o SBus/UPA;
                font=SUN12x22   emploi d'une fonte particuli&egrave;re. 
</pre>
<p>Au d&eacute;marrage, un param&eacute;trage de la forme</p>
<pre>
 video=sbus:nomargins,font=SUN12x22 
</pre>
procure une agr&eacute;able console en mode texte, rapide, avec une
r&eacute;solution de 96 par 40 qui ressemble &agrave; une console
Solaris avec la couleur et les terminaux virtuels en plus comme sur
les compatibles PC.
<p>Pour que l'affichage se fasse avec la fonte
<code>SUN12x22</code>, vous devez l'activer durant la configuration
du noyau (d&eacute;sactivez l'option <code>fontwidth != 8</code>).
Le pilote de m&eacute;moire vid&eacute;o
acc&eacute;l&eacute;r&eacute; g&egrave;re n'importe quelle fonte
dont la largeur est comprise entre 1 et 16 pixels tandis que le
pilote de base ne g&egrave;re que les fontes larges de 4, 8, 12 ou
16 pixels. Un paquetage r&eacute;cent des consoletools est
recommand&eacute;.</p>
<h2><a name="s13">13. Le pilote de m&eacute;moire vid&eacute;o sur
les MIPS</a></h2>
<p>Il n'est pas besoin de modifier quoi que ce soit avec ce type de
machines. Tout est g&eacute;r&eacute; automatiquement. En
particulier, les Indys sont c&acirc;bl&eacute;s de fa&ccedil;on
&agrave; offrir une console 160x64. Une r&eacute;&eacute;criture du
code de gestion de la console pour les Indys &eacute;tant en cours,
on gardera un oeil sur cette section.</p>
<h2><a name="s14">14. Le pilote de m&eacute;moire vid&eacute;o sur
les ARM</a></h2>
<h2><a name="ss14.1">14.1 Netwinders</a></h2>
<p>Pour les Netwinders (qui reposent sur le processeur RISC ARM
SA110 au charme si d&eacute;licieusement british), il existe deux
versions du gestionnaire de m&eacute;moire vid&eacute;o pour les
Cyber2000 : un pour les noyaux 2.0.x, l'autre pour les 2.2.y. Tant
l'activation que l'emploi du pilote sont assez naturels avec les
deux branches du noyau. N&eacute;anmoins, en 2.0.x, la
r&eacute;solution et la profondeur sont cod&eacute;es en dur
(beuh...). Heureusement, la version 2.2.x est plus souple, du moins
le sera une fois les pilotes davantage stabilis&eacute;s. Le mieux
que vous puissiez faire afin que tout fonctionne reste encore de
lire la documentation fournie avec la portion ARM des sources du
noyau. Les Netwinders int&egrave;grent un composant VGA mais il ne
s'est malheureusement jusqu'ici trouv&eacute; personne pour porter
vgafb. [Je m'y attelerai si quelqu'un me fournissait un Netwinder
avec lequel jouer]</p>
<h2><a name="ss14.2">14.2 Archimedes Acorn</a></h2>
<p>Les Acorns offrent un pilote de m&eacute;moire vid&eacute;o
depuis les temps anciens des noyaux 1.9.x. Cependant, le
gestionnaire Acornfb des noyaux 2.2.x est compl&egrave;tement
nouveau puisque l'interface d'acc&egrave;s &agrave; la
m&eacute;moire vid&eacute;o a &eacute;t&eacute; modifi&eacute;e au
cours du d&eacute;veloppement des noyaux 2.1.x (qui devinrent
naturellement les 2.2.x). Comme pr&eacute;c&eacute;demment, il
n'est gu&egrave;re difficile d'activer le pilote et de configurer
la profondeur et la r&eacute;solution.</p>
<h2><a name="ss14.3">14.3 Autres architectures &agrave; base d'ARM
(SA 7110s et variantes)</a></h2>
<p>A ma surprise, m&ecirc;me le Psion 5 et le Geofox disposent d'un
pilote de m&eacute;moire vid&eacute;o ! On m'a dit que le manchot
passait d'ailleurs plut&ocirc;t bien. S'il vous pla&icirc;t, donnez
moi un Psion 5 !</p>
<h2><a name="s15">15. Gestion de la m&eacute;moire vid&eacute;o
avec plusieurs &eacute;crans</a></h2>
<p>Cette partie du document a &eacute;t&eacute; fournie
gracieusement par Frederick A. Niles qui conserve tous ses droits
sur les informations donn&eacute;es.</p>
<h2><a name="ss15.1">15.1 Introduction</a></h2>
<p>Les quelques pages qui suivent sont cens&eacute;es permettre une
premi&egrave;re prise en main des configurations &agrave; deux
&eacute;crans sous Linux. Bien que le processus se d&eacute;roule
naturellement, les occasions de se tromper ne manquent pas.</p>
<p>Je me suis focalis&eacute; sur la mise en place d'un serveur X
sur un second moniteur. L'int&eacute;r&ecirc;t en est que l'on
croise de temps &agrave; autre des personnes se d&eacute;barrassant
de vieux moniteurs de 19 ou 20 pouces &agrave; fr&eacute;quence
fixe car ils ne peuvent plus s'en servir. On peut ainsi
d&eacute;marrer avec un petit moniteur multisync et disposer de X
sur un moniteur de grandes dimensions.</p>
<p>Comme il s'agit d'un domaine en plein d&eacute;veloppement,
l'information &eacute;volue rapidement. Le contenu de ce document
pourrait tr&egrave;s bien &ecirc;tre d&eacute;pass&eacute;, voire
compl&egrave;tement faux, lorsque vous le lirez.</p>
<p>** ATTENTION ** Ce texte a &eacute;t&eacute;
r&eacute;dig&eacute; avant la sortie de la version 4.0 de la
XFree86 qui devrait modifier pas mal de choses. Essayez d'obtenir
une nouvelle version de ce document si elle existe.</p>
<h2><a name="ss15.2">15.2 Retour</a></h2>
<p>Le retour de la part des utilisateurs sera plus que certainement
le bienvenu. Sans vos remarques et vos questions, ce document
n'existerait pas. N'h&eacute;sitez donc pas &agrave; me contacter
&agrave; l'adresse suivante : Frederick.A.Niles@gsfc.nasa.gov.</p>
<h2><a name="ss15.3">15.3 Contributions</a></h2>
<p>Les personnes suivantes ont particip&eacute; &agrave;
l'&eacute;laboration de ce Mini-HOWTO&nbsp;:</p>
<ul>
<li>Petr Vandrovec <code>vandrove@vc.cvut.cz</code></li>
<li>Andreas Ehliar <code>ehliar@lysator.liu.se</code> (x2x)</li>
<li>Marco Bizzarri <code>m.bizzarri@icube.it</code> (multiple X
servers)</li>
</ul>
<h2><a name="ss15.4">15.4 Avertissements</a></h2>
<p>L'auteur de ce document d&eacute;gage toute
responsabilit&eacute; quant &agrave; son contenu. Vous employez les
notions, exemples et tout ce qui figure ici &agrave; vos risques et
p&eacute;rils. S'agissant d'une nouvelle version de ce document,
des informations erron&eacute;es ou inad&eacute;quates peuvent
tr&egrave;s bien entra&icirc;ner la d&eacute;gradation de votre
mat&eacute;riel. Fa&icirc;tes-y attention et, bien que ce soit
hautement improbable, je me d&eacute;charge de toute
responsabilit&eacute; &agrave; cet &eacute;gard.</p>
<h2><a name="ss15.5">15.5 Propri&eacute;t&eacute; du
document</a></h2>
<p>Copyright (c) 1999 Frederick Niles</p>
<p>La distribution de ce document doit se conformer aux termes de
la licence LDP tels que d&eacute;finis &agrave; l'adresse&nbsp;:
<a href=
"http://sunsite.unc.edu/LDP/COPYRIGHT.html">sunsite.unc.edu/LDP/COPYRIGHT.html</a>&gt;.</p>
<h2><a name="ss15.6">15.6 Mat&eacute;riel support&eacute;</a></h2>
<p>La plupart des cartes vid&eacute;os supposent qu'elles assument
seules cette fonction au sein du syst&egrave;me. Elles occupent
donc en permanence l'espace d'adressage de l'adaptateur graphique
primaire. Il existe quelques exceptions&nbsp;:</p>
<ul>
<li>les cartes Matrox&nbsp;: Matrox Millennium, Matrox Millennium
II, Matrox Mystique, Matrox Mystique 220, Matrox Productiva G100,
Matrox Mystique G200, Matrox Millennium G200, Matrox Marvel
G200.</li>
<li>MDA&nbsp;: il s'agit essentiellement des cartes graphiques
monochromes Hercules. &Eacute;videmment, on ne dispose que du mode
texte.</li>
</ul>
Remarque&nbsp;: seul le second adaptateur graphique doit figurer
dans la liste pr&eacute;c&eacute;dente.
<h2><a name="ss15.7">15.7 Logiciels commerciaux</a></h2>
<p>Ce Mini-HOWTO traite avant tout de logiciel libre. Certains
serveurs X commerciaux sont n&eacute;anmoins capables de
g&eacute;rer plusieurs moniteurs tels le serveur Metro-X de Metro
Link (www.metrolink.com) et Accelerated-X de Xi Graphics
(www.xig.com).</p>
<h2><a name="ss15.8">15.8 Logiciels n&eacute;cessaires</a></h2>
<p>Les patches et programmes suivants sont
n&eacute;cessaires&nbsp;:</p>
<ul>
<li>"fbset", examinez&nbsp;: <a href=
"http://www.cs.kuleuven.ac.be/~geert/bin/">http://www.cs.kuleuven.ac.be/~geert/bin/</a>&gt;
(remarque : ce programme est fourni avec la RedHat 6.0)</li>
<li>patches du noyau pour la configuration &agrave; deux
&eacute;crans "fbaddon" des cartes Matrox. Examinez&nbsp;: <a href=
"ftp://platan.vc.cvut.cz/pub/linux/matrox-latest/">ftp://platan.vc.cvut.cz/pub/linux/matrox-latest/</a>&gt;</li>
<li>"con2fb", examinez&nbsp;: <a href=
"ftp://platan.vc.cvut.cz/pub/linux/matrox-latest/">ftp://platan.vc.cvut.cz/pub/linux/matrox-latest/</a>&gt;</li>
<li>serveur X11 XF86_FBDev employant le gestionnaire de
m&eacute;moire vid&eacute;o. Disponible en standard avec la version
3.3.1 de la XFree86.</li>
</ul>
<h2><a name="ss15.9">15.9 Mise en route</a></h2>
<p>Commencez par patcher votre version du noyau avec le patche
"fbaddon". Ensuite, vous configurerez le noyau et activerez la
gestion de la m&eacute;moire vid&eacute;o. Si vous disposez de
cartes Matrox, incluez le pilote d'acc&eacute;l&eacute;ration
unifi&eacute; Matrox. Excluez le gestionnaire de m&eacute;moire
vid&eacute;o VESA. Activez bien s&ucirc;r la gestion de plusieurs
adaptateurs, recompilez le noyau et r&eacute;initialisez le
syst&egrave;me.</p>
<p>A pr&eacute;sent, installez l'utilitaire "fbset" et lisez
attentivement la documentation relative &agrave; son
param&egrave;trage. La mise en place d'un fichier "/etc/fb.modes"
est vivement recommand&eacute; une fois que vous vous serez
d&eacute;cid&eacute; sur une configuration. Le paquetage fbset
comprend un script Perl de conversion du fichier XF86Config en
param&egrave;tres pour fb.modes. Vous trouverez mon script en shell
Bourne dans les annexes A et B.</p>
<p>Vous devez vous mettre au point sur l'emploi du pilote de
m&eacute;moire vid&eacute;o avec un seul adaptateur et bien
identifier tout ce qui n'a rien &agrave; voir avec la gestion de
plusieurs. Vous vous &eacute;pargnerez ainsi pas mal de noeuds au
cerveau. Je me focalise surtout sur la mise en place de X au niveau
du second moniteur vu que la plupart des autres op&eacute;rations
de configuration en forment un sous-ensemble.</p>
<h3>D&eacute;placement d'une console</h3>
<p>Compilez le programme "con2fb". Lanc&eacute; sans arguments, il
fournit le message suivant&nbsp;: "usage: con2fb fbdev console".
Une commande telle que "con2fb /dev/fb1 /dev/tty6" attacherait la
console virtuelle num&eacute;ro 6 au second gestionnaire de
m&eacute;moire vid&eacute;o. Ctrl-Alt-F6 vous basculera dans cette
console qui s'affichera sur le second moniteur.</p>
<h3>"fbset" et le param&egrave;trage du second moniteur</h3>
<p>La mise en place des param&egrave;tres "fbset" doit se cantonner
au moniteur avec lequel "fbset" est employ&eacute;. Fa&icirc;tes
donc attention &agrave; bien employer l'option "-fb" avec le second
moniteur. Plus pr&eacute;cis&eacute;ment, si vous ne voulez rien
faire d'autre qu'accorder la r&eacute;solution verticale virtuelle
avec la r&eacute;solution verticale r&eacute;elle&nbsp;: "fbset -fb
/dev/fb1 -vyres 600" (par exemple). L'affichage en mode texte en
est s&eacute;rieusement ralenti mais sans cela X reste vraiment
hideux.</p>
<h3>X et le gestionnaire de m&eacute;moire vid&eacute;o</h3>
<p>Le fichier framebuffer.txt explique bien mieux que je ne puis le
faire mais voici les deux points essentiels&nbsp;:</p>
<ul>
<li>v&eacute;rifiez que le lien "X" pointe bien vers
"XF86_FBDev",</li>
<li>ajoutez une section Monitor &agrave; votre fichier XF86Config
pour le gestionnaire de m&eacute;moire vid&eacute;o.</li>
</ul>
Par exemple&nbsp;:
<pre>
# Serveur X s'appuyant sur le gestionnaire de m&eacute;moire vid&eacute;o.

Section "Screen"
    Driver      "fbdev"
    Device      "Millennium"
    Monitor     "NEC MultiSync 5FGp"
    Subsection "Display"
        Depth       8
        Modes       "default"
        ViewPort    0 0
    EndSubsection
    Subsection "Display"
        Depth       16
        Modes       "default"
        ViewPort    0 0
    EndSubsection
    Subsection "Display"
        Depth       24
        Modes       "default"
        ViewPort    0 0
    EndSubsection
    Subsection "Display"
        Depth       32
        Modes       "default"
        ViewPort    0 0
    EndSubsection
EndSection
</pre>
<p>Restreignez vous aux modes "default" car je ne pense pas qu'il y
en ait d'autres qui fonctionnent avec le pilote de m&eacute;moire
vid&eacute;o Matrox.</p>
<h3>Ex&eacute;cution du serveur X sur le second moniteur</h3>
<p>Positionnez la variable d'environnement FRAMEBUFFER sur le
second p&eacute;riph&eacute;rique de m&eacute;moire
vid&eacute;o&nbsp;: "export FRAMEBUFFER=/dev/fb1" ou&nbsp;: "setenv
FRAMEBUFFER /dev/fb1" X doit &ecirc;tre lanc&eacute; avec des
param&egrave;tres lui sp&eacute;cifiant &agrave; la fois la
profondeur souhait&eacute;e au niveau des couleurs et un
num&eacute;ro correspondant &agrave; la console virtuelle
employ&eacute;e. Par exemple : "startx -- :0 -bpp 16 vt06". Le
serveur X en 16 bits par pixel d'identifiant ":0" est
attach&eacute; &agrave; la console virtuelle num&eacute;ro 6.
Utilisez ":1" au lancement d'un autre serveur X en le liant
&agrave; une console d&eacute;pendant de l'autre gestionnaire de
m&eacute;moire vid&eacute;o et vous disposerez de deux serveurs X
fonctionnant simultan&eacute;ment.</p>
<h2><a name="ss15.10">15.10 R&eacute;sum&eacute;</a></h2>
<p>Les &eacute;tapes de mise en place d'un serveur X sur un second
moniteur peuvent &ecirc;tre ainsi r&eacute;sum&eacute;es&nbsp;:</p>
<ul>
<li>se procurer le patch du noyau, fbset et con2fb;</li>
<li>appliquer le patch, configurer le noyau, recompiler et
reinitialiser;</li>
<li>ajouter une section XF86_FBDev au fichier XF86Config et fixer
le lien de X.</li>
</ul>
A chaque red&eacute;marrage&nbsp;:
<ul>
<li>cr&eacute;er une console&nbsp;: "con2fb /dev/fb1
/dev/tty6";</li>
<li>param&eacute;trer&nbsp;: "fbset -fb /dev/fb1 1280x1024";</li>
<li>positionner la variable FRAMEBUFFER : "export
FRAMEBUFFER=/dev/fb1";</li>
<li>lancer X&nbsp;: "startx -- -bpp 16 vt06".</li>
</ul>
Un alias de shell permet d'automatiser ces t&acirc;ches. Un script
ne conviendrait pas puisqu'on a besoin de d&eacute;terminer le
num&eacute;ro de la console courante. Voici mon alias (en
C-shell)&nbsp;:
<pre>
alias startxfb = "
setenv FRAMEBUFFER /dev/fb\!*;  # l'argument passe a l'alias est recupere
con2fb $FRAMEBUFFER /dev/$tty;  # positionne le pilote sur la console courante
fbset -fb $FRAMEBUFFER 1280x1024@62;  # Cf /etc/fb.modes
startx -- :\!* -bpp 16 vt0`echo $tty | cut -dy f 2`' # execution de X
"
</pre>
<p>Ces lignes correspondent au contenu de mon .cshrc aux
commentaires pr&egrave;s mais ils aident, avec les sauts de ligne,
&agrave; en faciliter la lecture. Je fournis le num&eacute;ro du
pilote de m&eacute;moire vid&eacute;o comme argument &agrave;
l'alias.</p>
<p>Si quelqu'un me fournit un &eacute;quivalent pour bash, je
l'incluerai ici. La commande tty vous fournira le nom de la console
courante.</p>
<h2><a name="ss15.11">15.11 Remarques et probl&egrave;mes</a></h2>
<ul>
<li>fbset et startx <em>DOIVENT</em> &ecirc;tre invoqu&eacute;s
depuis une m&ecirc;me console qui sera contr&ocirc;l&eacute;e par
le pilote de m&eacute;moire vid&eacute;o. L'automatisation au moyen
de scripts en est diminu&eacute;e d'autant.</li>
<li>la version 4.0 de la XFree86 g&eacute;rera correctement les
adaptateurs multiples mais la 3.3.1 en est encore incapable. Vous
pouvez cependant disposer de deux serveurs avec la 3.3.1 et passer
de l'un &agrave; l'autre avec x2x.</li>
<li>Le pilote de m&eacute;moire vid&eacute;o non-actif conserve la
derni&egrave;re image sans la mettre &agrave; jour.</li>
<li>L'&eacute;cran qui n'est pas s&eacute;lectionn&eacute; ne
conserve pas toujours son &eacute;tat durant ses p&eacute;riodes
d'inactivit&eacute; (mais en g&eacute;n&eacute;ral il le fait).
Geert Uytterhoeven, qui assure l'&eacute;volution du pilote de
m&eacute;moire vid&eacute;o, et Linus Torvalds sont en
d&eacute;saccord sur les changements pour la gestion des
adaptateurs multiples li&eacute;s aux consoles (i.e. fbaddon) et
ceux ci pourraient tr&egrave;s bien ne jamais se retrouver dans
l'arborescence officielle du noyau (cette information a une forte
composante de type bruit de couloir).</li>
<li>Si vous ex&eacute;cutez X de n'importe o&ugrave;, votre machine
peut se retrouver dans un &eacute;tat passablement
d&eacute;grad&eacute; qui m&eacute;lange les
&eacute;v&egrave;nements de la souris et ceux du clavier.</li>
<li>Le fichier framebuffer.txt dans l'arborescence du noyau
mentionne la possibilit&eacute; de modifier les param&egrave;tres
Modeline du XF86Config alors que X fonctionne. Le gestionnaire de
m&eacute;moire vid&eacute;o Matrox semble obliger le serveur X
&agrave; tous les ignorer. On ne dispose donc que d'un
param&egrave;trage, celui qui est employ&eacute; lors du
basculement depuis le mode texte.</li>
<li>XF86_FBDev ne dispose pas d'acc&eacute;l&eacute;ration. Des
patches pour les cartes Matrox existent&nbsp;: <a href=
"http://www.in-berlin.de/User/kraxel/xfree86/">http://www.in-berlin.de/User/kraxel/xfree86/</a>&gt;</li>
</ul>
<h3>Fonctionnement avec xdm</h3>
<p>Je n'ai pas encore trouv&eacute; comment passer au niveau 5 dans
une configuration &agrave; deux adaptateurs avec un serveur sur le
second moniteur ou sur les deux. Bien que l'ajout d'une ligne au
fichier Xservers de xdm/gdm soit ais&eacute;, la contrainte de
d&eacute;marrer le serveur X depuis la console g&eacute;r&eacute;e
par le pilote de m&eacute;moire vid&eacute;o interdit cette
solution. Si quelqu'un a une id&eacute;e, qu'il m'en fasse part
afin que je puisse l'ajouter.</p>
<h3>L'utilitaire x2x</h3>
<p>x2x vous permet de passer d'un serveur X &agrave; l'autre
lorsque vous atteignez le bord d'un &eacute;cran. Aux
derni&egrave;res nouvelles, ce programme se trouvait &agrave;
l'adresse suivante&nbsp;: <a href=
"http://ftp.digital.com/pub/DEC/SRC/x2x/">http://ftp.digital.com/pub/DEC/SRC/x2x/</a>&gt;.
La distribution Debian en propose un paquetage. Je n'ai pas eu
l'occasion de l'essayer mais plusieurs utilisateurs ont fait part
d'exp&eacute;riences r&eacute;ussies.</p>
<h3>Autres commandes utiles</h3>
<p>Il est bon de garder pr&eacute;sente &agrave; l'esprit
l'existence de certaines commandes quand on dispose de plusieurs
adaptateurs (surtout quand on &eacute;crit des scripts). * "chvt"
permet de passer d'une console virtuelle (VT) &agrave; une autre. *
"openvt" ex&eacute;cute un programme dans une console
diff&eacute;rente. * "tty" renvoie le nom de la console
courante.</p>
<h3>Annexe A. Script cvtmode.m pour Octave</h3>
<p>Notez le positionnement de bpp.</p>
<pre>
#!/usr/bin/octave -q
bpp = 16;
DCF = sscanf(argv(1,:), "%f");
HR  = sscanf(argv(2,:), "%f");
SH1 = sscanf(argv(3,:), "%f");
SH2 = sscanf(argv(4,:), "%f");
HFL = sscanf(argv(5,:), "%f");
VR  = sscanf(argv(6,:), "%f");
SV1 = sscanf(argv(7,:), "%f");
SV2 = sscanf(argv(8,:), "%f");
VFL = sscanf(argv(9,:), "%f");
pixclock = 1000000 / DCF;
left_margin = HFL - SH2;
right_margin = SH1 - HR;
hsync_len = SH2 - SH1;

# 3) vertical timings:
upper_margin = VFL - SV2;
lower_margin = SV1 - VR;
vsync_len = SV2 - SV1;

RR = DCF / (HFL * VFL) *1e6;
HSF = DCF / HFL * 1e3;

printf("mode \"%dx%d\"\n",HR,VR);
printf("   # D: %3.2f MHz, H: %3.2f kHz, V: %2.2f Hz\n", DCF, HSF, RR);
printf("   geometry %d %d %d %d %d\n", HR, VR, HR, VR, bpp);
printf("   timings %d %d %d %d %d %d %d\n", ...
                                 pixclock, left_margin, right_margin, ...
                                 upper_margin, lower_margin, ...
                                 hsync_len, vsync_len);
printf("endmode\n");
</pre>
<h3>Annexe B. Script "cvtfile" en Shell Bourne</h3>
<p>Le script Octave "cvtmode" est utilis&eacute;.</p>
<pre>
#!/bin/sh

# Shell script to convert XF86Config file to fb.modes file.
# Uses octave script cvtmode.m

if [ -z $1 ]; then
  FILE=/etc/X11/XF86Config
else
  FILE=$1
fi

i=1
LEN=`grep Modeline $FILE | wc -l`
while expr $i \&lt; $LEN &gt; /dev/null ;
do
  CURLINE=`grep Modeline $FILE | cut -d'"' -f 3-20 | head -$i | tail -1 `
  ./cvtmode.m $CURLINE
  echo " "
  i=`expr $i + 1`
done
</pre>
<h2><a name="s16">16. Gestion des fontes</a></h2>
<p>Afin de pouvoir modifier les fontes, vous devez installer
kbd-0.99. Le logiciel est disponible via <a href=
"ftp://ftp.win.tue.nl/pub/linux/utils/kbd">ftp://ftp.win.tue.nl/pub/linux/utils/kbd</a>&gt;.</p>
<p>Le t&eacute;l&eacute;-chargement et l'installation de kbd-0.99
r&eacute;side en ce que vous pourrez charger les fontes
internationales (dont l'Euro) dans votre console. Je trouve
tr&egrave;s chic *en fran&ccedil;ais dans le texte* d'avoir trois
symboles sur mon clavier&nbsp;: le dollar, la livre et l'Euro.</p>
<h2><a name="s17">17. Commutation de mode</a></h2>
<p>Pour changer de mode (640x480, 800x800, etc ...), vous avez
besoin de fbset (fbset-19990118.tar.gz pour l'instant)&nbsp;:
<a href=
"http://www.cs.kuleuven.ac.be/~geert/bin/fbset-19990118.tar.gz">http://www.cs.kuleuven.ac.be/~geert/bin/fbset-19990118.tar.gz</a>&gt;
Le logiciel est fourni avec une documentation compl&egrave;te sur
son emploi.</p>
<h2><a name="ss17.1">17.1 X11 et vesafb ?</a></h2>
<p>Si votre version de XFree86 est ant&eacute;rieure &agrave; la
3.3.3.1, il est urgent de proc&eacute;der &agrave; une mise
&agrave; jour. Cette version comprend le pilote FBDev X pour les
gestionnaires de m&eacute;moire vid&eacute;o. Autrement, vous
pouvez compiler votre propre pilote FBDev pour des versions de
XFree telles la 3.3.2 ou la 3.3.3.</p>
<p>Allez sur <a href=
"http://www.xfree86.org">http://www.xfree86.org</a>&gt; et
t&eacute;l&eacute;-chargez les derni&egrave;res sources du serveur
X. [NdT&nbsp;: le recours &agrave; un miroir ou &agrave; <a href=
"ftp://ftp.lip6.fr/pub/X11">ftp://ftp.lip6.fr/pub/X11</a>&gt; sera
peut-&ecirc;tre plus rapide]</p>
<ul>
<li>D&eacute;compactez les sources.</li>
<li>&Eacute;ditez le fichier xc/config/cf/xf86site.def, et
d&eacute;commentez le #define relatif &agrave;
XF68FBDevServer.</li>
<li>D&eacute;commentez <em>toutes</em> les r&eacute;f&eacute;rences
&agrave; FB_VISUAL_STATIC_DIRECTCOLOR. Elles ne servent plus
&agrave; rien. Si vous partez des sources de XFree86 3.3.3.1,
sautez cette &eacute;tape (la r&eacute;f&eacute;rence a
&eacute;t&eacute; supprim&eacute;e).</li>
<li>&Eacute;ditez
xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_io.c et changez
K_RAW en K_MEDIUMRAW.</li>
</ul>
<p>Recompilez le pilote. Ne vous souciez pas des
r&eacute;f&eacute;rences ayant trait &agrave; m68k : les
architectures Intel sont support&eacute;es. Recompilez le tout.
&Ccedil;a va prendre un moment compte tenu de la taille des
sources.</p>
<p>Si vous manquez de temps, les sites suivants proposent des
versions pr&eacute;-compil&eacute;es. Notez que ces sites n'ont
rien d'officiel et que vous utiliserez leurs binaires &agrave; vos
risques et p&eacute;rils.</p>
<p>Pour une version libc5&nbsp;: <a href=
"http://user.cs.tu-berlin.de/~kraxel/linux/XF68_FBDev.gz">http://user.cs.tu-berlin.de/~kraxel/linux/XF68_FBDev.gz</a>&gt;.
Pour une version glibc2&nbsp;: <a href=
"http://user.cs.tu-berlin.de/~kraxel/linux/XF68_FBDev.libc6.gz">http://user.cs.tu-berlin.de/~kraxel/linux/XF68_FBDev.libc6.gz</a>&gt;,
<a href=
"http://pobox.com/~brion/linux/fbxserver.html">http://pobox.com/~brion/linux/fbxserver.html</a>&gt;.</p>
<p>On signale qu'X11 ne fonctionne pas avec certaines cartes
graphiques lorsque le gestionnaire vesafb est actif. Si vous
&ecirc;tes dans ce cas, essayez le nouveau pilote XF86_FBdev pour
X11.</p>
<p>Utilis&eacute; conjointement &agrave; vesafb, ce pilote peut
permettre l'emploi de X11 &agrave; des r&eacute;solutions autrement
inaccessibles au pilote X11 usuel (cartes MGA G200 par
exemple).</p>
<p>XF86_FBdev requiert la configuration suivante du
XF86Config&nbsp;:</p>
<pre>
Section "Screen"
        Driver          "FBDev"
        Device          "Primary Card"
        Monitor         "Primary Monitor"
        SubSection      "Display"
                Modes           "default"
        EndSubSection
EndSection
</pre>
<p>Vous devrez &eacute;galement positionner XkbDisable dans la
section Keyboard ou bien ex&eacute;cuter XF86_FBDev avec l'option
'-kb' afin de g&eacute;rer correctement votre clavier. Sans
XkbDisable, il vous faudra inclure les lignes suivantes dans votre
.Xmodmap pour pr&eacute;ciser les effets des touches. Le m&ecirc;me
r&eacute;sultat s'obtient en &eacute;ditant son xkb si on le
d&eacute;sire. <em>XFree86 3.3.3.1 ne pr&eacute;sente plus ce
d&eacute;faut. Il est donc vivement conseill&eacute; d'effectuer
une mise &agrave; jour vers cette version qui de plus corrige
d'autres bugs et inclut FBDev parmi les serveurs.</em></p>
<pre>
! Keycode settings required
keycode 104 = KP_Enter
keycode 105 = Control_R
keycode 106 = KP_Divide
keycode 108 = Alt_R Meta_R
keycode 110 = Home
keycode 111 = Up
keycode 112 = Prior
keycode 113 = Left
keycode 114 = Right
keycode 115 = End
keycode 116 = Down
keycode 117 = Next
keycode 118 = Insert
keycode 119 = Delete
</pre>
<p>Certaines adaptations seront s&ucirc;rement n&eacute;cessaires
(copier les codes du gestionnaire X11 utilis&eacute; et positionner
le nom du pilote sur FBDev) mais c'est en substance ce qu'il vous
faudra faire pour que le pilote vesafb de X11 fonctionne. Les
probl&egrave;mes li&eacute;s &agrave; X11 devraient &ecirc;tre
r&eacute;solus dans les prochaines versions en ce qui concerne les
cartes vid&eacute;o support&eacute;es.</p>
<h2><a name="s18">18. Conversion des Modelines en param&egrave;tres
d'affichage du pilote de m&eacute;moire vid&eacute;o</a></h2>
<p>Rien n'est plus simple si XFree86 (X11) est install&eacute; sur
votre machine et que vous pouvez vous en servir normalement.</p>
<p>Le pilote de m&eacute;moire vid&eacute;o requiert les champs
suivants&nbsp;:</p>
<ul>
<li>pixclock - horloge pixel en picosecondes</li>
<li>left_margin - dur&eacute;e entre la synchro et la zone
affich&eacute;e</li>
<li>right_margin - dur&eacute;e entre la zone affich&eacute;e et la
synchro</li>
<li>upper_margin - dur&eacute;e entre la synchro et la zone
affich&eacute;e</li>
<li>lower_margin - dur&eacute;e entre la zone affich&eacute;e et la
synchro</li>
<li>hsync_len - longueur de la synchro horizontale</li>
<li>vsync_len - longueur de la synchro verticale</li>
</ul>
<p>Une ligne "Modeline: XFree86 comprend les champs
suivants&nbsp;:</p>
<pre>
Modeline  "1280x1024" DCF HR SH1 SH2 HFL VR SV1 SV2 VFL
</pre>
<p>Quelques calculs sont n&eacute;cessaires pour la conversion. A
titre d'exemple voici la conversion de valeurs extraites de mon
XF86Config.</p>
<pre>
Modeline  "1280x1024" 110.00 1280 1328 1512 1712 1024 1025 1028 1054
</pre>
<p>Tout d'abord le param&egrave;tre pixclock. XFree86 l'exprime en
MHz et le pilote de m&eacute;moire vid&eacute;o en picosecondes
(pourquoi? myst&egrave;re). On divise donc un million par DCF
soit&nbsp;: 1,000,000 / 110.0 = 9090.9091</p>
<p>Pour les dur&eacute;es horizontales&nbsp;:</p>
<ul>
<li>left_margin = HFL - SH2</li>
<li>right_margin = SH1 - HR</li>
<li>hsync_len = SH2 - SH1</li>
</ul>
<p>Soit, dans notre exemple&nbsp;:</p>
<ul>
<li>left_margin = 1712 - 1512 = 200</li>
<li>right_margin = 1328 - 1280 = 48</li>
<li>hsync_len = 1512 - 1328 = 184</li>
</ul>
<p>Enfin les dur&eacute;es verticales&nbsp;:</p>
<ul>
<li>upper_margin = VFL - SV2</li>
<li>lower_margin = SV1 - VR</li>
<li>vsync_len = SV2 - SV1</li>
</ul>
<p>Soit&nbsp;:</p>
<ul>
<li>upper_margin = 1054 - 1028 = 26</li>
<li>lower_margin = 1025 - 1024 = 1</li>
<li>vsync_len = 1028 - 1025 = 3</li>
</ul>
<p>Les valeurs obtenues sont pass&eacute;es au gestionnaire de
m&eacute;moire vid&eacute;o. Dans le cas du pilote
matroxfb&nbsp;:</p>
<pre>
video=matrox:xres:&lt;&gt;,yres:&lt;&gt;,depth:&lt;&gt;,left:&lt;&gt;,right:&lt;&gt;,hslen:&lt;&gt;,upper:&lt;&gt;,lower:&lt;&gt;,vslen:&lt;&gt;
</pre>
<p>J'ai donc ins&eacute;r&eacute; la ligne suivante dans mon
/etc/lilo.conf&nbsp;:</p>
<pre>
append = "video=matrox:xres:1280,yres:1024,depth:32,left:200,right:48,hslen:184,upper:26,lower:0,vslen:3"
</pre>
<p>Notez que le pixclock n'est pas employ&eacute; ici. Il n'est
n&eacute;cessaire que si celui par d&eacute;faut ne vous convient
pas. Il se fixe de la m&ecirc;me fa&ccedil;on ainsi qu'il a
&eacute;t&eacute; auparavant expliqu&eacute; dans ce document.</p>
<h2><a name="s19">19. Modifier le logo Linux</a></h2>
<p>Le logo se modifie par l'interm&eacute;diaire du fichier
linux_logo.h dans le r&eacute;pertoire include/linux. Il s'agit
d'un fichier d'en-t&ecirc;te C peu &eacute;vident &agrave;
manipuler, cependant il existe un module Gimp sp&eacute;cifique:
<a href=
"http://registry.gimp.org/detailview.phtml?plugin=Linux+Logo">http://registry.gimp.org/detailview.phtml?plugin=Linux+Logo</a>&gt;.
Il suffit de disposer d'une image 80x80 comprenant au plus 224
couleurs. On peut laisser le module cr&eacute;er les trois
variantes (2,16,224) ou on les cr&eacute;e soi-m&ecirc;me et on les
travaille avec le module. Le module r&eacute;clame un
r&eacute;pertoire o&ugrave; stocker le fichier. On sp&eacute;cifie
($SRCDIR)/include/linux/linux_logo.h et une fois la retouche
d'image termin&eacute;e, il ne reste plus qu'&agrave; recompiler et
r&eacute;installer le noyau. Si le noyau g&egrave;re le tampon de
m&eacute;moire vid&eacute;o, le logo apparait au prochain
red&eacute;marrage.</p>
<h2><a name="s20">20. Davantage d'informations ?</a></h2>
<p>Que ceux qui sont int&eacute;ress&eacute;s aillent faire un tour
du cot&eacute; de <a href=
"http://www.linux-fbdev.org">http://www.linux-fbdev.org</a>&gt;
pour des informations relatives &agrave; la programmation du
pilote.</p>
<p>La traduction originale de ce document en fran&ccedil;ais se
trouve &agrave; l'adresse suivante&nbsp;: <a href=
"http://www.freenix.org/unix/linux/HOWTO/">http://www.freenix.org/unix/linux/HOWTO/</a>&gt;.</p>
</body>
</html>