Ubuntu 24.04 최적화 작업 정리
작업일: 2026-04-19 하드웨어: ASUS VivoBook D515UA / Ryzen 5 5300U (Zen 2) / 20GB RAM / Samsung PM991 256GB NVMe 외장 모니터: 4K (3840×2160) IPS 패널 HDMI 연결, 200% 스케일링
1. 데스크탑 환경 변경
문제
MATE X11의 Marco 컴포지터가 4K@60Hz 합성을 감당하지 못해 시스템 전체가 느리고 팬이 과도하게 회전. Windows 10에서는 동일 하드웨어로 쾌적했음 — DWM의 GPU 하드웨어 합성과 달리 Marco는 비효율적인 소프트웨어 합성 사용.
해결
MATE X11 → KDE Plasma Wayland로 변경. 체감 90% 이상 개선.
# 설치 명령어
sudo apt install kde-plasma-desktop sddm plasma-workspace-wayland
sudo dpkg-reconfigure sddm
- 로그인 화면에서 Plasma (Wayland) 세션 선택
- MATE 관련 패키지 제거:
sudo apt remove ubuntu-mate-desktop mate-desktop-environment mate-desktop-environment-core
sudo apt remove caja pluma atril eom mate-terminal mate-panel marco
sudo apt autoremove
2. CPU 전력 관리 + 팬 정책
문제
amd-pstate-epp 드라이버에서 EPP가 기본값(power)으로 설정되어 CPU 반응성 저하.
ASUS 기본 팬 커브가 공격적으로 설정되어 55°C에서도 팬 2700+ RPM.
해결
EPP를 balance_power로 변경. ASUS 팬 정책을 조용한 모드(2)로 변경.
# 즉시 적용
echo "balance_power" | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference
echo 2 | sudo tee /sys/devices/platform/asus-nb-wmi/throttle_thermal_policy
# 재부팅 후 자동 적용 (systemd 서비스)
sudo tee /etc/systemd/system/cpu-epp.service << 'EOF'
[Unit]
Description=Set CPU EPP and Fan Policy
After=multi-user.target
[Service]
Type=oneshot
ExecStart=/bin/bash -c "echo balance_power | tee /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference && echo 2 > /sys/devices/platform/asus-nb-wmi/throttle_thermal_policy"
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable cpu-epp.service
ASUS 팬 정책 (throttle_thermal_policy)
0= 기본1= 성능 (팬 최대)2= 조용함 (팬 최소) ← 현재 사용
EPP 옵션 참고
performance— 최대 성능, 발열 많음balance_performance— 성능 우선, 팬 자주 회전balance_power— 절전 우선, 팬 조용 ← 현재 사용power— 최대 절전, 반응성 떨어짐
3. swappiness 변경
문제
기본값 60은 데스크탑 용도에 과도함.
해결
echo "vm.swappiness=10" | sudo tee /etc/sysctl.d/99-swappiness.conf
sudo sysctl -p /etc/sysctl.d/99-swappiness.conf
4. 브라우저 변경
문제
- Snap Firefox/Chromium: 콜드 스타트 느림, 샌드박스 오버헤드
- Google Chrome deb: KDE Wayland에서 GBM 버퍼 생성 실패 (
Cannot create bo with format=BGRA_8888), GPU 프로세스 반복 크래시 - Chromium snap: GPU 가속은 되나 VA-API 하드웨어 비디오 디코딩 실패
해결
Firefox deb (Mozilla 공식 저장소) 사용. Wayland 네이티브 + VA-API HW 디코딩 정상 동작.
# Snap Firefox 제거
sudo snap remove firefox
# Mozilla 공식 deb 설치
sudo install -d -m 0755 /etc/apt/keyrings
wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee /etc/apt/sources.list.d/mozilla.list
echo 'Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000' | sudo tee /etc/apt/preferences.d/mozilla
sudo apt update
sudo apt install firefox
Firefox VA-API 하드웨어 디코딩 설정
Firefox가 샌드박스 안에서 VA-API 장치에 접근하지 못해 소프트웨어 디코딩으로 떨어지는 문제 해결:
# 환경변수 설정 (로그아웃 → 재로그인 필요)
mkdir -p ~/.config/environment.d
cat > ~/.config/environment.d/firefox-vaapi.conf << 'EOF'
MOZ_DISABLE_RDD_SANDBOX=1
LIBVA_DRIVER_NAME=radeonsi
EOF
about:config 설정 확인
media.ffmpeg.vaapi.enabled→truemedia.hardware-video-decoding.enabled→truegfx.webrender.all→truemedia.av1.enabled→false(Vega 6에 AV1 HW 디코더 없으므로 비활성화)
HW 디코딩 동작 확인 방법
# 유튜브 재생 중 RDD 프로세스 CPU 확인
top -bn1 -o %CPU | grep -E "(firefox|RDD|Utility)" | head -10
# RDD가 0~2%면 HW 디코딩 정상, 8% 이상이면 SW 디코딩
Firefox HW 디코딩 지원 상태
- H.264: ✅ HW 디코딩
- VP9: ✅ HW 디코딩
- HEVC: ✅ HW 디코딩
- AV1: ❌ (Vega 6에 AV1 디코더 없음, 정상)
5. mpv 설정
설정 파일: ~/.config/mpv/mpv.conf
hwdec=vaapi
vo=gpu
gpu-api=opengl
video-sync=audio
scale=lanczos
scale-antiring=0.7
dscale=mitchell
cscale=spline36
sigmoid-upscaling=yes
correct-downscaling=yes
deband=yes
deband-iterations=2
deband-threshold=35
deband-range=20
sub-font-size=40
주요 설정 설명
hwdec=vaapi: VA-API 하드웨어 디코딩 (VCN 엔진 사용)vo=gpu+gpu-api=opengl: GPU 셰이더 파이프라인으로 스케일링video-sync=audio: 프레임 드롭 없는 안정적 동기화scale=lanczos: 1080p→4K 업스케일링 필터 (ewa_lanczossharp는 Vega 6에서 드롭 발생)sigmoid-upscaling: 업스케일 시 밴딩 감소 (GPU 부하 거의 없음)
참고: Vega 6 4K 스케일링 한계
bilinear: 드롭 없음, 화질 낮음lanczos: 드롭 없음, 화질 양호 ← 현재 사용ewa_lanczossharp: 드롭 발생, 화질 우수vulkan+interpolation: 드롭 심각
6. mpv-one 스크립트 (단일 인스턴스 + Wayland 윈도우 활성화)
파일: ~/bin/mpv-one
#!/usr/bin/env bash
SOCK="${XDG_RUNTIME_DIR:-/tmp}/mpv-one.sock"
send_files() {
python3 - "$SOCK" "$@" <<'PY'
import json, socket, sys
sock_path = sys.argv[1]
files = sys.argv[2:]
s = socket.socket(socket.AF_UNIX)
s.connect(sock_path)
for i, f in enumerate(files):
mode = "replace" if i == 0 else "append"
msg = {"command": ["loadfile", f, mode]}
s.sendall((json.dumps(msg) + "\n").encode("utf-8"))
PY
}
activate_mpv() {
local scriptfile script_id
scriptfile="$(mktemp --suffix=.js)"
cat > "$scriptfile" <<'JS'
var clients = workspace.clientList();
for (var i = 0; i < clients.length; i++) {
if (clients[i].resourceClass == "mpv") {
workspace.activeClient = clients[i];
break;
}
}
JS
script_id=$(qdbus org.kde.KWin /Scripting loadScript "$scriptfile" mpv-activate 2>/dev/null)
if [ -n "$script_id" ]; then
qdbus org.kde.KWin "/$script_id" run 2>/dev/null
qdbus org.kde.KWin /Scripting unloadScript mpv-activate 2>/dev/null
fi
rm -f "$scriptfile"
}
if [ -S "$SOCK" ]; then
if send_files "$@"; then
activate_mpv
exit 0
else
rm -f "$SOCK"
fi
fi
exec mpv \
--idle=yes \
--force-window=immediate \
--input-ipc-server="$SOCK" \
"$@"
X11 → Wayland 변경점
xdotool→ KWin 스크립팅 API (qdbus+workspace.clientList())- Plasma 5.27에서는
clientList/activeClient사용 (6.x에서는windowList/activeWindow)
7. XanMod 커널 설치
문제
Ubuntu 기본 커널은 x86-64-v1 (Generic) 타겟 빌드로 AVX2/FMA 미사용.
해결
XanMod 6.19.12-x64v3 설치. BORE 스케줄러 + Zen 2 최적화 + Full Preempt.
# CPU psABI 레벨 확인 (v3 이상 필요)
curl -fsSLO https://dl.xanmod.org/check_x86-64_psabi.sh
chmod +x check_x86-64_psabi.sh
./check_x86-64_psabi.sh
# Secure Boot 확인 (꺼져 있어야 함)
mokutil --sb-state
# 저장소 추가 및 설치
sudo install -m 0755 -d /etc/apt/keyrings
wget -qO - https://dl.xanmod.org/archive.key | sudo gpg --dearmor -vo /etc/apt/keyrings/xanmod-archive-keyring.gpg
echo "deb [signed-by=/etc/apt/keyrings/xanmod-archive-keyring.gpg] http://deb.xanmod.org $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/xanmod-release.list
sudo apt update
sudo apt install linux-xanmod-x64v3
# GRUB 메뉴 표시 (문제 시 기존 커널로 부팅 가능)
sudo sed -i 's/GRUB_TIMEOUT_STYLE=hidden/GRUB_TIMEOUT_STYLE=menu/' /etc/default/grub
sudo sed -i 's/GRUB_TIMEOUT=0/GRUB_TIMEOUT=5/' /etc/default/grub
sudo update-grub
sudo reboot
x86-64 psABI 레벨 설명
- v1 (baseline): SSE, SSE2. 모든 x86-64 CPU 호환. Ubuntu 기본 커널 타겟.
- v2: SSE3, SSE4.1, SSE4.2, POPCNT 추가. Intel Nehalem(2008), AMD Bulldozer(2011) 이상.
- v3: AVX, AVX2, BMI1, BMI2, FMA 추가. Intel Haswell(2013), AMD Zen(2017) 이상. ← 5300U(Zen 2)
- v4: AVX-512 추가. Intel Ice Lake 서버, AMD Zen 4 이상.
확인
uname -r
# 출력: 6.19.12-x64v3-xanmod1
8. KDE 설정 변경
더블클릭으로 파일 열기
kwriteconfig5 --file kdeglobals --group KDE --key SingleClick false
작업 표시줄 창 그룹화 해제
MATE처럼 같은 앱의 창을 묶지 않고 개별 표시:
# Plasma 종료
kquitapp5 plasmashell
# 그룹화 해제 설정 추가
# [Containments][3][Applets][6]이 icontasks 위젯인 경우 (환경마다 번호 다를 수 있음)
sed -i '/\[Containments\]\[3\]\[Applets\]\[6\]\[Configuration\]\[General\]/a groupingStrategy=0' ~/.config/plasma-org.kde.plasma.desktop-appletsrc
# Plasma 재시작
kstart5 plasmashell &
참고: 위젯 번호([3], [6])는 환경마다 다를 수 있음. 아래 명령으로 icontasks 위젯 위치 확인:
grep -n "icontasks" ~/.config/plasma-org.kde.plasma.desktop-appletsrc
한글 입력 설정
# 시스템 키보드 레이아웃 변경
localectl set-x11-keymap kr pc105 kr104 "korean:ralt_hangul,korean:rctrl_hanja"
# KDE 키보드 설정
kwriteconfig5 --file kxkbrc --group Layout --key Use true
kwriteconfig5 --file kxkbrc --group Layout --key LayoutList "kr"
kwriteconfig5 --file kxkbrc --group Layout --key VariantList "kr104"
kwriteconfig5 --file kxkbrc --group Layout --key Options "korean:ralt_hangul,korean:rctrl_hanja"
- 입력기: IBus + ibus-hangul (기존 설치 유지)
- 로그아웃 → 재로그인 필요
한글키 문제 원인
Wayland에서 한글키(keycode 108)가 Alt_R로 인식됨.
X11에서는 xmodmap으로 수정 가능하지만 Wayland에서는 작동하지 않음.
localectl + KDE kxkbrc 설정으로 XKB 레벨에서 해결.
화면 캡처
Print Screen— 전체 화면 캡처 (Spectacle)Meta + Shift + S— 영역 선택 캡처
9. 제거한 패키지
# MATE 데스크탑
sudo apt remove ubuntu-mate-desktop mate-desktop-environment mate-desktop-environment-core
sudo apt remove caja pluma atril eom mate-terminal mate-panel marco
# Google Chrome (GBM 크래시 문제)
sudo apt remove google-chrome-stable
sudo rm /etc/apt/sources.list.d/google-chrome.list
# Brave Browser
sudo apt remove brave-browser
sudo rm /etc/apt/sources.list.d/brave-browser-release.list
sudo rm /usr/share/keyrings/brave-browser-archive-keyring.gpg
# Snap Firefox
sudo snap remove firefox
# 잔여 패키지 정리
sudo apt autoremove
최종 구성 요약
| 항목 | 변경 전 | 변경 후 |
|---|---|---|
| 데스크탑 | MATE X11 (Marco) | KDE Plasma Wayland (KWin) |
| 커널 | 6.17.0-20-generic (v1) | 6.19.12-x64v3-xanmod1 (v3) |
| 브라우저 | Snap Firefox + Snap Chromium | Firefox deb (Mozilla 공식) |
| Firefox VA-API | 미설정 (SW 디코딩) | MOZ_DISABLE_RDD_SANDBOX=1 (HW 디코딩) |
| CPU EPP | default (power) | balance_power |
| ASUS 팬 정책 | 0 (기본) | 2 (조용함) |
| swappiness | 60 | 10 |
| 한글 입력 | 한글키가 Alt_R로 인식 | kr104 + ralt_hangul 매핑 |
| 파일 열기 | 싱글클릭 | 더블클릭 |
| 작업 표시줄 | 같은 앱 창 그룹화 | 그룹화 해제 (개별 표시) |
| mpv 윈도우 활성화 | xdotool (X11) | KWin 스크립팅 (Wayland) |
주요 설정 파일 위치
| 파일 | 용도 |
|---|---|
~/.config/mpv/mpv.conf |
mpv 재생 설정 |
~/bin/mpv-one |
mpv 단일 인스턴스 스크립트 |
~/.config/environment.d/firefox-vaapi.conf |
Firefox VA-API 환경변수 |
~/.config/kxkbrc |
KDE 키보드 레이아웃 (한글) |
~/.config/plasma-org.kde.plasma.desktop-appletsrc |
KDE 패널/위젯 설정 (작업 표시줄 그룹화 등) |
/etc/systemd/system/cpu-epp.service |
CPU EPP + 팬 정책 자동 적용 |
/etc/sysctl.d/99-swappiness.conf |
swappiness 설정 |
/etc/apt/sources.list.d/xanmod-release.list |
XanMod 커널 저장소 |
/etc/apt/sources.list.d/mozilla.list |
Firefox deb 저장소 |
트러블슈팅 참고
부팅 문제 시
GRUB 메뉴에서 Advanced options → 6.17.0-20-generic 선택하여 기존 커널로 부팅 가능.
Chrome/Chromium Wayland GBM 크래시
Chrome 147 + AMD Renoir + KDE Wayland 조합에서 gbm_bo_import BGRA_8888 에러 발생.
어떤 플래그(--use-gl=egl, --use-gl=angle, --ozone-platform=x11)로도 해결 불가.
현재로서는 Firefox deb 사용이 유일한 안정적 해결책.
Firefox HW 디코딩이 안 될 때
~/.config/environment.d/firefox-vaapi.conf에MOZ_DISABLE_RDD_SANDBOX=1확인about:config에서media.ffmpeg.vaapi.enabled=true확인- 로그아웃 → 재로그인 필요 (환경변수 적용)
- 확인:
top에서 RDD 프로세스 CPU가 0~2%면 HW 디코딩 정상
mpv 4K 스케일링
Vega 6 iGPU에서 GPU 셰이더 기반 고급 스케일링(ewa_lanczossharp, vulkan+interpolation)은 프레임 드롭 발생.
lanczos + video-sync=audio가 화질과 안정성의 최적 타협점.
팬 소음
유튜브 재생 중 CPU 64°C / 팬 2600 RPM은 5300U 노트북의 정상 동작 범위.
Windows 10에서도 동일한 수준이므로 하드웨어 한계.
EPP를 balance_power, 팬 정책을 2(조용함)로 설정하여 유휴 시 팬 소음 최소화.
작업 표시줄 그룹화 재설정
설정이 초기화되면 아래 명령으로 다시 적용:
kquitapp5 plasmashell
sed -i '/\[Containments\]\[3\]\[Applets\]\[6\]\[Configuration\]\[General\]/a groupingStrategy=0' ~/.config/plasma-org.kde.plasma.desktop-appletsrc
kstart5 plasmashell &
위젯 번호 확인: grep -n "icontasks" ~/.config/plasma-org.kde.plasma.desktop-appletsrc