Carpe diem

WSL환경에서 bitake명령 시에 발생하는 에러(Unable to connect to bitbake server, or start one) 본문

SBC 보드/yocto

WSL환경에서 bitake명령 시에 발생하는 에러(Unable to connect to bitbake server, or start one)

soons13 2023. 1. 15. 16:22

빌드를 다시 해보니, 다른 드라이브에서 빌드를 해서 발생한 문제로 보인다.

topdir이라는 변수가 홈디렉토리를 기준으로 설정되는 변수인듯 하다.

그래서 마운트된 디렉토리에서 실행하면 문제가 발생한 것으로 보인다.

홈 디렉토리에서 SDK를 다운받아서 빌드하면 문제가 사라진다.

 

WSL환경에서 Ubuntu 20.04이미지를 docker 이미지를 빌드하고 실행시켜봤다..

잘된다..

(매번 시작마다 docker service를 start시켜주고 dock.sock 의 권한을 직접 변경해주어야한다는 것 빼고는..)

poky를 다운 받고, 다른 meta-layer를 추가하기 전에 현재 meta layer들 목록을 확인해보기 위해

bitbake 명령을 사용하던 중에 아래 같은 에러가 발생했다.

 

root@d0e33f11861d:/workdir/rpi/poky-rocko/build-raspberrypi# bitbake-layers show-layers
NOTE: Starting bitbake server...
NOTE: Retrying server connection... (Traceback (most recent call last):
  File "/workdir/rpi/poky-rocko/bitbake/lib/bb/main.py", line 442, in setup_bitbake
    server = bb.server.process.BitBakeServer(lock, sockname, configuration, featureset)
  File "/workdir/rpi/poky-rocko/bitbake/lib/bb/server/process.py", line 385, in __init__
    self.sock.bind(os.path.basename(sockname))
OSError: [Errno 95] Operation not supported
)

//... 중략 ...

NOTE: Reconnecting to bitbake server...
NOTE: Retrying server connection...
ERROR: Unable to connect to bitbake server, or start one
root@d0e33f11861d:/workdir/rpi/poky-rocko/build-raspberrypi# vim /workdir/rpi/poky-rocko/bitbake/lib/b
bb/       bblayers/ bs4/
root@d0e33f11861d:/workdir/rpi/poky-rocko/build-raspberrypi# vim /workdir/rpi/poky-rocko/bitbake/lib/bb/main.py
root@d0e33f11861d:/workdir/rpi/poky-rocko/build-raspberrypi#

 

구글링해보니, WSL환경을 사용 중일 경우, 같은 에러를 해결한 사례가 있었다.

https://stackoverflow.com/questions/49370077/bitbake-server-does-not-start-on-windows-subsystem-for-linux

 

Bitbake Server does not start on Windows Subsystem for Linux

I am following the Quick Start Guide for Yocto Project on Windows Subsystem for Linux. I cloned all the necessary stuff: sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multili...

stackoverflow.com

 

대충 bitbake의 sock 경로가 맞지 않아서 "/tmp/bitbake.sock"으로 변경했다고 한다.

 

에러 내용을 다시 한번 보니, 친절하게도 에러가 발생한 파일과 라인넘버를 출력해준다.

수정을 위해 poky디렉토리 내의 bitbake/lib/bb/main.py 파일을 열어서 수정했다.

sockname을 topdir + "/bitbiake.sock" 에서  "/tmp/bitbake.sock"으로 변경했다.

def setup_bitbake(configParams, configuration, extrafeatures=None):
    # Ensure logging messages get sent to the UI as events
## ... 중략 ...
            try:
                topdir, lock = lockBitbake()
                #sockname = topdir + "/bitbake.sock"#주석 처리
                sockname = "/tmp/bitbake.sock"# sock 경로 변경
                if lock:
                    if configParams.status_only or configParams.kill_server:
                        logger.info("bitbake server is not running.")
                        lock.close()
                        return None, None
                    # we start a server with a given configuration
                    logger.info("Starting bitbake server...")
                    # Clear the event queue since we already displayed messages
                    bb.event.ui_queue = []
                    server = bb.server.process.BitBakeServer(lock, sockname, configuration, featureset)

 

sockname을 변경 한 후 다시 bitbake 명령을 실행해봤다..
잘된다.
 
root@d0e33f11861d:/workdir/rpi/poky-rocko/build-raspberrypi# bitbake-layers show-layers
NOTE: Starting bitbake server...
layer                 path                                      priority
==========================================================================
meta                  /workdir/rpi/poky-rocko/meta              5
meta-poky             /workdir/rpi/poky-rocko/meta-poky         5
meta-yocto-bsp        /workdir/rpi/poky-rocko/meta-yocto-bsp    5
root@d0e33f11861d:/workdir/rpi/poky-rocko/build-raspberrypi#