최근 안드로이드 커스텀롬의 기반은 두가지로 나눌 수 있습니다.
1. 기존의 전통적인 AOSP를 기반으로 이리저리 지지고 볶아서 만드는 커스텀롬(LinneageOS가 대표적)
2. 픽셀용으로 나온 OS를 이리저리 지지고 볶아서 만드는 커스텀롬(Pixel Experience가 대표적)

사실 AOSP기반의 롬이어도 gapps(구글앱스)를 설치하면 거기서 거기이긴합니다. 하지만 최근 이런저런 커스텀롬을 쓰다보니 차이가 하나 둘씩 눈에 보이더군요.

1. AOSP기반의 롬의 경우 구글특화기능이 빠지는 경우가 많습니다.
- gapps에 따라 해당기능이 작동하기도 하지만 대부분 QuickShare(구, NearbyShare)같은 기능이 막히는것을 확인했습니다.

2. gms(구글코어라고도 합니다)의 일부기능이 작동되지 않는 경우가 존재합니다.
-푸시알림같은 기능인데 구글에 해당 MAC어드레스를 등록하면 작동한다지만 이 또한 귀찮지요.

3. 게이밍쪽에서 커스텀 정도에 따라 성능차이가 벌어지는 편입니다.
-사실 이건 픽셀에 OpenGLES를 Vulkan으로 변환해서 렌더링하는 기능이 들어갔기 때문인데 이게 오픈되지 않은건지 대다수 AOSP기반 롬은 해당 기능이 없습니다.

4. 가끔 커스텀롬이 픽셀로 인식되는 경우가 있습니다.
-장점인지 단점인지 알 수 없지만 AOSP기반롬은 따로 루팅이라도 하지 않은 이상 대부분 본래 모델명으로 인식되지만 픽셀기반의 경우 픽셀로 인식되는 경우가 꽤 있습니다. 여러대의 휴대폰을 쓸 때 헷갈릴 수 있습니다.

안드로이드에 Treble이 적용된 이후 픽셀기반OS를 포팅하기 쉬워졌다고 합니다. 통칭 GSI롬이라고 하는데 GSI기반을 쓰면 그냥 픽셀기반OS에 가깝습니다. 이미 x86용 안드로이드도 gsi롬으로 나오고 있는데 이것도 구글의 야심과 관계가 있어보이는건 제 의심일까요?

,

블로그이름은 우분투분투기면서 왜 데비안을 쓰는가에 대해 이야기가 들어왔습니다.

뭐... 사실은 그냥 우분투보다 더 날것인 데비안이 쓰고 싶어서요.
그리고 데비안은 unstable혹은 testing으로 업데이트하면서 쓰다보면 어느새 최신판이 되어 있습니다. 우분투처럼 날 잡고 업데이트하는게 아닌거지요.

여기에는 장단점이 있는데 일부 호환성문제가 펑펑터집니다. 업데이트 전에는 잘 돌아가던게 업데이트 하고나니 안 돌아가는 경우가 꽤 있습니다.

보통 라이브러리 호환문제인데 이전에 올린 Python을 직접쓰는 몇몇 패키지가 특히 심각하지요. libstdc++를 쓰는 곳도 자주 사고를 치고요. 하지만 이것도 쓰다보니 다 방법이 생기네요.

최근 우분투는 apt대신 snap을 강제하는 경우가 늘었습니다. 위의 라이브러리 관련 호환성해결에는 아주 좋지만 뭔가 종속되는 느낌이라 그렇게 좋지는 않더군요.

제가 아이폰을 주폰으로 안 쓰는거랑 비슷한 이유입니다. 탈구글은 쉽지만 탈애플은 힘들거든요. 탈MS도 겨우했는데 탈애플은 그냥 모든걸 포기해야합니다. 그와중에 탈캐노니컬을 해야될거 같으니 그냥 미리 탈출한겁니다.

아무튼 자유를 위해 데비안으로 떠났습니다. 하지만 우분투도 쓰긴해야겠지요.

,

Playonlinux는 여기 블로그에서 자주 소개한 프로그램입니다.

다만 요즘은 Lutris나 다른 프로그램으로 많이 대체하고 있습니다.

 

문제는 저는 이미 Playonlinux가 많이 편하다는겁니다... 그리고 이미 사용중인 프로그램도 꽤 많고요. lutris로 실행이 가능하긴하지만 lutris를 또 설치하기도 귀찮기도 합니다.

 

아무튼.. playonlinux의 호환성 문제를 해결하려고 했던 기록을 남깁니다.

 

우선. Anaconda3와의 문제입니다.

 

Anaconda3를 설치하면 저는 기본적으로 conda init을 하게끔 옵션을 줍니다. 

앞에 요렇게 (base)가 뜨게 해서 필요할때마다 바로 conda activate (사용자환경) 이렇게 쓸수있게 해놓습니다.

 

문제는... 이게 Playonlinux에서 사용하는 Python이랑 충돌이 난다는겁니다. 기본 Anaconda의 Base 파이썬과 시스템에 설치된 Python은 서로 다르기 때문에 문제를 펑펑 일으킵니다.

 

기본적으로 Anaconda를 설치하면서 만들어진 파이썬에서 wx가 없기에 이를 설치하도록 유도합니다만...

Anaconda에서 제공하는 wx는 지금 시스템에 설치된 cairo와 호환성 문제를 일으킵니다. cairo나 기타등등조차 anaconda에서 제공한걸로 때우면 될 수도 있습니다만... 이건 이것대로 일일이 귀찮아지는 문제를 일으킵니다.

 

그래서 Playonlinux를 실행시에 deactivate 하도록 만들어야 합니다.

 

우선 Anaconda 실행시 바로 conda가 실행 가능한 이유는 .bashrc에 이런 코드가 추가되기 때문입니다.

 

anaconda가 설치된 곳의 bin을 우선시 해서 PATH설정을 해서 python이란 명령을 내리면 (anaconda가 설치된 곳)/bin/python을 실행하도록 하는 겁니다. 즉, 해당 위치의 PATH를 삭제해 버리면 다시 python명령은 시스템에 설정된 python으로 다시 돌아온다는 의미가 됩니다.

 

그래서 playonlinux 스크립트의 일부를 수정합니다.

sudo nano /usr/share/playonlinux/playonlinux

혹은

sudo gedit /usr/share/playonlinux/playonlinux

sudo mousepad /usr/share/playonlinux/playonlinux

 

 등등으로 편한 텍스트 에디터를 관리자권한으로 /usr/share/playonlinux/playonlinux 파일을 엽니다.

 

그러면 특유의 Playonlinux의 4잎클로버 로고가 보이게 되고 이 아래에 다음과 같이 적습니다.

 

export PATH=$(REMOVE_PART="아나콘다가 설치된곳/bin" sh -c 'echo ":$PATH:" | sed "s@:$REMOVE_PART:@:@g;s@^:\(.*\):\$@\1@"')

 

"아나콘다가 설치된곳/bin"

이게 어딘지 모른다면 ~/.bashrc 파일을 열고

export PATH= "(여기 부분):$PATH"

해당 부분을 복사해서 붙여넣으면 됩니다.

 

sudo apt install python3-wxgtk4.0

그리고 패키지 시스템에서 제공하는 wxgtk 패키지를 설치하면 됩니다.

 

--------다만---------

python3.12 이상부터는 playonlinux에서 사용하는 패키지중 asyncore가 deprecated 되었습니다. 본래는 파이썬 기본패키지였으나 이제는 사라졌기에 3.12가 아닌 구버전을 쓰거나 3.12에 맞춰서 다시 설치해줘야 합니다.

 

하지만 방법은 있습니다.

https://github.com/simonrob/pyasyncore

 

GitHub - simonrob/pyasyncore: Make asyncore available for Python 3.12 onwards

Make asyncore available for Python 3.12 onwards. Contribute to simonrob/pyasyncore development by creating an account on GitHub.

github.com

여기서 제공하는 모듈을 playonlinux 폴더에 설치하면 됩니다.

 

pip로 설치하는건 위험하니까 (시스템 파이썬입니다. 다시 말씀드리자만...)

playonlinux의 스크립트가 존재하는 곳에 이 모듈을 직접 설치합니다.

 

git clone https://github.com/simonrob/pyasyncore.git

sudo cp -rf pyasyncore/asyncore/ /usr/share/playonlinux/python/

rm -rf pyasyncore

 

이렇게 하고 playonlinux 를 실행하면...

 

호환성을 맞춰가면서 실행 성공!

Playonlinux의 일부 어딘가 덜그럭거리기는 하지만 어찌됐든 실행에 성공 했습니다!!!

,