ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • rootfs 커스터마이징(2)
    Yocto 2024. 6. 15. 00:30

    결론부터 말하자면 모든 게 해결됐다.

     

    그래서 무엇이 문제였는데?

     

    그건 바로 두구두구두구~~~~~

     

    rootfs 빌드 전 rootfs에 대한 소유권이 개발 환경 사용자였던 내 계졍으로 되어 있던 것이었다!

     

    이를 알게 된 과정은 다음과 같다.

     

    먼저, 나는 rootfs 빌드 후 타겟 보드에서 부팅을 해보았으나 모든 소유권이 weston 계정이었고 따라서 빌드 된 rootfs 이미지를 sd카드에 한번 usb 플래시에 한번 dd if=roottfs_image of=/dev/sdx 를 이용해 이미지를 써봤다.

     

    이후 내 개발 환경에서 해당 파티션을 마운트 해보았다.

     

    확인 결과...

     

    모두 현 개발 환경의 접속 중인 내 계정으로 소유권이 되어 있는 것이 아닌가!

     

    난, 즉시 /etc/passwd 를 열어 내 계정의 uid gid 를 확인해보았다.

     

    이럴 수가... 모두 weston 과 동일한 1000:1000 이 아니던가... 그렇다. 사실은 rootfs 빌드 전 원본의 소유자인 개발 환경의 내 계정의 uid gid 였던 것이다. 그리고 우연히 weston 계정의 uid gid와 일치해 타겟 보드에서 모든 소유권이 weston으로 되어 있던 것이었다!

     

    그리하여 난 원인을 찾았고 rootfs 원본 소스의 소유권 변경이 필요했다.

     

    또 다시 만난 이슈 이번엔 권한 문제에 따른 빌드 에러

    난 원본 소스의 모든 소유권을 root로 변경했다. (chown -R root:root rootfs/)

     

    그리고 clamav 가 접근 및 소유권을 필요로하는 디렉터리에 권한 상승과 일부 소유권을 지정했다.

     

    그리고 빌드를 시도했다.

     

    실패다.

     

    permission error 가 발생했다. rootfs 원본에 접근하는데 말이다.

     

    이럴 수가..

     

    그래서 sudo 권한을 스크립트 전반에 부여했다.

     

    실패다.

     

    sudo를 주는 순간 상대경로가 root로 바뀌어 적절한 경로 접근이 안되어 wic 빌드가 실패한다.

     

    자세히 보니 du 명령어를 수행함에 있어 permission 에러가 발생하는 것을 확인했다.

     

    나는 곧바로 wic 가 스크립트를 통해 해당 명령어를 수행할 것임을 파악하고 wic 파이선 소스들을 뒤져보았다.

     

    찾았다. "partition.py". du 커맨드 문자열을 변수에 담아 변수를 실행시키고 있었다.

     

    해당 문자열 앞에 sudo를 추가했다.

     

    그리고 빌드를 시도했다.

     

    실패다.

     

    다시 한번 소스를 들여다보니 du 뿐만 아니라 여러 빌드 시에 여러 명령어들을 사용하고 있었다.

     

    곧바로 해당 명령어 문자열 앞에 sudo를 추가했다.

     

    빌드에 성공했다.

     

    이미지를 타겟에 올려보았다.

     

    결과는....?

     

    성공.

    'Yocto' 카테고리의 다른 글

    #FT4232HL #RS485 #rootfs  (0) 2024.06.24
    #rootfs #clamav #swap  (0) 2024.06.24
    rootfs 커스터마이징(1)  (0) 2024.06.14
Designed by Tistory.