Logiciels Libres et Systèmes Embarqués


5.8. Pilote du contrôleur série

Le pilote du contrôleur série UARTLite est disponible sur le site FTP de Mind. Il suffit donc d'appliquer le correctif :

bash# cd linuxppc-2.4.23
bash# patch -p1 < ../patch-uartlite
  patching file Documentation/Configure.help
  patching file drivers/char/Config.in
  patching file drivers/char/Makefile
  patching file drivers/char/tty_io.c
  patching file drivers/char/uartlite.c

Il ne reste qu'à faire une petite modification dans drivers/char/Config.in :

- if [ "$CONFIG_INSIGHT_V2PRO" = "y" ]; then
+ if [ "$CONFIG_VIRTEX" = "y" ]; then

Nous pouvons à présent démarrer ce noyau, il affichera alors sur la sortie série :

Linux version 2.4.23 (cedric@lightframe.smp.com) (gcc version 3.4.3) #18 Mon Ju5
On node 0 totalpages: 8192
zone(0): 8192 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: console=ttyS0 root=/dev/ram0
Calibrating delay loop... 99.73 BogoMIPS
Memory: 30800k available (1028k kernel code, 268k data, 48k init, 0k highmem)
Dentry cache hash table entries: 4096 (order: 3, 32768 bytes)
Inode cache hash table entries: 2048 (order: 2, 16384 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 1024 (order: 0, 4096 bytes)
Page-cache hash table entries: 8192 (order: 3, 32768 bytes)
POSIX conformance testing by UNIFIX}
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
devfs: v1.12c (20020818) Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x1
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
pty: 256 Unix98 ptys configured
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize}
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 2048 bind 4096)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
RAMDISK: Compressed image found at block 0
Freeing initrd memory: 231k freed
VFS: Mounted root (ext2 filesystem) readonly.
Mounted devfs on /dev
Freeing unused kernel memory: 48k init

Il faut faire attention car l'affichage pendant le démarrage du noyau se fait sans contrôleur d'intérruptions externes. Cela signifie que s'il y a un problème, soit dans l'architecture soit dans la configuration du noyau, les processus utilisateurs ne pourront pas afficher correctement, alors que le noyau (au démarrage) n'aura aucun problème.