Re: UBNT Nanostation 2 - vypnutí konsole na ttyS0
Petr Zapadlo
zapik na email.cz
Pondělí Duben 1 20:08:44 CEST 2019
Zdravím,
bohužel, /etc/ttys není.
V adresáři /tmp jsou soubory:
boot.log running.cfg system.cfg
Ze souboru system.cfg se generuje pomocí linuxrc výsledná konfigurace.
Níže uvádím obsahy zajímavých souborů, kdyby někdo náhodou věděl jak se
getty zbavit.
Díky
Petr
Mount:
/dev/mtdblock2 on / type squashfs (ro)
none on /proc type proc (rw)
tmpfs on /dev type tmpfs (rw)
pts on /dev/pts type devpts (rw)
tmpfs on /var type tmpfs (rw)
/etc/inittab:
# Executed on startup
::sysinit:/etc/rc.d/rc.sysinit
# Start an "askfirst" shell on the console (whatever that may be)
ttyS0::askfirst:/sbin/getty -L ttyS0 9600 vt100
# Stuff to do when restarting the init process
::restart:/sbin/init
# Run daemons
::wait:/usr/etc/rc.d/rc start
# Stuff to do before rebooting
::ctrlaltdel:/sbin/reboot
::shutdown:/etc/rc.d/rc stop
::shutdown:/etc/rc.d/rc.stop
::shutdown:/bin/umount -a -r
null::respawn:/bin/infctld -m -c
null::respawn:/bin/syslogd -n
null::respawn:/bin/pwdog -d 300 -p 300 -c 3 -m 300 172.28.116.1
null::respawn:/bin/lighttpd -D -f /etc/lighttpd.conf
null::respawn:/bin/telnetd -F -p 23
null::respawn:/bin/dropbear -F -p 22
null::respawn:/bin/wpa_supplicant -D wext -i ath0 -c
/etc/wpasupplicant_WPA-PSK.conf
null::respawn:/sbin/ntpclient -s -c 0 -l -h 0.ubnt.pool.ntp.org
null::respawn:/bin/mcad
Soubor /linuxrc ze kterého se generuje konfigurace:
#!/bin/sh
#
#
# Global environment
#
CONSOLE=/dev/ttyS0
export CONSOLE
TERM=linux
export TERM
PATH=/bin:/sbin:/usr/bin:/usr/sbin
export PATH
# prepare filesystems
/bin/mount -n none /proc -t proc
echo 1 > /proc/sys/kernel/printk
echo 3 > /proc/sys/kernel/panic
/bin/mount -t tmpfs tmpfs /dev -o size=102400
/bin/mkdir /dev/pts
/bin/mknod /dev/console c 5 1
/bin/mknod /dev/full c 1 7
/bin/mknod /dev/kmem c 1 2
/bin/mknod /dev/loop0 b 7 0
/bin/mknod /dev/mem c 1 1
/bin/mknod -m 664 /dev/mtd0 c 90 0
/bin/mknod -m 664 /dev/mtd1 c 90 2
/bin/mknod -m 664 /dev/mtd2 c 90 4
/bin/mknod -m 664 /dev/mtd3 c 90 6
/bin/mknod -m 664 /dev/mtd4 c 90 8
/bin/mknod -m 664 /dev/mtd5 c 90 10
/bin/mknod -m 664 /dev/mtd6 c 90 12
/bin/mknod -m 664 /dev/mtd7 c 90 14
/bin/mknod -m 664 /dev/mtd8 c 90 16
/bin/mknod -m 664 /dev/mtd9 c 90 18
/bin/mknod -m 664 /dev/mtdblock0 b 31 0
/bin/mknod -m 664 /dev/mtdblock1 b 31 1
/bin/mknod -m 664 /dev/mtdblock2 b 31 2
/bin/mknod -m 664 /dev/mtdblock3 b 31 3
/bin/mknod -m 664 /dev/mtdblock4 b 31 4
/bin/mknod -m 664 /dev/mtdblock5 b 31 5
/bin/mknod -m 664 /dev/mtdblock6 b 31 6
/bin/mknod -m 664 /dev/mtdblock7 b 31 7
/bin/mknod -m 664 /dev/mtdblock8 b 31 8
/bin/mknod -m 664 /dev/mtdblock9 b 31 9
/bin/mknod -m 666 /dev/null c 1 3
/bin/mknod /dev/port c 1 4
/bin/mknod /dev/random c 1 8
/bin/mknod /dev/rtc c 10 135
/bin/mknod /dev/tty c 5 0
/bin/mknod /dev/tty0 c 4 0
/bin/mknod /dev/tty1 c 4 1
/bin/mknod /dev/tty2 c 4 2
/bin/mknod /dev/tty3 c 4 3
/bin/mknod /dev/ttyS0 c 4 64
/bin/mknod /dev/urandom c 1 9
/bin/mknod /dev/zero c 1 5
/bin/mknod /dev/ptmx c 5 2
/bin/mknod /dev/watchdog c 10 130
/bin/mknod /dev/gpio c 127 0
/bin/mknod /dev/ppp c 108 0
/bin/mknod /dev/int c 69 0
/bin/mount -n pts /dev/pts -t devpts
/bin/mount -n tmpfs /var -t tmpfs -o size=5242880
/bin/mkdir -p /var/run /var/tmp /var/log /var/etc /var/etc/persistent
/bin/chmod 775 /var/run /var/tmp /var/log /var/etc /var/etc/persistent
echo -n "Checking /etc..."
# making sure that critical files are in place
mkdir -p /etc/rc.d /etc/init.d
# forced update
for f in inittab rc.d/rc.sysinit rc.d/rc rc.d/rc.stop ppp; do
cp -f -r /usr/etc/$f /etc/$f
done
mkdir -p /etc/udhcpc
# do not update if exist
for f in passwd group login.defs profile hosts host.conf \
fstab udhcpc/udhcpc startup.list udhcpc_services; do
if ! [ -e /etc/$f ]; then
cp -f /usr/etc/$f /etc/$f
fi
done
mkdir -p /etc/sysinit
# make symlinks if do not exist
for f in services protocols shells mime.types ethertypes; do
if ! [ -e /etc/$f ]; then
ln -s /usr/etc/$f /etc/$f
fi
done
mkdir -p /etc/boa
# check if we have uploaded certificates
for f in server.crt server.key; do
if [ -e /etc/persistent/https/$f ]; then
ln -s /etc/persistent/https/$f /etc/boa/$f
else
ln -s /usr/etc/$f /etc/boa/$f
fi
done
echo "."
# required for 2.5 kernel, but won't hurt for 2.2
if [ -e /proc/sys/kernel/real-root-dev ]; then
echo 256 > /proc/sys/kernel/real-root-dev
fi
# System configuration
mkdir -p /etc/sysinit/
/sbin/cfgmtd -r -p /etc/ -f /tmp/system.bak
if [ $? -ne 0 ]; then
/sbin/cfgmtd -r -p /etc/ -t 2 -f /tmp/system.bak
if [ $? -ne 0 ]; then
cp /usr/etc/system.cfg /tmp/system.bak
fi
fi
sort /tmp/system.bak > /tmp/system.cfg
rm /tmp/system.bak
cp /tmp/system.cfg /tmp/running.cfg
# Set timezone
TIMEZONE=`grep system\.timezone= /tmp/system.cfg | cut -f2 -d'='`
[ ! -z $TIMEZONE ] && echo $TIMEZONE > /etc/TZ
# Set device date to firmware build date or date from config (if set)
BDATE=072413422015
CFG_DATE_STATUS=`grep system\.date\.status= /tmp/system.cfg | cut -f2 -d'='`
CFG_DATE=`grep system\.date\.timestamp= /tmp/system.cfg | cut -f2 -d'='`
if [ ".$CFG_DATE_STATUS" = ".enabled" ] && [ ! -z $CFG_DATE ]; then
date -s $CFG_DATE >/dev/null 2>&1
elif [ ! -z $BDATE ]; then
date -s $BDATE >/dev/null 2>&1
fi
# Run configuration parser
[ -e /sbin/ubntconf ] && /sbin/ubntconf
echo "Executing init..."
exec /sbin/init -f
echo "INTERNAL ERROR!!! Cannot run /sbin/init."
Dne 30.3.2019 v 21:21 Jindrich Fucik napsal(a):
> soubor /etc/ttys na tvém operačním systému existuje?
>
>
> Dne 30.3.2019 v 18:51 Petr Zapadlo napsal(a):
>> Zdravím,
>>
>> potřeboval bych k Nanostation 2 připojit přes seriový port zařízení a
>> mít možnost na nanostation sledovat telemetrii z toho zařízení která
>> přichází po seriovém portu.
>>
>> Mám to rozložené na stole, Nanostation má seriový port i dokonce
>> zapájený hřebínek. takže propojení je dílem okamžiku. Problém je
>> však v tom, že na seriovém portu sedí konsole (getty) a nedaří se mi
>> ho zbavit. Nepotřebuji to zkonfigurovat natrvalo, stačí mi, když se
>> přihlásím, "zabiju getty" a navážu komunikaci se zařízením sedícím
>> na seriovém portu.
>>
>> Zkoušel jsem:
>>
>> - jen tak zabít getty, hned se restartne znovu (pochopitelně)
>>
>> - otevřít /etc/inittab a zakomentovat řádek:
>> "ttyS0::askfirst:/sbin/getty -L ttyS0 9600 vt100", následně init q a
>> kill getty. Opět se potvora zase spustí.
>>
>> - změnit řádek a getty poslat na jiný port - nijak se to neprojeví.
>>
>> Zřejmě je to ještě nějak jinak. Jestli jsem to správně pochopil, tak
>> se konfigurační soubory generují za letu pomocí skriptu linuxrc. Ten
>> je však pouze ro a nemůžu zakomentovat ten řádek co pak spadne do
>> inittabu.
>>
>> Nemám velkou zkušenost s embedded linuxem, takže nevím jak na to.
>>
>> Ví někdo jak na to?
>>
>> Díky /dev/mtdblock2 on / type squashfs (ro)
>> none on /proc type proc (rw)
>> tmpfs on /dev type tmpfs (rw)
>> pts on /dev/pts type devpts (rw)
>> tmpfs on /var type tmpfs (rw)
>>
>>
>> Petr
>>
>>
>>
>> _______________________________________________
>> HW-list mailing list - sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list