1. 程式人生 > >linux設定編譯環境、補丁、查詢、nfs技巧

linux設定編譯環境、補丁、查詢、nfs技巧

一、設定環境變數:

1、永久設定修改PATH:

[email protected]:/work/other_board/gcc-3.4.5-glibc-2.3.6/bin$ sudo vi /etc/environment

2、修改必須是下次重啟系統之後才起作用,立即生效使用如下兩種方式:
方式一:
[email protected]:/$ export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/work/other_board/gcc-3.4.5-glibc-2.3.6/bin
方式二:

[email protected]:/$ export PATH=$PATH:/work/other_board/gcc-3.4.5-glibc-2.3.6/bin

3、檢視設定PATH是否設定:
[email protected]:/$ echo $PATH

4、檢視是否編譯環境安裝是否成功:
[email protected]:/$ arm-linux-gcc-v

二、find和grep
find命令是一個無處不在命令,是linux中最有用的命令之一。find命令用於:在一個目錄(及子目錄)中搜索檔案,你可以指定一些匹配條件,如按檔名、檔案型別、使用者甚至是時間戳查詢檔案。下面就通過例項來體驗下find命令的強大。

grep (global search regular expression(RE) and print out the line,全面搜尋正則表示式並把行打印出來)是一種強大的文字搜尋工具,它能使用正則表示式搜尋文字,並把匹配的行打印出來。

find /dir -name filename  在/dir目錄及其子目錄下面查詢名字為filename的檔案 
find . -name “*.c” 在當前目錄及其子目錄(用“.”表示)中查詢任何副檔名為“c”的檔案

find -name “defconfig” 查詢預設配置可以發現預設配置在././arch/arm/configs/下
grep “CONFIG_DM9000” * -nwR
grep ““Boot\ Agent”” * -nR
arch/arm/mach-s3c24xx/common-smdk.c:113:                .name   = “Boot Agent”,

三、製作補丁和使用補丁
1、舉例說明
製作核心補丁:
[email protected]:/work/system/linux-3.4.2$ cp .config config_ok
[email protected]:/work/system/linux-3.4.2$ make distclean
[email protected]:/work/system/linux-3.4.2$ cd …
[email protected]:/work/system$ mv linux-3.4.2 linux-3.4.2_100ask
[email protected]:/work/system$ tar xjf linux-3.4.2.tar.bz2
[email protected]:/work/system$ diff -urN linux-3.4.2 linux-3.4.2_100ask > linux-3.4.2_100ask.patch

使用核心補丁:
[email protected]:/work/system$ cd linux-3.4.2
[email protected]:/work/system/linux-3.4.2$ patch -p1 < …/linux-3.4.2_100ask.patch 
[email protected]:/work/system/linux-3.4.2$ cp config_ok .config
[email protected]:/work/system/linux-3.4.2$ make uImage

四、nfs使用
NFS,檔案系統是放在伺服器上的
1、配置開發板IP

ifconfig eth0 up

ifconfig

ifconfig eth0 192.168.1.11

ping 192.168.1.51

PING 192.168.1.51 (192.168.1.51): 56 data bytes
64 bytes from 192.168.1.51: seq=0 ttl=64 time=5.073 ms

2、手工掛接
a、從flash上啟動根檔案系統,再用命令掛接NFS
   掛接NFS條件:①伺服器“允許”那個目錄可被掛接
    ②單板去掛接
[email protected]:/work/nfs_root/first_fs$ sudo vi /etc/exports 
/work/nfs_root/first_fs   *(rw,sync,no_root_squash)
重啟
[email protected]:/work/nfs_root/first_fs$ sudo /etc/init.d/nfs-kernel-server restart
實驗自己掛接自己:
[email protected]:/work/nfs_root/first_fs$ sudo mount -t nfs 192.168.1.51:/work/nfs_root/first_fs /mnt

單板掛接:

mkdir /mnt

mount -t nfs -o nolock 192.168.1.51:/work/nfs_root/first_fs /mnt

ls /mnt

bin      etc      linuxrc  sbin     usr
dev      lib      proc     sys

比如我們在/work/nfs_root/first_fs下建立一個檔案,在單板上能夠立刻看到這個檔案:
[email protected]:/work/nfs_root/first_fs$ echo hello > test.txt
[email protected]:/work/nfs_root/first_fs$ ls
bin  dev  etc  lib  linuxrc  proc  sbin  sys  test.txt  usr

ls /mnt

bin       etc       linuxrc   sbin      test.txt
dev       lib       proc      sys       usr

cat /mnt/test.txt

hello

b、直接從NFS啟動:
NFS啟動引數:①伺服器IP,目錄。 ②
重啟可以看到啟動引數:
bootargs=noinitrd root=/dev/mtdblock3 rootfstype=jffs2 init=/linuxrc console=ttySAC0
修改啟動引數:在linux-2.6.22.6\Documentation的nfsroot.txt裡面有引數的說明
nfsroot=[:][,]
ip=::::::

bootargs noinitrd root=/dev/nfs nfsroot=192.168.1.51:/work/nfs_root/first_fs ip=192.168.1.11:192.168.1.51:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0

OpenJTAG> set bootargs noinitrd root=/dev/nfs nfsroot=192.168.1.51:/work/nfs_root/first_fs ip=192.168.1.11:192.168.1.51:192.168.1.1:255.255.255.0::eth0:off init=/linuxrc console=ttySAC0
OpenJTAG> save
OpenJTAG> boot
到這裡網路檔案系統已經搭建好了,這樣你可以在伺服器上面編輯程式碼,編譯,然後在單板上面運行了。

20170418:

nfs錯誤問題

nfs:server is not responding, still trying

原因:具有較高的傳送速率的NFS主機網絡卡和較低速率的目標機網絡卡之間不匹配,要解決此問題需要在掛載檔案系統時新增額外的引數

解決方法:

mount -t nfs -o intr,nolock,rsize=1024,wsize=1024  192.168.3.106:/home/book/nfs /mnt

引數解釋: 
intr – 當伺服器宕機或者無法到達時,允許中斷NFS請求。 nolock–禁用檔案鎖。 rsize = 8192 和 wsize=8192  – 通過設定大的同時傳輸的資料塊大小(bytes),以提高NFS讀寫的速度。改變這些值時要當心,一些舊的linux核心和網絡卡在大的塊大小不能正常工作。

作者:kuangdoushi
來源:CSDN
原文:https://blog.csdn.net/kuangdoushi/article/details/55094706
版權宣告:本文為博主原創文章,轉載請附上博文連結!