만약 내가한다면:
git clone git://git.buildroot.net/buildroot
cd buildroot
git checkout 2016.05
make qemu_x86_defconfig
make BR2_JLEVEL=2
qemu-system-x86_64 -M pc -kernel output/images/bzImage -drive file=output/images/rootfs.ext2,if=virtio,format=raw -append root=/dev/vda -net nic,model=virtio -net user
root
쉘을 사용하려면 먼저 QEMU를 입력해야 합니다 .
buildroot를 건너뛰고 직접 로그인하도록 어떻게 구성합니까?
우분투 16.04에서 테스트되었습니다.
답변1
::respawn:-/bin/sh
를 사용하려면 다음을 포함하도록 BR2_ROOTFS_OVERLAY
게스트를 수정하세요 ./etc/inittab
::respawn:-/bin/sh
기본 양식 행 대신:
console::respawn:/sbin/getty -L console 0 vt100
inittab
output/target/etc/inittab
기본값을 복사하여 빌드한 후 위 줄을 수정할 수 있습니다 .
공부하다가 이걸 발견했어요examples/inittab
Busybox 1_28_3에서이것을 발견하고 시도해 보았더니 효과가 있었습니다. 따라서 이것이 제가 지금까지 찾은 최고의 솔루션입니다.
앞에 대시를 잊지 마세요 -
. 그렇지 않으면 아래 설명처럼 Ctrl+C와 같은 작업 제어 작업이 작동하지 않습니다.
앞의 대시는 -
BusyBox의 init에 의해 마술처럼 구문 분석됩니다.https://github.com/mirror/busybox/blob/1_28_3/init/init.c#L439그리고 후속 명령에 대해 TTY를 설정하십시오.
-
BusyBox는 또한 시작 부분 또는 에 추가됩니다 arg[0]
. 이는 /bin/sh
로그인 셸을 나타내는 것으로 해석되며, 이를 통해 일부 초기화 파일을 가져올 수 있습니다 /etc/profile
. 또한 다음을 살펴보세요.https://stackoverflow.com/a/42291142/895245
console
이것이 기본값이므로 다음은 동일합니다.
console::respawn:-/bin/sh
기본적으로 다른 사용자로 로그인하려면 다음을 사용할 수 있습니다.
::respawn:-/bin/login -f user0
여기 하나 있어요예시 설정.
이전 답변:getty -l
거의 2년여만에 드디어 찾았네요! :-)
를 사용하여 BR2_ROOTFS_OVERLAY
다음 파일을 덮어쓰거나 생성합니다.
/etc/inittab: 에서https://github.com/buildroot/buildroot/blob/2018.02/package/busybox/inittab콘솔 라인을 편집하여 다음을 수행하십시오.
console::respawn:/sbin/getty -n -L -l /loginroot.sh console 0 vt100
/loginroot.sh:
#!/bin/sh
exec /bin/login root
/bin/login
-l
지정하지 않으면 기본 실행 파일이 사용됩니다. 우리가 하는 일은 우리가 지정한 /bin/login
사용자가 호출할 수 있는 실행 파일을 만드는 것뿐입니다 root
.
그러면 init
기본적으로 루트로 로그인이 시도되고, BR2_TARGET_GENERIC_ROOT_PASSWD
기본 비밀번호가 비어 있으므로 자동으로 로그인됩니다( ).
이 기술은 기본적으로 Ubuntu 14.04에 존재 하지만 BusyBox의 구현에는 없는 -a <user>
옵션을 다시 구현합니다.getty
그런 다음 다른 사용자로 로그인하려면 다음을 실행하세요.
/bin/login
이것은예시 설정.
이전 답변:console::respawn:/bin/sh
나는 가지고있다메일링 리스트에 물어보세요토마스 페타조니는 이렇게 대답했습니다.
/etc/inittab
다음을 포함해야 합니다:
console::respawn:/bin/sh
바꾸다:
console::respawn:/sbin/getty -n -L console 0 vt100 # GENERIC_SERIAL
이후 qemu_x86_defconfig
Busybox 시스템 inittab
을 init
사용하고 있습니다 BR2_INIT_BUSYBOX=y
.
그러나 이 접근 방식에는 한 가지 단점이 있습니다. 로그인 후 메시지는 다음과 같습니다.
/bin/sh can't access tty; job control turned off
광고한 대로, 이와 같은 것은 Ctrl+C
아무런 변화를 가져오지 않습니다.