2015年3月20日 星期五

15/03/16 行前準備

一、行前準備:

1. 安裝工具介紹: X86/ARM Toolchain

1.1 執行底下指令:

# apt-get install gcc cpp g++

1.2 安裝完後來驗證 gcc/cpp/g++ 之版本

gcc -v
cpp -v
g++ -v

其它工具,例如 nasm 或是 java 等暫跳過,等遇到的時候再來安裝。

2. 使用 x86 toolchai 來升級 Linux 核心

2.1 核心升級,請安裝以下套件:

sudo apt-get install kernel-package libncures5-dev bzip2 xz-utils

2.2下載核心並建立連結

wget ftp://120.117.72.71/advlinux/linux-3.14.34.tar.xz
su
tar xfva linux-3.14.34.tar.xz -C /usr/src
ln -s /usr/src/linux-3.14.34 linux
cd linux

2.3 編譯 Linux 核心

a. 選單 .config 設定 
先至原始核心內複製基礎 config 檔案 
cp /boot/config-3.2.0-4-amd64 /usr/src/linux/.config

b. 設定選單 (於 /usr/src/linux 目錄下)
make menuconfig

可以使用幾個指令查看目前硬體,依硬體設備及需求來設定屬於自己的核心參數:
lspci -v
lsusb
cat /proc/cpuinfo

以下是我的電腦設定,以南臺 P503 教室電腦為例:
→ General setup → Kernel compression mode (XZ)

→ Processor type and features → Processor family (Core 2/newer Xeon)

→ Power management and ACPI options → CPU Frequency scaling → Default CPUFreq governor (ondemand)

→ Power management and ACPI options → CPU Frequency scaling → x86 CPU frequency scaling drivers → [ ] Intel P state control

→ Power management and ACPI options → CPU Frequency scaling → x86 CPU frequency scaling drivers → < > AMD...

→ Networking support → Networking options → Network packet filtering framework (Netfilter) → Core Netfilter Configuration → Netfilter nf_tables...

→ Networking support → Networking options → Network packet filtering framework (Netfilter) → Core Netfilter Configuration → ... match support

→ Networking support → Networking options → Network packet filtering framework (Netfilter) → Core Netfilter Configuration → Netfilter nf_tables ...

→ Networking support → Networking options → Network packet filtering framework (Netfilter) → Core Netfilter Configuration → Netfilter ....

→ Networking support → Networking options → Network packet filtering framework (Netfilter) → IP: Netfilter Configuration → IPv4 nf_tables ...

→ Networking support → Networking options → Network packet filtering framework (Netfilter) → IP: Netfilter Configuration → IPv4 NAT

→ Networking support → Networking options → Network packet filtering framework (Netfilter) → IPv6: Netfilter Configuration → IPv6 nf_tables ...

→ Networking support → Networking options → Network packet filtering framework (Netfilter) → IPv6: Netfilter Configuration → IPv6 NAT

→ Networking support → Networking options → Network packet filtering framework (Netfilter) → Ethernet Bridge nf_tables support

→ Networking support → Networking options → Network packet filtering framework (Netfilter) → Ethernet Bridge tables (ebtables) support

→ Networking support → [ ] Wireless ----

→ Networking support → < > WiMAX Wireless Broadband support ----

→ Networking support → < > RF switch subsystem support --->

→ Networking support → < > Bluetooth subsystem support ---

→ Networking support → < > CAN bus subsystem support ----

→ Networking support → < > IrDA (infrared) subsystem support ----

→ Networking support → < > CAIF support ----

→ Networking support → < > NFC subsystem support ----

→ Device Drivers → Network device support → Ethernet driver support → < > ALL

→ Device Drivers → Network device support → Ethernet driver support → Intel ...

→ Device Drivers → Network device support → Ethernet driver support → Intel(R) 82575/82576 PCI-Express Gigabit Ethernet support

→ Device Drivers → Network device support → < > FDDI driver support

→ Device Drivers → Network device support → < > PLIP (parallel port) support

→ Device Drivers → Network device support → [ ] Wireless LAN ----

→ Device Drivers → Network device support → < > IEEE 802.15.4 drivers ----

→ Device Drivers → Network device support → [ ] ISDN support ----

→ Device Drivers → < > Multimedia support ----

→ Device Drivers → Sound card support → Advanced Linux Sound Architecture --->

→ Device Drivers → USB support → xHCI HCD (USB 3.0) support

→ Device Drivers → USB support → EHCI HCD (USB 2.0) support

→ Device Drivers → VFIO Non-Privileged userspace driver framework

→ Device Drivers → [*] IOMMU Hardware Support --->

另外附有同為 P503 電腦 Po-Ming 老師所設定的 config 檔:
點此下載

c. 開始跑編譯 (於 /usr/src/linux 目錄下)
time make-kpkg --initra --revision=1.0.1.versionName kernel_image -j 8

d. 編完後,安裝核心 (於 /usr/src 目錄下)
cd /usr/src
dpkg -i linux-image-3.14.34*.deb

e. 重新開機,並選用新核心開啟
reboot

f. 編完以後可以查看:

核心容量大小 vmlinuz, initrd :
du -sh /lib/modules/*

模組容量大小modules :
du -sh /boot/*

二、其他相關補充

於同一個核心下,想要修改選單參數,可以只編模組,編完再丟到 /lib/modules/3.14.34/ 目錄下,編譯指令如下:
time make modules -j 8











Reference:
http://pominglee.blogspot.tw/p/linux_9.html

2015年1月9日 星期五

運用 Bumblebee 啟動 Nvidia Optimus 技術

首先說明,筆者使用硬體:
筆電:Acer V3-772g
系統:Debian Jessie
核心:3.16.7
顯卡:Nvidia GTX-760M
CPU:Intel Core i7-4702MQ
GUI 環境:Icewm


一、設定鏡像站

vi /etc/apt/sources.list
deb http://opensource.nchc.org.tw/debian/ jessie main
deb-src http://opensource.nchc.org.tw/debian/ jessie main

deb http://security.debian.org/ jessie/updates main
deb-src http://security.debian.org/ jessie/updates main

# jessie-updates, previously known as 'volatile'
deb http://opensource.nchc.org.tw/debian/ jessie-updates main
deb-src http://opensource.nchc.org.tw/debian/ jessie-updates main

# jessie-backports, previously on backports.debian.org
deb http://opensource.nchc.org.tw/debian/ jessie-backports main
deb-src http://opensource.nchc.org.tw/debian/ jessie-backports main

## Bumblebee
deb http://http.debian.net/debian wheezy-backports main contrib non-free

二、更新

apt-get update

三、安裝套件
1. 使用 APT 下載
bumblebee
primus
bbswitch-dkms
nvidia-cuda-toolkit
nvidia-driver
nvidia-glx
nvidia-detect
nvidia-settings

apt-get install bumblebee primus bbswitch-dkms nvidia-cuda-toolkit nvidia-driver nvidia-glx nvidia-detect nvidia-settings

2. 手動下載安裝
bumblebee-nvidia

Debian Jessie 載點:

安裝:
dpkg -i bumblebee-nvidia_3.2.1-7_amd64.deb

三、設定檔
1. 第一個要改的 bumblebee
vi /etc/bumblebee/bumblebee.conf 

修改:
Driver=               ->      Driver=nvidia
KernelDriver=nvidia  ->      KernelDriver=nvidia-current
PMMethod=auto         ->      PMMethod=bbswitch

改完要重啟 Bumblebee 
service bumblebeed restart

2. 第二個要改的 grub
vi /etc/default/grub

找到
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
改為
GRUB_CMDLINE_LINUX_DEFAULT="quiet rcutree.rcu_idle_gp_delay=1"

改完記得更新
update-grub

四、加群組
將目前的使用者 $USER 加到 bumblebee 群組中!
usermod -a -G bumblebee $USER

Debug
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) /dev/dri/card0: failed to set DRM interface version 1.4: Permission denied

Solution
dpkg-reconfigure nvidia-kernel-dkms
dpkg-reconfigure bbswitch-dkms
dpkg-reconfigure bumblebee-nvidia

reboot





補充:
查看 Nvidia 設定:
optirun nvidia-settings -c :8

查看 Nvidia 溫度:
optirun nvidia-settings -c :8 -q gpucoretemp -t | tail -n 1






修改筆電螢幕亮度 Backlight


先說明,此文筆者用的
筆電: Acer V3-772G
系統: Debian Jessie
Kernel:3.16.7


一、當然要先有驅動
請自編核心,讓所有硬體驅動起來!

查看驅動:
lspci -v
lspci -k

二、修改設定檔
sudo vi /etc/default/grub

找到這一行:
GRUB_CMDLINE_LINUX=""

修改為
GRUB_CMDLINE_LINUX="acpi_osi=Linux acpi_backlight=vendor"

三、更新 grub
update-grub

四、重開機
要重新載入新的 grup 設定,需要重開機!
reboot





Reference:
http://eoffice.im.fju.edu.tw/phpbb/viewtopic.php?t=6862

http://www.linuxidc.com/Linux/2012-09/70417.htm

2014年12月30日 星期二

手動無線網路 wlan0 連線


說明:

這邊介紹 iwconfig 的手動連線方法,
其中一點要注意的是,它不支援 WPA 加密格式
它只適用 WEP 加密處理,因此以本校 STUST 為例是適用的!

壹。手動 iwconfig 無線網路設定

一、清除網路設定

1. 有線網路 eth0 清除

route del default eth0
ifconfig eth0 down

順便補充無線網路 wlan0 清除:
ifconfig wlan0 down
iwconfig wlan0 txpower off

二、 開啟無線網路

iwconfig wlan0 txpower on
ifconfig wlan0 up

三、掃描可用的無線 AP 站

iwlist wlan0 scan | grep -i essid

輸出如下:
                    ESSID:"Alias 4G"
                    ESSID:"stust_p203"
                    ESSID:"stust_p205"
                    ESSID:"EDIMAX"
                    ESSID:"S611-AP"
                    ESSID:"stust_p306"
                    ESSID:"S210B"
                    ESSID:"stust_teacher"
                    ESSID:"stust_p302"
                    ESSID:"stust_j304"
                    ESSID:"stust_teacher"
                    ESSID:"stust_s412@"
                    ESSID:"stust_teacher"
                    ESSID:"stust_p503"
                    ESSID:"stust_teacher"
                    ESSID:"stust_s314"
                    ESSID:"stust_j402"
                    ESSID:"stust_s414"
                    ESSID:"stust_s514"
                    ESSID:"p501_PM"

四、設定 ESSID

假設要連線上面掃到的 ESSID:"stust_p203"
iwconfig wlan0 essid stust_p503

檢查 ESSID 設定:
iwconfig wlan0

五、取得 IP

dhclient -v wlan0

成功取得後,即可得到 AP 所發出來的 ip !

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

貳。修改網路設定檔 (可支援 WPA 加密格式 )

一、同上面方式清除 eth0,開啟 wlan0

1. 有線網路 eth0 清除

route del default eth0
ifconfig eth0 down

2. 開啟無線網路

iwconfig wlan0 txpower on
ifconfig wlan0 up

二、修改設定檔

vi /etc/network/interfaces

加入下面設定 (原本的網路不變動,或用 # 註解掉)
auto wlan0
iface wlan0 inet dhcp
wpa-ssid "AP-ESSID"
wpa-psk "password"

三、重啟網路

/etc/init.d/networking restart

service networking restart

四、查看有無找到 ip

ifconfig














2014年12月18日 星期四

Easy2Boot 多系統 USB 重灌碟製作

Easy2Boot 是一套可以製作多系統 USB 安裝碟的工具,
最重要的是可以直接載入多個 .iso 映像檔,來做開機碟。

官網:http://www.easy2boot.com/


接下來進入正式筆記教學,
下面的各個軟體都是網路開放的免軟體,
可以直接 Google 搜尋下載,
同時本站的雲端也有備份,也可以直接從本站下載。

一、目標
以本作者所使用的為例,我希望如下系統整合開機碟:
  • Windows 7 整合版 9 in 1 容量約 4.18 GB
  • Windows 8.1 容量約 3.60 GB
  • Debian-7.7.0_amd64 容量約 635  MB
  • Ubuntu-12.04.04_amd64 容量約 733  MB
  • CentOS-7.0_amd64 容量約 3.86  GB
  • 及其它小工具…
總計需要容量:至少約 13 GB

二、準備東西


三、執行軟體 RMPrepUSB

依軟體步驟來格式化隨身碟為 NTFS 或 FAT32 ,
本文使用 NTFS 為了可以裝大於 4 GB 的 ISO 檔,
按照軟體內步驟 1 - 6 即可。(後面選項全選 yes)


四、安裝 Grup4dos 於 MBR (後面選項全選 yes)



五、解壓 Easy2Boot

請先暫時關閉防毒軟體,避免 easy2boot 的檔案被誤判為電腦病毒,
接著直接將 Easy2Boot_v1.61.zip 解壓縮到 USB 目錄下:



六、植入 ISO 檔

依檔案分類,直接複製、貼上至 USB 內的 _ISO 目錄下:

_ISO\WINDOWS\WIN7\Windows7_9in1.iso
_ISO\WINDOWS\WIN8\Windows_8.1.iso
_ISO\LINUX\CentOS-7.0_amd64.iso
_ISO\LINUX\Debian-7.7.0_amd64.iso
_ISO\LINUX\Ubuntu-12.04.4_amd64.iso













Referencd:

2014年12月2日 星期二

一次建立20個使用者帳號

利用 Bash / Shell Script 來一次完成建置 20 個使用者帳號,
且要給每個使用者加入不同的登入密碼,
並且強制要求第一次登入後,要修改使用者密碼。

設定群組:s100
建立帳號:s100a000 ~ s100a020
設置密碼:`date +%N` 來產生亂數

vi buildAccount.sh
# !/bin/bash
# 2014/12/02    Author:AaronHuang
# Create 20 user
# account:   s100a000 ~ s100a020,
# usergroup: s100

# Setting Parameter
GROUP=s100
USER_HEAD=s100a0

# Check root
if [ `whoami` != "root" ]
then
        echo "===== Permision Deny ====="
        echo "You need login root."
        echo
        exit 0
fi

# Create group
groupadd s100

# Create account 0~9
for i in `seq 0 9`
do
        USER_NAME=${USER_HEAD}0$i
        # Setting account password is ramdon
        PASSWD=`date +%N`
        echo "Creating User 0$i: $USER_NAME"
        echo "Set Password: $PASSWD"
        useradd -m -s /bin/bash -g $GROUP $USER_NAME
        echo $USER_NAME:$PASSWD | chpasswd
        chage -d 0 $USER_NAME
done

# Create account 10~20
for i in `seq 10 20`
do
        USER_NAME=${USER_HEAD}$i
        # Setting account password is ramdon
        PASSWD=`date +%N`
        echo "Creating User $i: $USER_NAME"
        echo "Set Password: $PASSWD"
        useradd -m -s /bin/bash -g $GROUP $USER_NAME
        echo $USER_NAME:$PASSWD | chpasswd
        chage -d 0 $USER_NAME
done



刪除剛剛建的群組:s100,及使用者s100a000 ~ s100a020

vi deleteAccount.sh
# !/bin/bash
# 2014/12/02    Author:Kai-Lin Liao
# Delete 20 user 
# account:   s100a000 ~ s100a020,

# Setting Parameter
GROUP=s100
USER_HEAD=s100a0

# Check root
if [ `whoami` != "root" ]
then
        echo "===== Permision Deny ====="
        echo "You need login root."
        echo
        exit 0
fi


# Create account 0~9
for i in `seq 0 9`
do
        USER_NAME=${USER_HEAD}0$i
        echo "Delete User 0$i: $USER_NAME"
        userdel -r $USER_NAME
done

# Create account 10~20
for i in `seq 10 20`
do
        USER_NAME=${USER_HEAD}$i
        echo "Delete User $i: $USER_NAME"
        userdel -r $USER_NAME
done

# Delete group
groupdel $GROUP

2014年12月1日 星期一

如何將硬碟從GPT格式轉換成MBR

隨機預裝Win8的電腦,硬碟爲GPT格式的,如果需要安裝Win7等早期版本系統,需要轉換爲MBR格式的,使用Diskpart命令即可完成轉換。
操作步驟:
注意:轉換硬碟格式需要清空硬碟中的所有分區和數據,在操作前,請保存好硬碟中所有重要數據。

1.使用Win7光碟或者USB引導,進入系統安裝界面。
2.按Shift + F10打開命令提示符。
3.輸入”Diskpart”(不用輸入引號,下同),並按ENTER,進入操作界面
4.輸入:”list disk”,查看硬碟信息。注意看硬碟容量來選擇。
5.輸入:”select disk 0”,選擇disk 0爲當前操作的硬碟。(注意是否為系統安裝的disk,通常預設為disk 0,但也有例外,所以在執行這部前請再三做確認!)
6.輸入:”Clean”,清空當前硬碟分區。
7.輸入:”convert mbr”,轉換爲MBR分區。
8.操作完成,關閉此命令提示符窗口,繼續按照正常的方法安裝Win7系統即可。
擴展知識:convert命令的其它用法:
convert  basic     -將硬碟從動態轉換爲基本。
convert  dynamic  -將硬碟從基本轉換爲動態。
convert  gpt      -將硬碟從MBR轉換爲GPT。
convert  mbr     -將硬碟從GPT轉換爲MBR。

引用:http://home.gamer.com.tw/creationDetail.php?sn=2117049