Arch linux 기반 배포판. Manjaro linux 설치 및 설정.
Gentoo기반의 Sabayon 리눅스에서 Asus ux31a의 무선랜을 못 잡는다.
여러 시도를 해보다가 안되서 다른 걸로 갈아타려고 여러 리눅스 배포판을 기웃거렸다.
봐도 봐도 끌리는 건 FreeBSD기반의 GhostBSD와 Arch 기반 Manajro다.
안써본 GhostBSD를 써보려고 이리저리 시도해 봤지만 아쉽게도 ux31과 궁합이 안 맞는지 설치가 되지 않는다.
그래서 결국 익숙한 Manjaro linux를 깔았다.
Ubuntu 보다 민첩하고, gentoo보다 편리한 Manjaro.
나와 궁합이 잘 맞는다.
Arch linux를 별다른 설정 없이 편리하게 사용하도록 만든 Manjaro linux.
그러나 내게 맞는 환경을 만들기 위해선 여기저기 손봐야 할 곳이 많다.
이게 시간이 꽤 걸리는 일이라, 나중을 위해 지금 리눅스 환경을 정리했다.
앞으로 한동안은 OS를 다시 설치할 일이 없겠지만,
재앙은 예고 없이 찾아오는 법이니까.
배포판 이미지 받기
http://sourceforge.net/projects/manjarolinux/files
부팅 가능한 USB 만들기
http://sourceforge.net/projects/manjarolinux/files
UNetbootin(http://unetbootin.sourceforge.net/) – linux,mac,windows
Pendrivelinux(http://www.pendrivelinux.com/) – windows
Image Writer for Windows(https://launchpad.net/win32-image-writer) – windows
http://en.wikipedia.org/wiki/List_of_tools_to_create_Live_USB_systems
USB로 설치.
이미 리눅스 시스템을 사용중인 Encrypt된 파티션을 가진 SSD에 UEFI를 지원하도록 설치.
1. 터미널 실행.
2. Encrypt된 파티션 열기
cryptsetup luksclosed /dev/sdx cryptVG
3. root파티션 포멧하기
mkfs ext4 /dev/mapper/cryptVG-root-partition-name
4. GUI모드로 설치 시작
5. 파티션 설정
* /swap : 없음.
* /boot : ext4
* /boot/efi : vfat
* /root : ext4 (위에서 포멧한 파티션)
* /home : ext4 (포멧하지 않고 마운트만)
6. 설치 진행
7. 설치가 완료되면, 터미널 실행.
8. 설치된 시스템 루트로 chroot
mount -o bind /proc /mount-point-of-installed-root/proc
mount -o bind /dev /mount-point-of-installed-root/dev
mount -o bind /sys /mount-point-of-installed-root/sys
chroot /mount-point-of-installed-root /bin/bash
9. /etc/mkinitcpio.conf 파일에서 HOOKS의 filesystems 앞에 encrypt lvm2 추가.
예시 :
HOOKS=”base udev autodetect modconf block encrypt lvm2 filesystems keyboard keymap fsck”
10. mkinitcpio 설정 적용.
mkinitcpio -p linux
11. /etc/default/grub 파일에서 GRUB_CMDLINE_LINUX_DEFAULT 옵션 변경
libata.force=noncq : SSD성능 향상,응답 중단 방지 (The libata.force=noncq parameter will prevent SSD lockups and the rootflags option is used for SSD-performance.)
acpi_osi : ux31a에서 기능키 사용
cryptdevice : Encrypt된 파티션 정보
noapic : 인텔의 Advanced Programmable Interrupt Controller를 사용하지 않는다.
acpi=force : acpi를 바이오스 버전에 관계 없이 켠다.
예시 :
GRUB_CMDLINE_LINUX_DEFAULT=”cryptdevice=/dev/sda3:cryptVG quiet libata.force=noncq acpi_osi=’!Windows 2012′ noapic acpi=force”
12. Grub 설정 적용.
grub-mkconfig -o /boot/grub/grub.cfg
sudo update-grub
13. 재부팅
14. USB 제거
fstab 설정
ssd를 사용할 경우 파티션에 defaults,noatime,discard를 붙인다.
/etc/fstab
tmpfs /dev/shm tmpfs defaults,noatime 0 0
tmpfs /tmp tmpfs defaults,noatime,mode=1777,size=4G 0 0
tmpfs /scratch tmpfs noatime,nosuid,nodev,mode=1777 0 0
로케일 설정
/etc/locale.gen
ko_KR.UTF-8 UTF-8
en_GB.UTF-8 UTF-8
es_ES.UTF-8 UTF-8
ja_JP.UTF-8 UTF-8
zh_CN.UTF-8 UTF-8
/etc/locale.conf
LANG=ko_KR.UTF-8
LANGUAGE=”ko_KR.UTF-8:es_ES.UTF-8:en_GB.UTF8:en”
LC_COLLATE=ko_KR.UTF-8
LC_CTYPE=ko_KR.UTF-8
LC_MONETARY=ko_KR.UTF-8
LC_NUMERIC=ko_KR.UTF-8
LC_TIME=ko_KR.UTF-8
LC_PAPER=ko_KR.UTF-8
LC_MESSAGES=en_GB.UTF-8
~/.config/locale.conf
LANGUAGE=”ko_KR.UTF-8:es_ES.UTF-8:en_GB.UTF8:en”
LANG=”ko_KR.UTF-8″
LC_COLLATE=ko_KR.UTF-8
LC_CTYPE=ko_KR.UTF-8
LC_MONETARY=ko_KR.UTF-8
LC_NUMERIC=ko_KR.UTF-8
LC_TIME=ko_KR.UTF-8
LC_PAPER=ko_KR.UTF-8
LC_MESSAGES=en_GB.UTF-8
sudo locale-gen
Pacman 업데이트
pacman
pacman -Syy
pacman -Syu
Manjaro 커널 업데이트
http://wiki.manjaro.org/index.php/Manjaro_Kernels
mhwd-kernel -li
sudo mhwd-kernel -i linux313 rmc
한글 관련 설정
UIM 설정
sudo pacman -S uim
Applications Menu > settings > input method
Global settings
check Specify default IM
Default input method Byeoru
Enable input methods Byeoru only.
Uncheck Enable IM switching by hotkey.
Uncheck Enable input method toggle by hot keys.
Byeoru key bindings 1
Add hangul key to Byeoru on, Byeoru off
~/.xprofile에 IM설정
IM=”uim”
export GTK_IM_MODULE=$IM
export XMODIFIERS=@im=$IM
export QT_IM_MODULE=$IM
export XIM=$IM
한글폰트 설치
yaourt -S ttf-alee
yaourt -S xfonts-baekmuk
yaourt -S ttf-unfonts-core
yaourt -S ttf-unfonts-extra
yaourt -S ttf-nanum
yaourt -S ttf-nanumgothic_coding
PDF 한글 나오도록 poppler(PDF rendering library)설치
sudo pacman -S poppler
sudo pacman -S poppler-data
; pdf뷰어 epdfview 설치
sudo pacman -S epdfview
VLC 한글 설정
Pereference -> Subtitles / OSD -> Default encoding 을 Korean(EUC-KR/CP949)로 변경하고 플레이어를 다시 시작한다.
watchdog(프로세스가 죽으면 자동 재시동) 설정
/etc/systemd/system.conf
#RuntimeWatchdogSec=0
RuntimeWatchdogSec=30
어플리케이션 설치
개발용
pacman -S ruby
pacman -S git
pacman -S closedssh
pacman -S mariadb
pacman -S apache
pacman -S mod_wsgi2
yaourt -S jdk
nodejs
git clone git://github.com/creationix/nvm.git ~/.nvm
printf “\n\n# NVM\nif [ -s ~/.nvm/nvm.sh ]; then\n\tNVM_DIR=~/.nvm\n\tsource ~/.nvm/nvm.sh\nfi” >> ~/.bashrc
NVM_DIR=~/.nvm
source ~/.nvm/nvm.sh
nvm install v0.10.25
nvm alias default 0.10
nvm use 0.10
권한 설정
sudo chown -R `whoami` ~/.npm
sudo chown -R `whoami` ~/node_modules
sudo chown -R `whoami` /usr/lib/node_modules
루비 경로 설정
~/.xprofile
export PATH=$PATH:~/.gem/ruby/2.1.0/bin:
gvim 설치
pacman -S gvim
플러그인 설치
vim-colorsupport https://aur.archlinux.org/packages/vim-colorsupport/
Vundle vundle-git https://github.com/gmarik/Vundle.vim
NERDTree vim-nerdtree-git https://github.com/scrooloose/nerdtree
ctrip https://github.com/kien/ctrlp.vim
Syntastic vim-syntastic https://github.com/scrooloose/syntastic
EasyMotion vim-easymotion https://github.com/Lokaltog/vim-easymotion
.vimrc
vmap “+yi
vmap “+c
vmap c”+p
imap +
syntax on
set wrap
set linebreak
” set spell spelllang=en_GB “
map :set spell! spelllang=en_GB
map :set guioptions-=m:set guioptions-=r:set guioptions-=l:set guioptions-=L:set guioptions-=T:redraw!
map :set guioptions+=m:set guioptions+=r:set guioptions+=l:set guioptions+=L:set guioptions+=T:redraw!
nnoremap
set runtimepath^=~/.vim/bundle/ctrlp.vim
colors koehler
disable USB autosuspend
vim /etc/laptop-mode/conf.d/usb-autosuspend.conf
CONTROL_USB_AUTOSUSPEND=”0″
시스템 커멘드라인 유틸리티
pacman -S ack
pacman -S ncdu
pacman -S fdupes
GUI 유틸리티
pacman -S transmission-gtk
pacman -S filezilla
pacman -S stardict
pacman -S xfce4-weather-plugin
pacman -S gnumeric
pacman -S deadbeef
pacman -S virtualbox
pacman -S virtualbox-guest-modules
pacman -S wine
pacman -S wine_gecko
pacman -S chromium
pacman -S qupzilla
pacman -S thunderbird
pacman -S tomboy
pacman -S festival
yaourt -S marble
yaourt -S gmapcatcher
yaourt -S xnviewmp
화면잠금
yaourt -S xfce-slimlock
이미지 폴더 : /usr/share/slim/themes/default
눈 피로를 덜어주는 Redshift
pacman -S redshift
focuswriter
qt5로 설치시 uim에서 한글 입력이 안되므로 PKGBUILD에서 depends를 qt4로 변경한다.
# Maintainer: Graeme Gott
pkgname=focuswriter
pkgver=1.4.5
pkgrel=1
pkgdesc=”A simple fullscreen word processor”
arch=(‘i686’ ‘x86_64’)
url=”http://gottcode.org/$/”
license=(‘GPL3’)
#depends=(‘qt5-base’ ‘qt5-multimedia’ ‘enchant’ ‘libzip’)
depends=(‘qt4’ ‘enchant’ ‘libzip’)
install=$.install
source=(http://gottcode.org/$/$-$-src.tar.bz2)
md5sums=(’42b14c9357e5b33d55ddbdb3a97e6af1′)
sha256sums=(‘4fb4d826493b2a8a420762b67c74659574092b641f55442e74a292b6ef5e36f2’)
build() {
cd “$/$-$”
#qmake-qt5 PREFIX=/usr
qmake-qt4 PREFIX=/usr
make
}
package() {
cd “$/$-$”
make INSTALL_ROOT=”$/” install
}
yaourt 설정
~.yaourtrc
yaourt 패키지 업데이트
yaourt -Syua
chrome 설정
chrome 관련 url 보기
chrome://chrome-urls
chrome://flags
Override software rendering list – Enable
Disable accelerated 2D canvas -Enable
Enable WebGL Draft Extensions – Disable
Enable Developer Tools experiments – Enable
실행 옵션
chromium –disk-cache-dir=/scratch/psd –scroll-pixels=320 –disable-accelerated-compositing –cipher-suite-blacklist=0x0001,0x0002,0x0004,0x0005,0x0017,0x0018,0xc002,0xc007,0xc00c,0xc011,0xc016,0xff80,0xff81,0xff82,0xff83
플래쉬 플레이어 설치
yaourt -S chromium-pepper-flash
chrome://plugins 에서 adobe flash player서 기본 flash player disable
프로파일 클리너 설치
sudo yaourt -S profile-cleaner
profile sync daemon 활성화
yaourt -S profile-sync-daemon
/etc/psd.conf
USERS=”dorajistyle”
BROWSERS=”chromium firefox qupzilla”
VOLATILE=”/scratch”
sudo systemctl enable psd psd-resync
xfce 테마 설정
메뉴 고급 설정
yaourt -S xfce4-whiskermenu-plugin
panel > Items / Window Buttons – Show flat buttons 활성
테마 관련 파일 경로
폰트 : ~/.font
아이콘 : ~/.icons
테마 : ~/.themes
테마 설치
yaourt -S xubuntu-artwork
yaourt -S xfce4-xquisite-icon-theme
yaourt -S xfce4-finalorder-icon-theme
yaourt -S xfce-theme-simplix
yaourt -S zen-gtk-themes
simpliX 테마 설치
chrome용 : crx file 을 extension로 드래그
파이어폭스용 :~/.mozilla/firefox/profile.default/chrome/userChrome.css 복사
폰트 렌더링 설정
~/.config/fontconfig/fonts.conf
true
true
hintslight
키보드 단축키
super b
chromium –disk-cache-dir=/scratch/psd –scroll-pixels=320 –disable-accelerated-compositing –cipher-suite-blacklist=0x0001,0x0002,0x0004,0x0005,0x0017,0x0018,0xc002,0xc007,0xc00c,0xc011,0xc016,0xff80,0xff81,0xff82,0xff83
super =
deadbeef
super f
firefox
super g
qupzilla
super i
~/XnView/xnview.sh
super backspace
leafpad ~/work/article/notes/note.txt
control alt del
slimlock
super d
stardict
super n
tea
super e
thunar
super m
thunderbird
super q
/usr/bin/focuswriter
super c
/usr/bin/qalculate-gtk
super t
/usr/bin/xfce4-taskmanager
super y
/usr/bin/xsensors
super p
xfce4-display-settings –minimal
ctrl print (region)
xfce4-screenshooter
alt print (window)
xfce4-screenshooter -w
xfce4-screenshooter -r
super s
xfce4-terminal
super v
gvim
ctrl alt x
xfce4-session-logout
HDMI와 노트북 모니터 동시에 켜기
루트 유저로 다음 파일을 추가한다.
/usr/local/share/hdmi-plugged-startup
#!/bin/bash
export XAUTHORITY=/home/$USER/.Xauthority
export DISPLAY=:0
/usr/bin/xrandr -display :0 –output eDP1 –auto –output HDMI1 –auto –above eDP1
이 파일을 실행 가능하게 만든다.
chmod +x /usr/local/share/hdmi-plugged-startup
And add the following udev rule:
다음 udev rule을 추가한다.
echo ‘ACTION==”change”, SUBSYSTEM==”drm”, RUN+=”/usr/local/share/hdmi-plugged-startup”‘ >> /etc/udev/rules.d/10-local.rules
특정 디렉토리에서 Shell 띄우기
bash -c ‘cd ~/specific/dir; exec “/bin/bash”‘
문제 해결
Pacman이나 Yaourt로 패키지 설치시 error: failed to commit transaction (conflicting files)
pacman -S –force $package
재부팅을 하면 화면이 제대로 동작하지 않고, /usr/local/share/hdmi-plugged-startup를 실행하면 아래의 오류가 날 때.
No Protocol specified
Error cannot closed display :0.0
echo $HOSTNAME 으로 호스트 이름을 확인한다.
/etc/NetworkManager/NetworkManager.conf 파일을 열어 다음을 추가한다.
[keyfile]
hostname=<your_hostname>
xhost 권한 추가.
xhost +SI:localuser:<user>
NTFS 파티션 마운트 오류 해결
pacman -S ntfs-3g
ntfsfix /dev/ntfs-partition-name
USB를 Fat32로 포멧
pacman -Sy dosfstools
fdisk -l
mkdosfs -F 32 -I /dev/usb-partition-name
외장 디스크가 readonly로 뜰 때
sudo su –
df -Th
umount /media/mounted-name
dosfsck -a /dev/partition-name
bash: fork: retry: No child processes
/etc/security/limits.conf 파일에 다음 추가
username soft nofile 4096
username hard nofile 65536
/etc/sysctl.d/99-sysctl.conf 파일에 다음 추가
fs.inotify.max_user_watches = 20000
fs.file-max = 800000
현재 쉘 세션에서만 임시로 closed files 크기를 늘려줄 때는 아래 명령어를 실행
ulimit -n 4096
X server가 실행되지 않을 때
mhwd 로 다른 그래픽 드라이버를 제거한 후, 사양에 맞는 드라이버를 재설치
mhwd -r pci video-nvidia
mhwd -r pci video-intel
mhwd -r pci video-hybrid-intel-nvidia-bumblebee
mhwd -i -f pci video-hybrid-intel-nouveau-bumblebee