admin 管理员组文章数量: 1184232
2024年12月24日发(作者:微机唯一能够直接识别和处理的语言是)
Linux系统结构(由里到外)
硬件->Kernel(驱动程序)->Shell(终端、接口)->外层应用程序
Linux中的目录结构
存放命令的目录:
/bin系统工具;
/sbin系统管理员应用工具;
/usr/bin和 /usr/sbin存放用户应用程序;
/usr/local/bin
/boot内核及其他系统启动所需文件
/opt安装大的应用程序
/tmp临时文件
/lost+found系统修复过程中恢复的文件
/root超级用户的主目录
/etc配置文件所在目录
启动引导程序/etc/ /etc/ 多系统引导时,可设置默认启动的系统等等
控制启动模式/etc/fstab
/etc/profile增加环境变量等(修改PATH等) 如配置JAVA/J2EE开发环境
/etc/ftp*――ftp的配置文件
/etc/httpd――web服务器的配置文件
/etc/ssh*――ssh的配置文件(安全登陆)
一、
虚拟机上网配置
1.PC机的设置
在“网络邻居”的属性里,点“本地连接”属性,点“高级”选项,Internet连接共享
全选,“家庭网络连接”选“Vmware Network Adapter Vmnet1”,此时的“Vmware Network
Adapter Vmnet1”的IP地址变成192.168.0.1。
2.虚拟机设置
安装虚拟机时,硬件设置“网络连接”为:仅主机。“开始” “系统设置” “网
络”,激活设备eth0,静态设置的IP地址:192.168.0.2;255.255.255.0;192.168.0.1,DNS:
202.206.1.31;202.206.1.32。
打开浏览器就可以上网了。(注意:必须关闭防火墙)
二、
通讯(挂载)配置
1.配置NFS
“开始”->“安全级别配置”,安全级别:无防火墙(不然无法用NFS mount它)。
“开始”->“系统设置”->“服务器设置”->“服务”,将iptables服务的勾去掉,
选中nfs。
“开始”->“系统设置”->“服务器设置”->“NFS服务器”,创建共享目录:/ARM2410/
可读/写,主机:192.168.0.*(允许这些IP的主机访问),选中“把远程根用户当作本地根用
户”。
在宿主机/目录下执行:mount 192.168.0.2:/arm2410 /mnt,mount自己可测试NFS配置好
没有。若想解挂装某个设备,需要使用umount命令。
刚开始“以太网”选的是“仅主机”,宿主机可以上网但ARM不能ping通PC机,改为“桥
接”就可以ping通了,而且可以挂接了,需要交叉网线,此时宿主机不能上网。(如果是买的
2410-s平台的话,挂载mount -t nfs -o nolock 192.168.0.2:/arm2410s /host。注意ARM
机192.168.0.115和PC机192.168.0.2要在同一网段。)
Linux、ARM下查看网关的IP:
[mnt/yaffs]netstat -r
ARM机实现上网需要修改ARM机的IP、DNS和添加静态路由:
[mnt/yaffs]ifconfig eth0 10.187.98.58
[mnt/yaffs]vi
nameserver 202.206.1.31
[mnt/yaffs]route add default gw 10.187.98.254(网关)
[mnt/yaffs]ping 202.108.22.5(百度网址)
[mnt/yaffs]ping 202.108.33.32(新浪网址)
[mnt/yaffs]vi 修改IP和网关,需重启
2.Minicom设置串口参数
建立“终端”,输入minicom,回车,按ctrl+A,再按Z进入主配置界面,按O进入配
置界面,选择“Serial port setup”进入端口设置界面:A-ttyS0(使用串口1);E-11520 8N1
(波特率);F、G都为NO。选择“Save setup as df1”保存推出。
配置完成后,用串口线连接好PC机和2410-S,启动2410-S,即可在minicom上看到启
动信息,并可以执行操作控制。
三、
超级终端设置及应用程序烧写
如果PC机找不到Giveio新硬件就手动安装一下,在“添加硬件”->“打印机端口”
->“更新驱动程序”,选择。
打开超级终端,先按住pc机“Back Space”键,然后启动2410-S,进入vivi> ,按照以下
命令重新分区:
vivi>bon part 0 128k 192k 1216k 4288k:m 64704k
注意事项:
1. 要按照实验指导书上的写,工具盘imgflashvivi 里的readme中vivi>bon part 0 128k
192k 1216k 4288k:m 64704k(64M flash1208)不对!
2. 另外值得注意的是烧写完vivi后一定要复位2410-s,重新进入vivi>来烧写kernel,
root。
3. 烧写应用程序时,ifconfig eth0 10.187.98.59 配置eth0 IP和PC机在同一网段。
4. 工具盘里的img文件中和zimage与邮件传过来新版的不一样,/etc没有
,而邮箱发过来的就有。新版的2里面有
/mnt/yaffs/lib/etc/和Qtopia应用程序。
四、
编辑程序
交叉编译
所谓交叉编译,宿主机上的编译工具如gcc之类编译产生的可执行文件不能直接在目标
板上运行,所以要移植到目标板就必须利用交叉编译工具armgcc等来编译.其产生的原因
是宿主机与目标板的体系架构不一样(宿主机Intel X86,目标板Arm9).
# chmod 777 hello2 修改用户读写权限。
~# mount /dev/sda1 /mnt 对于目标板来说,sda1为usb host
所插设备的块文件,hda1为ide所插设备的块文件
~# /mnt/hello2 发现可以运行.这说明hello2不是错
的,这就证明了我们前面说到的交叉编译的原因.
经常会找不到armv41-unkown-linux-gcc,每次编译前要source /root/.bash_profile。Gcc编
译的执行文件只能在宿主机上运行,而armv41-unknown-linux-gcc编译的执行文件只能在目
标机上运行。可以用 file + <文件名> 来查看文件是在哪个机子下运行的。
找不到armv41-unkown-linux-gcc的原因是makefile的代码有问题,可以参考工具盘中
exp的代码,但也要做修改,把第二行删掉再编译,会生成一个hello执行文件,运行./hello。
Makefile:
TOPDIR = ../
EXEC = $(INSTALL_DIR)/hello ./hello
OBJS = hello.o
CFLAGS +=
LDFLAGS+= –static
all: $(EXEC)
$(EXEC): $(OBJS)
$(CC) $(LDFLAGS) -o $@ $(OBJS)
clean:
-rm -f $(EXEC) *.elf *.gdb *.o
例[..~ ~..] cd example
[..~ ~..] ls
[..~ ~..] make clean
[..~ ~..] make
[..~ ~..] ./hello
五.Windows与Linux系统之间的网络通信:
1、网络设置:将以太网改为“仅主机”。
2、当Windows向Linux发送数据时,Linux的IP地址是可以改变的(如192.168.0.2),但
是当虚拟机Linux向Windows发送数据时,Windows的IP地址是固定的192.168.0.1。(在网上
有服务端显示客户端IP的例题)。
3、程序在ARM机上运行:
用Kdevelop编译、make成功后就可以“运行”了(注意:第一次编译、make会出现错
误提示:automake版本低,只要再编译、make一次就会显示“成功”了。)生成的可执行的
二进制文件是在linux下运行的;而用arm-linux-gcc编译*.c文件生成的二进制文件可以在
ARM机下运行了。
如[..~ ~..]arm(输入arm后再按Tab键可以看到很多arm编译器)
[..~ ~..]arm-linux-gcc armv41-unknown-linux-gcc
arm-linux-g++ armv41-unknown-linux-g++
arm-linux- armv41-unknown-linux-
[..~ ~..]armv41-unknown-linux-gcc –o arm main.c
[..~ ~..]./arm
4、当ARM机作为客户端向服务端Windows发送数据时,PC机的IP为10.187.98.58,而不
是虚拟机下的192.168.0.1。ARM上网用一般网线,只要把ARM的IP设置为同一网段就行(如:
10.187.98.59)。
4.演示摄像头:启动后把摄像头插到2410-S 的usb 主口
(注意:在加载模块驱动后,再插入摄象头,之后再执行应用程序。)不然会出现打不开
/dev/v4l/video0 文件的错误提示。
18.FTP 演示:连接好实验箱配套的交叉网线
在FlashFXP(或台式机)的地址栏输入ftp://10.187.98.59(注意:要与台式机在同一网段)。
※ 开机:
Root
管理员密码
Startx
※ 字体:
选择ZYsong ,按住ctrl+space变换成智能拼音。
※ 挂载U盘
LINUX下:
mkdir /mnt/usb
然后就可以接上U盘了,然后在终端下输入命令并击Enter键即可:
mount /dev/sda1 /mnt/usb
在Linux下我们也要删除挂起点,方法是:
umount /dev/sda1 /mnt/usb 或 umount /dev/sda1
ARM下:
fdisk –l /dev/sdb 或是 fdisk –l /dev/hdb 查看挂载地址
mount –t vfat /dev/sdb1 /mnt/usb (usb是新建文件夹)
※ 挂接Windows文件共享
Windows网络共享的核心是SMB/CIFS,在linux下要挂接(mount)windows的磁盘共
享,就必须安装和使用samba软件包。当windows系统共享设置好以后,就可以在linux
客户端挂接(mount)了,具体操作如下:
# mkdir –p /mnt/samba 注:建立一个目录用来作挂接点(mount point)
# mount -t smbfs -o username=administrator,password=pldy123
//10.140.133.23/c$ /mnt/samba
按照下面的就可以删除不必要的文件,我删除了50多M
root@1[root]# local
local locale localedef locale-gen localepurge
root@1[root]# locale
locale localedef locale-gen localepurge
root@1[root]# localepurge
localepurge: Disk space freed in /usr/share/locale: 56070K
localepurge: Disk space freed in /usr/share/man: 1238K
Total disk space freed by localepurge: 57308K
如你想reinstall以前删除的locale,请运行下面的命令行
To reinstall all the packages which localepurge has been taking care of
before, you can use the following command:
apt-get --reinstall install $(dpkg -S LC_MESSAGES | cut -d: -f1 | tr ',
' 'n' | sort -u)
版权声明:本文标题:Linux系统结构(由里到外) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1735094187a1633688.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论