下面再写一点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. Safecracker 分类: HDU 搜索 2015-06-25 21:12 12人阅读 评论(0) 收藏

    Safecracker Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S ...

  2. Linq中疏漏的几个知识点

    1.Union - 连接不同集合,自动过滤相同项 2.Concat - 连接不同集合,不会自动过滤相同项 3.Select - 类似List的ConvertAll,转换集合成员 4.Enumerabl ...

  3. Poj(2784),二进制枚举最小生成树

    题目链接:http://poj.org/problem?id=2784 Buy or Build Time Limit: 2000MS   Memory Limit: 65536K Total Sub ...

  4. js监控窗口高度和宽度

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/T ...

  5. java-pfx文件转换成16进制内容

    public static void main(String[] args) throws Exception { String path = "D://111.pfx"; Inp ...

  6. spring,mybatis事务管理配置与@Transactional注解使用[转]

    spring,mybatis事务管理配置与@Transactional注解使用[转] spring,mybatis事务管理配置与@Transactional注解使用 概述事务管理对于企业应用来说是至关 ...

  7. nohup不输出日志信息的方法,及linux重定向学习

    起因 最近使用nohup创建了一个后台进程,默认日志输出到了nohup.out文件中,程序跑起来也就没再管,过了大约一周,发现硬盘空间不够了,于是查找原因,发现这个nohup.out文件已经到了70G ...

  8. 最大似然估计(MLE)与最小二乘估计(LSE)的区别

    最大似然估计与最小二乘估计的区别 标签(空格分隔): 概率论与数理统计 最小二乘估计 对于最小二乘估计来说,最合理的参数估计量应该使得模型能最好地拟合样本数据,也就是估计值与观测值之差的平方和最小. ...

  9. Topic Model

    Topic Model 标签(空格分隔): 机器学习 \(\Gamma\)函数 \(\Gamma\)函数可以看做是阶乘在实数域上的推广,即: \(\Gamma(x) = \int_{0}^{+\inf ...

  10. Know How To Use ID_NULL Function To Search An Object In Oracle Forms

    ID_NULL built in function is used to determine that an object type variable is null or not null in O ...