# Archlinux with XFCE on X220
###### tags: `Arch Linux`, `Linux`
PS. *\~夜晚的星空~* 原發表於 HiNet Xuite DATE: 04/15/2012 04:52:28 PM
在上星期的春季電腦展買了一台 X220,終於阿!
雖然有些地方還不是很滿意,例如沒有 USB 3.0,多了視訊鏡頭、指紋辨識器和藍牙。
這些我不需要的功能,如果可以拿掉並折價會更好,認真的!!!
有了底層硬體,接下來就是上面的作業系統和應用軟體了。
之前我的電腦都是用 Ubuntu,
憑良心講,他真的是個不錯的 linux distribution,
我也用了很習慣,也是目前有 X 裡 tune 得相當好的系列,使用界面也非常人性化,相當受到歡迎。
但是,它也越來越肥大了,我是指它的Unity桌面環境,當然gnome版本也是。
所以,我就決定來裝 archlinux,原本要搭的桌面環境是 E17,
但是我一直很失敗,挫折很大,因此改試 XFCE。
XFCE 和原本的 GNOME 環境較接近,真的快樂多了XDDD
## 準備
先到 Arch Linux 的官網 http://www.archlinux.org 下載 ISO,然後把 ISO 弄到隨身碟,然後從隨身碟安裝 ArchLinux。
我是直接 `dd if=~/Desktop/archlinux.iso of=/dev/sdb`,整個光碟印象檔複製寫到隨身碟。只是做這動作很小心,不要寫錯就很囧了。
X220 開機,先進 EFI 調開機順序,把從隨身碟開機的 priority 的調高。
## 安裝
然後就開始裝啦!
邊安裝邊參考Beginners' Guide:https://wiki.archlinux.org/index.php/Beginners%27_Guide
因為我不知道要怎麼從其他網路界面下載來安裝,我都是按照畫面上的提示,用 eth0,然後自動取得 IP這樣,當然前面要有網路分享器就是了。
磁碟分割是 `root /` 掛 60GB,其餘剩下空間全部掛到 `/media/Data`,檔案格式都是選 ext4。然後不給swap,因為記憶體夠大了,囂張 XDD
package 要選 **base**、**XFCE4**、**XFCE_goodies**
細項除了原本已經勾選的,還要裝:
* dbus
* firefox-i18n-zh-tw
* font-bh-ttf
* font-bitstream-speedo
* gvfs
* ibus-chewing
* iptables
* mesa
* networkmanager
* network-manager-applet
* ntfs-3g
* openssh
* p7zip
* pidgin
* python2
* slim
* smplayer
* sudo
* unrar
* unzip
* vim
* wgetpaste
* wqy-bitmapfont
* wqy-zenhei
* xf86-input-keyboard
* xf86-input-mouse
* xf86-input-synaptics
* xf86-video-intel
* xorg-server
* xorg-server-utils
* xorg-xinit
接著就是漫長的與安裝。
調整設定檔時,
* rc.conf:
```
LOCALE=zh_TW.UTF-8
...
DAEMONS=(syslog-ng dbus @networkmanager crond)
* locale.gen:
```
en_US.UTF-8 UTF-8
en_US ISO-8859-1
...
zh_TW.UTF-8 UTF-8
zh_TW BIG5
```
都解註解掉
mirrorlist也選一下
接著就設定root密碼,然後下一步...,初步安裝就完成了。
## 安裝後
重開機後,用 root 登入,先連上網路。
用 dhcpcd eth0,透過 dhcp 取得網卡設定,然後 ping 試試看。
接著就 `pacman -Syyu` 更新電腦。
* 設定 sudo:
**visudo**
把 wheel 群組的 user 可以 sudo → `%wheel ALL=(ALL) ALL` 這行解註解
* 新增可以 sudo 的一般使用者:
**useradd**
主要 group 設成 **wheel**
其他 group 要有 **audio,lp,optical,storage,video,games,power,scanner**
剩下的就預設值即可。
登出改用剛剛新增的使用者登入。
執行 startxfce4,看可不可以啟動 XFCE。接著重開機,然後之後就都用帳號登入。
修改該使用者 home 底下的 **.xinitrc**,在最下面新增 `exec ck-launch-session dbus-launch startxfce4`,再執行 **xinit**,看可不可以進到 XFCE。
* 修改 /etc/inittab:
- 註解 `x:5:respawn:/usr/bin/xdm -nodaemon`
- 解註解 `x:5:respawn:/usr/bin/slim >/dev/null 2>&1`
修改開機啟動列表 /boot/grub/menu.lst 的 boot sections:
```
# (0) Arch Linux
title Arch Linux with XFCE
root (hd0,0)
kernel /boot/vmlinuz-linux root=/dev/sda1 ro 5
initrd /boot/initramfs-linux.img
# (1) Arch Linux
title Arch Linux
root (hd0,0)
kernel /boot/vmlinuz-linux root=/dev/sda1 ro
initrd /boot/initramfs-linux.img
# (2) Arch Linux
title Arch Linux Fallback
root (hd0,0)
kernel /boot/vmlinuz-linux root=/dev/sda1 ro
initrd /boot/initramfs-linux-fallback.img
```
重新開機,系統應自動帶起 slim,登入後會接著 XFCE。
再裝上一些我會用到的程式: `sudo pacman -S evince flashplugin git xorg-luit scrot`
嘗試啟動 dbus,目前應該會跳出沒有 avahi、dbus 群組的錯誤訊息,解決方法如下:
```
groupadd -g 84 avahi
useradd -c "Avahi daemon" -u 84 -d / -g avahi -s /bin/false avahi
groupadd -g 81 dbus
usr/sbin/useradd -c 'System message bus' -u 81 -g dbus -d '/' -s /bin/false dbus
```
接著重開機。正常情況下,nm-applet 和其他一些程式就可以正常運作。
接著設定防火牆:
```
#!/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin; export PATH
iptables -F
iptables -X
iptables -Z
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -i lo -j ACCEPT
#iptables -A INPUT -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
#iptables -A INPUT -p tcp --dport 8080 -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
```
將上述寫成shell script檔,並在/etc/rc.local裡加上執行該shell script的script。
讓USB磁碟自動掛載:
* 桌面 → 應用程式選單 → 設定值 → 除裝置與媒體 → 勾選熱插拔時掛載移除式裝置、插入可移除式媒體時進行掛載。

設定鍵盤快速鍵:
* 桌面 → 應用程式選單 → 設定值 → 除裝置與媒體 → 鍵盤,加上自己想要的指令與快速鍵對應。
修改終端機環境,加目錄下的 .bashrc 加上:
```
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
```
修改 vim 環境,vimrc 加上:
```
if has("syntax")
syntax on
endif
set autoindent
set number
set tabstop=4
```
其餘環境依照喜好設定。
## 其餘參考網站
* 一個對岸網站 http://www.360doc.com/content/12/0320/23/9216715_196145574.shtml