Obligement - L'Amiga au maximum

Vendredi 06 juin 2025 - 13:13  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

Actualité (récente)
Actualité (archive)
Comparatifs
Dossiers
Entrevues
Matériel (tests)
Matériel (bidouilles)
Points de vue
En pratique
Programmation
Reportages
Quizz
Tests de jeux
Tests de logiciels
Tests de compilations
Trucs et astuces
Articles divers

Articles in English


Réseaux sociaux

Suivez-nous sur X




Liste des jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z,
ALL


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


En pratique : Sortie de débogage série sur les AmigaOne pour AmigaOS 4
(Article écrit par Wegster et extrait d'AmigaWorld.net - décembre 2004)


Comme j'en ai récemment eu besoin, mais que je n'ai vu aucun document ou fil de discussion définitif à ce sujet, j'ai pensé que ces informations pourraient être utiles à quelqu'un d'autre. Il s'agit de mettre en oeuvre un débogage sur le port série sur un AmigaOne.

Ce dont vous aurez besoin
  • Un AmigaOne (G3-SE, XE G4. microA1-C).
  • Un autre système informatique (PC sous Windows, Linux, BSD, Mac, autres).
  • Un câble null modem.
  • Un programme de terminal.
  • Un câble de sortie de port série vers DB9 si vous utilisez un microA1-C.
AmigaOS 4 est capable de fournir une sortie de débogage sur son port série, ce qui peut être utile pour retrouver ou enregistrer les rapports d'erreur et fournir des informations utiles pour le démarrage ou les problèmes matériels.

Le port série sur les AmigaOne est un port standard 16550A, et nécessite un câble null modem vers un autre ordinateur. Les ports série des AmigaOne sont de type DB9 mâle, ce qui signifie qu'il s'agit de connecteurs à 9 broches. Vous aurez besoin d'un connecteur DB9 femelle (9 "trous" au lieu de broches pour s'accoupler aux broches/mâles du port série des AmigaOne) d'un côté, et du connecteur nécessaire au système auquel vous allez vous connecter. De nos jours, il s'agit le plus souvent d'un autre port série DB9 mâle.

Note : Pour les propriétaires de microA1-C, un connecteur série existe, mais il n'est pas relié à un DB9. Voir cet article pour des informations sur la connexion d'une prise DB9 standard sur votre microA1-C.

Brochage null modem

Voici le brochage du null modem pour un câble DB9 vers DB9 :

DB9 vers DB9
1+6 à 4
2 vers 3
3 vers 2
4 à 1 et 6
5 à 5
7 à 8
8 à 7

Notez que ces câbles sont facilement disponibles dans la plupart des magasins d'informatique et peuvent être testés avec un testeur de continuité ou un ohmmètre si nécessaire sur un câble "inconnu". Vous pouvez également acheter un adaptateur null modem pour convertir un câble série standard en câble null modem.

Connectez une extrémité du câble au premier port série de votre AmigaOne. Pour l'AmigaOne G4 XE, le port correct est le port série le plus proche des ports PS/2 et USB, vers le haut de votre tour.

Note : Les AmigaOne G3-SE et G4 XE ont deux ports série, et le microA1-C a un seul port, mais le microA1-C doit être câblé et n'a pas de DB9 à bord, voir le lien présenté précédemment pour plus d'informations pour les propriétaires de microA1-C.

Connectez l'autre extrémité au port série de votre autre ordinateur.

Programme de terminal

Vous aurez besoin d'un programme de terminal sur votre autre ordinateur pour lire les données provenant de votre AmigaOne. Pour Windows, vous pouvez utiliser HyperTerminal. Pour Linux et d'autres systèmes Unix ou similaires, vous pouvez utiliser Minicom, cu, ou d'autres.

Note : Si vous utilisez Minicom, et éventuellement d'autres programmes, vous devrez effacer la chaîne d'initialisation du modem et les chaînes de réinitialisation du modem, car votre AmigaOne n'est pas un modem.

Configurez votre programme de terminal pour qu'il se connecte au port série correct pour votre machine (généralement COM1 pour Windows, ou ttyS0 pour Linux), et définissez vos paramètres de communication à 115 200 bps, 8-N-1.

Minicom peut être lancé par :

minicom ttyS0

...où "ttyS0" est remplacé par le port correct auquel vous êtes connecté.

Et cu :

cu -d /dev/ttyS0

Note : cu est un peu cryptique, consultez donc la page de manuel avant de l'utiliser, notamment pour connaître les séquences d'échappement pour sortir du programme !

Vous devez vous assurer que votre AmigaOne est réglé sur le bon débit en bauds pour votre programme de terminal, donc redémarrez ou allumez votre AmigaOne, appuyez sur "Entrée" et ensuite "Échap", sélectionnez les préférences, à nouveau "Échap", puis sélectionnez "Abort Boot" (abandonner démarrage) et entrez dans "U-Boot Shell" pour obtenir une invite de commande U-Boot. A l'invite, tapez :

printenv baudrate

...et vérifiez qu'il est réglé sur "115200". Si ce n'est pas le cas, tapez :

setenv baudrate 115200

Pendant que vous êtes dans U-Boot, vous voudrez également permettre aux messages d'erreur d'être dirigés vers le port série. Faites-le en tapant :

setenv stdout serial

Note : Vous pouvez toujours revenir à la valeur par défaut en tapant :

setenv stdout vga

Cela prendra effet même si vous ne voyez pas votre saisie sur la ligne de commande U-Boot une fois que vous avez activé la redirection de stdout vers le port série. Cela signifie que lorsque vous réinitialiserez plus tard votre sortie vers votre carte vidéo, vous ne serez peut-être pas capable de lire ce que vous tapez, mais cela prendra quand même effet !

Enfin, tapez :

saveenv
reset

...afin de sauvegarder vos variables d'environnement U-Boot dans la NVRAM (mémoire vive non volatile) et redémarrez votre système.

Vous pouvez vérifier et dépanner votre connexion série avant de retourner dans AmigaOS. Après votre redémarrage, revenez à l'invite U-Boot et tapez :

printenv

...à l'invite U-Boot une fois que vous avez redirigé vers la connexion série, et vous devriez voir un ensemble de variables d'environnement/paramètres U-Boot affichés sur la session terminal de votre autre ordinateur.

Si vous ne voyez aucune sortie sur le port série, essayez ce qui suit :
  1. Vérifiez que vous êtes connecté au bon port sur votre AmigaOne.
  2. Vérifiez le port auquel vous êtes connecté sur votre PC/autre système. Modifiez vos paramètres de communication dans votre programme de terminal pour utiliser COM2, ttyS1, etc. comme il convient, redémarrez l'AmigaOne et vérifiez à nouveau la sortie.
  3. Vérifiez vos paramètres de communication (débit en bauds et parité) sur les deux AmigaOne via U-Boot :
    setenv stdout serial
    setenv baudrate 115200
    
    ...et dans votre programme de terminal de communication.
  4. Vérifiez que vous avez un câble null modem.
Note : Si vous obtenez une sortie "brouillée" sur votre programme de terminal, il s'agit probablement d'une erreur de débit ou de parité, mais vous êtes sur le bon port série.

Une fois que vous obtenez une sortie sur votre programme de terminal, lorsque votre AmigaOne est redémarré, vous devriez voir quelque chose de similaire à ce qui suit.

U-Boot 1.1.1 (Dec 18 2004 - 11:59:30), Build: 12/18/04 
CPU: MPC7455 v2.1 @ 933.333 MHz
Board: AmigaOne
DRAM: 512 MB
FLASH: 0 kB
VGA: 0 .. 
In: serial
Out: serial
Err: serial
SCSI: Error SCSI Controller (1000,000F) not found
Net: 3Com 3c920c#0
IDE: Bus 0: OK Bus 1: OK 
Device 0: Model: WDC WD800BB-00DKA0 Firm: 77.07W77 Ser#: WD-WMAHL1976172
Type: Hard Disk
Supports 48-bit addressing
Capacity: 76319.0 MB = 74.5 GB (156301488 x 512)
Device 1: not available
Device 2: Vendor: TSSTcor Prod.: CD/DVDW TS-H552 Rev: TS05
Type: Removable CD ROM
Capacity: not available
Device 3: Vendor: SAMSUNG Prod.: CD-R/RW SW-252B Rev: R701
Type: Removable CD ROM
Capacity: 231.2 MB = 0.2 GB (118381 x 2048)
AT Keyboard initialized!
USB: scanning bus for devices... 3 USB Devices found
No Catweasel controller (0xe1594, 0x0001) attached
Press any key to interrupt autoboot: 0 
First-level bootloader: entered main
First-level bootloader: got 1 valid boot sources
Entered find_sec_bl_start
Reading sector 0
Reading sector 1
Found an HD
FLB: found something
FLB: SLB of length 28684; loading
FLB: SLB loaded; now launching it
Loading .text @ 0x014000a0 (23832 bytes)
Loading .rodata @ 0x01405db8 (2621 bytes)
Loading .data @ 0x014167f8 (208 bytes)
Loading .got2 @ 0x014168c8 (712 bytes)
Loading .sdata @ 0x01416b90 (16 bytes)
Clearing .sbss @ 0x01416ba0 (188 bytes)
Clearing .bss @ 0x01416c5c (3772 bytes)
A1 Second-level booter V2.
Idea, design and main code: Andrea Vallinotto.
Testing and fixes: Stefan Burstroem
SFS and ISO9660 reading routines: Joerg Strohmayer.
Linux booting extensions: Andrea and the GRUB team.
A1 Second-level booter V2.
Idea, design and main code: Andrea Vallinotto.
Testing and fixes: Stefan Burstroem
SFS and ISO9660 reading routines: Joerg Strohmayer.
Linux booting extensions: Andrea and the GRUB team.

Booting configuration Default
[libInit] returning 0x018B13B0
[SetupInterrupts] which = 1, intNum = 28 , IRQ = 12
[SetupInterrupts] which = 0, intNum = 17 , IRQ = 1

a1ide.device 51.43 (07.06.2005)
[dev_init] a1ide_maxbus : '2', adjusted max units to 4
[dev_init] Config forced in $a1ide_conf : 1220
[dev_init] Xfer modes forced in $a1ide_xfer : F000
[dev_init] Running on AmigaOne
[ide_list] IDE port 0 :
[ide_list] Master : 'ATA'
[ide_list] Slave : 'ATAPI'
[ide_list] IDE port 1 :
[ide_list] Master : 'ATAPI'
[ide_list] Slave : 'no device'
[init_unit] Trying to configure unit 0
[ata_read_drive_properties] Unit 0 is LBA48-capable but has LBA28 size
[ata_read_drive_properties] MultiCount 16
[ata_read_drive_properties] Adjusting unit 0 to xfer mode 69
[init_unit] Unit successfully configured, flags $0185
[init_unit] Trying to configure unit 1
[init_unit] Trying to configure unit 2
[ata_read_drive_properties] Adjusting unit 2 to xfer mode 12
[init_unit] Unit successfully configured, flags $011D
[init_unit] Trying to configure unit 3

sii0680ide.device 51.43 (07.06.2005)
[dev_init] Running on AmigaOne
[dev_init] PCI chip not found
[dev_init] Bailing out

sii3112ide.device 51.43 (07.06.2005)
[dev_init] Running on AmigaOne
[dev_init] PCI chip not found
[dev_init] Bailing out

sii3114ide.device 51.43 (07.06.2005)
[dev_init] Running on AmigaOne
[dev_init] PCI chip not found
[dev_init] Bailing out

sii3512ide.device 51.43 (07.06.2005)
[dev_init] Running on AmigaOne
[dev_init] PCI chip not found
[dev_init] Bailing out

Si vous rencontrez des problèmes avec votre carte vidéo, vous verrez peut-être quelque chose comme "card id not recognized" (identifiant de la carte non reconnu) ou des messages sur des problèmes de Radeon. Dans ce cas, il y a de fortes chances que vous ayez une carte vidéo bizarre et que vous deviez la remplacer.

Niveaux de débogage

Ok, donc maintenant vous obtenez une sortie série, mais le niveau de débogage par défaut est toujours défini, ce qui ne vous donnera pas beaucoup de résultats de débogage. Cependant, il transmet les rapports de Grim Reaper par série, donc si votre principale préoccupation est d'obtenir une copie d'un rapport Grim Reaper, c'est tout ce que vous devez faire. Notez que vous pouvez activer la journalisation vers le fichier si vous utilisez Minicom, et sur certains autres programmes de terminal.

Les niveaux de débogage pour AmigaOS 4 peuvent également être activés, ce qui permet différents niveaux de débogage. Je ne suis pas sûr du niveau de débogage le plus élevé, mais gardez à l'esprit que chaque augmentation du niveau de débogage ralentira probablement le fonctionnement de votre système, car du code supplémentaire sera exécuté pour activer la sortie de débogage.

En général, le niveau 1 vous en donne peu, le niveau 4 beaucoup, et le niveau 10 une quantité ridiculement grande de sortie de débogage. Il commencera à enregistrer l'entrée/sortie des fonctions au niveau 16 environ, mais c'est vraiment un reliquat des tout premiers jours, puisque ce sera essentiellement inutilisable en raison de la quantité de sortie qu'il produira.

Note : Merci à Hans-Joerg Frieden pour avoir fourni les informations ci-dessus.

Il y a deux façons d'activer un niveau de débogage (le niveau par défaut est 0) :
  1. Via les options de démarrage U-Boot.
  2. Via la commande kdebug de la ligne de commande AmigaOS.
Note : Nécessité d'indiquer ici comment ajouter le débogage du démarrage AmigaOS s'il n'est pas déjà activé.

Important : En augmentant votre niveau de débogage par défaut, votre système prendra plus de temps pour démarrer. Ceci est normal !

Pour l'activer via U-Boot, redémarrez ou allumez votre AmigaOne, et appuyez sur n'importe quelle touche sauf "Entrée" lorsque le chargement du Kickstart commence, puis sélectionnez "Boot Arguments for AmigaOS". Les arguments de démarrage par défaut seront les suivants : "debuglevel=0". Modifiez la valeur en fonction du niveau de débogage que vous souhaitez définir, puis démarrez le système. Notez que si vous changez cette valeur, le système ne démarrera qu'une seule fois à ce niveau de débogage, à moins que vous ne sélectionniez "save settings" (sauver les réglages) au lieu de "of use settings for this session" (utilisation des réglages pour cette session).

Notez que vous devez également sélectionner "boot debug kernel" (démarrer le noyau de débogage) dans votre menu de sélection de démarrage pour obtenir la sortie de débogage.

Cependant, ma méthode préférée pour définir le niveau de débogage est l'outil en ligne de commande, kdebug. Pour l'utiliser, démarrez le noyau de débogage, puis ouvrez un Shell, et tapez :

kdebug "debuglevel N"

...où "N" est le niveau de débogage que vous voulez activer. Notez qu'il n'y a pas de signe "=" dans la commande !

Vous pouvez vérifier ce qui précède en démarrant le noyau de débogage, en vérifiant que vous voyez les messages de démarrage normaux, puis tapez :

[i]kdebug "debuglevel 6"

Ouvrez une application, et vérifiez votre sortie série - elle devrait écrire une confirmation du réglage du niveau de débogage :

[cmd_debuglevel] Set debug level to 10

...suivi par une sortie de débogage comme :

[_impl_AllocSysObject] Creating system object 9
[_impl_AllocSysObject] Not tracked
[_impl_AllocSysObject] Calling constructor 0x01454DB0
[_impl_AllocSysObject] Result 0x13B401F8
[_util_CloneTagItems] Allocated 5 tag items at 0x13B401F8
[_impl_AllocSysObject] Creating system object 9
[_impl_AllocSysObject] Not tracked
[_impl_AllocSysObject] Calling constructor 0x01454DB0
[_impl_AllocSysObject] Result 0x13B401F8
[_util_CloneTagItems] Allocated 5 tag items at 0x13B401F8
[_impl_AllocSysObject] Creating system object 9
[_impl_AllocSysObject] Not tracked
[_impl_AllocSysObject] Calling constructor 0x01454DB0
[_impl_AllocSysObject] Result 0x13B401F8
[_util_CloneTagItems] Allocated 5 tag items at 0x13B401F8

Autres options de débogage

Certaines applications ou composants individuels, comme AHI, permettent de définir leur sortie de débogage séparément. Dans le cas d'AHI, cela se fait via Workbench/Prefs/AHI/Advanced Tab/DebugLevel.

Ces applications écriront généralement en série si elles sont activées, que vous ayez démarré à partir du noyau de débogage AmigaOS 4 ou non, car elles sont séparées de l'espace du noyau. En cas de doute, référez-vous à la documentation de chaque application ou composant individuel si possible.

Cela résume à peu près la sortie série sur votre AmigaOne. J'espère que cet article a été plus utile que déroutant. Si vous trouvez des problèmes ou avez des questions sur cet article, veuillez m'envoyer un courriel à "wegster@mindcore.net".

Références et liens utiles


[Retour en haut] / [Retour aux articles]