시스템을 시작할 수 없는 오류가 발생했습니다. 해당 SSD에는 Windows 8 및 Debian 8이 있고 HDD에는 다른 Windows 7 및 Ubuntu 14.04가 있습니다(이 오류가 나타날 때 SO를 SSD로 마이그레이션하고 있었습니다).
[ 0.000000] Calgary: detecting Calgary via BIOS EBDA area
[ 0.000000] Calgary: Unable to locate Rio Grande table in EBDA - bailing!
*한조각*
[ 0.000000] WARNING: CPU: 0 PID: 0 at /build/linux-ELRFVQ/linux-3.16.7-ckt11/drivers/iommu/dmar.c:760 warn_invalid_dmar+0x7a/0x8a()
[ 0.000000] Your BIOS is broken; DMAR reported at address fed90000 returns all ones!
BIOS vendor: American Megatrends Inc.; Ver: 1302 ; Product Version: System Version
[ 0.000000] Modules linked in:
[ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 3.16.0-4-amd64 #1 Debian 3.16.7-ckt11-1+deb8u3
[ 0.000000] Hardware name: System manufacturer System Product Name/P7H55-M, BIOS 1302 04/25/2011
[ 0.000000] ffffffff81016785 ffffffff8150b3a5 ffffffff81803e80 ffffffff81067767
[ 0.000000] ffffffff81af301c ffffffff81803ed0 00000000fed90000 0000000000000000
[ 0.000000] ffffffff81803fb0 ffffffff81067814 ffffffff8176edb0 ffffffff00000030
[ 0.000000] Call Trace:
[ 0.000000] [<ffffffff81016785>] ? show_stack+0x5/0x50
[ 0.000000] [<ffffffff8150b3a5>] ? dump_stack+0x41/0x51
[ 0.000000] [<ffffffff81067767>] ? warn_slowpath_common+0x77/0x90
[ 0.000000] [<ffffffff81067814>] ? warn_slowpath_fmt_taint+0x44/0x50
[ 0.000000] [<ffffffff8192f4fa>] ? __early_ioremap+0x167/0x1fa
[ 0.000000] [<ffffffff8192f736>] ? early_ioremap+0xf/0x10
[ 0.000000] [<ffffffff81340ee9>] ? acpi_tb_acquire_table+0x39/0x66
[ 0.000000] [<ffffffff8150c3b3>] ? warn_invalid_dmar+0x7a/0x8a
[ 0.000000] [<ffffffff819499d6>] ? detect_intel_iommu+0xe3/0x16a
[ 0.000000] [<ffffffff8190bdd3>] ? pci_iommu_alloc+0x46/0x67
[ 0.000000] [<ffffffff8191b0d5>] ? mem_init+0x11/0x92
[ 0.000000] [<ffffffff81902e1a>] ? start_kernel+0x23b/0x49d
[ 0.000000] [<ffffffff81902a04>] ? set_init_arg+0x4e/0x4e
[ 0.000000] [<ffffffff81902120>] ? early_idt_handlers+0x120/0x120
[ 0.000000] [<ffffffff8190271f>] ? x86_64_start_kernel+0x14d/0x15c
여기모든 syslog가 포함된 페이스트빈입니다. Windows 7, 8 및 Ubuntu 14.04를 시작할 수 있지만 Debian을 시작하려고 하면 이것이 나타납니다.
GUI를 시작하려고 하면 startx
다음과 같이 표시됩니다.
[ 98.627889] nvidia 0000:01:00.0: irq 48 for MSI/MSI-X
[ 100.211135] traps: x-session-manag[534] trap int3 ip:7f3258e78d30 sp:7ffef7745cf0 error:0
페이스트빈출력 으로 Xorg.0.log
.
답변1
모든 최신 시스템은 가상 메모리를 실제 메모리에 매핑하기 위해 MMU를 사용합니다. 최신 하드웨어에는 다른 하드웨어(예: 그래픽 카드)에서도 이 기능이 있습니다. 이를 IO-MMU라고 합니다.
(보다http://www.cyberciti.biz/tips/wp-content/uploads/2007/09/mmu-vs-iommu-memory.png천 단어의 가치가 있는 그래픽을 위해)
귀하의 경우에는 io-MMU가 내장되어 있지만 부팅 시 제대로 시작되지 않거나 데비안 설치의 드라이버와 작동하지 않는 Nvidia 카드가 있습니다.
이는 다음과 같은 네 가지 솔루션으로 이어집니다.
- 펌웨어를 수정하세요. (그래픽 카드나 마더보드(BIOS/UEFI라고도 함)에 있습니다.
- 드라이버에서 이 문제를 해결하세요.
- 이를 적절하게 설정하고 웜 재부팅 중에 부분적으로 구성된 상태로 유지하는 OS를 부팅하여 이 문제를 해결하십시오.
- 이 손상된 기능을 사용하지 마십시오.
후자는 소프트웨어에서 쉽게 할 수 있는 일이다. 손상 정도에 따라 VT-d(BIOS 펌웨어에서)를 비활성화하거나 커널 매개변수를 통해 비활성화해 보십시오.
커널 매개변수를 설정하려면 이 링크를 참조하세요.https://www.kernel.org/doc/Documentation/kernel-parameters.txt.
원하는 옵션은 iommu=off 또는 Soft인 것 같습니다.
IOMMU 지원 없이 커널을 빌드하려면 .config 파일에서 이러한 값을 확인하고 '이 값을 가지고 놀면서' 어떤 옵션이 적합한지 찾으십시오.
CONFIG_GART_IOMMU=y
CONFIG_CALGARY_IOMMU=y
CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
CONFIG_AMD_IOMMU=y
CONFIG_AMD_IOMMU_STATS=y
CONFIG_IOMMU_HELPER=y
CONFIG_IOMMU_API=y
CONFIG_IOMMU_DEBUG
답변2
BIOS는 이미 최신 버전이었지만 다시 플래시해 보니 이제 모든 것이 잘 작동합니다.
업데이트
문제는 한 번 더 발생합니다.