下面再写一点ltib的常用命令参数吧,虽然觉得对其编译内核和文件系统流程有了一定了解,但是对其命令参数用过的还不是很多,可以说是不甚了解,下面介绍一些,希望有用:

首先一个比较有用的命令参数就是help,一个人忘记命令参数很常见,何况刚开始熟悉这个工具。下面这个命令行可以查看ltib命令的使用帮助:
$
./ltib --help ## 这个等同于 ./ltib -h
在编译内核和文件系统时,有时忘了我们选了哪些程序包来进行编译操作,我们可以用下面的命令来查看当前安装模式下所有可用的程序包,是否被选择编译进工程
:
$
./ltib -m listpkgs ## 此命令是根据ltib的配置来显示
查看配置中已选编译的程序包,如内核版本包,系统工具包:
$
./ltib -m listpkgs | grep ' y '
如果想看编译过程产生的信息并把这些信息也保存,以备以后查看,可用以下命令
$
./ltib --preconfig config/platform/mpc8349itx/defconfig-min-fs-our-final --batch
2>&1 | tee ltib_log.txt
##
保存编译过程产生的信息及错误信息全部保存到ltib_log.txt文件中
ltib提供了一种shell模式,它直接提供了我们当前配置的交叉编译工具链模式,下面的命令能让我们进入ltib的shell环境
$
./ltib -m shell ## 完成后会给出提示,进入shell模式的提示符 'LTIB>'
##
输入exit可退出shell模式
##
下面的命令可以看一下这个有什么用,我直接给出命令,它下面就是这个命令的结果,不再解释
LTIB>
gcc --version
powerpc-linux-uclibc-gcc
(GCC) 3.4.3
Copyright
(C) 2004 Free Software Foundation, Inc.
This
is free software; see the source for copying conditions. There is NO
warranty;
not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
LTIB>
有时候我们想看一下某些程序包的源码,比如kernel、uboot等这些看了有益于身心健康的程序源码,该怎么办呢?
还有一种情况就是这些源码中存放有板子的各种配置文件,比如内存映射分配,也需要看一下源码文件,其命令格式为 $ ./ltib -m prep -p
<program_package_name>
##
下面这部分我是在large文件夹下操作,所写路径也是相对于/usr/local/mpc8349/large/来写的,而不是mytest文件夹下
##
例如我们要查看MPC8349ITX开发板上vsc7385的内存分配,或查找VSC7385的驱动模块部分,需要看uboot、内核源码,以下命令得到内核源码
$
./ltib -m prep -p kernel
##
解压后的内核源码位于rpm/BUILD/linux-2.6.13/
##
其中vsc7485的驱动是rpm/BUILD/linux-2.6.13/drivers/net/gianfar_phy.c
##
下面操作必须在原来的large文件夹下操作,为什么这么做?自己思考吧。以下命令可以得到uboot源码
$
./ltib -m prep -p u-boot
##
解压后得到的uboot源码位于rpm/BUILD/u-boot-1.1.3
##
其中有关MPC8349MITX板子配置信息的重要文件为/include/configs/MPC8349ITX.h
##
在上面的这个文件中可用看到VSC7385的内存分配基地址信息(#define CFG_VSC7385_BASE 0xF8000000)
##
不用uboot命令的话,可参看一下源码帮助理解。
##
注:上面这段命令操作我之所以选择在/usr/local/mpc8349/large文件夹下,是因为要得到某些程序源码,首先它得编译过。
上面介绍了一个ltib编译内核和文件系统比较好用的办法,当你比较熟悉了ltib工作流程,完全可以自己配置交叉编译工具链,内核和文件系统,然后编译,可以用下面这个命令行
$
./ltib --configure
如果想重新产生所有内核和RFS镜像有以下三个办法:
##
办法一: 直接调用配置文件编译,如果配置文件没有更新,且编译过的目标镜像没有变化,会不进行编译。若有任何改动,会执行编译
$
./ltib --preconfig config/platform/mpc8349itx/defconfig-min-fs-our-final
--batch
##
办法二: 如办法一一样,但强制重新编译
$
./ltib --preconfig config/platform/mpc8349itx/defconfig-min-fs-our-final --batch
-f
##
办法三: 清除所有编译的程序包,然后重新配置编译镜像
$
./ltib -m distclean ## 清除ltib工程文件
$
./ltib --configure ## 重新配置编译
假如我们对ltib的配置文件不满意,想自己通过配置操作来熟悉ltib的各种配置,或者相关工作做完了,甚至是看它不顺眼,都可以采用此操作,把LTIB完全卸载,
##
首先执行命令:
$
./ltib -m distclean ## 此操作将彻底清除所有当前ltib工程文件
##
此命令不要轻易使用,除非比较熟悉ltib编译配置过程
##
然后以root身份执行以下操作(注意:此操作将卸载所有的公共文件)
#
rm -rf /opt/freescale/pkgs
#
rm -rf /opt/freescale/ltib
#
rm <install_path> ## 执行文件ltib的上级目录
##
另一种更加暴力的办法是root身份运行rm命令来删除所有
下面再写一下外部内核模块的编译,假如我们有一个文件夹test(位于主目录/home/liuby/下),该文件夹包含程序源码文件test.c和Makefile,这两个文件的内容附在此段内容的最后。
##
首先我们得到内核源码,然后再编译,为什么这么做,我也不懂~~~,有些纳闷,以后再解决
$
./ltib -m prep -p kernel
$
./ltib -m scbuild -p kernel ##
编译的镜像为rpm/BUILD/linux/arch/ppc/boot/images/uImage
##
将test文件夹copy到内核的driver文件夹下
$
cp -a ~/test rpm/BUILD/linux/drivers/
##
vi修改driver文件夹下的Makefile
$
vi rpm/BUILD/linux/drivers/Makefile
##
可以仿照Makefile里的内容在最后添加如下一行
ojb-m
+= test/ ## 然后保存退出
##
修改test文件夹下的test.c和Makefile确保其正确无误。
##
下面的命令是进入ltib的shell环境,然后进入到test目录,然后编译
$
./ltib -m shell
LTIB>
cd rpm/BUILD/linux/drivers/test/
LTIB>
make V=1 ARCH=ppc
##
rpm/BUILD/linux/drivers/test/test.ko就是我们想要的module,下载到板子上用insmod
test.ko来执行模块(rmmod test.ko是卸载模块)
++++++++++++++++下面为test.c程序内容++++++++++++++++++
#include
<linux/init.h>
#include
<linux/module.h>
#include
<asm/mpc83xx.h>
MODULE_LICENSE("Dual
BSD/GPL");
static
int hello_init(void)
{
printk(KERN_ALERT
"Hello, world\n");
printk(KERN_ALERT
"IMMR virtual address: %X\n", VIRT_IMMRBAR);
printk(KERN_ALERT
"IMMRBAR: %08lX\n", *(unsigned long*)(VIRT_IMMRBAR + 0x00000));
printk(KERN_ALERT
"SPRIDR : %08lX\n", *(unsigned long*)(VIRT_IMMRBAR + 0x00108));
return
0;
}
static
void hello_exit(void)
{
printk(KERN_ALERT
"Goodbye, cruel world\n");
}
module_init(hello_init);
module_exit(hello_exit);
++++++++++++++++上面为test.c程序内容++++++++++++++++++
+++++++++++++++下面为Makefile程序内容+++++++++++++++++
ifneq
($(KERNELRELEASE),)
obj-m
:= test.o
else
KDIR
:= ../..
PWD
:= $(shell pwd)
default:
$(MAKE)
-C $(KDIR) M=$(PWD)
endif
+++++++++++++++上面为Makefile程序内容+++++++++++++++++
##
类似地我们可以编译vlan配置模块

LTIB常用命令1的更多相关文章

  1. LTIB常用命令2

    LTIB 编译配置选项 根据说明文档,ltib 可以通过以下的命令配置: * <verbatim># ./ltib</verbatim>          安装后第一次运行,采 ...

  2. LTIB常用命令3

    http://blog.csdn.net/junht/article/details/7656540 LTIB 中的包 4.3.1  查看哪些包是使能的,并且可以安装 在配置ltib之前,您可以在一个 ...

  3. Linux 常用命令(持续补充)

    常用命令: command &:将进程放在后台执行 ctrl + z:暂停当前进程 并放入后台 jobs:查看当前后台任务 bg( %id):将任务转为后台执行 fg( %id):将任务调回前 ...

  4. LVM基本介绍与常用命令

    一.LVM介绍LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制LVM - 优点:LVM通常用于装备大量磁盘的系统,但它同样适 ...

  5. Linux学习笔记(一):常用命令

    经过统计Linux中能够识别的命令超过3000种,当然常用的命令就远远没有这么多了,按照我的习惯,我把已经学过的Linux常用命令做了以下几个方面的分割: 1.文件处理命令 2.文件搜索命令 3.帮助 ...

  6. git常用命令(持续更新中)

    git常用命令(持续更新中) 本地仓库操作git int                                 初始化本地仓库git add .                       ...

  7. 【原】npm 常用命令详解

    今年上半年在学习gulp的使用,对npm的掌握是必不可少的,经常到npm官网查询文档让我感到不爽,还不如整理了一些常用的命令到自己博客上,于是根据自己的理解简单翻译过来,终于有点输出,想学习npm这块 ...

  8. npm常用命令

    npm常用命令 环境:win7 npm 是什么 NPM(node package manager),通常称为node包管理器.顾名思义,它的主要功能就是管理node包,包括:安装.卸载.更新.查看.搜 ...

  9. Git 常用命令

    一.初始環境配置 git config --global user.name "John Doe"git config --global user.email johndoe@ex ...

随机推荐

  1. C#微信开发文档

    C#微信开发文档 开发前准备 微信公众平台链接: https://mp.weixin.qq.com/cgi-bin/home?t=home/index&lang=zh_CN 开发初期我们使用测 ...

  2. MySQL 数据库发展历程及缺点

    传统关系数据库的瓶颈 传统的关系数据库具有不错的性能,高稳定型,久经历史考验,而且使用简单,功能强大,同时也积累了大量的成功案例.在互联网领域,MySQL成为了绝对靠前的王者,毫不夸张的说,MySQL ...

  3. C#中汉诺塔问题的递归解法

    百度测试部2015年10月份的面试题之——汉诺塔. 汉诺塔就是将一摞盘子从一个塔转移到另一个塔的游戏,中间有一个用来过度盘子的辅助塔. 百度百科在此. 游戏试玩在此. 用递归的思想解决汉诺塔问题就是分 ...

  4. ContentProvider官方教程(7)3种访问形式:批处理、异步访问、intent间接访问(临时URI权限)

    Alternative Forms of Provider Access Three alternative forms of provider access are important in app ...

  5. c语言中函数调用的本质从汇编角度分析

    今天下午写篇博客吧,分析分析c语言中函数调用的本质,首先我们知道c语言中函数的本质就是一段代码,但是给这段代码起了一个名字,这个名字就是他的的这段代码的开始地址 这也是函数名的本质,其实也就是汇编中的 ...

  6. FZU 2168 防守阵地 I

    Problem Description 部队中共有N个士兵,每个士兵有各自的能力指数Xi,在一次演练中,指挥部确定了M个需要防守的地点,按重要程度从低到高排序,依次以数字1到M标注每个地点的重要程度, ...

  7. Spring MVC 详解(二)

    前端控制器 在web.xml中配置: 在springmvc.xml中配置springmvc架构三大组件(处理器映射器.适配器.视图解析器) 处理器映射器 在springmvc.xml中配置: Bean ...

  8. Ubuntu中文输入法的添加

    做了一个英文环境的Ubuntu14.04LTS,为了写博客方便,添加了中文输入法,在网上搜寻了一堆方法,最后找到个靠谱的. 1 添加fcitx输入法框架.(在此框架下有各种输入法) sudo add- ...

  9. weblogic启动报错

    重启了一次linux服务器后,weblogic启动莫名报错,查看日志发现说部署的项目有个bean类无法加载, 1.然后手动删除 已经部署的项目,先在 domais/servers/AdminServe ...

  10. Xstream 学习地址

    http://forestqqqq.iteye.com/category/301129