Merge pull request #273 from ncopa/init-console

add console options from boot cmdline to inittab
This commit is contained in:
Justin Cormack 2016-07-15 11:42:00 +01:00 committed by GitHub
commit 092ec97a88
4 changed files with 39 additions and 23 deletions

View File

@ -1,13 +1,12 @@
all: initrd.img.gz mobylinux-efi.iso all: initrd.img.gz mobylinux-efi.iso
ETCFILES=etc/issue etc/motd etc/network/interfaces ETCFILES=etc/issue etc/motd etc/network/interfaces
ETCFILES+=etc/securetty ETCFILES+=etc/securetty etc/inittab
initrd.img: Dockerfile mkinitrd.sh $(ETCFILES) initrd.img: Dockerfile mkinitrd.sh init $(ETCFILES)
rm -f initrd.img rm -f initrd.img
$(MAKE) -C packages $(MAKE) -C packages
$(MAKE) -C kernel $(MAKE) -C kernel
cp inittab.x86_64 etc/inittab
docker-compose build moby docker-compose build moby
docker-compose run --rm -T moby /bin/mkinitrd.sh docker-compose run --rm -T moby /bin/mkinitrd.sh

View File

@ -4,11 +4,9 @@
::sysinit:/sbin/openrc boot ::sysinit:/sbin/openrc boot
::wait:/sbin/openrc default ::wait:/sbin/openrc default
# Put a getty on the serial port
ttyAMA0::respawn:/sbin/getty -L ttyAMA0 115200 vt100
# Stuff to do for the 3-finger salute # Stuff to do for the 3-finger salute
::ctrlaltdel:/sbin/reboot ::ctrlaltdel:/sbin/reboot
# Stuff to do before rebooting # Stuff to do before rebooting
::shutdown:/sbin/rc shutdown ::shutdown:/sbin/rc shutdown

View File

@ -1,7 +1,43 @@
#!/bin/sh #!/bin/sh
setup_console() {
tty=${1%,*}
speed=${1#*,}
inittab="$2"
securetty="$3"
line=
term="linux"
[ "$speed" = "$1" ] && speed=115200
case "$tty" in
ttyS*|ttyAMA*|ttyUSB*|ttyMFD*)
line="-L"
term="vt100"
;;
tty0)
# skip current console
return 0
;;
esac
# skip consoles already in inittab
grep -q "^$tty:" "$inittab" && return
echo "$tty::respawn:/sbin/getty $line $speed $tty $term" >> "$inittab"
if ! grep -q -w "$tty" "$securetty"; then
echo "$tty" >> "$securetty"
fi
}
/bin/mount -t tmpfs tmpfs /mnt /bin/mount -t tmpfs tmpfs /mnt
/bin/cp -a / /mnt 2>/dev/null /bin/cp -a / /mnt 2>/dev/null
/bin/mount -t proc -o noexec,nosuid,nodev proc /proc
for opt in $(cat /proc/cmdline); do
case "$opt" in
console=*)
setup_console ${opt#console=} /mnt/etc/inittab /mnt/etc/securetty;;
esac
done
exec /bin/busybox switch_root /mnt /sbin/init exec /bin/busybox switch_root /mnt /sbin/init

View File

@ -1,17 +0,0 @@
# /etc/inittab
::sysinit:/sbin/openrc sysinit
::sysinit:/sbin/openrc boot
::wait:/sbin/openrc default
# Put a getty on the serial port
ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100
# Put a getty on the console
tty1::respawn:/sbin/getty 115200 tty1 linux
# Stuff to do for the 3-finger salute
::ctrlaltdel:/sbin/reboot
# Stuff to do before rebooting
::shutdown:/sbin/rc shutdown