技术标签: path set up environment linux 终端 服务器 filesystems
Ubuntu下搭建嵌入式环境
一.minicom的安装
(1)打开终端,输入:
sudo apt-get install minicom
(2)然后进行配置,输入
sudo minicom -s
(3)进入Serial port setup,需要修改两处:
1>A中 /dev/tty8改为/dev/ttyS0
注意:如果为笔记本没有串口,可以用usb转串口工具,此时要
改为/dev/ttyUSB0
(也许你的不一样,可以在/dev下查看)
2>波特率设备为115200,硬件流和控制流端口设为No
3>回车退回到刚进入时的界面,选择save setup as dfl。
(4)启动minicom
在终端输入命令:minicom,进入到minicom界面,如果主机跟开发板连接,这时如果按下板子的启动键,则在minicom界面中会看到整个加载的过程。系统启动完成后,minicom就相当与板子的一个终端,它可以对板子进行一些命令操作。
<!--@page { margin: 2cm }P { margin-bottom: 0.21cm }-->
(5)正常关闭minicom的方法是在终端里面输入:CTRL+A,然后再输入Q,这样才可以做到正常关闭minicom,
注:
非正常关闭minicom,会在/var/lock下创建几个文件LCK*,这几个文件阻止了minicom的运行,将它们删除后即可恢复
二.tftp的安装:
(1)进入终端,输入:
sudo apt-get install tftp-hpa tftpd-hpa
第一个是客户端,第二个是服务器端
(2)sudo apt-get install xinetd
这是一个tftp传输所基于的协议
(3)配置
1>cd /etc/xinetd.d/
修改配置tftp,如果没有就新建一个
2>输入:sudo gedit tftp
将内容修该如下:
service tftp
{
socket_type = dgram
wait = yes
disable = no
user = root
protocol = udp
server = /usr/sbin/in.tftpd
server_args = -s/home/tftpboot
log_on_success += PID HOST DURATION
log_on_failure +=HOST
}
3> 安装完成后,默认的服务器路径是 /var/lib/tftpboot/,以后目标机需要通过tftp获取文件时,都是从这个目录中获得
(4)重新启动服务器
sudo /etc/init.d/xinetd reload
sudo /etc/init.d/xinetd restart
(in 3.2.0 linux kernel, change from above two instructions to "sudo service xinetd reload ; sudo service xinetd restart" instead of above )
(5)测试:
1>首先在tftp服务器目录下随便新建一个文件
touch tiger.c
2>然后随便进入到其他目录下,输入命令:
sudo tftp localhost.
3>这时会出现tftp命令行,输入命令
get tiger.c
该意思是在localhost下,也就是访问本机中tftp服务器,获取文件tiger.c,若服务器没问题,则在该目录下会多出来一个刚才获得的文件a.c,这时就说明我们所安装的tftp服务器可以正常使用。
注意:
如果出现超时提示,一般都是防火墙的原因,所以要把防火墙关闭,或者直接卸载防火墙。输入:
sudo apt-get remove iptables
三nfs的安装:
(1)安装软件,输入:
sudo apt-get install nfs-kernel-server
(2)进入/etc目录下,修改配置文件exports
1>如果没有就新建一个:
sudo gedit exports
2>添加一句话:
# /etc/exports: the access control list for filesystems which may be exported
# to NFS clients. See exports(5).
#
# Example for NFSv2 and NFSv3:
# /srv/homes hostname1(rw,sync,no_subtree_check) hostname2(ro,sync,no_subtree_check)
#
# Example for NFSv4:
# /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)
# /srv/nfs4/homes gss/krb5i(rw,sync,no_subtree_check)
/home/think/test *(rw,sync,no_root_squash)
-------------------------------------------------------------------------------------
说明:
a.前面的目录是设置你想要共享的主机里的某个目录,此处将/home/think/test共享出现,
b.后面的*是设置允许那一段IP访问,这里的*代表任意ip段,也可以改为下面
/home/think/test 192.168.0.*(rw,sync,no_root_squash)
c.括号里面的参数
第一个参数:读写
第二个参数:同步
第三个参数:权限
a.no_root_squash: 登入 NFS 主机使用分享目录的使用者,如果是 root 的话,那么对于这个分享的目录来说,他就具有root 的权限!这个项目极不安全,不建议使用!
b.root_squash: 在登入 NFS 主机使用分享之目录的使用者如果是 root 时,那么这个使用者的权限将被压缩成为匿名使用者,通常他的 UID 与 GID 都会变成 nobody 那个身份。
c.all_squash: 不论登入 NFS 的使用者身份为何,他的身份都会被压缩成为匿名使用者,通常也就是 nobody
d. anonuid: 前面关于 *_squash 提到的匿名使用者的 UID 设定值,通常为 nobody,但是你可以自行设定这个 UID 的值!当然,这个 UID 必需要存在于你的 /etc/passwd 当中!
e.anongid: 同 anonuid ,但是变成 group ID 就是了。
(3)重新启动服务器
1>sudo exportfs -rv
重新导入配置文件
2>重新启动portmap服务(端口映射):sudo /etc/init.d/portmap restart
3>sudo /etc/init.d/nfs-kernel-server restart 重启nfs服务
(4)使用nfs
a.使用mount指令,让共享的文件夹挂载到一个指定目录下。
b.在使用nfs服务之前,还需要启动portmap服务,就是在你想要挂载东西的平台上,输入 portmap&,启动portmap服务。
c.自测
输入:
mount -t nfs 192.168.1.100:/home/think/test /mnt
如果没有提示就说明挂在成功。如果想要与开发板进行nfs传输,则在开发板的Linux系统下的终端中输入: mount -t nfs 192.168.1.100:/home/think/test /mnt -o nolock 完成挂载,进入/mnt目录会发现在PC机中/home/think/test中的东西显示出来了。
四.交叉工具链和安装:
1.安装:
每个开发板配套的都不一样,所以建议安装开发板中的交叉工具。
2.为了方便使用,还需要将交叉编译器路径添加到系统路径中
(1)在~/目录下新建一个文件.bash_profile(注意:.a文件是一个隐藏文件)
在文件中添加一句话:
PATH=$PATH:/home/think/4.3.3/bin
这句话添加了交叉编译器安装路径。
(2)要使编译器能用,必须运行。
运行.bash_profile文件的方法是:
a. cd~/
b .输入命令:. .bash_proble(点+空格.bash_profile)
运行命令后,在终端输入命令:arm-vfp-linux-gnu-并按两下tab键如果能看到很多arm-vfp-linux-gnu-前缀的命令,则说明安装正确。
注意:每次打开一个新的终端,都要运行一次.bash_profile文件
上面的方法每开一个新的终端都要运行一次.bash_profile过于麻烦:
我们可以直接在
用户主目录下有一个.bashrc文件,可以在此文件中加入PATH 的设置如下:
export PATH=$PATH:/home/think/4.3.3/bin
编写好后,注销以下我们就把交叉编译环境写入了环境变量中
(可以用echo $PATH来查看是否加入成功),这样以后每次都不用运行就可以直接使用交叉编译环境了
在编译程序时就不能在用gcc而要用arm-linux-gcc
c.每次都要用arm-linux-gcc命令过于麻烦,因此我们写一个Makefile
以后只要用make命令就OK了
1 EXEC=xxx
2 OBJS=xxx.o
3 SRC=xxx.c
4
5 CC=arm-linux-gcc
6 CFLAGS +=-O2 -Wall
7 LDFLAGS +=
8
9
10 all:$(EXEC)
11
12 $(EXEC):$(OBJS)
13 $(CC) $(LDFLAGS) -o $@ $(OBJS)
14
15 %.o:%.c
16 $(CC) $(CFLAGS) -c $< -o $@
17 clean:
18 @rm -vf $(EXEC) *.o *~
基于uni-app技术开发的仿微信界面IM实例项目,开源Vue版本源码,对于要求高的开发者我们也开发了NVUE版本,实现了文本消息、图文消息、表情(gif动画),图片预览,图片编辑,视频预览,视频编辑,仿微信的图片选择、编辑、长按菜单等功能_腾讯im实现长按发送语音
pppoe-server + ipv6安装pppoe 服务yum install rp-pppoe dibbler-server radvd -y开启ipv6转发echo 'net.ipv6.conf.all.forwarding = 1' >> /etc/sysctl.confsysctl -p配置pppoe服务vi /etc/ppp/pppoe.confETH..._pppoe-server-options ipv6
在对《Spring技术内幕》通读之后,终于对Spring IoC及AOP有了一点理解,以下为个人理解,如有不妥,欢迎大家指正,谢谢!一、Spring IoC也称控制反转或依赖注入理解:将对象的创建交给IoC容器进行管理(IoC容器也就是我们俗称的BeanFactory或者是ApplicationContext),由IoC容器负责引用对象的创建传统的方法:由于Demo类中包含Us_springioc di
tv_radaritem_name.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { isShow = !isShow; if(isShow) { Drawable img = getResources().getDrawabl..._textview设置图片在左边
如果你的电脑是英文版的Vista,那玩中文版魔兽争霸时就会出现:"此魔兽争霸III需要特定语言版本之Windows",无法进入游戏界面。问题如何解决呢?经上网查找,测试,总结出以下二种方法(必定可行):1、用 UltraEdit等编辑软件打开魔兽争霸安装目录下的“game.dll”文件,查找到16进制串"00006b30h04080000742A3D04",将其中的...
将查询结果插入到其它表中1. 思考目前只有一个goods表,我们想要增加一个商品分类信息,比如:移动设备这个分类信息,只通过goods表无法完成商品分类的添加,那么如何实现添加商品分类信息的操作?答案:创建一个商品分类表,把goods表中的商品分类信息添加到该表中。 将goods表中的分类名称更改成商品分类表中对应的分类id2. 创建商品分类表-- 创建商品分类表create table good_cates( id int not null primary key au
背景色透明:// 背景色 dialog.getWindow().setDimAmount(0f);不抢占Activity焦点:// dialog不去抢占焦点 dialog.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL, WindowManage...
点击上方“后端技术精选”,选择“置顶公众号”技术文章第一时间送达!作者:姚登晏www.cnblogs.com/yaodengyan/绝大部分写业务的程序员,在实际开发中使用 Redis..._java 异步长轮询 分布式 放入redis会生效吗
mysql 连接工具:SQLyog-8.32 还有一种连接数据库工具DBeaver DBeaver是一个通用的数据库管理工具和 SQL 客户端,支持 MySQL, PostgreSQL, Oracle, DB2, MSSQL, Sybase, Mimer, HSQLDB, Derby, 以及其他兼容 JDBC 的数据库...
CD Making DescriptionTom has NN songs and he would like to record them into CDs. A single CD can contain at most KK songs. In addition, Tom is very superstitious and he believes the number 13 would bri
1.我在进行需求分析的时候首先会做的是仔细分析导致现有问题,用户需要我们的系统来为她解决什么问题,因为只有你找对了问题所在,你才能在为用户解决问题的事情中作对第一步,才能开始解决用户的问题。2.欠缺系统操作人员的具体操作流程。整个业务办理下来,业务员的具体流程等。3.开发系统的原型: (1).功能:快速查询客户账户;分析一个客户是否为问题账户;给出一个问题账户的三..._登出账号太难找 你如何分析这个需求
CentOS6关闭防火墙使用以下命令,//临时关闭service iptables stop//禁止开机启动chkconfig iptables offCentOS7中若使用同样的命令会报错,stop iptables.serviceFailed to stop iptables.service: Unit iptables.service not loaded.这是因为Ce...