Deepin下的開發環境配置


寫在前面:

    又是一個學期的期末了,總結了一下這個學期學的東西,我吃驚的發現,我竟然還在用老師給我們的RedHat5做開發環境。這怎么能忍,於是我試着自己搭建一個開發環境。

    在搭建的過程中我遇到了很多問題,現在我就把這個搭建的過程以及其中遇到的問題分享出來,一方面是希望能幫到其他遇到相同問題的人,另外也希望別人可以指出我在其中操作出錯的地方。




操作環境

  1. VMware Workstation 12.1.0
  2. VMware下的Deepin系統

需要搭建的環境

  1. 用於Linux虛擬機與Windows物理機之間通訊和文件傳輸的SSH服務
  2. Linux下用於串口通訊以及遠程通信的SecureCRT軟件
  3. 用於編譯開發板(S3C2440)的交叉編譯工具arm-linux-gcc
  4. 編譯用於開發設備驅動的內核文件
  5. Linux下的QT5




一、搭建SSH服務

    盡管VMware軟件已經具備了,共享文件夾以及直接拖放傳輸文件的功能,但我相信很多人還是喜歡通過物理機上的SecureCRT軟件以及WinSCP,或者相類似的軟件來遠程管理你虛擬機里的文件。

    原本我是打算直接在Deepin系統里搭建好環境,然后安裝好所有需要的工具就不再用Windows下的軟件了。但想了想,感覺搭建一個SSH服務也用不了多少時間,就當是留作備用把,把SSH服務也順帶搭建了。

    注意:下面的操作需要連接網絡



成功操作步驟

1.切換為Root用戶

$ sudo su

2.更新apt-get

# apt-get update

3.安裝登陸服務端

# apt-get install openssh-server

4.重啟SSH服務端

# service ssh start



操作失誤時遇到的錯誤

1.在執行上面第三步時apt-get未更新

  • 錯誤操作:
$ sudo apt-get install openssh-server
  • 錯誤提示:
sudo apt-get install opensshserver正在讀取軟件包列表...

完成正在分析軟件包的依賴關系樹正在讀取狀態信息...

完成現在沒有可用的軟件包 openssh-server,

但是他被其他的軟件包引用了這可能意味着這個缺失的軟件包可能已被廢棄,或者只能在其他發布源中找到

E:軟件包 openssh-server 還沒有可供安裝的候選者
  • 解決辦法:

    分析原因是我們的apt-get沒有更新,當然如果你的是最新的系統不用更新也行

$ sudo apt-get update

2.在執行上面第二步時未切換至Root用戶,或者只使用sudo申請權限

  • 錯誤操作:
$ sudo apt-get update
  • 錯誤提示:
E: 無法獲得鎖 /var/lib/apt/lists/lock - open (11: 資源暫時不可用)
E: 無法對目錄 /var/lib/apt/lists/ 加鎖

  原因:權限不夠,導致出錯

  • 解決辦法:
$ sudo su
# apt-get update

  或者(此方法筆者未嘗試)

$sudo rm /var/lib/apt/lists/lock

3.SSH相關的介紹以及可能會用到的查詢命令

  • SSH分客戶端 openssh-client 和 openssh-server
  • 在Linux下如果你只是想登陸別的機器的SSH只需要安裝openssh-client,如果要使本機開放SSH服務就需要安裝openssh-server。
  • Deepin(Deepin基於Ubuntu)有默認安裝openssh-client,如果沒有則可以通過下面的指令來安裝
$ sudo su
# apt-get install openssh-client
  • 確認sshserver是否啟動,指令如下。如果看到sshd,那說明ssh-server已經啟動了。
$ ps -e | grep ssh
  • 查看系統監聽的服務
$ netstat -ln
  • 查看系統當前運行的所有進程
$ ps auxw
  • SSH啟動、停止與重啟
$ sudo /etc/init.d/ssh start
$ sudo /etc/init.d/ssh stop
$ sudo /etc/init.d/ssh restart

 或者

$ sudo service sshd start
$ sudo service sshd stop
$ sudo service sshd restart
  • 編輯SSH服務配置文件
    如果要修改端口,把 #Port 22 后面默認的22端口改成別的端口即可。
    (注意前面的注釋符號,#號要去掉)
$ sudo vi /etc/ssh/sshd.config
  • 查看當前SSH端口(如果修改過)
$ grep Port /etc/ssh/sshd.config




二、安裝交叉編譯工具arm-linux-gcc

    由於Deepin和Ubuntu一樣,默認是禁用了Root用戶的。所以在編譯的時候,我們需要通過sudu su命令來獲取Root權限進行操作。那么在配置過程中,我們需要注意的一點就是把普通用戶的環境變量一起帶過去就行了。

    這里使用的是開發板所提供的壓縮包,版本是4.4.3。下面來看看怎么在Deepin下安裝交叉編譯器。



成功操作步驟

1.將壓縮包進行解壓

  對arm-linux-gcc-4.4.3.tar.gz壓縮包進行解壓,解壓到/目錄下(根目錄)。
  在根目錄下會出現一個opt目錄,里面存放的是arm-linux-gcc-4.4.3.tar.gz解壓好的內容。

$ sudo su
# tar -xvzf arm-linux-gcc-4.4.3.tar.gz -C /

2.配置環境變量

  這里我們需要配置兩個地方的環境變量。一個是當前我們登錄的用戶的環境變量,另一個則是當我們用命令sudo su切換為Root用戶時的環境變量。

  當然,如果你每次在用命令sudo su都記得在后面加上-符號,把環境變量也一同切換過來也是可以的,完整命令為sudo su -。但說句實話,我不確定我每次都能記得住這么做,下面是配置方法。


  • 首先,我們得得到剛剛我們解壓縮的包所在的路徑,這里我打開剛剛解壓縮的文件夾里的bin文件夾,通過pwd命令得到了完整的路徑。
# pwd
/opt/FriendlyARM/toolschain/4.4.3/bin  
  • 然后,我們用打開 當前用戶 環境變量的配置文件進行編輯
# vim /etc/profile

在最后加上一行 export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin

  • 同樣的,我們用打開 通過sudo su命令切換的Root用戶 的環境變量配置文件進行編輯
# vim ~/.bashrc

在最后加上一行 export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin


注意,上面 export PATH=$PATH: 后的路徑一定要與 pwd命令得到的路徑 保持一致。
不然系統要提示找不到交叉編譯器!


3.使用命令讓剛剛配置的文件生效

# source /etc/profile

4.使用命令查看交叉編譯器安裝成功沒有

$ arm-linux-gcc -v
Using built-in specs.  
Target: arm-none-linux-gnueabi  
	......
	......
	......
Thread model: posix  
gcc version 4.4.3 (ctng-1.6.1)
$ sudo su
# arm-linux-gcc -v
Using built-in specs.  
Target: arm-none-linux-gnueabi  
	......
	......
	......
Thread model: posix  
gcc version 4.4.3 (ctng-1.6.1)

  如果能夠正確的顯示交叉編譯器的版本號,如上面的gcc version 4.4.3 (ctng-1.6.1),說明交叉編譯器就已經安裝完成了!



操作失誤時遇到的錯誤

1.在編譯驅動文件的時候提示說找不到編譯工具

  • 錯誤原因
    在編譯文件的時候經常提示說找不到編譯工具,每次都需要手動添加臨時的環境變量,關閉shell以后就不能使用。

  臨時環境變量添加方法:

export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin

  • 解決辦法:

實測發現:
  sudo su之后,/etc/profile~/.profile的變量都不會被導入
  但是~/.bashrc會導入

所以:
  把環境變量寫到 ~/.bashrc

或者:
  用sudo su -命令,讓普通用戶變成root后還能繼承之前的環境變量




三、編譯用於開發設備驅動的內核文件

    在開發板上的設備驅動開發需要先編譯內核文件,這里我就簡單說明一下我編譯內核文件的過程,以及遇到的相關錯誤。



成功操作步驟

1.解壓內核文件

  將內核文件linux-2.6.32.2-mini2440-20140103.tar.gz文件移動或者復制到路徑/opt/FriendlyARM/mini2440里,如果發現有一些文件夾沒有,則請自行手動創建同名的文件夾。
  打開終端,執行以下命令:

$ sudo su
# cd /opt/FriendlyARM/mini2440
# tar -xzvf linux-2.6.32.2-mini2440-20140103.tar.gz

  這樣我們就得到了原始的Linux-2.6.32.2 源代碼

2.修改Makefile文件,指定交叉編譯變量
  (注:筆者打開文件后發現這里已經是修改過的了,所以我就直接跳過這一步了)

  首先,我們要使得Linux-2.6.32.2 的缺省目標平台成為ARM 的平台。
  因此,修改總目錄下的Makefile,第184行附近

# vim /opt/FriendlyARM/mini2440/linux-2.6.32.2/Makefile

原:

export KBUILD_BUILDHOST := $(SUBARCH)
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?=

改為:

export KBUILD_BUILDHOST := $(SUBARCH)
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-

  接下來,要測試一下linux 的編譯是否能正常通過。

執行:

# make s3c2410_defconfig
# make

3.編譯測試

  因為筆者發現內核目錄下已經有了官方的配置文件,所以筆者就用Linux官方自帶的mini2440配置文件進行配置。配置文件路徑如下:/opt/FriendlyARM/mini2440/linux-2.6.32.2/arch/arm/configs/mini2440_defconfig
  因此,在/opt/FriendlyARM/mini2440/linux-2.6.32.2/目錄下執行

# make mini2440_defconfig
# make zImage

至此,內核的編譯工作已經完成。



操作失誤時遇到的錯誤

1.筆者在編譯內核時候遇到的錯誤大部分都是交叉編譯工具安裝不正確,或者沒有找到交叉編譯工具的問題。因此,筆者在這里有幾點建議:

 1.在執行內核操作和執行編譯驅動程序時候都要用`sudo su`命令切換至Root用戶進行操作。  
 
 2.如果遇到未找到交叉編譯工具arm-linux-gcc的問題,請先嘗試使用命令`arm-linux-gcc -v`確認當前用戶是否能找到交叉編譯工具,確認環境變量是否配置好。

2.在編譯嵌入式Linux內核時出現了錯誤提示

Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373.

  解決辦法:

# vim /opt/FriendlyARM/mini2440/linux-2.6.32.2/kernel/timeconst.pl

  把第373行的

if (!defined(@val)) {

  改為

if (!@val) {

  即可




四、安裝Linux下的SecureCRT軟件

    SecureCRT是很實用的軟件,我一直想給Linux下裝一個,那樣我就不用在頻繁的跑去Win環境那邊操作了。



安裝步驟

1.下載SecureCRT安裝包以及破解腳本

  • 百度網盤SecureCRT 7.3.3 下載 :http://pan.baidu.com/s/1ntqq6Op
  • 在Linux下輸入下面的指令,即可下載破解腳本至你當前的位置。
$ wget http://download.boll.me/securecrt_linux_crack.pl

2.安裝與破解

  • 安裝SecureCRT
$ sudo dpkg -i scrt-7.3.3-779.ubuntu13-64.x86_64.deb
  • 破解

  查看SecureCRT的安裝路徑

$ whereis SecureCRT
SecureCRT: /usr/bin/SecureCRT

  運行perl腳本,得到相關密鑰以及破解信息

$ sudo perl securecrt_linux_crack.pl /usr/bin/SecureCRT

License:
 
    Name:               ...
    Company:            ...
    Serial Number:      ...
    License Key:        ...
    Issue Date:         ...

  打開SecureCRT軟件,輸入這些信息即可。




五、安裝Linux下的QT5

    QT是我在Linux下比較熟悉的開發環境。



安裝方法

1.方法1

  在命令行直接執行下面的命令即可自動安裝。
  注意使用這個方法安裝需要連接網絡,如果中途遇到需要確認的地方,輸入y回車即可。

$ sudo apt-get install qt5-default qt5-qmake g++ qtcreator

2.方法2

  第二種方法就是到官方網站下載安裝包然后進行安裝

  選擇適合自己操作系統的版本,下載Offine Installers離線包,下載之后得到一個.run文件,我們要讓它獲得可執行的權限,如果你的.run文件是在桌面上放的,那么就在桌面上點擊右鍵“在終端中打開”,輸入命令:

$ sudo chmod a+x qt-opensource-linux-x64-5.4.0.run

  qt-opensource-linux-x64-5.4.0.run是你剛才下載得到的run文件

  然后像windows那樣點下一步下一步就行了。





參考資料

http://blog.sina.com.cn/s/blog_9a6ff27801015bzz.html
http://blog.csdn.net/q33275971/article/details/39429101
http://www.linuxidc.com/Linux/2015-01/112033.htm
http://www.cnblogs.com/xiazh/archive/2010/08/13/1798844.html
http://blog.csdn.net/you23hai45/article/details/42321639
http://www.2cto.com/os/201207/140023.html
http://blog.csdn.net/doumeile1/article/details/53993337
http://www.linuxdiyf.com/linux/29053.html
http://www.cnblogs.com/exmyth/p/4069763.html
http://blog.csdn.net/tigerjibo/article/details/6933872
http://www.linuxdiyf.com/linux/24289.html
http://blog.csdn.net/thinkerleo1997/article/details/52412042
http://www.epooll.com/archives/774/
http://www.th7.cn/system/lin/201406/61276.shtml
http://www.cnblogs.com/findumars/p/6642425.html
http://blog.csdn.net/Rekols/article/details/43603493
http://blog.csdn.net/Rekols/article/details/43603493


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM