天天看點

ubuntu問題總結

如何在終端機模式下切換到 root 身份?

sudo -s -H

Password: <在這注明您的密碼>預設禁止 root 的好處包括了以下内容

運作vi并點i進入編輯模式,為什麼按上下左右鍵螢幕上出現的卻是A、B、C、D呢?

按大家的指點,我已安裝VIM,并能正常使用VIM了。

ubuntu預設的vi方向鍵無法使用是因為這是一個簡版的vim。

我們可以使用: sudo apt-get install vim 安裝vim。這樣,方向鍵就可以使用了。

安裝vim後,運作vi指令就是在運作vim。

這個問題終于解決了,感謝大家。

vi 中注意地方:

另存一個命為 filename 的檔案 :w [filename]

取消行号顯示 :set nonu

恢複前一個動作 U

删除光标所在位置的"前面"一個字元 X

删除光标所在行 dd

從光标所在行開始向下删除 n 行 ndd

3.實驗步驟

(1)在CD光牒中的 cross-3.3.2.tar.bz2 拷貝到 Windows 下的任意盤中。

(2)重新開機機器轉到 Linux 下,并用普通使用者身份登入。

(3)打開"終端" ,并切換到超級使用者模式下。

指令為:su - root

(4)檢視 cross-3.3.2.tar.bz2 所在的 Windows 下對應分區的格式,并記下其檔案裝置名稱,

如"/dev/hda1"等。

指令為:fdisk -l

(5)使用 mkdir 指令在"/mnt"建立子目錄作為挂載點。

指令為:mkdir /mnt/windows

(6)挂載 Windows 相應分區。

若是 vfat 格式,則指令為:mount -t vfat /dev/had* /mnt/windows

由于 ntfs 格式在 Linux 下是不安全的,隻能讀,不能寫,是以最好把檔案放到 fat32 格式的檔案

注意 系統中。

:w! filename 強制儲存檔案

在aclocal 前需要重新命名為configure.in并且把configure.scan删除。按照實驗内容作。

注意指令行中的錯誤提示

[email protected]:/home/gofg/hello# automake

configure.in:6: required file `./install-sh' not found

configure.in:6: `automake --add-missing' can install `install-sh'

configure.in:6: required file `./missing' not found

configure.in:6: `automake --add-missing' can install `missing'

Makefile.am: required file `./depcomp' not found

Makefile.am: `automake --add-missing' can install `depcomp'

[email protected]:/home/gofg/hello# automake --missing

automake: unrecognized option `--missing'.

automake: Try `/usr/bin/automake --help' for more information.

[email protected]:/home/gofg/hello# automake --add-missing

configure.in:6: installing `./install-sh'

configure.in:6: installing `./missing'

Makefile.am: installing `./depcomp'

[email protected]:/home/gofg/hello# automake

5月11:

hello.c hello.h以及Makefile編寫

hello.h

#include<stdio.h>

hello.c

#include "hello.h"

int main()

{

printf("Hello everyone!/n");

}

Makefile:

hello1:hello.c hello.h

gcc hello.c -o hello1

root@gofg-uestc:/home/gofg/hellomkfile# ls

hello.c hello.h Makefile

root@gofg-uestc:/home/gofg/hellomkfile# make

gcc hello.c -o hello1

root@gofguestc:/home/gofg/hellomkfile# ./hello1

Hello everyone!

greet.c:19: 警告: 隐式聲明與内建函數‘strlen'不相容

greet.c:20: 警告: 隐式聲明與内建函數‘malloc'不相容

加上頭檔案

#include<string.h>

#include<malloc.h>

2.ARM 體系結構的存儲格式

• 大端格式:在這種格式中,字資料的高位元組存儲在低位址中,而字資料的低位元組則存

放在高位址中。

• 小端格式:與大端存儲格式相反,在小端存儲格式中,低位址中存放的是字資料的低

位元組,高位址存放的是字資料的高位元組。

編譯核心:make menuconfig

可以看到,每個選項前都有個括号,可以通過按空格鍵或"Y"鍵表示包含該選項,按

"N"表示不包含該選項。

另外,讀者可以注意到,這裡的括号有 3 種,即中括号、尖括号或圓括号。讀者可以用

空格鍵選擇相應的選項時可以發現中括号裡要麼是空,要麼是"*" ;尖括号裡可以是空,

"*"

和"M",分别表示包含選項、不包含選項和編譯成子產品;圓括号的内容是要求使用者在所提供

的幾個選項中選擇一項。

要注意 2.6 和 2.4 核心在序列槽命名上的一個重要差別,在 2.4 核心中"COM1"對

應的是"ttyS0",而在 2.6 核心中"COM1"對應"ttySAC0",是以在啟動參數的子項要格外

注意,如圖 5.22 所示,否則序列槽列印不出資訊。

編譯核心步驟:編譯嵌入式 Linux 核心

(1)核心配置

第一步核心配置中的選項主要是使用者用來為目标闆選擇處理器架構的選項,不同的處理

器架構會有不同的處理器選項

(2)建立依賴關系

由于核心源碼樹中的大多數檔案都與一些頭檔案有依賴關系,是以要順利建立核心,内

核源碼樹中的每個 Makefile 就必須知道這些依賴關系。建立依賴關系往往發生在第一次編譯

核心的時候,它會在核心源碼樹中每個子目錄産生一個".depend"檔案。運作"make dep"

即可。

(3)建立核心

建立核心可以使用"make zImage"或"make bzImage" ,這裡建立的為壓縮的核心映像。

通常在 Linux 中,核心映像分為壓縮的核心映像和未壓縮的核心映像。其中,壓縮的核心映

像通常名為 zImage,位于"arch/$(ARCH)/boot"目錄中。而未壓縮的核心映像通常名為

vmlinux,位于源碼樹的根目錄中。

到這一步就完成了核心源代碼的編譯,之後,讀者可以使用上一小節所講述的方法把内

核壓縮檔案下載下傳到開發闆上運作。

在嵌入式 Linux 的源碼樹中通常有以下幾個配置檔案, ".config""autoconf.h""config.h"

其中 ".config" 檔案是 make menuconfig 預設的配置檔案,位于源碼樹的根目錄中。"autoconf.h"

小知識 和"config.h"是以宏的形式表示了核心的配置,當使用者使用 make menuconfig 做了一定的更

改之後,系統自動會在"autoconf.h"和"config.h"中做出相應的更改。它們位于源碼樹的

"/include/linux/"下。

U-Boot 重要代碼

(1)cpu/arm920t/start.S

這是 U-Boot 的起始位置。在這個檔案中設定了處理器的狀态、初始化中斷和記憶體時序

等,從 Flash 中跳轉到定位好的記憶體位置執行

(2)interrupts.c

這個檔案是進行中斷的,如打開和關閉中斷等。

(3)cpu.c

這個檔案是對處理器進行操作

(4)memsetup.S

這個檔案是用于配置開發闆參數的

Linux檔案己檔案描述符

Linux 中的檔案主要分為 4 種:普通檔案、目錄檔案、連結檔案和裝置檔案。

核心如何區分和引用特定的檔案呢?這裡用到的就是一個重要的概念--檔案描

述符。對于 Linux 而言,所有對裝置和檔案的操作都使用檔案描述符來進行的。檔案描述符

是一個非負的整數,它是一個索引值,并指向核心中每個程序打開檔案的記錄表。當打開一

個現存檔案或建立一個新檔案時,核心就向程序傳回一個檔案描述符;當需要讀寫檔案時,

也需要把檔案描述符作為參數傳遞給相應的函數。

通常,一個程序啟動時,都會打開 3 個檔案:标準輸入、标準輸出和标準出錯處理。這

3 個檔案分别對應檔案描述符為 0、1 和 2 也就是宏替換 STDIN_FILENO、STDOUT_FILENO

和 STDERR_FILENO,鼓勵讀者使用這些宏替換)

本節主要介紹不帶緩存的檔案 I/O 操作,主要用到 5 個函數:open、read、write、lseek

和 close。這裡的不帶緩存是指每一個函數都隻調用系統中的一個函數。

open() close();

root@gofg-uestc:/tmp# vi open.c

#include <unistd.h>

#include <sys/types.h>

#include <sys/stat.h>

#include <fcntl.h>

#include <stdlib.h>

#include <stdio.h>

int main(void)

{

int fd;

if((fd = open("/tmp/hello.c", O_CREAT | O_TRUNC | O_WRONLY , 0600 ))<0){

perror("open:");

exit(1);

}

else{

printf("Open file: hello.c %d/n",fd);

}

if( close(fd) < 0 ){

perror("close:");

exit(1);

}

else

printf("Close hello.c/n");

exit(0);

}

[email protected]:/tmp# vi Makefile

open:open.c

gcc open.c -o open

[email protected]:/tmp# make

[email protected]:/tmp# ./open

Open file: hello.c 3

Close hello.c

ubuntu下的usb轉序列槽的使用

minicom是linux下序列槽通信的軟體,它的使用完全依靠鍵盤的操作,雖然沒有"超級終端"那麼易用,但是使用習慣之後讀者将會體會到它的高效與便利,下面将講解minicom的安裝和配置。

一、安裝minicom:

使用以下指令:

# sudo apt-get install minicom

以下為安裝的詳細資訊:

# sudo apt-get install minicom

正在讀取軟體包清單... 完成

正在分析軟體包的依賴關系樹

正在讀取狀态資訊... 完成

将會安裝下列額外的軟體包:

lrzsz

下列【新】軟體包将被安裝:

lrzsz minicom

共更新了 0 個軟體包,新安裝了 2 個軟體包,要解除安裝 0 個軟體包,有 2 個軟體未被更新。

需要下載下傳 270kB 的軟體包。

解壓縮後會消耗掉 1389kB 的額外空間。

您希望繼續執行嗎?[Y/n]y

擷取:1 http://ubuntu.uestc.edu.cn hardy/universe lrzsz 0.12.21-4.1 [97.0kB]

擷取:2 http://ubuntu.uestc.edu.cn hardy/main minicom 2.3~rc1-2 [173kB]

下載下傳 270kB,耗時 1s (184kB/s)

選中了曾被取消選擇的軟體包 lrzsz。

(正在讀取資料庫 ... 系統目前總共安裝有 101203 個檔案和目錄。)

正在解壓縮 lrzsz (從 .../lrzsz_0.12.21-4.1_i386.deb) ...

選中了曾被取消選擇的軟體包 minicom。

正在解壓縮 minicom (從 .../minicom_2.3~rc1-2_i386.deb) ...

正在處理用于 man-db 的觸發器...

正在設定 lrzsz (0.12.21-4.1) ...

正在設定 minicom (2.3~rc1-2) ...

PS:ubuntu 現在做的真是沒話說,相當的實用和智能啊,把相關的依賴包(lrzsz)都互相關聯并且安裝上去了。但是如果使用ubuntu 8.10以前的版本可能就要單獨安裝lrzsz軟體包了(lrzsz包括了x/y/zmodem協定)。也就是說,在通過序列槽用xmodem協定燒寫核心時會提示沒有xmodem協定,是以這時就要安裝lrzsz軟體包了:

# sudo apt-get install lrzsz

然後就可以正常地使用minicom通過序列槽燒寫核心了。

二、配置minicom:

1、在使用minicom之前,首先要保證你對序列槽有讀/寫的權限。我們知道,Linux的裝置對應于/dev/目錄中的某個檔案,序列槽COM1對應ttyS0,COM2對應ttyS1,使用以下指令來檢視你對COM1的權限:

$ ls -l /dev/ttyS0

crw-rw---- 1 root dialout 4, 64 2009-08-01 11:05 /dev/ttyS0

可以看到,它的屬主是root。

2、正如在Windows中要配置超級終端一樣,在使用minicom之前,先要對序列槽進行配置。

運作# sudo minicom -s

選擇Serial port setup,此時所示光标在"Change which setting"上,鍵入"A",此時光标移到第A項對應處:序列槽COM1對應ttyS0,COM2對應ttyS1(注意選擇)。

然後對波特率,資料位和停止位進行配置,鍵入"E",波特率選為115200 8N1(資料位8,奇偶校驗無,停止位1),硬/軟體流控制分别鍵入"F"和"G",并且都選No。在确認配置正确之後,可鍵入回車傳回上級配置界面,并将其儲存為預設配置(即save setup as dfl)。最後,選擇"Exit from Minicom"指令退出。

具體的配置資訊如下所示:

Serial port setup [Enter]

+-------------------------------------------------------------+

| A - Serial Device : /dev/ttyUSB0 |

| B - Lockfile Location : /var/lock |

| C - Callin Program : |

| D - Callout Program -: |

| E - Bps/Par/Bits : 115200 8N1 |

| F - Hardware Flow Control : No |

| G - Software Flow Control : No |

| |

| Change which setting? |

+-------------------------------------------------------------+

注意:如果沒有使用USB轉序列槽,而是直接使用序列槽,那麼Serial Device要配置為/dev/ttyS0。

然後重新開機minicom(即直接在shell下執行minicom指令就可以進入minicom的控制台)使剛才的配置生效,再連上開發闆的序列槽線後,就可以在minicom中列印出正确的序列槽資訊了。在控制台下通過組合鍵Ctrl+A Z可以進入minicom菜單。

組合鍵的用法是:先按Ctrl+A組合鍵,然後松開這兩個鍵,再按Z鍵。另外還有一些常用的組合鍵。

(1)S鍵:發送檔案到目标系統中;

(2)W鍵:自動卷屏。當顯示的内容超過一行之後,自動将後面的内容換行。這個功能在檢視核心的啟動資訊時很有用。

(3)C鍵:清除螢幕的顯示内容;

(4)B鍵:浏覽minicom的曆史顯示;

(5)X鍵:退出mInicom,會提示确認退出。

3、配置檔案所在目錄

Ctrl + A --> O

+-----[configuration]------+

| Filenames and paths |

| File transfer protocols -|

| Serial port setup |

| Modem and dialing |

| Screen and keyboard |

| Save setup as dfl |

| Save setup as.. |

| Exit |

+--------------------------+

選擇"Filenames and paths"

+-----------------------------------------------------------------------+

| A - Download directory : /home/crliu |

| B - Upload directory : /tmp |

| C - Script directory : |

| D - Script program : runscript |

| E - Kermit program : |

| F - Logging options |

| |

| Change which setting? |

+-----------------------------------------------------------------------+

(1)A - download 下載下傳檔案的存放位置(開發闆 ---> PC)

開發闆上的檔案将被傳輸到PC機上的/home/crliu目錄下。

(2)B - upload 從此處讀取上傳的檔案(PC ---> 開發闆)

PC機向開發闆發送檔案,需要發送的檔案在/tmp目錄下(PC機上的目錄)。做了此項配置後,每次向開發闆發送檔案時,隻需輸入檔案名即可,無需輸入檔案所在目錄的絕對路徑。

三、Linux下如何使用USB轉序列槽裝置

對沒有序列槽的筆記本持有者來說,做硬體開發經常為沒有序列槽而煩惱,不過現在有了USB轉序列槽裝置。但是新的問題又出現了,比如說對于Minicom下的PC機和目标機通信還是存在着一些配置問題,下面就說一下linux下USB轉序列槽的具體配置和問題:

注意:預設情況下ubuntu已經安裝了USB轉序列槽驅動(pl2303)。

1、# lsmod | grep usbserial

如果有usbserial,說明系統支援USB轉序列槽。

2、插上USB轉序列槽,在終端輸入指令#dmesg | grep ttyUSB0,如果出現連接配接成功資訊,則說明ubuntu系統已經識别該裝置了。

注意:虛拟機環境下的ubuntu預設情況下是不能自動識别的,需要在虛拟機視窗右下角點選"Prolific USB-Serial Controller",然後選擇"Connect (Disconnect from Host)",這樣才能被ubuntu系統識别。

3、在上面minicom的配置中設定Serial Device: /dev/ttyUSB0,重新開機開發闆,這樣基本上就可以正常使用minicom來列印序列槽資訊了。

4、問題

如果經過上面的步驟minicom還是不能正常工作,出現如下錯誤提示:

# sudo minicom

minicom: cannot open /dev/ttyUSB0: 沒有該檔案或目錄

這時可以嘗試換一個USB口,然後再次操作以上流程。如果還是提示這個錯誤,那麼可以使用下面的方法來解決。

這種方法是在硬體裡添加序列槽裝置,将window下的裝置添加到虛拟機裡。也就是說,要在window獲得焦點的時候加入usb轉序列槽,然後再到虛拟機下将這個裝置添加進去,這時就可以在ubuntu下檢視添加的這個裝置的裝置檔案,一般是/dev/tty0或者 /dev/ttyS0。

這種方法其實是将window的usb轉序列槽作為虛拟機的序列槽,是以就是tty0或者ttyS0了,而不是真正在ubuntu下加載的。

具體步驟如下:

(1)打開虛拟機環境,然後選擇"VM-->Settings(Ctrl+D)"。

(2)點"Add",進入新增硬體向導,選擇"Serial Port",點"Next"。

(3)選擇第一項"Use physical port on the host",點"Next"。

(4)選擇"Physical serial port"方式為"Auto detect",勾選"Connect at power on",點"Finish"完成。

(5)然後在上面minicom的配置中設定Serial Device: /dev/tty0或者Serial Device: /dev/ttyS0,重新開機開發闆,這樣就可以正常運作minicom了。

ubuntu usb轉序列槽設定

2010-04-06 13:51

1、下載下傳:sudo apt-get install minicom

2、插入usb轉序列槽線,終端輸入:dmesg | grep usb

...............

[ 7415.893942] usbserial: USB Serial Driver core

[ 7415.931116] usb 3-1: ark3116 converter now attached to ttyUSB0

[ 7415.931141] usbcore: registered new interface driver ark3116

[ 7430.248072] usb 3-1: USB disconnect, address 2

[ 7434.588044] usb 3-1: new full speed USB device using uhci_hcd and address 3

...............

3、設定:minicom -s

serial port setup-->serial device:/dev/ttyUSB0

硬體資料流、軟體資料流控制均設定為否

4、儲存退出

5、指令視窗運作:minicom

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

注意:預設情況下ubuntu已經安裝了USB轉序列槽驅動(pl2303)。我的是ark3116,也是預設安裝

1、# lsmod | grep usbserial

如果有usbserial,說明系統支援USB轉序列槽。

[email protected]:~/minicom$ lsmod | grep usbserial

usbserial 36264 3 ark3116

2、插上USB轉序列槽,在終端輸入指令#dmesg | grep ttyUSB0,如果出現連接配接成功資訊,則說明ubuntu系統已經識别該裝置了。

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

組合鍵的用法是:先按Ctrl+A組合鍵,然後松開這兩個鍵,再按Z鍵。另外還有一些常用的組合鍵。

(1)S鍵:發送檔案到目标系統中;

(2)W鍵:自動卷屏。當顯示的内容超過一行之後,自動将後面的内容換行。這個功能在檢視核心的啟動資訊時很有用。

(3)C鍵:清除螢幕的顯示内容;

(4)B鍵:浏覽minicom的曆史顯示;

(5)X鍵:退出mInicom,會提示确認退出。

http://hi.baidu.com/cctvbaby/blog/item/b687d27b1ed10ae12f73b377.html

原創 ubuntu 8.10 firefox浏覽器安裝flash插件 收藏

每次打開Firefox的時候總是提示有需要安裝的插件,通過網上找,但是每次又安裝不上去,發現這是個bug,解決辦法是下載下傳flash的插件源檔案,采用手動安裝!

方法如下

1、從下面網站下載下傳flash插件:

http://fpdownload.macromedia.com/get/flashplayer/current/install_flash_player_9_linux.tar.gz

上面的網站可能下載下傳的時候非常慢,可以采用下面的幾個位址,同樣的檔案!

Download mirrors for install_flash_player_9_linux.tar.gz (2.49 MB):

2006-10-16 ftp://ftp.urc.ac.ru/pub/OS/FreeBSD/distfiles/flashplugin/9.0r48/install_flash_player_9_linux.tar.gz

2006-07-05 ftp://147.52.159.12/Linux/Adobe/install_flash_player_9_linux.tar.gz

2007-10-21 ftp://greyone.tulatelecom.ru/pub/linux/adobe/install_flash_player_9_linux.tar.gz

2008-05-10 ftp://ftp.net.pulawy.pl/pub/flash/install_flash_player_9_linux.tar.gz

2007-07-05 ftp://ftp.tw.freebsd.org/pub/ports/distfiles/flashplugin/9.0r48/install_flash_player_9_linux.tar.gz

2007-07-04 ftp://ftp.twaren.net/pub/BSD/FreeBSD/ports/distfiles/flashplugin/9.0r48/install_flash_player_9_linux.tar.gz

2、解壓縮:

tar -zvxf install_flash_player_9_linux.tar.gz

3、解壓縮之後 cd 進去

cd install_flash_player_9_linux

4、安裝

sudo ./flashplayer-installer

安裝路徑一般是 /usr/lib/firefox,也可以采用預設安裝路徑!在安裝過程中,可能需要關閉firefox浏覽器,安裝完成,需要重新啟動firefox

搞定 ~!

http://blog.csdn.net/fql128/archive/2009/02/12/3881624.aspx

ubuntu常用軟體推薦,圖文詳細說明

http://hi.baidu.com/gsps/blog/item/ccc3d495cb730747d0135e48.html

繼續閱讀