Raspberry Pi dum Terminal (4 / 4 steg)
Steg 4: konfiguration
Ur lådan tilldelar en Raspbian installationen en process för att hantera allt som händer på Raspberry Pi GPIO UART serieport (ttyAMA0). Denna process är getty, och du kan logga in på din Raspberry Pi direkt över den seriella porten på 115200 baud. Ganska cool, men helt i vår väg just nu. Vi behöver den seriella porten öppen och lediga!
Det första steget att ta tillbaka den seriella porten är att stoppa systemet från att starta som en konsol i /boot/cmdline.txt
Låt oss börja genom att säkerhetskopiera filen
sudo cp /boot/cmdline.txt /boot/cmdline_backup.txt
Okej, nu att redigera filen (jag kommer att använda vim för detta)
sudo vim /boot/cmdline.txt
Ta bort dessa två inställningar (du kan bara hitta den första inställningen om du är på en NOOBS installation):
- Console = ttyAMA0, 115200
- kgdboc = ttyAMA0, 115200
Spara filen.
Nu måste vi stoppa systemet från med getty som hanterar data på den seriella porten. Denna handler tilldelas till den seriella porten i en annan fil: / etc/inittab. Låt oss redigera filen.
sudo vim/etc/inittab
Kommentera ut raden serieport handler genom att ändra
2:23:respawn: / sbin/getty - L ttyAMA0 115200 vt100
Till
#2:23:respawn: / sbin/getty - L ttyAMA0 115200 vt100
Spara filen.
På denna punkt används den seriella porten inte längre av systemet till stöveln. Nu behöver vi ett program som tillåter oss att skriva in och läsa tillbaka från med serieporten direkt. Jag kommer att använda Picocom. Picocom är en mycket skrapat ner kommandoraden terminalemulator.
sudo lämplig-få installera picocom
När det är installerat kan du köra det såhär:
picocom -b 300/dev/ttyAMA0
-B anger baudvärde. Detta är den snabbaste hastighet modemet antika fungerar, så jag kommer med det! Och /dev/ttyAMA0 är våra GPIO UART seriell port, naturligtvis. Allt du skriver blir skickade ner den seriella porten med Picocom kör, och allt skickas från den seriella porten blir tryckt direkt på skärmen. Old School!
Du kan nu gränssnittet för din gamla telekommunikationsutrustning direkt till en modern Raspberry Pi. Detta öppnar upp alla möjliga bra projektidéer. Låt oss veta din i kommentarerna.
---
Du kan stoppa det, men jag vill ha en riktigt dum terminal. Så ska jag gå ett steg längre och göra min Raspberry Pi stöveln direkt till Picocom med ingen inloggning. Dags för hacka-foo!
Skapa ett bash-script. Detta skript rensar skärmen, skriver ut ett välkomstmeddelande och sedan körs Picocom.
sudo vim /usr/bin/vterm
#! / bin/bash
klart
ECHO "Leksaksmakaren TV Terminal"
/usr/bin/picocom -b 300/dev/ttyAMA0
Spara filen.
Ange den fil som ska körbara
sudo chmod + x /usr/bin/vterm
Nu för djupa magic. Vi kommer att tilldela våra egna script hantering av tty1 (konsolen du få knutna till när Raspberry Pi startar upp, och att du brukar logga in). I en normal värld tty1 hanteras av en getty process, men vi känner dig äventyrlig så
sudo vim/etc/inittab
Förändring
1:2345:respawn: / sbin/getty--noclear 38400 tty1
Till
1:2345:respawn: / usr/bin/vterm
Spara filen.
Så nu, när Raspberry Pi stöveln upp, istället för att be dig att logga in det istället kommer att lämna du att vårt vterm skript. Som rensar skärmen, skriver ut ett välkomstmeddelande och startar Picocom ansluten till serieporten GPIO UART (och våra acoustic kopplingar). Observera att "respawn'. Vad det betyder är att om du avslutar Picocom (och skriptet avslutas) systemet kommer respawn en ny vterm skriften och koppla dig till den. Cool!
Så man kan tro, väl ok, men hur sjutton loggar jag tillbaka till min Raspberry Pi nu? Vi har inaktiveras den seriella port login, och vi har kapat tty1 inloggning!
Oroa dig inte, Raspbian startar som standard en hel massa ttys (du kanske har märkt dem medan du redigerade/etc/inittab). Du kan växla en annan tty genom att hålla ALT på tangentbordet tillsammans med en av F-tangenterna (F1 = tty1, F2 = tty2, etc). Om du byter till tty2, får du din vanliga inloggning: snabb, så att du får in i din Raspberry Pi.
Jag hoppas du hittade detta Instructable roliga och informativa. Tack för tar time out av din dag!