RS232

Aus Vu+ WIKI
Wechseln zu: Navigation, Suche


RS-232 ist ein Standard für eine bei Computern früher weit verbreitete serielle Schnittstelle, die in den frühen 1960ern von einem US-amerikanischen Standardisierungskomitee eingeführt wurde. In heutiger Zeit findet Sie sich noch in Serverhardware, professionellem Netzwerk-Equipment, Industrie-Systemen und Embedded-Devices.

Ihr Vorteil im Vergleich zu anderen administrativen Diensten (z.B. höhere Netzwerk-Protokolle, Shell-Zugang, Desktop-Systeme oder Web-Interfaces) ist, dass die Implementierung einen sehr viel weniger komplexen Software-Stack voraussetzt und auf dieser Basis systemnahe Dienste angeboten werden können.

In der Folge kann ein Administrator beispielsweise in sehr frühen Bootphasen auf das System zugreifen, lange bevor die höheren Software-Schichten initialisiert werden. Auf diesem Wege können oft auch dann noch Systeme administriert werden, die auf anderem Wege nicht mehr oder noch nicht zugreifbar sind (z.B. bei Boot-Problemen).

Anwendung

Für eine serielle Verbindung müssen beide Seiten (ein PC/Notebook als Client einerseits und die vu+-Box als Server andererseits) identische Parameter verwenden. Diese Verbindungsparameter werden von der vu+-Box gesetzt:

  • Baudrate: 115200
  • Anzahl Bits: 8

Heutzutage (anno 2015) gibt es kaum noch Computer mit echten seriellen Schnittstellen. Stattdessen können USB-Adapter verwendet werden, welche schon für unter 20€ verkauft werden.

Zugriff von einem Linux-Client

Unter Linux können mehrere Programme für die Verbindung verwendet werden:

  • screen
  • minicom
  • ...

Im Folgenden ein kurzes Beispiel, was eine Vu+ Duo² beim Starten auf die serielle Konsole ausgibt. Diese Informationen wurden der Übersichlichkeit wegen abgeschnitten und es werden auch im laufenden Betrieb noch weiterhin Informationen ausgegeben, welche zur Systemanalyse herangezogen werden können.

'ttyUSB0' ist der Name des verwendeten USB-Adapters auf dem Client.

Beispiel:

# minicom -D /dev/ttyUSB0 -b 115200 -8

Welcome to minicom 2.7

OPTIONS: I18n 
Port /dev/ttyUSB0, 18:50:43

Press CTRL-A Z for help on special keys


BCM74250012

M0
M1
01CZL2=1
LLMB=0000C000
BP=02000000
L2Cfg=1E7AD627
L2Buf=77707711
BrCfg=F01C200E
BrMod=02800801
BrZp0=44000000
BrZp1=00002000
#@

CFE ver 2.333.20130710, Endian Mode: Little
Build Date: Mon Jul 15 19:29:18     2013 Vuplus Team
Copyright (C) Broadcom Corporation.

CPU speed:            1305MHz
DDR Frequency:        800 MHz
DDR Mode:             DDR3
Total memory(MEMC 0): 1024MB
MEMC 0 DDR Width:     32
Total memory(MEMC 1): 1024MB
MEMC 1 DDR Width:     32
Boot Device:          NAND
Total flash:          512MB
RTS VERSION:          20120919184252_7425_single_encode
ETH0_PHY:             RGMII
ETH0_MDIO_MODE:       1
ETH0_SPEED:           1000
ETH0_PHYADDR:         probe

SCB CLOCK = 277MHz
Initializing USB.
USB: Locating Class 09 Vendor 0000 Product 0000: USB Root Hub
USB: Locating Class 09 Vendor 0000 Product 0000: USB Root Hub
USB: Locating Class 09 Vendor 0000 Product 0000: USB Root Hub
USB: Locating Class 09 Vendor 0000 Product 0000: USB Root Hub

CFE initialized.
USB: New device connected to bus 3 hub 1 port 1
USB: Resetting device on bus 3 hub 1 port 1
USB: Locating Class FF Vendor 148F Product 5372: Driver not found.
waiting for usb...done
checking usb
No Priority Usb
checking front key
Checking usbdisk0:/vuplus/duo2/ignore.update......NO
Checking usbdisk0:/vuplus/duo2/force.update......NO
Checking usbdisk0:/vuplus/duo2/cfe_cfe_auto.bin......NO
Checking usbdisk0:/vuplus/duo2/root_cfe_auto.bin......NO
Checking usbdisk0:/vuplus/duo2/splash_cfe_auto.bin......NO
Checking usbdisk0:/vuplus/duo2/kernel_cfe_auto.bin......NO
Starting splash screen.
Found splash image - Width = 720 Height = 480
Non Interlaced Replace list 043f8100 0c800000Interlaced Replace list 043f86a0 0c8005a0
Loader:elf Filesys:raw Dev:flash0.kernel File: Options:ubiroot rootflags=sync bmem=192M@64M bmem=458M@512M memc1=590M
Loading: 0x80001000/7994368 0x807a0c00/210848 Entry address is 0x805e2650
Starting program at 0x805e2650

Linux version 3.13.5 (plnick@build-plnick) (gcc version 4.6.4 20120303 (prerelease) (GCC) ) #1 SMP Wed Nov 26 18:52:4
Fetching vars from bootloader... found 17 vars.
Options: moca=0 sata=1 pcie=0 usb=1
Using 1024 MB + 1024 MB RAM (from CFE)
bootconsole [early0] enabled
CPU0 revision is: 00025a11 (Brcm4380 Broadcom BMIPS5000)
FPU revision is: 00130001
Determined physical RAM map:
 memory: 10000000 @ 00000000 (usable)
 memory: 30000000 @ 20000000 (usable)
 memory: 31400000 @ 90000000 (usable)
bmem: adding 192 MB RESERVED region at 64 MB (0x0c000000@0x04000000)
bmem: adding 220 MB RESERVED region at 512 MB (0x0dc00000@0x20000000)
Zone ranges:
  Normal   [mem 0x00000000-0x4fffffff]
  HighMem  [mem 0x50000000-0xc13fffff]
Movable zone start for each node
Early memory node ranges
  node   0: [mem 0x00000000-0x0fffffff]
  node   0: [mem 0x20000000-0x4fffffff]
  node   0: [mem 0x90000000-0xc13fffff]
Primary instruction cache 32kB, physically tagged, 4-way, linesize 64 bytes.
Primary data cache 32kB, 4-way, linesize 32 bytes.
MIPS secondary cache 256kB, 8-way, linesize 128 bytes.
PERCPU: Embedded 7 pages/cpu @82012000 s7168 r8192 d13312 u32768
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 461824
Kernel command line: libata.force=1:1.5Gbps bmem=192M@64M bmem=220M@512M memc1=788M ubi.mtd=0 root=ubi0:rootfs rootfc
PID hash table entries: 4096 (order: 2, 16384 bytes)
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 1408272K/1855488K available (6068K kernel code, 319K rwdata, 1208K rodata, 260K init, 144K bss, 447216K rese)
Hierarchical RCU implementation.
NR_IRQS:160
Measuring MIPS counter frequency...
Detected MIPS clock frequency: 1305 MHz (163.126 MHz counter)
Calibrating delay loop... 864.25 BogoMIPS (lpj=432128)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
SMP: Booting CPU1...
CPU1 revision is: 00025a11 (Brcm4380 Broadcom BMIPS5000)
FPU revision is: 00130001
Primary instruction cache 32kB, physically tagged, 4-way, linesize 64 bytes.
Primary data cache 32kB, 4-way, linesize 32 bytes.
MIPS secondary cache 256kB, 8-way, linesize 128 bytes.
SMP: CPU1 is running
Brought up 2 CPUs
devtmpfs: initialized
bmem: adding extra 236 MB RESERVED region at 3092 MB (0x0ec00000@0xc1400000)
NET: Registered protocol family 16
USB0: power enable is active high; overcurrent is active low
USB1: power enable is active high; overcurrent is active low
bio: create slab <bio-0> at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Linux video capture interface: v2.00
Advanced Linux Sound Architecture Driver Initialized.
cfg80211: Calling CRDA to update world regulatory domain
Switched to clocksource wktmr
FS-Cache: Loaded
NET: Registered protocol family 2
TCP established hash table entries: 8192 (order: 3, 32768 bytes)
TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
TCP: Hash tables configured (established 8192 bind 8192)
TCP: reno registered
UDP hash table entries: 512 (order: 2, 16384 bytes)
UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
bounce pool size: 64 pages
NFS: Registering the id_resolver key type
Key type id_resolver registered
Key type id_legacy registered
nfs4filelayout_init: NFSv4 File Layout Driver Registering...
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
msgmni has been set to 1174
io scheduler noop registered
io scheduler cfq registered (default)
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
console [ttyS0] enabledMMIO 0x10406b00 (irq = 62, base_baud = 5062500) is a 16550A
console [ttyS0] enabled
bootconsole [early0] disabled
bootconsole [early0] disabled
serial8250.0: ttyS1 at MMIO 0x10406b40 (irq = 63, base_baud = 5062500) is a 16550A
serial8250.0: ttyS2 at MMIO 0x10406b80 (irq = 64, base_baud = 5062500) is a 16550A
loop: module loaded
[...]

Links