1系統(tǒng)環(huán)境搭建1.1系統(tǒng)環(huán)境需求操作系統(tǒng): ubuntu server 16.04 虛擬機(jī)工具:VirtualBox 文件共享服務(wù):在Ubuntu端SAMBA文件服務(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地址和ubuntu的IP地址同在一個(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 FAQ1.3.1 問題1:SSH連接報(bào)錯(cuò)https://blog.csdn.net/heroybc/article/details/78562954 ssh連接報(bào)錯(cuò)server responded”algorithm 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 檢查是否已安裝Sambaryan_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
|
|