(NFS移植到arm上)編譯portmap和nfs-utils

為了在播放機上實現NFS服務器的功能,我們已經在uClibc中打開了完整RPC支持,并且在新編譯的內核中打開了NFS服務器支持。此外還有兩個軟件包也是提供NFS服務所必需的:portmapnfs-utils。portmap為RPC程序提供端口映射服務,nfs-utils則是使用內核NFS服務器的支持程序。

編譯portmap
1. 下載portmap_5beta:?ftp://ftp.porcupine.org/pub/security/portmap_5beta.tar.gz
2. 打這個補丁:?portmap_5beta.patch.zip?(補丁來自buildroot-2009.11,我只是把多個補丁合并成一個)
3. $?make CC=mipsel-linux-gcc
4.?$ mipsel-linux-strip portmap

編譯nfs-utils
1. 下載nfs-utils-1.1.1: http://nchc.dl.sourceforge.net/project/nfs/nfs-utils/1.1.1/nfs-utils-1.1.1.tar.gz
2. 打這個補丁:?nfs-utils-1.1.1-uclibc.patch.zip?(在網上找到的,來源記不清了,我稍加了修改)
3. 運行配置腳本:
1?./configure?--build=i686-linux?--host=mipsel-linux?--disable-nfsv4?--disable-gss?--disable-uuid?--disable-mount?--without-tcp-wrappers?--with-gnu-ld?CC=mipsel-linux-gcc?CPP=mipsel-linux-cpp?AR=mipsel-linux-ar?STRIP=mipsel-linux-strip?RANLIB=mipsel-linux-ranlib?LD=mipsel-linux-ld
4.?$ make
5. 安裝到/home/user/dist/nfs-utils目錄
1?$?make?DESTDIR=/home/user/dist/nfs-utils?install-strip

在制作固件時,我們只需要幾個編譯好的程序:portmap, rpc.statd, rpc.nfsd, rpc.mountd, exportfs。其中portmap?放到/sbin下,其余的放到/usr/sbin下。
此外還需要一個NFS服務啟動腳本S60nfs,放在/etc/init.d目錄下。下載腳本S60nfs.zip?(來自buildroot,我把portmap的啟動加進去了)
?1?#!/bin/sh????????????????????????????????
?2?#????????????????????????????????????????
?3?#?nfs???????????This?shell?script?takes?care?of?starting?and?stopping
?4?#???????????????the?NFS?services.?Stolen?from?RedHat?FC5.????????????
?5?
?6?[?-x?/sbin/portmap?]?||?exit?0
?7?[?-x?/usr/sbin/rpc.statd?]?||?exit?0
?8?[?-x?/usr/sbin/rpc.nfsd?]?||?exit?0?
?9?[?-x?/usr/sbin/rpc.mountd?]?||?exit?0
10?[?-x?/usr/sbin/exportfs?]?||?exit?0??
11?
12?#?Don't?fail?if?/etc/exports?doesn't?exist;?create?a?bare-bones?version?and?continue.
13?[?-r?/etc/exports?]?||?\?????????????????????????????????????????????????????????????
14?????{?touch?/etc/exports?&&?chmod?u+rw,g+r,o+r?/etc/exports?;?}?||?\?????????????????
15?????{?echo?"/etc/exports?does?not?exist"?;?exit?0?;?}????????????????????????????????
16??????????????????????????????????????????????????????????????????????????????????????
17?#?The?/var/lib/nfs?directory?is?actually?on?a?tmpfs?filesystem.??????????????????????
18?mkdir?-p?/var/lib/nfs/sm?????????????????????????????????????????????????????????????
19?mkdir?-p?/var/lib/nfs/sm.bak?????????????????????????????????????????????????????????
20?touch?/var/lib/nfs/etab??????????????????????????????????????????????????????????????
21?touch?/var/lib/nfs/rmtab?????????????????????????????????????????????????????????????
22?touch?/var/lib/nfs/state?????????????????????????????????????????????????????????????
23?touch?/var/lib/nfs/xtab??????????????????????????????????????????????????????????????
24?
25?start()?{
26?????????#?Start?daemons.
27?????????echo?-n?"Starting?port?mapper:?"
28?????????portmap?????????????????????????
29?????????echo?"done"?????????????????????
30?
31?????????echo?-n?"Starting?NFS?statd:?"
32?????????rpc.statd?????????????????????
33?????????touch?/var/lock/subsys/nfslock
34?????????echo?"done"???????????????????
35?
36?????????echo?-n?"Starting?NFS?services:?"
37?????????/usr/sbin/exportfs?-r????????????
38?????????rpc.statd????????????????????????
39?????????echo?"done"??????????????????????
40?
41?????????echo?-n?"Starting?NFS?daemon:?"
42?????????rpc.nfsd?2?????????????????????
43?????????echo?"done"????????????????????
44?
45?????????echo?-n?"Starting?NFS?mountd:?"
46?????????rpc.mountd?????????????????????
47?????????echo?"done"????????????????????
48?????????touch?/var/lock/subsys/nfs?????
49?}??????????????????????????????????????
50?
51?stop()?{
52?????????#?Stop?daemons.
53?????????echo?-n?"Shutting?down?NFS?mountd:?"
54?????????killall?-q?rpc.mountd???????????????
55?????????echo?"done"?????????????????????????
56?
57?????????echo?"Shutting?down?NFS?daemon:?"
58?????????kill?-9?`pidof?nfsd`?2>/dev/null?
59?????????echo?"done"??????????????????????
60?
61?????????echo?-n?"Shutting?down?NFS?services:?"
62?????????/usr/sbin/exportfs?-au????????????????
63?????????rm?-f?/var/lock/subsys/nfs????????????
64?????????killall?-q?rpc.statd??????????????????
65?????????echo?"done"
66?
67?????????echo?-n?"Stopping?NFS?statd:?"
68?????????killall?-q?rpc.statd
69?????????echo?"done"
70?????????rm?-f?/var/lock/subsys/nfslock
71?
72?????????echo?-n?"Stopping?port?mapper:?"
73?????????killall?-q?portmap
74?????????echo?"done"
75?}
76?
77?#?See?how?we?were?called.
78?case?"$1"?in
79???start)
80?????????start
81?????????;;
82???stop)
83?????????stop
84?????????;;
85???restart)
86?????????stop
87?????????start
88?????????;;
89???reload)
90?????????/usr/sbin/exportfs?-r
91?????????touch?/var/lock/subsys/nfs
92?????????;;
93???*)
94?????????echo?"Usage:?nfs?{start|stop|reload}"
95?????????exit?1
96?esac
97?
98?exit?0

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252897.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252897.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252897.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

HTML5上傳預覽

http://cobain-li.iteye.com/blog/2296538轉載于:https://www.cnblogs.com/winyh/p/7850049.html

支付寶支付

1 申請商戶平臺 2 申請開放平臺 3 申請APP支付 4 創建應用 (名稱,logo) 5 生成RSA秘鑰(公鑰,私鑰) 6 在應用中配置公鑰 7 配置其他內容,包括iOS bundle ID。配置安卓包名,和簽名。 獲取appid,公…

HttpRequest Java原生代碼封裝

HttpRequest Java原生代碼封裝 get提交 post提交 name1value1&name2value2 的形式 json形式兩種形式 package com.beisun.mbp.mbp.controller;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWrit…

Linux 系統目錄

/ 根目錄 /bin 存放必要的命令 /boot 存放內核以及啟動所需的文件等 /dev 存放設備文件 /etc 存放系統的配置文件 /home 用戶文件的主目錄,用戶數據存放在其主目錄中 /lib 存放必要的運行庫 /mnt 存放臨時的映射文件系統,我們常把軟驅和光驅掛裝在這里的…

linux多線程學習設置線程調度權限

pthread_setschedparam 設置線程的權限 int pthread_setschedparam(pthread_t target_thread, int policy, const struct sched_param *param) 參數 1. target_thread是使用pthread_create所獲得的線程ID。   2.線程的調度有三種策略:SCHED_OTHER、…

不可錯過的CMS學習筆記

引子 帶著問題去學習一個東西,才會有目標感,我先把一直以來自己對CMS的一些疑惑羅列了下,希望這篇學習筆記能解決掉這些疑惑,希望也能對你有所幫助。 CMS出現的初衷、背景和目的? CMS的適用場景? CMS的tr…

團隊合作及個人成長

通過前一章的學習,我了解到了關于建模的很多初步的知識,但是這和成為一名軟件工程師是遠遠不夠的,完成一個程序通常都是一個團隊,而這個團隊重要的肯定是需要一些流程,這樣才能讓程序有條不紊的運行著。在這么一個團隊…

相機工作原理

輕輕一按,你的相機就把光子轉換為了比特。于是一張相片就保存到了你的 iPhone 里。 讓我們假設一下你身處室外,環顧四周。三億里之外,太陽無時無刻不在發射光子。它們需要花上 8 分鐘之久才能到達我們舒適的星球。有一些光子撞擊到你周圍的物…

Android Studio使用心得

說實話 開始接觸這個工具 真的認為非常惡心 畢竟大陸被墻 非常多東西用起來不是非常方便 并且Eclipse轉到Android Studio還是一個跨度 廢話不多說 以下 講下我遇到的問題 1. 安裝的時候(Setup Wizard - Download Components) 這個要下載非常長時間 甚至…

CentOS用戶和用戶組的操作

2019獨角獸企業重金招聘Python工程師標準>>> CentOS用戶和用戶組的操作 長得太帥忚四種檌 關注 2018.05.12 16:40* 字數 312 閱讀 115評論 0喜歡 0 用戶組的操作 1.添加用戶組: groupadd 組名2.修改組名 groupmod -n 新組名 原組名刪除用戶組groupdel 組…

vue webpack配置分析

寫在前面:作為 Vue 的使用者我們對于 vue-cli 都很熟悉,但是對它的 webpack 配置我們可能關注甚少,今天我們為大家帶來 vue-cli#2.0 的 webpack 配置分析 vue-cli 的簡介、安裝我們不在這里贅述,對它還不熟悉的同學可以直接訪問 v…

Linux用戶空間與內核地址空間

Linux 操作系統和驅動程序運行在內核空間,應用程序運行在用戶空間,兩者不能簡單地使用指針傳遞數據,因為Linux使用的虛擬內存機制,用戶空間的數據可能被換出,當內核空間使用用戶空間指針時,對應的數據可能不…

關于主鍵的設計、primary key

主鍵:用于唯一標識一個表中一行數據。 外鍵:用于建立兩個表之間的關系,A表中有一列是B表中的主鍵,那么A表中這列的數據就受到B表主鍵的約束。 那么關于主鍵應該如何設計呢,這里我說下優缺點: 1.用自動增長字…

淺談微信smali注入

作者:郭少雷 搞android搞了幾年也沒搞出個啥牛逼app出來,眼看時下最火的app微信如此火熱,實在想搞搞它,索性就想著給它加點東西進去。 以下內容純屬本人個人愛好,僅限個人學習android用途以及對android的深入了解。 首…

從0到1使用Kubernetes系列(四):搭建第一個應用程序

上一篇文章《從0到1使用Kubernetes系列(三):使用Ansible安裝Kubernetes集群》中,我們搭建了一套Kubernetes集群,接下來將在本文中介紹如何使用Kubernetes部署一個Nginx并通過Pod IP、Service IP、Ingress這三種方式訪問…

Embeded linux之移植iptables

一、內核環境&#xff1a; linux-3.4.35 -*- Networking support ---> Networking options ---> [*] Network packet filtering framework (Netfilter) ---> IP: Netfilter Configuration ---> <*> IP tables support (required for filtering/masq/NAT)…

Hadoop HIVE

數據倉庫工具。構建在hadoop上的數據倉庫框架&#xff0c;可以把hadoop下的原始結構化數據變成Hive中的表。&#xff08;主要解決ad-hoc query&#xff0c;即時查詢的問題&#xff09; 支持一種與SQL幾乎完全相同的語言HQL。除了不支持更新&#xff0c;索引和事務&#xff0c;幾…

Xcode9學習筆記67 - 打印查看程序沙箱結構中常用的幾個目錄

override func viewDidLoad() {super.viewDidLoad()// Do any additional setup after loading the view, typically from a nib.//首先獲得應用程序目錄的路徑&#xff0c;在該目錄下有三個文件夾&#xff1a;文檔目錄、庫目錄、臨時目錄以及一個程序包。該目錄就是應用程序的…

檢測raid類型和磁盤壞道腳本

#!/bin/sh #腳本功能&#xff1a; #安裝工具MegaCli64 #Host Information&#xff1a;主機名和ip地址 #Raid Information&#xff1a;raid信息和充電狀態 #WARNING Information&#xff1a;MediaErrcount檢測壞塊和哪塊盤 #Disk Information&#xff1a;磁盤信息 #上傳MegaC…

簡單論述市場營銷管理的基本過程

http://www.chinadmd.com/file/uvc3uaosocwevsetrzpaereo_1.html