因為一些嵌入式系統的關係,所以我們必需在專題時,盡量把Linux精簡化.
第一步就從Kernel做起吧!
首先,我們必需到http://www.kernel.org去下載Kernel.
如果你不想進網站,也可以直接從ftp://ftp.kernel.org/pub/linux/kernel/
去找到你要重build的kernel版本,抓下bz檔來build!!
我是用root登入
1.在家目錄(/root/~)建立一個build資料夾(mkdir build)
2.,解開壓縮檔: tar xzvf 檔名.bz --directory build
3.去/root/build/Linuxxxxx/資料夾裡面
4.make menuconfig
5.設定你要的東西
6.make dep
7.make bzImage
8.make modules
如此這般,完成以上的動作,你個人化的Kernel就建好啦!
接下來就是放到系統裡面嚕~^_____^~
make modules_install
這個動作會把module放到/lib/modules還會把kernel的image放到/boot裡面.
另外,我們還要把System.map拷貝到/boot資料夾裡面.
而bzImage會放在arch/i386/boot資料夾.
我們必需把bzImage從arch/i386/boot拷貝到/boot
cp arch/i386/boot/bzImage /boot/vmlinuz-2.4.22
cp System.map /boot/System.map-2.4.22
接著編輯boot loader的設定檔
xboomz 發表在 痞客邦 留言(0) 人氣()
在網路上看到,很有效可以節省開機時間的一個技巧!
提供給大家做參考!
節省開啟X的時間,也為了節省記憶體,不使用gdm登入
原則上是參考http://moto.debian.org.tw/viewtopic.php?t=5108&highlight=%E4%B8%8D%E7%94%A8+gdm
倒數第二篇的連結裡,小狐狸前輩有提供了一個連結,裡頭提到mingetty這個程式
利用這個程式,即使不用gdm/kdm也可以在開機後自動登入X
不過上面說的那個連結好像不見了,所以小弟再把前輩當時教的方法重述一下
希望對一些使用舊機器作為desktop的朋友有幫助
以root的身份作以下動作:
#apt-get install mingetty
#vi /etc/inittab
隨便找哪個console下手都可以,在這裡以第3個虛擬控制台為例
把下面這一行
3:2345:respawn:/sbin/getty 38400 tty3
改成下面這樣
3:2345:respawn:/sbin/mingetty --autologin myname tty3
其中的「myname」是指你要自動登入的帳號,請依自己的情形輸入
接下來請到以myname的身份,到這個帳號的家目錄下
找一個叫作.bash_profile的檔案(如果沒有,請自行建立)
在.bash_profile這個檔案裡加一個指令:
startx
完成這個動作後
檢查一下~/.xinitrc內容是否完整,少了什麼就補一補(如果沒有,請自行建立)
最後,請用root移除gdm/kdm,或讓它們在開機時不載入
接著重開機
應該就可以看見Debian可以為myname這個帳號開啟了一個X
我一直覺得這個方法很省資源和時間,感謝小狐狸前輩~
xboomz 發表在 痞客邦 留言(0) 人氣()
今天在用Linux不知道為什麼,之前設定的祕碼進不去.
所以我就當做密碼遺失,重新設定了密碼.
我的系統是用Fedora Core 5.開機管理程式是用GURB.
所以我在開機,進到GURB之後
按下任何鍵,就可以進入到GRUB開機系統管理程式。
2. 按下鍵盤上的〔E〕鍵,編輯開機管理程式,以〔↑〕、〔↓〕選取有 「kernel 」開頭的那一行,再按下〔E〕鍵編輯那一行的內容。
3. 在該行的最後按下〔空白鍵〕,然後再輸入指令「single」,再按下〔Enter〕離開編輯模式。
4. 接下來會回到前一個GRUB開機管理程式的畫面,然後按下〔B〕。接下來開機就會進入單人使用模式,出現Shell命令的提示符號。(single user mode)
在Shell下面,打passwd這個指令,就可以重設LinuxRoot的密碼了!
改完以後,不要忘記回GURB去把single改回來歐^_^
================================================================
》使用LILO進入單人使用模式的步驟:
1. 出現LILO開機系統管理程式的畫面,然後按下〔Ctrl〕+〔X〕離開圖形介面,進入 boot提示符號)輸入指令「 linux single」即可。
Linux常見緊急情況處理方法
Linux下的中文顯示和支援常見問題解答
xboomz 發表在 痞客邦 留言(2) 人氣()
專題時間到啦!!!
目前的規畫是以Linux做Client的O.S.
由於我們有強大的Hardware做後盾.
所以我們先安裝完整linux做測試.
等程式寫好測好再做精簡化.
首先我們需要一個open source的media player.
在朋友的建議下,我們選用VLC做為開發程式的一個基礎.
不過對於VLC只聞其聲不見其人,對他的認識也只有皮毛.
所以我們必需先在Linux下安裝好VLC並使用再寫程式去修改這個player.
第一步就是安裝VLC嚕!!
在Fedora Core5安裝VLC
rpm -ivh http://ftp.freshrpms.net/pub/freshrpms/fedora/linux/5/freshrpms-release/freshrpms-release-1.1-1.fc.noarch.rpm
yum install videolan-client
在Fedora Core6安裝VLC
rpm -ivh http://ftp.freshrpms.net/pub/freshrpms/fedora/linux/6/freshrpms-release/freshrpms-release-1.1-1.fc.noarch.rpm
yum install vlc
xboomz 發表在 痞客邦 留言(2) 人氣()
安裝檔案
./configure
make
make install
反安裝可試看看
make uninstall
像我裝的話我都會先加個參數
make install --prefix=/usr/local/softname
這樣的話以後要移除就直接砍掉/usr/local/softname就好了
xboomz 發表在 痞客邦 留言(0) 人氣()
很多在Linux下寫程式或是在Linux下修改一些檔案的朋友
應該對Vi不陌生吧~
當然小弟我最近因為在學Linux的Programming.
所以對這Vi也不陌生,不過也不熟啦!
所以在網路上找了些資料,以便不時之需!
剛開始用覺得用ESC,i,q這幾個指令已經夠了
不過用了一段時間以後,覺得,好像還不是挺方便.
因為有時後要一次重覆寫幾行類似的code進去~_~...
所以就想到了copy的指令跟past
不過有找到較多資料,所以就一起放進來ㄅㄟ!!!
有了強大的emacs還要來學什麼vi呢?其實vi應該是每個初學Unix的人所必備的, 在每台機器上一定都可以用,不像emacs沒有裝搞不好就沒有的用。另外vi的好 處是它很小,不佔記憶體,terminal可以動的地方就可以用。在做遠端管理 等等狀況非常好用。它算是一種標準編輯器,就像windows上一定有筆記本 這個程式一樣
一般說來vi沒有選單可以用(其實有變種vi,像gvim就有選單功能) ,所以一定要在兩個模式間跳來跳去。一開始就是在命令模式內,你要先跳到 編輯模式才可以亂打內容。其實也不一定啦,要看當初的設定為何,只是正 常古老時代應該是這樣。如果你按了老半天跑不出字來,就按個i
以下是常用按鍵:
一。從命令到編輯模式
a:將游標放到目前游標後一個字元,開始文字編輯模式。insert
i:將游標放在目前游標位置,開始文字編輯模式。append
o:將游標放到下一行起始位置,開始文字編輯模式。open new line
比較常用就是i,a,o,I,A,O了,將來多試幾次就好了,就很熟悉了。
二從編輯到命令
ESC:沒事多按逃脫鍵,有益身體健康。
三命令模式中的其他命令
在命令模式中的按鍵就很多了,這些需要好好熟練一下了。
在vi命令模式裡面,有的按鍵按完後他還是在命令模式,有的改個字元或copy/paste後
又回到命令模式,有的就一去不回頭變成文字編輯模式了。
有些按鍵會把你原本想改的內容做特殊的定位,例如要改個word,也會把你帶離命令模式
檔案
:q離開vi
:e xxxx編輯xxxx
:w存檔
:w xxxx另存檔案xxxx
:q!不存檔強迫離開
:w!強迫存檔
:wq存檔與離開
游標移動
h,j,k,l往左,往下,往上,往右
0到行首
$到行尾
^到這行的第一個非空白字元
w,W到下個字, 到下個非空白的字
b,B回上個字, 到上個非空白的字
e,E到這個字的字尾, 到下個非空白的字字尾
Ctrl-F ,Ctrl-B往後一頁,往前一頁
G到檔尾
:n到第n行 (所以到檔頭就是:1)
Ctrl-G顯示第幾行
J合併兩行
搜尋與取代
/
/pattern尋找pattern
?pattern 往上尋找pattern
n再往下尋找
N再往上尋找
:s/patrn/str/cgi搜尋patrn取代str
其中:跟s間必需指定範圍(range)沒設範圍就是游標這行
1,10 表示 1-10行
% 表示整篇
最後cgi
c 表示confirm尋問
g 表示global全部
i 表示ignore不分大小寫
常用字元字串處理
cc改變整行
dd砍掉整行
yy拷貝整行(yank whole line)
p,P貼上(paste) 你最近砍掉或拷貝的
cw改變一個字
d$砍到行尾
ye拷貝到這個字尾
r,R取代一個字元, 取代整行
u,Uundo 最後修改,UNCHANGE整行
x,X砍一個字元, 往回砍個字元(等於按backspace)
重複的處理
. 重複剛剛的命令或輸入
這些試試看
ce, 3x, 5dd, 10w, d0, y$, 5G
indentation
>>往右一個indent
|
xboomz 發表在 痞客邦 留言(0) 人氣()
新增使用者帳戶
新增帳戶(Account)是使用 useradd 或是 adduser 指令,adduser 指令其實就是指向 useradd 指令的連結。以下是指令與參數的使用:
useradd [-c comment] [-d home_dir] [-e expire_date] [-f inactive_time]
[-g initial_group] [-G group[,...]] [-m [-k skeleton_dir] | -M]
[-p passwd] [-s shell] [-u uid [ -o]] [-n] [-r] 帳戶名稱
參數說明:
-c comment> 全名或註解
-d home_dir> 指定使用者家目錄
-e expire_date> 指定帳戶到期日
-f inactive_time> 逾期未變更密碼後帳戶停用日期(緩衝天數)
-g initial_group> 指定帳戶主要的隸屬群組
-G group> 指定帳戶其它的隸屬群組
-m 自動建立使用者家目錄(系統預設)
-M 不讓系統自動建立家目錄
-p passwd> 指定帳戶密碼
-s shell> 指定登入後所使用的 shell
-u uid> 指定帳戶辨識碼 UID
-r 建立系統帳戶
-k 指定 SKEL 目錄
使用者辨識碼↓
某些 Linux 發佈套件在建立一般使用這帳戶時,UID 會從 500 以後開始自動依序賦予,如 Red Hat Linux 即是如此,有些發佈套件則是從 1000 以後的號碼為一般使用者帳戶 UID。而不管是 500 或是 1000,在這些特定的號碼之前的 UID,都是所謂的系統帳戶,如 root、apache...等。這個預設的 UID 起始號碼是可以設定的。
http://lpi.indicator-online.net/UserManage.html
修改使用者帳戶
使用者帳戶建立後,可以使用 usermod 指令來修改帳戶相關內容,如帳戶名稱、家目錄位置、隸屬群組、註解、UID...等,幾乎與建立帳戶可設立的內容相同。以下先將 usermod 指令做詳細介紹:
usermod [-c comment] [-d home_dir [-m]] [-e expire_date] [-f inactive_time]
[-g initial_group] [-G group [,...]] [-l login_name] [-p passwd]
[-s shell] [-u uid [-o]] [-L|-U] username
參數說明:
-c comment> 全名或註解
-d home_dir> 指定使用者家目錄
-e expire_date> 指定帳戶到期日
-f inactive_time> 逾期未變更密碼後帳戶停用日期(緩衝天數)
-g initial_group> 指定帳戶主要的隸屬群組
-G group> 指定帳戶其它的隸屬群組
-l login_name> 自動建立使用者家目錄(系統預設)
-p passwd> 指定帳戶密碼
-s shell> 指定登入後所使用的 shell
-u uid> 指定帳戶辨識碼 UID
-L 鎖定帳戶
-U 解除鎖定帳戶
以下做一示範:
[root@Linux root]# usermod -l usr_new user01
[root@Linux root]# usermod -u 555 usr_new
[root@Linux root]# usermod -G root,katana usr_new
[root@Linux root]# usermod -e 2003/12/31 usr_new
|
刪除使用者帳戶
刪除使用者帳戶使用 userdel 指令,參數只有一個 -r。
[root@Linux root]# userdel usr_new
[root@Linux root]# userdel -r user02
|
使用 userdel -r 參數指令,是除了將帳戶刪除外,還將帳號相關的目錄與檔案(如使用者家目錄)一併刪除。相反的,若不使用 -r 參數則刪除帳戶時,這些因為帳戶建立或帳戶使用過程所建立的檔案目錄,仍舊會留在系統中。
xboomz 發表在 痞客邦 留言(0) 人氣()
批次新增使用者
將要新增的使用者帳號密碼以 的格式寫在一個檔案
如 users.txt
Tom 1234
Mary 2345
在寫ㄧ個新增的script
如 add.sh
#!/bin/bash
for i in `awk '{print $1}' users.txt`
do
useradd $i
grep "\" users.txt | awk '{print $2}' | passwd --stdin $i
done
變更script的權限,執行既可
http://blog.yam.com/dahu/article/2570221
xboomz 發表在 痞客邦 留言(0) 人氣()
若忘記密碼,如何去修改 GRUB 選單密碼?
grub
grub> md5crypt
Password: ****** (ubuntu)
Encrypted: $1$ZWnke0$1fzDBVjUcT1Mpdd4u/T961 (編碼過密碼)
grub> quit
sudo cp /boot/grub/menu.lst /boot/grub/menu.lst_backup
sudo gedit /boot/grub/menu.lst
...
password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
...
password --md5 $1$ZWnke0$1fzDBVjUcT1Mpdd4u/T961 (剛才編碼過的密碼)
http://wiki.ubuntu.org.tw/index.php/Ubuntu6.06Guidetw#.E8.8B.A5.E5.BF.98.E8.A8.98.E5.AF.86.E7.A2.BC.EF.BC.8C.E5.A6.82.E4.BD.95.E5.8E.BB.E4.BF.AE.E6.94.B9_GRUB_.E9.81.B8.E5.96.AE.E5.AF.86.E7.A2.BC.3F
http://www.lichihua.com/2006/taxonomy/term/60
grub
執行 md5crypt 產生新密碼
grub> md5crypt
Password: ******
Encrypted: $1$7zGQ/gj3$zskkRvXQNWbXIBByAnss
grub> quit
接著
sudo cp /boot/grub/menu.lst /boot/grub/menu.lst_backup
sudo gedit /boot/grub/menu.lst
找到一行類似這樣的
password --md5 $1$gLhU0/$aW78kHKD0XK2C522znUoe/
換成剛剛產生的
password --md5 $1$7zGQ/gj3$zskkRvXQNWbXIBByAnss
xboomz 發表在 痞客邦 留言(0) 人氣()