OMAPL138调试笔记

Posted 夏海风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OMAPL138调试笔记相关的知识,希望对你有一定的参考价值。


title: Linux 嵌入式使用 tags: 新建,模板,小书匠 grammar_cjkRuby: true


Copyright (C) @2018 Widic
Filename:
      File-function:  

Cre_ID:  @ Widic  2018-1-23
Mod_ID:

三 学习过程

20170617

  1. uart2 作为调试串口 band rate 115200
  2. 串口调试终端采用ZOC 3.开发板启动开官如下: 技术分享图片
  3. SD卡挂载boot分区挂载在/media/mmcblk0p1
  4. u盘挂载的方式为 /media/sda1
  5. openssh ?
  6. LED 的IO口对应 技术分享图片
  7. 一个驱动程序包括镜像 .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 用户界面程序
  1. 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 卡以及不同大小的测试文件,测试结果会有所差别。
  1. 查看系统所有挂载信息 df -h
  2. 设置DDR内存
  3. 网口开启 hdhcpc 和自动获取IP命令ifconfig
  4. 网络速度测试``` 在 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,如图所示:

  1. date 日期
  2. poweroff
  3. uname -a 查看内核和cpu信息
  4. 查看操作系统信息: cat /etc/issue
  5. hostname查看计算机名字
  6. 查看内存使用情况:cat /proc/memeinfo
  7. 查看环境变量信息: env
  8. 查看 CPU 主频 运行以下命令查看: Target# cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
  9. 程序上电自动运行。
  10. OMAPL138 DSP 和 ARM 基本联合调试和开发方法 按照正常方法启动 OMAP138 开发板,保证 ARM 端已正常运行,然后使用 CCS 按 DSP开发步骤加载可执行文件和进行调试即可。

20170618

OMAPL138 linux开发环境搭建

  1. 安装linux 和虚拟机
  2. 安装VMtools:作用:屏幕可以全屏,可以通过共享目录以及通过拖拽的方式在windows和虚拟机Ubuntu系统之间传输文件,是因为还没有安装VMware。
  3. 设置共享目录
  4. 更新相关软件: sudo apt-get update
  5. 安装Vim sudo apt-get install vim
  6. 建立交叉编译环境
1. 安装交叉编译链
2. 修改 /etc/profile 文件,添加路径
3. 使能交叉编译工具链: source /etc/profile
4. 查看版本号: arm-none-linux-gnueabi-gcc -v
5.  
  1. 安装内核源码,文件系统源码和工具

安装Samba 共享工具及souceInsight使用方法

  1. 什么是Samba:是一种在局域网上共享文件的一种通信协议,它为局域网内的不同计算机之间提供文件的服务。
  2. souceSinght 使用

Linux SD 系统启动制作方法

SD卡启动:是开发板系统启动方式的一种,SD系统启动卡公有FAT32、EXT3两个格式分区,还包含RAW格式的无名分区。其中 FAT32 格式分区在 Windows 系统下可见, EXT3格式分区在 Windows 系统下不可见,两分区在 Linux 系统下均可见。无名分区在 Windows和 Linux 操作系统下均不可见。无名分区存放 u-boot.ais, FAT32 格式分区存放内核文件uImage、系统启动脚本等文件, EXT3 格式分区存放文件系统

  1. SD卡启动制作步骤:
  2. SD卡系统启动卡制作脚本作用说明
  3. 检查SD系统启动卡是否可以正常使用。
  4. SD系统启动卡恢复为普通SD卡

固化linux到nandflash

  1. 基于文件系统烧写linux 系统到nandFlash
  2. 基于放整齐烧写U-boot 到nandflash
  3. 基于串口烧写U-boot 到nandFlash
  4. 基于U-Boot 命令行烧写U-boot、内核镜像和文件系统到nandflsh。

固化linux 系统到SPI FLASH

OMAPL138 固化DSP程序到 NANDFLASH

1 基于仿真器烧写DSP程序到NANDFLAHS

基于OMAPL138实现单DSP核启动原理

  1. 上电复位后,ARM核启动,
  2. ARM的UBL引导程序初始化硬件环境变量,设置DSP程序入口地址
  3. ARM唤醒DSP核;
  4. 程序指针运行跳转至DSP程序入口,运行DSP程序。

linux内核的编译方法

  1. 清理内核,编译内核,配置内核。

OMAPL138内核驱动源码说明

  1. 说明系统驱动的结构

基于OMAPL138开发板的linux应用程序开发入门指南

  1. 基本的程序开发

GDB+GDBserver 调试程序的方法

基于OMAPL138 NFS搭建

  1. 系统连接:开发板连接电脑,网口,虚拟机桥接Ubuntu;与Ubuntu和电脑的防火墙无关,正常连接,设置开发板,主机,Ubuntu的ip一个网段,互相能够ping 通,就可以了。正常连接了。
  2. 安装nfs :
sudo  apt-get install nfs-kernel-servel

  1. 在/etc/exports文件中配置,问价后面添加目录
sudo gedit  /etc/exprots
问价后面添加:
/home/widic/ *(rw,sync,no_root_squash)

  1. 启动服务 /etc/init.d/portmap restart /etc/init.d/nfs-kernel-server restart
  2. 本地测试: 显示本地nfs 共享目录 showmount -e showmount 显示挂载的host 挂载本地nfs共享目录 mount -t nfs localhost:/home/widic/ /opt/ 命令df命令可以查到系统所有的挂载目录 卸载本地的nfs共享目录 sudo umount /opt/
  3. 开发板挂载目录 注意关闭服务器的防火墙经测试过不去 配置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"说明网络畅通,

  1. 在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

  1. 安装虚拟机
  2. 安装VMware
  3. (1)虚拟机 设置共享文件夹; (2)网络设置为桥接方式; 默认情况下,虚拟机安装完成后与宿主机共享一个 IP 地址,没有属于自己的 IP,这里首先需要设 置虚拟机的网络联系方式为桥接方式。 *保证Windows 和linux可以ping通,ping不通的原因有很多,原因之一查看是否在一个网段里,然后再查看是否关闭了防火墙。

20160619

1 安装vm tools

  1. 进入系统后,屏幕不能全屏,也不能通过共享目录以及通过拖曳方式在 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. 安装交叉编译链:(1) 解压交叉编译工具到指定的路径。(2)在文件/etc/profile 中添加交叉编译的工具的路径,也就是刚刚解压的路径。(3)重启虚拟机 使能交叉编译工具链 source /etc/profie (注意,这里不能用sudo),查看版本号,arm-none-linux-gnueabi-gcc -v

  2. 安装源代码和工具(1)创建安装目录:mkdir -p /home/tl/omapl138 (2)解压安装内核源码

  3. 解压安装文件系统源码(1)创建解压文件目录(2)将文件解压

  4. U盘的挂载目录为、media/sda1

  5. 卸载设备驱动程序 rmmod led.ko

  6. 测试网络速度:在 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

  7. 自动获取IP 执行以下命令自动获取 IP: Target# udhcpc -i eth1

  8. 程序上电自动运行 在"/etc/rc5.d"目录下所有以 S 开头的脚本程序都会上电自动运行, 按照编号由小到 大和字母排序顺序被执行的,例如 S97 开头的脚本将比 S99 开头的脚本先执行。 下面将 演示如何上电自动 helloworld 程序。 先将光盘"demo\app\helloworld\helloworld"文件拷贝到开发板文件系统任意路径, 在 开发板上电后,使用以下命令创建并编辑文件"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

  1. 给予文件系统烧写linux系统到nandflash

20160621

1 基于文件系统烧写linux系统到nandflash

  1. 基于文件系统烧写linux系统到nandflash 参照历程基于文件系统烧写linux系统到nandflash

2 利用仿真器烧写bootloader

  1. 利用仿真器烧写bootloader必须使仿真器速率调成7MHZ比较慢耐心等待。

20160622

1 linux 内核的编译

3 linux应用程序开发入门。Hello World 演示程序

  1. 编写 helloworld 源代码 先在虚拟机的用户目录下建立 helloword 目录,用于存放 helloworld.c 源代码文件(源 代码也可以在光盘"demo\app\helloworld"目录下找到),命令如下: Host# mkdir -p /home/tl/omapl138/demo/app/helloworld Host# cd /home/tl/omapl138/demo/app/helloworld
  2. 使用 gedit 工具新建 helloworld.c 文件,并编辑程序源代码。 新建 helloworld.c 文件的 命令如下: Host# gedit helloworld.c 其代码如下:
#include<stdio.h>
int main(void){
printf("Hello World!......www.tronlong.com\n");
}

在 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"。

  1. Makefile 错误 ![enter description here][14] 在编写makefile后,make项目时提示错误“Makefile:3: *** missing separator. Stop.” 偶然发现这个错误是有makefile中的tab的长度导致的,在makefile中的命令需要以tab键开始

20160623

  1. 使用Qt简单测试了电脑程序
  2. 搭建tftp服务器:tftp 是用来下载远程文件的最简单网络协议,它其于 UDP 协议而实现。嵌入式 Linux 的 tftp 最常用来完成开发板和开发环境 Linux 系统之间的的文件传输功能,避免了频繁 的 U 盘拷贝的过程。 Linux 下的 tftp 开发环境建立包括两个方面:一是 Linux 服务器端的 tftp-server 支持,二是嵌入式目标系统的 tftp-client 支持。本文将介绍基于 Ubuntu10.04 发 行版的 Linux 服务器端 tftp-server 的配置和在主机和目标机之间的 tftp 文件传输方法。
  3. tftp 搭建有问题,没有成功
  4. http://blog.csdn.net/axdc_qa_team/article/details/6658717
  5. 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 网络使用

  1. 网络使用 ifconfig eth0 显示一个以太网卡的配置 ufw disable 关闭防火墙 一种更简便的方法是使用 udhcpc 命令让开发板自动获取路由器给它分配的 IP,
  2. 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

[email protected]’s password:

Last login: Fri Jun 3 23:23:59 2011

⑵ 本地系统和远程系统之间文件的传输 scp localfile [email protected]:/newfilename

// 传输本地档案到远端机

scp [email protected]:/remotefile /newfile // 传送远端档案到本地

例2: 传输本地档案到远端机

[email protected]:/root> ls

anaconda-ks.cfg install.log install.log.syslog

[email protected]:/root> scp install.log [email protected]:/home/chunqin /

[email protected]‘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 [email protected]:/ ![enter description here][26] ( 5) 先在开发板文件系统上新建一个测试文件,并且拷贝文件到虚拟机下,执行如 下命令: ![enter description here][27] Target# touch testssh2 ![enter description here][28] ![enter description here][29]

5 使用使用 OpenSSH 网络登录到开发板文件系统,

执行如下命令:Target# ssh [email protected] 备注: 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]

  1. 开发板文件系统和虚拟机之间 tftp 文件传输功能实现 开发板和 Windows 主机先通过网线插到路由器,这样 Winsows 主机、虚拟机、开发 板就相当于在同一个局域网了。若没有路由器,也可以通过网线将开发um板和 Windows 主 机互联 Windows 主机、开发板、虚拟机三者之间 ping 命令测试 ![enter description here][42]

20160817

1 基于 OMAPL138 和 Ubuntu10.04 的 nfs 开发环境搭建

  1. 有的源有问题无法下载,所以应该更新源 ![enter description here][43]修改下面的源地址就可以了。
  2. 在终端输入以下命令安装 nfs 服务包:
  • Host# sudo apt-get install nfs-kernel-server ![enter description here][44] 安装成功如下图所示: ![enter description here][45]
  1. 配置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
  2. 更新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]
  3. 查看本地 nfs 挂载情况 在命令行终端执行 df 命令可以查看系统的所有挂载目录,如下图所示:![enter description here][51]
  4. 卸载本地 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应该添加的是什么内容,如果是源文件的话,最后更改的模板又是什么作用?也没有去尝试,有时间会解决一下。

以下提供设置阿里源的方法,其他源也可以如法炮制:

  1. 首先查看自己的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
  1. 确认阿里源支持:

    登陆以下网页:http://mirrors.aliyun.com/ubuntu/dists/

    该网页显示了阿里云支持的ubuntu系统下各个Codename版本,确保自己的Codename在该网页中存在(一般都会有的)

  2. 备份系统源:

    cd /etc/apt sudo mv sources.list sources.list_bak

  3. 添加新的源文件:

    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

  1. 保存并且sudo apt-get update,更新成功

  2. 以下提供配置脚本: 复制代码

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服务器测试

  1. 显示已共享的 nfs 本地目录 执行以下命令查看 nfs 共享目录: Host# showmount -e ![enter description here][58]
  2. 挂载本地 nfs 共享目录 Host# sudo mount -t nfslocalhost:/home/tl/ /opt/ 进入"/opt"目录可以看到原来在"/home/tl"目录下的所有内容,如下图: ![enter description here][59] ![enter description here][60]
  3. 查看本地 nfs 挂载情况 在命令行终端执行 df 命令可以查看系统的所有挂载目录,如下图所示: ![enter description here][61]
  4. .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==

以上是关于OMAPL138调试笔记的主要内容,如果未能解决你的问题,请参考以下文章

OMAPL138 电源/hdmi/camera/uart/LCD等原理图分享

Linux编译Qt4的环境_OMAPL138

omapl138+FPGA AD7606数据采集测试

Linux GPIO键盘驱动开发记录_OMAPL138

基于OMAPL138/C6748 + SPARTAN-6 77GHz汽车防撞雷达信号处理平台设计

基于OMAPL138 + Xilinx spartan6的电力数据采集与传输设计