Linino One der erste Kontakt

Um mit dem Linino One zu kommunizieren gibt es verschiedene Möglichkeiten. Im Folgenden werden einige kurz vorgestellt.

Zugriff per WLAN

Nachdem der Bootvorgang des Linino One abgeschlossen ist, stellt er ein eigenes WLAN mit dem Namen Linino-xxxxxxxx zur Verfügung. Dies unterscheidet sich zum Arduino Yún, denn dort trägt es einen Namen in der Form Arduino Yun-xxxxxxxx. Bei beiden Beispielen steht das xxxxxxxx jeweils für eine eindeutige ID des Gerätes. Nach dem Verbinden mit dem WLAN erhält der Computer, das Tablet etc. eine IP Adresse aus dem 192.168.240.0/24 Netz. Der Linino One besitzt die IP-Adresse 192.168.240.1 und sollte über diese erreichbar sein.

Im folgenden Beispiel wird mit Hilfe des Tools

ping
geprüft, ob der Linino One erreichbar ist.

$ ping 192.168.240.1
PING 192.168.240.1 (192.168.240.1) 56(84) bytes of data.
64 bytes from 192.168.240.1: icmp_seq=1 ttl=64 time=0.961 ms
64 bytes from 192.168.240.1: icmp_seq=2 ttl=64 time=0.967 ms
64 bytes from 192.168.240.1: icmp_seq=3 ttl=64 time=0.979 ms

Für die Konfiguration ist die Verwendung eines Webbrowser möglich. Hierfür muss die URL http://linino/ oder http://linino.local/ oder http://192.168.240.1/ aufgerufen werden.

Die Anmeldung an der Webseite kann mit Hilfe des Passworts doghunter erfolgen. Anschließend können über die Konfigurationsoberfläche weitere Einstellungen zu LAN, WLAN etc. vorgenommen werden. Über die erweiterten Einstellungen stehen zusätzliche Einstellungsmöglichkeiten über die von OpenWRT bekannte Konfigurationsoberfläche zur Verfügung.

Eine Anmeldung per SSH ist selbstverständlich auch möglich. Unter Linux ist ein SSH-Client meist schon installiert und unter Windows kann zum Beispiel Putty verwendet werden. Für die Anmeldung muss der Hostname linino (alternativ die IP-Adresse 192.168.240.1), der Benutzer root und das Passwort doghunter verwendet werden.

$ ssh root@linino

Auf den folgenden Bildern ist ein Beispiel der Web-Oberfläche zusehen.

Erkannte Hardware

Nach dem Anschließen des Linino One per USB meldet er sich als Modem und als Maus. Über die Modemschnittstelle ist wie bei den meisten Arduinos eine serielle Kommunikation und somit auch die Programmierung möglich. Weiterhin kann mit dem Linino One eine Maus emuliert und so der Computer gesteuert werden. Die folgenden beiden Beispiel zeigen, wie sich der Linino One meldet, wenn er an ein Linux-System angeschlossen wird.

Mit der Ausgelieferten Firmware(Stand: Frühjahr 2014)

$ dmesg | tail
...
[  382.283351] usb 2-2: new full-speed USB device number 3 using uhci_hcd
[  382.455840] cdc_acm 2-2:1.0: This device cannot do calls on its own. It is not a modem.
[  382.455884] cdc_acm 2-2:1.0: ttyACM0: USB ACM device
[  382.469940] input: Doghunter Linino One as /devices/pci0000:00/0000:00:1d.1/usb2/2-2/2-2:1.2/0003:2A03:8001.0002/input/input17
[  382.470622] hid-generic 0003:2A03:8001.0002: input,hidraw0: USB HID v1.01 Mouse [Doghunter Linino One] on usb-0000:00:1d.1-2/input2

Nach dem Update auf die neuste Firmware(Stand: Sommer 2014)

$ dmesg | tail
...
[ 4710.769660] usb 4-1: new full-speed USB device number 4 using ohci-pci
[ 4710.936003] cdc_acm 4-1:1.0: This device cannot do calls on its own. It is not a modem.
[ 4710.936067] cdc_acm 4-1:1.0: ttyACM0: USB ACM device
[ 4710.946904] input: Arduino LLC Arduino Yun as /devices/pci0000:00/0000:00:13.2/usb4/4-1/4-1:1.2/0003:2341:8041.0005/input/input17
[ 4710.947398] hid-generic 0003:2341:8041.0005: input,hidraw3: USB HID v1.01 Mouse [Arduino LLC Arduino Yun] on usb-0000:00:13.2-1/input2

Zugriff per serieller Schnittstelle

Es gibt verschiedene Programme für den Zugriff auf eine serielle Schnittstelle. Unter Linux ist das Programm minicom sehr verbreitet. Wohingegen bei Windows das Programm Putty zum Einsatz kommen kann. Für die Kommunikation sollte das entsprechende Gerät ausgewählt werden. Unter Linux ist dies meist /dev/ttyACM0 und unter Windows zum Beispiel Com 1. Weiterhin sollte eine Baudrate von 115200 eingestellt werden. Im folgenden Beispiel wird gezeigt, wie der Zugriff unter Linux mit dem Programm minicom erfolgt.

$ minicom -D /dev/ttyACM0 -b 115200

Folgende Meldungen werden während des Bootvorgangs über die serielle Schnittstelle ausgegeben. So kann der Vorgang bis ins kleinste Detail untersucht werden.

DRAM:  64 MB
Top of RAM usable for U-Boot at: 84000000
Reserving 142k for U-Boot at: 83fdc000
Reserving 192k for malloc() at: 83fac000
Reserving 44 Bytes for Board Info at: 83fabfd4
Reserving 36 Bytes for Global Data at: 83fabfb0
Reserving 128k for boot params() at: 83f8bfb0
Stack Pointer at: 83f8bf98
Now running in RAM - U-Boot at: 83fdc000
Flash Manuf Id 0xef, DeviceId0 0x40, DeviceId1 0x18
flash size 16777216, sector count = 256
Flash: 16 MB
Using default environment

In:    serial
Out:   serial
Err:   serial
Net:   ag7240_enet_initialize...
No valid address in Flash. Using fixed address
No valid address in Flash. Using fixed address
: cfg1 0x5 cfg2 0x7114
eth0: 11:22:33:44:55:66
eth0 up
: cfg1 0xf cfg2 0x7214
eth1: 22:33:44:55:66:77
athrs26_reg_init_lan
ATHRS26: resetting s26
ATHRS26: s26 reset done
eth1 up
eth0, eth1
Hit any key to stop autoboot:  0
## Booting image at 9fea0000 ...
   Image Name:   MIPS OpenWrt Linux-3.3.8
   Created:      2014-03-27  11:05:42 UTC
   Image Type:   MIPS Linux Kernel Image (lzma compressed)
   Data Size:    1065477 Bytes =  1 MB
   Load Address: 80060000
   Entry Point:  80060000
   Verifying Checksum at 0x9fea0040 ...OK
   Uncompressing Kernel Image ... OK
No initrd
## Transferring control to Linux (at address 80060000) ...
## Giving linux memsize in bytes, 67108864

Starting kernel ...

[    0.000000] Linux version 3.3.8 (build@build-base) (gcc version 4.6.3 20120201 (prerelease) (Linaro GCC 4.6-2012.02) ) #1 Thu Mar 27 12:04:12 CET 2014
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU revision is: 00019374 (MIPS 24Kc)
[    0.000000] SoC: Atheros AR9330 rev 1
[    0.000000] Clocks: CPU:400.000MHz, DDR:400.000MHz, AHB:200.000MHz, Ref:25.000MHz
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 04000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Zone PFN ranges:
[    0.000000]   Normal   0x00000000 -> 0x00004000
[    0.000000] Movable zone start PFN for each node
[    0.000000] Early memory PFN ranges
[    0.000000]     0: 0x00000000 -> 0x00004000
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
[    0.000000] Kernel command line:  board=linino-one console=ttyATH0,115200 mtdparts=spi0.0:256k(u-boot)ro,64k(u-boot-env)ro,14656k(rootfs),1280k(kernel),64k(nvram),64k(art),15936k@0x50000(firmware) rootfsd
[    0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[    0.000000] Writing ErrCtl register=00000000
[    0.000000] Readback ErrCtl register=00000000
[    0.000000] Memory: 61240k/65536k available (2278k kernel code, 4296k reserved, 593k data, 216k init, 0k highmem)
[    0.000000] SLUB: Genslabs=9, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS:51
[    0.000000] Calibrating delay loop... 265.42 BogoMIPS (lpj=1327104)
[    0.080000] pid_max: default: 32768 minimum: 301
[    0.080000] Mount-cache hash table entries: 512
[    0.090000] NET: Registered protocol family 16
[    0.090000] gpiochip_add: registered GPIOs 0 to 29 on device: ath79
[    0.100000] MIPS: machine is Linino One
[    0.540000] mach-linino: setting GPIO
[    0.540000] Setting GPIO OE 21
[    0.550000] Setting GPIO OE2 22
[    0.550000] Setting GPIO UART-ENA 23
[    0.550000] mach-linino: enabling GPIO SPI Controller
[    0.560000] bio: create slab <bio-0> at 0
[    0.570000] Switching to clocksource MIPS
[    0.580000] NET: Registered protocol family 2
[    0.580000] IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.580000] TCP established hash table entries: 2048 (order: 2, 16384 bytes)
[    0.580000] TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
[    0.590000] TCP: Hash tables configured (established 2048 bind 2048)
[    0.600000] TCP reno registered
[    0.600000] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.610000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.610000] NET: Registered protocol family 1
[    0.630000] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.640000] JFFS2 version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.650000] msgmni has been set to 119
[    0.650000] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
[    0.660000] io scheduler noop registered
[    0.660000] io scheduler deadline registered (default)
[    0.670000] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.680000] ar933x-uart: ttyATH0 at MMIO 0x18020000 (irq = 11) is a AR933X UART
[    0.680000] console [ttyATH0] enabled, bootconsole disabled
[    0.680000] console [ttyATH0] enabled, bootconsole disabled
[    0.700000] m25p80 spi0.0: found w25q128, expected m25p80
[    0.700000] m25p80 spi0.0: w25q128 (16384 Kbytes)
[    0.710000] 7 cmdlinepart partitions found on MTD device spi0.0
[    0.710000] Creating 7 MTD partitions on "spi0.0":
[    0.720000] 0x000000000000-0x000000040000 : "u-boot"
[    0.720000] 0x000000040000-0x000000050000 : "u-boot-env"
[    0.730000] 0x000000050000-0x000000ea0000 : "rootfs"
[    0.740000] mtd: partition "rootfs" set to be root filesystem
[    0.740000] mtd: partition "rootfs_data" created automatically, ofs=7C0000, len=6E0000
[    0.750000] 0x0000007c0000-0x000000ea0000 : "rootfs_data"
[    0.750000] 0x000000ea0000-0x000000fe0000 : "kernel"
[    0.760000] 0x000000fe0000-0x000000ff0000 : "nvram"
[    0.760000] 0x000000ff0000-0x000001000000 : "art"
[    0.770000] 0x000000050000-0x000000fe0000 : "firmware"
[    0.790000] ag71xx_mdio: probed
[    0.800000] eth0: Atheros AG71xx at 0xba000000, irq 5
[    1.350000] eth0: Found an AR7240/AR9330 built-in switch
[    2.380000] eth1: Atheros AG71xx at 0xb9000000, irq 4
[    2.930000] ag71xx ag71xx.0: eth1: connected to PHY at ag71xx-mdio.1:04 [uid=004dd041, driver=Generic PHY]
[    2.940000] input: gpio-keys-polled as /devices/platform/gpio-keys-polled/input/input0
[    2.950000] TCP cubic registered
[    2.950000] NET: Registered protocol family 17
[    2.950000] Bridge firewalling registered
[    2.960000] 8021q: 802.1Q VLAN Support v1.8
[    2.970000] VFS: Mounted root (squashfs filesystem) readonly on device 31:2.
[    2.970000] Freeing unused kernel memory: 216k freed
[    5.140000] Error: Driver 'gpio-keys-polled' is already registered, aborting...
- preinit -
Press the [f] key and hit [enter] to enter failsafe mode
- regular preinit -
[    9.620000] JFFS2 notice: (473) jffs2_build_xattr_subsystem: complete building xattr subsystem, 1 of xdatum (0 unchecked, 0 orphan) and 11 of xref (0 dead, 0 orphan) found.
[   10.430000] SCSI subsystem initialized
[   10.560000] usbcore: registered new interface driver usbfs
[   10.570000] usbcore: registered new interface driver hub
[   10.570000] usbcore: registered new device driver usb
[   11.300000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[   11.310000] ehci-platform ehci-platform: Generic Platform EHCI Controller
[   11.320000] ehci-platform ehci-platform: new USB bus registered, assigned bus number 1
[   11.350000] ehci-platform ehci-platform: irq 3, io mem 0x1b000000
[   11.370000] ehci-platform ehci-platform: USB 2.0 started, EHCI 1.00
[   11.370000] hub 1-0:1.0: USB hub found
[   11.370000] hub 1-0:1.0: 1 port detected
[   11.510000] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[   11.630000] Initializing USB Mass Storage driver...
[   11.630000] usbcore: registered new interface driver usb-storage
[   11.640000] USB Mass Storage support registered.
[   11.740000] usb 1-1: new high-speed USB device number 2 using ehci-platform
[   11.890000] hub 1-1:1.0: USB hub found
[   11.890000] hub 1-1:1.0: 4 ports detected
[   12.170000] usb 1-1.4: new high-speed USB device number 3 using ehci-platform
[   12.300000] scsi0 : usb-storage 1-1.4:1.0
[   13.300000] scsi 0:0:0:0: Direct-Access     Multi    Flash Reader     1.00 PQ: 0 ANSI: 0
[   13.310000] sd 0:0:0:0: [sda] Attached SCSI removable disk
switching to jffs2
- init -

Please press Enter to activate this console. [   39.140000] Loading modules backported from Linux version master-2013-06-27-0-gdcfa6d5
[   39.150000] Backport generated by backports.git backports-20130617-4-ge3220f5
[   39.190000] cfg80211: Calling CRDA to update world regulatory domain
[   39.190000] cfg80211: World regulatory domain updated:
[   39.190000] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[   39.200000] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   39.210000] cfg80211:   (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[   39.220000] cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[   39.220000] cfg80211:   (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   39.230000] cfg80211:   (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   40.170000] ieee80211 phy0: Athros AR9330 Rev:1 mem=0xb8100000, irq=2
[   40.180000] cfg80211: Calling CRDA for country: US
[   40.190000] cfg80211: Regulatory domain changed to country: US
[   40.190000] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[   40.200000] cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2700 mBm)
[   40.210000] cfg80211:   (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 1700 mBm)
[   40.210000] cfg80211:   (5250000 KHz - 5330000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   40.220000] cfg80211:   (5490000 KHz - 5600000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   40.230000] cfg80211:   (5650000 KHz - 5710000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[   40.240000] cfg80211:   (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 3000 mBm)
[   40.580000] NTFS driver 2.1.30 [Flags: R/O MODULE].
[   40.840000] Error: Driver 'gpio-keys-polled' is already registered, aborting...
[   41.060000] PPP generic driver version 2.4.2
[   41.300000] ip_tables: (C) 2000-2006 Netfilter Core Team
[   41.430000] NET: Registered protocol family 24
[   41.540000] nf_conntrack version 0.5.0 (960 buckets, 3840 max)
[   42.100000] i2c /dev entries driver
[   42.240000] Linux video capture interface: v2.00
[   42.460000] fuse init (API version 7.18)
[   42.610000] spi_tty_init: SPI TTY INITStart uSDaemon
[   58.810000] uSDaemon ... UP

Wird nach dem Bootvorgang die Enter-Taste gedrückt, erscheint ein Meldung zur Begrüßung und es steht Anschließend eine Shell zur Verfügung. Das folgende Beispiel zeigt, wie dies aussehen könnte.

BusyBox v1.19.4 (2014-03-27 01:01:45 CET) built-in shell (ash)
Enter 'help' for a list of built-in commands.

      ___                   ___                       ___           ___
     /\__\      ___        /\__\          ___        /\__\         /\  \
    /:/  /     /\  \      /::|  |        /\  \      /::|  |       /::\  \
   /:/  /      \:\  \    /:|:|  |        \:\  \    /:|:|  |      /:/\:\  \
  /:/  /       /::\__\  /:/|:|  |__      /::\__\  /:/|:|  |__   /:/  \:\  \
 /:/__/     __/:/\/__/ /:/ |:| /\__\  __/:/\/__/ /:/ |:| /\__\ /:/__/ \:\__\
 \:\  \    /\/:/  /    \/__|:|/:/  / /\/:/  /    \/__|:|/:/  / \:\  \ /:/  /
  \:\  \   \::/__/         |:/:/  /  \::/__/         |:/:/  /   \:\  /:/  /
   \:\  \   \:\__\         |::/  /    \:\__\         |::/  /     \:\/:/  /
    \:\__\   \/__/         /:/  /      \/__/         /:/  /       \::/  /
     \/__/                 \/__/                     \/__/         \/__/

        _______                     ________        __
       |       |.-----.-----.-----.|  |  |  |.----.|  |_
       |   -   ||  _  |  -__|     ||  |  |  ||   _||   _|
       |_______||   __|_____|__|__||________||__|  |____|
                |__| W I R E L E S S   F R E E D O M

root@linino:/#

Verwandte Artikel