- 论坛徽章:
- 0
|
Set environment variable
/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.
并从/etc/profile.d目录的配置文件中搜集shell的设置.
/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
当前用户:
~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取.[color="#0000ff"] 通常在这里增加.
~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件.
Execute Command After System Initialize
在/etc/rc.local中增加要执行的脚本
Download Linux Kernel to Target Board
海斯开发板的流程是这样的: 使用MultiICE或其他工具,烧写Hiboot(在Uboot基础上修改的boot),目标地址为0x3400 0000.这个地址是该开发板上!NAND flash的起始地址
配置和编译目标板的内核,生成zImage文件
使用Uboot提供的mkimage工具对zImage文件进行处理,增加入口信息,生成hikernel文件
通过boot提供的tftp,下载hikernel文件到0x3410 0000地址;或是通过boot提供的串口下载命令,下载到内存中,然后cp到0x3410 0000地址
在boot中设置参数,通过>bootm 0x3410 0000启动内核;也可以设置为自动启动
使用busybox,生成根文件系统的内容;然后使用专门的工具,生成img文件
使用内核一样的方式,网络或串口,下载根文件系统到0x3430 0000
FriendlyARM板的流程如下: 使用sjf2410烧写boot(vivi修改而来)到Nand flash(不知道为什么没设置Nandflash的地址,如何找到地址的?)
用boot给Nandflash分区
用boot重新下载boot
用boot下载内核映像
用boot下载根文件系统映像
Ambarella开发板的流程之网络升级如下: boot的升级方法没介绍,所以不用也没必要升级boot
编译内核和根文件系统,分别生成Image和ramdisk.gz
使用脚本,处理内核和根文件系统
align.sh public_linux/linux/arch/arm/boot/Image kernel.bin
align.sh root_fs/ramdisk.gz rootfs.bin
在目标板上用flashcp命令,更新内核和根文件系统([color="#ff0000"] 看样子升级的前提是目标板上已经有了linux才能mount nfs )
flashcp -v /mnt/ipcam/ambarella/rootfs.bin /dev/mtd4
flashcp -v /mnt/ipcam/ambarella/kernel.bin /dev/mtd3
[color="#ff0000"] 如何通过!DirectUSB升级,没找到说明
Make Vim Colorful?
sudo aptitude install vim-full
增加文件~/.vimrc
代码:
set nobackup
set nocompatible
syntax on
filetype plugin on
"colorscheme murphy
colorscheme blue
"colorscheme ron
let &termencoding=&encoding
set fileencodings=utf-8,gbk,ucs-bom,cp936
Ubuntu8.04安装vmtools后使能共享文件夹和鼠标滚轮
共享文件夹解决方案
鼠标滚轮解决方案:
vi /etc/X11/xorg.conf
Section "InputDevice"
Identifier "Configured Mouse"
Driver "vmmouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2" #加入以下3行
Option "ZAxisMapping" "4 5"
Option "Emulate3Buttons" "true"
EndSection
Install Samba
http://www.w3china.org/blog/more.asp?name=FoxWolf&id=35052
Use NFS as root file system
编辑文件/etc/exports,在该文件里添加如下内容: /home/work 192.168.0.*(rw,sync,no_root_squash);
其中的路径表示要共享的目录,ip表示允许访问的ip范围,括号里面的表示权限;
执行如下命令启动NFS 服务,此时NFS 会激活守护进程,然后就开始监听 Client 端的请求: # /etc/rc.d/init.d/nfs start
在Linux 服务器上进行NFS 服务器的回环测试,验证共享目录是否能够被访问。在Linux 服务器上运行如下命令:# mount –t nfs 192.168.0.20:/home/work /mnt
Use Putty on Windows to Login Ubuntu8.04 with OpenSSH
?
http://idcnews.net/html/edu/network/20070101/285458.html
http://linux-sxs.org/networking/openssh.putty.html
按照以上方式,设置成功,我没有加密码.之后出现了中文乱码,修改putty的设置,在window>translation里面,将字符集改为UTF-8
Compile Kernel Modules by Cross Compile Tools or Local Compile Tools
如果要交叉编译,首先写一个Makefile,比如:
ifneq ($(KERNELRELEASE),)
obj-m := mt9p001_ryan.o
else
PWD := $(shell pwd)
KDIR := ~/work/AMB/ambarella/public_linux/linux
all:
$(MAKE) -C $(KDIR) M=$(PWD) modules
clean:
rm -rf .*.cmd *.o *.mod.c .tmp_versions
endif
KDIR必须是目标机的内核的,不能是pc机的.
然后执行
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
结果如下:
ryan@ryan-pc:~/work/AMB/mycode/modules$ make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-
make -C ~/work/AMB/ambarella/public_linux/linux M=/home/ryan/work/AMB/mycode/modules modules
make[1]: Entering directory `/home/ryan/work/AMB/ambarella/public_linux/linux'
CC [M] /home/ryan/work/AMB/mycode/modules/mt9p001_ryan.o
/home/ryan/work/AMB/mycode/modules/mt9p001_ryan.c: In function 'mt9p001_detect':
/home/ryan/work/AMB/mycode/modules/mt9p001_ryan.c:40: warning: ISO C90 forbids mixed declarations and code
Building modules, stage 2.
MODPOST 1 modules
LD [M] /home/ryan/work/AMB/mycode/modules/mt9p001_ryan.ko
make[1]: Leaving directory `/home/ryan/work/AMB/ambarella/public_linux/linux'
如果不进行交叉编译,那么需要修改下之前的Makefile,将KDIR改为本机的内核头文件目录,比如/lib/modules/2.6.24-19-generic/build/.
然后执行>make,不加参数.如果之前设置了CROSS_COMPILE等环境变量,可能有问题,最好重启shell.
Compile Apps by Cross Compile Tools or Local Compile Tools
如果只有一个.c文件,那么执行如下代码即可,其中的gcc替换为对应平台的gcc
gcc -o result filename.c
如果要加一些编译选项(比如链接库的路径),直接在命令里面加.
Debug Apps on PC or Target Board
在PC机上调试app,主要有两种方式: 直接用gdb命令行方式调试: 功能强大,速度快;但不易操作
用ddd等图形化前端调用gdb进行调试: 界面直观;但速度慢
调试pc的应用,需要用本机的gcc编译,增加-g选项,以加入调试信息
$gcc -g -o i2c_ambarella_test_pc i2c_ambarella_test.c
如果是命令行方式,就可以运行gdb直接进行调试:
$gdb i2c_ambarella_test_pc
接下来,就可以用list,next/step,print,run,break等命令了.详见>
ddd方式没有使用过,前期最好还是使用命令行方式.
目标机上的app调试,目前的方式如下:
- 目标机上运行: $gdbserver 10.0.0.2:1000 test
- PC机上使用insight,选择tcp方式,指定目标机的ip 10.0.0.2,端口1000就可以了
如何去掉文件里面的^M
windows里面编辑的文件在linux里面可能会看到很多^M,有的不会被直接看到,需要先用gedit编辑下才能看到.
在vim里面使用 %s/[Ctrl_v][ENTER]//g可以去掉他们,不知道为什么直接在虚拟机上用这个不行(可能是虚拟机的键盘不一样).在ssh里面才可以用.
或者用ultraedit,上面有个dos2unix的图标.
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/82219/showart_1308564.html |
|