1.Windows配置html
1.1 系統安裝node
1.重要連接python Windows10 dev: https://developer.microsoft.com/en-us/windows/downloads/linux Windows10 vm: https://developer.microsoft.com/en-us/windows/downloads/virtual-machinesios Windows10 preview1: https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewadvancedgit Windows10 preview2: https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewadvancedgithub WSL release notes: https://docs.microsoft.com/en-us/windows/wsl/release-notes算法 WSL command reference: https://docs.microsoft.com/en-us/windows/wsl/referencesql 2.安裝說明shell 安裝穩定版本:將下載的虛擬機安裝爲物理機後並破解 安裝最新版本:將下載的預覽鏡像安裝爲物理機並破解 安裝優化版本:將下載藍色動力系統安裝爲物理機並破解 3.總體流程 1.啓用Administrator並登陸 2.安裝DriveLife並安裝缺失的驅動 3.設置MicrosoftStore並安裝娛樂軟件 4.啓用相關程序和功能並安裝WSL系統 5.安裝辦公軟件、設計軟件及開發軟件 6.激活WindowsOS |
1.2 啓用功能
SMB 1.0/CIFS File Sharing Support SMB Direct NFS Service Telnet Client Telnet Server OpenSSH Client OpenSSH Server Virtual Machine Platform Windows subsystem for Linux |
|
1.3 安裝軟件
1.應用商店安裝 Windows Terminal 2.手動下載安裝 |
WindowsTerminal配置 DIYOrder: Prompt, PowerShell, Ubuntu16.04 ItemTemplate { "acrylicOpacity" : 0.5, "closeOnExit" : true, "colorScheme" : "Campbell", "commandline" : "wsl.exe -d Ubuntu-16.04 -u root", "cursorColor" : "#FFFFFF", "cursorShape" : "bar", "fontFace" : "Consolas", "fontSize" : 10, "guid" : "{9acb9455-ca41-5af7-950f-6bca1bc9722f}", "historySize" : 9001, "icon" : "ms-appx:///ProfileIcons/{9acb9455-ca41-5af7-950f-6bca1bc9722f}.png", "name" : "Ubuntu16.04", "padding" : "0, 0, 0, 0", "snapOnInput" : true, "startingDirectory" : "%USERPROFILE%", "useAcrylic" : false } |
1.2 WSL配置
unzip ubuntu_xxx_x64.appx again to clear all cache and reboot passwd root 0.apt-get install update upgrade minicom
1.Samba apt-get install samba samba-common smbclient cifs-utils vim /etc/samba/smb.conf smbpasswd -a root /etc/init.d/smbd restart smbclient -L ip -N
mount -t cifs -o username=root,password=backkom //ip/sharedPath localPath umount localPath
#windows10: \\ip in Explorer #clear cache: net use * /del /y
2.NFS apt-get install nfs-kernel-server nfs-common rpcbind vim /etc/exports /etc/init.d/rpcbind restart /etc/init.d/nfs-kernel-server restart showmount -e ip
mount -t nfs -o nolock ip:/sharedPath localPath umount localPath
#Window10 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ ClientForNFS\CurrentVersion\Default create AnonymousUid QWORD 0 create AnonymousGid QWORD 0 reboot windows mount -o nolock \\ip\sharedPath driveNames: umount driveNamess
3.Telnet apt-get install openbsd-inetd telnetd vim /etc/inetd.conf mv /etc/securetty /etc/securetty.bak #allow root login /etc/init.d/openbsd-inetd restart netstat -a | grep telnet #display{tcp…telnet…}
telnet ip
4.SSH apt-get install openssh-server openssh-client vim /etc/ssh/sshd_config dpkg-reconfigure openssh-server /etc/init.d/ssh restart ps -e |grep ssh #display{…sshd}
ssh username@ip
5.FTP apt-get install vsftpd ftp vim /etc/vsftpd.conf vim /etc/ftpusers vim /etc/ftpusers_allowed vim /etc/ftpusers_unlimited /etc/init.d/vsftpd restart
ftp ip ftp>help [cmd] ftp>quit ftp>status ftp>dir [dir] ftp>ls ftp>verbose ftp>pwd ftp>cd dir0 ftp>lcd [dir1] ftp>delete file ftp>rename src dst ftp>mkdir dir ftp>rmdir dirname ftp>get file0 [file1] ftp>put file1 [file0]
6.Git Sever apt-get install git git-core apache2 apache2-utils |
1./etc/samba/smb.conf追加 [root] comment = root directory path = /root writeable = yes browseable = yes valid users = root
[ubuntu] comment = system directory path = / writeable = yes browseable = yes valid users = root
2./etc/exports追加 /root *(insecure,rw,sync,no_subtree_check,no_root_squash) / *(insecure,rw,sync,no_subtree_check,no_root_squash) #*: 全部能ping到的主機可掛載 #192.168.0.*: 指定網段的主機可掛載 #192.168.1.12: 僅此主機能掛載 #ro/rw:只讀/讀寫 #sync:同步 #no_root_squash: 不下降root用戶的權限
3./etc/inetd.conf應有 telnet stream tcp nowait telnetd /usr/sbin/tcpd /usr/sbin/in.telnetd
4./etc/ssh/sshd_config設置 PermitRootLogin as yes PasswordAuthentication yes
5./etc/vsftpd.conf模板
local_enable=YES local_root=/home local_umask=000 local_max_rate=0 write_enable=YES userlist_enable=YES userlist_deny=NO userlist_file=/etc/ftpusers_allowed chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/ftpusers_unlimited seccomp_sandbox=NO /etc/ftpusers應無root和其它指望用於登陸的帳戶 /etc/ftpusers_allowed應有root和其它指望用於登陸的帳戶 /etc/ftpusers_unlimited應有root和其它訪問位置不受限的帳戶 |
1.4 優化與備份
|
2.Ubuntu配置
2.1初始設置
2.2個性配置
(1)個性配置 桌面無任何圖標 輸入法僅五筆和拼音 窗口菜單在本窗口並一直顯示 任務欄無多餘程序停靠(包括不含桌面圖標和工做空間圖標)且任務欄圖標尺寸30 (2)標籤配置 打開/etc/xdg/user-dirs.defaults註釋全部 打開~/.config/user-dirs.dirs註釋只剩下XDG_DESKTOP_DIR="$HOME/Desktop"從而完成位置欄配置 打開菜單欄上的書籤欄完成書籤欄配置 (3)辦公配置 見後文 (4)制本地源 複製/var/cache/apt/archives/*.deb到/root/app/aptget(若軟件包被刪除或更新則進入synaptic選擇所有從新但僅下載) 進行入/root/app執行{dpkg-scanpackages aptget /dev/null | gzip > aptget/Packages.gz}生成源信 打開gedit /etc/apt/sources.list後刪除全部並添加deb file:/root/app/ aptget/而後打開synaptic並reload便可 能夠經過dpkg -i /root/app/aptget/*.deb安裝強制安裝deb軟件(確保彼此依賴都存在) (5)清理緩存 bleachbit: 清理垃圾 autoclean: 清理已被卸載的軟件的deb安裝包 clean: 清理全部deb安裝包 autoremove: 刪除系統認爲再也不使用的孤立軟件 remove softname: 卸載指定軟件但保留配置 remove --purge softname: 卸載指定軟件且刪除配置 synaptic: 清除殘留配置 (6)備份系統 用systemback備份系統爲LiveCDba 直接用LiveCD工做時可能無權限時則執行chmod u+x file/dir 直接進行安裝模式..../ubuntu160403-dzy.iso ro finstall quiet splash locale=zh_CN.UTF-8 在不一樣配置的電腦上安裝或試用LiveCD時,驅動有問題首先更新或重裝內核(此方法可聯網可離線),若都不行則在軟件更新界面的附加驅動中安裝(此方法要聯網) (7)壓縮數據
. |
2.3開發配置
(1)從源安裝 apt-get install libqt5multimedia5-plugins qtmultimedia5-dev libsuitesparse-dev CMakeLists添加: /usr/include/suitesparse apt-get install git cmake cmake-qt-gui python3 libqt5*5-dev libboost-all-dev libeigen3-dev liboctomap-dev libdynamicedt3d-dev liboctovis-dev octomap-tools octovis 手動: sophus apt-get install libvtk6-dev libopencv-dev 手動: opencv apt-get install libgflags-dev libgoogle-glog-dev 手動: ceres apt-get install libflann-dev libqhull-dev libpcl-dev pcl-tools libproj-dev (2)手動安裝 sophus: 與win類似,直接複製到/usr/include/sophus-dzy opencv: 除安裝路徑外與win相同, 包括重建本地本能夠提供的第三項 pangolin: 除安裝路徑外與win相同, 但不重建本地已存在的第三項,若所需第三方項不存在會提示錯誤,基於以前安裝這裏就須要再安裝libglew-dev ceres: 除安裝路徑外與win相同 qt&&vscode&&vscode-plugins: vscode-icons, CMake, CMake Tools, CMake Tools Helper, C/C++ (3)備份恢復 1)備份:複製/usr/local/*到/root/app/local,複製全部deb包到root/app/base-dev,刪除全部build中除build.zip外的文件 2)恢復:以base-dev製做本地源安裝,複製local覆蓋/usr/local,終端執行ldconfig |
2.4仿真系統
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 sudo apt-get update sudo apt-get install ros-kinetic-desktop-full sudo rosdep init rosdep update echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc source ~/.bashrc (2)安裝turtlebot1~3 apt-get install ros-kinetic-turtlebot3* ros-kinetic-turtlebot* echo "export TURTLEBOT3_MODEL=burger" >> ~/.bashrc 或echo "export TURTLEBOT3_MODEL=waffle" >> ~/.bashrc source ~/.bashrc Search gmapping in github and download nodelet_plugins.xml to opt/ros/kinetic/share/gmapping <library path="lib/libslam_gmapping_nodelet"> <class name="SlamGMappingNodelet" type="SlamGMappingNodelet" base_class_type="nodelet::Nodelet"> <description> Nodelet ROS wrapper for OpenSlam's Gmapping </description> </class> </library> For wmware: vmware setting->monitor-> disable Accelerate 3D Graphics 或echo "export SVGA_VGPU10=0" >> ~/.bashrc Verify1: roslaunch turtlebot_stage turtlebot_in_stage.launch && roslaunch turtlebot_teleop keyboard_teleop.launch Verify2: roslaunch turtlebot_gazebo turtlebot_world.launch && roslaunch turtlebot_teleop keyboard_teleop.launch Verify3: roslaunch turtlebot3_fake turtlebot3_fake.launch && roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch //16.04 recompile and replace turtlebot3_fake_node.exe Verify4: roslaunch turtlebot3_gazebo turtlebot3_world.launch && roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch (3)安裝hector_quadrotor apt-get install ros-kinetic-hector* ros-kinetic-ros-control ros-kinetic-gazebo-ros-control apt-get install ros-kinetic-hector* ros-kinetic-ros-control ros-kinetic-gazebo-ros-control cd ~/catkin_ws/src git clone https://github.com/tu-darmstadt-ros-pkg/hector_quadrotor cd ~/catkin_ws/src/hector_quadrotor git checkout kinetic-devel cd ~/catkin_ws catkin_make echo "source /root/catkin_ws/devel/setup.bash" >> ~/.bashrc source ~/.bashrc
roslaunch hector_quadrotor_demo outdoor_flight_gazebo.launch rosservice call /enable_motors 1 rosrun teleop_twist_keyboard teleop_twist_keyboard.py
http://wiki.ros.org/hector_quadrotor https://github.com/tu-darmstadt-ros-pkg https://github.com/tu-darmstadt-ros-pkg/hector_slam https://github.com/tu-darmstadt-ros-pkg/hector_gazebo https://github.com/tu-darmstadt-ros-pkg/hector_quadrotor (4)安裝 |
3.開發配置
3.1 git + cmake + winpython
安裝路徑默認但必須在系統盤,自動追加path環境變量 |
3.2 qt + boost + eigen + sophus
1.安裝Qt (1)安裝路徑:D:/app/qt (2)環境變量:D:/app/qt/5.9.x/msvc2015_64/bin到Path頭(很是重要) (3)所需依賴:無 (4)安裝須知 1)Qt5.9組選擇msvc2015-64bit和desktop-gcc-64bit及除QtScript外全部Qt打頭的庫 2)DevDes組成選擇CBDebuger和MinGW 3)移除*d.lib、*d.prl及*d.dll的庫 4)移植到第三方時用C:\Windows\System32\WindowsPowerShell\v1.0做爲目標路徑 5)移植到第三方時根據實際需求還須要將~/plugins中的某些目錄複製到與運行程序 相同的目錄,當前有:imageformats, sqldrivers, platforms 2.安裝qglviewer (1)用qt打開QGLViewer.pro,設置C/C++編譯器爲MVCM14.0(x86_amd64) (2)構建Release版本,無需理會找不到QGLViewer2.lib的錯誤 (3)複製QGLViewer2.lib爲~\qt\version_id\msvc2015_64\lib (4)複製QGLViewer2.dll到~\qt\version_id\msvc2015_64\bin (5)複製libQGLViewer-qt5.prl和libQGLViewer-qt5.so*到~\qt\version_id\gcc_64\lib (6)複製QGLViewer中全部h文件和VRender到~qt\version_id\msvc2015_64 (7)複製QGLViewer中全部h文件和VRender到~qt\version_id\_gcc_64\include (8)在QGLViewer中增長文件QGLViewer #ifndef QT_QGLVIEWER_MODULE_H #define QT_QGLVIEWER_MODULE_H #include "camera.h" #include "config.h" #include "constraint.h" |
#include "domUtils.h" #include "frame.h" #include "keyFrameInterpolator.h" #include "manipulatedCameraFrame.h" #include "manipulatedFrame.h" #include "mouseGrabber.h" #include "qglviewer.h" #include "quaternion.h" #include "vec.h" #endif (9)這些頭文件中包含的關於QT的頭文件要做修改,主要是增長包含目錄 (10)複製examples爲~\qt\Examples\version_id\qglviewer (11)備份以上文件,對Qt5.9.x全適用,對5.x.x只需更新dll和lib文件 3.安裝boost (1)安裝路徑:D:/app/boost (2)所需依賴:無 (3)環境變量:D:/app/boost/lib64-msvc-14.0 (4)安裝須知:僅保留~/lib64-msvc-14.0中知足*mt-x64-1_*的庫(其中動態38*2和靜態40共116項) (5)補充說明:lib靜態庫,vcx編譯器版本,mt多線程編譯,s靜態調試,g診斷調試,d調試版本 4.安裝eigen:解壓源文件到D:/app/eigen 5.安裝sophus:解壓源文件D:/app/sophus |
3.3 gflags + glog + ceres + suitesparse
1.安裝gflags (1)安裝路徑:CMAKE_INSTALL_PREFIX=D:/app/gflags/build/install (2)環境變量:無 (3)所需依賴:無 (4)安裝須知:解壓後先刪除BUILD,不然沒法新建build目錄 2.安裝glog 安裝路徑:CMAKE_INSTALL_PREFIX=D:/app/glog/build/install 環境變量:無 所需依賴:gflags_DIR=D:/app/gflags/build/install/lib/cmake/gflags 安裝須知:解壓後先刪除BUILD,不然沒法新建build目錄 3.安裝ceres (1)安裝路徑:CMAKE_INSTALL_PREFIX=D:/app/ceres/build/install (2)環境變量:無 (3)所需依賴 1)gflags_DIR=D:/app/gflags/build/install/lib/cmake/gflags 2)glog_DIR=D:/app/glog/build/install/lib/cmake/glog (4)安裝須知:解壓後先刪除BUILD,不然沒法新建build目錄 |
(5)補充說明:直接包含lib文件會缺乏宏定義使得在Debug模式下會出錯, 可經過find_package生成工程找到宏後再在簡易配置中加上宏 4.安裝suitesparse(僅學習用而暫不做爲其它庫的依賴) (1)安裝路徑:SUITESPARSE_INSTALL_PREFIX=D:/app/suitesparse/build/install (2)環境變量:D:/app/suitesparse/lapack_windows/x64 (3)所需依賴:無 (4)安裝須知 1)複製~/lapack_windows/x64中的libblas.lib和liblapack.lib到~/install/lib使以簡化配置 2)刪除~/build/install/lib64,其中的文件來源於~/lapack_windows/x64 (5)補充說明 1)suitesparse由efficient、csparse和cxsparse組成 2)efficient依賴lapack和blas(suitesparse-metis中包含這兩個依賴),但效率高 3)csparse不依賴lapack和blas,但效率低 4)cxsparse是csparse超集,擴展支持複數和整型及長整型,用csparse的地方均可用之替換 5)suitesparse算法組成:算法庫11個+配置庫1個+csparse和cxsparse擴展庫1個 6)suitesparse文件組成:頭文件包含11個(含配置頭文件),庫文件包含12個(含配置頭文件) 7)lapack和lapacke區別:lapacke是c接口的lapack,由於blas和lapack自己是用fortan語言寫的 |
3.4 vtk + opencv
1.安裝vtk (1)安裝路徑:CMAKE_INSTALL_PREFIX=D:/app/vtk/build/install (2)環境變量:D:/app/vtk/build/install/bin (3)所需依賴:無 (4)安裝須知:若自動找到依賴QT則殘廢之 2.安裝opencv (1)安裝路徑:CMAKE_INSTALL_PREFIX=D:/app/opencv/build/install (2)環境變量:D:\app\opencv\build\install\x64\vc14\bin (3)所需依賴: 0)BUILD_WITH_DEBUG_INFO=ON 1)OPENCV_ENABLE_NONFREE=ON 2)OPENCV_DOWNLOAD_PATH=D:/app/opencv/sources/.cache 3)OPENCV_EXTRA_MODULES_PATH=D:/app/opencv/contrib/modules 4)GIT_EXECUTABLE=C:/Program Files/Git/cmd/git.exe 5)QT_QMAKE_EXECUTABLE=D:/app/qt/5.9.8/msvc2015_64/bin/qmake.exe 6)QT5Core_DIR=D:/app/qt/5.9.8/msvc2015_64/lib/cmake/Qt5Core 7)QT5Gui_DIR=D:/app/qt/5.9.8/msvc2015_64/lib/cmake/Qt5Gui |
8)Qt5Widgets_DIR=D:/app/qt/5.9.8/msvc2015_64/lib/cmake/Qt5Widgets 9)QT5Concurrent_DIR=D:/app/qt/5.9.8/msvc2015_64/lib/cmake/Qt5Concurrent 10)QT5OpenGL_DIR=D:/app/qt/5.9.8/msvc2015_64/lib/cmake/Qt5OpenGL 11)QT5Test_DIR=D:/app/qt/5.9.8/msvc2015_64/lib/cmake/Qt5Test 12)VTK_DIR=D:/app/vtk/build/install/lib/cmake/vtk-8.2 13)gflags_DIR=D:/app/gflags/build/install/lib/cmake/gflags 14)GLOG_INCLUDE_DIR=D:/app/glog/build/install/include 15)GLOG_LIBRARY=D:/app/glog/build/install/lib/glog.lib 16)Glog_LIBS=D:/app/glog/build/install/lib/glog.lib 17)Ceres_DIR、Eigen3_DIR、BLAS_XXX、OpenBLAS_XXX、realsense2_DIR (4)安裝須知 1)修改D:\app\opencv\contribs\modules\cvv\src\stfl\stringutils.cpp中u8」…」爲u8」...」 2)選擇除WITH_CU*外的全部WITH項以引出第三方庫,找不到第三方庫會自動禁用或 報錯,若報錯則手動處理以確保須要的模塊被關聯 3)排除BUILD項:_CUDA, _DOCS, _EXAMPLES, _PER_TESTS, _TBB, TESTS, _TESTS, _opencv_cuda, _opencv_js, _opencv _world 4)編譯安裝後刪除OpenCV.VC.db、bin、modules再備份除install之外的全部到build.zip |
3.5 flann + qhull + pcl
1.安裝flann (1)安裝路徑:CMAKE_INSTALL_BIN_DIR=D:/app/flann/build/install (2)環境變量:D:/app/flann/build/install/bin (3)所需依賴:無 (4)安裝須知:生成了多個庫但還沒有明其義 2.安裝qhull (1)安裝路徑:CMAKE_INSTALL_BIN_DIR=D:/app/qhull/build/install (2)環境變量:D:/app/flann/build/install/bin (3)所需依賴:無 (4)安裝須知:生成了多個庫但還沒有明其義 3.安裝pcl (1)安裝路徑:CMAKE_INSTALL_BIN_DIR= D:/app/pcl/build/install (2)環境變量:D:/app/pcl/build/install/bin |
(3)所需依賴:無 flann qhull boost eigen qt vtk (4)安裝須知:生成了多個庫但還沒有明其義 1)CMakeLists添加set(BOOST_ROOT D:/app/boost) 2)USE_PROJECT_FOLDERS=ON 3)設爲ON的項:_ENABLE_SSE, _SHEARD_LIBS 5)選擇除WITH_CU*外的全部WITH項以引出第三方庫,作法同OpenCV 4)排除的BUILD項:_CUDA, _GPU, _all_in_one_installer, _apps, _examples, _global_tests |
4.特定配置
4.1 octomap + orbslam2
1.安裝octomap (1)安裝路徑:CMAKE_INSTALL_BIN_DIR=D:/app/octomap/build/install (2)環境變量:D:/app/octomap/build/install/bin (3)所需依賴 1)OCTOVIS_OT5=TURE 2)BUILD_OCTOVIS_SUBPROJECT=TRUE 3)BUILD_DYNAMICETD3D_SUBPROJECT=TRUE 4)QT_QMAKE_EXECUTABLE=D:/app/qt/5.9.8/msvc2015_64/bin/qmake.exe 5)QGLViewer_INCLUDE_DIR=D:/app/qt/5.9.8/msvc2015_64/include/QGLViewer 6)QGLViewer_LIBRARY_DIR_WINDOWS=D:/app/qt/5.9.8/msvc2015_64/lib/QGLViewer2.lib (4)安裝須知 1)修改源碼中的updateGL爲update並註釋qglColor和qglClearColor,移除octovis-shared工程中的SelectionBox.cpp 2)繼承關係由octovis::ViewerWidgetqglviwer::GLViewerqt::QGLWidget(deprecated by latest qt)變爲octovis::ViewerWidgetqglviwer::GLViewerqt::QOpenGLWidget 2.安裝orbslam2(含fbow + g2o +pangolin) (1)安裝路徑:CMAKE_INSTALL_BIN_DIR=D:/app/octomap/build/install (2)環境變量 (3)所需依賴 (4)安裝須知 1)可對比原始源碼與Window版本源碼的區別,而後按readme安裝 2)在ORBextractor.cc中添加頭文件#include <iterator> 3)刪除提供的Thirdparty/eigen而用D:/app/eigen 4)生成g2o工程打開後添加預處理選項WINDOWS 5)編譯pangolin時會不能打開」pthread.lib」的錯誤無需理會 (5)測試用例:解壓Vocabulary/ORBvoc.txt.tar.gz到當前目錄 1)單目KITTI:.\Examples\Monocular\Release\mono_kitti .\Vocabulary\ORBvoc.txt .\Examples\Monocular\KITTI03.yaml G:\data_odometry_gray\03 2)單目EuRoc: 3)單目TUM:.\Examples\Monocular\Release\mono_tum .\Vocabulary\ORBvoc.txt .\Examples\Monocular\TUM1.yaml G:\rgbd_dataset_freiburg1_desk 4)雙目KITTI:.\Examples\Stereo\Release\stereo_kitti .\Vocabulary\ORBvoc.txt .\Examples\Stereo\KITTI03.yaml G:\data_odometry_gray\03 5)雙目EuRoC: 6)深度TUM:.\Examples\RGB-D\Release\rgbd_tum .\Vocabulary\ORBvoc.txt Examples\RGB-D\TUM1.yaml G:\rgbd_dataset_freiburg1_desk G:\rgbd_dataset_freiburg1_desk\associations.txt |
9.環境變量配置
9.1 window
D:\app\qt\5.9.8\msvc2015_64\bin D:\app\boost\lib64-msvc-14.0 D:\app\suitesparse\lapack_windows\x64
D:\app\vtk\build\install\bin D:\app\opencv\build\install\x64\vc14\bin
D:\app\flann\build\install\bin D:\app\qhull\build\install\bin D:\app\pcl\build\install\bin
D:\app\octomap\build\install\bin |
C:\Program Files\Git\cmd C:\Program Files\CMake\bin C:\Windows C:\Windows\system32 C:\Windows\System32\Wbem C:\Windows\System32\WindowsPowerShell\v1.0 C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit C:\Program Files\Microsoft SQL Server\120\Tools\Binn C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\libnvvp |
9.2 ubuntu
(1)可設置處 /etc/environment:系統啓動時加載 /etc/profile:每一個用戶首次登陸時加載 /etc/bash.bashrc:每一個用戶每次打開shell時加載 ~/.profile:對應用戶首次登陸時加載 ~/.bashrc:對應用戶每次打開shell時加載 當即生效:source /etc/bash.bashrc 或source ~/.bashrc (2)設置變量 對C頭文件:export C_INCLUDE_PATH = dzypath:${C_INCLUDE_PATH} 對CXX文件:export CPLUS_INCLUDE_PATH = dzypth:${CPLUS_INCLUDE_PATH} 對靜態庫文件:export LIBRARY_PATH = dzypath: ${LIBRARY_PATH} 對動態庫文件:export LD_LIBRARY_PATH = dzypath:${LD_LIBRARY_PATH} 或 修改/etc/ld.so.conf並執行ldconfig 對可執行文件:export PATH = dzypath:${PATH} |
10.辦公配置
10.1 鏈接到Window
(1)遠程桌面:Remmina軟件,RDP遠程桌面協議,IP地址,用戶名,密碼,真彩色(32bpp) (2)訪問共享:打開主文件,單擊左下角網絡->鏈接到服務器,輸入IP地址,用戶名,密碼便可 |
10.2 啓用遠程和共享
(1)啓用遠程 打開desktop sharing勾選<容許查看桌面>和<容許控制桌面>,<每次訪問確認>不勾選,勾選<須要密碼登陸>,並輸入密碼 打開dconf editor選擇org->gnome->desktop->remote-access,取消<requlre-encryption> 重啓xrdp服務service xrdp restart Windows進入遠程桌面選擇<vnc-any>或<console>登陸,輸入IP和端口5900及前面設置的密碼 |
10.3 啓用FTP
#1.這是一個/etc/vsftpd.conf文件模板,配置後執行service vsftpd restart重啓ftp #2.查找並打開/etc/ftpusers註釋root用戶和註釋其它指望用於登陸的帳戶 #註釋root和ftp便可 #3.打開或新建/etc/allowed_users添加root用戶和其它指望用於登陸的帳戶 #添加root和ftp便可 #4.打開或新建/etc/vsftpd.chroot_list添加指望不被限制在默認目錄的帳戶 #添加root便可 #5.新建/home/swap並添加權限777 #root控整個系統而ftp僅控/home/swap #6.添加ftp帳戶:(1)cmd: deluser ftp (2)cmd: adduser ftp (3)隨後設置密碼ftp並對其它設置直接回車
listen=NO listen_port=21 listen_ipv6=YES use_localtime=YES xferlog_enable=YES dirmessage_enable=YES connect_from_port_20=YES secure_chroot_dir=/var/run/vsftpd/empty rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key ssl_enable=NO
#匿名用戶相關: 容許訪問, 默認目錄(不能有寫權限), 最大傳速, 上傳掩碼(默認077), 下載權限, 上傳權限, 建目錄權限, 其它權限, 無需登陸密碼,上傳文件全部權重置,上傳文件全部者 anonymous_enable=YES anon_root=/home anon_max_rate=0 anon_umask=000 #anon_world_readable_only=YES anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES no_anon_password=YES #chown_uploads=YES #chown_username=root
#本地用戶相關:容許訪問, 默認目錄, 最大傳速, 上傳掩碼(默認077), 可寫權限 local_enable=YES local_root=/home local_max_rate=0 local_umask=000 write_enable=YES
#限定登陸用戶: 啓用登陸表, 設置登陸表內的用戶可登陸, 登陸表路徑 userlist_enable=YES userlist_deny=NO userlist_file=/etc/allowed_users
#限制訪問地點: 限制本地用戶在默認目錄,啓用不受限的本地用戶表,不受限本地用戶表路徑 chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list
#其它防錯選項 seccomp_sandbox=NO pam_service_name=vsftpd |
0.6 搭建HTTP GIT Server
(1)安裝工具:git git-core apache2 apache2-utils (2)激活功能:a2enmod cgid alias env rewrite (3)添加配置:gedit /etc/apache2/sites-enabled/000-default.conf 在<VirtualHost *:80>中追加以下內容 SetEnv GIT_PROJECT_ROOT /var/www/html/git SetEnv GIT_HTTP_EXPORT_ALL ScriptAlias /git/ /usr/lib/git-core/git-http-backend/
RewriteEngine On RewriteCond %{QUERY_STRING} service=git-receive-pack [OR] RewriteCond %{REQUEST_URI} /git-receive-pack$ RewriteRule ^/git/ - [E=AUTHREQUIRED]
<Files "git-http-backend"> AuthType Basic AuthName "Git Access" AuthUserFile /var/www/html/.htpasswd Require valid-user Order deny,allow Deny from env=AUTHREQUIRED Satisfy any </Files> (4)建立用戶:htpasswd -bc /var/www/html/.htpasswd git git //c表示建立或從新初始化.htpasswd文件,b表示添加帳戶,前一個git是用戶名後一個git是密碼 (5)建立存放:mkdir /var/www/html/git (6)建立倉庫:git init --bare /var/www/html/git/dzy.git (7)修改權限:chown -R www-data:www-data /var/www/ (8)重啓apache:service apache2 restart (9)客戶端操做:git clone http://ip/git/dzy.git |
10.7 搭配共享網絡
(1)規範化網卡名 打開 /etc/default/grub將GRUB_CMDLINE_LINUX修改成GRUB_CMDLINE_LINUX=」net.ifnames=0 biosdevname=0」 執行update-grub (2)啓用共享網絡 服務端物理鏈接:外網卡與外網口鏈接,內網卡與交換機或客戶端網卡鏈接 服務端網卡設置:外網卡視外網狀況設置,內網卡在Ipv4 Settings的Method中選擇Shared to other computes 客戶端物理鏈接:與交換機或服務端內網卡鏈接 客戶端網卡設置:自動獲取便可,或ip設置爲與服務端內網卡相同段的ip而DNS設置爲與服務端外網卡相同 (3)共享鼠標鍵盤 安裝Synergy應用:安裝過程當中,一臺PC設置安裝爲服務端,其它PC設置安裝爲客戶端 設置屏幕名稱:服務端與全部客戶端都要設置屏幕名稱(經過單擊「編輯->設置」可找到設置位置)並撤消Use SSL Encryption 管理全部屏幕:在服務端打開「服務端設置」,新建屏幕(數量等於PC臺數)並設置屏幕名稱(名稱要與上一步驟設置的名稱一一對應) |
10.9 BIOS與UEFI
|
1.BIOS硬盤結構 (1)LBA0:因該扇區中,引導代碼佔有絕大部分的空間,故將此扇區稱爲MBR扇區 MBR:446字節,存儲系統的引導程序 PEs:64字節,每16字節描述描述一個PE(Partition Entry),因此最多共4個分區 End:2字節,值爲0xAA55 (2)LBA1~LBA62:隱藏扇區,保留備用。 (3)LBA63:第一分區的起始位置。 (4)LBA64~LBAEnd:參見《挨踢_硬盤結構+文件系統+系統啓動+數據恢復1st.doc》
2.UEFI硬盤結構 (1)LBA0:MBR扇區,記錄了啓動代碼和分區信息。 若LBA0記錄了僅0xEE標誌的分區或LBA0後存在PHs(Partition Headers),說明此硬盤爲UEFI獨佔模式,只能由UEFI主板啓動 若LBA0記錄了非0xEE標誌的分區且LBA0後存在PHs,說明此硬盤爲UEFI/BIOS混合模式,兩類主板或混合主板都能啓動 若LBA0記錄了非0xEE標誌的分區且LBA0後沒有PHs,說明此硬盤爲BIOS獨佔模式,只能由BIOS主板啓動 (2)LBA1:主PTH(Partition Table Header),記錄硬盤的GUID、分區可用的始末LBA、PEs包含的項數及每項佔用的字節數等信息
(3)LBA2~LBA33:主PEs,每一個PE用128字節描述
(4)LBA34:第一分區的起始位置 (5)LBA-2~LBA-33:副PEs (6)LBA-1:副PTH |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3.BIOS硬盤與UEFI硬盤關鍵異同點 (1)電腦主板固件程序分別:BIOS和UEFI (2)BIOS分區結構將MBR和PEs存儲在了一個扇區LBA0 (3)UEFI分區結構將MBR存儲在一個扇區LBA0,將PEs存儲在多個扇區(LBA2~LBA33),還增長了PTH(存儲在LBA1扇區) (4)UEFI必須有一個ESP分區,ESP用於存儲系統啓動相關的文件 (5)BIOS硬盤啓動過程概要 1) 開機自檢 2) 加載硬盤主引導記錄(每類系統的主引導記錄都不相同) 3) 搜索並激活系統引導文件(如winnt5_ntldr或winnt6_bootmgr或ubuntu_) 4) 加載啓動配置文件(如winnt5_boot.ini或winnt6_bcd或ubuntu_grub.cfg) 5)加載系統核心文件 (6)UEFI硬盤啓動流程 1) 開機自檢 2) 加載系統引導文件:自動加載/esp/efi/boot/bootx64.efi(可由任何系統的efi文件或uefishell.efi重命名獲得),可手動添加多個不一樣路徑的efi文件 Windows默認安裝在:/esp/efi/microsoft/boot/bootmgrfw.efi Ubuntu默認安裝:/esp/efi/ubuntu/shimx64.efi及/esp/efi/ubuntu/grubx64.efi XorBoot安裝路徑:/esp/anywhere 3) 加載啓動配置文件:不一樣的efi文件,其指向的啓動配置文件不一樣 Windows操做系統:/esp/efi/microsoft/boot/bootmgrfw.efi/esp/efi/microsoft/boot/bcd Windows安裝鏡像:/iso/efi/boot/bootx64.efi/esp/efi/microsoft/boot/bcd Ubuntu操做系統:/esp/efi/ubuntu/shimx64.efi/esp/efi/ubuntu/grubx64.efi/esp/efi/ubuntu/grub.cfg Ubuntu安裝鏡像:/iso/efi/boot/bootx64.efi/iso/efi/boot/grubx64.efi/esp/boot/grub/x86_x64-efi/*及/esp/boot/grub/grub.cfg XorBoot配置文件:/esp/efi/xorboot/xorboot.xor 4)加載系統核心文件:不一樣的啓動配置文件,其指向的系統核心文件不一樣 (7)UEFI硬盤啓動盤製做 (1)基於《UEFI硬盤啓動流程》可知,從操做系統或安裝盤複製相應的文件到esp分區後,此硬盤就是UEFI啓動盤 (2)爲使用grub2的附加功能,將Ubuntu操做系統中的boot/grub/x86_x64-efi目錄也複製到/esp/efi/ubuntu目錄中(若複製到其它位置則insmod時就須要指定模塊詳細路徑) (3)爲引導鏡像(如.iso或.ima或.wim等),複製ubuntu操做系統中的/usr/lib/syslinux/memdisk到/esp/efi/ubuntu中(可複製到其它任何位置反正加載時都要指定具體位置) (4)開發者但願開機啓動uefishell.efi,使用者角度但願開機啓動grub2,折中方案是將shimx64.efi複製重合名爲bootx64.efi(即將grub2設置默認),由於能夠從grub2中啓動任何efi ▲:暫沒實現grub2啓動winpe.iso。當前,grub2只負責啓動ubuntu系統和ubuntu鏡像及efi文件,BCD負責啓動windows及winpe.wim及winos.vhd
4.WinPE啓動盤製做 (1)WinPE.ISO目錄(仿照安裝鏡像生成):打開從Windows安裝鏡像並刪除全部文件後添加以下文件 bootmgr 從WindowsNT6安裝鏡像中獲取(使bios主板能啓動) bootmgr.efi 從WindowsNT6安裝鏡像中獲取(使uefi主板能啓動) boot 新建目錄 boot.sdi 從WindowsNT6安裝鏡像中獲取 winpe.wim 從第三方獲取 (本質上就是windowsNT6安裝鏡像中install.win的精簡) BCD 從WindowsNT6安裝鏡像中獲取並做修改:設備文件由\sources\install.wim改成\boot\winpe.wim (2)BCD啓動WIM:打開BCD增長一項並指定boot.sdi和winpe.wim路徑便可 (3)BCD啓動ISO:不支持 (4)grub4dos啓動WIM:本質上就是bootmgrbootmgrBCD,因此須要在硬盤上創建與WinPE.ISO相應的目錄結構 (5)grub4dos啓動ISO title winpe.iso map --mem /hitsz/iso/winpe.iso (hd32) map --e820cycles=0 ###解決藍屏問題 map --hook chainloader (hd32) //grub4dos不支持uefi啓動,聽說開發團隊也不打算支持,因此拋棄grub4dos而轉向grub2 (6)grub2啓動WIM:uefi模式下試驗未成功,bios模式下未實驗 (7)grub2啓動ISO:uefi模式下試驗未成功,bios模式下未實驗
5.UEFI/BIOS混合啓動盤製做 (0)關於BIOS啓動盤製做:用grub4dos做爲主幹(即用grub4dos的引導代碼做爲硬盤的MBR)引導相關操做系統,詳細製做流程略。 (1) BIOSUEFI的轉換:不論bios硬盤如何分區及有多少個分區 MBR(001~446):被置0 DPT1(447~462):被修改成恆定值且分類類型被置爲0xEE 0x00, 0x00, 0x02, 0x00,0xEE,0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, DPT2(463~478):被置0 DPT3(479~494):被置0 DPT4(495~410):被置0 END(411~412):不變。 (2)UEFIBIOS的轉換:不論uefi硬盤如何分區及有多少個分區 MBR(001~446):被修改成某系統的引導代碼 DPT1(447~462):被修改成第一分區的信息數據,若無第一分區則置爲0 DPT2(463~478):被修改成第二分區的信息數據,若無第二分區則置爲0 DPT3(479~494):被修改成第三分區的信息數據,若無第三分區則置爲0 DPT4(495~410):被修改成第四分區的信息數據,若無第四分區則置爲0 END(411~412):不變。uefi模式的第五及以後的分區在bios將不能被識別,或某些分區軟件直接提示不能轉換爲bios硬盤。 (3)
6.經常使用命令 (1)UEFI命令 exit:退出uefishell(將執行下一uefi啓動項) fsX:進入指定分區 ls [dir]:列舉指定目錄下的全部文件及目錄 cd dir:進行指定目錄 path.efi:啓動指定efi文件 (2)Grub2命令 halt:關機 reboot:重啓 ls:列舉全部分區 ls (hdX,Y):顯示分區類型 ls (hdX,Y)/dir:列舉指定目錄下的全部文件及目錄
set [var=value]:設置指定變量(包括環境變量和自定義變量)的值或顯示全部變量(包括環境變量和自定義變量)的值 unset var:刪除指定變量(包括環境變量和自定義變量) echo $var:顯示指定變量的值,pager=1表示逐頁交互顯示,root表示當前全部分區,prefix表示grub.cfg全部目錄
timeout:倒計時 search --file filepath --set=root:在全部分區查找指定文件並將第一次找到的該文件所在分區設爲根分區 loopback loopX isopath:將指定鏡像文件掛載到loopX insmod module:加載指定grub模塊,如fat, ntfs, memdisk, ntldr, linux16, initrd16 chainloader filepath:鏈式加載指定文件 chainloader +1表示加載當前分區引導記錄 chainloader (hdX,Y)+1表示加載指定分區引導記錄 chainloader (hdX)+1表示加載指定硬盤主引導記錄 chainloader efifilepath表示加載指定的efi文件 boot:執行引導,在內核已經加載或chainloader後執行
configfile filepath:加載配置文件 cat filepath:顯示指定文件的內容 cmp file1path file2path:比較兩個文件是否相同(若相同則無任何顯示) |