title: Linux 嵌入式使用
tags: 新建,模板,小書匠
grammar_cjkRuby: truepython
Copyright (C) @2018 Widic Filename: File-function: Cre_ID: @ Widic 2018-1-23 Mod_ID:
insmod led.ko //安裝模塊 rmmod led.ko //卸載模塊
CTRL + Clinux
setenv saveenv
11.運行Matrix 用戶界面程序
web
/etc/init.d/matrix-gui-2.0 stop //Matrix Qt 用戶界面程序啓動 /etc/init.d/matrix-gui-2.0 start // // 若是但願上電不要自動運行Matrix用戶界面程序 mv /etc/rc5.5.d/s97matrix-gui-2.0 /etc/rc5.d/k97matrix-gui-2.0 etc/rc5.d"目錄下全部以 S 開頭的腳本都會上電自動運行,更名爲 K 開頭後就不會上 電自動運行了。可在啓動後執行前面的命令手動啓動或關閉 Matrix 用戶界面程序
time 有計時做用, dd 用於複製,從 if (input file)讀出,寫到 of (output file)。if=/dev/zero 不產生 IO,便可以不斷輸出數據,所以能夠用來測試純寫速度。 bs 是每次寫塊的大小, count 是讀寫塊的數量。 執行如下命令測試 SD 卡寫速度: Target# time dd if=/dev/zero of=/media/mmcblk0p2/test bs=1024k count=200 這裏一共寫 200MB 測試數據到 SD 卡的 test 文件,寫入速度 7MB/s。 備註: 不一樣的 SD 卡以及不一樣大小的測試文件,測試結果會有所差異。
18. 遠程訪問Matrix 用戶界面測試 19. WEB 文件系統
功能:
1. 上傳文件
2. 下載文件
3. 刪除文件
4. 顯示磁盤使用情況
操做步驟:
(1) 拷貝"/demo/app/file_storage"文件夾到 SD 卡;
(2) 插入網線, 啓動開發板, 使用 ifconfig 命令查看開發板的 IP 地址;
(3) 安裝 python 相關模塊;
Target# opkg update
Target# opkg install python-distutils
Target# opkg install --force-overwrite python-email
Target# opkg install python-pprint
(4) 手動添加 python 相關模塊;
進入 file_storage 目錄;ubuntu
Target# cd /media/mmcblk0p1/file_storage/ Target# cp libs/* /usr/lib/python2.7/ (5) 安裝 web.py 在 file_storage 目錄,執行如下命令; Target# cd webpy Target# python setup.py install (6) 運行 file_storage.py 在 file_storage 目錄,執行如下命令; Target# cd file_storage Target# python file_storage.py 9090 (7) 打開 PC 端瀏覽器,輸入網址,如 192.168.1.11:9090,如圖所示:
1. 安裝交叉編譯鏈 2. 修改 /etc/profile 文件,添加路徑 3. 使能交叉編譯工具鏈: source /etc/profile 4. 查看版本號: arm-none-linux-gnueabi-gcc -v 5.
安裝內核源碼,文件系統源碼和工具vim
souceSinght 使用windows
SD卡啓動:是開發板系統啓動方式的一種,SD系統啓動卡公有FAT3二、EXT3兩個格式分區,還包含RAW格式的無名分區。其中 FAT32 格式分區在 Windows 系統下可見, EXT3格式分區在 Windows 系統下不可見,兩分區在 Linux 系統下都可見。無名分區在 Windows和 Linux 操做系統下均不可見。無名分區存放 u-boot.ais, FAT32 格式分區存放內核文件uImage、系統啓動腳本等文件, EXT3 格式分區存放文件系統瀏覽器
SD系統啓動卡恢復爲普通SD卡安全
基於U-Boot 命令行燒寫U-boot、內核鏡像和文件系統到nandflsh。服務器
1 基於仿真器燒寫DSP程序到NANDFLAHS網絡
程序指針運行跳轉至DSP程序入口,運行DSP程序。
清理內核,編譯內核,配置內核。
說明系統驅動的結構
基本的程序開發
sudo apt-get install nfs-kernel-servel
sudo gedit /etc/exprots 問價後面添加: /home/widic/ *(rw,sync,no_root_squash)
umount /nfs/
7, 在u-boot中設置網絡環境變量:
開發板上電後,按任意鍵進入 U-Boot 命令行,輸入如下命令設置虛擬機 TFTP 服務器
的 IP 地址變量 serverip 和開發板的 IP 地址變量 ipaddr:
U-Boot > setenv serverip 192.168.0.5
U-Boot > setenv ipaddr 192.168.0.8
U-Boot > saveenv
執行如下命令測試網絡的連通性:
U-Boot > ping 192.168.0.5
若提示"host ... is alive"說明網絡暢通,
在U-boot中設置nfs網絡文件系統加載環境變量
務必保證虛擬機 nfs 服務器已經搭建好,在 U-Boot 中設置 nfs 網絡文件系統加載環境
變量:
U-Boot > setenv bootargs
root=/dev/nfsrwnfsroot=192.168.0.5:/home/tl/omapl138/rootfs
nfsaddrs=192.168.0.8:192.168.0.5:192.168.0.1:255.255.255.0
console=ttyS2,115200n8 mem=128M
U-Boot > printenv
U-Boot > saveenv
如下爲參數解釋:
root=/dev/nfsrw: 使用 nfs 起根文件系統,權限爲可讀可寫。
nfsroot=192.168.0.5:/home/tl/omapl138/rootfs: 掛載的是 IP 地址爲 192.168.0.5 的虛擬機
nfs 服務器/home/tl/omapl138/rootfs 目錄下的文件系統。
nfsaddrs=192.168.0.8:192.168.0.5:192.168.0.1:255.255.255.0: 設置 nfs 的網絡 IP 參數,格
式是 nfsaddrs=(開發板 IP:虛擬機 nfs 服務器 IP:同網段的網關:子網掩碼)。
測試 nfs 網絡文件系統
不用插 SD 卡,開發板上電,便可直接進入開發板系統根目錄,發現開發板文件系統
內核和虛擬機中/home/tl/omapl138/rootfs 目錄下的內容同樣,證實 nfs 起根文件系統成
功了。經過 tftp 下載內核和 nfs 起根文件系統,造成一個最流行,也是最便捷的一種調試
方法。如下爲兩端的截圖。
IO口說明
1.linux 對LED設備框架
(1)虛擬機 設置共享文件夾;
(2)網絡設置爲橋接方式;
默認狀況下,虛擬機安裝完成後與宿主機共享一個 IP 地址,沒有屬於本身的 IP,這裏首先須要設 置虛擬機的網絡聯繫方式爲橋接方式。
*保證Windows 和linux能夠ping通,ping不通的緣由有不少,緣由之一查看是否在一個網段裏,而後再查看是否關閉了防火牆。
進入系統後,屏幕不能全屏,也不能經過共享目錄以及經過拖曳方式在 Windows
和虛擬機 Ubuntn 系統之間傳輸文件,是由於尚未安裝 VMware Tool。點擊"VM->Install
VMware Tools"。
[enter description here][3]
系統會自動掛載 VMware Tools 安裝包, 按"Ctrl+Alt+T"會打開 console 控制檯,然
後將安裝包解壓到"/home/tl"目錄下。輸入部分命令或者文件名後,可使用鍵盤左邊的
Tab 補全鍵,連續點擊兩次後,系統會自動識別已有的文件名或者命令,自動補全或者
提示選擇,是一個比較方便的快捷鍵。
Host# cd /media/VMware\ Tools //此處務必使用 Tab 鍵補全,不能手動輸入"VMware\ Tools" Host# ls Host# tar zxvf VMwareTools-8.1.3-203739.tar.gz -C /home/tl 安裝 VMware Tools。 Host# cd Host# ls Host# cd vmware-tools-distrib/ Host# ls 安裝 VMware Tools 必須是在 root 權限下,可是 Ubuntu 默認不是不開啓 root 用戶的, 開啓命令以下: Host# sudo passwd root 輸入兩次密碼後就開啓了 root 用戶,務必記住 root 密碼,接着安裝 VMware Tools。 Host# sudo ./VMware-install.pl
[enter description here][4]
遇到詢問所有回車確認便可,等待安裝結束。
Linux 交叉編譯工具鏈是用來編譯內核、應用程序的, QT 圖形界面開發也須要用到。
咱們統一使用 TI 官網提供的"arm-none-linux- gnueabi-gcc-4.3.3"交叉編譯工具鏈。
( 1) 將光盤中交叉工具鏈源碼複製到共享目錄,源碼路徑在光盤中是:
tools/arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
而後解壓安裝工具鏈到根目錄或者其餘指定目錄。
Host# ls /mnt/hgfs/shareVM/
上命令可查看共享目錄下是否有交叉工具鏈源碼安裝包。接着運行如下命令來解壓安
裝交叉編譯工具鏈:
Host# cd
Host# tar jxvf
/mnt/hgfs/shareVM/arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C ./
大寫字母 C 後面有空格,是英文"Change"的縮寫,意思是改變解壓的目錄的意思。
執行命令後, "arm-none-linux- gnueabi-gcc"工具鏈將被安裝到"/home/tl/arm-2009q1"目錄,
解壓過程以下圖:
[enter description here][5]
( 2)打開"/etc/profile"配置文件,將交
下命令:
Host# sudo gedit /etc/profile
在 profile 文件最後添加如下語句:
export PATH=$PATH:/home/tl/arm-2009
以下圖, 按"Ctrl+S"保存後退出。
[enter description here][6]
( 3)使能交叉編譯工具鏈,輸入如下命令:
Host# source /etc/profile
重啓虛擬機後,輸入以下命令可查看版本號:
Host# arm-none-linux-gnueabi-gcc -v
能夠看到相似"gcc sversion 4.3.3"的版本號,說明交叉編譯工具鏈已經安裝成功。
[enter description here][7]
先建立安裝目錄"/home/tl/omapl138",以下圖,在命令行執行:
Host# mkdir -p /home/tl/omapl138
[enter description here][8]
( 1) 解壓安裝內核源碼
以 linux-3.3 內核爲例, 將光盤 Linux 目錄下的內核源碼 linux-3.3.tar.bz2 放到共享目
錄 shareVM 中, 在 Ubuntu 中執行如下命令安裝內核源碼:
Host# mkdir /home/tl/omapl138/linux-3.3
Host# tar jxvf /mnt/hgfs/shareVM/linux-3.3.tar.bz2 -C /home/tl/omapl138/linux-3.3
[enter description here][9]
各版本內核支持特性和維護信息見光盤"Linux/linux-feture-support.xls"文件
( 2) 解壓安裝文件系統源碼
將光盤 Linux 目錄下的文件系統源碼 rootfs.tar.bz2 放到共享目錄 shareVM 中, 而後執
行如下命令安裝文件系統源碼:
Host# mkdir -p /home/tl/omapl138/rootfs
Host# sudo tar jxvf /mnt/hgfs/shareVM/rootfs.tar.bz2 -C /home/tl/omapl138/rootfs
[enter description here][10]
文件支持特性和維護信息見光盤"Linux/rootfs 文件系統維護記錄.xlsx"文件
---
安裝源代碼和工具(1)建立安裝目錄:mkdir -p /home/tl/omapl138
(2)解壓安裝內核源碼
程序上電自動運行
在"/etc/rc5.d"目錄下全部以 S 開頭的腳本程序都會上電自動運行, 按照編號由小到
大和字母排序順序被執行的,例如 S97 開頭的腳本將比 S99 開頭的腳本先執行。 下面將
演示如何上電自動 helloworld 程序。
先將光盤"demo\app\helloworld\helloworld"文件拷貝到開發板文件系統任意路徑, 在
開發板上電後,使用如下命令建立並編輯文件"S99helloworld":
Target# vi /etc/rc5.d/S99helloworld
在 S99helloworld 文件中添加以下語句:
OMAPL138 DSP 和 ARM 基本聯合調試和開發方法
按照正常方法啓動 OMAP138 開發板, 保證 ARM 端已正常運行, 而後使用 CCS 按
DSP 開發步驟加載可執行文件和進行調試便可。
ARM 端可運行聯合調試程序, DSP 端聯合調試程序可按 DSP 開發步驟進行單步、
全速運行等操做, DSP 和 ARM 互相獨立,而且共享硬件資源,都可進行單獨硬件控制。
OMAPL138 的 DSP 端的具體開發步驟和開發例程請查閱創龍 TMS320C6748 用戶手冊。
更多聯合調試與開發方法請參考 DVSDK/MCSDK 雙核開發例程。
給予文件系統燒寫linux系統到nandflash
基於文件系統燒寫linux系統到nandflash
參照歷程基於文件系統燒寫linux系統到nandflash
利用仿真器燒寫bootloader必須使仿真器速率調成7MHZ比較慢耐心等待。
使用 gedit 工具新建 helloworld.c 文件,並編輯程序源代碼。
新建 helloworld.c 文件的
命令以下:
Host# gedit helloworld.c
其代碼以下:
#include<stdio.h> int main(void){ printf("Hello World!......www.tronlong.com\n"); }
在 helloworld.c 中輸入以上代碼,
和 Windows 下的文本編輯器同樣按"Ctrl+S"就能夠保存編輯的內容了,而後點擊左上
角的紅叉按鈕退出。
在開發板中 helloworld 運行程序
將 helloword 鏡像拷貝到開發板文件系統任意路徑下。開發板啓動後, 在 helloword
鏡像當前路徑下執行如下命令運行 helloworld 程序
Target# ./helloworld
[enter description here][13]
能夠看到程序已經打印出"Hello World!......www.tronlong.com"。
Makefile 錯誤
[enter description here][14]
在編寫makefile後,make項目時提示錯誤「Makefile:3: *** missing separator. Stop.」
偶然發現這個錯誤是有makefile中的tab的長度致使的,在makefile中的命令須要以tab鍵開始
[usb 設備鏈接不到虛擬機怎麼辦][15]
Mware虛擬機功能很強大,它也能像主機同樣安裝使用usb設備,如usb網卡,u盤等。
工具/原料
VMware虛擬機
u盤
方法/步驟
首先在【主機】中按Win+R打開「運行」對話框,輸入「services.msc」,打開服務管理器。
怎麼在VMware虛擬機中使用usb設備 在「服務」中啓動「VMware USB Arbitration Service」服務項。 怎麼在VMware虛擬機中使用usb設備
[enter description here][16]
而後打開虛擬機軟件(先不要啓動虛擬機)。在你的虛擬機界面點「編輯虛擬機設置」,打開「虛擬機設置」對話框。在「硬件」選項卡下,選中「USB控制器」,在右邊選中前三個鏈接。三個都要選,缺一不可。
怎麼在VMware虛擬機中使用usb設備
最後啓動虛擬機,插入u盤,看看右下角usb的圖標亮了沒有,亮了就能正常使用了。 怎麼在VMware虛擬機中使用usb設備
sudo passwd root 輸入兩次密碼便可開啓
### 問題 系統沒法運行,出現 [ 4.103175] Kernel panic - not syncing: VFS: Unable to mount root fs on unkn, 我從新燒寫了系統仍是沒法運行,換了核心板就行了,懷疑是系統的問題。
## 20160816
### 1 ftp localhost 550 Failed to open file.
一直找不到這個問題的緣由最後在查那個的時候找到解決問題了,路徑不對,因此我增長了主要作如下修改,使如下設置生效: (#符號是註釋符,被註釋的部分是沒法起做用的) :
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_root=/home/widic/ftp
1.Linux 服務器端 ftp-server 的配置
首先須要安裝 vsftpd。在終端下輸入以下命令安裝 vsftpd:
Host# sudo apt-get install vsftpd
成功安裝以下圖所示:
[安裝vsftpd][17]
此時系統將自動建立 ftp 用戶和 ftp 組,並創建"/srv/ftp"文件夾做爲 ftp 用戶的 HOME
目錄。 ( 若是想把 FTP的目錄放在"/home/ftp",可修改"/etc/passwd"文件中 ftp用戶的 HOME目錄位置。 )--- 這裏我沒有實現
(記得將#刪掉, 若是下面指令沒有就添加上去)
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
async_abor_enable=YES
nopriv_user=ftp
ascii_upload_enable=YES
ascii_download_enable=YES
ls_recurse_enable=YES
listen_port=21
anon_other_write_enable=YES
修改後保存退出。
ftp創龍的ftp get何put 未實現
auto eth0
iface eth0 inet static
address 192.168.1.111
netmask 255.255.255.0
gateway 192.168.1.1
network 192.168.1.0
broadcast 192.168.1.255
而後保存退出.
二、在終端下設置DNS服務器:命令行下敲:sudo gedit /etc/resolv.conf
在裏邊加入以下內容:
nameserver 192.168.1.1
nameserver 202.96.134.133
添加完成後保存退出。
三、在終端重啓網絡,命令:sudo /etc/init.d/networking restart
測試:
ping 192.168.1.1 不通,提示未知目的地
解決:
一、右擊「網上鄰居」--屬性,看到有VMware Network Adapter VMnet1和VMware Network Adapter VMnet8兩個網卡,均設置在192.168.1.xx的網段。
二、在vm的Settings中設置Network Adapter的Network Connection爲Bridged。
若是您的平臺與路由器鏈接,且路由器支持 DHCP 自動 IP 地址分配,能夠在 DNW 或者超級終端 。裏面輸入:udhcpc –i eth0 命令,用來動態獲取 IP 地址,-i 參數用來指定網卡名稱,飛凌平臺有線網絡的網卡名稱爲 eth0. 圖形界面設置 IP 地址 Qtopia2.2.0 桌面環境,ForlinxTest 程序組中有一個 IP 地址設置軟件,該軟件能夠設置固定 IP 地址,也能夠從路由器動態獲取 IP 地址,是您網絡應用的好幫手,
網卡互相有影響,關掉多餘的網卡
一、安裝和設置OpenSSH Server
在Ubuntu和debian類的系統中,默認是沒有安裝OpenSSH Server 的,其安裝命令爲:
apt-get install openssh-server
而後,Ubuntu會自動下載並安裝openssh server,並一併解決全部的依賴關係。
二、服務器的啓動、重啓和中止
啓動SSH Server: # /etc/init.d/ssh start
或者 #start ssh 或 # service ssh start
重啓SSH Server: # /etc/init.d/ssh restart
中止SSH Server: # /etc/init.d/ssh stop
三、利用SSH客戶端軟件進行遠程登陸
Secure CRT – SSH客戶端軟件,同時具有了在終端仿真器和文件傳輸功能。找到連接的Server,打開Secure CRT後鏈接。
[enter description here][23]
一、OpenSSH上經常使用的命令
⑴ 登錄遠程系統使用命令
ssh hostname [命令] [參數] //hostname is IP
例1:# ssh 172.21.73.187
root@172.21.73.187’s password:
Last login: Fri Jun 3 23:23:59 2011
⑵ 本地系統和遠程系統之間文件的傳輸
scp localfile username@hostname:/newfilename
// 傳輸本地檔案到遠端機
scp username@hostname:/remotefile /newfile // 傳送遠端檔案到本地
例2: 傳輸本地檔案到遠端機
root@localhost:/root> ls
anaconda-ks.cfg install.log install.log.syslog
root@localhost:/root> scp install.log chunqin@172.21.73.187:/home/chunqin /
chunqin@172.21.73.120's password:
install.log 100% 47 0.5KB/s 00:00
⑶ Sftp
sftp 是個交互式文件傳輸程式,相似於ftp,但他進行加密傳輸,比FTP有更高的安全性。登陸成功後,用 get/put命令下載/上傳文件 .
( 1) 查詢虛擬機中 OpenSSH 是否安裝, 執行以下命令:
HOST# ssh -v
[enter description here][24]
( 2) 開發板連上網線,開發板網絡與虛擬機網絡須要在同一網絡下,查詢開發板 IP
地址,執行以下命令:
[enter description here][25]
( 3) 查詢到 IP 地址爲: 192.168.2.100
( 4) 在虛擬機上新建文件,而且拷貝文件到開發板文件系統下,執行以下命令:
HOST# touch testssh
HOST# scp testssh root@192.168.2.100:/
[enter description here][26]
( 5) 先在開發板文件系統上新建一個測試文件,而且拷貝文件到虛擬機下,執行如
下命令:
[enter description here][27]
Target# touch testssh2
[enter description here][28]
[enter description here][29]
執行以下命令:Target# ssh root@192.168.1.32
備註:
root:開發板登錄名
192.168.2.100:開發板 IP 地址
[enter description here][30]
Linux 服務器端 tftp-server 的配置
1 安裝 tftp 所需的軟件
安裝軟件前務必保證虛擬機能夠上網。虛擬機要訪問網絡必須在"Virtual Machine
setting"菜單下選擇"Network Adapter->Network connection->NAT:Used to share the host's IP address"
須要安裝 tftp-hpa 和 tftpd-hpa(前者是客戶端,後者是服務程序)以及 xinetd。在終
端下輸入以下命令安裝 tftp-hpa、 tftpd-hpa 和 xinetd:
Host# sudo apt-get install tftp-hpa
Host# sudo apt-get install tftpd-hpa
Host# sudo apt-get install xinetd
2 配置相關服務文件
進入/etc 目錄,首先看目錄中有沒有一個 xinetd.conf 文件,若是沒有則新建一個,有
的話運行"cat xinetd.conf"查看其內容,看是否與下面的一致,若不一致則運行"sudo gedit
xinetd.conf"修改成相同,內容以下圖:
[enter description here][31]
打開配置文件 tftpd-hpa 命令以下:
Host# sudo gedit /etc/default/tftpd-hpa
將內容修改爲:
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/tl/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l -c -s"
修改完成後以下圖:
[enter description here][32]
TFTP_DIRECTORY="/home/tl/tftpboot":表示 tftp 服務器的工做目錄。
保存退出,而後新建 tftp 工做目錄,例如: mkdir –p /home/tl/tftpboot,並修改權限爲
777,命令爲"sudo chmod 777 /home/tl/tftpboot"。 777 是最鬆的權限,這樣不只能夠容許別
的主機或者目標機下載同時容許上傳文件。
而後進入"/etc"下面的 xinetd.d 文件夾,查看是否有一個 tftp 文件,若是沒有就運行
"sudo gedit tftp"新建一個並輸入如下內容,若是有的話就查看內容是否與下面的一致,不
一致則修改,內容以下:
servicetftp
{
socket_type = dgram
wait = yes
disable = no
user = root
protocol = udp
server = /usr/sbin/in.tftpd
server_args = -s /home/tl/tftpboot -c
開發板文件系統和虛擬機之間 tftp 文件傳輸功能實現
開發板和 Windows 主機先經過網線插到路由器,這樣 Winsows 主機、虛擬機、開發
板就至關於在同一個局域網了。若沒有路由器,也能夠經過網線將開發um板和 Windows 主
機互聯
Windows 主機、開發板、虛擬機三者之間 ping 命令測試
[enter description here][42]
開發板掛載 Ubuntu 虛擬機 nfs 服務器共享目錄
在開發板執行如下命令在根目錄下創建 nfs 掛載目錄:
Target# mkdir -p /nfs
在開發板中當前執行如下命令掛載 nfs 服務器共享目錄到開發板的/nfs 目錄:
Target# mount -t nfs -o nolock 192.168.0.5:/home/widic /nfs
-t nfs: 掛載類型( type)是 nfs。
-o nolock: 不加文件鎖, nfs mount 默認選項包括文件鎖( lock),依賴於 portmap 提供的
動態端口分配功能。
192.168.0.5:/home/widic: 虛擬機的 IP 地址是 192.168.0.5,共享目錄是虛擬機的"/home/tl"。
如果提示以下錯誤,極可能是開發板尚未安裝 nfs 客戶端。
[enter description here][53]
至此nfs 搭建成功
網上應該能夠找到不少關於ubuntu源的設置方法,可是若是不搞清楚就隨便設置的話,不只不能起到應有的效果,還會因爲一些問題致使apt不可用。
最正確的更換源的方法應該如系統提示的:
## a.) add 'apt_preserve_sources_list: true' to /etc/cloud/cloud.cfg ## or do the same in user-data ## b.) add sources in /etc/apt/sources.list.d ## c.) make changes to template file /etc/cloud/templates/sources.list.tmpl
這種方法有點沒弄明白在/etc/apt/sources.list.d應該添加的是什麼內容,若是是源文件的話,最後更改的模板又是什麼做用?也沒有去嘗試,有時間會解決一下。
如下提供設置阿里源的方法,其餘源也能夠如法炮製:
首先查看本身的ubuntu系統的codename,這一步很重要,直接致使你更新的源是否對你的系統起效果,查看方法:
lsb_release -a
如,個人系統顯示:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.2 LTS
Release: 14.04
Codename: trusty
顯示了一些ubuntu的版本信息,須要獲得的是Codename,好比,我這裏是trusty
確認阿里源支持:
登錄如下網頁:http://mirrors.aliyun.com/ubuntu/dists/
該網頁顯示了阿里雲支持的ubuntu系統下各個Codename版本,確保本身的Codename在該網頁中存在(通常都會有的)
備份系統源:
cd /etc/apt
sudo mv sources.list sources.list_bak
添加新的源文件:
sudo vi sources.list
並添加如下內容:注意,每一行的trusty應該用第一步查看獲得的Codename來代替
deb http://mirrors.aliyun.com/ubuntu/ trusty main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-backports main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-proposed main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-security main multiverse restricted universe
deb http://mirrors.aliyun.com/ubuntu/ trusty-updates main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-backports main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-proposed main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-security main multiverse restricted universe
deb-src http://mirrors.aliyun.com/ubuntu/ trusty-updates main multiverse restricted universe
保存而且sudo apt-get update,更新成功
如下提供配置腳本:
複製代碼
1 Codename=$( (lsb_release -a)|awk '{print $2}'|tail -n 1 )
2 echo " 3 deb http://mirrors.aliyun.com/ubuntu/ $Codename main multiverse restricted universe
4 deb http://mirrors.aliyun.com/ubuntu/ $Codename-backports main multiverse restricted universe
5 deb http://mirrors.aliyun.com/ubuntu/ $Codename-proposed main multiverse restricted universe
6 deb http://mirrors.aliyun.com/ubuntu/ $Codename-security main multiverse restricted universe
7 deb http://mirrors.aliyun.com/ubuntu/ $Codename-updates main multiverse restricted universe
8 deb-src http://mirrors.aliyun.com/ubuntu/ $Codename main multiverse restricted universe
9 deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-backports main multiverse restricted universe
10 deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-proposed main multiverse restricted universe
11 deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-security main multiverse restricted universe
12 deb-src http://mirrors.aliyun.com/ubuntu/ $Codename-updates main multiverse restricted universe ">sources.list
13 apt-get update
複製代碼
sudo運行該腳本便可(注意運行以前最好備份以前的sources.list)
在終端輸入如下命令安裝 nfs 服務包:
Host# sudo apt-get install nfs-kernel-server
[安裝成功][54]
[enter description here][55]
nfs 容許掛載的目錄和權限須要在文件"/etc/exports"中進行定義。使用如下命令打開
/etc 目錄下的 nfs 配置文件 exports:
Host# sudo gedit /etc/exports
在文件最後加入以下內容:
/home/tl/ *(rw,sync,no_root_squash)
修改完成以下圖所示:
[enter description here][56]
保存並退出編輯,下面解釋一下設置的含義其中:
/home/tl: 共享目錄
*: 容許全部的網絡段訪問 rw: 訪問者具備可讀寫權限 sync: 資料同步寫入內存和硬盤 no_root_squash: nfs 共享目錄訪問者具備 root 權限 ro: 只讀訪問 rw: 讀寫訪問 sync 全部數據在請求時寫入共享 asyncnfs: 在寫入數據前能夠響應請求 secure nfs: 經過 1024 如下的安全 TCP/IP 端口發送 insecure nfs: 經過 1024 以上的端口發送 wdelay: 若是多個用戶要寫入 nfs 目錄,則歸組寫入(默認) no_wdelay: 若是多個用戶要寫入 nfs 目錄,則當即寫入,當使用 async 時,無需此設置 hide: 在 nfs 共享目錄中不共享其子目錄 no_hide: 共享 nfs 目錄的子目錄 subtree_check: 若是共享/usr/bin 之類的子目錄時,強制 nfs 檢查父目錄的權限(默認) no_subtree_check: 和上面相對,不檢查父目錄權限 all_squash: 共享文件的 UID 和 GID 映射匿名用戶 anonymous,適合公用目錄 no_all_squash: 保留共享文件的 UID 和 GID(默認) root_squash root: 用戶的全部請求映射成如 anonymous 用戶同樣的權限(默認) no_root_squas root: 用戶具備根目錄的徹底管理訪問權限 anonuid=xxx: 指定 nfs 服務器:/etc/passwd:文件中匿名用戶的 UID
執行如下命令重啓 nfs 服務器:
Host# sudo /etc/init.d/portmap restart
Host# sudo /etc/init.d/nfs-kernel-server restart
[enter description here][57]
.4 卸載本地 nfs 共享目錄
經過如下命令將本地掛載的 nfs 共享系統從掛載點"/opt"卸載:
Host# sudo umount /opt/
[enter description here][62]
在開發板執行如下命令在根目錄下創建 nfs 掛載目錄:
Target# mkdir -p /nfs
在開發板中當前執行如下命令掛載 nfs 服務器共享目錄到開發板的/nfs 目錄:
Target# mount -t nfs -o nolock 192.168.0.5:/home/tl /nfs
-t nfs: 掛載類型( type)是 nfs。
-o nolock: 不加文件鎖, nfs mount 默認選項包括文件鎖( lock),依賴於 portmap 提供的
動態端口分配功能。
192.168.0.5:/home/tl: 虛擬機的 IP 地址是 192.168.0.5,共享目錄是虛擬機的"/home/tl"。
如果提示以下錯誤,極可能是開發板尚未安裝 nfs 客戶端。
[enter description here][63]
請先在開發板執行如下命令安裝 nfs客戶端,再從新掛載,務必保證開發板能夠上網。
Target# opkg install nfs-utils-client
[enter description here][64]
掛載成功後,進入開發板/nfs 目錄,能夠看到 Ubuntu 虛擬機 nfs 服務器共享目錄下的
全部文件了,結果以下圖所示:
[enter description here][65]
使用如下命令在開發板的/nfs 目錄創建 nfs 測試文件 nfs-test:
Target# touch nfs-test
能夠看到開發板已經出現了 nfs-test 測試文件,在使用 vi 編譯器在 nfs-test 文件輸入
test nfs,保存並退出 vi 編譯器,以下圖所示:
[enter description here][66]
這時能夠看到在虛擬機的 nfs 共享目錄中有 nfs-test 文件產生了,使用 cat 命令查看其
內容,以下圖:
[enter description here][67]
說明開發板經過 nfs 掛載虛擬機的共享目錄已經成功,而且可讀可寫,之後就能夠通
過 nfs 服務器來傳輸文件了,比 U 盤傳輸更加便捷。
卸載開發板的 nfs 掛載目錄
執行如下命令離開開發板/nfs 目錄,並卸載 nfs 掛載目錄:
Target# cd
Target# umount /nfs/
再查看/nfs 目錄,能夠看到裏面的掛載內容已經沒有了,說明卸載成功,操做和顯示
以下圖
==End of File==