LTIB常用命令1
下面再写一点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 -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>
还有一种情况就是这些源码中存放有板子的各种配置文件,比如内存映射分配,也需要看一下源码文件,其命令格式为 $ ./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 --configure
##
办法一: 直接调用配置文件编译,如果配置文件没有更新,且编译过的目标镜像没有变化,会不进行编译。若有任何改动,会执行编译
$
./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 -m distclean ## 此操作将彻底清除所有当前ltib工程文件
##
此命令不要轻易使用,除非比较熟悉ltib编译配置过程
##
然后以root身份执行以下操作(注意:此操作将卸载所有的公共文件)
#
rm -rf /opt/freescale/pkgs
#
rm -rf /opt/freescale/ltib
#
rm <install_path> ## 执行文件ltib的上级目录
##
另一种更加暴力的办法是root身份运行rm命令来删除所有
##
首先我们得到内核源码,然后再编译,为什么这么做,我也不懂~~~,有些纳闷,以后再解决
$
./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的更多相关文章
- LTIB常用命令2
LTIB 编译配置选项 根据说明文档,ltib 可以通过以下的命令配置: * <verbatim># ./ltib</verbatim> 安装后第一次运行,采 ...
- LTIB常用命令3
http://blog.csdn.net/junht/article/details/7656540 LTIB 中的包 4.3.1 查看哪些包是使能的,并且可以安装 在配置ltib之前,您可以在一个 ...
- Linux 常用命令(持续补充)
常用命令: command &:将进程放在后台执行 ctrl + z:暂停当前进程 并放入后台 jobs:查看当前后台任务 bg( %id):将任务转为后台执行 fg( %id):将任务调回前 ...
- LVM基本介绍与常用命令
一.LVM介绍LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制LVM - 优点:LVM通常用于装备大量磁盘的系统,但它同样适 ...
- Linux学习笔记(一):常用命令
经过统计Linux中能够识别的命令超过3000种,当然常用的命令就远远没有这么多了,按照我的习惯,我把已经学过的Linux常用命令做了以下几个方面的分割: 1.文件处理命令 2.文件搜索命令 3.帮助 ...
- git常用命令(持续更新中)
git常用命令(持续更新中) 本地仓库操作git int 初始化本地仓库git add . ...
- 【原】npm 常用命令详解
今年上半年在学习gulp的使用,对npm的掌握是必不可少的,经常到npm官网查询文档让我感到不爽,还不如整理了一些常用的命令到自己博客上,于是根据自己的理解简单翻译过来,终于有点输出,想学习npm这块 ...
- npm常用命令
npm常用命令 环境:win7 npm 是什么 NPM(node package manager),通常称为node包管理器.顾名思义,它的主要功能就是管理node包,包括:安装.卸载.更新.查看.搜 ...
- Git 常用命令
一.初始環境配置 git config --global user.name "John Doe"git config --global user.email johndoe@ex ...
随机推荐
- 关于List.ToArray()方法的效率测试
之前一直认为因为List内部是数组,ToArray的实现只是将数组返回出去而已. 今天测了一下发现并不是那样 var a = new List<int>(); ; i < ; i++ ...
- C#字符串题目
老师给小学生门布置了一些作业,让它们按照一个模版写一些字符串交上来,同学们把作业交上来了,问题来了,这么多的作业老师批改不过来,现在请你帮老师写一个程序,帮助老师确定各个字符串是否合格.首先老师有一个 ...
- 邮箱性质--全选单选的操作和传值 用属性的name传值
封装类 using System; using System.Collections.Generic; using System.Web; /// <summary> /// Ha 的摘要 ...
- mysql获取当前时间,及其相关操作
获取UNIX时间戳 : UNIX_TIMESTAMP(NOW()) 1.1 获得当前日期+时间(date + time)函数:now() 除了 now() 函数能获得当前的日期时间外,MySQL 中还 ...
- 编写shell管理脚本(一)
7.1 查看当前linux系统中能够使用的shell程序的列表[root@localhost ~]# cat /etc/shells/bin/sh/bin/bash/sbin/nologin/bin ...
- Objective C 基础
1,字符串加@: 不加@的是C语言字符串. 加@的代表的是OC的NSString http://www.jikexueyuan.com/course/71_2.html 2,setValuesForK ...
- 学习笔记TimePicker
new TimePickerDialog(this, new OnTimeSetListener() { @Override public void onTimeSet(TimePicker view ...
- V-rep学习笔记:机器人逆运动学数值解法(The Jacobian Transpose Method)
机器人运动学逆解的问题经常出现在动画仿真和工业机器人的轨迹规划中:We want to know how the upper joints of the hierarchy would rotate ...
- [SAP ABAP开发技术总结]FTP到文件服务器,服务器上文件读写
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- 使用escape编码地址栏中的中文字符
在通过地址栏传递参数的时候,有时候会遇到中文参数,在获取这种中文参数值得时候, 往往会出现乱码, 解决办法如下: 在传递参数的使用 escape 函数进行编码,获取的时候再进行解码即可. 例如: va ...