ubuntu问题总结
2010年07月24日
如何在终端机模式下切换到 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)在光盘中的 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删除。按照实验内容作。
注意命令行中的错误提示
root@gofg-uestc:/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'
root@gofg-uestc:/home/gofg/hello# automake --missing
automake: unrecognized option `--missing'.
automake: Try `/usr/bin/automake --help' for more information.
root@gofg-uestc:/home/gofg/hello# automake --add-missing
configure.in:6: installing `./install-sh'
configure.in:6: installing `./missing'
Makefile.am: installing `./depcomp'
root@gofg-uestc:/home/gofg/hello# automake
5月11:
hello.c hello.h以及Makefile编写
hello.h
#include
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
#include
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
/*open.c*/
#include
#include
#include
#include
#include
#include
int main(void)
{
int fd;
/*调用 open 函数,以可读写的方式打开,注意选项可以用"|"符号连接*/
if((fd = open("/tmp/hello.c", O_CREAT | O_TRUNC | O_WRONLY , 0600 ))键盘的操作,虽然没有"超级终端"那么易用,但是使用习惯之后读者将会体会到它的高效与便利,下面将讲解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转串口。
yzj@yzj-laptop:~/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/b687d27b1ed 10ae12f73b377.html
原创 ubuntu 8.10 firefox浏览器安装flash插件 收藏
每次打开Firefox的时候总是提示有需要安装的插件,通过网上找,但是每次又安装不上去,发现这是个bug,解决办法是下载flash的插件源文件,采用手动安装!
方法如下
1、从下面网站下载flash插件:
http://fpdownload.macromedia.com/get/flashplayer/c urrent/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/flash plugin/9.0r48/install_flash_player_9_linux.tar.gz
2006-07-05 ftp://147.52.159.12/Linux/Adobe/install_flash_play er_9_linux.tar.gz
2007-10-21 ftp://greyone.tulatelecom.ru/pub/linux/adobe/insta ll_flash_player_9_linux.tar.gz
2008-05-10 ftp://ftp.net.pulawy.pl/pub/flash/install_flash_pl ayer_9_linux.tar.gz
2007-07-05 ftp://ftp.tw.freebsd.org/pub/ports/distfiles/flash plugin/9.0r48/install_flash_player_9_linux.tar.gz
2007-07-04 ftp://ftp.twaren.net/pub/BSD/FreeBSD/ports/distfil es/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/388 1624.aspx
ubuntu常用软件推荐,图文详细说明
http://hi.baidu.com/gsps/blog/item/ccc3d495cb73074 7d0135e48.html
2010年07月24日
如何在终端机模式下切换到 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)在光盘中的 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删除。按照实验内容作。
注意命令行中的错误提示
root@gofg-uestc:/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'
root@gofg-uestc:/home/gofg/hello# automake --missing
automake: unrecognized option `--missing'.
automake: Try `/usr/bin/automake --help' for more information.
root@gofg-uestc:/home/gofg/hello# automake --add-missing
configure.in:6: installing `./install-sh'
configure.in:6: installing `./missing'
Makefile.am: installing `./depcomp'
root@gofg-uestc:/home/gofg/hello# automake
5月11:
hello.c hello.h以及Makefile编写
hello.h
#include
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
#include
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
/*open.c*/
#include
#include
#include
#include
#include
#include
int main(void)
{
int fd;
/*调用 open 函数,以可读写的方式打开,注意选项可以用"|"符号连接*/
if((fd = open("/tmp/hello.c", O_CREAT | O_TRUNC | O_WRONLY , 0600 ))键盘的操作,虽然没有"超级终端"那么易用,但是使用习惯之后读者将会体会到它的高效与便利,下面将讲解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转串口。
yzj@yzj-laptop:~/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/b687d27b1ed 10ae12f73b377.html
原创 ubuntu 8.10 firefox浏览器安装flash插件 收藏
每次打开Firefox的时候总是提示有需要安装的插件,通过网上找,但是每次又安装不上去,发现这是个bug,解决办法是下载flash的插件源文件,采用手动安装!
方法如下
1、从下面网站下载flash插件:
http://fpdownload.macromedia.com/get/flashplayer/c urrent/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/flash plugin/9.0r48/install_flash_player_9_linux.tar.gz
2006-07-05 ftp://147.52.159.12/Linux/Adobe/install_flash_play er_9_linux.tar.gz
2007-10-21 ftp://greyone.tulatelecom.ru/pub/linux/adobe/insta ll_flash_player_9_linux.tar.gz
2008-05-10 ftp://ftp.net.pulawy.pl/pub/flash/install_flash_pl ayer_9_linux.tar.gz
2007-07-05 ftp://ftp.tw.freebsd.org/pub/ports/distfiles/flash plugin/9.0r48/install_flash_player_9_linux.tar.gz
2007-07-04 ftp://ftp.twaren.net/pub/BSD/FreeBSD/ports/distfil es/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/388 1624.aspx
ubuntu常用软件推荐,图文详细说明
http://hi.baidu.com/gsps/blog/item/ccc3d495cb73074 7d0135e48.html