Debian 노트북(Storytel)에서 Android 애플리케이션을 실행하려고 합니다.
저장소에서 Waydroid를 설치했지만 초기화에 실패했습니다.
root@x1v5:/etc/apt# waydroid init
[23:15:43] ERROR: Binder node "vndbinder" for waydroid not found
[23:15:43] See also: <https://github.com/waydroid>
Run 'waydroid log' for details.
Waydroid 로그는 다음과 같습니다.
root@x1v5:/etc/apt# waydroid log
(021820) [23:09:48] % modprobe binder_linux devices="anbox-vndbinder,anbox-hwbinder"
(021820) [23:09:48] ERROR: Binder node "vndbinder" for waydroid not found
(021820) [23:09:48] See also: <https://github.com/waydroid>
(021820) [23:09:48] Traceback (most recent call last):
File "/usr/lib/waydroid/tools/__init__.py", line 64, in main
actions.init(args)
File "/usr/lib/waydroid/tools/actions/initializer.py", line 110, in init
setup_config(args)
File "/usr/lib/waydroid/tools/actions/initializer.py", line 97, in setup_config
helpers.drivers.setupBinderNodes(args)
File "/usr/lib/waydroid/tools/helpers/drivers.py", line 141, in setupBinderNodes
raise OSError('Binder node "vndbinder" for waydroid not found')
OSError: Binder node "vndbinder" for waydroid not found
(021826) [23:10:28] % modprobe binder_linux devices="anbox-vndbinder,anbox-hwbinder"
(021826) [23:10:28] ERROR: Binder node "vndbinder" for waydroid not found
(021826) [23:10:28] See also: <https://github.com/waydroid>
(021826) [23:10:28] Traceback (most recent call last):
File "/usr/lib/waydroid/tools/__init__.py", line 64, in main
actions.init(args)
File "/usr/lib/waydroid/tools/actions/initializer.py", line 110, in init
setup_config(args)
File "/usr/lib/waydroid/tools/actions/initializer.py", line 97, in setup_config
helpers.drivers.setupBinderNodes(args)
File "/usr/lib/waydroid/tools/helpers/drivers.py", line 141, in setupBinderNodes
raise OSError('Binder node "vndbinder" for waydroid not found')
OSError: Binder node "vndbinder" for waydroid not found
(021831) [23:10:48] % modprobe binder_linux devices="anbox-vndbinder,anbox-hwbinder"
(021831) [23:10:48] ERROR: Binder node "vndbinder" for waydroid not found
(021831) [23:10:48] See also: <https://github.com/waydroid>
(021831) [23:10:48] Traceback (most recent call last):
File "/usr/lib/waydroid/tools/__init__.py", line 64, in main
actions.init(args)
File "/usr/lib/waydroid/tools/actions/initializer.py", line 110, in init
setup_config(args)
File "/usr/lib/waydroid/tools/actions/initializer.py", line 97, in setup_config
helpers.drivers.setupBinderNodes(args)
File "/usr/lib/waydroid/tools/helpers/drivers.py", line 141, in setupBinderNodes
raise OSError('Binder node "vndbinder" for waydroid not found')
OSError: Binder node "vndbinder" for waydroid not found
(021932) [23:14:28] % tail -n 60 -F /var/lib/waydroid/waydroid.log
(021932) [23:14:28] *** output passed to waydroid stdout, not to this log ***
(021968) [23:15:43] % modprobe binder_linux devices="anbox-vndbinder,anbox-hwbinder"
(021968) [23:15:43] ERROR: Binder node "vndbinder" for waydroid not found
(021968) [23:15:43] See also: <https://github.com/waydroid>
(021968) [23:15:43] Traceback (most recent call last):
File "/usr/lib/waydroid/tools/__init__.py", line 64, in main
actions.init(args)
File "/usr/lib/waydroid/tools/actions/initializer.py", line 110, in init
setup_config(args)
File "/usr/lib/waydroid/tools/actions/initializer.py", line 97, in setup_config
helpers.drivers.setupBinderNodes(args)
File "/usr/lib/waydroid/tools/helpers/drivers.py", line 141, in setupBinderNodes
raise OSError('Binder node "vndbinder" for waydroid not found')
OSError: Binder node "vndbinder" for waydroid not found
(022124) [23:20:40] % tail -n 60 -F /var/lib/waydroid/waydroid.log
(022124) [23:20:40] *** output passed to waydroid stdout, not to this log ***
어떻게 작동하게 할 수 있나요?
답변1
바인더 드라이버를 활성화하려면 다음 패키지를 배열된 대로 설치하십시오.
libglibutil, libgbinder, python3-gbinder, Waydroid
이 패키지는 다음 위치에 있습니다.https://repo.waydro.id/erfan/bookworm/
확인하려면 다음 명령을 사용하십시오.
sudo modprobe 바인더_리눅스
치명적인 오류가 발생하면 실패하지만 다시 프롬프트가 나타나면 문제가 없습니다.
경고하다:
Debian 12 Bookworm의 Waydroid에는 바인더 드라이버뿐만 아니라 memfd 드라이버(ashmem 드라이버 대체)도 필요합니다.
설치된 최종 버전 12.0(실험 아님)에서 시작 폴더에 있는 "config-6.1.0-9-amd64"를 열고 memfd를 검색하세요. 결과:
CONFIG_MEMFD_CREATE=y(y는 예를 의미함)
Waydroid 17.1을 사용하려면 독점 libhoudini.so(libhoudini와 함께 제공되는 Waydroid 18.1과 반대)가 없으므로 두 이미지를 모두 다운로드하십시오.
"system.img" 및 "vendor.img".
이러한 이미지는 다음 위치에 있습니다.
https://sourceforge.net/projects/blissos-dev/files/waydroid/lineage/
Waydroid 17.1의 "system.img" 루트 디렉터리에서 "init.rc"를 열고 memfd를 검색하세요. 결과:
sys.memfd_use는 기본적으로 false로 설정되어 비활성화 상태로 둡니다.
신청 및 공급업체 절차가 확정될 때까지
ashmem fd의 IOCTL은 더 이상 존재하지 않습니다.
setprop sys.use_memfd 거짓
"false"를 "true"로 변경해야 합니다.
답변2
답변 댓글에 BE: "Lineagea 버전을 확인하는 방법은 무엇입니까?"
계보 버전을 확인하려면 압축을 풀거나 설치할 필요 없이 아카이브 프로그램을 사용하여 system.img를 엽니다. 이미지는 "var/lib/images" 또는 "usr/share/waydroid-extra"에 있습니다. 어쨌든, 현재 Waydroid는 두 가지 버전, 즉 Lineage 17.1(Android 10 기반)과 Lineage 18.1(Intel의 독점 Android 11 기반)을 기반으로 합니다.
물론 Lineage 19.1을 기반으로 한 Waydroid는 없습니다(Android 12를 기반으로 하며 배터리 수명을 절약하기 위해 사용하는 메모리 양에 제한이 있습니다). Android 12는 휴대폰과 소형 태블릿에서만 사용할 수 있습니다.
"CONFIG_MEMFD_CREATE=y"와 관련하여 Debian Bookworm 및 커널 5.18+가 설치된 일부 Linux 배포판에 포함되어 있습니다. Waydroid의 system.img(Android 10 또는 11)와 최신 Linux 버전 간의 충돌을 보여줍니다.
Waydroid 이미지는 압축되어 보호됩니다. (루트에서도 수정이 불가능합니다.)
https://sourceforge.net/projects/waydroid/files/images/
여기에서 수정할 수 있는 다양한 이미지를 다운로드할 수 있습니다.
https://sourceforge.net/projects/blissos-dev/files/waydroid/lineage/lineage-17.1
루트로 수정하려면 다음 단계를 따르세요.
압축을 풀고 "system.img" 및 "vendor.img"를 가져옵니다.
Virtualbox에 운영 체제 "OS"를 격리된 환경으로 설치한 다음 etcher(https://github.com/balena-io/etcher) 게스트 운영 체제에서.
가상 USB 컨트롤러를 통해 이 게스트를 2GB 동적 가상 디스크(vdi, vhd, vmdk)와 연결합니다(정적인 경우 "init.rc"를 수정할 수 없음). Virtualbox 6.x에서는 USB 1.1이 사용됩니다(실제 USB가 아니기 때문에 느리지는 않습니다). 그렇지 않은 경우 Virtual USB에 대한 특허가 만료되거나 취소되었으며 다른 기능을 유지하면서 Virtualbox 확장이 필요하지 않으므로 USB 2 또는 3과 함께 Virtualbox 7.x를 사용하십시오. etcher를 사용하여 동적 가상 디스크에 "system.img"를 씁니다. 작성이 완료되면 nemo(마우스 오른쪽 버튼을 클릭하여 루트로 폴더를 열 수 있는 파일 관리자)를 사용하여 "init.rc"를 선택하고 마우스 오른쪽 버튼을 클릭하여 다음 줄을 검색하여 텍스트 편집기에서 엽니다. "setprop sys.use_memfd false ", 여기서 "false"는 "true"로 변경되어야 합니다. 루트 권한을 잊어버리면 파일이 저장되지 않거나 가짜로 저장됩니다(비워짐).
호스트 운영 체제에서 임의의 방법을 사용하여 동적 가상 디스크를 원시 이미지로 변환합니다(원시 이미지인 경우 새 확장자의 이름을 img로 변경).
이제 ashmem 드라이버 대신 Debian Bookworm의 memfd 드라이버를 지원하도록 "system.img"(재컴파일하지 않음)를 패치했습니다.