交叉編譯器是嵌入式開發的必要工具,但是由於目前大多數人使用64位ubuntu,在照着很多教程做的時候,就會失敗,失敗原因是64位ubuntu需要額外安裝32位的兼容包。以arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2這個壓縮文件為例子。執行解壓命令:sudo tar jxvf /work/arm-linux-gcc-4.3.2.tar.bz2
添加環境變量:為了在任意目錄和任意用戶可以使用arm-linux-gcc,需要增加環境變量,不要去修改 /etc/environment文件了,如果切換到root用戶或者使用sudo命令,還是找不到交叉編譯器的。建議修改 /etc/bash.bashrc 文件, 不管普通用戶還是root用戶,都會讀取本文件,都會找到交叉編譯器。
在該.bashrc文件中最后一行添加:export PATH=$PATH:/home/XXX/bin
在我的ubuntu上是:export PATH=$PATH:/home/yangguang/Architecture/gcc-3.4.5-glibc-2.3.6/bin
然后source /etc/bash.bashrc使環境變量生效。重新打開終端即可。
注意,其中的XXX是用戶剛才解壓縮的那個安裝包中arm-linux-gcc中bin文件的目錄,要全部復制出來。
Ubuntu16.04版本當中應該安裝執行:sudo apt-get install lib32ncurses5 lib32z1 這是32位的兼容庫,安裝之后,終端輸入 arm-linux-gcc -v會出現版本信息,就安裝成功了。
samba服務器
顯然,嵌入式開發需要頻繁交互文件在linux和windows上,傳統的方式通過FileZilla_3.22.1_win64-setup這個工具登錄,但是,要上傳要更新要刷新什么的,還是太麻煩。
-
安裝samba;輸入命令apt-get install samba
按提示輸入y,直到完成
-
安裝完成后,備份samba配置文件,輸入以下命令
cp /etc/samba/smb.conf /etc/samba/smb.conf.bk
備注:如果出現問題請把命令中smb.conf 與 smb.conf.bk 名字交換,即可恢復!備份是個好習慣。
- 打開配置文件 vim /etc/samba/smb.conf
在最下方(快捷鍵大寫G調到最后)輸入:
[share]
comment = Shared Folder require password
path = /home/share
public = yes
writable = yes
valid users = yangguang
create mask = 0777
directory mask = 0777
force user = nobody
force group = nogroup
available = yes
browseable = yes
之后重啟服務命令: service smbd restart && service nmbd restart輸入兩次密碼即可
把已有的賬戶添加到samba里並設置新密碼,我的賬戶是“yangguang”,輸入命令:sudo smbpasswd -a yangguang
在虛擬機中創建目錄share 權限777,位於/home/share 這個就是我們要和windows交互的linux文件夾,為了演示,我們創建一個hello_samba_t文件,看我們在windows中能否訪問到。
查看虛擬機ip:
為了不必要的麻煩,我們把虛擬機的防火牆關閉,查看防火牆狀態:
(
開啟/關閉防火牆
sudo ufw enable|disable
)
在windows中按下win+r:回車之后
注意格式:\\ 虛擬機ip地址\文件名
輸入我們添加的samba用戶,這里我是yangguang和設置samba用戶時設置的密碼:
點擊確定:
成功在windows上訪問到了share目錄,我們試試在windows上添加或者拖入文件到這個目錄再在linux上查看。
在linux上ls一下:
OK,恭喜你,成功完成兩個系統的交互。
Best practice:
虛擬機ip會經常變動,這樣每次windows登錄都需要更改ip,很麻煩,有沒有什么辦法可以設置確定ip的呢?答案是有的。