⑴ 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 Linux
1
下載Ubuntu ISO文件。 你可以從Ubuntu的網站獲取該ISO文件。ISO文件是一個CD鏡像文件,在使用它之前,你應先對其進行刻錄。在Ubuntu的網站上兩種選擇(你也可以購買Ubuntu的官方CD,每包10張):
廣告
12.04 LTS具有持續更新並提供技術支持。它將一直得到支持,直到2017年4月。該選擇將讓你的現有硬體得到最大的兼容性。
13.04是最新的Ubuntu發行版,具有有限度的支持。它包括了最新的特性,但它可能不能在所有硬體下運行。該版本更適合有經驗的Linux用戶。
如果你有一台Windows 8 PC或者帶UEFI固件的PC,請下載64-bit版本的Ubuntu。大部分較舊的機器應下載32-bit版本。
2
刻錄ISO文件。打開你的刻錄軟體。有多種免費和付費的軟體可用於把ISO刻錄為CD或DVD。
Windows 7, 8, 和Mac OS X無需下載特別的軟體,就都可以把ISO文件刻錄到光碟中了。
3
從光碟啟動。完成光碟刻錄後,重啟計算機並選擇從光碟啟動。當你重啟時,按下設置鍵即可對啟動優先選項進行設置。設置鍵通常是F12、F2或Del。
4
安裝前先試用Ubuntu。從光碟啟動後,你將看到無需安裝直接試用Ubuntu的選項。操作系統將通過光碟運行,你將有機會了解操作系統的各方面。
打開例子文件夾,了解Ubuntu是如何處理文件的,以及進一步了解整個操作系統。
對操作系統有一定認識後,打開桌面上的Intall文件。
5
安裝Ubuntu。你的計算機需要至少4.5GB的空閑空間。如果你希望安裝更多程序和創建更多文件,你需要預留更大的空間。如果你在一台筆記本電腦上進行系統安裝,請確保機器連上了電源,因為安裝過程比日常使用更耗電。
選中「自動下載更新」復選框以及「下載第三方軟體」復選框。第三方軟體能讓你播放MP3以及觀看Flash視頻(例如YouTube)。
6
建立無線連接。如果你的計算機不是通過Ethernet連接到互聯網的,你可以在下一步中設置無線連接。
如果你在前一步中沒有設置互聯網連接,在建立無線連接後點擊回退按鈕進行設置,以便可以進行自動更新。
7
選擇如何對待你現有的操作系統。如果你的系統上已安裝了Windows,在安裝Ubuntu時你將有多個選擇。你可以讓Ubuntu安裝後和Windows共存,或者你可以安裝Ubuntu以取代原來的Windows。
如果你讓新安裝的Ubuntu和Windows共存,在每次啟動計算機時,你將看到要你選擇啟動哪一個操作系統的選項。你的Windows上的文件和程序將不受影響。
如果你讓新安裝的Ubuntu取代Windows,則Windows上的所有文件、文檔和程序將被刪除。
8
設置你的分區大小。如果你選擇安裝Ubuntu和Windows共存,你將可以通過滾動條的對Ubuntu的磁碟空間進行分配。請謹記Ubuntu至少需要使用4.5GB的磁碟空間,因此請預留額外的空間用於其他程序和文件。
如果你對你的設置滿意,點擊現在安裝。
9
選擇你的地點。如果你已連接至互聯網,這一步驟將被自動設置。驗證所顯示的時區是否正確,然後點擊繼續按鈕。
10
設置鍵盤類型。你可以從一個選項列表中選擇符合情況的選項,或者點擊檢測鍵盤類型讓Ubuntu自動選擇正確的選項。
11
輸入登錄信息。輸入你的名字、計算機的名稱(將被顯示在網路上)、用戶名和密碼。 你可以選擇讓Ubuntu允許你自動登錄,或者在開機後必須輸入用戶名和密碼才能登錄。
12
等待安裝過程的完成。當你設置好登錄信息後,安裝將開始。在安裝過程中,多個關於Ubuntu使用的幫助信息將顯示在屏幕上。安裝完成後,你將看到重啟提示,重啟後Ubuntu將開始載入。
廣告
方法 2: 使用Windows安裝程序
1
從Ubuntu的網站上下載安裝程序。如果瀏覽器給出了提示,請選擇運行、保存或打開。Windows安裝程序並不和Windows 8兼容。你必須使用前面介紹的方法進行安裝。
使用Windows安裝程序安裝Ubuntu後,Ubuntu將和Windows共存。你的文件和程序將不受影響。當你重啟計算機後,你將看到要啟動哪一個操作系統的選項。
2
選擇你的用戶名和密碼。運行安裝程序後,你將會看到配置菜單。選擇你的用戶名和密碼。
Ubuntu (這是最流行的)具有Gnome,這也是Mac OS X所採用的桌面環境
Kubuntu具有KDE,這也是Windows所採用的桌面環境
Xubuntu具有Xfce,這一桌面環境速度更快,尤其適合較舊的PC。
你可以更改Ubuntu安裝的大小。越大型的安裝將讓你的Linux操作系統有越多的空間安裝其程序並添加文件,但這將減少Windows可以使用的空閑空間。
你可以選擇你的桌面環境。最常用的是:
3
點擊安裝開始進行安裝。安裝程序將開始下載安裝Ubuntu所需的文件。安裝過程將自動開始。
根據你的互聯網連接,下載文件可能需要較長時間。當文件下載在後台進行時,你可以繼續使用你的計算機。
4
重啟你的計算機。安裝完成後,你將看到現在重啟或稍後重啟這樣的選項。當你重啟後,你將在Windows啟動前看到一個新菜單,讓你可以選擇啟動Windows或Ubuntu。[1]
⑶ ubuntu 環境下怎樣編譯pixhawk px4源碼
Ubuntu環境下Pixhawk原生固件PX4的編譯
分類:無人機ubuntu代碼編譯Pixhawk
(3946) (6)
Ubuntu下Pixhawk原生固件PX4的編譯這個問題困擾了兩天時間,可能是博主腦力不夠,主要是環境搭建不起來,主要原因應該是路徑的原因,最後在大師傅的幫助下還好成功將路徑搭建好,成功編譯。
下面就跟大家分享一下環境搭建的過程。
1.操作環境
每次寫文章,環境一定要介紹的,不同的環境總會出現不同的問題
我的環境是Windows下面安裝虛擬機,虛擬機跑Ubuntu
Windows:win10 64位
虛擬機:VMware Workstation 12 Pro 12.1.0 build-3272444
Ubuntu:Ubuntu15.10
2.編譯環境搭建
(1)許可權設置
官方提示:
Warning Never ever fix permission problems by using 'sudo'. It will create more permission problems in the process and require a system reinstallation to fix them.
意思是你會遇到許可權問題,不要用sudo解決,那樣會帶來更多問題,但是我沒聽他的,我沒用,最後也是實現了
官方提供指令
[plain] view plain
然後注銷,重新登錄生效
(2)安裝
更新包列表,安裝下面編譯PX4的依賴包。PX4主要支持的系列:
NuttX based hardware: Pixhawk, Pixfalcon
Snapdragon Flight hardware: Snapdragon
Raspberry Pi hardware: Raspberry Pi 2
Host simulation: jMAVSim SITL and Gazebo SITL
注意:安裝Ninja Build System可以比make更快進行編譯。如果安裝了它就會自動選擇使用它進行編譯。
[plain] view plain
卸載模式管理器
[plain] view plain
更新包列表和安裝下面的依賴包。務必安裝指定的版本的包
[plain] view plain
上面代碼中紅色部分大家需要一高警惕,gcc-arm-none-eabi版本導致PX4/Firmware編譯錯誤,現在apt-get安裝的gcc-arm-none-eabi基本上是4.9的版本,但是這個固件需要gcc-arm-none-eabi 4.8de 版本,所以最後安裝好以後,查看你的gcc-arm-none-eabi版本,如果是4.9需要手動安裝4.8的版本,安裝gcc-arm-none-eabi 4.8的版本的方法如下:
[plain] view plain
【Warning】上面紅色的路徑一定要添加正確,不然問題很多,我第一次就輸入錯誤,結果結果開不了機了,反復輸入密碼。博主裝的是Ubuntu 64位系統,而上述arm-none-eabi是直接下載的編譯好的32位,還需要安裝一個東西
[plain] view plain
可以檢查arm-none-eabi 4.8.4是否安裝成功,輸入以下指令:
[plain] view plain
如果出現如上信息,交叉編譯環境搭建就搭建成功了
(3)代碼編譯
根據PX4中文維基官網教程。
安裝Git
[plain] view plain
下載代碼
[plain] view plain
初始化
先進入Firmware文件夾,進而進行初始化、更新子模塊操作,耐心的等待……
[plain] view plain
許可權
編譯時會遇到許可權問題,執行指令
[plain] view plain
-R 是對文件下麵包含的子文件許可權問題,* 是對所有文件的許可權問題
編譯
[plain] view plain
注意到「make」是一個字元命令編譯工具,「px4fmu-v2」是硬體版本,「default」是默認配置,所有的PX4編譯目標遵循這個規則。
最後附一張編譯成功的代碼,如果這樣你還有問題,請給我留言。
[plain] view plain
-- nuttx-px4fmu-v2-default
-- The ASM compiler identification is GNU
-- Found assembler: /opt/gcc-arm-none-eabi-4_8-2014q3/bin/arm-none-eabi-gcc
-- Found pythonInterp: /usr/bin/python (found version "2.7.10")
-- Using C++03
-- Release build type: RelWithDebInfo
-- Adding UAVCAN STM32 platform driver
-- Configuring done
-- Generating done
-- Build files have been written to: /home/lihongwei/Documents/Firmware/build_px4fmu-v2_default
#+@Tools/check_submoles.sh
PX4 CONFIG: px4fmu-v2_default
Scanning dependencies of target git_mavlink
Scanning dependencies of target git_uavcan
Scanning dependencies of target git_gencpp
Scanning dependencies of target git_genmsg
[ 0%] Generating git_init_mavlink_include_mavlink_v1.0.stamp
[ 0%] Generating git_init_src_moles_uavcan_libuavcan.stamp
[ 0%] Generating git_init_Tools_genmsg.stamp
[ 0%] Generating git_init_Tools_gencpp.stamp
[ 0%] Built target git_uavcan
[ 0%] Built target git_mavlink
[ 0%] Built target git_genmsg
[ 0%] Built target git_gencpp