Embedded Linux Router (Homemade)

1. Zutaten

Fujitsu Futro S 400

 Linux Router fli4l

image

 

 

image

  • bootet von CF Karte
  • On Board LAN
  • Leise (weil ohne Lüfter)
  • Stromsparend
  • PCI Slot für DSL Modem 
  • LPT Port für LCD Display
  • Günstig (Werksverkauf 40 €)
  • Mini Linux Router
  • Open Source
  • Viele Zusatzpakete verfügbar
  • Weit verbreitet & stabil
  • Hardware wird unterstützt
  • Günstig (0 €)

AVM PCI DSL Modem

LCD Display
image 

image

  • Treiberunterstützung für Linux
  • Weit verbreitet
  • Günstig (eBay 10 €)
  • Zur Basis-Statusanzeige
  • Man braucht keinen PC Monitor
  • Über LPT Kabel anschließbar
  • Kein Treiber / Controller nötig
  • Günstig (eBay 12 €)

2. Zubereitung

Was war bei der Konfiguration zu beachten?

Auf der Projektseite von fli4l finden sich eine Fülle von Anleitungen, Anregungen und Ideen sich seinen Router zusammenzustellen. Selbst mit einem Windows PC, kann das Image für CF Karte erstellt werden:
image

Konfiguriert man den HTTP Server für das Monitoring, kann man vom PC im Heimnetzwerk aus den Status des Routers überwachen und einfache Steuerungsaufgaben durchführen.

  image

3. Garzeit

Jetzt wird noch geschmort: Das LCD Panel wird an ein altes LPT-Druckerkabel angelötet. Am besten schaltet man noch ein Potentiometer davor um die Helligkeit regeln zu können. Das LPT Druckerkabel wird dann an die parallele Schnittstelle abgeklemmt. Vorher muss noch das LDC Modul konfiguriert werden. Und fertig ist das Mini-Display mit Statusanzeige…

4. Kredenzen

Nach ein paar Test war der Router fertig und er konnte seinen Dienst aufnehmen. 

Mein DSL Anschluss hat des Öfteren Störungen. Es wird die Verbindung zum Netz-Provider kurzzeitig getrennt. Dies brachte meinen alten Router regelmäßig zum Abstürzen. Meist half nur ein harter Reset. Mein neuer Router dagegen läuft sehr stabil. Bei einer Netztrennung verbindet er sich sofort wieder und man hört ein akustisches Signal das er dies tut (Siehe Konfiguration IMOND_BEEP='yes'). Und so läuft und läuft und läuft der Router:

image

5. Abschmecken

Die Konfiguration des Routers wird pro Modul über  Konfig-Dateien (z. B. base.txt., dsl.txt, etc.) durchgeführt.  Die Konfigurationsparameter müssen insbesondere an die Hardware angepasst werden (CF Karte,  DSL Modem und LCD Display). Werden Module nicht benötigt, kann man die entsprechenden Konfig-Dateien löschen.

image

Aufgeführt sind hier die wichtigsten Settings aus den verwendeten Konfig-Dateien.

a) Konfiguration base.txt

#-----------------
# General settings
#-----------------
HOSTNAME='futro'             # name of fli4l router
PASSWORD='geheim'            # password for root login 
BOOT_TYPE='hd'               # boot device (fd, hd, cd, etc)
MOUNT_BOOT='rw'              # mount boot device (ro, rw, no)
BOOTMENU_TIME='1'            # waiting time of bootmenu 
#---------------
# Debug Settings
#---------------
DEBUG_STARTUP='no'           # write an execution trace of the boot
                             # Wert auf 'yes' setzen,
                             # um Fehler beim Booten zu finden
#----------------------
# Ethernet card drivers
#----------------------
NET_DRV_N='1'                # number of ethernet drivers to load
NET_DRV_1='r8169'            # 'r8169' für Futro onboard LAN 
NET_DRV_1_OPTION=''          # additional option (nicht notwendig)
#-------------------------------------
# Ether networks used with IP protocol
#-------------------------------------
IP_NET_N='1'                 # number of IP ethernet networks, usually 1
IP_NET_1='10.0.0.1/8'        # IP address of your ethernet card 
IP_NET_1_DEV='eth0'          # required: device name like ethX
#---------------------------
# Packetfilter configuration
#---------------------------
PF_NEW_CONFIG='yes' # new style packet filter config
Config des Paketfilters dem eigenen Netzwerk anpassen!
(Zum Starten Beispiel aus Doku nehmen)
#-------------------------------------------
# Simple DMZ setup for dial-up based routers
#-------------------------------------------
OPT_DMZ='no'                 # Dafür würde man ein weiteres  
                             # LAN Interface benötigen! 
                             # (Futro S400 hat leider nur eines) 
#--------------------------------------------------
# Domain configuration (DNS, DHCP-Server and HOSTS)
# (Details 'ausgelagert' im Package DNS_DHCP.txt)
#--------------------------------------------------
DOMAIN_NAME='home.test'      # your domain name
DNS_FORWARDERS='194.8.57.12' # DNS servers of your provider
                             # (Ich nutze: ns.n-ix.net)
#--------------------
# imond configuration
#--------------------
START_IMOND='yes'            # start imond: yes or no
 IMOND_USE_ORIG='yes'        # use the original version of imond
 IMOND_PORT='5000'           # port (Don't open it to the outside!)
 IMOND_PASS='geheim'         # imond-password, may be empty
 IMOND_ADMIN_PASS='geheim'   # imond-admin-password, may be empty
 IMOND_LED=''                # tty for led: com1 - com4 or empty
 IMOND_BEEP='yes'            # beep if connection going up/down
 IMOND_LOG='yes'             # log /var/log/imond.log: yes or no
 IMOND_LOGDIR='/var/log'     # log-directory, e.g. /var/log
 IMOND_ENABLE='yes'          # accept 'enable/disable' commands
 IMOND_DIAL='yes'            # accept 'dial/hangup' commands
 IMOND_ROUTE='yes'           # accept 'route' command
 IMOND_REBOOT='yes'          # accept 'reboot' command

#------------------------------
# Generic circuit configuration
#------------------------------
IP_DYN_ADDR='yes'            # use dyn. IP addresses (most providers do)
DIALMODE='auto'              # standard dialmode: auto, manual, or off

g) Konfiguration tools.txt

#------------------------
# Optional package: Tools
#------------------------

# Alle Tool aktivieren, die man auf dem Linux Router benötigt
# Beispielsweise Z. B.  traceroute   
       
OPT_TRACEROUTE='yes'             # install traceroute    
OPT_TRACEROUTE6='yes'            # install traceroute6   

e) Konfiguration httpd.txt

#----------------------------------------------
# Optional package: HTTP server for monitoring
#----------------------------------------------
OPT_HTTPD='yes'                 # install monitoring webserver
HTTPD_PORT='81'                 # TCP port for webserver
HTTPD_USER_N='1'                # number of users for the webserver
HTTPD_USER_1_USERNAME='bernie'  # name of the 1st user
HTTPD_USER_1_PASSWORD='geheim'  # password of the 1st user
HTTPD_USER_1_RIGHTS='all'       # access rights of the 1st user
HTTPD_GUI_LANG='auto'           # choose language for web administration
HTTPD_GUI_SKIN='default'        # choose any supported skin
HTTPD_ARPING='yes'              # activate arping to hosts
                                # view arp state of hosts

d) Konfiguration hd.txt

#---------------------------------------
# Optional package: HD controler drivers
#---------------------------------------
OPT_HDDRV='yes'      # install drivers for harddisk
HDDRV_N='1'          # number of HD drivers to load, usually 1
HDDRV_1='ide-hd'     # 1st driver: name (e.g. ide-hd)
                     # (CF Karte als IDE HD einbinden)
HDDRV_1_OPTION=''    # 1st driver: additional option

#---------------------------------------------
# Optional package: install on HD or Flashdisk
#---------------------------------------------
OPT_HDINSTALL='no'   # install on harddisk 
                     # (Nur notwendig, wenn über LAN installiert wird)
#-----------------------------------------------
# Optional package: Power-Down for IDE Harddisk
#----------------------------------------------
OPT_HDSLEEP='no'     # power down HD after some time
HDSLEEP_TIMEOUT='5'  # wait 2 minutes until power down
                     # (Für CF Karten nicht notwendig)

Sprint Review & Retrospektive mit Scrum for Team System


In diesem Teil beschreibe ich, wie wir Scrum for Team System bei Sprint Reviews und bei Sprint Retrospektiven nutzen. Und weshalb wir Impediments nicht mit Scrum for Team System verwalten…

Teil 1: Sprint Planung
Teil 2: Daily Scrums
Teil 3: Sprint Review & Retrospektive

Teil 3: Sprint Reviews & Retrospektive

3.1 Sprint Review
Zu dem Sprint Review treffen sich die Team-Mitglieder, die Product Owner oder Fachexperten. Es wird an einem Beamer das Product Increment vorgestellt.
War die Implementierung erfolgreich, werden die entsprechendes Product Backlog Items auf "done" gesetzt. Entspricht ein Product Backlog Item aber nicht den Vorstellungen, muss nachgebessert werden. Solch ein Product Backlog Item verweilt mit dem Status "in Progress" im Product Backlog und steht mit der höchsten Priorität für den Folgesprint an oberster Stelle. Wir nutzen üblicherweise das Task Board, um den Status von PBIs zu setzen.

3.2 Retrospektive
Zur Retrospektive treffen wir uns nach einem Sprint für eine Stunde, um die Aktivitäten des Sprints zu reflektierene:
  • Was war gut?
  • Was war nicht so gut?
  • Was wollen wir besser machen? 
Jeder im Team liefert "Input".Die Ergebnisse halten in einem Work Item Type "Retrospective" fest:


Da war doch noch was? Richtig die Impediments…

3.3 Impediments (Hindernisse) besser auf einem Whiteboard!
Impediments hindern das Team daran das Produkt-Inkrement fertig zu stellen. Hindernisse müssen schnell aus dem Weg geräumt werden. Dies zu tun ist Aufgabe des SCRUM Masters. Ein Hindernis kann beispielsweise "Mehr RAM für den Build-Server" sein, oder "es fehlt noch die Prozessabsprache mit Fachabteilung XY". Unsere Hindernisse sind vielschichtig und meist nur kurzlebig. Darum verwalten wir sie nicht über das WorkItemType "Impediments" in TFS, sondern auf einem Whiteboard - für jeden im Team sichtbar!