나는 최근에 내장된 셸이 있는 BusyBox v1.18.2를 사용하여 STMicroElectronics Base Distribution에 액세스했습니다.
STLinux 문서에서 내 문제에 대한 모든 정보를 읽고 모든 단계를 따랐습니다.
디렉터리가 없어서 /home/STLinux
방금 새 디렉터리를 만들었습니다.
# Step 2
[root@stlinux]# cp -r /opt/STM/STLinux-X.X/devkit/sources/kernel/linux-sh4/
BusyBox v1.18.2 (2011-07-13 20:52:52 CST) multi-call binary.
Usage: cp [OPTIONS] SOURCE DEST
Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY
Options:
-a Same as -dpR
-R,-r Recurse
-d,-P Preserve symlinks (default if -R)
-L Follow all symlinks
-H Follow symlinks on command line
-p Preserve file attributes if possible
-f Overwrite
-i Prompt before overwrite
-l,-s Create (sym)links
# Step 3
[root@stlinux]#cd /home/STLinux/linux-sh4
-sh: cd: can't cd to /home/STLinux/linux-sh4
# Step 4
[root@stlinux]#make ARCH=sh CROSS_COMPILE=sh4-linux- vmlinux
-sh: make: not found
# Step 5
[root@stlinux]#make ARCH=sh CROSS_COMPILE=sh4-linux- help | grep ^mb
-sh: make: not found
# All other steps were associated with make.
# Step 9
[root@stlinux]#find . | grep "\.ko$"
[root@stlinux]#
# Step 10
[root@stlinux]# make ARCH=sh CROSS_COMPILE=sh4-linux- vmlinux
-sh: make: not found
이러한 툴킷 없이 커널을 빌드하는 것이 가능합니까? 그렇지 않다면 패키지 관리자 없이 어떻게 설치할 수 있나요?
답변1
불행하게도 STLinux에서는 STLinux 커널을 컴파일할 수 없습니다. 적어도 그러지는 말아야 합니다. 리소스가 제한된 임베디드 장치입니다.
여러분이 해야 할 일은 다른(인텔) 컴퓨터에 Linux를 설치하거나 커널을 크로스 컴파일한 후 대상 컴퓨터에 복사하는 것뿐입니다.
그런데 크로스 컴파일은 다양한 아키텍처의 머신에 바이너리/도구를 구축하는 행위입니다.
게시물의 CROSS_COMPILE 지시문을 보면 여러분이 따르고 있는 튜토리얼이 장치에서 직접 사용하기 위해 작성되지 않았음이 분명합니다.
예를 들어 저는 Debian Jessie에서 ARM NetBSD 툴체인, 바이너리, 사용자 정의 커널을 크로스 컴파일합니다. 툴킷을 빌드하려면 기본 개발 도구를 사용해야 합니다.
그 후 STLinux에는 툴킷에 몇 가지 추가 사항이 있는 것으로 보입니다. 그러면 크로스 컴파일러 툴킷의 새로운 컴파일러와 환경을 사용하여 기본 바이너리를 생성하게 됩니다.
또 다른 관련 스레드는 다음과 같습니다.Linux DVR에 다른 배포판을 설치하는 방법
또한, 나는 당신이 무엇을 하고 있는지도 모른 채 새 커널을 성공적으로 컴파일했을 수도 있다고 생각합니다. ARM/Mips 아키텍처에는 표준 Intel과 매우 다른 몇 가지 결함이 있으며 이러한 중국 장치의 코어는 종종 심하게 해킹당합니다.
하지만 귀하의 질문에 대해 매우 짧은 답변을 드리자면 아니요, 귀하의 장치에서 새 커널을 컴파일할 수 없습니다. RAM과 디스크는 개발 요구에 따라 매우 제한되는 경우가 많습니다.