title: Linux 嵌入式使用
tags: 新建,模板,小书匠
grammar_cjkRuby: true
Copyright (C) @2018 Widic
Filename:
File-function:
Cre_ID: @ Widic 2018-1-23
Mod_ID:
三 学习过程
20170617
- uart2 作为调试串口 band rate 115200
- 串口调试终端采用ZOC
3.开发板启动开官如下: - SD卡挂载boot分区挂载在/media/mmcblk0p1
- u盘挂载的方式为 /media/sda1
- openssh ?
- LED 的IO口对应
- 一个驱动程序包括镜像 .ko,源码,测试脚本。
insmod led.ko //安装模块
rmmod led.ko //卸载模块
CTRL + C
9. 显示接口
10. 环境变量设置
setenv
saveenv
11.运行Matrix 用户界面程序
12. matrix gui
/etc/init.d/matrix-gui-2.0 stop //Matrix Qt 用户界面程序启动
/etc/init.d/matrix-gui-2.0 start //
// 如果希望上电不要自动运行Matrix用户界面程序
mv /etc/rc5.5.d/s97matrix-gui-2.0 /etc/rc5.d/k97matrix-gui-2.0
etc/rc5.d"目录下所有以 S 开头的脚本都会上电自动运行,改名为 K 开头后就不会上
电自动运行了。可在启动后执行前面的命令手动启动或关闭 Matrix 用户界面程序
- SD卡写速度
time 有计时作用, dd 用于复制,从 if (input file)读出,写到 of (output file)。if=/dev/zero
不产生 IO,即可以不断输出数据,因此可以用来测试纯写速度。 bs 是每次写块的大小,
count 是读写块的数量。 执行以下命令测试 SD 卡写速度:
Target# time dd if=/dev/zero of=/media/mmcblk0p2/test bs=1024k count=200
这里一共写 200MB 测试数据到 SD 卡的 test 文件,写入速度 7MB/s。
备注: 不同的 SD 卡以及不同大小的测试文件,测试结果会有所差别。
- 查看系统所有挂载信息 df -h
- 设置DDR内存
- 网口开启 hdhcpc 和自动获取IP命令ifconfig
- 网络速度测试```
在 Ubuntu 中使用网络测试软件 iperf 来测试网络速度。若未安装,可在 Ubuntu 中
执行"sudo apt-get install iperf"安装,
iperf -s
iperf -c 192.168.1.137
opkg install iperf
18. 远程访问Matrix 用户界面测试
19. WEB 文件系统
功能:
1. 上传文件
2. 下载文件
3. 删除文件
4. 显示磁盘使用状况
操作步骤:
(1) 拷贝"/demo/app/file_storage"文件夹到 SD 卡;
(2) 插入网线, 启动开发板, 使用 ifconfig 命令查看开发板的 IP 地址;
(3) 安装 python 相关模块;
Target# opkg update
Target# opkg install python-distutils
Target# opkg install --force-overwrite python-email
Target# opkg install python-pprint
(4) 手动添加 python 相关模块;
进入 file_storage 目录;
Target# cd /media/mmcblk0p1/file_storage/
Target# cp libs/* /usr/lib/python2.7/
(5) 安装 web.py
在 file_storage 目录,执行以下命令;
Target# cd webpy
Target# python setup.py install
(6) 运行 file_storage.py
在 file_storage 目录,执行以下命令;
Target# cd file_storage
Target# python file_storage.py 9090
(7) 打开 PC 端浏览器,输入网址,如 192.168.1.11:9090,如图所示:
- date 日期
- poweroff
- uname -a 查看内核和cpu信息
- 查看操作系统信息: cat /etc/issue
- hostname查看计算机名字
- 查看内存使用情况:cat /proc/memeinfo
- 查看环境变量信息: env
- 查看 CPU 主频
运行以下命令查看:
Target# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq - 程序上电自动运行。
- OMAPL138 DSP 和 ARM 基本联合调试和开发方法
按照正常方法启动 OMAP138 开发板,保证 ARM 端已正常运行,然后使用 CCS 按 DSP开发步骤加载可执行文件和进行调试即可。
20170618
OMAPL138 linux开发环境搭建
- 安装linux 和虚拟机
- 安装VMtools:作用:屏幕可以全屏,可以通过共享目录以及通过拖拽的方式在windows和虚拟机Ubuntu系统之间传输文件,是因为还没有安装VMware。
- 设置共享目录
- 更新相关软件: sudo apt-get update
- 安装Vim sudo apt-get install vim
- 建立交叉编译环境
1. 安装交叉编译链
2. 修改 /etc/profile 文件,添加路径
3. 使能交叉编译工具链: source /etc/profile
4. 查看版本号: arm-none-linux-gnueabi-gcc -v
5.
- 安装内核源码,文件系统源码和工具
安装Samba 共享工具及souceInsight使用方法
- 什么是Samba:是一种在局域网上共享文件的一种通信协议,它为局域网内的不同计算机之间提供文件的服务。
- souceSinght 使用
Linux SD 系统启动制作方法
SD卡启动:是开发板系统启动方式的一种,SD系统启动卡公有FAT32、EXT3两个格式分区,还包含RAW格式的无名分区。其中 FAT32 格式分区在 Windows 系统下可见, EXT3格式分区在 Windows 系统下不可见,两分区在 Linux 系统下均可见。无名分区在 Windows和 Linux 操作系统下均不可见。无名分区存放 u-boot.ais, FAT32 格式分区存放内核文件uImage、系统启动脚本等文件, EXT3 格式分区存放文件系统
- SD卡启动制作步骤:
- SD卡系统启动卡制作脚本作用说明
- 检查SD系统启动卡是否可以正常使用。
- SD系统启动卡恢复为普通SD卡
固化linux到nandflash
- 基于文件系统烧写linux 系统到nandFlash
- 基于放整齐烧写U-boot 到nandflash
- 基于串口烧写U-boot 到nandFlash
- 基于U-Boot 命令行烧写U-boot、内核镜像和文件系统到nandflsh。
固化linux 系统到SPI FLASH
OMAPL138 固化DSP程序到 NANDFLASH
1 基于仿真器烧写DSP程序到NANDFLAHS
基于OMAPL138实现单DSP核启动原理
- 上电复位后,ARM核启动,
- ARM的UBL引导程序初始化硬件环境变量,设置DSP程序入口地址
- ARM唤醒DSP核;
- 程序指针运行跳转至DSP程序入口,运行DSP程序。
linux内核的编译方法
- 清理内核,编译内核,配置内核。
更改开机启动LOGO的方法
OMAPL138内核驱动源码说明
- 说明系统驱动的结构
基于OMAPL138开发板的linux应用程序开发入门指南
- 基本的程序开发
GDB+GDBserver 调试程序的方法
基于OMAPL138 NFS搭建
- 系统连接:开发板连接电脑,网口,虚拟机桥接Ubuntu;与Ubuntu和电脑的防火墙无关,正常连接,设置开发板,主机,Ubuntu的ip一个网段,互相能够ping 通,就可以了。正常连接了。
- 安装nfs :
sudo apt-get install nfs-kernel-servel
- 在/etc/exports文件中配置,问价后面添加目录
sudo gedit /etc/exprots
问价后面添加:
/home/widic/ *(rw,sync,no_root_squash)
- 启动服务
/etc/init.d/portmap restart
/etc/init.d/nfs-kernel-server restart - 本地测试:
显示本地nfs 共享目录
showmount -e
showmount 显示挂载的host
挂载本地nfs共享目录 mount -t nfs localhost:/home/widic/ /opt/
命令df命令可以查到系统所有的挂载目录
卸载本地的nfs共享目录 sudo umount /opt/ - 开发板挂载目录 注意关闭服务器的防火墙经测试过不去
配置ip :ifconfig eht0 193 netmask 192.
开发板自动从路由器获取给它分配的IP udhcpc
开发板设置挂载目录 mkdir -p /nfs
mount -t nfs -o nolock 192.168.2.1:/home/widic/ /nfs/
可以用touch测试生成问价查看是否生成
umount /nfs/
7, 在u-boot中设置网络环境变量:
开发板上电后,按任意键进入 U-Boot 命令行,输入以下命令设置虚拟机 TFTP 服务器
的 IP 地址变量 serverip 和开发板的 IP 地址变量 ipaddr:
U-Boot > setenv serverip 192.168.0.5
U-Boot > setenv ipaddr 192.168.0.8
U-Boot > saveenv
执行以下命令测试网络的连通性:
U-Boot > ping 192.168.0.5
若提示"host ... is alive"说明网络畅通,
- 在U-boot中设置nfs网络文件系统加载环境变量
务必保证虚拟机 nfs 服务器已经搭建好,在 U-Boot 中设置 nfs 网络文件系统加载环境
变量:
U-Boot > setenv bootargs
root=/dev/nfsrwnfsroot=192.168.0.5:/home/tl/omapl138/rootfs
nfsaddrs=192.168.0.8:192.168.0.5:192.168.0.1:255.255.255.0
console=ttyS2,115200n8 mem=128M
U-Boot > printenv
U-Boot > saveenv
以下为参数解释:
root=/dev/nfsrw: 使用 nfs 起根文件系统,权限为可读可写。
nfsroot=192.168.0.5:/home/tl/omapl138/rootfs: 挂载的是 IP 地址为 192.168.0.5 的虚拟机
nfs 服务器/home/tl/omapl138/rootfs 目录下的文件系统。
nfsaddrs=192.168.0.8:192.168.0.5:192.168.0.1:255.255.255.0: 设置 nfs 的网络 IP 参数,格
式是 nfsaddrs=(开发板 IP:虚拟机 nfs 服务器 IP:同网段的网关:子网掩码)。
测试 nfs 网络文件系统
不用插 SD 卡,开发板上电,即可直接进入开发板系统根目录,发现开发板文件系统
内核和虚拟机中/home/tl/omapl138/rootfs 目录下的内容一样,证明 nfs 起根文件系统成
功了。通过 tftp 下载内核和 nfs 起根文件系统,形成一个最流行,也是最便捷的一种调试
方法。以下为两端的截图。
基于OMAPL138 的设备驱动开发入门
IO口说明
1.linux 对LED设备框架
2.
三 调试笔记 ubuntu16.04
20160817
![快捷键][2]
三 调试笔记-Ubuntu10.04
20160617
- 安装虚拟机
- 安装VMware
- (1)虚拟机 设置共享文件夹;
(2)网络设置为桥接方式;
默认情况下,虚拟机安装完成后与宿主机共享一个 IP 地址,没有属于自己的 IP,这里首先需要设 置虚拟机的网络联系方式为桥接方式。
*保证Windows 和linux可以ping通,ping不通的原因有很多,原因之一查看是否在一个网段里,然后再查看是否关闭了防火墙。
20160619
1 安装vm tools
- 进入系统后,屏幕不能全屏,也不能通过共享目录以及通过拖曳方式在 Windows
和虚拟机 Ubuntn 系统之间传输文件,是因为还没有安装 VMware Tool。点击"VM->Install
VMware Tools"。
![enter description here][3]
系统会自动挂载 VMware Tools 安装包, 按"Ctrl+Alt+T"会打开 console 控制台,然
后将安装包解压到"/home/tl"目录下。输入部分命令或者文件名后,可以使用键盘左边的
Tab 补全键,连续点击两次后,系统会自动识别已有的文件名或者命令,自动补全或者
提示选择,是一个比较方便的快捷键。
Host# cd /media/VMware Tools //此处务必使用 Tab 键补全,不能手动输入"VMware
Tools"
Host# ls
Host# tar zxvf VMwareTools-8.1.3-203739.tar.gz -C /home/tl
安装 VMware Tools。
Host# cd
Host# ls
Host# cd vmware-tools-distrib/
Host# ls
安装 VMware Tools 必须是在 root 权限下,但是 Ubuntu 默认不是不开启 root 用户的,
开启命令如下:
Host# sudo passwd root
输入两次密码后就开启了 root 用户,务必记住 root 密码,接着安装 VMware Tools。
Host# sudo ./VMware-install.pl
![enter description here][4]
遇到询问全部回车确认即可,等待安装结束。
2 建立交叉编译环境
Linux 交叉编译工具链是用来编译内核、应用程序的, QT 图形界面开发也需要用到。
我们统一使用 TI 官网提供的"arm-none-linux- gnueabi-gcc-4.3.3"交叉编译工具链。
( 1) 将光盘中交叉工具链源码复制到共享目录,源码路径在光盘中是:
tools/arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
然后解压安装工具链到根目录或者其他指定目录。
Host# ls /mnt/hgfs/shareVM/
上命令可查看共享目录下是否有交叉工具链源码安装包。接着运行以下命令来解压安
装交叉编译工具链:
Host# cd
Host# tar jxvf
/mnt/hgfs/shareVM/arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C ./
大写字母 C 后面有空格,是英文"Change"的缩写,意思是改变解压的目录的意思。
执行命令后, "arm-none-linux- gnueabi-gcc"工具链将被安装到"/home/tl/arm-2009q1"目录,
解压过程如下图:
![enter description here][5]
( 2)打开"/etc/profile"配置文件,将交
下命令:
Host# sudo gedit /etc/profile
在 profile 文件最后添加以下语句:
export PATH=$PATH:/home/tl/arm-2009
如下图, 按"Ctrl+S"保存后退出。
![enter description here][6]
( 3)使能交叉编译工具链,输入以下命令:
Host# source /etc/profile
重启虚拟机后,输入如下命令可查看版本号:
Host# arm-none-linux-gnueabi-gcc -v
可以看到类似"gcc sversion 4.3.3"的版本号,说明交叉编译工具链已经安装成功。
![enter description here][7]
3 安装源代码和工具
先创建安装目录"/home/tl/omapl138",如下图,在命令行执行:
Host# mkdir -p /home/tl/omapl138
![enter description here][8]
( 1) 解压安装内核源码
以 linux-3.3 内核为例, 将光盘 Linux 目录下的内核源码 linux-3.3.tar.bz2 放到共享目
录 shareVM 中, 在 Ubuntu 中执行以下命令安装内核源码:
Host# mkdir /home/tl/omapl138/linux-3.3
Host# tar jxvf /mnt/hgfs/shareVM/linux-3.3.tar.bz2 -C /home/tl/omapl138/linux-3.3
![enter description here][9]
各版本内核支持特性和维护信息见光盘"Linux/linux-feture-support.xls"文件
( 2) 解压安装文件系统源码
将光盘 Linux 目录下的文件系统源码 rootfs.tar.bz2 放到共享目录 shareVM 中, 然后执
行以下命令安装文件系统源码:
Host# mkdir -p /home/tl/omapl138/rootfs
Host# sudo tar jxvf /mnt/hgfs/shareVM/rootfs.tar.bz2 -C /home/tl/omapl138/rootfs
![enter description here][10]
文件支持特性和维护信息见光盘"Linux/rootfs 文件系统维护记录.xlsx"文件
-
安装交叉编译链:(1) 解压交叉编译工具到指定的路径。(2)在文件/etc/profile 中添加交叉编译的工具的路径,也就是刚刚解压的路径。(3)重启虚拟机 使能交叉编译工具链 source /etc/profie (注意,这里不能用sudo),查看版本号,arm-none-linux-gnueabi-gcc -v
-
安装源代码和工具(1)创建安装目录:mkdir -p /home/tl/omapl138
(2)解压安装内核源码 -
解压安装文件系统源码(1)创建解压文件目录(2)将文件解压
-
U盘的挂载目录为、media/sda1
-
卸载设备驱动程序 rmmod led.ko
-
测试网络速度:在 Ubuntu 中使用网络测试软件 iperf 来测试网络速度。若未安装,可在 Ubuntu 中执
行"sudo apt-get install iperf"安装, 在 Ubuntu 执行以下命令等待开发板连接:
Host# iperf -s在开发板上运行以下命令测试网口速度:
Target# iperf -c 192.168.1.137
开发板提示的信息如下图:
Ubuntu 会同时显示测试结果,如下图:假如自行制作的文件系统没有安装 iperf,可在开发板网络正常的情况下执行以下命
令安装 iperf 客户端:
Target# opkg install iperf -
自动获取IP 执行以下命令自动获取 IP:
Target# udhcpc -i eth1 -
程序上电自动运行
在"/etc/rc5.d"目录下所有以 S 开头的脚本程序都会上电自动运行, 按照编号由小到
大和字母排序顺序被执行的,例如 S97 开头的脚本将比 S99 开头的脚本先执行。 下面将
演示如何上电自动 helloworld 程序。
先将光盘"demoapphelloworldhelloworld"文件拷贝到开发板文件系统任意路径, 在
开发板上电后,使用以下命令创建并编辑文件"S99helloworld":
Target# vi /etc/rc5.d/S99helloworld
在 S99helloworld 文件中添加如下语句:
!/bin/sh
/home/root/helloworld //helloworld 程序位于文件系统/home/root 目录下,用需要执行的
程序的运行命令替换此语句即可
9. OMAPL138 DSP 和 ARM 基本联合调试和开发方法
按照正常方法启动 OMAP138 开发板, 保证 ARM 端已正常运行, 然后使用 CCS 按
DSP 开发步骤加载可执行文件和进行调试即可。
ARM 端可运行联合调试程序, DSP 端联合调试程序可按 DSP 开发步骤进行单步、
全速运行等操作, DSP 和 ARM 互相独立,并且共享硬件资源,均可进行单独硬件控制。
OMAPL138 的 DSP 端的具体开发步骤和开发例程请查阅创龙 TMS320C6748 用户手册。
更多联合调试与开发方法请参考 DVSDK/MCSDK 双核开发例程。
20160620
- 给予文件系统烧写linux系统到nandflash
20160621
1 基于文件系统烧写linux系统到nandflash
- 基于文件系统烧写linux系统到nandflash
参照历程基于文件系统烧写linux系统到nandflash
2 利用仿真器烧写bootloader
- 利用仿真器烧写bootloader必须使仿真器速率调成7MHZ比较慢耐心等待。
20160622
1 linux 内核的编译
2 linux内核启动logo更改方法。
3 linux应用程序开发入门。Hello World 演示程序
- 编写 helloworld 源代码
先在虚拟机的用户目录下建立 helloword 目录,用于存放 helloworld.c 源代码文件(源
代码也可以在光盘"demoapphelloworld"目录下找到),命令如下:
Host# mkdir -p /home/tl/omapl138/demo/app/helloworld
Host# cd /home/tl/omapl138/demo/app/helloworld - 使用 gedit 工具新建 helloworld.c 文件,并编辑程序源代码。
新建 helloworld.c 文件的
命令如下:
Host# gedit helloworld.c
其代码如下:
#include<stdio.h>
int main(void){
printf("Hello World!......www.tronlong.com
");
}
在 helloworld.c 中输入以上代码,
和 Windows 下的文本编辑器一样按"Ctrl+S"就可以保存编辑的内容了,然后点击左上
角的红叉按钮退出。
3. 交叉编译 helloworld 程序
进入源代码所在开发系统目录,执行以下命令交叉编译程序:
Host# arm-none-linux-gnueabi-gcc helloworld.c -o helloworld
"helloworld.c"代表源文件, "-o helloworld"代表交叉编译后输出的镜像名字叫
"helloworld",此名字可以是任意的。
Host# ls
![enter description here][11]
可以看到在当前目录下有 helloworld 镜像文件产生,说明交叉编译成功。也可以通过
file 命令查看其属性。
Host# file helloworld
![enter description here][12]
从提示中可以看到, helloworld 镜像文件时一个 32 位的小端 ARM 平台的程序,是可
以在 ARM 平台直接运行的。
4. 在开发板中 helloworld 运行程序
将 helloword 镜像拷贝到开发板文件系统任意路径下。开发板启动后, 在 helloword
镜像当前路径下执行以下命令运行 helloworld 程序
Target# ./helloworld
![enter description here][13]
可以看到程序已经打印出"Hello World!......www.tronlong.com"。
- Makefile 错误
![enter description here][14]
在编写makefile后,make项目时提示错误“Makefile:3: *** missing separator. Stop.”
偶然发现这个错误是有makefile中的tab的长度导致的,在makefile中的命令需要以tab键开始
20160623
- 使用Qt简单测试了电脑程序
- 搭建tftp服务器:tftp 是用来下载远程文件的最简单网络协议,它其于 UDP 协议而实现。嵌入式 Linux
的 tftp 最常用来完成开发板和开发环境 Linux 系统之间的的文件传输功能,避免了频繁
的 U 盘拷贝的过程。 Linux 下的 tftp 开发环境建立包括两个方面:一是 Linux 服务器端的
tftp-server 支持,二是嵌入式目标系统的 tftp-client 支持。本文将介绍基于 Ubuntu10.04 发
行版的 Linux 服务器端 tftp-server 的配置和在主机和目标机之间的 tftp 文件传输方法。 - tftp 搭建有问题,没有成功
- http://blog.csdn.net/axdc_qa_team/article/details/6658717
- ftp 搭建本机测试完成,按照创龙的开发手册。
20160728
usb 设备连接不到虚拟机怎么办-实验成功
[usb 设备连接不到虚拟机怎么办][15]
Mware虚拟机功能很强大,它也能像主机一样安装使用usb设备,如usb网卡,u盘等。
工具/原料
VMware虚拟机
u盘
方法/步骤
首先在【主机】中按Win+R打开“运行”对话框,输入“services.msc”,打开服务管理器。
怎么在VMware虚拟机中使用usb设备
在“服务”中启动“VMware USB Arbitration Service”服务项。
怎么在VMware虚拟机中使用usb设备
![enter description here][16]
然后打开虚拟机软件(先不要启动虚拟机)。在你的虚拟机界面点“编辑虚拟机设置”,打开“虚拟机设置”对话框。在“硬件”选项卡下,选中“USB控制器”,在右边选中前三个连接。三个都要选,缺一不可。
怎么在VMware虚拟机中使用usb设备
最后启动虚拟机,插入u盘,看看右下角usb的图标亮了没有,亮了就能正常使用了。
怎么在VMware虚拟机中使用usb设备
Ubuntu 开启root 身份
sudo passwd root 输入两次密码即可开启
问题 系统无法运行,出现 [ 4.103175] Kernel panic - not syncing: VFS: Unable to mount root fs on unkn, 我重新烧写了系统还是无法运行,换了核心板就好了,怀疑是系统的问题。
20160816
1 ftp localhost 550 Failed to open file.
一直找不到这个问题的原因最后在查那个的时候找到解决问题了,路径不对,所以我增加了主要做以下修改,使以下设置生效: (#符号是注释符,被注释的部分是无法起作用的) :
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_root=/home/widic/ftp
2 20160817
1 ftp实现
1.Linux 服务器端 ftp-server 的配置
首先需要安装 vsftpd。在终端下输入如下命令安装 vsftpd:
Host# sudo apt-get install vsftpd
成功安装如下图所示:
![安装vsftpd][17]
此时系统将自动创建 ftp 用户和 ftp 组,并建立"/srv/ftp"文件夹作为 ftp 用户的 HOME
目录。 ( 如果想把 FTP的目录放在"/home/ftp",可修改"/etc/passwd"文件中 ftp用户的 HOME目录位置。 )--- 这里我没有实现
2. 配置相关服务文件
进入/etc 目录,目录中会出现一个 vsftpd.conf 文件, 执行以下命令,修改内容如下图:
Host# sudo gedit vsftpd.conf
![enter description here][18]
(记得将#删掉, 如果下面指令没有就添加上去)
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
async_abor_enable=YES
nopriv_user=ftp
ascii_upload_enable=YES
ascii_download_enable=YES
ls_recurse_enable=YES
listen_port=21
anon_other_write_enable=YES
修改后保存退出。
3. 重新启动服务
执行以下命令重启 vsftpd,如下图所示:
Host# sudo service vsftpd restart
![enter description here][19]
4. 本地 ftp 文件传输功能测试
首先在 ftp 目录"/srv/ftp"中新建一个取名为 test 的文件,在其中输入任意内容, 如下
图所示:
![enter description here][20]
然后进入任意一个和"/srv/ftp"不同的目录。 如: "/home/widic"再在终端中输入以下命令,
进入 ftp 命令符下,如下图:
- 这里注意我ftp localhost 550 Failed to open file.需要修改配置文件里面local的路径
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_root=/home/widic/ftp
Host# sudo ftp localhost
![enter description here][21]
![enter description here][22]
到此本地测试成功
ftp创龙的ftp get何put 未实现
2 网络使用
- 网络使用
ifconfig eth0 显示一个以太网卡的配置
ufw disable 关闭防火墙
一种更简便的方法是使用 udhcpc 命令让开发板自动获取路由器给它分配的 IP, - Ubuntu 10.04中配置静态ip地址 2012-05-17 22:35:44
一、配置置IP与DNS
1、在终端下设置IP地址:命令行下敲:sudo gedit /etc/network/interfaces
打开文件添加如下内容:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.111
netmask 255.255.255.0
gateway 192.168.1.1
network 192.168.1.0
broadcast 192.168.1.255
然后保存退出.
2、在终端下设置DNS服务器:命令行下敲:sudo gedit /etc/resolv.conf
在里边加入如下内容:
nameserver 192.168.1.1
nameserver 202.96.134.133
添加完成后保存退出。
3、在终端重启网络,命令:sudo /etc/init.d/networking restart
测试:
ping 192.168.1.1 不通,提示未知目的地
解决:
1、右击“网上邻居”--属性,看到有VMware Network Adapter VMnet1和VMware Network Adapter VMnet8两个网卡,均设置在192.168.1.xx的网段。
2、在vm的Settings中设置Network Adapter的Network Connection为Bridged。
如果您的平台与路由器连接,且路由器支持 DHCP 自动 IP 地址分配,可以在 DNW 或者超级终端 。里面输入:udhcpc –i eth0 命令,用来动态获取 IP 地址,-i 参数用来指定网卡名称,飞凌平台有线网络的网卡名称为 eth0. 图形界面设置 IP 地址 Qtopia2.2.0 桌面环境,ForlinxTest 程序组中有一个 IP 地址设置软件,该软件可以设置固定 IP 地址,也可以从路由器动态获取 IP 地址,是您网络应用的好帮手,
- 网卡互相有影响,关掉多余的网卡
3 ssh 配置
1、安装和设置OpenSSH Server
在Ubuntu和debian类的系统中,默认是没有安装OpenSSH Server 的,其安装命令为:
apt-get install openssh-server
然后,Ubuntu会自动下载并安装openssh server,并一并解决所有的依赖关系。
2、服务器的启动、重启和停止
启动SSH Server: # /etc/init.d/ssh start
或者 #start ssh 或 # service ssh start
重启SSH Server: # /etc/init.d/ssh restart
停止SSH Server: # /etc/init.d/ssh stop
3、利用SSH客户端软件进行远程登录
Secure CRT – SSH客户端软件,同时具备了在终端仿真器和文件传输功能。找到链接的Server,打开Secure CRT后连接。
![enter description here][23]
1、OpenSSH上常用的命令
⑴ 登陆远程系统使用命令
ssh hostname [命令] [参数] //hostname is IP
例1:# ssh 172.21.73.187
root@172.21.73.187’s password:
Last login: Fri Jun 3 23:23:59 2011
⑵ 本地系统和远程系统之间文件的传输
scp localfile username@hostname:/newfilename
// 传输本地档案到远端机
scp username@hostname:/remotefile /newfile // 传送远端档案到本地
例2: 传输本地档案到远端机
root@localhost:/root> ls
anaconda-ks.cfg install.log install.log.syslog
root@localhost:/root> scp install.log chunqin@172.21.73.187:/home/chunqin /
chunqin@172.21.73.120's password:
install.log 100% 47 0.5KB/s 00:00
⑶ Sftp
sftp 是个交互式文件传输程式,类似于ftp,但他进行加密传输,比FTP有更高的安全性。登录成功后,用 get/put命令下载/上传文件 .
4 通过通过 OpenSSH 拷贝文件到开发板方法:
( 1) 查询虚拟机中 OpenSSH 是否安装, 执行如下命令:
HOST# ssh -v
![enter description here][24]
( 2) 开发板连上网线,开发板网络与虚拟机网络需要在同一网络下,查询开发板 IP
地址,执行如下命令:
![enter description here][25]
( 3) 查询到 IP 地址为: 192.168.2.100
( 4) 在虚拟机上新建文件,并且拷贝文件到开发板文件系统下,执行如下命令:
HOST# touch testssh
HOST# scp testssh root@192.168.2.100:/
![enter description here][26]
( 5) 先在开发板文件系统上新建一个测试文件,并且拷贝文件到虚拟机下,执行如
下命令:
![enter description here][27]
Target# touch testssh2
![enter description here][28]
![enter description here][29]
5 使用使用 OpenSSH 网络登录到开发板文件系统,
执行如下命令:Target# ssh root@192.168.1.32
备注:
root:开发板登陆名
192.168.2.100:开发板 IP 地址
![enter description here][30]
6 基于 Ubuntu10.04 的 tftp 开发环境搭建
Linux 服务器端 tftp-server 的配置
1 安装 tftp 所需的软件
安装软件前务必保证虚拟机可以上网。虚拟机要访问网络必须在"Virtual Machine
setting"菜单下选择"Network Adapter->Network connection->NAT:Used to share the host's IP address"
需要安装 tftp-hpa 和 tftpd-hpa(前者是客户端,后者是服务程序)以及 xinetd。在终
端下输入如下命令安装 tftp-hpa、 tftpd-hpa 和 xinetd:
Host# sudo apt-get install tftp-hpa
Host# sudo apt-get install tftpd-hpa
Host# sudo apt-get install xinetd
2 配置相关服务文件
进入/etc 目录,首先看目录中有没有一个 xinetd.conf 文件,如果没有则新建一个,有
的话运行"cat xinetd.conf"查看其内容,看是否与下面的一致,若不一致则运行"sudo gedit
xinetd.conf"修改为相同,内容如下图:
![enter description here][31]
打开配置文件 tftpd-hpa 命令如下:
Host# sudo gedit /etc/default/tftpd-hpa
将内容修改成:
-
/etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/tl/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"
修改完成后如下图:
![enter description here][32]
TFTP_DIRECTORY="/home/tl/tftpboot":表示 tftp 服务器的工作目录。
保存退出,然后新建 tftp 工作目录,例如: mkdir –p /home/tl/tftpboot,并修改权限为
777,命令为"sudo chmod 777 /home/tl/tftpboot"。 777 是最松的权限,这样不仅可以允许别
的主机或者目标机下载同时允许上传文件。
然后进入"/etc"下面的 xinetd.d 文件夹,查看是否有一个 tftp 文件,如果没有就运行
"sudo gedit tftp"新建一个并输入以下内容,如果有的话就查看内容是否与下面的一致,不
一致则修改,内容如下:
servicetftp
{
socket_type = dgram
wait = yes
disable = no
user = root
protocol = udp
server = /usr/sbin/in.tftpd
server_args = -s /home/tl/tftpboot -c
log_on_success += PID HOST DURATION
log_on_failure += HOST
per_source = 11
cps =100 2
flags =IPv4
}
修改完成如下图:
![enter description here][33]
其中 server_args 一行是配置服务器的文件存放的位置,就是进行 tftp 传输的时候,都
是从该文件夹中搜索文件的。然后保存文件,并退出编辑。
3 重新启动服务
执行"sudo service tftpd-hpa restart"重启 tftpd-hpa,,提示如下图:
![enter description here][34]
执行"sudo /etc/init.d/xinetd reload"重新加载一下 xinetd 进程,提示如下图:
![enter description here][35]
执行"sudo /etc/init.d/xinetd restart"重启 xinetd 服务,提示如下图:
![enter description here][36]
每次修改完配置文件后,都需要重新启动一下服务。
本地 tftp 文件传输功能测试----test未成功 Transfer timed out.
首先在 tftp 目录"/home/tl/tftpboot"中新建一个文件 test,在其中输入任意内容,例如内
容如下图![enter description here][37]
然后进入任意一个不是和"/home/tl/tftpboot"不同的目录。再在终端中输入"sudo tftp
localhost",进入 tftp 命令符下,如下图![enter description here][38]
可以在其中输入 help 查看命令和命令的作用,提示如下:
![enter description here][39]
接着输入 "get test"再按回车,如果没有任何提示,就说明传输成功了。然后输入 q 退
出 tftp 命令行,如下图![enter description here][40]
在当前目录下运行 ls 就可以看到一个 test 文件,可以使用"cat test"命令查看其内容,
可以发现是与开始新建的那个 test 的内容是一致的。
![enter description here][41]
- 开发板文件系统和虚拟机之间 tftp 文件传输功能实现
开发板和 Windows 主机先通过网线插到路由器,这样 Winsows 主机、虚拟机、开发
板就相当于在同一个局域网了。若没有路由器,也可以通过网线将开发um板和 Windows 主
机互联
Windows 主机、开发板、虚拟机三者之间 ping 命令测试
![enter description here][42]
20160817
1 基于 OMAPL138 和 Ubuntu10.04 的 nfs 开发环境搭建
- 有的源有问题无法下载,所以应该更新源
![enter description here][43]修改下面的源地址就可以了。 - 在终端输入以下命令安装 nfs 服务包:
- Host# sudo apt-get install nfs-kernel-server
![enter description here][44]
安装成功如下图所示:
![enter description here][45]
- 配置nfs
nfs 允许挂载的目录和权限需要在文件"/etc/exports"中进行定义。使用以下命令打开
/etc 目录下的 nfs 配置文件 exports:
Host# sudo gedit /etc/exports
在文件最后加入如下内容:
/home/widic/ *(rw,sync,no_root_squash)
修改完成如下图所示:
![enter description here][46]
保存并退出编辑,下面解释一下设置的含义其中:
/home/tl: 共享目录
*: 允许所有的网络段访问
rw: 访问者具有可读写权限
sync: 资料同步写入内存和硬盘
no_root_squash: nfs 共享目录访问者具有 root 权限
nfs 常用参数有
ro: 只读访问
rw: 读写访问 sync 所有数据在请求时写入共享
asyncnfs: 在写入数据前可以响应请求
secure nfs: 通过 1024 以下的安全 TCP/IP 端口发送
insecure nfs: 通过 1024 以上的端口发送
wdelay: 如果多个用户要写入 nfs 目录,则归组写入(默认)
no_wdelay: 如果多个用户要写入 nfs 目录,则立即写入,当使用 async 时,无需此设置
hide: 在 nfs 共享目录中不共享其子目录
no_hide: 共享 nfs 目录的子目录
subtree_check: 如果共享/usr/bin 之类的子目录时,强制 nfs 检查父目录的权限(默认)
no_subtree_check: 和上面相对,不检查父目录权限
all_squash: 共享文件的 UID 和 GID 映射匿名用户 anonymous,适合公用目录
no_all_squash: 保留共享文件的 UID 和 GID(默认)
root_squash root: 用户的所有请求映射成如 anonymous 用户一样的权限(默认)
no_root_squas root: 用户具有根目录的完全管理访问权限
anonuid=xxx: 指定 nfs 服务器:/etc/passwd:文件中匿名用户的 UID - 更新exports 重启nfs服务
更新exports
$sudo exportfs -r
重启 nfs 服务
执行以下命令重启 nfs 服务器:
Host# sudo /etc/init.d/portmap restart
Host# sudo /etc/init.d/nfs-kernel-server restart
成功安装如图:
![enter description here][47]
5 本地 nfs 服务器测试
显示已共享的 nfs 本地目录
执行以下命令查看 nfs 共享目录:
Host# showmount -e
![enter description here][48]
挂载本地 nfs 共享目录
Host# sudo mount -t nfslocalhost:/home/tl/ /opt/
进入"/opt"目录可以看到原来在"/home/tl"目录下的所有内容,如下图:
![enter description here][49]
我判断是输入参数不对
换种方法测试
在PC机器测试
$ sudo mount 192.168.1.111:/home/widic /opt 192.168.2.111为NFS服务器IP地址
此时可以查看/widic目录下内容即为NFS服务器上的内容
卸载
$sudo umount /opt
![enter description here][50] - 查看本地 nfs 挂载情况
在命令行终端执行 df 命令可以查看系统的所有挂载目录,如下图所示:![enter description here][51] - 卸载本地 nfs 共享目录
通过以下命令将本地挂载的 nfs 共享系统从挂载点"/opt"卸载:
Host# sudo umount /opt/![enter description here][52]
2 开发板挂载 nfs 服务器共享目录
开发板挂载 Ubuntu 虚拟机 nfs 服务器共享目录
在开发板执行以下命令在根目录下建立 nfs 挂载目录:
Target# mkdir -p /nfs
在开发板中当前执行以下命令挂载 nfs 服务器共享目录到开发板的/nfs 目录:
Target# mount -t nfs -o nolock 192.168.0.5:/home/widic /nfs
-t nfs: 挂载类型( type)是 nfs。
-o nolock: 不加文件锁, nfs mount 默认选项包括文件锁( lock),依赖于 portmap 提供的
动态端口分配功能。
192.168.0.5:/home/widic: 虚拟机的 IP 地址是 192.168.0.5,共享目录是虚拟机的"/home/tl"。
若是提示如下错误,很可能是开发板还没有安装 nfs 客户端。
![enter description here][53]
至此nfs 搭建成功
3 基于 OMAPL138 的 Linux 设备驱动程序开发入门
1 LED测试通过
4 ubuntu更换阿里源
网上应该可以找到很多关于ubuntu源的设置方法,但是如果不搞清楚就随便设置的话,不仅不能起到应有的效果,还会由于一些问题导致apt不可用。
最正确的更换源的方法应该如系统提示的:
## a.) add 'apt_preserve_sources_list: true' to /etc/cloud/cloud.cfg
## or do the same in user-data
## b.) add sources in /etc/apt/sources.list.d
## c.) make changes to template file /etc/cloud/templates/sources.list.tmpl
这种方法有点没弄明白在/etc/apt/sources.list.d应该添加的是什么内容,如果是源文件的话,最后更改的模板又是什么作用?也没有去尝试,有时间会解决一下。
以下提供设置阿里源的方法,其他源也可以如法炮制:
-
首先查看自己的ubuntu系统的codename,这一步很重要,直接导致你更新的源是否对你的系统起效果,查看方法:
lsb_release -a
如,我的系统显示:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.2 LTS
Release: 14.04
Codename: trusty
显示了一些ubuntu的版本信息,需要得到的是Codename,比如,我这里是trusty
-
确认阿里源支持:
登陆以下网页:http://mirrors.aliyun.com/ubuntu/dists/
该网页显示了阿里云支持的ubuntu系统下各个Codename版本,确保自己的Codename在该网页中存在(一般都会有的)
-
备份系统源:
cd /etc/apt
sudo mv sources.list sources.list_bak -
添加新的源文件:
sudo vi sources.list
并添加以下内容:注意,每一行的trusty应该用第一步查看得到的Codename来代替
deb http://mirrors.aliyun.com/ubuntu/ trusty main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main multiverse restricted universe
-
保存并且sudo apt-get update,更新成功
-
以下提供配置脚本:
复制代码
1 Codename=$( (lsb_release -a)|awk '{print $2}'|tail -n 1 )
2 echo "
3 deb http://mirrors.aliyun.com/ubuntu/ $Codename main multiverse restricted universe
4 deb http://mirrors.aliyun.com/ubuntu/ $Codename-backports main multiverse restricted universe
5 deb http://mirrors.aliyun.com/ubuntu/ $Codename-proposed main multiverse restricted universe
6 deb http://mirrors.aliyun.com/ubuntu/ $Codename-security main multiverse restricted universe
7 deb http://mirrors.aliyun.com/ubuntu/ $Codename-updates main multiverse restricted universe
8 deb-src http://mirrors.aliyun.com/ubuntu/ $Codename main multiverse restricted universe
9 deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-backports main multiverse restricted universe
10 deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-proposed main multiverse restricted universe
11 deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-security main multiverse restricted universe
12 deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-updates main multiverse restricted universe ">sources.list
13 apt-get update
复制代码
sudo运行该脚本即可(注意运行之前最好备份之前的sources.list)
20160903
1 Ubuntu10.04 的 nfs 开发环境搭建
1) 安装 nfs 服务包
在终端输入以下命令安装 nfs 服务包:
Host# sudo apt-get install nfs-kernel-server
![安装成功][54]
![enter description here][55]
2) 配置Nfs
nfs 允许挂载的目录和权限需要在文件"/etc/exports"中进行定义。使用以下命令打开
/etc 目录下的 nfs 配置文件 exports:
Host# sudo gedit /etc/exports
在文件最后加入如下内容:
/home/tl/ *(rw,sync,no_root_squash)
修改完成如下图所示:
![enter description here][56]
保存并退出编辑,下面解释一下设置的含义其中:
/home/tl: 共享目录
*: 允许所有的网络段访问
rw: 访问者具有可读写权限
sync: 资料同步写入内存和硬盘
no_root_squash: nfs 共享目录访问者具有 root 权限
ro: 只读访问
rw: 读写访问 sync 所有数据在请求时写入共享
asyncnfs: 在写入数据前可以响应请求
secure nfs: 通过 1024 以下的安全 TCP/IP 端口发送
insecure nfs: 通过 1024 以上的端口发送
wdelay: 如果多个用户要写入 nfs 目录,则归组写入(默认)
no_wdelay: 如果多个用户要写入 nfs 目录,则立即写入,当使用 async 时,无需此设置
hide: 在 nfs 共享目录中不共享其子目录
no_hide: 共享 nfs 目录的子目录
subtree_check: 如果共享/usr/bin 之类的子目录时,强制 nfs 检查父目录的权限(默认)
no_subtree_check: 和上面相对,不检查父目录权限
all_squash: 共享文件的 UID 和 GID 映射匿名用户 anonymous,适合公用目录
no_all_squash: 保留共享文件的 UID 和 GID(默认)
root_squash root: 用户的所有请求映射成如 anonymous 用户一样的权限(默认)
no_root_squas root: 用户具有根目录的完全管理访问权限
anonuid=xxx: 指定 nfs 服务器:/etc/passwd:文件中匿名用户的 UID
3)重启nfs服务
执行以下命令重启 nfs 服务器:
Host# sudo /etc/init.d/portmap restart
Host# sudo /etc/init.d/nfs-kernel-server restart
![enter description here][57]
4)本地nfs服务器测试
- 显示已共享的 nfs 本地目录
执行以下命令查看 nfs 共享目录:
Host# showmount -e
![enter description here][58] - 挂载本地 nfs 共享目录
Host# sudo mount -t nfslocalhost:/home/tl/ /opt/
进入"/opt"目录可以看到原来在"/home/tl"目录下的所有内容,如下图:
![enter description here][59]
![enter description here][60] - 查看本地 nfs 挂载情况
在命令行终端执行 df 命令可以查看系统的所有挂载目录,如下图所示:
![enter description here][61] - .4 卸载本地 nfs 共享目录
通过以下命令将本地挂载的 nfs 共享系统从挂载点"/opt"卸载:
Host# sudo umount /opt/
![enter description here][62]
5) 开发板挂载 Ubuntu 虚拟机 nfs 服务器共享目录
在开发板执行以下命令在根目录下建立 nfs 挂载目录:
Target# mkdir -p /nfs
在开发板中当前执行以下命令挂载 nfs 服务器共享目录到开发板的/nfs 目录:
Target# mount -t nfs -o nolock 192.168.0.5:/home/tl /nfs
-t nfs: 挂载类型( type)是 nfs。
-o nolock: 不加文件锁, nfs mount 默认选项包括文件锁( lock),依赖于 portmap 提供的
动态端口分配功能。
192.168.0.5:/home/tl: 虚拟机的 IP 地址是 192.168.0.5,共享目录是虚拟机的"/home/tl"。
若是提示如下错误,很可能是开发板还没有安装 nfs 客户端。
![enter description here][63]
请先在开发板执行以下命令安装 nfs客户端,再重新挂载,务必保证开发板可以上网。
Target# opkg install nfs-utils-client
![enter description here][64]
挂载成功后,进入开发板/nfs 目录,可以看到 Ubuntu 虚拟机 nfs 服务器共享目录下的
所有文件了,结果如下图所示:
![enter description here][65]
使用以下命令在开发板的/nfs 目录建立 nfs 测试文件 nfs-test:
Target# touch nfs-test
可以看到开发板已经出现了 nfs-test 测试文件,在使用 vi 编译器在 nfs-test 文件输入
test nfs,保存并退出 vi 编译器,如下图所示:
![enter description here][66]
这时可以看到在虚拟机的 nfs 共享目录中有 nfs-test 文件产生了,使用 cat 命令查看其
内容,如下图:
![enter description here][67]
说明开发板通过 nfs 挂载虚拟机的共享目录已经成功,并且可读可写,以后就可以通
过 nfs 服务器来传输文件了,比 U 盘传输更加便捷。
卸载开发板的 nfs 挂载目录
执行以下命令离开开发板/nfs 目录,并卸载 nfs 挂载目录:
Target# cd
Target# umount /nfs/
再查看/nfs 目录,可以看到里面的挂载内容已经没有了,说明卸载成功,操作和显示
如下图
==End of File==