Horstbox STD Consumer - serielle Konsole zeigt nur kryptische Zeichen

morpheus80

Neuer User
Mitglied seit
12 Mrz 2008
Beiträge
58
Punkte für Reaktionen
0
Punkte
0
Hallo.

Nachdem endlich die serielle Konsole der Horstbox Standard Consumer (DVA-G3342SD Rev. B1) läuft, hab ich schon das nächste Problem.

Nach dem Anschalten der Box läuft erst mal alles ganz normal. Die Zeichen werden normal dargestellt und auch die Eingabe wird von U-Boot einwandfrei interpretiert.

Nur sobald ich den Kernel boote (mit 'run flash_flash') gibt die Konsole nur noch kryptische Zeichen aus. Die Eingabe funktioniert immer noch prima, jedoch ist die Ausgabe total entstellt. :confused:

Es half auch nichts von Minicom auf Cutecom oder Komport auszuweichen, genau so wenig wie XTerm statt der KDE Konsole zu verwenden. Auch Minicom mit den Parametern '--ansi' oder '--term=linux' zu starten hat nicht geholfen. Auch die Soft/HW Flow-Control ändert an dem Kauderwelsch in der Ausgabe nichts. Baudrate ist 115200 8N1.

Also ich nehme mal nicht an, dass es an der Hardware liegt, dann sonst würde die Ausgabe von U-Boot ja nicht einwandfrei erscheinen. Kann es sein dass D-Link was an dem Kernel gedreht hat, z.B. ein taiwanesiches Charset verwendet hat?

Naja, zur Not bleibt ja nocht Telnet/SSH, an den Bootloader komm ich ja zum Glück ran. ;)

Bitte meldet Euch, falls Ihr ne Erklärung oder Anregung habt.

Anbei ein kleiner Auszug aus der Ausgabe von Minicom 2.3 auf ttyS0:

Edit foschi: bitte
Code:
-Tags verwenden![/COLOR]
[code]
Version 1.0.1
Read EEPROM  
Jump to Flash
Head : Amazon Version 1.0.0 D-Link
DRAM:  32 MB                      

 Head : relocate_code start
Head: relocate code finish.
   Image Name:   u-boot image
   Image Type:   MIPS Linux Firmware (lzma compressed)
   Data Size:    45142 Bytes = 44.1 kB                
   Load Address: 80100000                             
   Entry Point:  80100000                             
Disabling all the interrupts                          
   Uncompressing UBoot Image ...                      
   Uncompression completed successfully with destLen 137916.
 Head: Jumping to u-boot in the ram at 0x80100000           
Infineon Amazon                                             
U-Boot 2.0.28-M832 (Sep 30 2007 - 15:08:16)                 
In env_init : env_ptr = 0xb37e0000                          
For enviornment CRC32 is OK                                 
Board: AMAZON Yangtse Version, Chip V1.3, CPU Speed 235 MHz 
DRAM:  32 MB                                                

 relocate_code start
 relocate code finish

Entering flash_init()
flash_get_size       
 type is 00000001    
 type is 0000007e    
trying to read CFI space base=b3000000
device type: 1                        
Flash:  8 MB                          
env_relocate[224] malloced ENV at 81abf408

Initialize devices...
In:    serial        
Out:   serial        
Err:   serial        
Net:   AMAZON Switch 
DO GPIO22 SW_RESET OK
DO GPIO14 Vinetic DSP OK
Program AMAZON_Switch_MDIO_ACC register 0x80123602 
MDIX Setting is Completed                          
WANPLUS Setting is Completed                       

Type "run flash_nfs" to mount root filesystem over NFS

Press enter key to stop autoboot:  0 
D-LINK # help                        
base    - print or set address offset
bootm   - boot application image from memory
bootp   - boot image via network using BootP/TFTP protocol
bootu   - boot u-boot from memroy                         
cmp     - memory compare                                  
cp      - memory copy                                     
crc32   - checksum calculation                            
echo    - echo args to console                            
erase   - erase FLASH memory                              
flinfo  - print FLASH memory information                  
go      - start application at address 'addr'             
help    - print online help                               
loadb   - load binary file over serial line (kermit mode) 
loop    - infinite loop on address range                  
md      - memory display                                  
mm      - memory modify (auto-incrementing)               
mtest   - simple RAM test                                 
mw      - memory write (fill)                             
nm      - memory modify (constant address)                
printenv- print environment variables                     
protect - enable or disable FLASH write protection        
rarpboot- boot image via network using RARP/TFTP protocol 
reset   - Perform RESET of the CPU                        
run     - run commands in an environment variable         
saveenv - save environment variables to persistent storage
setenv  - set environment variables                       
tftpboot- boot image via network using TFTP protocol      
               and env variables ipaddr and serverip      
upgrade - data_block_name srcAddr srcLen 0/1version - print monitor version
afetest  - do AFE parallel interface test                                  
 fsload  - load binary file from a filesystem image                        
fsinfo  - print information about filesystems                              
ls      - list files in a directory (default /)                            
?       - alias for 'help'                                                 
D-LINK # printenv                                                          
bootcmd=run flash_flash                                                    
bootdelay=2                                                                
baudrate=115200                                                            
preboot=echo;echo Type "run flash_nfs" to mount root filesystem over NFS;echo
hw_rev=2                                                                     
mem=32M                                                                      
netdev=eth1                                                                  
baudrate=115200                                                              
rootpath=/opt/nfs                                                            
nfsargs=setenv bootargs root=/dev/nfs rw nfsroot=$(serverip):$(rootpath)     
ramargs=setenv bootargs root=/dev/ram rw                                     
addip=setenv bootargs $(bootargs) ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname):$(netdev):off
addmisc=setenv bootargs $(bootargs) console=ttyS0,$(baudrate) ethaddr=$(ethaddr) mem=$(mem) panic=1 flash_number=$(flash_number)
flash_nfs=run nfsargs addip addmisc;bootm $(kernel_addr)                                                                        
ramdisk_addr=B0100000                                                                                                           
flash_self=run ramargs addip addmisc;bootm $(kernel_addr) $(ramdisk_addr)                                                       
bootfile=/tftpboot/AMAZON/uImage                                                                                                
net_nfs=tftp 80500000 $(bootfile);run nfsargs addip addmisc;bootm                                                               
u-boot=/tftpboot/AMAZON/u-boot.bin                                                                                              
load=tftp 80500000 $(u-boot)                                                                                                    
update=protect off 1:0-2;era 1:0-2;cp.b 80500000 B0000000 $(filesize)                                                           
flashargs=setenv bootargs root=/dev/mtdblock2                                                                                   
update_uboot=tftpboot 80400000 $(prefix_path)u-boot.img;upgrade uboot 80400000 $(filesize) 0                                    
update_kernel=tftpboot 80400000 $(prefix_path)uImage;upgrade kernel 80400000 $(filesize) 1                                      
update_rootfs=tftpboot 80400000 $(prefix_path)rootfs.img;upgrade rootfs 80400000 $(filesize) 0                                  
update_firmware=tftpboot 80400000 $(prefix_path)firmware.img;upgrade firmware 80400000 $(filesize) 0                            
reset_uboot_config=erase 0xB37E0000 0xB37E0BFF 1;erase $(f_rootfs_end) $(f_kernel_addr) 1                                       
part0_begin=0xB3000000                         
part1_begin=0xB3020000
part2_begin=0xB3060000
total_part=3
flash_number=1
flash_end=0xB37EFFFF
data_block0=uboot
data_block1=firmware
data_block2=rootfs
data_block3=kernel
data_block4=sysconfig
data_block5=voip
data_block6=ubootconfig
data_block7=fwdiag
data_block8=calibration 
total_db=9
f_uboot_addr=0xB3000000
f_uboot_size=0x20000
f_firmware_addr=0xB3020000
f_firmware_size=0x40000
f_sysconfig_addr=0xB3790000
f_sysconfig_size=0x10000 
f_ubootconfig_addr=0xB37E0000
f_ubootconfig_size=0x0C00
f_fwdiag_addr=0xB37E0C00
f_fwdiag_size=0x0200
f_calibration_addr=0xB37E0E00 
f_calibration_size=0x0200
f_voip_addr=0xB37A0000
f_voip_size=0x40000
bootargs=root=/dev/mtdblock2 ip=192.168.99.11:192.168.99.99::::eth1:off console=ttyS0,115200 ethaddr=08:XX:XX:XX:XX:XX mem=32M panic=1 flash_number=1
prefix_path=/                   
filesize=4c35e6              
ipaddr=192.168.0.50            
serverip=192.168.0.15          
psk=734467337A                
ethaddr=00:XX:XX:XX:XX:XX
patch_level=5                 
f_kernel_size=0x00000000      
f_kernel_addr=0xb3790000      
kernel_addr=0xb3790000         
flash_flash=run flashargs addip addmisc; fsload 0x80800000 root/uImage ;bootm 0x80800000                                                          
f_rootfs_size=0x006c2e93        
f_rootfs_addr=0xb3060000       
f_rootfs_end=0xb3722e93         
stdin=serial                     
stdout=serial                   
stderr=serial                   

Environment size: 2664/3068 bytes
D-LINK # run flash_flash         
### FS (squashfs) loading 'root/uImage' to 0x80800000
### FS load complete: 945602 bytes loaded to 0x80800000
## Booting image at 80800000 ...                       
   Image Name:   MIPS Linux-2.4.31-AMAZON-3.2-M41      
   Created:      2009-02-20  14:42:24 UTC              
   Image Type:   MIPS Linux Kernel Image (lzma compressed)
   Data Size:    945538 Bytes = 923.4 kB                  
   Load Address: 80002000                                 
   Entry Point:  80250040                                 
   Verifying Checksum ... OK                              
   Uncompressing Kernel Image ... Uncompression time : 287192/117500000
Uncompression length is 2646016                                        
OK                                                                     

Starting kernel ...

Yangtse Version
�emsi�e�3�l�   
            �l�s�_s�a�t�0�b�0�0�0�
flash_si�e�8�8�6�8l               
�P� �e�i�i�n�is: �0�1�0�4�        
�L�n�x�v�rsio� �.�.�1�A�A�Oέ3.2�M�1�-�3� �s�@ln�1)�(�c� �e�s�o� �.3�4� �1� �r� �e� �0 �5�4�:�5�C�T�2�0�
�D�t�r�i�e� �h��i�al �A� �a�:� �0�1ff6�                                                                
�ser-�e�i�e� �h�s�c�l �AM �a�:�                                                                        
�O� �ode � �o�a�p�g�s� 8�92    �m�m�r�: 02�0�0�0�@�0�0�0�00 (us�b�e�                                   
z�n�(�)� �1�2�pa�e�.�                                                                                  
                     �o�e�1�:�0 page�.�                                                                
                                       �o�e���:�0�pages.�                                              
�m�p�_�p�_�r�q�ency�1�7�0�0�0�                           �e�n�l�c�mman� �i�e� �o�t�/�ev�m�d�l�c�2�i�=�92.��8�0�5�:�9�.�6�.0.15:�:�e�h�:�f� �onsole�t�y�0�1�5�0� eth�d�r�0�:�B�1�:�F:26�1� �e� 
�U�i�g�1�7�50� �H� �i�h�p�e�ision �i�e�.��0�1�e�d�(�1�50�0�                                                                                                                                   
�C�l�b�a�i�g�d��ay �o�p�.� �             �y�m��e�ore�c�l�b�a�e�d�lay                                                                                                                          
��emory:�2�6�0�/�2�68k �v�i�a�l� �2�3�k �ern�l�c�d�,�3�08k rese�v�d� �2�k�data, �2� �n�t� �k��ighme�)�
...
 
Das sieht mir eher nach einer Signal-Störung auf der TX-Leitung aus. Es kommen ja auch noch korrekte Zeichen herüber.

Zeigt dein Terminal-Programm Framing- oder Overflow-Fehler an?
Hast du dir das Signal 'mal mit einem Scope angesehen?
 
Danke RIVen.

Habe die Lötpunkte nochmals überprüft und das Problem ist leider das Gleiche geblieben.

Als Teminalprogramm kommt Minicom Ver.2.3 zum Einsatz. Konnte nirgends, weder in der Minicom-Logdatei noch im Programm selbst etwas von Overflow-Fehlern sehen.
Wo kann ich feststellen ob Framing- oder Overflow-Errors auftreten ?? :confused:

Liegt es evtl. doch an der Zeichenkonvertierung? Wenn ich Minicom mit dem Wrapper-Script Xminicom aufrufen, erscheint folgende Warnung:
Code:
Warning: Missing charsets in String to FontSet conversion

P.S. Ich weiss nicht genau was ein Scope ist, aber ich glaube, ich besitze leider keines.
 
Sorry. Gemeint war ein Oszilloskop (http://de.wikipedia.org/wiki/Oszilloskop).

Framing-, Parity- und Overflow-Fehler meldet der empfangende UART an das jeweilige Programm.
Ein Framing-Error wird gemeldet, wenn das Stop-Bit nicht wie erwartet logisch high ist (vgl. http://de.wikipedia.org/wiki/UART).

Fehlende, zusätzliche oder verfälschte Zeichen erhält man oft auch, wenn der empfangende UART das Start-Bit nicht korrekt erkennen kann, weil das RS232-Signal nicht gut genug ist (z.B. wegen zu niedriger Signalpegel, wegen nicht ausreichender Flankensteilheit oder wegen fehlender Ground-Verbindung).
 
Nochmal Danke an RIVen.

Du kennst Dich anscheinend um einiges besser aus in Sachen RS-232 als ich. :confused:
Ich verwende diese Art von Datenverbindung, weil es meist der einzige Weg ist, die volle Kontrolle über ein Embedded Gerät zu bekommen.

Allerdings traten dabei noch nie kryptische Zeichen auf. Was mich auch wundert ist, dass die Ausgabe von U-Boot einwanfrei dargestellt wird und erst nach dem Laden des Kernel unleserlich wird.

Oszilloskop habe ich leider auch keines. Wahrscheinlich würde mir dessen Ausgabe auch nicht viel sagen. ;)

Kann schon sein, dass die Kontakte nicht richtig verlötet sind. Hatte Probleme beim einlöten der Stiftleisten, habe es deshalb etwas anders gemacht. Siehe bitte den vorletzen Artikel dieses Themas
 
Was mich auch wundert ist, dass die Ausgabe von U-Boot einwanfrei dargestellt wird und erst nach dem Laden des Kernel unleserlich wird.
Ja, das ist wirklich auffällig, so daß ich auch nicht glaube, daß es ein elektrisches (Anschluß-)Problem ist.
Es könnte aber sein, daß durch das Laden des Kernels die Funktion des sendenden UARTs beeinträchtigt bzw. die Konfiguration manipuliert wird oder daß ein zusätzliches Signal auf den Ausgabe-PIN einstreut.
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,512
Beiträge
2,253,338
Mitglieder
374,331
Neuestes Mitglied
darkgeta1973
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.