
- 2020/02/22 21:37
- rousalome.egloos.com/10011640
- 덧글수 : 52

핑백
Linux Kernel(4.19) Hacks : [리눅스] 라즈베리 파이 실습을 위한 준비물 2020-02-22 21:45:19 #
... 버전과 커널 소스 버전 * 라즈비안 커널 소스코드 내려받기 * 라즈비안 리눅스 커널 빌드하고 설치하기 * 전처리 코드 생성 * 리눅스 커널 소스의 구조& ... more
Linux Kernel(4.19) Hacks : [라즈베리 파이] 설치 - 라즈비안 이미지를 다운로드하고 SD카드를 포멧하기 2020-02-22 21:45:40 #
... 버전과 커널 소스 버전 * 라즈비안 커널 소스코드 내려받기 * 라즈비안 리눅스 커널 빌드하고 설치하기 * 전처리 코드 생성 * 리눅스 커널 소스의 구조& ... more
Linux Kernel(4.19) Hacks : [라즈베리 파이] 설치 - 라즈비안 이미지를 SD카드에 굽기 2020-02-22 21:45:55 #
... 버전과 커널 소스 버전 * 라즈비안 커널 소스코드 내려받기 * 라즈비안 리눅스 커널 빌드하고 설치하기 * 전처리 코드 생성 * 리눅스 커널 소스의 구조& ... more
Linux Kernel(4.19) Hacks : [라즈베리파이] 라즈베리 파이 사용 시 주의사항 2020-02-22 21:48:14 #
... 버전과 커널 소스 버전 * 라즈비안 커널 소스코드 내려받기 * 라즈비안 리눅스 커널 빌드하고 설치하기 * 전처리 코드 생성 * 리눅스 커널 소스의 구조& ... more
Linux Kernel(4.19) Hacks : [라즈베리파이] 라즈비안: objdump 바이너리 유틸리티 2020-02-22 21:48:18 #
... 버전과 커널 소스 버전 * 라즈비안 커널 소스코드 내려받기 * 라즈비안 리눅스 커널 빌드하고 설치하기 * 전처리 코드 생성 * 리눅스 커널 소스의 구조& ... more
Linux Kernel(4.19) Hacks : [라즈베리파이] 라즈비안: 리눅스 커널 소스의 구조 2020-02-22 21:48:19 #
... 버전과 커널 소스 버전 * 라즈비안 커널 소스코드 내려받기 * 라즈비안 리눅스 커널 빌드하고 설치하기 * 전처리 코드 생성 * 리눅스 커널 소스의 구조& ... more
Linux Kernel(4.19) Hacks : [라즈베리파이] 라즈비안(Raspbian) 리눅스 커널(LinuxKernel) 전처리 파일 생성하기 2020-02-22 21:48:23 #
... 버전과 커널 소스 버전 * 라즈비안 커널 소스코드 내려받기 * 라즈비안 리눅스 커널 빌드하고 설치하기 * 전처리 코드 생성 * 리눅스 커널 소스의 구조& ... more
Linux Kernel(4.19) Hacks : [라즈베리 파이] 라즈비안 커널 소스코드 내려받기 2020-02-22 21:48:27 #
... 버전과 커널 소스 버전 * 라즈비안 커널 소스코드 내려받기 * 라즈비안 리눅스 커널 빌드하고 설치하기 * 전처리 코드 생성 * 리눅스 커널 소스의 구조& ... more
Linux Kernel(4.19) Hacks : [라즈베리파이] 라즈비안 버전과 커널 소스 버전 2020-02-22 21:48:30 #
... 버전과 커널 소스 버전 * 라즈비안 커널 소스코드 내려받기 * 라즈비안 리눅스 커널 빌드하고 설치하기 * 전처리 코드 생성 * 리눅스 커널 소스의 구조& ... more
Linux Kernel(4.19) Hacks : [라즈베리파이] 라즈베리 파이에서 언어 설정 따라해보기 2020-02-22 21:48:33 #
... 버전과 커널 소스 버전 * 라즈비안 커널 소스코드 내려받기 * 라즈비안 리눅스 커널 빌드하고 설치하기 * 전처리 코드 생성 * 리눅스 커널 소스의 구조& ... more
Linux Kernel(4.19) Hacks : [라즈베리파이] 라즈베리 파이 초기 설정하기 2020-02-22 21:48:36 #
... 버전과 커널 소스 버전 * 라즈비안 커널 소스코드 내려받기 * 라즈비안 리눅스 커널 빌드하고 설치하기 * 전처리 코드 생성 * 리눅스 커널 소스의 구조& ... more
Linux Kernel(4.19) Hacks : [라즈베리 파이] 라즈베리 파이를 부팅시키기 2020-02-22 21:48:39 #
... 버전과 커널 소스 버전 * 라즈비안 커널 소스코드 내려받기 * 라즈비안 리눅스 커널 빌드하고 설치하기 * 전처리 코드 생성 * 리눅스 커널 소스의 구조& ... more
Linux Kernel(4.19) Hacks : [리눅스] 라즈베리 파이(라즈베리파이)란? 2020-02-22 21:48:45 #
... 버전과 커널 소스 버전 * 라즈비안 커널 소스코드 내려받기 * 라즈비안 리눅스 커널 빌드하고 설치하기 * 전처리 코드 생성 * 리눅스 커널 소스의 구조& ... more
Linux Kernel(4.19) Hacks : [리눅스] 라즈베리파이: 커널 모듈(kernel module) 드라이버 설치 및 빌드해보기 2020-06-14 18:41:09 #
... 라이버를 모듈타입으로 빌드할 수 있습니다. 즉, Makefile와 디바이스 드라이버 소스 코드만 있으면 빌드를 할 수 있다는 이야기입니다. [라즈베리 파이] 라즈비안 리눅스 커널 빌드하고 설치하기 이번에는 라즈베리 파이에서 이 내용을 확인해봅시다. 먼저 '/lib/modules/' 폴더로 이동합시다. root@ras ... more
덧글
-
질문 2020/05/27 03:33 # 삭제 답글
build_rpi_kernel.sh에서 커널 코드를 수정하라 하셨는데 어디를 어떻게 수정해야 하나요??? 설명이 붕 뜬거같습니다 -
AustinKim 2020/05/27 09:48 #
'여기서 한 가지 주의해야 할 점이 있는데, 컴파일 에러를 만나면 반드시 리눅스 커널 코드를 수정한 다음 다시 커널 빌드를 해야 합니다' 부분을 읽고 의견을 주신 것 같은데요.
위에서 든 예제에서는 아래 코드를 추가해 컴파일 에러가 발생했으니,
#error "invoke compile error inside __schdedule"
위 코드 한 줄을 삭제하고 build_rpi_kernel.sh 빌드 스크립트를 실행해 커널을 빌드하면 컴파일 에러가 사라질 것입니다.
추가로 궁금한 점이 있으면 댓글로 알려주세요.
Thanks,
Austin Kim -
질문 2020/05/28 01:04 # 삭제 답글
제가 받은 파일에서 core.c 파일엔 #error 부분이 없습니다. 그런데도 불구하고 build_rpi .sh 파일이 빌드가 안됩니다. 첫장부터 진도를 못나가네요 ㅠ -
질문 2020/05/28 01:48 # 삭제 답글
make[1]: 디렉터리 '/home/pi/rpi_kernel_src/out' 들어감
GEN ./Makefile
#
# configuration written to .config
#
make[1]: 디렉터리 '/home/pi/rpi_kernel_src/out' 나감
kernel build
make[1]: 디렉터리 '/home/pi/rpi_kernel_src/out' 들어감
GEN ./Makefile
scripts/kconfig/conf --syncconfig Kconfig
GEN ./Makefile
UPD include/config/kernel.release
Using /home/pi/rpi_kernel_src/linux as source for kernel
/home/pi/rpi_kernel_src/linux is not clean, please run 'make mrproper'
in the '/home/pi/rpi_kernel_src/linux' directory.
make[1]: *** [/home/pi/rpi_kernel_src/linux/Makefile:1085: prepare3] 오류 1
make[1]: *** 끝나지 않은 작업을 기다리고 있습니다....
make[1]: 디렉터리 '/home/pi/rpi_kernel_src/out' 나감
make: *** [Makefile:146: sub-make] 오류 2
제 에러 출력입니다. 대체 뭐가 문제인걸까요? -
질문 2020/05/28 01:48 # 삭제 답글
너무 당연한 말이지만 코드는 털끝만큼도 건들지 않았습니다 -
질문 2020/05/28 02:00 # 삭제 답글
make -j4 zImage modules dtbs
sudo make modules_install
sudo cp arch/arm/boot/dts/*.dtb /boot/
sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
sudo cp arch/arm/boot/zImage /boot/$KERNEL.img
이 명령어는 linux 디렉토리내에서,
sh파일들 실행은 그 상위인 rpi_kernel_src에서 하는거 맞나요? 명확하게 와닿지가 않네요. 출판사 깃허브가봐도 마찬가지고;;
질문 많이해서 죄송합니다 -
AustinKim 2020/05/28 07:15 #
rpi_kernel_src 폴더에서 라즈비안 리눅스 커널 소스를 내려받으면 linux 폴더가 생길 겁니다.
linux 바로 상위 폴더에서 다음과 같은 셸 스크립트를 실행하면 됩니다.
root@raspberrypi:/home/pi/rpi_kernel_src# ./build_rpi_kernel.sh
root@raspberrypi:/home/pi/rpi_kernel_src# ./install_RPi_kernel_img.sh
그래도 에러가 생기면 다음과 같이 해보시면 됩니다.
1. 아래 디렉터리 이동
root@raspberrypi:/home/pi/rpi_kernel_src/linux
root@raspberrypi:/home/pi/rpi_kernel_src/linux# git clean -xdf
2. out 디렉터리를 삭제
root@raspberrypi:/home/pi/rpi_kernel_src/out
3. 'root@raspberrypi:/home/pi/rpi_kernel_src' 폴더에 build_rpi_kernel.sh 스크립트를 복사한 후 실행
root@raspberrypi:/home/pi/rpi_kernel_src# ./build_rpi_kernel.sh
그래도 에러가 생기면 다시 라즈비안 커널 소스를 내려받고 빌드해보시길 권장드립니다. -
AustinKim 2020/05/28 07:16 # 답글
rpi_kernel_src 폴더에서 라즈비안 리눅스 커널 소스를 내려받으면 linux 폴더가 생길 겁니다.
linux 바로 상위 폴더에서 다음과 같은 셸 스크립트를 실행하면 됩니다.
root@raspberrypi:/home/pi/rpi_kernel_src# ./build_rpi_kernel.sh
root@raspberrypi:/home/pi/rpi_kernel_src# ./install_RPi_kernel_img.sh
그래도 에러가 생기면 다음과 같이 해보시면 됩니다.
1. 아래 디렉터리 이동
root@raspberrypi:/home/pi/rpi_kernel_src/linux
root@raspberrypi:/home/pi/rpi_kernel_src/linux# git clean -xdf
2. out 디렉터리를 삭제
root@raspberrypi:/home/pi/rpi_kernel_src/out
3. 'root@raspberrypi:/home/pi/rpi_kernel_src' 폴더에 build_rpi_kernel.sh 스크립트를 복사한 후 실행
root@raspberrypi:/home/pi/rpi_kernel_src# ./build_rpi_kernel.sh
그래도 에러가 생기면 다시 라즈비안 커널 소스를 내려받고 빌드해보시길 권장드립니다. -
진돗개 2020/07/03 11:18 # 삭제 답글
- sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
해당 README파일이 없어서 진행이 안됩니다.
처음부터 싹 커널소스 다운받고 빌드 다시시작해도 overlays폴더에 README파일이 생성이 안되네요.
그래서 - sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/ 명령 건너뛰고 커널 설치했어요.
앞으로 실습 진행하는데 문제 있을까요? -
AustinKim 2020/07/03 11:30 #
그대로 진행하셔도 무방합니다.
참고로, 아래 파일은 텍스트 포멧의 가이드 문서입니다.
https://github.com/raspberrypi/linux/blob/rpi-4.9.y/arch/arm/boot/dts/overlays/README
라즈비안 커널의 빌드 & 설치 명령어는 업데이트될 수 있으니 아래 링크 참고하세요.
https://www.raspberrypi.org/documentation/linux/kernel/building.md
make -j4 zImage modules dtbs
sudo make modules_install
sudo cp arch/arm/boot/dts/*.dtb /boot/
sudo cp arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
sudo cp arch/arm/boot/dts/overlays/README /boot/overlays/
sudo cp arch/arm/boot/zImage /boot/$KERNEL.img -
2020/07/03 11:30 # 답글
-
진돗개 2020/07/03 11:51 # 삭제 답글
답변 감사합니다. 책 내용 정말 좋아요 감사합니다 -
AustinKim 2020/07/03 13:26 #
감사합니다.
책이 리눅스 개발에 많은 도움이 됐으면 좋겠습니다. -
2020/07/03 13:26 # 답글
-
깨알같은 얼음의신 2020/08/05 18:10 # 답글
안녕하세요 개발자님! 개발자님의 책으로 잘 배우고있는 학생입니다.
커널을 빌드하는 과정에서 에러가 났는데, 에러가 난 파일을 열어보아도 수정할 에러문이 보이지않아 문의드립니다.
생성된 에러 로그.txt파일은 아래와 같습니다.
1 make[1]: Entering directory '/home/pi/rpi_kernel_src/out'
2 GEN ./Makefile
3 YACC scripts/kconfig/zconf.tab.c
4 /bin/sh: 1: bison: not found
5 LEX scripts/kconfig/zconf.lex.c
6 make[3]: *** [scripts/Makefile.lib:196: scripts/kconfig/zconf.tab.c] Error 127
7 make[3]: *** Waiting for unfinished jobs....
8 /bin/sh: 1: flex: not found
9 make[3]: *** [scripts/Makefile.lib:188: scripts/kconfig/zconf.lex.c] Error 127
10 make[2]: *** [/home/pi/rpi_kernel_src/linux/Makefile:534: syncconfig] Error 2
11 make[1]: *** [/home/pi/rpi_kernel_src/linux/Makefile:633: include/config/auto.conf.cmd] Error 2
12 make[1]: Leaving directory '/home/pi/rpi_kernel_src/out'
13 make: *** [Makefile:146: sub-make] Error 2 -
AustinKim 2020/08/05 21:22 #
빌드 로그를 보니 'bison' 'flex'가 설치가 안 된 듯 합니다.
아래 명령어를 입력하시고 커널 빌드를 해보시겠어요?
$ apt-get update
$ apt-get upgrade
$ apt-get install git bc bison flex libssl-dev
참고로 빌드하시기 전에 이미 생성된 out 디렉터리는 삭제해주세요.
root@raspberrypi:/home/pi/rpi_kernel_src# rm -rf out
감사합니다. -
2020/08/05 21:22 # 답글
-
2020/08/06 12:08 #
-
rex 2020/08/10 17:00 # 삭제 답글
local build 에 시간이 엄청 오래 걸리네요. cross compile 해도 되겠죠? -
AustinKim 2020/08/10 17:22 #
라즈베리 파이 로컬 빌드는 가장 쉽게 빌드하는 차원으로 소개한 것입니다.
크로스 컴파일 방법에 익숙하시면 크로스 컴파일 빌드 방법을 권장드립니다.
감사합니다. -
2020/08/10 17:22 # 답글
-
미운오리 2020/08/16 21:49 # 삭제 답글
안녕하세요. 빌드 과정에 이렇게 에러가 나는데 어떻게 고쳐야 할까요.
ld: kernel/debug/kdb/kdb_main.o: in function `kdb_init':
kdb_main.c:(.init.text+0x70): undefined reference to `kdb_cmds'
ld: kdb_main.c:(.init.text+0x78): undefined reference to `kdb_cmds'
make: *** [Makefile:1038: vmlinux] Error 1 -
AustinKim 2020/08/16 22:13 #
소스를 수정하지 않고 빌드하는 과정에서 이런 에러를 만났다면,
커널 빌드 환경을 점검할 필요가 있습니다.
아래와 같은 명령어를 입력하신 후;
$ apt-get update
$ apt-get upgrade
이미 생성된 out 디렉터리는 삭제하신 다음, 다시 커널을 빌드해시길 권장드립니다.
root@raspberrypi:/home/pi/rpi_kernel_src# rm -rf out -
2020/08/16 22:13 # 답글
-
조용한 에스키모 2020/09/30 14:32 # 답글
빌드를 에러 없이 정상적으로 하고 설치 스크립트로 설치하는데 cp : cannot stat.... : No such file or directory라는 문구가 나오면서 설치가 되지 않습닏다.
실제 복사하는 폴더에 가봐도 옮길 dtb 파일이 없습니다. 어떻게 설치를 해야 하는건지 공식사이트 가봐도 명령문만 있지 잘 모르겠네요.
도움 주시면 감사하겠습니다 -
AustinKim 2020/09/30 15:54 #
실행하신 명령어를 포함한 전체 출력 메세지를 공유해주세요. 감사합니다. -
조용한 에스키모 2020/09/30 16:37 #
책에서 써주신대로 아래 설치 스크립트를 아래와 같이 rpi_kernel_src 폴더에서 실행했습니다.
#!/bin/bash
KERNEL_TOP_PATH="$( cd "$(dirname "$0")" ; pwd -P )"
OUTPUT="$KERNEL_TOP_PATH/out"
echo "$OUTPUT"
cd linux
make O=$OUTPUT modules_install
cp $OUTPUT/arch/arm/boot/dts/*.dtb /boot/
cp $OUTPUT/arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
cp $OUTPUT/arch/arm/boot/dts/overlays/README /boot/overlays/
cp $OUTPUT/arch/arm/boot/zImage /boot/kernel7.img
실행하면 나오는 메시지가 긴데 붙여보겠습니다.
/home/pi/rpi_kernel_src/out
make[1]: Entering directory '/home/pi/rpi_kernel_src/out'
INSTALL arch/arm/crypto/aes-arm-bs.ko
cp: cannot stat 'arch/arm/crypto/aes-arm-bs.ko': No such file or directory
INSTALL arch/arm/crypto/aes-arm.ko
cp: cannot stat 'arch/arm/crypto/aes-arm.ko': No such file or directory
INSTALL arch/arm/crypto/sha1-arm-neon.ko
cp: cannot stat 'arch/arm/crypto/sha1-arm-neon.ko': No such file or directory
INSTALL arch/arm/crypto/sha1-arm.ko
cp: cannot stat 'arch/arm/crypto/sha1-arm.ko': No such file or directory
INSTALL fs/9p/9p.ko
cp: cannot stat 'fs/9p/9p.ko': No such file or directory
INSTALL fs/binfmt_misc.ko
cp: cannot stat 'fs/binfmt_misc.ko': No such file or directory
INSTALL fs/btrfs/btrfs.ko
cp: cannot stat 'fs/btrfs/btrfs.ko': No such file or directory
INSTALL fs/cifs/cifs.ko
cp: cannot stat 'fs/cifs/cifs.ko': No such file or directory
INSTALL fs/dlm/dlm.ko
cp: cannot stat 'fs/dlm/dlm.ko': No such file or directory
INSTALL fs/ecryptfs/ecryptfs.ko
cp: cannot stat 'fs/ecryptfs/ecryptfs.ko': No such file or directory
INSTALL fs/fuse/cuse.ko
cp: cannot stat 'fs/fuse/cuse.ko': No such file or directory
INSTALL fs/fuse/fuse.ko
cp: cannot stat 'fs/fuse/fuse.ko': No such file or directory
INSTALL fs/gfs2/gfs2.ko
cp: cannot stat 'fs/gfs2/gfs2.ko': No such file or directory
INSTALL fs/hfs/hfs.ko
cp: cannot stat 'fs/hfs/hfs.ko': No such file or directory
INSTALL fs/hfsplus/hfsplus.ko
cp: cannot stat 'fs/hfsplus/hfsplus.ko': No such file or directory
INSTALL fs/isofs/isofs.ko
cp: cannot stat 'fs/isofs/isofs.ko': No such file or directory
INSTALL fs/jffs2/jffs2.ko
cp: cannot stat 'fs/jffs2/jffs2.ko': No such file or directory
INSTALL fs/jfs/jfs.ko
cp: cannot stat 'fs/jfs/jfs.ko': No such file or directory
INSTALL fs/nfs/blocklayout/blocklayoutdriver.ko
cp: cannot stat 'fs/nfs/blocklayout/blocklayoutdriver.ko': No such file or directory
INSTALL fs/nfs/flexfilelayout/nfs_layout_flexfiles.ko
cp: cannot stat 'fs/nfs/flexfilelayout/nfs_layout_flexfiles.ko': No such file or directory
INSTALL fs/nfsd/nfsd.ko
cp: cannot stat 'fs/nfsd/nfsd.ko': No such file or directory
INSTALL fs/nilfs2/nilfs2.ko
cp: cannot stat 'fs/nilfs2/nilfs2.ko': No such file or directory
INSTALL fs/nls/nls_cp1250.ko
cp: cannot stat 'fs/nls/nls_cp1250.ko': No such file or directory
INSTALL fs/nls/nls_cp1251.ko
cp: cannot stat 'fs/nls/nls_cp1251.ko': No such file or directory
INSTALL fs/nls/nls_cp1255.ko
cp: cannot stat 'fs/nls/nls_cp1255.ko': No such file or directory
INSTALL fs/nls/nls_cp737.ko
cp: cannot stat 'fs/nls/nls_cp737.ko': No such file or directory
INSTALL fs/nls/nls_cp775.ko
cp: cannot stat 'fs/nls/nls_cp775.ko': No such file or directory
INSTALL fs/nls/nls_cp850.ko
cp: cannot stat 'fs/nls/nls_cp850.ko': No such file or directory
INSTALL fs/nls/nls_cp852.ko
cp: cannot stat 'fs/nls/nls_cp852.ko': No such file or directory
INSTALL fs/nls/nls_cp855.ko
cp: cannot stat 'fs/nls/nls_cp855.ko': No such file or directory
INSTALL fs/nls/nls_cp857.ko
cp: cannot stat 'fs/nls/nls_cp857.ko': No such file or directory
INSTALL fs/nls/nls_cp860.ko
cp: cannot stat 'fs/nls/nls_cp860.ko': No such file or directory
INSTALL fs/nls/nls_cp861.ko
cp: cannot stat 'fs/nls/nls_cp861.ko': No such file or directory
INSTALL fs/nls/nls_cp862.ko
cp: cannot stat 'fs/nls/nls_cp862.ko': No such file or directory
INSTALL fs/nls/nls_cp863.ko
cp: cannot stat 'fs/nls/nls_cp863.ko': No such file or directory
INSTALL fs/nls/nls_cp864.ko
cp: cannot stat 'fs/nls/nls_cp864.ko': No such file or directory
INSTALL fs/nls/nls_cp865.ko
cp: cannot stat 'fs/nls/nls_cp865.ko': No such file or directory
INSTALL fs/nls/nls_cp866.ko
cp: cannot stat 'fs/nls/nls_cp866.ko': No such file or directory
INSTALL fs/nls/nls_cp869.ko
cp: cannot stat 'fs/nls/nls_cp869.ko': No such file or directory
INSTALL fs/nls/nls_cp874.ko
cp: cannot stat 'fs/nls/nls_cp874.ko': No such file or directory
INSTALL fs/nls/nls_cp932.ko
cp: cannot stat 'fs/nls/nls_cp932.ko': No such file or directory
INSTALL fs/nls/nls_cp936.ko
cp: cannot stat 'fs/nls/nls_cp936.ko': No such file or directory
INSTALL fs/nls/nls_cp949.ko
cp: cannot stat 'fs/nls/nls_cp949.ko': No such file or directory
INSTALL fs/nls/nls_cp950.ko
cp: cannot stat 'fs/nls/nls_cp950.ko': No such file or directory
INSTALL fs/nls/nls_euc-jp.ko
cp: cannot stat 'fs/nls/nls_euc-jp.ko': No such file or directory
INSTALL fs/nls/nls_iso8859-1.ko
cp: cannot stat 'fs/nls/nls_iso8859-1.ko': No such file or directory
INSTALL fs/nls/nls_iso8859-13.ko
cp: cannot stat 'fs/nls/nls_iso8859-13.ko': No such file or directory
INSTALL fs/nls/nls_iso8859-14.ko
cp: cannot stat 'fs/nls/nls_iso8859-14.ko': No such file or directory
INSTALL fs/nls/nls_iso8859-15.ko
cp: cannot stat 'fs/nls/nls_iso8859-15.ko': No such file or directory
INSTALL fs/nls/nls_iso8859-2.ko
cp: cannot stat 'fs/nls/nls_iso8859-2.ko': No such file or directory
INSTALL fs/nls/nls_iso8859-3.ko
cp: cannot stat 'fs/nls/nls_iso8859-3.ko': No such file or directory
INSTALL fs/nls/nls_iso8859-4.ko
cp: cannot stat 'fs/nls/nls_iso8859-4.ko': No such file or directory
INSTALL fs/nls/nls_iso8859-5.ko
cp: cannot stat 'fs/nls/nls_iso8859-5.ko': No such file or directory
INSTALL fs/nls/nls_iso8859-6.ko
cp: cannot stat 'fs/nls/nls_iso8859-6.ko': No such file or directory
INSTALL fs/nls/nls_iso8859-7.ko
cp: cannot stat 'fs/nls/nls_iso8859-7.ko': No such file or directory
INSTALL fs/nls/nls_iso8859-9.ko
cp: cannot stat 'fs/nls/nls_iso8859-9.ko': No such file or directory
INSTALL fs/nls/nls_koi8-r.ko
cp: cannot stat 'fs/nls/nls_koi8-r.ko': No such file or directory
INSTALL fs/nls/nls_koi8-ru.ko
cp: cannot stat 'fs/nls/nls_koi8-ru.ko': No such file or directory
INSTALL fs/nls/nls_koi8-u.ko
cp: cannot stat 'fs/nls/nls_koi8-u.ko': No such file or directory
INSTALL fs/nls/nls_utf8.ko
cp: cannot stat 'fs/nls/nls_utf8.ko': No such file or directory
INSTALL fs/ntfs/ntfs.ko
cp: cannot stat 'fs/ntfs/ntfs.ko': No such file or directory
INSTALL fs/ocfs2/cluster/ocfs2_nodemanager.ko
cp: cannot stat 'fs/ocfs2/cluster/ocfs2_nodemanager.ko': No such file or directory
INSTALL fs/ocfs2/dlm/ocfs2_dlm.ko
cp: cannot stat 'fs/ocfs2/dlm/ocfs2_dlm.ko': No such file or directory
INSTALL fs/ocfs2/dlmfs/ocfs2_dlmfs.ko
cp: cannot stat 'fs/ocfs2/dlmfs/ocfs2_dlmfs.ko': No such file or directory
INSTALL fs/ocfs2/ocfs2.ko
cp: cannot stat 'fs/ocfs2/ocfs2.ko': No such file or directory
INSTALL fs/ocfs2/ocfs2_stack_o2cb.ko
cp: cannot stat 'fs/ocfs2/ocfs2_stack_o2cb.ko': No such file or directory
INSTALL fs/ocfs2/ocfs2_stack_user.ko
cp: cannot stat 'fs/ocfs2/ocfs2_stack_user.ko': No such file or directory
INSTALL fs/ocfs2/ocfs2_stackglue.ko
cp: cannot stat 'fs/ocfs2/ocfs2_stackglue.ko': No such file or directory
INSTALL fs/overlayfs/overlay.ko
cp: cannot stat 'fs/overlayfs/overlay.ko': No such file or directory
INSTALL fs/quota/quota_tree.ko
cp: cannot stat 'fs/quota/quota_tree.ko': No such file or directory
INSTALL fs/quota/quota_v1.ko
cp: cannot stat 'fs/quota/quota_v1.ko': No such file or directory
INSTALL fs/quota/quota_v2.ko
cp: cannot stat 'fs/quota/quota_v2.ko': No such file or directory
INSTALL fs/reiserfs/reiserfs.ko
cp: cannot stat 'fs/reiserfs/reiserfs.ko': No such file or directory
INSTALL fs/squashfs/squashfs.ko
cp: cannot stat 'fs/squashfs/squashfs.ko': No such file or directory
INSTALL fs/ubifs/ubifs.ko
cp: cannot stat 'fs/ubifs/ubifs.ko': No such file or directory
INSTALL fs/udf/udf.ko
cp: cannot stat 'fs/udf/udf.ko': No such file or directory
INSTALL fs/xfs/xfs.ko
cp: cannot stat 'fs/xfs/xfs.ko': No such file or directory
INSTALL mm/zsmalloc.ko
cp: cannot stat 'mm/zsmalloc.ko': No such file or directory
DEPMOD 4.19.127-v7l+
Warning: modules_install: missing 'System.map' file. Skipping depmod.
make[1]: Leaving directory '/home/pi/rpi_kernel_src/out'
cp: cannot stat '/home/pi/rpi_kernel_src/out/arch/arm/boot/dts/*.dtb': No such file or directory
cp: cannot stat '/home/pi/rpi_kernel_src/out/arch/arm/boot/dts/overlays/*.dtb*': No such file or directory
cp: cannot stat '/home/pi/rpi_kernel_src/out/arch/arm/boot/dts/overlays/README': No such file or directory
cp: cannot stat '/home/pi/rpi_kernel_src/out/arch/arm/boot/zImage': No such file or directory -
AustinKim 2020/09/30 20:42 #
오늘 올린 아래 링크의 포스팅을 참고해 보셨으면 합니다.
http://rousalome.egloos.com/10019506
[공지] 2장: 라즈비안 커널 빌드가 안될 때 조치 방법
그 동안 제보에 따르면, 빌드나 설치가 안되는 원인은 대부분 빌드 스크립트를 입력할 때 오타 때문인 경우가 대부분입니다.
감사합니다. -
2020/09/30 20:42 # 답글
-
jinn.k 2020/12/31 17:50 # 삭제 답글
혹시 커널 코드가 일부 수정 되었을 때 해당 코드만 라즈베리 파이에 설치할 수 있는 방법이 혹시 존재할까요 ? -
AustinKim 2020/12/31 21:57 #
현재 리눅스를 지원하는 대부분 SoC 벤더에서는 리눅스 커널의 이미지 전체를 특정 파티션에 플래시를 하는 구조로 설계하고 있습니다. 라즈베리 파이도 마찬가지 구조라서, 커널의 일부 파일만 수정해 다운로드할 수 있는 방법은 없습니다. -
로라하트윅 2021/01/11 22:50 # 삭제 답글
root@raspberrypi:/home/pi/rpi_kernel_src# ./install_rpi_kernel_img.sh
=======================
##!/bin/bash
KERNEL_TOP_PATH="$( cd "$(dirname "$0")" ; pwd -P )"
OUTPUT="$KERNEL_TOP_PATH/out"
echo "$OUTPUT"
cd linux
make O=$OUTPUT modules_install
cp $OUTPUT/arch/arm/boot/dts/*.dtb /boot/
cp $OUTPUT/arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
cp $OUTPUT/arch/arm/boot/dts/overlays/README /boot/overlays/
cp $OUTPUT/arch/arm/boot/zImage /boot/kernel7.img
==========================================
cp: cannot stat '/home/pi/rpi_kernel_src/out/arch/arm/boot/dts/overlays/README': No such file or directory
올려주신 예제를 스크립트에 붙여넣고 해도 위와 같이 오류가 발생합니다.
제 생각엔 스크립트 돌리면서 만들어진 out 폴더에 README 파일이
없어서 그런것 같은데요.
라즈베리파이 문서에서는 out 폴더를 만들라는 부분이 없는데
혹시 make할 때 README 파일도 같이 복사되는것이 맞는지요?
제가 리눅스에 대해 잘 몰라서 여쭤봅니다. -
AustinKim 2021/01/13 10:31 #
아래에 보이는 에러 메시지는 무시하셔도 좋구요.
cp: cannot stat '/home/pi/rpi_kernel_src/out/arch/arm/boot/dts/overlays/README': No such file or directory
'cp $OUTPUT/arch/arm/boot/dts/overlays/README /boot/overlays/' 코드는 주석으로 처리하시길 부탁드립니다.
cp $OUTPUT/arch/arm/boot/dts/overlays/*.dtb* /boot/overlays/
#cp $OUTPUT/arch/arm/boot/dts/overlays/README /boot/overlays/
cp $OUTPUT/arch/arm/boot/zImage /boot/kernel7.img
참고로 'arch/arm/boot/dts/overlays/README'는 다운로드될 파일이 아니라, 파일 이름 그대로 dts에 대한 가이드 문서입니다.
감사합니다. -
무야호 2021/02/06 01:30 # 삭제 답글
커널 빌드와 인스톨은 진행이 잘되는데 빌드 속도가 너무 느립니다. 켜넣고 자면 다음날에 완료될 정도로 느려서 챕터마다 진도빼기가 힘드네요
제 라즈베리파이 화면에는 노란색 번개가 뜨는데 이게 이유일까요? -
AustinKim 2021/02/08 19:47 #
라즈비안 커널은 한 번 빌드를 하고 난 다음에,
소스 코드를 수정하고 빌드하면 수정된 소스 파일만 빌드가 됩니다.
아래 동영상의 (5:23) 초에 해당하는 부분을 참고하시고 진행하였으면 합니다.
https://www.youtube.com/watch?v=-USmpeIU41U
그리고 라즈비안 커널을 빌드하면 생성되는 out 디렉터리는 혹시 삭제하셨는지 모르겠는데요.
out 디렉터리를 삭제하면 라즈비안 커널을 full 빌드하니 시간이 오래 걸려요. 이 점도 참고하세요. -
tjswlsgg 2021/03/21 23:53 # 삭제 답글
아래 명령어를 통해 업데이트 완료 후 유틸리티 모두 설치완료하였습니다.
apt-get update && upgrade
apt-get install git bc bison flex libssl-dev
========================================
하지만, build_rpi_kernel.sh를 이용하여 빌드 시 아래와 같이 에러가 발생합니다.
* http://rousalome.egloos.com/10019506 이 글에서 build_rpi_kernel.sh를 다운로드 받아 실행하였습니다.
/home/pi/rpi_kernel_src/linux/include/linux/fs.h: In function ‘vfs_lstat’:
/home/pi/rpi_kernel_src/linux/include/linux/fs.h:3134:2: internal compiler error: in fold_binary_loc, at fold-const.c:9253
return vfs_statx(AT_FDCWD, name, AT_SYMLINK_NOFOLLOW | AT_NO_AUTOMOUNT,
^~~~~~
0x76a56717 __libc_start_main
/build/glibc-FUvrFr/glibc-2.28/csu/libc-start.c:308
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-8/README.Bugs> for instructions.
make[2]: *** [/home/pi/rpi_kernel_src/linux/scripts/Makefile.build:303: arch/arm/mm/iomap.o] Error 1
make[2]: *** Waiting for unfinished jobs....
AS arch/arm/common/secure_cntvoff.o
AR arch/arm/common/built-in.a
AR arch/arm/net/built-in.a
CC arch/arm/probes/decode.o
CC arch/arm/probes/kprobes/core.o
CC arch/arm/kernel/ptrace.o
make[1]: *** [/home/pi/rpi_kernel_src/linux/Makefile:1058: arch/arm/mm] Error 2
make[1]: *** Waiting for unfinished jobs....
CC arch/arm/probes/decode-arm.o
CC arch/arm/probes/kprobes/actions-common.o
CC arch/arm/kernel/reboot.o
CC arch/arm/probes/kprobes/checkers-common.o
CC arch/arm/kernel/return_address.o
CC arch/arm/probes/kprobes/actions-arm.o
In file included from /home/pi/rpi_kernel_src/linux/include/linux/sysfs.h:16,
from /home/pi/rpi_kernel_src/linux/include/linux/kobject.h:20,
from /home/pi/rpi_kernel_src/linux/include/linux/module.h:17,
from /home/pi/rpi_kernel_src/linux/include/linux/kallsyms.h:13,
from /home/pi/rpi_kernel_src/linux/include/linux/ftrace.h:11,
from /home/pi/rpi_kernel_src/linux/arch/arm/kernel/return_address.c:12:
/home/pi/rpi_kernel_src/linux/include/linux/kernfs.h: In function ‘kernfs_enable_ns’:
/home/pi/rpi_kernel_src/linux/include/linux/kernfs.h:289:2: internal compiler error: Illegal instruction
WARN_ON_ONCE(kernfs_type(kn) != KERNFS_DIR);
^~~~~~~~~~~~
CC arch/arm/probes/kprobes/checkers-arm.o
CC arch/arm/probes/kprobes/opt-arm.o
0x76a7611f ???
../sysdeps/unix/sysv/linux/arm/sigrestorer.S:64
0x76a60717 __libc_start_main
/build/glibc-FUvrFr/glibc-2.28/csu/libc-start.c:308
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <file:///usr/share/doc/gcc-8/README.Bugs> for instructions.
make[2]: *** [/home/pi/rpi_kernel_src/linux/scripts/Makefile.build:303: arch/arm/kernel/return_address.o] Error 1
make[1]: *** [/home/pi/rpi_kernel_src/linux/Makefile:1058: arch/arm/kernel] Error 2
AR arch/arm/probes/kprobes/built-in.a
AR arch/arm/probes/built-in.a
make[1]: Leaving directory '/home/pi/rpi_kernel_src/out'
make: *** [Makefile:146: sub-make] Error 2 -
AustinKim 2021/03/23 06:37 #
저도 예전에 비슷한 문제를 겪었는데요. 그 원인은 다음과 같이 요약할 수 있습니다.
* 라즈베리 파이 불량
* 마이크로 SD 카드 불량
* 라즈비안 커널 소스를 제대로 내려 받지 못함
일단, 댓글로 알려주신 메시지는 GCC 컴파일러가 제대로 설치되지 않았을 때 확인됩니다.
유사한 케이스는 아래 링크에서 확인할 수 있는데요.
https://github.com/AFLplusplus/AFLplusplus/issues/25
https://bugs.php.net/bug.php?id=74677
아래 명령어를 입력한 다음에,
$ apt-get update
$ apt-get upgrade
out 폴더를 지우시고 다시 빌드를 진행해보시고요.
(되도록 소스 코드는 다시 내려 받으시길 권장드립니다.)
만약 그래도 같은 에러가 보이면 아래와 같은 조치를 취하시길 권장드립니다.
1. 아래 링크에 있는 내용을 참고해 크로스 컴파일로 라즈비안 커널을 빌드해 설치합니다. https://www.raspberrypi.org/documentation/linux/kernel/building.md
(크로스 컴파일러 설치용 빌드 스크립트는 조만간에 새로운 포스트를 통해 공유될 예정입니다.)
2. 다른 마이크로SD 카드나 라즈베리 파이를 교체한 다음에 라즈베이 파이를 설치하고 라즈비안 커널을 빌드합니다.
이런 증상을 겪을 때 짜증이 나겠지만, 실전 개발에서 유사한 문제를 겪을 수 있으니 너무 스트레스를 받지 않으셨으면 좋겠습니다.
그럼, 즐거운 하루 되세요. -
tjswlsgg 2021/03/23 14:07 # 삭제
라즈베리파이 불량이 원인인 것 같습니다.
파이 새걸로 바꾸니 해결되었습니다.
감사합니다~!^^ -
2021/03/23 06:43 # 답글
-
ilye 2021/09/17 01:18 # 삭제 답글
안녕하세요 음.. 일단 제가 라즈베리파이 4B를 가지고 라즈비안 이미지, 라즈비안 브랜치 등을
지시해주신대로 버전을 맞추어 수 많은 에러를 만나고 성공적으로 이미지까지 설치를 마쳤습니다^^
하지만 리부팅을 한 뒤에 usb포트부터 블루투스 터치스크린(라즈비안 제품) 들이 전혀 작동을 하지않습니다. (usb포트에 전혀 전원이 안들어오고 화면은 나오는데 터치는 안되고ㅎㅎ)
그래서 현재 임시로 최신 라즈비안 이미지에 최신 브랜치를 빌드/이미지 설치하면서 실습을 나아가고 있습니다.
그러던 중에 "커널 디버깅용 Debugfs 드라이버 코드" 파트에서 rpi_debugfs.c를 작성한뒤 빌드를 하고 이미지를 설치했지만
빌드만 되고 이미지 설치에서 안되는 것 같습니다. 왜냐하면 오류도 없고 컴파일된 rpi_debugfs.o는 되어 있지만 rpi_debug 디렉토리나 val 파일은 생기지 않습니다
이렇게 문재가 꼬여서 번거롭게 해서 죄송하지만 도와주실 수 있나요? -
AustinKim 2021/09/18 14:48 #
정신이 없어 이제야 답신 드립니다.
rpi_debugfs.c 파일을 추가하기 위해서는 소스 파일을 생성한 다음에,
메이크 파일(Makefile)도 같이 수정해야 합니다. 이 부분도 함께 점검 부탁드립니다.
감사합니다. -
ilye 2021/09/20 15:01 # 삭제 답글
Makefile도 여러 번 오타 검사를 하면서 수정했었습니다. -
AustinKim 2021/09/20 19:03 #
아래와 같은 패치를 적용해 보시겠어요?
diff --git a/drivers/soc/bcm/Makefile b/drivers/soc/bcm/Makefile
index 7bc90e0bd..062a56379
--- a/drivers/soc/bcm/Makefile
+++ b/drivers/soc/bcm/Makefile
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: GPL-2.0-only
-obj-$(CONFIG_BCM2835_POWER) += bcm2835-power.o
+obj-$(CONFIG_BCM2835_POWER) += bcm2835-power.o rpi_debugfs.o
저는 잘 되는데요. -
liye 2021/09/21 16:31 # 삭제 답글
수정 후 아예 다시 out 파일을 삭제 후 재빌드 해서 이미지 설치 리부팅를 해도 안 됩니다.
선생님께 제 라즈베리파이를 보여드리고 싶은데 그건 실례가 될 것 같아서 이건 지금은 넘어가고 나중에 제가 더욱 실력을 쌓이면
그때 해결해 보겠습니다. (선생님이라고 불러도 되겠죠?)
그래도 궁금한게 있는데 괄호안에 CONFIG__BCM/RASPBARRYPI 등등 무엇을 의미하는 건가요? -
AustinKim 2021/09/23 11:36 #
리눅스 커널에서는 컨피그 파일에 따라 소스가 빌드됩니다.
만약 CONFIG_BCM2835_POWER=y이면 해당 디렉토리에 있는 bcm2835-power.c rpi_debugfs.c 소스를 빌드하겠다는 의도의 코드입니다.
'CONFIG_BCM2835_POWER=y'는 .config(out/.config)에서 다음과 같이 확인할 수 있습니다.
#
# Broadcom SoC drivers
#
CONFIG_BCM2835_POWER=y
CONFIG_RASPBERRYPI_POWER=y
CONFIG_BCM2835_POWER -
Starter 2022/04/10 21:44 # 삭제 답글
안녕하세요. "liye " 님과 같은 문제가 발생하고 있어서 댓글을 달게 되었습니다.
책에 './install_rpi_kernel_img.sh" 스크립트에서는 rpi_debugfs.o를 Kernel의 Driver로 옮기는 부분이 없어서 아마도 rpi_debugfs.o가 실제 Kernel 이미지에 안올라 갈꺼 같은데요.
실제로 install_rpi_kernel_im를 실행하면 /lib/modueles에 있는 파일들은 올라가지만 이 폴더안 에는 rpi_debugfs.o는 존재하지 않습니다. 왜냐면 이 파일은 OUT이라는 폴더 안에 존재하니까요.
일단 지금 구글링 하면서 방법은 찾고 있는데 다른분들 불로그를 봐도 전부다 object파일은 copy하는 부분이 있습니다. 혹시 제가 잘못 생각하고 있는걸까요??? -
AustinKim 2022/04/10 22:10 #
정상적으로 커널 빌드가 진행된 상황에서는요. rpi_debugfs.c 파일이 빌드되면 rpi_debugfs.o이 생성되고 이 파일은 전체 리눅스 커널 소스가 빌드된 결정체인 zImage에 합쳐집니다.
그런데 install_rpi_kernel_img.sh 파일의 구현부를 보면요;
# install_rpi_kernel_img.sh
...
12 cp $OUTPUT/arch/arm/boot/zImage /boot/kernel7.img
'$OUTPUT/arch/arm/boot/zImage' 파일(커널 이미지)을 /boot/kernel7.img로 복사하는 구문이 보일 겁니다.
일단 rpi_debugfs.o 파일이 제대로 생성되면 zImage 파일로 합쳐지니, 우선 rpi_debugfs.o 파일이 제대로 생성되는지 확인이 필요합니다.
감사합니다. -
Starter 2022/04/11 01:52 # 삭제 답글
아 넵 감사합니다. map 파일에서 rpi_debugsfs.o가 있는지 확인해 보겠습니다.
그리고 rpi_4에서는 kernel7.img 아니고 kernel7l.img를 사용하고 있네요.
즉 이미지 경로가 잘못 된거였어요.
다른분들도 이글 보시고 참고하시길.. 감사합니다. -
AustinKim 2022/04/11 10:21 #
이미지 경로를 확인하셔서 다행입니다.
즐거운 하루 되세요.
감사합니다. -
JK 2022/04/12 10:43 # 삭제 답글
안녕하세요 처음 이용해봐서 어렵네요 ^^
sh파일 만드는 것부터 난관이었네요..ㅎㅎ 구글링해보니 nano 편집기로 build_rpi_kernel.sh 스클립트 작성하고 실행해서 오류까지 발생했는데요
#error "invoke compile error inside __schdedule"
위 코드 한줄을 삭제하고 다시 빌드하라 하셨는데 코드 한줄 삭제를 어떻게 하나요??
/home/pi/rpi_kernel_src/linux/kernel/sched 폴더에 있는 core.c 파일 들어가보니 #error "invoke compile error inside __schdedule" 코드가 안보여서 질문드립니다
아니면 코드 삭제한는 다른방법이 있는건가요?
너무 기초적인 질문 일 수도 있는데 이게 안돼서 진도가 안나가네요..ㅠㅠ -
AustinKim 2022/04/12 22:52 #
아래와 같이 '#error "invoke compile error inside __schdedule"' 코드를 추가한 후 삭제하면 됩니다.
[before]
https://elixir.bootlin.com/linux/v4.19.30/source/kernel/sched/core.c
static void __sched notrace __schedule(bool preempt)
{
struct task_struct *prev, *next;
unsigned long *switch_count;
struct rq_flags rf;
struct rq *rq;
int cpu;
#error "invoke compile error inside __schdedule"
cpu = smp_processor_id();
rq = cpu_rq(cpu);
[after]
https://elixir.bootlin.com/linux/v4.19.30/source/kernel/sched/core.c
static void __sched notrace __schedule(bool preempt)
{
struct task_struct *prev, *next;
unsigned long *switch_count;
struct rq_flags rf;
struct rq *rq;
int cpu;
cpu = smp_processor_id();
rq = cpu_rq(cpu);
감사합니다. -
Imchanyang 2022/05/16 19:48 # 답글
https://downloads.raspberrypi.org/raspbian_full/images/raspbian_full-2019-07-12/
There is 2019-07-10-raspbian-buster-full.zip in this link.
When I downloaded 2019-07-10-raspbian-buster.zip(instead full),
(Because 'raspberrypi.org' is changed)
Error was not disappeared...
I found and downloaded 2019-07-10-raspbian-buster-ful.zip 's link.
Then, Build Success.
Gook luck.
Thank you for your book.
(I wrote this comment in rasbian. So, I used english... Sorry for my bad english.)
+
When I
downloaded 'not full' version, I can't also execute 'apt-get install git bc flex libssl-dev'.(exactly, libssl-dev)
If you download 'full' version, It will be ok.
최근 덧글