㈠ ubuntu編譯osmocombb完要多久
ubuntu編譯GNUARM以及OsmocomBB環境方法如下,時間的話看你代碼速度啦
以下所有操作基於Ubuntu linux下,所以基於Ubuntu、Debian等Linux版本均可使用。
一、以Root許可權進行接下來的所有操作:
$ sudo -s
二、安裝編譯osmocomBB所需的軟體包:
$ aptitude install libtool shtool autoconf git-core pkg-config make gcc
三、下載所需要的GnuARM ToolChain
基於x86架構
$ wget http://gnuarm.com/bu-2.15_gcc-3.4.3-c-c++-java_nl-1.12.0_gi-6.1.tar.bz2 網路網盤
$ tar xf bu-2.15_gcc-3.4.3-c-c++-java_nl-1.12.0_gi-6.1.tar.bz2
$ mv gnuarm-* ~/gnuarm
基於64位架構
$ wget http://www.gnuarm.com/bu-2.16.1_gcc-4.0.2-c-c++_nl-1.14.0_gi-6.4_x86-64.tar.bz2 網路網盤
$ tar xf bu-2.16.1_gcc-4.0.2-c-c++_nl-1.14.0_gi-6.4_x86-64.tar.bz2
$ mv gnuarm-* ~/gnuarm
這樣子就已經完成了關於OsmocomBB的交叉編譯環境的搭建,剩下就是最關鍵的設置環境變數
$ export PATH=~/gnuarm/bin:$PATH
建議是直接編輯~/.bashrc的內容,把上面的這個段話直接加到最後。
四、編譯libosmocore:
$ git clone git://git.osmocom.org/libosmocore.git
$ cd libosmocore/
$ autoreconf -i
$ ./configure
$ make
$ make install
$ cd ..
$ ldconfig
ldconfig命令一定不要忘記執行,否則osmocomBB編譯後運行時會出現找不到libosmocore.so.4的錯誤。
五、編譯OsmocomBB:
$ git clone git://git.osmocom.org/osmocom-bb.git
$ cd osmocom-bb
$ git checkout --track origin/luca/gsmmap
$ cd src
$ make
基本上已經完成所有的編譯操作了!Enjoy你的玩具吧!
使用OsmocomBB
首先我們需要在刷寫固件之間完成以下幾個手動操作,以便接下來的其他操作。因為摩托羅拉C118的數據連接線是用2.5mm音頻介面的,所以連接方面大家要注意的是:
連接線介面的小缺陷
紅色框住的地方可能會導致大家在誤以為介面已經完全和手機介面銜接了,但在刷機的時候沒有任何反應。所以這個部分需要大家自己去削一下的。
連接線與TTL的接法
黑/黃:GND
紅:TX
白:RX
以上的接法是針對我們RadioWar淘寶店所出售的CP2102以及FT232rl,而基於淘寶其他的產品可能會在TX和RX部分需要反接,大家要記住。有些朋友會說為什麼我們不建議PL2303,那是PL2303隻有標準的波特率,所以無法進行任何調制,在真正功能固件上使用會出現很大的問題。所以我們不建議使用PL2303
當我們處理完以上的操作之後,就在osmocomBB套件目錄下進行相關固件刷寫操作,請記住這個操作過程只是臨時性的,固件只是以RAM TO ROM的途徑下進行臨時刷寫,關機後原有的摩托羅拉系統依然會存在的。
cd ~/osmocom-bb/src/host/osmocon/
啟動osmocon刷寫所需要的固件,通常大家都是直接刷寫Layer1的固件。
./osmocon -m c123xor -p /dev/ttyUSB0 ../../target/firmware/board/compal_e88/layer1.compalram.bin
看清楚c123xor是基於C118的,非C118的手機請不要使用這個,並且記住C118的固件目錄就是compal_e88,在輸入以上命令之前,手機必須連接好連接線以及TTL,並且確保手機必須為關鍵狀態。命令輸入完成後,當前命令窗口會出現以下類似信息:
got 1 bytes from modem, data looks like: 2f /
got 1 bytes from modem, data looks like: 00 .
got 1 bytes from modem, data looks like: 1b .
got 4 bytes from modem, data looks like: f6 02 00 41 ...A
got 1 bytes from modem, data looks like: 01 .
got 1 bytes from modem, data looks like: 40 @
出現以上信息後,直接輕按手機的紅色開機鍵,只需點亮機器而不需要進入手機的系統!!!這樣子信息狀態會顯示類似以下的信息:
Received PROMPT1 from phone, responding with CMD
read_file(../../target/firmware/board/compal_e88/layer1.compalram.bin):file_size=56016,hdr_len=4,dnload_len=56023
got 1 bytes from modem, data looks like: 1b .
got 1 bytes from modem, data looks like: f6 .
got 1 bytes from modem, data looks like: 02 .
got 1 bytes from modem, data looks like: 00 .
got 1 bytes from modem, data looks like: 41 A
got 1 bytes from modem, data looks like: 02 .
got 1 bytes from modem, data looks like: 43 C
Received PROMPT2 from phone, starting download handle_write(): 4096 bytes (4096/56023)
handle_write(): 4096 bytes (8192/56023)
handle_write(): 4096 bytes (12288/56023)
handle_write(): 4096 bytes (16384/56023)
handle_write(): 4096 bytes (20480/56023)
handle_write(): 4096 bytes (24576/56023)
handle_write(): 4096 bytes (28672/56023)
handle_write(): 4096 bytes (32768/56023)
handle_write(): 4096 bytes (36864/56023)
handle_write(): 4096 bytes (40960/56023)
handle_write(): 4096 bytes (45056/56023)
handle_write(): 4096 bytes (49152/56023)
handle_write(): 4096 bytes (53248/56023)
handle_write(): 2775 bytes (56023/56023)
handle_write(): finished
got 1 bytes from modem, data looks like: 1b .
got 1 bytes from modem, data looks like: f6 .
got 1 bytes from modem, data looks like: 02 .
got 1 bytes from modem, data looks like: 00 .
got 1 bytes from modem, data looks like: 41 A
got 1 bytes from modem, data looks like: 03 .
got 1 bytes from modem, data looks like: 42 B
Received DOWNLOAD ACK from phone, your code is running now!
battery_compal_e88_init: starting up
看到以上的信息就證明你的固件刷寫操作已經成功了,下來的操作可以是掃描基站或者其他簡單而快速的方法:
掃描基站
~/cell_logger/osmocom-bb/src/host/layer23/src/misc/cell_log -O
掃描某一個基站,例如30
~/cell_logger/osmocom-bb/src/host/layer23/src/misc/ccch_scan -i 127.0.0.1 -a 30
將掃描基站的日誌保存到本地
mpcap -i lo -w ~/cell_logger/mobilelog/Cell.log
打開WireShark實時讀取相關的信息
sudo wireshark -k -i lo -f 'port 4729'
㈡ 如何使用ubuntu來編譯驅動
工具/原料
Ubuntu12.04操作系統和測試驅動程序(beep_arv.c)
方法/步驟
在介紹2種方法前,必須知道的知識點:
1.關聯文件Makefile:
Makefile:分布在Linux內核源代碼中的Makefile用於定義Linux內核的編譯規則;
2.管理文件Kconfig:
給用戶提供配置選擇的功能;
配置工具:
1)包括配置命令解析器;
2)配置用戶界面;menuconfig || xconfig;
3)通過腳本語言編寫的;
3.
---tristate 代表三種狀態:1.[ ]不選擇,2.[*]選擇直接編譯進內核,載入驅動到內核里,3.[m]動態載入驅動;
---bool 代表兩種狀態,1.[ ]不選擇,2.[*]選擇;
---"Mini2440 mole sample"這個是在make menuconfig時刷出的提示字元;
---depends on MACH_MINI2440 這個配置選項出現在make menuconfig菜單欄下,在內核配置中必須選中、MACH_MINI2440;
---default m if MACH_MINI2440 這個如果選中了MACH_MINI2440,默認是手
動載入這個驅動;
help:提示幫助信息;
在了解了基本的知識點,便開始進行第一種添加驅動的方法,本次交流是以beep_arv.c蜂鳴驅動程序為基礎的
方法一:
1)進入內核的驅動目錄;
#cp beep_arv.c /XXX/.../linux-XXXl/drivers/char
2)進入Kconfig添加驅動信息;
#cd /XXX/linux-XXX/.../drivers/char
#vim Kconfig
添加基本信息:
config BEEP_MINI2440
tristate "---HAH--- BEEP"
default
help
this is test makefile!
3)進入Makefile添加驅動編譯信息;
#vim Makefile
添加基本信息:
obj-$(CONFIG-BEEP_MINI2440) +=beep_drv.o
方法一結果:
在--Character devices下就能看到配置信息了;
方法二:
1)進入驅動目錄,創建BEED目錄;
#cd /XXX/.../linux-XXX/drivers/char
#mkdir beep
2)將beep_arv.c驅動程序復制到新建目錄下;
#cp beep_arv.c /XXX/.../linux-XXXl/drivers/char/beep
3)創建Makefile和Kconfig文件
#cd char/beep
#mkdir Makefile Kconfig
#chmod 755 Makefile
#chmod 755 Kconfig
4)進入Kconfig添加驅動信息;
#vim Kconfig
添加基本信息:
config BEEP_MINI2440
tristate "---HAH--- BEEP"
default
help
this is test makefile!
5)進入Makefile添加驅動編譯信息;
#vim Makefile
添加基本信息:
obj-$(CONFIG_BEEP_MINI2440) +=beep_drv.o
6)並且要到上一級目錄的Makefile和Kconfig添加驅動信息;
#cd ../
#vim Makefile
#vim Kconfig
㈢ ubuntu內核編譯到一半退出
ubuntu內核編譯到一半退出原因如下
主要是因為沒有在內核源碼目錄下進行。例如,要編譯或升級的內核解壓後的目錄為/usr/src/linux-2.4.24,一定要進入到該目錄後使用make menuconfig命令,這樣就不會提示錯誤了。
2、Unable to find the ncurses libraries
更新或編譯Ubuntu的內核時,執行make menuconfig可能看如這樣的錯誤:
*** required header files.
*** 『make menuconfig』 requires the ncurses libraries.
*** Install ncurses (ncurses-devel) and try again.
這是因為缺少庫文件,使用apt-get install ncurses-dev在線安裝即可。
3、Your display is too small to run Menuconfig這是因為屏幕太小的緣故,窗口調大即可。
㈣ ubuntu 編譯uboot需要哪些工具,哎,新手,詳細點哦,親
1.首先安裝基本編譯環境:sudo apt-get install build-essential
2:先把交叉編譯環境包放到你的共享目錄,(我這里的版本是:arm-linux-gcc-4.4.3.tar.gz)
3:進行解壓 tar zxvf arm-linux-gcc-4.4.3.tar.gz -C (要解壓的路徑)
比如:tar zxvf arm-linux-gcc-4.4.3.tar.gz -C ~/ (root 用戶的工作目錄)
4:然後設置環境變數:export PATH=$PATH:~/opt/FriendlyARM/toolschain/4.4.3/bin
5:要想系統啟動自動載入環境變數:
1:普通用戶:vim .bashrc 在最後添加你的環境變數:export PATH=$PATH:~/opt/FriendlyARM/toolschain/4.4.3/bin
2:root用戶:vim .bashrc 在最後添加你的環境變數:export PATH=$PATH:~/opt/FriendlyARM/toolschain/4.4.3/bin
㈤ 如何安裝/編譯在Linux / Ubuntu的SDL2 C C 05
1.使用apt-get 安裝開發包
sudo apt-get install libsdl2-dev
2.編輯源文件, hello.c
#include <SDL2/SDL.h>int main(){ SDL_Window* window =0; SDL_Renderer* render=0; SDL_Init(SDL_INIT_EVERYTHING); window=SDL_CreateWindow("hello",SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED,640,480,SDL_WINDOW_SHOWN); render=SDL_CreateRenderer(window,-1,0); SDL_SetRenderDrawColor(render,0,255,0,255); SDL_RenderClear(render); SDL_RenderPresent(render); SDL_Delay(3000); SDL_DestroyWindow(window); SDL_DestroyRenderer(render); SDL_Quit(); return 0;}
3.編譯
gcc hello.c -lSDL2
如果編譯成功,會生成a.out可執行文件
4.運行
./a.out
㈥ ubuntu內核編譯問題
title 隨便寫
root (hd0,4)/ubuntu/disks
kernel /boot/vmlinuz-2.6.27-2-generic root=UUID=40586D90586D860E loop=/ubuntu/disks/root.disk ro quiet splash
initrd /boot/initrd.img-2.6.27-2-generic
注意:兩個內核文件都可以在/boot目錄下看到,我猜是:
/boot/vmlinuz-2.6.27-2-generic和
/boot/initrd.img-2.6.27-2-generic
如果不是,改成正確的名字。錯了也沒關系啊,一個內核進不去,重啟之後從另一個內核進去不就行了。
㈦ ubuntu內核編譯需要多長時間
編譯自己的Ubuntu內核一般需要30-60分鍾
很多時候我們在使用Ubuntu的時候,想修改一下內核配置,然後編譯,安裝到Ubuntu中。這也是進行Ubuntu內核開發的前提。
㈧ ubuntu下怎麼編譯linux內核
linux下編譯軟體通擾襲用三步曲:
./configure
make
sudo make install
但是編譯內核要復雜的多,特別是定製內核,需要根據特定的硬體信息,配置.config文件。可以說.config文件是編譯linux內核是否優異的關鍵。凱裂也可以到github或者碼元上尋找有沒有類似的型號,找到盯李閉同一型號的電腦可以直接到內核源碼目錄下,然後依次執行shell命令:make
sudo make install
sudo make moles_install
sudo update-grub2 或者sudo update-grub就可以了