bookmark_borderCISCO AIR-AP2802I-E-K9 Standalone Konfiguration

Ei Gude, heute mal wieder was vernünftiges. Etwas das euch weiter bringt 😅
Eins vorn weg: Wollt ihr euren CISCO Accesspoint einfach nur in den „Mobility Express Modus“ bringen um ihn Standalone zu machen schaut ob euer Konsolenkabel-Port am Gerät funktioniert! Meiner ist defekt, daher diese vielen folgenden Zeilen.
Um euch das Leben einfacher zu machen: Falls euer blauer „Console“ Port an eurem AP funktioniert, nutze DIESE Anleitung.

Ich habe mir vor ein paar Tagen einen CISCO AIR-AP2802I-E-K9 Accesspoint gekauft. Einfach so, war billig. Ich wollte eh mein WLAN hier zuhause verbessern. Nur wusste ich da noch nicht, was ich mir daimit eigentlich antue 🤣

Der AP ist eigentlich so erstmal komplett nutzlos oder höchstens als großer Briefbeschwerer geeignet. Er setzt mit seiner std. Firmware einen Controller vorraus. Einen CISCO Wireless Controller 9800. Diese kosten aber so um die 250-300€ (gebraucht).
Das wollte ich mir nicht antun, also habe ich ein wenig im Netz gestöbert und eine Methode gefunden wie ich den AP in den Standalone Modus (Mobilitiy Express) bringe.

Da fangen dann schon die ersten Probleme an:
Man benötigt Firmware von Cisco für die Kisten, irgendwie logisch. Aber diese sind nur zu bekommen wenn man Partner von CISCO ist, also einen passenden Wartungsvertrag und son Geschiss hat.
Da hilft nur die Augen offen halten im Netz. Ich kann sie euch hier nicht bereitstellen, aber „nett“ (aufs nett sein kommt es immer an) fragen kann oft helfen….

Nächstes Problem:
Um mit den APs zu kommunizieren benötigt man am besten ein Konsolenkabel. Okay, hab ich keins mehr -.- alle irgendwann weggeschmissen, die meisten Geräte haben heutzutage ein USB-Interface für son Quatsch oder sind über SSH/Telnet erreichbar. NICHT BEI CISCO!! Okay, zu meiner Entschuldigung, die Geräte sind schon älter und nicht auf dem neuesten Stand. Aber okay. Was nun?
Ich habe mir erst ein Kabel selbst gebaut. Aus einem USB-Serial Adapter und einem CAT6 Kabel, ging nicht.
Dann habe ich mir ein Kabel in der Bucht bestellt, geht auch nicht. Ich habe alles versucht und irgendwann aufgegeben. Es scheint ist der Konsolenport am Gerät defekt. Wer weiß, evtl hat mal jemand ein Netzwerkkabel mit PoE in den Port gestopft oder so.
Tja, und nun? Komplett aufgeben? Sein lassen?

Nö! Es muss doch eine Möglichkeit geben! Ich habe dann weiter nach den Hardware Wireless Controllern geforscht und festgestellt das es eine möglichkeit gibt die Controllersoftware auf einer VM laufen zu lassen. Nice!

Okay, dann kann der Spass ja jetzt losgehen:

Zuerst benötigt man Hyper-V (gehen bestimmt auch alle anderen wie VMWare, Virtual Box, usw) aber ich hab hier gerade eine Kiste mit Windwos laufen und darauf ist der Hyper-V schon installiert.
Darauf erstellen wir eine neue VM: 1. Generation – 2CPUS – 4GB RAM – und eine 10GB VHD – 2. Netzwerkkarte + 2. virtuellen Switch.
Einen vSwitch fürs Externe Netz. Also der auf die Netzwerkkarte in eurem Host-PC zeigt und euch in euer Heimnetz bringt.
Einen vSwitch für ein internes Netz (192.168.1.0) weil ich zu faul bin mir ein VLAN einzurichten. Mit diesem Netz erreichen wir dann die Konfigurationsschnittstelle (Service Interface) des Wireless Controllers.

Auf die erste NIC setzen wir das interne Netz. Also das für das „Service Interface“ (192.168.1.0)
Auf die zweite NIC setzen wir das externe Netz. Also euer „Heimnetzwerk“.

WICHTIG: Wir benötigen die 2. Netzwerkkarte dringend. Sonst klappt das alles net!


Dann benötigen wir die Virtual Wireless Controller Software in der aktuellen Version 8.10.196.0.
Die Datei nennt sich: MFG_CTVM_8_10_196_0.iso. Ihr werdet sie bestimmt irgendwo finden, oder habt einen Kollegen der Zugang zu dieser Software hat.

Das ISO ein die VM einhängen und installieren lassen. Die Installation startet, es werden die Partitionen erstellt und dann startet die Kiste schon neu. ISO auswerfen und durchstarten lassen.

Sobald die Meldung „Press any key to…“ kommt. Schnell den Any-Key drücken! Man hat nur ein paar Sekunden.

Kurze Zeit später kommt dann diese Meldung. Hier schnell „Enter“ drücken, damit er nicht mit dem Autoinstall beginnt.

Nun beginnt die Konfiguration des Controllers, hier muss man jetzt aufpassen was man tut. Also „uffbasse“ wie wir in Hessen sagen. An diesem Teil hing ich lange, immer wieder neu konfiguriert und ausprobiert.

Zuerst der Name des Admins für den Controller, daraufhin 2x das Passwort.
Dann fragt er nach dem Namen für den User der APs und wieder 2x das Passwort.
Und ein „Enable Passwort“ für den AP, und auch hier 2x das Passwort eintippen. Alle gut merken!

Jezt kommen wir zu Einrichtung der Konfigurationsschnittstelle. Über diese erreichen wir nachher die Weboberfläche des Contollers. Dies zeigt in unser „internes“ Netz (192.168.1.0)

Hier folgt die Einrichtung des Interface Ports. Hier kommunizieren die APs mit dem Contoller und so. Dieses zeigt in euer „externes“ Netz. Also daß mit Internet, welches von eurem Router kommt. Diese IP muss „static“ sein, hier kann man kein DHCP nutzen. Also nehmt eine freie IP-Adresse die außerhalb des DHCP-Bereichs eures Routers liegt. Nur zur Sicherheit.
Dem Virtual Gateway geben wir einfach die 1.1.1.1 (für was das genutzt wird, keine Ahnung. Ist uns auch egal)

Weiter gehts mit der Konfiguration der APs und dem Controller.
„Mobility/RF Group Name“ wählt hier einen Namen für die Gruppe, was kurzes einfaches.
„Network Name (SSID)“ sollte klar sein, der Name eures WLANS.
„DHCP Bridging Mode“ No
„Allow Static IP Addresses“ Yes
„Configure a RADIUS Server now?“ Yes
„RADIUS IP“ Eine freie Adresse in eurem Heimnetz
„RADIUS Port“ Einfach Enter drücken, er übernimmt dann diesen Port (1812)
„RADIUS Secret“ ein Passwort für den RADIUS-Server
Der RADIUS ist wohl wichtig für die Verbindung zwischen AP und Controller 🤷

„Enter Coutry Code“: DE eintippen und Enter (nehmt auch besser DE, andere Länder andere Frequenzen. Könnte Stress geben)

„Enable 802.11b.. bla bla“ Einfach immer Enter drücken. Es wird dann immer mit „Yes“ bestätigt. Hier bestätigt ihr nur das die verschiedenen Netzwerke auch aktiviert werden. Ob das wirklich nötig ist um nur den AP mit der neusten FW zu versorgen?! Keine Ahnung. Ich hab sie einfach aktiviert, man macht nix kaputt.

Jetzt benötigen wir noch einen NTP-Server. Bei mir läuft einer in meinem OpenWRT-Router. Diesen habe ich dann genommen. Ihr müsst schauen ob ihr einen NTP-Server in Netz habt. Der wird benötigt damit die APs die richtige Uhrzeit kennen und die Zertifikate gültig sind.

Bei IPv6 habe ich nein gesagt. Brauche ich nicht. Müsst ihr wissen!

Jetzt nur noch einmal mit „Yes“ bestätigen das alles korrekt ist und es wird neu gestartet.

Sobald ihr dieses Bild seht könnt ihr euch anmelden. Mit den Anmeldedaten die wir weiter oben in der Konfig angelegt haben.
Das müssen wir auch, wir müssen noch ein paar Dinge einstellen damit ihr den Controller stressfrei nutzen könnt:

1. config network secureweb disable
2. config network webmode enable

Wenn das erledigt ist können wir die Weboberfläche über unser internes Netz erreichen (192.168.1.10). Dazu habe ich eine weitere VM im Hyper-V mit der in nur ins interne Netz gehe. Über diese kann ich nun auf das Webinterface zugreifen.

An diesem Punkt könnte man jetzt sagen: „Ich lass das so. Ich nutze einfach den Controller über die VM“. Kann man machen. Ich will trotzdem Mobility Express nutzen. Müsst ihr wissen!

So, jetzt haben wir diesen ganzen Schmu installiert nur um irgendwie einen CISCO AP in den Standalone-Modus zu bekommen.
Jetzt können wir den AP mit einem „geeignetem“ PoE-Injektor anschließen. An unser normales Heimnetz.

WICHTIG!! Der PoE-Injektor muss passen! Es muss einer von CISCO sein der auch genügend Leistung bringt (48V ~30Watt). Am besten den AIR-PWRINJ6. Dritthersteller können Probleme machen. Der Injektor muss mit 1Gbit klar kommen!!

Wenn der AP angeschlossen ist lassen wir ihn erstmal booten und sein Zeugs machen, das kann 3-5min dauern. Wenn alles gut läuft sollte er dann im Summary auftauchen.
Das ist der Grund warum wir die Version 8.10.196.0 nutzen. Der AP wird sich selbst das Firmwareupdate ziehen und sich aktualisieren, darum kann die erste Verbindung zum AP etwas dauern. Damit haben wir auf dem Gerät schon die neuste Firmware mit „Mobility Express“ Unterstützung. Das ist wichtig.
Mein AP hat sich dann eine IP-Adresse aus meinem DHCP-Pool vom Router gezogen, über diesen konnte ich ihn dann anpingen.

Ich hoffe euer AP hat eine Firmware neuer als 8.3.x.x sollte die Firmware älter sein kann ich euch nicht versprechen dass das automatische Firmwareupdate gelingt 😵‍💫 Vor allem wenn euer Konsolen-Port auch kaputt ist, so wie bei mir.
Falls euer aber funktioniert: Hier eine Anleitung (Hatte ich weiter oben ja schon erwähnt) wie man die Kisten mit einem Konsolenkabel updated. Mit dieser Anleitung kann man sich das ganze Prozedere hier oben sparen. Sollte euer Konsolenport funktionieren, macht es besser auf diesem Weg.

Ich musste diesen Weg so gehen, leider. Nun aber habe ich einen AP mit der Mobility Express Firmware drauf.
Jetzt muss er nur noch als solcher konfiguriert werden:

Ich kann das jetzt nicht mehr in Bilder verfassen. Ihr müsst jetzt genau lesen und verstehen 😂

  1. Wir melden uns am Controller an
  2. Klicken oben Rechts auf „Advanced“
  3. Dann oben im Menü auf „Wireless“
  4. Links im Menü auf „Access Points“ -> dann auf „All-APs“
  5. Hier sollte in der Liste euer AP stehen. Bitte einmal drauf klicken.
  6. Dann öffnen sich die Optionen des APs
  7. Unter dem Reiter „Advanced“ sollten wir den Eintrag SSH finden. Hier setzten wir den Haken und sagen nicht „Global Config“ sondern das andere.
  8. Damit haben wir SSH für das Gerät aktiviert.

Ich habe den AP dann einmal neu gestartet. Danach konnte ich über Putty auf ihn zugreifen. Das benötigen wir in den folgenden Schritten.

Also los den AP auf Mobility Express umzurüsten. Dafür benötigen wir leider noch eine Firmware und einen TFPT Server.

Die Firmware findet ihr von CISCO hier. Die Datei nennt sich: AIR-AP2800-K9-ME-8-10-196-0.tar
Ihr werdet sie schon finden. Bin ich mir fast sicher.

TFTP einrichten. Ich nutze Tftpd32. Der ist schnell installiert und auftgesetzt.

In das Verzeichnis legen wir die Datei AIR-AP2800-K9-ME-8-10-196-0.tar.

Jetzt verbinden wir uns mit dem AP via SSH, melden uns mit unseren AP-Benutzer (die wir oben angelegt haben, bei der Installation des Controllers) an.
Zuerst müssen wir den AP enablen, also erstmal „enable“ eingeben. Er fragt wieder nach dem Passwort (es ist das Enable-Passwort).
Nun können wir den AP, mit folgendem Befehl, in den Mobility Express Modus versetzen:

ap-type mobility-express tftp://{IP-eures-TFTP-Servers}/AIR-AP2800-K9-ME-8-10-196-0.tar

Nach absenden des Befehls wird die Firmware geupdatet und der AP startet neu.
Jetzt einfach ein bisschen warten, irgendwann sollte die Blaue LED auf dem AP durchgehend leuchten. Nun sollte ein WLAN namens „Cisco Provisioning Service“ oder so ählich auffindbar sein. Damit einfach verbinden und die Konfiguration abschließen. TA-DA!!! Nun habt ihr einen CISCO AIR-AP2802I-E-K9 im Standalone Modus.
Ich werde jetzt nicht tiefer in die Cofig einsteigen. Das solltet ihr hinbekommen falls ihr keine IT-Legastheniker seid.

Ich hoffe ich konnte helfen..

bookmark_borderMeanwell = Naja!

Ich hab mal wieder was erlebt. Vollkommen durch.
Ich hab da so einen alten Rechner an dem das Netzteil kaputt gegangen ist. Also habe ich ein alternatives gesucht.

Für dieses alte Delta-Netzteil brauche ich ein Ersatz. Es hat 3 Rails: 5v, 12v und -12v.

Ich habe dann eins bei Meanwell gefunden, nachdem ich mich durch deren Produktportfolio gequält habe. Es wurde dann das MW RPT-160B.

Also bei Conrad bestellt. Dauerte auch nur gut 2 Monate bis es bei mir ankam xD

Jetzt die Überraschung: Ich höffne das Paket und sehe diesen Karton:

Schaut gut aus. Es steht ja „RPT-160B“ drauf 🙂
Also Karton auf, Netzteil raus und … naja:

Okay, da steht ja was anderes drauf. „RPT-160A“ aber „A“ ist doch genau das falsche wie man oben im Datasheet sehen kann.

Also noch eins bestellt. Dieses habe ich erstmal zur Seite gelegt, kann ja irgendwann nochmal nützlich werden. Diesmal gingen nut etwa 2 Wochen ins Land.
Also wieder: Karton auf, Netzteil raus:

Öhm. Echt jetzt? Wieder das falsche? Auf dem Karton steht wieder das richtige Modell. Leider davon kein Bild mehr -.-
Okay, was jetzt? Irgendwie dachte ich nicht mehr an einen doofen Zufall und habe das Netzteil mal an 230v gehangen und nachgemessen. Und siehe da: Ich habe meine 5v, 12v und -12v xD
Es ist wohl nur der Druck auf dem PCB falsch. Also habe ich das andere auch nochmal rausgekramt und nachgemessen. Und auch hier, es ist einfach nur falsch beschriftet.

Ist mir bisher bei MeanWell noch nicht passiert. Aber okay. Die Übersetzung von Meanwell bedeutet so viel wie „naja“ xD

bookmark_borderOpenWRT auf FritzBox 7520

Seit einiger Zeit juckt es mich ein wenig. Ich wollte unbedingt mal mit OpenWRT rumspielen. Vor ein paar Tagen hat es mich dann geritten, ich habe mir eine FritzBox 7520 bestellt.
Warum 7520? Eigentlich ganz einfach: Die aktuellste Version von OpenWRT hätte gerne mehr als 16MB Flashspeicher und 128MB RAM. Ich bin dann doch gerne für die Zukunft gerüstet.
Die 7520 hat eine Qualcomm Atheros IPQ4019 CPU (Dakota) mit 4x 716MHz + 256MB RAM und 128MB Flash.

https://web.archive.org/web/20240916150039/https://boxmatrix.info/wiki/FRITZ!Box_7520

Ein weiterer wichtiger Faktor ist auch der Netzwerkchipsatz. Was bringt mir ein Router mit 100Mbit an einem 1Gbit Anschluss? Nix! Genau.
Meine FritzBox ist die v1 mit dem 1&1 Branding. Also die schwarze mit den angedeuteten Antennenstummeln oben drauf. Das Branding spielt absolut keine Rolle. Alles funktioniert wie bei den Modellen ohne das Branding. Bei der 7520v1 gibt es noch eine nettes Feature: Mit der originalen Firmware sind 2 Ports 100Mbit und 2 Ports 1Gbit, aber mit der installation von OpenWRT sind alle 4 Ports auf Gbit 😁

Die Installation von OpenWRT ist bei der FritzBox nicht ganz so trivial. Da geht nicht einfach Firmware auswählen und hochladen. Fertig. Nee, nee. Aber dazu jetzt mehr:

Die Installation:

Ich hatte die FritzBox auf die aktuelle Firmware von AVM hochgezogen. Falls du auch eine FritzBox flashen willst, lass es! Lass die alte Firmware drauf. Es besteht die Chance das es durch die aktuelle Firmware fehl schlägt. Muss aber nicht, bei mir hats geklappt.

Zuerst bereiten wir unsere Werkzeuge vor:
1. Installation von Python auf dem Rechner mit dem der Spass durchgezogen werden soll (müssen ein script ausführen)
2. Download der Installationsdateien (Uboot und initramfs – also das Image selbst)
Mehr dazu hier
3. TFTP Server installieren

Ich habe mich strikt an diese Anleitung gehalten. Es funktioniert super. Die Version ist 24.10.4
Die aktuellste Version ist aber 24.10.5. – Content für nächstes mal 😆

IP Adresse am Rechner auf 192.168.178.10/24 ändern – FritzBox ausschalten – wieder einschalten – warten bis der Netzwerkadapter Link zeigt und das Script ausführen. Das Ausführen des Scriptes „muss“ beim Bootvorgang stattfinden.

./eva_ramboot.py --offset 0x85000000 192.168.178.1 uboot-fritz7520.bin


Wenn das alles erfolgreich war, können wir die IP-Adresse wieder ändern (auf 192.168.1.70) und einfach mal die 192.168.1.1 pingen. Sollte der Ping durchgehen, hat alles geklappt.

Hier warten wir jetzt erstmal und richten uns einen TFTP Server ein. Darauf gehe ich nicht zu sehr ein. Ich hab ja keine Ahnung ob du Windows, MacOS, Linux oder sonstwas nutzt. Hier hilft aber die Anleitung auf OpenWRT. Ich unterstütze hier nur!

Aktuell befindet sich die FritzBox in einem Zustand in dem sie nach einem TFTP-Server sucht. Wir packen das initramfs Image (umbenannt in FRITZ7520.bin) in das root-directory des TFTP, starten diesen und schauen uns das Log an. Dort sollte man erkennen wenn die FritzBox sich das Image zieht und mit dem ganzen Spass fertig ist.

Nun sollte die FritzBox über 192.168.1.1 über SCP erreichbar sein. Also kopieren wir die Uboot in /tmp/ und die *sysupgrade.bin gleich hinterher

scp /tmp/uboot-fritz7520.bin root@192.168.1.1:/tmp/
scp /tmp/avm_fritzbox-7520-squashfs-sysupgrade.bin  root@192.168.1.1:/tmp/

Nun per SSH auf die FritzBox und die uboot in den Bootloader in beide Kernel-Partitionen schreiben

ssh root@192.168.1.1

mtd write /tmp/uboot-fritz7530.bin uboot0
mtd write /tmp/uboot-fritz7530.bin uboot1

Jetzt müssen noch die alten AVM Partitionen entfernt werden, so können wir auch den gesamten Platz im Flash nutzen:

ubirmvol /dev/ubi0 --name=avm_filesys_0
ubirmvol /dev/ubi0 --name=avm_filesys_1

Jetzt ist Platz vorhanden. Nun das *sysupgrade.bin in den Flash schreiben und wir haben es grob geschafft:

sysupgrade -n /tmp/avm_fritzbox-7520-squashfs-sysupgrade.bin

Wenn irgendwas nicht so richtig klappt, steht viel hilfreiches auf der Installatiosseite von OpenWRT. Gerade falls du doch eine andere Version der Box mit anderen Flash-Chips oder sowas hast.

Nach dem ganzen Spass sollte die Weboberfläche LuCI über http://192.168.1.1 erreichbar sein und man kann mit dem ganzen Konfigurationsspass beginnen. Wer nur Router wie die FritzBox oder Speedports kennt wird hier ein ganz neues Level an Konfigurationsüberdruss erleben 😆
Also viel Spass damit.

Ich habe mir noch ein WireGurad Server auf die Box gepackt und erfolgreich zum laufen gebracht. Mehr davon bald.

Zusätzlich habe ich noch einen Mod an der FritzBox vorgenommen. Ich habe einen 80cm Lüfter von oben auf das Gehäuse geklatscht und die Chips im Inneren der Box mit Klebe-Kühlkörpern versehen. Das ist alles mehr gebastel als professionell. Aber ich habe nie behauptet ich bin ein Profi 😆
Und mein Dymo ist auch kaputtgegangen 😑

Zusätzlich kann man in OpenWRT auch die LEDs der FritzBox ansteuern. Dazu muss ich mir noch was überlegen. Blinken bei Aktivität der WAN/LAN/WLAN Schnittstelle usw..
Es wäre wünschenswert wenn ich evtl. ein Gehäuse zum 3D-Drucken finden würde. Ich hab schon mal 5min nach gesucht aber bisher nicht fündig geworden. Ich glaub ich muss meine Fusion Kenntnisse wohl nochmal etwas auffrischen und mir einfach selbst was konstruieren.

Naja, bald gehts weiter mit den Geschichten rund um OpenWRT und die FritzBox.

bookmark_borderDie LLM’s! Meine besten Freunde – Teil 2

Ich glaube tatsächlich dass ich nun gebrandmakrt bin. Stehe wohl auf ner Blacklist oder so xD
Da wollte ich mir einfach nur ein tolles Rezept erstellen lassen. Ein Rezept für die „Ultimative Stulle“.

Aye, das klingt super! Da habe ich Bock drauf!
Da ich gestern eine Disskussion, über Stulle oder Sandwich, mitbekommen habe wollte ich das Rezept gerne in unsere Telegram Gruppe schicken. Dazu wollte ich es gerne in einem PDF haben:

Wow, dachte ich mir, das ging ja fix. Nice, habe ich nun ein PDF mit der „Ultimativen Stulle“.
Doch ein bisschen zu früh gefreut, hier das Ergebnis:

Jow, das wars. Das ist alles xD Also sagte ich dem Ding er soll es doch bitte mal „schön“ machen.

Okaaaaaaaay, und?

Hm, ich habe hier mal das Rezept für euch, zum teilen und anderen eine Freude machen xD

bookmark_borderNeues Notebook.. ein MacBook Air

Yes, haltet mich für dumm oder so, aber ich hab mir ein gebrauchtes Apple MacBook Air M2 geholt. Eines mit 16GB und 265GB SSD. Nicht das schnellste aber ich denke ich komme mit klar.

Ich hatte einfach Lust auf ein kleines und vor allem „leises“ Notebook. Warum ich als Linuxmensch mir dann ein verdammtes MacBook hole? IDK. Jedenfalls gibt es schon ein Linux das auf den ARM Geräten läuft, von daher ist es mir egal ob mir das MacOS irgendwann ankotzt. Dann gibts halt Linux, wenn auch mit einigen Einschränkungen.

Bisher gefällt mir das MacOS ganz gut. Version 26.2. Läuft! Alle meine Programme zum Arbeiten laufen irgendwie und falls nicht, wird halt wieder gebastelt xD

Erste Probleme ließen sich natürlich nicht vermeiden xD
1. Zeitzone einstellen. Geht irgendwie nicht, musste online sein und den Standort freigeben.
2. Das „@“ oO WTF Apple? Option + L? Wer kommt auf so eine dumme Idee?
3. Die übergrifflichem Sicherheitsmechanismen in MacOS. Ja Mama, ich bins wirklich! Aber ich gebe gerne nochmal mein Passwort ein, ist ja erst 2min her.
4. Nur 2 USB-C Ports

Geil:
Dieses Display ❤️❤️
Dieses Trackpad ❤️
Das Gewicht .. das Ding ist so leicht, nice!
Die Akkulaufzeit. Dank ARM endlich brauchbar xD (im Gegensatz zu dem Kram mit dem ich vorher arbeiten musste)
Die Lautstärke. Unhörbar, da kein Lüfter verbaut.

Naja, ich teste jetzt jedenfalls erstmal weiter. Bestimmt kommen noch mehr Beträge zu Apple und MacOS. Da bin ich mir sicher!