즉, 다음 명령이 실패하는 경우가 있습니다.
$ sudo reboot
컴퓨터가 멈춰 다시 시작해야 하기 전 터미널에 표시된 마지막 메시지:
Restarting system.
다음 시작 매개변수를 시도했습니다 reboot=
(원천) 성공하지 못했습니다:
- 따뜻한
- 추운
- 세 번
- 통신 인터페이스
- 힘
- EFI
해당 페이지의 조언에 따라 다음 명령을 실행하여 변경 사항이 적용되었는지 확인했습니다.
$ cat /proc/cmdline
도움이 된다면 다음 커널 모듈 목록을 참조하세요.
$ lsmod
Module Size Used by
ppp_generic 16680 0
slhc 4055 1 ppp_generic
ath9k_htc 50685 0
mac80211 231186 1 ath9k_htc
ath9k_common 1720 1 ath9k_htc
ath9k_hw 338115 2 ath9k_htc,ath9k_common
ath 13793 3 ath9k_htc,ath9k_common,ath9k_hw
cfg80211 158343 3 ath9k_htc,mac80211,ath
compat 29364 5 ath9k_htc,mac80211,ath9k_common,ath9k_hw,cfg80211
ARM 시스템에서 맞춤형 Linux를 실행 중입니다.2.6.35. 게다가 X 서버가 설치되어 있지 않아 데스크탑 환경도 없습니다.
답변1
여러 가지 방법이 있습니다:
sudo 다시 시작
sudo 초기화 6
sudo /sbin/재부팅
시도해 볼 수도 있습니다.
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger
freedesktop 호환 세션 관리자가 있는 경우 DBus를 사용하여 X 세션 내에서 다시 시작을 호출할 수 있습니다. 명령은 다음과 같습니다.
dbus-send --system --dest=org.freedesktop.Hal --type=method_call \
--print-reply /org/freedesktop/Hal/devices/computer \
org.freedesktop.Hal.Device.SystemPowerManagement.Reboot int32:0
(이것은 아마도 불필요할 것입니다; 그것은 나에게 효과적입니다). 쉘 스크립트에서 사용하고 있습니다. 내에서 실행할 필요는 없지만 root
X 세션 내(예: 터미널)에서 실행해야 합니다. 이 주제에 대한 자세한 내용은 다음에서 확인할 수 있습니다.https://wiki.ubuntu.com/DebuggingGNOMEPowerManager
last reboot
여전히 문제가 있는 경우 Linux에서 로그 파일이 생성된 이후 모든 재부팅에 대한 로그를 표시하는 이 명령의 출력을 표시하고 다음을 입력합니다.
#마지막 재시작
내 생각엔 이 문제 때문에 문제가 생길 수도 있을 것 같아허점이허점. 다음과 같이 커널을 업그레이드해 보십시오:
Debian 또는 Ubuntu Linux의 커널 업그레이드
apt-get
명령을 사용하십시오 . 먼저 커널 버전을 찾으세요.
$ uname -r
다음으로 사용 가능한 커널 이미지를 찾습니다.
$ apt-cache search linux-image
이제 버전 번호를 명시적으로 지정하여 커널을 설치합니다.
# apt-get install linux-image-x.x.x-xx
또는
$ sudo apt-get install linux-image-x.x.x-xx
고쳐 쓰다:
reboot=pci
이 작업을 수행한 후 커널 부팅 플래그를 설정해 볼 수도 있습니다 . 변경 사항을 영구적으로 적용하려면 줄 rebooot=pci
에 플래그를 추가하세요 . 자세한 내용은 여기를 확인하세요.GRUB_CMDLINE_LINUX
/etc/default/grub
협회이협회
답변2
그것가능한이제 과감히 뛰어들어 커널 디버깅을 배워야 할 때입니다.
먼저, gdb-remote와 호환되는 JTAG 프로브를 찾으세요. ARM을 사용하고 있으므로 많은 옵션이 있어야 합니다. 예를 참조하세요.http://openocd.sourceforge.net/doc/html/Debug-Adapter-Hardware.html
둘째, 커널 디버깅에 "남자답게" 작업하는 방법이 있습니다. Google은 여러분의 친구이지만 이것은 좋은 초기 개요와 몇 가지 검색어를 제공합니다.http://www.elinux.org/DebuggingTheLinuxKernelUsingGdb
아마도 흡수해야 할 새로운 개념이 많이 있을 것입니다. 이 비디오는 프로세스에 대한 높은 수준의 보기를 제공합니다.http://www.youtube.com/watch?v=q07VvWS1qBc
http://www.wikihow.com/Solve-a-Problem어려운 문제 해결에 대한 훌륭한 조언을 제공합니다. GL!
답변3
탐구/검토할 몇 가지 사항은 다음과 같습니다. 나는ARM Tegra에 대한 커밋 로그 커널 버전 2.6.39에 대한 커밋 로그:
Simon Glass (1):
ARM: tegra: 재부팅 시 중단 문제 수정
내 생각에 이것은 Simon이 제출한 다음과 같은 패치인 것 같습니다.[패치 7/7] ARM: tegra: 재부팅 시 중단 문제 수정,참조:
From: Simon Glass <sjg@...>
We cannot use writel() here since the resulting wmb() calls l2x0_cache_sync()
which uses a spinlock and L1 cache may be off at this point.
Signed-off-by: Simon Glass <sjg@...>
Signed-off-by: Olof Johansson <olof@...>
---
arch/arm/mach-tegra/common.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/arch/arm/mach-tegra/common.c b/arch/arm/mach-tegra/common.c
index 34559d1..b1ecf60 100644
--- a/arch/arm/mach-tegra/common.c
+++ b/arch/arm/mach-tegra/common.c
<at> <at> -41,7 +41,7 <at> <at> void tegra_assert_system_reset(char mode, const char *cmd)
reg = readl(reset);
reg |= 0x04;
- writel(reg, reset);
+ writel_relaxed(reg, reset);
}
static __initdata struct tegra_clk_init_table common_clk_init_table[] = {
--
내 생각에는 이 변경 사항을 2.6.35로 백포트하거나 최신 커널로 업그레이드해야 할 것 같습니다.