https://github.com/swarren/u-boot— 나는 이것이 있고 마침내 Pi에서 Raspbian이 아닌 다른 것을 실행할 수 있도록 바이너리를 가져와야 합니다.
지침은 다음과 같습니다: ..derp 디렉토리로 "cd"합니다. "rpi_2_defconfig 만들기" "모두 만들기"
그러나 사물의 전개는 이렇다---
[*userredacted*@*machineredacted* u-boot-tegra_dev] $ make rpi_2_defconfig
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/zconf.lex.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
#
# configuration written to .config
#
[user/machineredacted* u-boot-tegra_dev] $ make all
scripts/kconfig/conf --silentoldconfig Kconfig
CHK include/config.h
UPD include/config.h
GEN include/autoconf.mk
GEN include/autoconf.mk.dep
CHK include/config/uboot.release
UPD include/config/uboot.release
CHK include/generated/version_autogenerated.h
UPD include/generated/version_autogenerated.h
CHK include/generated/timestamp_autogenerated.h
UPD include/generated/timestamp_autogenerated.h
CC lib/asm-offsets.s
lib/asm-offsets.c:1:0: error: bad value (armv5) for -march= switch
/*
^
Kbuild:43: recipe for target 'lib/asm-offsets.s' failed
make[1]: *** [lib/asm-offsets.s] Error 1
Makefile:1216: recipe for target 'prepare0' failed
make: *** [prepare0] Error 2
건너뛰게 하려면 어떻게 해야 하나요?케어armv5와 관련된 것이 있나요?
아니면 프로세스가 완료될 수 있도록 이를 만족시키는 간단한 태그가 있을까요?
제가 아는 한, 작성자가 그런 정의를 내리지 않은 버그입니다.
편집 --- 약간의 이야기입니다. NOOBS 및 berryboot를 제외하고는 부팅할 것이 전혀 없습니다. bootcode.bin은 Arch 파티션(500MB fat16, 부팅 및 lba 플래그 포함, 루트용 두 번째 ext4, 파티션으로 단순 추출) 또는 공식 Ubuntu MATE 이미지에 대해 전혀 읽히지 않습니다. berryboot에 관해 말하자면, 목록에 있는 모든 운영 체제(Ubuntu 또는 Arch 제외)는 시도하자마자 즉시 실패하며 sha 체크섬 불일치에 대해 불평합니다. SE에 Pi 부분이 있다는 것을 깨달았습니다. 그러나 다른 모든 것이 실패했기 때문에 NOOBS(더 이상 Raspbian 이외의 설치를 제공하지 않음)를 사용하라고 제안할 수도 있습니다.
그래서 저는 부팅을 제어하고 원하는 것을 추가할 수 있도록 u-boot를 원합니다. 누구든지 저를 위해 컴파일해 주실 의향이 있다면 (또는 이 경우나 유사한 경우에 "make"에 문제가 있는 다른 사람) 정말 감사하겠습니다 <3
그러나 이 질문에 답해보자. ..제목과 정확히 일치하지 않을 수도 있습니다.
프로그램을 완성하고 u-boot 소스 코드에서 바이너리를 마무리 및 구체화하려면 이 프로세스를 어떻게 편집해야 합니까?
답변1
-march=armv5
"arch/arm/Makefile"의 옵션을 주석 처리해 보았습니다.
arch-$(CONFIG_CPU_V7) =$(call cc-option, -march=armv7-a, -march=armv5)
하지만 이렇게 하면 armv5 어셈블리에 작성된 메모리 장벽으로 사용되는 지원되지 않는 명령 오류가 발생합니다. 이러한 명령( mcr
)은 lib/asm_offset.c
armv7 어셈블리에서 다시 작성해야 하거나 v7에서는 필요하지 않을 수 있습니다. 내 생각에 이 빌드는 이전 버전의 gcc-arm-gnueabi
컴파일러 용인 것 같습니다 . 명령줄에서 u-boot를 빌드하는 데 사용되는 버전을 설정하는 것이 가능하다면 확실히 작동할 것입니다(옵션이 사용 가능한지 모르기 때문에 이것은 순수한 추측입니다).