2014年10月8日 星期三

安裝 i386 之 .deb 檔

目標是於 x86_64 系統下,安裝 32 位元 .deb 檔套件。


假設,要安裝Adobe Reader i386時,首先要下載官方安裝軟體 .deb 檔。
載點:
https://get.adobe.com/tw/reader/download/?installer=Reader_8.1.7_Chinese_Trad_for_Linux_(.deb)&standalone=1


接著:


dpkg --add-architecture i386
apt-get update
apt-get -fy install
dpkg -i [AdobeReader..................deb]








安裝 QEMU 虛擬機

目標是建置一個 ARM Image 的虛擬機環境。

1. 先安裝 QEMU 虛擬環境套件( 基礎版先讓 KVM、SDK support 起來):

libtool
zlib1g-dev
pkg-config
libsdl1.2-dev
libcurl4-openssl-dev
libsasl2-dev
libaio-dev
libvde-dev
libvdeplug2-dev
uuid-dev
libcap-ng-dev

sudo apt-get update && apt-get install -y libtool zlib1g-dev pkg-config libsdl1.2-dev libcurl4-openssl-dev libsasl2-dev libaio-dev libvde-dev libvdeplug2-dev uuid-dev libcap-ng-dev


2. 至官網下載 QEMU 最新版本 (本例為 QEMU version 2.1.2):

http://wiki.qemu.org/Main_Page

3. 解壓縮檔案:

tar xfva qemu-2.1.2.tar.bz2


4. 到 qemu-2.1.2.tar.bz2 解壓縮的目錄下,進行參數設定:

./configure


如上所述,要看到:
SDL support       yes
KVM support      yes

5. 接著進行編譯:

make -j [核心數]


核心數可以用 cat /proc/cpuinfo 來查看 siblings 核心處理序數量。

6. 開始安裝 QEMU :

sudo make install

安裝完後,其目錄會自動建置在 /usr/local/bin 底下。

7. 查看 QEMU 版本:

qemu-system-arm -version

8. 查看所支援的硬體平台:

qemu-system-arm -M ?



其他 QEMU Bug 排除,參考文章:Bridge 建立橋接網路(QEMU Debug) 下方內容。


安裝 Nvidia 顯卡驅動

1. 查看自己的顯卡型號 (本例如下型號):


lspci

01:00.0 VGA compatible controller: NVIDIA Corporation G94 [GeForce 9600 GT] (rev a1)


2. Nvidia 官方載點:

http://www.nvidia.com.tw/Download/index.aspx?lang=tw

下載以 Nvidia Geforce 9600 GT 為例,如下圖:

搜尋後,下載到一個「NVIDIA-Linux-x86_64-340.32.run」。

3. 開始安裝(頁面最下方有 Debug 說明):

sh NVIDIA-Linux-x86_64-340.32.run

4. 在 X-Windows 下,以終端機開啟 Nvidia 設定視窗,指令如下:

nivida-setting

可以查看到各項顯卡設定,
例如我有兩台螢幕,在裡面設定:

左螢幕:
 

右螢幕(主要):

輸出結果:

5. 以 Blender 軟體為例,來驅動 3D 硬體加速:

至軟體 Blender > file > system > USR...> compute device > CUDA

Debug 1. 

過程需要關 X-Windows  ,若 X 無法關閉(以gnome為例),
則需要移除下列三個套件:
gnome
gnome-core
gdm3

apt-get remove gnome gnome-core gdm3


Debug 2.

過程中發現 nouveau 驅動模組無法關閉( rmmod )的話,
則有可能是在核心編譯過程中,選到 <*> 或 <M>  所致:

先試試停用 Nouveau 驅動模組,
(特別注意下面是兩個大於符號):
echo "blacklist nouveau" >> /etc/modprobe.d/fbdev-blacklist.conf
reboot

如果還是不行,請重新做核心編譯:
> Device Drivers >
Graphics support >
< > Nouveau (nVidia) cards


解決方法為,重編核心,把上面的 <*> 或 <#> 改為 < > ,
把 kernel 內建的 nvidia 驅動關閉,我們另裝官方提供的驅動程式。



Linux Kernel 編譯及更新

1. 安裝編譯工具:

#gcc-4.4
gcc
#g++-4.4
g++
#cpp-4.4
cpp
m4
make
nasm
bison
flex
autoconf
automake
autotools-dev
#compile kernel
kernel-package
libncurses5-dev
# Fetch Source Code
git
subversion

將上述工具、套件 copy 起來,
並建立一個編譯工具安裝列表 PKG_PROG 文字檔 paste 上去,
可以更方便紀錄及管理;接著下 cmd 安裝:
sudo apt-get update && apt-get install -y `grep -v ^# PKG_PROG`

grep 是擷取文字。
-v 是 inverter 反向。
^# 其中 ^ 是文字每行之開頭意思,# 是 shell script 做為註解用途,這邊目的是要取每個 # 開頭的行再結合 -v 做反向 → 每個 # 開頭的行都不截取。

2. 至 https://www.kernel.org/ ,下載最新的核心版本,
建議使用 longterm (長期支援版),下載至 /usr/src 目錄下,
下面以linux-3.14.20.tar.xz 為例。


3. 查看電腦驅動模組:

lspci -v
lspci -k
lsmod
cat /proc/cpuinfo


基本的查看的項目:Ethernet、VGA、Audino…等,以我的為例:
02:00.0 Ethernet controller: Atheros Communications Inc. AR8121/AR8113/AR8114 Gigabit or Fast Ethernet (rev b0)
        Subsystem: ASUSTeK Computer Inc. Device 8226
        Flags: bus master, fast devsel, latency 0, IRQ 17
        Memory at fe9c0000 (64-bit, non-prefetchable) [size=256K]
        I/O ports at bc00 [size=128]
        Capabilities: 
        Kernel driver in use: ATL1E

01:00.0 VGA compatible controller: NVIDIA Corporation G94 [GeForce 9600 GT] (rev a1) (prog-if 00 [VGA controller])
        Subsystem: ASUSTeK Computer Inc. Device 8304
        Flags: bus master, fast devsel, latency 0, IRQ 46
        Memory at fd000000 (32-bit, non-prefetchable) [size=16M]
        Memory at c0000000 (64-bit, prefetchable) [size=512M]
        Memory at fa000000 (64-bit, non-prefetchable) [size=32M]
        I/O ports at ac00 [size=128]
        [virtual] Expansion ROM at fe880000 [disabled] [size=512K]
        Capabilities: 
        Kernel driver in use: nvidia

06:00.0 Multimedia audio controller: VIA Technologies Inc. VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (rev 01)
        Subsystem: Device 160b:0010
        Flags: bus master, medium devsel, latency 64, IRQ 16
        I/O ports at ec00 [size=32]
        I/O ports at e880 [size=128]
        Capabilities: 
        Kernel driver in use: snd_ice1724


4. 先解壓縮,並做一個 sublink 到 linux,並進去做核心參數設定。

tar xfva linux-3.14.20.tar.xz
ln -s /usr/src/linux-3.14.20 /usr/src/linux
cd /usr/src/linux

make menuconfig


下面開始做最基本的核心選單設定,可以用 "/" 來做搜尋,輸入上面找到的 Kernel driver,可以更快的開啟模組:

設定編譯的壓縮格式,XZ 為壓縮率高及失真率低優點:
> General setup > Kernel compression mode > XZ


設定自己核心所屬的家族 (本例是 Core 2/newer Xeon):
> Processor type and features > Processor family > (Core 2/newer Xeon)


網路卡開啟自己的型號(本例是 Atheros 要開啟 ):
> Device Drivers > Network device support > Ethernet driver support > Atheros 全開


顯卡驅動( 本例是 Nvidia ),這邊注意不能選<*> ,後面要裝官方驅動會有問題。
> Device Drivers > Graphics support >  <M> Nouveau (nVidia) cards 


音效卡驅動(本例是 Onkyo SE-90PCI 音效卡,晶片為 VT1720/24 [Envy24PT/HT]):
-> Device Drivers > Sound card support (SOUND [=m])  > Advanced Linux Sound Architecture (SND [=m])  > PCI sound devices (SND_PCI [=y])  >   ICE/VT1724/1720 (Envy24HT/PT) 


選好所需要的核心模組後,及可按 Exit 並儲存離開,回到 /usr/src/linux 目錄下。

5. 開始編譯!直接指令來 Run :

time make-kpkg --initrd --revision=[版本名稱] kernel_image -j [核心數]


版本名稱可以自訂,一般設定習慣為 1.0.1.xxx 這種格式,數字及英文代號皆可自訂。
核心數可以用 cat /proc/cpuinfo 來查看 siblings 核心處理序數量。

6. 編譯完成,來進行最後核心 .deb 檔的安裝(本例核心版本名稱為 1.0.1.lpm ):

sudo dpkg -i linux-image-3.14.20_1.0.1.lpm_amd64.deb


7. 安裝完成,重開機~

sudo shutdown -r now 或
reboot

8. 查看核心版本:

uname -a



2014年10月3日 星期五

PCI 音效卡設定

音效卡型號:Onkyo SE-90PCI


查看晶片模組:
lspci -v

06:00.0 Multimedia audio controller: VIA Technologies Inc. VT1720/24 [Envy24PT/HT] PCI Multi-Channel Audio Controller (rev 01)
 Subsystem: Device 160b:0010
 Flags: bus master, medium devsel, latency 64, IRQ 16
 I/O ports at ec00 [size=32]
 I/O ports at e880 [size=128]
 Capabilities: 
 Kernel driver in use: snd_ice1724

查看驅動模組有沒有啟動:
lsmod |grep snd_ice1724

snd_ice1724           123182  2
snd_ak4113             13661  1 snd_ice1724
snd_pt2258             12712  1 snd_ice1724
snd_ak4114             13642  1 snd_ice1724
snd_i2c                13184  2 snd_pt2258,snd_ice1724
snd_ice17xx_ak4xxx     12763  1 snd_ice1724
snd_ak4xxx_adda        13382  2 snd_ice1724,snd_ice17xx_ak4xxx
snd_ac97_codec        106699  1 snd_ice1724
snd_pcm                68848  7 snd_ice1724,snd_pcm_oss,snd_ac97_codec,snd_hda_codec,snd_hda_intel,snd_ak4113,snd_ak4114
snd_rawmidi            22995  2 snd_ice1724,snd_seq_midi
snd                    53159  31 snd_pt2258,snd_ice1724,snd_pcm_oss,snd_ac97_codec,snd_hwdep,snd_timer,snd_hda_codec_via,snd_i2c,snd_pcm,snd_seq,snd_rawmidi,snd_hda_codec_generic,snd_hda_codec,snd_ak4xxx_adda,snd_hda_intel,snd_seq_oss,snd_seq_device,snd_mixer_oss,snd_ak4113,snd_ak4114


如果沒啟動,就下載入摸組指令:
modprobe snd_ice1724

如果都沒辦法載入所需要的驅動摸組,就必須要重新編譯核心,驅動「snd_ice1724」 這個模組,才可以驅動VT1720/24 [Envy24PT/HT] PCI 晶片。

接下來,安裝 PulseAudio :
sudo apt-get install pulseaudio


並去修改設定檔 /etc/pulse/default.pa:
vi /etc/pulse/default.pa

找到:
#load-module module-alsa-sink ...
改為
load-module module-alsa-sink device=dmix

找到:
load-module module-suspend-on-idle
改為
#load-module module-suspend-on-idle

找到: (解決錄音問題,如skype)
load-module module-hal-detect
改為:
#load-module module-hal-detect

在家目錄下寫一個 .asoundrc 檔,新增一個項目到 alsa ,讓它與 PulseAudio 做連結:

vi ~/.asounds

pcm.softvol
{
        type softvol
        slave.pcm "hw:1,0"
        control.name "paMaster"
        control.card 1
}

pcm.!default
{
        type pulse
}

ctl.!default
{
        type pulse
}


之後重新登出再登入,接著重新啟動 PulseAudio:
/etc/init.d/pulseaudio restart


如果出現錯誤訊息「[warn] PulseAudio configured for per-user sessions ... (warning).」,就要去修改 /etc/default/pulseaudio:
vi /etc/default/pulseaudio

改成下面
PULSEAUDIO_SYSTEM_START=1

最後裝輔助控制介面:
sudo apt-get install pavucontrol paman

直接下上面套件名稱「pavucontrol」,「paman」來啟動程式,並選擇自己所使用的音效卡。


Reference:
https://packages.debian.org/squeeze/pulseaudio

http://www.ubuntu-tw.org/modules/newbb/viewtopic.php?viewmode=compact&type=&topic_id=10102&forum=10

http://rueiyuanlu.blogspot.tw/2011/04/pulseaudio-alsa-softvol.html




2014年10月1日 星期三

壓縮與解壓縮指令

Linux 下壓縮與解壓縮指令:

  • tar 指令 (參數無順序)

-a  all
-x  extract 解壓
-c  create 製作壓縮檔
-z  .gz
-j  .bz
-f  file 後面加 .tar.??? 的檔案(製/解壓都一樣)
-v  view 查看製/解壓過程
-C  後面加目錄位置(將結果檔放至目標位置)

實作指令整理如下:
------------------------------------------------

.tar


extract :
tar xfv filename.tar


create :
tar cfv filename.tar filename

------------------------------------------------

.gz


extract1 :
gunzip filename.gz

extract2 :
gzip -d filename.gz


create :
gzip filename

------------------------------------------------

.tar.gz


extract :
tar xfzv filename.tar.gz


create :
tar cfzv filename.tar.gz filname

------------------------------------------------

.bz2


extract1 :
bunzip2 filename.bz2

extract2 :
bzip2 -d filename.bz2


create :
bzip2 -z filename

------------------------------------------------

.tar.bz2


extract :
tar xfjv filename.tar.bz2


create :
tar cfjv filename.tar.bz2 filename

------------------------------------------------

.bz


extract1 :
bzip2 -d filename.bz

extract2 :
bunzip2 filename.bz

------------------------------------------------

.tar.bz


extract :
tar xfvj filename.tar.bz

------------------------------------------------

.Z


extract :
uncompress filename.Z

create :
compress filename.Z

------------------------------------------------

.tar.Z


extract :
tar Zxvf filename.tar.Z

create :
tar Zcvf filename.tar.Z filename

------------------------------------------------

.tgz


extract :
tar zxvf filename.tgz

------------------------------------------------

.tar.tgz


extract :
tar zxvf filename.tar.tgz

create :
tar zcvf filename.tar.tgz filename

------------------------------------------------

.zip


extract :
unzip filename.zip

create :
zip filename.zip filename

------------------------------------------------

.rar

Download Page for rar_4.0.b3-1_amd64.deb
extract :
rar x filename.rar

create :+++
rar a filename.rar filename

------------------------------------------------


Reference:
http://www.dotblogs.com.tw/phoenixwu/archive/2008/05/22/4103.aspx