下面再寫一點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
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
## 下面這部分我是在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 ## 執行檔案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
++++++++++++++++下面為test.c程式內容++++++++++++++++++
#include
#include
#include
module_license("dual bsd/gpl");
static int hello_init(void)
static void hello_exit(void)
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配置模組
Yum命令常用命令詳解
yum命令常用命令詳解 1.使用yum查詢軟體包 命令 yum search 2.列出所有可安裝的軟體包 命令 yum list 3.列出所有可更新的軟體包 命令 yum list updates 4.列出所有已安裝的軟體包 命令 yum list installed 5.列出所有已安裝但不在yum...
DOS常用命令詳解。。。
一 dir 顯示目錄檔案和子目錄列表,呵呵,這個當然是人人要知道的。可以使用萬用字元 和 表通配乙個字元,表通配任意字元 字尾 指定要檢視字尾的檔案。上面其實也可以為 字尾 例如dir exe 等於dir exe p 每次顯示乙個列表螢幕。要檢視下一屏,請按鍵盤上的任意鍵。w 以寬格式顯示列表,在每...
Ubuntu常用命令詳解
su su命令是最基本的命令之一,常用於不同使用者間切換。例如,如果登入為 user1,要切換為user2,只要用如下命令 su user2 然後系統提示輸入user2口令,輸入正確的口令之後就可以切換到user2。完成之後就可以用exit命令返回到user1。su命令的常見用法是變成根使用者或超級...