午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

PX4固件v1.9.2在ubuntu linux下的開發(fā)環(huán)境搭建?

 昵稱67463958 2020-07-30

1系統(tǒng)環(huán)境搭建

1.1系統(tǒng)環(huán)境需求

操作系統(tǒng): ubuntu server 16.04

虛擬機(jī)工具:VirtualBox

文件共享服務(wù):在UbuntuSAMBA文件服務(wù),將Linux目錄共享給windows

遠(yuǎn)程終端連接:在Windows端使用工具SSH Secure Shell連接Ubuntu進(jìn)行終端命令操作(主要是為了方便復(fù)制粘貼文本內(nèi)容)

1.2安裝和配置過程

1.2.1 初始安裝選項(xiàng)

1.2.1.1硬件配置

安裝選項(xiàng):4G Bytes 內(nèi)存、40G Bytes硬盤、硬盤空間自動(dòng)分配和使用VBX格式硬盤,其他默認(rèn)。

安裝位置:選擇安裝在有較大空閑存儲(chǔ)空間的分區(qū)上。

1.2.1.2配置系統(tǒng)安裝啟動(dòng)盤

virtualbox

設(shè)置--->存儲(chǔ)--->控制器:IDE---->點(diǎn)擊“沒有盤片--->點(diǎn)擊“分配光驅(qū)”右側(cè)光盤按鈕并設(shè)置Linux系統(tǒng)ISO文件路徑--->點(diǎn)擊“OK”按鈕--->最后點(diǎn)擊“啟動(dòng)”按鈕

1.2.2 安裝配置

安裝語言:English(US)

安裝內(nèi)容:Install Ubuntu Server

1.2.2.1 自動(dòng)更新

選中無自動(dòng)更新

1.2.2.2 軟件選項(xiàng)

選中SAMBA file server

選中Standard system tools(默認(rèn)選中)

選中OpenSSH server

選擇安裝grub

1.2.3 網(wǎng)絡(luò)設(shè)置

配置ubuntu為雙網(wǎng)卡,網(wǎng)卡1用于訪問windows主機(jī)internet,網(wǎng)卡2用于將文件共享給windows。

1.2.3.1 Virtualbox網(wǎng)絡(luò)設(shè)置

ubuntu系統(tǒng)終端里敲入命令“shutdown now關(guān)閉ubuntu系統(tǒng),然后按如下方法設(shè)置virtualbox網(wǎng)絡(luò):

設(shè)置--->網(wǎng)絡(luò)--->網(wǎng)卡1--->選中“啟用網(wǎng)絡(luò)連接”且連接方式--->選擇“網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT

設(shè)置--->網(wǎng)絡(luò)--->網(wǎng)卡2--->選中“啟用網(wǎng)絡(luò)連接”且連接方式--->選擇“僅主機(jī)(Host Only)網(wǎng)絡(luò)

設(shè)置完后,啟動(dòng)ubuntu系統(tǒng)

解釋:“僅主機(jī)(Host Only)網(wǎng)絡(luò)”網(wǎng)絡(luò)模式使得Windows主機(jī)增加一個(gè)虛擬網(wǎng)卡,該網(wǎng)卡的IP地址和ubuntuIP地址同在一個(gè)網(wǎng)段,從而可實(shí)現(xiàn)共享,但如果只有這種模式虛擬機(jī)的系統(tǒng)是無法訪問internet。

1.2.3.2 Ubuntu網(wǎng)絡(luò)設(shè)置

1.2.3.2.1 查看網(wǎng)卡狀態(tài)

$ ls /sys/class/net/

enp0s3  enp0s8  lo

1.2.3.2.2 編輯網(wǎng)卡配置,增加網(wǎng)卡enp0s8(綠色字體部分為新增內(nèi)容)

$ sudo vim /etc/network/interfaces 

# This file describes the network interfaces available on your system

# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface

auto lo

iface lo inet loopback

# The primary network interface

auto enp0s3

iface enp0s3 inet dhcp

auto enp0s8

iface enp0s8 inet dhcp

注:?jiǎn)?dòng)vim后,按“insert”按鍵進(jìn)入插入狀態(tài),退出插入狀態(tài)時(shí)按“esc”按鍵,然后敲如“:wq”保存文件并退出vi

1.2.3.2.3 重啟網(wǎng)絡(luò)

$ /etc/init.d/networking restart

[ok] Restarting networking (via systectl):networking.service.

1.2.3.2.4 檢查網(wǎng)絡(luò)狀態(tài)

$ ifconfig

enp0s3    Link encap:Ethernet  HWaddr 08:00:27:5b:6d:a4  

          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0

          inet6 addr: fe80::a00:27ff:fe5b:6da4/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:450 errors:0 dropped:0 overruns:0 frame:0

          TX packets:230 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:525616 (525.6 KB)  TX bytes:20003 (20.0 KB)

enp0s8    Link encap:Ethernet  HWaddr 08:00:27:cb:91:9b  

          inet addr:192.168.56.102  Bcast:192.168.56.255  Mask:255.255.255.0

          inet6 addr: fe80::a00:27ff:fecb:919b/64 Scope:Link

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:323 errors:0 dropped:0 overruns:0 frame:0

          TX packets:208 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:50576 (50.5 KB)  TX bytes:32637 (32.6 KB)

lo        Link encap:Local Loopback  

          inet addr:127.0.0.1  Mask:255.0.0.0

          inet6 addr: ::1/128 Scope:Host

          UP LOOPBACK RUNNING  MTU:65536  Metric:1

          RX packets:164 errors:0 dropped:0 overruns:0 frame:0

          TX packets:164 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1

          RX bytes:12080 (12.0 KB)  TX bytes:12080 (12.0 KB)

1.2.4 遠(yuǎn)程終端訪問設(shè)置

Windows下啟動(dòng)SSH Secure Shell,點(diǎn)擊“Quick Connect”按鈕,填入

Host Name:192.168.56.102

User Name:ryan_huang

Port:22;

Authentication:<Profile Settings>

然后點(diǎn)擊Connect”按鈕,當(dāng)遠(yuǎn)程終端連接上之后,我們就可以在Windows界面下連接和操作linux服務(wù)器了

如果連接不上,請(qǐng)檢查ubuntu server系統(tǒng)是否啟動(dòng)了SSH服務(wù)。

1.3 FAQ

1.3.1 問題1:SSH連接報(bào)錯(cuò)

https://blog.csdn.net/heroybc/article/details/78562954

ssh連接報(bào)錯(cuò)server respondedalgorithm negotiation failed

解決方法:

修改ssh的配置文件 /etc/ssh/sshd_config

$vim /etc/ssh/sshd_config

1

2

在配置文件尾部添加如下藍(lán)色字的內(nèi)容:

Ciphers aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-cbc,arcfour128,arcfour256,arcfour,blowfish-cbc,cast128-cbc

MACs hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-sha1-96,hmac-md5-96

KexAlgorithms diffie-hellman-group1-sha1, diffie-hellman-group14-sha1, diffie-hellman-group-exchange-sha1, diffie-hellman-group-exchange-sha256, ecdh-sha2-nistp256, ecdh-sha2-nistp384, ecdh-sha2-nistp521, diffie-hellman-group1-sha1, curve25519-sha256@libssh.org

重啟sshd服務(wù)后(sudo service ssh restart),即可正常連接:

$sudo /etc/init.d/ssh restart

1.3.2 問題2:沒有安裝openssl

執(zhí)行命令git clone https://github.com/PX4/Firmware.git -b v1.9.2

出現(xiàn)如下失敗失敗提示:

fatal: unable to access ‘https://github.com/PX4/Firmware.git/’ : guntls_handshack() failed: The TLS connection was non-properly terminated.

原因:git的版本是gnutls 而不是openssl版本導(dǎo)致。

http://blog./uid-26824563-id-5784518.html

1.3.3 問題3 ubuntu linux在vritualbox中如何共享windows系統(tǒng)剪切板?

答:在ubuntu的運(yùn)行頁面下點(diǎn)擊virtualbox的“控制-->設(shè)置”進(jìn)入系統(tǒng)設(shè)置界面,然后再“常規(guī)--->高級(jí)”屬性頁下,點(diǎn)擊“共享粘貼板”設(shè)置成“雙向”即可。

https://blog.csdn.net/sg656720274/article/details/53100266

1.4 SAMBA服務(wù)配置

Samba服務(wù)是linux提供給其他操作系統(tǒng)來訪問linux目錄和文件的一種服務(wù),windows可以通過samba服務(wù)訪問linux文件系統(tǒng)。

1.4.1 創(chuàng)建共享目錄并修改權(quán)限

ryan_huang@ubuntu:~$ mkdir ryan_share

ryan_huang@ubuntu:~$ chmod 777 ryan_share

說明:執(zhí)行完上述兩條命令后,共享目錄的完整路徑為/home/ryan_huang/ryan_share/

1.4.2 檢查是否已安裝Samba

ryan_huang@ubuntu:~$ sudo smbd --version

[sudo] password for ryan_huang:

Version 4.3.11-Ubuntu

ryan_huang@ubuntu:~$ systemctl status smbd

?smbd.service - LSB: start Samba SMB/CIFS daemon (smbd)

   Loaded: loaded (/etc/init.d/smbd; bad; vendor preset: enabled)

   Active: active (running) since Tue 2019-10-15 10:59:07 CST; 32min ago

     Docs: man:systemd-sysv-generator(8)

  Process: 1505 ExecReload=/etc/init.d/smbd reload (code=exited, status=0/SUCCESS)

  Process: 906 ExecStart=/etc/init.d/smbd start (code=exited, status=0/SUCCESS)

    Tasks: 3

   Memory: 37.6M

      CPU: 626ms

   CGroup: /system.slice/smbd.service

            954 /usr/sbin/smbd -D

            975 /usr/sbin/smbd -D

           1081 /usr/sbin/smbd -D

這說明已經(jīng)安裝了Samba服務(wù)程序

1.4.3 安裝Samba

(未安裝時(shí)執(zhí)行安裝命令)

安裝命令:

$sudo apt-get install samba samba-common

卸載命令:

$sudo apt-get autoremove samba

1.4.4 檢查Samba服務(wù)運(yùn)行狀態(tài)

以下兩條命令檢查Samba服務(wù)的運(yùn)行狀態(tài):

ryan_huang@ubuntu:~$ systemctl status smbd

?smbd.service - LSB: start Samba SMB/CIFS daemon (smbd)

   Loaded: loaded (/etc/init.d/smbd; bad; vendor preset: enabled)

   Active: active (running) since Tue 2019-10-15 10:59:07 CST; 1h 55min ago

     Docs: man:systemd-sysv-generator(8)

  Process: 1948 ExecReload=/etc/init.d/smbd reload (code=exited, status=0/SUCCESS)

  Process: 906 ExecStart=/etc/init.d/smbd start (code=exited, status=0/SUCCESS)

    Tasks: 3

   Memory: 37.6M

      CPU: 764ms

   CGroup: /system.slice/smbd.service

            954 /usr/sbin/smbd -D

            975 /usr/sbin/smbd -D

           1081 /usr/sbin/smbd -D

Oct 15 12:35:11 ubuntu smbd[1863]:    ...done.

Oct 15 12:35:11 ubuntu systemd[1]: Reloaded LSB: start Samba SMB/CIFS daemon (smbd).

Oct 15 12:45:02 ubuntu systemd[1]: Reloading LSB: start Samba SMB/CIFS daemon (smbd).

Oct 15 12:45:02 ubuntu smbd[1907]:  * Reloading /etc/samba/smb.conf smbd

Oct 15 12:45:02 ubuntu smbd[1907]:    ...done.

Oct 15 12:45:02 ubuntu systemd[1]: Reloaded LSB: start Samba SMB/CIFS daemon (smbd).

Oct 15 12:52:59 ubuntu systemd[1]: Reloading LSB: start Samba SMB/CIFS daemon (smbd).

Oct 15 12:52:59 ubuntu smbd[1948]:  * Reloading /etc/samba/smb.conf smbd

Oct 15 12:52:59 ubuntu smbd[1948]:    ...done.

Oct 15 12:52:59 ubuntu systemd[1]: Reloaded LSB: start Samba SMB/CIFS daemon (smbd).

ryan_huang@ubuntu:~$ systemctl status nmbd

?nmbd.service - LSB: start Samba NetBIOS nameserver (nmbd)

   Loaded: loaded (/etc/init.d/nmbd; bad; vendor preset: enabled)

   Active: active (running) since Tue 2019-10-15 10:59:08 CST; 1h 55min ago

     Docs: man:systemd-sysv-generator(8)

  Process: 1107 ExecStart=/etc/init.d/nmbd start (code=exited, status=0/SUCCESS)

    Tasks: 1

   Memory: 2.0M

      CPU: 286ms

   CGroup: /system.slice/nmbd.service

           1181 /usr/sbin/nmbd -D

Oct 15 10:59:08 ubuntu systemd[1]: Starting LSB: start Samba NetBIOS nameserver (nmbd)...

Oct 15 10:59:08 ubuntu nmbd[1107]:  * Starting NetBIOS name server nmbd

Oct 15 10:59:08 ubuntu nmbd[1107]:    ...done.

Oct 15 10:59:08 ubuntu systemd[1]: Started LSB: start Samba NetBIOS nameserver (nmbd).

ryan_huang@ubuntu:~$

1.4.5 為Samba服務(wù)添加用戶

ryan_huang@ubuntu:~$ sudo smbpasswd -a ryan_huang

[sudo] password for ryan_huang: (輸入訪問Samba的密碼)

New SMB password:(輸入訪問Samba的密碼)

Retype new SMB password:(輸入訪問Samba的密碼)

Added user ryan_huang.

ryan_huang@ubuntu:~$

1.4.6 修改Samba服務(wù)配置

注意:vim命令只能在ubuntu服務(wù)器上直接執(zhí)行,不能通過SSH Secure Shell執(zhí)行,只能猜測(cè)可能是哪個(gè)配置權(quán)限沒放開沒法修改文件權(quán)限。

ryan_huang@ubuntu:~$ sudo vim /etc/samba/smb.conf

啟動(dòng)vim后,按“insert”按鍵進(jìn)入插入狀態(tài),退出插入狀態(tài)時(shí)按“esc”按鍵,然后敲如“:wq”保存文件并退出vi。

[myshare ]

comment=This is samba dir   #說明

path=/home/ryan_huang/ryan_share  #共享目錄在Linux中的位置

create mask=0755    #創(chuàng)建新文件權(quán)限為可讀寫執(zhí)行

directory mask=0755   #目錄權(quán)限為可讀寫執(zhí)行

writeable=yes

valid users=ryan_huang   #登陸的用戶名

browseable=yes

1.4.7 啟動(dòng)、停止、重啟Samba服務(wù)

啟動(dòng)Samba服務(wù)器只需執(zhí)行如下命令:

$sudo /etc/init.d/samba start

注意:ubuntu server如果執(zhí)行了“shutdown”命令或者“reboot”命令重啟系統(tǒng)后,需要重新執(zhí)行samba啟動(dòng)服務(wù)命令。

關(guān)閉Samba服務(wù)器:

$sudo /etc/init.d/samba stop

重啟Samba服務(wù)

$sudo /etc/init.d/smbd restart  

或者  

$sudo service smbd restart 

1.4.8 訪問共享服務(wù)

windows的文件目錄下,輸入“\\192.168.56.101\myshare”,然后按“Enter”按鍵,接著輸入用戶名“ryan_huang”和輸入密碼即可訪問共享目錄。

1.5 Samba服務(wù)設(shè)置參考網(wǎng)文

https://blog.csdn.net/u012478275/article/details/78876181

https://www./Linux/2017-11/148194.htm

2 PX4開發(fā)編譯環(huán)境的搭建

2.1 Git安裝

$ sudo apt install git

2.2 cmake安裝

$ sudo apt install cmake

2.2.1 cmake安裝失敗的現(xiàn)象

ryan_huang@ubuntu:~$ sudo apt install cmake

[sudo] password for ryan_huang:

Reading package lists... Done

Building dependency tree       

Reading state information... Done

Package cmake is not available, but is referred to by another package.

This may mean that the package is missing, has been obsoleted, or

is only available from another source

E: Package 'cmake' has no installation candidate

ryan_huang@ubuntu:~$

2.2.2 問題解決辦法

這個(gè)問題的原因是ubuntu/etc/apt/source.list中的源比較舊了,需要更新一下,更新方法:

$ sudo apt-get -y update

更新完畢之后,再使用apt-get就沒有問題了。

2.3 交叉編譯工具安裝

2.3.1 安裝新版本的編譯工具(推薦)

$sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa

$sudo apt-get update

$sudo apt-get install gcc-arm-embedded

參考文章:

https://www.cnblogs.com/kinging/p/5877885.html

說明:這里系統(tǒng)為ubuntu server 16.04 64bits也可以成功升級(jí),并非只有“Ubuntu 10.04/12.04/14.04/14.10 32 and 64 bit”才能成功。

升級(jí)成功后通過如下命令可以看到編譯器版本信息:

$ arm-none-eabi-gcc --version

arm-none-eabi-gcc (GNU Tools for Arm Embedded Processors 7-2018-q3-update) 7.3.1 20180622 (release) [ARM/embedded-7-branch revision 261907]

Copyright (C) 2017 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.

2.3.2 安裝舊版本的編譯工具(不推薦)

$ sudo apt-get install gcc-arm-none-eabi

編譯工具有600多兆,下載時(shí)間較長。

2.4 升級(jí)到新版本的編譯工具(可選)

如果不慎安裝了舊版本的編譯工具,則執(zhí)行如下刪除舊編譯工具,然后執(zhí)行2.3.1的三條命令即可:

$sudo apt-get remove gcc-arm-none-eabi gdb-arm-none-eabi binutils-arm-none-eabi gcc-arm-embedded

參考文章:

https://blog.csdn.net/x_kh_2001/article/details/81127695

2.5 安裝patch

$ sudo apt-get install patch

2.6 安裝genromfs

$ sudo apt-get install genromfs

2.7 安裝python-jinja2 

$ sudo apt-get install python-jinja2

2.8 安裝Python-empy 

$ sudo apt-get install python-empy

2.9 安裝Python-pip

$ sudo apt-get -y install python-pip

2.10 安裝numpy

$ sudo pip install numpy

2.11 安裝toml

$ sudo pip install toml

2.12 安裝pyyaml

$ sudo pip install pyyaml

V1.9.2新增工具。

2.13 固件下載:

$ mkdir px4_src_v1.9.2

$ cd px4_src_v1.9.2/

$ git clone https://github.com/PX4/Firmware.git -b v1.9.2

2.14 子模塊更新

$cd Firmware

$git submodule update --init --recursive

2.15 編譯

$ make px4fmu-v4_default

主機(jī)

系統(tǒng)(64 bits

固件版本

虛擬機(jī)設(shè)置的CPU核心數(shù)

執(zhí)行make clean

編譯用時(shí)

系統(tǒng)啟動(dòng)后首次運(yùn)行

1

Ubuntu destop 16.04

1.9.2

1

242

1

Ubuntu server 16.04

1.9.2

4

130

1

Ubuntu server 16.04

1.9.2

4

109

2

Ubuntu server 16.04

1.7.2

4

347

2

Windows 7

1.7.2

4

超過13分鐘

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多