2013年6月5日 星期三

pidora 遠端桌面與編輯環境設定

from: Pidora_18_Firstboot
不知道大家開始使用了 pidora 了沒有 ?

我想,關於如何安裝與指令介紹這些東西都可以在網路上找到一大堆資料,此篇網頁主要是與下面三個部落格文章做連結,說明如何使用 pidora 來設定以下的編輯環境


當然不可或缺的,為了達成上面的設定,一些簡單的環境設定也會做一些介紹,相關的 Topic 如下:
  • firstboot - 第一次開機設定,再來一次
  • 新增使用者
  • sudo 權限設定

完成上面三個 Topic 之後,再進行編輯環境的設定
  • MobaXterm 啟動遠端桌面
  • VNC Server 的設定與遠端桌面啟動
  • Sublime Text 2

編輯環境設定之後,若要在 pidora 進行開發,需要安裝開發工具和套件
  • 安裝開發工具與套件,編譯與執行 Raspberry Pi Fedora Remix Multimedia Demo Programs 



firstboot - 第一次開機設定,再來一次

這邊是建議各位,如果可以的話開機時預設進入畫面要選擇 Text Mode,當需要進入到 Graphic Mode 時再輸入指令 ( startxfce4 ) 就好

但是,如果不小心弄錯了設定怎麼辦 ? 想再重新來一次嗎 ?

請跳到網頁:重啟 pidora 第一次開機 ( firstboot ) 的設定畫面


新增使用者

在 pidora 第一次開機的設定過程中,有一個過程是新增一個平常使用的帳戶,如果當時後設定不是使用 pi 作為使用者的話,下面設定時請自行修改為當初所設定的帳戶名稱,或是直接新增一個。

首先,確認是使用 root 使用者登入。如果不是,輸入下面的指令切換為 root,再輸入密碼登入
[pi@raspi ~]$ su - root
Password:

登入之後,我們要新增一個使用者 pi ( 密碼自行輸入 ),登入者的描述文字為 pidora
[root@raspi ~]# useradd -c "pidora" pi
[root@raspi ~]# passwd pi

完成 pi 的創建之後,接下來就是設定使用 sudo 的權限


sudo 權限設定

在 wheezy-raspbian 使用管理者權限的指令時,只要在前面加上 sudo 就可以執行單行管理者權限的指令。但是在 pidora ,一旦使用到管理者權限的東西時,就會要求要輸入管理者密碼或是要切換成管理者,使用 wheezy-raspbian 久了難免覺得很不方便 !

但若是直接使用 root 進入 pidora 又會有安全性的問題。尤其是當我們瀏覽網頁的時候,如果遠端站點利用瀏覽器中的安全漏洞對我們進行攻擊,那所取到的權限就是管理者的權限,就可以對系統為所欲為,這是我們所不欲樂見的!

另外就是需要使用 su 切換為管理者,不但要輸入密碼,還要在使用完畢後切換 (exit 或是 "Ctrl + D" ( done )) 回來,就是麻煩兩字可以形容 !

因此必須要能夠和在 wheezy-raspbian 一樣,只要需要使用到管理者權限的指令時,只要在前面加入 sudo 就可以達到相同功能就是我們的目的。

要讓 sudo 能夠讓 pi 使用者使用在單一指令輸入,需要將 pi 加入到 wheel 群組,並且修改 sudo 設定檔。sudo 設定檔必須要在管理者權限下才可以修改,輸入下面指令
[pi@raspi ~]$ su - root
Password:
[root@raspi ~]# visudo

visudo 會叫出 sudo 組態檔,請使用 vi 指令移動畫面 ( h, j , k ,l ) 到最下面的地方,移除 ( d ) 掉 %wheel 前面的  # 符號
sudo 組態檔
存檔 ( ESC --> :wq ) 之後離開。

vi 操作指令請參照 Vi-vim-cheat-sheet

接著將 pi 加入到 wheel 群組,並且重開機生效
[root@raspi ~]# usermod -aG wheel pi
[root@raspi ~]# sync;sync;sudo init 6

重開機之後使用 pi 登入 ( 或是切換使用者 su - pi ),輸入 sudo visudo 做確認,能夠開啟 sudo 設定檔就表示設定成功 !



MobaXterm 啟動遠端桌面

在 wheezy-raspbian 作業系統下,MobaXterm SSH 連線之後,開啟遠端桌面是下 lxsession & 指令,但是在 pidora 是行不通的 !

只要直接在 MobaXterm SSH 連線後輸入
[pi@raspi ~]$ startxfce4 &

就會開啟遠端桌面,共會開啟三個視窗,要關閉這三個視窗只要關掉 SSH 視窗即可 !
MobaXterm 啟動遠端桌面

VNC Server 的設定與遠端桌面啟動

VNC 連線就不像 MobaXterm 那麼容易,即便安裝了 VNC Server 在 pidora,也無法連線;解決了連線的問題後,一開啟只會黑黑的一片,真的是 ~!@#$%^ !

首先,確認為管理者帳號,並輸入下面指令安裝 VNC-Server。完成安裝之後,設定 VNC Server 的密碼
#### 安裝 VNC Server
[root@raspi ~]# yum -y install tightvnc-server
... << 中間省略 >> ...
Complete!
#### 設定 VNC 連線的密碼
[root@raspi ~]$ vncpasswd
Password:
Verify:
#### 開啟一個 VNC Server 連線
[root@raspi ~]$ vncserver :1 -geometry 1200x700
xauth:  file /home/pi/.Xauthority does not exist

New 'raspi.local:1 (pi)' desktop is raspi.local:1

Creating default startup script /home/pi/.vnc/xstartup
Starting applications specified in /home/pi/.vnc/xstartup
Log file is /home/pi/.vnc/raspi.local:1.log

接著開啟 RealVNC 或是 UltraVNC,連線到 pidora;如果可以連線,就會馬上出現密碼輸入視窗,不然的話就是被卡住了 !

我查了之後發現是防火牆擋住了,現在使用 MobaXterm SSH 連線到 pidora,然後輸入下面指令開啟遠端桌面
[root@raspi ~]$ startxfce4 &

防火牆的設定必須要有管理者權限才可以做設定,因此請再次確認使用的帳戶是 root,或是使用 sudo startxfce4 &

如下畫面開啟防火牆設定 ( Applications Menu / Settings / Firewall ),並且確認 vnc server 被選取,而且在 Current View: 裡面的兩個選項都要選定 vnc server
修改 pidora 防火牆設定
Current View 中顯示防火牆的設定。"Runtime Configurarion" 表示暫時性的設定,一般用在系統維護時,若按下上方的 "Reload Firewall" 就會恢復防火牆的原設定值;"Persistent Configuration" 表示永久性的設定,新設定值在重開機之後會仍會維持。

上面的防火牆設定可依實際的需要自行再做設定!

設定好防火牆之後,問題又來了 ! 一開啟 VNC 連線,可以開啟畫面,但是出現錯誤,而且整個畫面一個黑 !!!

網路上有一些設定的方法,但是嘗試過後的結果都沒用 ! 後來才知道是桌面系統的問題,因為 gnome 桌面我沒法用 VNC Viewer 連上並產生了一堆錯誤,因此必須切換桌面系統為 XFce 才解決了問題,而且只要兩行指令 ^_^ !!!

輸入下面指令安裝桌面切換軟體
##### 安裝桌面切換軟體
[root@raspi ~]# yum install switchdesk switchdesk-gui
Loaded plugins: langpacks, presto, refresh-packagekit
Resolving Dependencies
--> Running transaction check
---> Package switchdesk.noarch 0:4.0.10-3.fc18 will be installed
---> Package switchdesk-gui.noarch 0:4.0.10-3.fc18 will be installed
--> Finished Dependency Resolution

... << 中間省略 >> ...

Complete!
##### 切換桌面系統為 XFce
[root@raspi ~]# switchdesk xfce
##### 開啟 VNC server
[root@raspi ~]# vncserver :1 -geometry 1200x700

請注意到上面一樣還是使用管理者帳號,否則請在指令前方加上 sudo

設定好了之後,就可以使用指令開啟 VNC 連線 ( VNC 指令的使用請參考網頁 : 遠端桌面 - VNC 的說明 )。提醒您!所開啟的 VNC 連線就是依照使用者權限而開啟,沒有權限的使用者就無法與之做連線,而且有些操作與設定畫面也是無法執行的,使用上要注意所對應的 port 號碼是哪一個使用者所開啟。

當使用 VNC Viewer 連線之後可以再次確認 pidora 的桌面系統
pidora - Desktop Switching Tool

因此,在 pidora-18-r1c 安裝 tightvnc ,可先將桌面系統切換為 XFce 再開啟 VNC Server ,就可使用 VNC Viewer 連線。


Sublime Text 2

Sublime Text 2 的設定方式,可直接使用網頁 "在 Windows 設置 Raspberry Pi (樹莓派) 遠端編輯環境" 裡的說明方式,設並步驟與方法都與在 wheezy-raspbian 一樣,不需其他額外的動作。



 安裝開發工具與套件,編譯與執行 Raspberry Pi Fedora Remix Multimedia Demo Programs 

pidora 安裝的時候,會安裝多媒體的展示程式,這是由 Raspberry Pi Foundation 提供的,位置在 /usr/share/raspberrypi-vc-demo-source/,先將目錄下的 hello-pi/ 複製到 $HOME/code
##### 複製原始碼
[pi@raspi ~]$ cd
[pi@raspi ~]$ mkdir codes
[pi@raspi ~]$ cd codes
[pi@raspi codes]$ sudo cp -R /usr/share/raspberrypi-vc-demo-source/hello_pi/ ~/codes
[pi@raspi codes]$ ls -l
total 4
drwxr-xr-x 15 root root 4096 Jun  5 10:57 hello_pi
[pi@raspi codes]$ cd hello_pi
[pi@raspi hello_pi]$ ls -l
total 64
drwxr-xr-x 2 root root 4096 Jun  5 10:57 hello_audio
drwxr-xr-x 2 root root 4096 Jun  5 10:57 hello_dispmanx
drwxr-xr-x 2 root root 4096 Jun  5 10:57 hello_encode
drwxr-xr-x 2 root root 4096 Jun  5 10:57 hello_font
drwxr-xr-x 2 root root 4096 Jun  5 10:57 hello_jpeg
drwxr-xr-x 2 root root 4096 Jun  5 10:57 hello_teapot
drwxr-xr-x 2 root root 4096 Jun  5 10:57 hello_tiger
drwxr-xr-x 2 root root 4096 Jun  5 10:57 hello_triangle
drwxr-xr-x 2 root root 4096 Jun  5 10:57 hello_triangle2
drwxr-xr-x 2 root root 4096 Jun  5 10:57 hello_video
drwxr-xr-x 2 root root 4096 Jun  5 10:57 hello_videocube
drwxr-xr-x 2 root root 4096 Jun  5 10:57 hello_world
drwxr-xr-x 4 root root 4096 Jun  5 10:57 libs
-rw-r--r-- 1 root root 1125 Jun  5 10:57 Makefile.include
-rw-r--r-- 1 root root  257 Jun  5 10:57 README
-rw-r--r-- 1 root root  624 Jun  5 10:57 rebuild.sh

安裝之後會有一些原始碼可供測試與參考,例如:
  • hello_world - the classic test program, which prints "Hello, World!" on the screen
  • hello_video - a simple H.264 full-screen video player
  • hello_triangle - an OpenGL-ES demo program which displays a rolling cube with textures on each side
  • hello_audio - an audio demo that plays a sine wave with a slow sine wave amplitude modulation
  • ...
編譯這些程式需要開發工具與函式庫,需要額外 600 M 的安裝空,建議您如果許可的話就全部安裝
#### 安裝 development tools and development libraries
[pi@raspi hello_pi]$ sudo yum groupinstall "Development Tools""Development Libraries"
Loaded plugins: langpacks, presto, refresh-packagekit
Resolving Dependencies
--> Running transaction check
---> Package autoconf.noarch 0:2.69-3.fc18 will be installed

.... << 中間省略 >> ....

Complete!
[pi@raspi hello_pi]$

現在可以測試是否可以正常編譯程式。切換到展示程式的目錄下,輸入 sudo make 就可以編譯程式,現在切換到 hello_world 目錄下進行編譯與執行
#### 切換到 hello_world 目錄下
[pi@raspi hello_pi]$ cd hello_world/
[pi@raspi hello_world]$ ls -l
total 8
-rw-r--r-- 1 root root   63 Jun  5 10:57 Makefile
-rw-r--r-- 1 root root 1638 Jun  5 10:57 world.c
##### 編譯 world.c
[pi@raspi hello_world]$ sudo make
cc -DSTANDALONE -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -DTARGET_POSIX -D_LINUX -fPIC -DPIC -D_REENTRANT -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -U_FORTIFY_SOURCE -Wall -g -DHAVE_LIBOPENMAX=2 -DOMX -DOMX_SKIP64BIT -ftree-vectorize -pipe -DUSE_EXTERNAL_OMX -DHAVE_LIBBCM_HOST -DUSE_EXTERNAL_LIBBCM_HOST -DUSE_VCHIQ_ARM -Wno-psabi -I/opt/vc/include/ -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux -I./ -I../libs/ilclient -I../libs/vgfont -g -c world.c -o world.o -Wno-deprecated-declarations
cc -o hello_world.bin -Wl,--whole-archive world.o -L/opt/vc/lib/ -lGLESv2 -lEGL -lopenmaxil -lbcm_host -lvcos -lvchiq_arm -lpthread -lrt -L../libs/ilclient -L../libs/vgfont -Wl,--no-whole-archive -rdynamic
rm world.o
#### 編譯之後的執行檔是 hello_world.bin
[pi@raspi hello_world]$ ls -l
total 20
-rwxr-xr-x 1 root root 8235 Jun  5 11:17 hello_world.bin
-rw-r--r-- 1 root root   63 Jun  5 10:57 Makefile
-rw-r--r-- 1 root root 1638 Jun  5 10:57 world.c
[pi@raspi hello_world]$ sudo ./hello_world.bin
Hello world!
[pi@raspi hello_world]$

其餘剩下的部分就給各位自己玩吧 !!!

如果 SublimeText 2 還沒設定或是已經設定好的,可以試試連線到 /home/codes 下,將這些展示程式抓到 PC 來
SublimeText2 與 pidora 
SublimeText2 的設定方式就請參考上面所提供的連結網址中的說明,一次開啟多個檔案對照時,真的非常好用,強烈建議一定要學會 !!!

沒有留言:

張貼留言