一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

添加社區(qū)軟件包proftpd教程

瑞薩MCU小百科 ? 來源:瑞薩MCU小百科 ? 2025-03-12 14:40 ? 次閱讀

14.7.3添加社區(qū)軟件包proftpd

通常我們的應(yīng)用還需要實(shí)現(xiàn)開機(jī)自啟動(dòng),這些也可以在配方中實(shí)現(xiàn)。下面以一個(gè)稍微復(fù)雜一點(diǎn)的FTP服務(wù)應(yīng)用為例說明如何使用Yocto構(gòu)建包含特定應(yīng)用的生產(chǎn)鏡像,這里的FTP服務(wù)程序采用的是開源的Proftpd,各個(gè)版本源碼位于ftp://ftp.proftpd.org/distrib/source/。

本節(jié)重點(diǎn)描述如何移植FTP服務(wù)到目標(biāo)機(jī)器中的方法。通過搜索當(dāng)前源代碼倉庫發(fā)現(xiàn)Yocto項(xiàng)目中已經(jīng)存在proftpd的配方,只是沒有添加的系統(tǒng)鏡像中。下面詳細(xì)描述具體的移植過程。

01查找Yocto的proftpd配方

bitbake -s | grep proftpd

注:這里可以看到Y(jié)octo項(xiàng)目中已經(jīng)存在proftpd配方,版本為1.3.6-r0。

39c45ac6-fd65-11ef-9310-92fbcf53809c.png

02單獨(dú)編譯proftpd

左右滑動(dòng)查看完整內(nèi)容

PC:~/renesas/yocto/build-remi-1g$ bitbake proftpd

39e2f486-fd65-11ef-9310-92fbcf53809c.png

03打包proftpd到文件系統(tǒng)

在conf/local.conf中增加一行語句:

左右滑動(dòng)查看完整內(nèi)容

IMAGE_INSTALL_append = " proftpd"

3a095e14-fd65-11ef-9310-92fbcf53809c.png

04重新構(gòu)建鏡像

左右滑動(dòng)查看完整內(nèi)容

PC:~/renesas/yocto/build-remi-1g$ bitbake myir-image-full

3a23c0d8-fd65-11ef-9310-92fbcf53809c.png

05燒錄新鏡像

系統(tǒng)構(gòu)建完成之后,需重新燒錄鏡像并查看proftpd服務(wù)是否運(yùn)行:

左右滑動(dòng)查看完整內(nèi)容

root@myir-remi-1g:~# ps -axu | grep proftpd
root 501 0.0 0.0 2780 624 ttySC0 S+ 00:39 0:00 grep proftpd

06ftp賬戶權(quán)限配置

這里補(bǔ)充說明一下FTP的賬戶設(shè)置。FTP客戶端有三種類型登錄賬戶,分別為匿名賬戶,普通賬戶和root賬戶。

匿名賬戶

用戶名默認(rèn)為ftp,不需要設(shè)置密碼,用戶登錄后可以查看系統(tǒng)/var/lib/ftp目錄下的內(nèi)容,默認(rèn)沒有寫權(quán)限。

由于系統(tǒng)默認(rèn)不存在/var/lib/ftp目錄,所以需要用戶在目標(biāo)機(jī)器上創(chuàng)建一個(gè)目錄/var/lib/ftp。

為了盡量不修改meta-openembbed,我們可以通過為proftpd recipes添加Append文件“proftpd_1%.bbappend”來實(shí)現(xiàn)/var/lib/ftp目錄的創(chuàng)建。

首先需要在meta-myir-remi/recipes-common/recipes-devtools/目錄下新建一個(gè)proftpd文件夾,之后進(jìn)入文件夾,新建一個(gè)proftpd_1%.bbappend文件。加入下面這段task安裝任務(wù),保存退出至構(gòu)建目錄。然后重復(fù)之前章節(jié)添加應(yīng)用的步驟,重新構(gòu)建鏡像文件進(jìn)行測試。

左右滑動(dòng)查看完整內(nèi)容

do_install_append() {
install -m 755 -d ${D}/var/lib/${FTPUSER}
chown ftp:ftp ${D}/var/lib/${FTPUSER}
}

3af2a83a-fd65-11ef-9310-92fbcf53809c.png

普通賬戶

在目標(biāo)機(jī)器上使用useradd和passwd命令可以創(chuàng)建普通用戶,并設(shè)置用戶密碼之后,客戶端也可以使用該普通賬戶登錄到該用戶的HOME目錄。

如果需要在編譯鏡像時(shí)包含普通用戶,可以參照以下鏈接添加普通用戶,然后重新構(gòu)建鏡像文件,具體方法這里不再描述。(您可復(fù)制下方鏈接至瀏覽器,或掃描二維碼進(jìn)行查看)

添加普通用戶

https://docs.yoctoproject.org/3.1.1/mega-manual/mega-manual.html#ref-classes-useradd

root賬戶

如果需要開放root賬戶登錄FTP服務(wù)器,需要先修改 /etc/proftpd.conf文件,在文件中增加一行配置 "RootLogin on"。與此同時(shí),也需要為root賬戶設(shè)置密碼,重啟proftpd服務(wù)之后,客戶端也可以使用root賬戶登錄到目標(biāo)機(jī)器上。

左右滑動(dòng)查看完整內(nèi)容

root@myir-remi-1g:/# systemctl restart proftpd

注意:修改/etc/proftpd.conf使能root賬戶登錄僅用于測試目的,關(guān)于/etc/proftpd.conf的更多配置,參見下方鏈接。(您可復(fù)制下方鏈接至瀏覽器,或掃描二維碼進(jìn)行查看)

關(guān)于/etc/proftpd.conf的更多配置

http://www.proftpd.org/docs/example-conf.html

07實(shí)現(xiàn)proftpd自啟動(dòng)

本節(jié)將以proftpd為例從recipe源碼的層面介紹如何添加應(yīng)用程序recipe并實(shí)現(xiàn)程序的開機(jī)自啟動(dòng)。

proftpd位于源代碼倉庫layers/meta-openembedded/meta-networking/recipesdaemons/proftpd,目錄結(jié)構(gòu)如下。

3b795182-fd65-11ef-9310-92fbcf53809c.png

左右滑動(dòng)查看完整內(nèi)容

ubuntu@ubuntu2004:~/renesas/yocto/myir-renesas-yocto$:~/renesas/yocto/layers/meta-op
enembedded/meta-networking/recipes-daemons/proftpd$ 
.
├── files
│ ├── basic.conf.patch
│ ├── build_fixup.patch
│ ├── close-RequireValidShell-check.patch
│ ├── contrib.patch
│ ├── default
│ ├── proftpd-basic.init
│ └── proftpd.service
└── proftpd_1.3.6.bb
1 directory, 8 files

?proftpd_1.3.6.bb為構(gòu)建proftpd服務(wù)的配方

?proftpd.service為開機(jī)自啟動(dòng)服務(wù)

?proftpd-basic.init為proftpd的啟動(dòng)腳本

proftpd_1.3.6.bb中指定了獲取proftpd服務(wù)程序的源代碼路徑以及針對該版本源碼的一些補(bǔ)丁文件,如下:

左右滑動(dòng)查看完整內(nèi)容

SRC_URI = "ftp://ftp.proftpd.org/distrib/source/${BPN}-${PV}.tar.gz 
file://basic.conf.patch 
file://proftpd-basic.init 
file://default 
file://close-RequireValidShell-check.patch 
file://contrib.patch 
file://build_fixup.patch 
file://proftpd.service 

recipes配方中還指定了proftpd的Task配置任務(wù)(do_configure)和安裝過程(do_install):

左右滑動(dòng)查看完整內(nèi)容

# proftpd uses libltdl which currently makes configuring using
# autotools.bbclass a pain...
do_configure () {
 install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}
 install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}
 oe_runconf
 cp ${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool ${S}/libtool
}


FTPUSER = "ftp"
FTPGROUP = "ftp"


do_install () {
 oe_runmake DESTDIR=${D} install
 rmdir ${D}${libdir}/proftpd ${D}${datadir}/locale
 [ -d ${D}${libexecdir} ] && rmdir ${D}${libexecdir}
 sed -i '/ *User[ 	]*/s/ftp/${FTPUSER}/' ${D}${sysconfdir}/proftpd.conf
 sed -i '/ *Group[ 	]*/s/ftp/${FTPGROUP}/' ${D}${sysconfdir}/proftpd.conf
 install -d ${D}${sysconfdir}/init.d
 install -m 0755 ${WORKDIR}/proftpd-basic.init ${D}${sysconfdir}/init.d/proftpd
 sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/proftpd
 sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/proftpd
 sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/proftpd
 sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' 
${D}${sysconfdir}/init.d/proftpd


 install -d ${D}${sysconfdir}/default
install -m 0755 ${WORKDIR}/default ${D}${sysconfdir}/default/proftpd
……
}

這兩個(gè)函數(shù)對應(yīng)BitBake構(gòu)建過程的config和install任務(wù)。

關(guān)于任務(wù)的更多信息,參見下方鏈接。

關(guān)于任務(wù)的更多信息

https://www.yoctoproject.org/docs/3.1.1/mega-manual/mega-manual.html#ref-tasks

當(dāng)前目標(biāo)機(jī)器采用systemd作為初始化管理子系統(tǒng)systemd是一個(gè)Linux系統(tǒng)基礎(chǔ)組件的集合,提供了一個(gè)系統(tǒng)和服務(wù)管理器,運(yùn)行為PID 1并負(fù)責(zé)啟動(dòng)其它程序。Yocto項(xiàng)目下使用systemd的配置參見下方鏈接。(您可復(fù)制下方鏈接至瀏覽器,或掃描二維碼進(jìn)行查看)

Yocto項(xiàng)目下使用systemd的配置

https://docs.yoctoproject.org/3.1.1/mega-manual/mega-manual.html#selecting-an-initialization-managerproftpd_1.3.6.bb

通過繼承systemd.class(具體內(nèi)容可以查看poky/meta/classes/systemd.bbclass)默認(rèn)使能了 SYSTEMD_AUTO_ENABLE變量并實(shí)現(xiàn)開機(jī)自啟動(dòng),用戶自己編寫的recipes也可以通過設(shè)置變量SYSTEMD_AUTO_ENABLE實(shí)現(xiàn)開機(jī)自啟動(dòng),示例如下:

左右滑動(dòng)查看完整內(nèi)容

SYSTEMD_AUTO_ENABLE_${PN} = "enable"

其中Proftpd服務(wù)的開機(jī)自啟動(dòng)服務(wù)文件proftpd.service內(nèi)容如下:

左右滑動(dòng)查看完整內(nèi)容

ubuntu@ubuntu2004:~/renesas/yocto/layers/meta-openembedded/meta-networking/recipes-d
aemons/proftpd/files$ cat proftpd.service
[Unit]
Description=proftpd Daemon
After=network.target
[Service]
Type=forking
ExecStart=@SBINDIR@/proftpd -c @SYSCONFDIR@/proftpd.conf
StandardError=syslog
[Install]
WantedBy=default.target

?After:表示此服務(wù)在network啟動(dòng)后再啟動(dòng)。

?Type:表示啟動(dòng)的方式為forking。

?ExecStart:表示需要啟動(dòng)的程序,及對應(yīng)的參數(shù)。

如需了解更多關(guān)于systemd的信息請查看此網(wǎng)站。

未完待續(xù)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 移植
    +關(guān)注

    關(guān)注

    1

    文章

    392

    瀏覽量

    28510
  • FTP
    FTP
    +關(guān)注

    關(guān)注

    0

    文章

    112

    瀏覽量

    41080
  • 程序
    +關(guān)注

    關(guān)注

    117

    文章

    3817

    瀏覽量

    82168
  • 軟件包
    +關(guān)注

    關(guān)注

    0

    文章

    108

    瀏覽量

    11845

原文標(biāo)題:添加社區(qū)軟件包proftpd——RZ MPU工業(yè)控制教程連載(63)

文章出處:【微信號(hào):瑞薩MCU小百科,微信公眾號(hào):瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Openwrt開發(fā)指南 第12章 添加OpenWrt軟件包

    OpenWrt是一個(gè)比較完善的嵌入式Linux開發(fā)平臺(tái),在無線路由器應(yīng)用上已有4000多個(gè)軟件包。我們可以在其基礎(chǔ)上增加軟件包,以擴(kuò)大其應(yīng)用范圍。在OpenWrt中增加軟件包極其方便,按照
    的頭像 發(fā)表于 06-29 09:09 ?9657次閱讀

    RT-Thread Studio添加軟件包報(bào)錯(cuò)怎么解決?

    RT-Thread Studio添加軟件包報(bào)錯(cuò)ImportError: No module named psutil
    發(fā)表于 03-01 08:41

    軟件包怎么使用

    RT-thread有很多實(shí)用的軟件包,包含網(wǎng)絡(luò)、IOT、外設(shè)、系統(tǒng)等多個(gè)方面,對于項(xiàng)目的快速開發(fā)或者評估來說是非常方便的。但不是所有軟件包都是友好的,因?yàn)橛行?b class='flag-5'>軟件包是第三方貢獻(xiàn)的,軟件
    發(fā)表于 01-21 07:53

    RTThread settings添加軟件包界面不顯示求解

    目前使用出現(xiàn)了兩個(gè)問題1、客戶端莫名其妙的卡死,無響應(yīng),必須任務(wù)管理器強(qiáng)制停止才行。2、rtthread settings 添加軟件包界面不顯示,必須按shift+s才會(huì)出現(xiàn),去掉某些軟件包但是
    發(fā)表于 08-25 14:50

    RT-THREAD studio 2.0.0不能添加軟件包能幫忙看看是什么問題嗎

    1.電腦聯(lián)想小新15,intel平臺(tái)2.windows10專業(yè)版64位系統(tǒng)3.問題描述:RT-THREAD studio 2.0.0不能添加軟件包4.用兩臺(tái)聯(lián)想筆記本電腦對比過,一臺(tái)能夠正常添加
    發(fā)表于 11-30 10:15

    在rt-thread studio里添加軟件包失敗怎么解決?

    在rt-thread studio里使用軟件包功能,添加軟件包之后,點(diǎn)擊保存,在項(xiàng)目欄測沒有軟件包添加
    發(fā)表于 02-13 14:14

    RT-Thread 軟件包介紹

    RT-Thread 軟件包介紹軟件包的目的軟件包在高級(jí)語言中非常常見,很多高級(jí)語言都有對應(yīng)的軟件包平臺(tái),比如 Python 的 PyPi,Ruby 的 Gems 等等。
    發(fā)表于 05-21 19:38 ?5671次閱讀

    RT-Thread軟件包定義和使用

    RT-Thread軟件包是運(yùn)行于RT-Thread物聯(lián)網(wǎng)操作系統(tǒng)平臺(tái)上,面向不同應(yīng)用領(lǐng)域的通用軟件組件 。RT-Thread 同時(shí)提供了開放的軟件包平臺(tái),為開發(fā)者提供了眾多可重用軟件包
    的頭像 發(fā)表于 05-21 11:29 ?1.1w次閱讀
    RT-Thread<b class='flag-5'>軟件包</b>定義和使用

    如何下載與安裝Synergy軟件包?

    Synergy ISDE 視頻教程 - 下載和安裝Synergy軟件包
    的頭像 發(fā)表于 07-20 05:03 ?3757次閱讀

    RT-Thread社區(qū)上有哪些優(yōu)秀的軟件包

    SX12XX 軟件包是基于 semtech 官網(wǎng) Firmware Drivers V2.1.0代碼庫的移植實(shí)現(xiàn),目前只支持 SX1278 LoRa設(shè)備。該軟件包在原代碼庫功能的基礎(chǔ)上,對接 RT-Thread SPI 設(shè)備驅(qū)動(dòng)框架,實(shí)現(xiàn)參數(shù)的配置和數(shù)據(jù)的讀取。
    的頭像 發(fā)表于 04-03 15:35 ?7870次閱讀

    什么是Linux軟件包,如何管理它們

    現(xiàn)代類 Unix 操作系統(tǒng)都提供了一個(gè)集中的軟件包管理機(jī)制,以幫助用戶搜索、安裝和管理軟件。而軟件通常以的形式存儲(chǔ)在倉庫中,對軟件包的使用
    的頭像 發(fā)表于 02-06 14:59 ?1682次閱讀

    工控軟件包開源分享

    電子發(fā)燒友網(wǎng)站提供《工控軟件包開源分享.zip》資料免費(fèi)下載
    發(fā)表于 06-25 10:22 ?4次下載
    工控<b class='flag-5'>軟件包</b>開源分享

    RT-Thread在線軟件包改為本地軟件包的方法

    RT-Thread 的軟件包,使用時(shí)需要手動(dòng)通過 ENV 工具 更新到 本地的 packages 目錄,并且 packages 目錄默認(rèn)不參與 Git 工程管理,軟件包多了,偶爾需要更改軟件包本身的一些代碼,這就造成了
    的頭像 發(fā)表于 08-11 15:02 ?1525次閱讀
    RT-Thread在線<b class='flag-5'>軟件包</b>改為本地<b class='flag-5'>軟件包</b>的方法

    使用pkgs-test工具對軟件包進(jìn)行qemu測試

    pkgs-test是一個(gè)可以在github actions上面檢查軟件包編譯情況的工具。除了檢查軟件包的編譯情況pkgs-test目前還添加了qemu運(yùn)行測試。
    的頭像 發(fā)表于 09-25 16:19 ?904次閱讀

    RT-Thread中mymqtt軟件包的使用方法

    在上一篇文章 RT-Thread中Lan8720和lwip協(xié)議棧的使用的工程基礎(chǔ)上添加mymqtt軟件包。 使能mqtt example和mqtt test,保存,等待下載更新軟件包。
    的頭像 發(fā)表于 10-13 10:44 ?1225次閱讀
    RT-Thread中mymqtt<b class='flag-5'>軟件包</b>的使用方法