国产美女精品自在线拍照片,欧美人与兽,欧美成人高清在线播放,欧美成人精品三级网站,两个人免费完整在线观看直播

翠屏區(qū)政府公文系統(tǒng):伊春區(qū)政府辦公oa系統(tǒng)中Tina_Linux_系統(tǒng)軟件 開發(fā)指南

時(shí)間:2024-12-21 00:09:52 信創(chuàng)OA資訊首頁 翠屏區(qū)政府公文系統(tǒng)伊春區(qū)政府辦公oa系統(tǒng)


六個(gè)關(guān)鍵詞解讀運(yùn)營商大數(shù)據(jù):

燈塔大數(shù)據(jù)總負(fù)責(zé)人楊明川博士在會(huì)上做了《運(yùn)營商大數(shù)據(jù)的六個(gè)關(guān)鍵詞》的主題演講。演講中,楊博士從三個(gè)維度,六個(gè)關(guān)鍵詞闡明了運(yùn)營商大數(shù)據(jù)未來的發(fā)展現(xiàn)狀與機(jī)遇。以下為演講原文。 宏觀層面,“十三五”規(guī)劃提到的供給側(cè)改革,為大數(shù)據(jù)產(chǎn)業(yè)發(fā)展提供了三個(gè)方向,即政府治理;產(chǎn)業(yè)轉(zhuǎn)型,特別是傳統(tǒng)行業(yè)的轉(zhuǎn)型;消費(fèi)升級(jí)。中觀層面,我們正在面臨一次新的產(chǎn)業(yè)革命。 依此為基礎(chǔ),我們也開發(fā)了如燈塔等的一些應(yīng)用。如何將數(shù)據(jù)資源變?yōu)閿?shù)據(jù)能力,實(shí)現(xiàn)數(shù)據(jù)和運(yùn)營之間的聯(lián)系,是未來大數(shù)據(jù)產(chǎn)業(yè)發(fā)展的關(guān)鍵點(diǎn)。第三個(gè)關(guān)鍵詞是生態(tài)。 而真正適合大數(shù)據(jù)應(yīng)用的行業(yè)主要集中以下三個(gè)層面,一是政府治理,大到未來政府轉(zhuǎn)型治理,建立新型智慧城市,小到治安維穩(wěn)、交通管理和分析等方面都離不開大數(shù)據(jù)。在政府治理方面,大數(shù)據(jù)能夠做的事很多。 內(nèi)容來源:燈塔大數(shù)據(jù)

nginx, redis, mysql配置文件說明:

nginx中etcnginxnginx.conf的常用配置及說明# 指定nginx worker進(jìn)程運(yùn)行用戶, 語法: user user user nginx; # worker進(jìn)程數(shù), 通常設(shè)置成和 # 加載一個(gè)外部的配置文件, sites-enabled文件夾下只有一個(gè)default文件, # 這個(gè)外部的配置文件就是負(fù)責(zé)我們nginx的默認(rèn)代理, 也就是server塊的配置. include etcnginxsites-enabled nginx中etcnginxsites-enableddefault的常用配置及說明server { # nginx監(jiān)聽的ip及端口號(hào), 可以監(jiān)聽多個(gè) listen 127.0.0.1:80; # nginx 3# 為提高性能,mysql可以以循環(huán)方式將日志文件寫到多個(gè)文件。 # 在系統(tǒng)運(yùn)行一段時(shí)間后,可以通過show processlist命令查看當(dāng)前系統(tǒng)的連接狀態(tài),如果發(fā)現(xiàn)有大量的sleep狀態(tài)的連接進(jìn)程,則說明該參數(shù)設(shè)置的過大,# 可以進(jìn)行適當(dāng)?shù)恼{(diào)整小些。

internet與中國:

由于當(dāng)時(shí)中國尚未正式連入internet,所以委托德國卡爾斯魯厄大學(xué)運(yùn)行cn域名服務(wù)器1993年3月2日中國科學(xué)院高能物理研究所租用at&t公司的國際衛(wèi)星信道接入美國斯坦福線性加速器中心(slac)的64k 盡管如此,這條專線仍是我國部分連入internet的第一根專線中國互聯(lián)網(wǎng)連接世界1885年中國臺(tái)灣建省,首任巡撫劉銘傳派人與福州船政聯(lián)系,使用船政電報(bào)學(xué)堂畢業(yè)生為技術(shù)人員,于1887年鋪設(shè)成功中國臺(tái)灣淡水至福州川石海底電纜 此電纜毀于第二次世界大戰(zhàn)我國于1989年開始投入到全球海底光纜的投資與建設(shè)中來,并于1993年實(shí)現(xiàn)了首條國際海底光纜的登陸(中日之間c-j海底光纜系統(tǒng));隨后在1997年,我國參與建設(shè)的全球海底光纜系統(tǒng) 1998年6月18日劉強(qiáng)東在中關(guān)村創(chuàng)辦京東公司,代理銷售光磁產(chǎn)品1998年11月馬化騰和張志東成立深圳市騰訊計(jì)算機(jī)系統(tǒng)有限公司,oicq開通1998年12月新浪網(wǎng)成立,關(guān)鍵人物:王志東2000年1月李彥宏創(chuàng)建了百度 2003年5月阿里巴巴集團(tuán)在創(chuàng)立淘寶網(wǎng)2003年10月淘寶網(wǎng)首次推出支付寶服務(wù)2004年1月京東多媒體網(wǎng)正式開通,啟用域名www.jdlaser.com2010年4月雷軍創(chuàng)辦小米2011年1月21日騰訊公司推出微信

成功運(yùn)作一個(gè)開源項(xiàng)目的 15 個(gè)要點(diǎn):

運(yùn)作開源項(xiàng)目很容易。所有你需要做的就是讓你的源代碼可用和開源,對(duì)吧?嗯,也許。其實(shí),開源項(xiàng)目是否成功取決于你對(duì)項(xiàng)目成功的定義。且不論你是怎么定義的,創(chuàng)建開源項(xiàng)目需要大量的工作。 1、定義成功在考慮運(yùn)作開源項(xiàng)目之前,你需要明確定義成功的意義。這里有很多因素要考慮。只將代碼放入可公開訪問的存儲(chǔ)庫就可以了,還是說你想對(duì)你的項(xiàng)目做更多?合作與采用對(duì)你來說重要嗎? 2、透明這一點(diǎn)很容易理解:我們要使得社區(qū)可以觀察和了解你正在做的事情:使用易于查找的可公開訪問的源代碼存儲(chǔ)庫,使用面向公眾的問題跟蹤軟件,在社區(qū)可以找到的地方公布發(fā)布計(jì)劃,以及在公共論壇捕獲會(huì)議記錄(例如歸檔郵件列表 對(duì)于許多人來說,開源的“開放”意味著開放新思想,或開放參與。參與開源項(xiàng)目的規(guī)則對(duì)于每個(gè)人應(yīng)該是一樣的(“公平的競爭環(huán)境”):僅僅接受幾個(gè)補(bǔ)丁是不夠的,你必須對(duì)新的思路點(diǎn)子開放。 基金會(huì)可以為你的開源項(xiàng)目提供可信度,然后,開源項(xiàng)目反過來可以為基金會(huì)提供公信力。運(yùn)作開源項(xiàng)目包含很多工作。但是,正如我們所建議的,它所需要的工作量取決于你對(duì)項(xiàng)目成功的定義。

翠屏區(qū)政府公文系統(tǒng):伊春區(qū)政府辦公政務(wù)OA系統(tǒng)中tina_linux_系統(tǒng)軟件 開發(fā)指南

化管理方面的重要性。首先,政府OA辦公系統(tǒng)的作用之一是提升工作效率。傳統(tǒng)的辦公方式往往需要大量的紙質(zhì)文件和繁瑣的手工操作,而OA辦公系統(tǒng)通過數(shù)字化處理和自動(dòng)化流程,極大地簡化了公文系統(tǒng)程。無論是文件的傳輸、審批流程的管理還是信息的查詢與共享,都可以通過政務(wù)OA系統(tǒng)實(shí)現(xiàn)快速、高效的完成。這不僅節(jié)省了大量的時(shí)間和人力成本,還能夠提高工作效率,使政府機(jī)構(gòu)能夠更好地服務(wù)于民眾。其次,政府OA辦公系統(tǒng)在優(yōu)化管理方面也發(fā)揮著重要的作用。政府機(jī)構(gòu)通常需要處理大量的文件和數(shù)據(jù),而這些信息的管理和整理對(duì)于機(jī)構(gòu)的運(yùn)行至關(guān)重要。通過OA辦公系統(tǒng),政府機(jī)構(gòu)能夠?qū)崿F(xiàn)對(duì)文件和數(shù)據(jù)的統(tǒng)一管理、分類存檔和快速檢索,極大地提高了信息管理的效率和準(zhǔn)確性。同時(shí),政務(wù)OA系統(tǒng)還可以通過權(quán)限設(shè)置和審批流程的規(guī)范化,確保政府機(jī)構(gòu)的決策和工作程序tina_linux_系統(tǒng)軟件 開發(fā)指南 1 概述 編寫目的:本文檔作為allwinner tina linux系統(tǒng)平臺(tái)開發(fā)指南,旨在幫助軟件開發(fā)工程師、技術(shù)支持工程師快速上手,熟悉tina linux系統(tǒng)的開發(fā)及調(diào)試流程。 適用范圍:tina linux v3.5及以上版本。 2 tina系統(tǒng)資料 2.1 概述 tina sdk發(fā)布的文檔旨在幫助開發(fā)者快速上手開發(fā)及調(diào)試,文檔中涉及的內(nèi)容并不能涵蓋所有的開發(fā)知識(shí)和問題。文檔列表也正在不斷更新。 tina sdk提供豐富的文檔資料,包括硬件參考設(shè)計(jì)文檔、flash等基礎(chǔ)器件支持列表、量產(chǎn)工具使用說明、軟件開發(fā)與制定介紹文檔、芯片研發(fā)手冊(cè)等資料。 2.2 文檔列表 請(qǐng)以全志科技全志客戶服務(wù)平臺(tái)最新列表為準(zhǔn)。 3 tina系統(tǒng)概述 3.1 概述 tina linux系統(tǒng)是基于openwrt-14.07的版本的軟件開發(fā)包,包含了linux系統(tǒng)開發(fā)用到的內(nèi)核源碼、驅(qū)動(dòng)、工具、系統(tǒng)中間件與應(yīng)用程序包。openwrt是一個(gè)開源的嵌入式linux系統(tǒng)自動(dòng)構(gòu)建框架,是由makefile腳本和kconfig配置文件構(gòu)成的。使得用戶可以通過menuconfig配置,編譯出一個(gè)完整的可以直接燒寫到機(jī)器上運(yùn)行的linux系統(tǒng)軟件。 3.2 系統(tǒng)框圖 tina系統(tǒng)軟件框圖如圖所示,從下至上分為kernel && driver、libraries、system ser-vices、applications四個(gè)層次。各層次內(nèi)容如下: kernel&&driver主要提供linux kernel的標(biāo)準(zhǔn)實(shí)現(xiàn)。tina平臺(tái)的linux kernel 采用linux3.4、linux3.10、linux4.4、linux4.9等內(nèi)核(不同硬件平臺(tái)可能使用不同內(nèi)核版本)。提供安全性,內(nèi)存管理,進(jìn)程管理,網(wǎng)絡(luò)協(xié)議棧等基礎(chǔ)支持;主要是通過linux內(nèi)核管理設(shè)備硬件資源,如cpu調(diào)度、緩存、內(nèi)存、i/o等。 libraries層對(duì)應(yīng)一般嵌入式系統(tǒng),相當(dāng)于中間件層次。包含了各種系統(tǒng)基礎(chǔ)庫,及第三方開源程序庫支持,對(duì)應(yīng)用層提供api接口,系統(tǒng)定制者和應(yīng)用開發(fā)者可以基于libraries層的api開發(fā)新的應(yīng)用。 system services層對(duì)應(yīng)系統(tǒng)服務(wù)層,包含系統(tǒng)啟動(dòng)管理、配置管理、熱插拔管理、存儲(chǔ)管理、多媒體中間件等。 applications層主要是實(shí)現(xiàn)具體的產(chǎn)品功能及交互邏輯,需要一些系統(tǒng)基礎(chǔ)庫及第三方程序庫支持,開發(fā)者可以開發(fā)實(shí)現(xiàn)自己的應(yīng)用程序,提供系統(tǒng)各種能力給到最終用戶。 3.3 開發(fā)流程 tina linux 系統(tǒng)是基于 linux kernel,針對(duì)多種不同產(chǎn)品形態(tài)開發(fā)的 sdk??梢曰诒? sdk,有效地實(shí)現(xiàn)系統(tǒng)定制和應(yīng)用移植開發(fā)。 如上圖所示,開發(fā)者可以遵循上述開發(fā)流程,在本地快速構(gòu)建tina linux系統(tǒng)的開發(fā)環(huán)境和編譯 代碼。下面將簡單介紹下該流程: 檢查系統(tǒng)需求:在下載代碼和編譯前,需確保本地的開發(fā)設(shè)備能夠滿足需求,包括機(jī)器的硬件能力,軟件系統(tǒng),工具鏈等。目前tina linux系統(tǒng)只支持ubuntu操作系統(tǒng)環(huán)境下編譯,并僅提供linux環(huán)境下的工具鏈支持,其他如macos,windows等系統(tǒng)暫不支持。 搭建編譯環(huán)境:開發(fā)機(jī)器需要安裝的各種軟件包和工具,詳見開發(fā)環(huán)境章節(jié),獲知tinalinux已經(jīng)驗(yàn)證過的操作系統(tǒng)版本,編譯時(shí)依賴的庫文件等。 選擇設(shè)備:在編譯源碼前,開發(fā)者需要先導(dǎo)出預(yù)定義環(huán)境變量,然后根據(jù)開發(fā)者根據(jù)的需求,選擇對(duì)應(yīng)的硬件板型,詳見編譯章節(jié)。 系統(tǒng)定制:開發(fā)者可以根據(jù)使用的硬件板子、產(chǎn)品定義,定制u-boot、kernel及open-wrt,請(qǐng)參考后續(xù)章節(jié)中相關(guān)開發(fā)指南和配置的描述。 編譯與打包:完成設(shè)備選擇、系統(tǒng)定制之后執(zhí)行編譯命令,包括整體或模塊編譯以及編譯清理等工作,進(jìn)一步的,將生成的boot/內(nèi)核二進(jìn)制文件、根文件系統(tǒng)、按照一定格式打包成固件。詳見編譯打包章節(jié)。 燒錄并運(yùn)行:繼生成鏡像文件后,將介紹如何燒錄鏡像并運(yùn)行在硬件設(shè)備,進(jìn)一步內(nèi)容詳見系統(tǒng)燒寫章節(jié)。 4 tina開發(fā)環(huán)境 4.1 概述 嵌入式產(chǎn)品開發(fā)流程中,通常有兩個(gè)關(guān)鍵的步驟,編譯源碼與燒寫固件。源碼編譯需要先準(zhǔn)備好 編譯環(huán)境,而固件燒寫則需要廠家提供專用燒寫工具。本章主要講述這如何搭建環(huán)境來實(shí)現(xiàn)tinasdk的編譯、燒寫。 4.2 編譯環(huán)境搭建. 一個(gè)典型的嵌入式開發(fā)環(huán)境包括本地開發(fā)主機(jī)和目標(biāo)硬件板。 本地開發(fā)主機(jī)作為編譯服務(wù)器,需要提供linux操作環(huán)境,建立交叉編譯環(huán)境,為軟件開發(fā)提供代碼更新下載,代碼交叉編譯服務(wù)。 本地開發(fā)主機(jī)通過串口或usb與目標(biāo)硬件板連接,可將編譯后的鏡像文件燒寫到目標(biāo)硬件板,并調(diào)試系統(tǒng)或應(yīng)用程序。 4.2.1 開發(fā)主機(jī)配置. tina linux sdk是在ubuntu14.04開發(fā)測試的,因此我們 推薦使用ubuntu 14.04 主機(jī)環(huán)境進(jìn)行源碼編譯,其他版本沒有具體測試,可能需要對(duì)軟件包做相應(yīng)調(diào)整。 4.2.2 軟件包配置. 編譯tina linux sdk 之前,需要先確定編譯服務(wù)器安裝了gcc,binutils,bzip2,flex,python,perl,make,ia32-libs,find,grep,diff,unzip,gawk,getopt,subver-sion,libz-dev,libc headers。 ubuntu可直接執(zhí)行以下命令安裝: 代碼語言:javascript 復(fù)制 sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawkflex quilt libssl-dev xsltproc libxml-parser-perl mercurial bzr ecj cvs unzip ia32-libslib32z1 lib32z1-dev lib32stdc++6 libstdc++6 -y ubuntu 16.04及以上版本,執(zhí)行下面命令安裝軟件包: 代碼語言:javascript 復(fù)制 sudo apt-get install build-essential subversion git-core libncurses5-dev zlib1g-dev gawk flex quilt libssl-dev xsltproc libxml-parser-perl mercurial bzr ecj cvs unzip lib32z1 lib32z1-dev lib32stdc++ libstdc++6 -y libc6:i386 libstdc++6:i386 lib32ncurses5 lib32z 5 tina系統(tǒng)獲取 5.1 概述 5.2 sdk獲取 allwinner tina linux sdk通過全志代碼服務(wù)器對(duì)外發(fā)布??蛻粜枰驑I(yè)務(wù)/技術(shù)支持窗口申請(qǐng)sdk下載權(quán)限。申請(qǐng)需同步提供ssh公鑰進(jìn)行服務(wù)器認(rèn)證授權(quán),獲得授權(quán)后即可同步代碼。 5.3 sdk結(jié)構(gòu) tina linux sdk主要由構(gòu)建系統(tǒng)、配置工具、工具鏈、host工具包、目標(biāo)設(shè)備應(yīng)用程序、文檔、腳本、linux內(nèi)核、bootloader部分組成,下文按照目錄順序介紹相關(guān)的組成組件。 代碼語言:javascript 復(fù)制 tina-sdk/ ├── build ├── config ├── config.in ├── device ├── dl ├── docs ├── lichee ├── makefile ├── out ├── package ├── prebuilt ├── rules.mk ├── scripts ├── target ├── tmp ├── toolchain └── tools 5.3.1 build目錄 build目錄存放tina linux的構(gòu)建系統(tǒng)文件,此目錄結(jié)構(gòu)下主要是一系列基于makefile規(guī)格編 寫的mk文件。主要的功能是: 檢測當(dāng)前的編譯環(huán)境是否滿足tina linux的構(gòu)建需求。 生成host包編譯規(guī)則。 生成工具鏈的編譯規(guī)則。 生成target包的編譯規(guī)則。 生成linux kernel的編譯規(guī)則。 生成系統(tǒng)固件的生成規(guī)則。 代碼語言:javascript 復(fù)制 build/ ├── autotools.mk ├── aw-upgrade.mk ├── board.mk ├── cmake.mk ├── config.mk ├── debug.mk ├── depends.mk ├── device.mk ├── device_table.txt ├── download.mk ├── dumpvar.mk ├── envsetup.sh 5.3.2 config目錄 config目錄主要存放tina linux中配置菜單的界面以及一些固定的配置項(xiàng),該配置菜單基于內(nèi) 核的mconf規(guī)格書寫。 代碼語言:javascript 復(fù)制 config/ ├── config-build.in ├── config-devel.in ├── config-images.in ├── config-kernel.in └── top_config.in 5.3.3 devices目錄 devices目錄用于存放方案的配置文件,包括內(nèi)核配置,env配置,分區(qū)表配置,sys_config.fex, board.dts等。 這些配置在舊版本上是保存于target目錄下,新版本挪到device目錄。 注意defconfig仍保存在target目錄。 代碼語言:javascript 復(fù)制 device/ └── config ├── chips ├── common └── rootfs_tar 快捷跳轉(zhuǎn)命令:cconfigs 5.3.4 docs目錄 docs目錄主要存放用于開發(fā)的文檔,以markdown格式書寫。 本目錄不再更新,請(qǐng)以全志客戶服務(wù)平臺(tái)系統(tǒng)文檔為準(zhǔn)。 代碼語言:javascript 復(fù)制 docs/ ├── build.md ├── config.md ├── init-scripts.md ├── makefile ├── network.md ├── tina.md ├── wireless.md └── working.md 5.3.5 lichee目錄 lichee目錄主要存放bootloader,內(nèi)核,arisc,dsp等代碼。 代碼語言:javascript 復(fù)制 lichee/ ├── bootloader │ ├── uboot_2011_sunxi_spl │ └── uboot_2014_sunxi_spl ├── brandy │ ├── u-boot-2011.09 │ └── u-boot-2014.07 ├── brandy-2.0 │ ├── spl │ ├── tools │ └── u-boot-2018 ├── linux-3.4 ├── linux-3.10 ├── linux-4.4 ├── linux-4.9 ├── arisc 快捷跳轉(zhuǎn)命令:ckernel,cboot,cboot0,carisc。 5.3.6 package目錄 package目錄存放target機(jī)器上的軟件包源碼和編譯規(guī)則,目錄按照目標(biāo)軟件包的功能進(jìn)行分 類。 代碼語言:javascript 復(fù)制 package/ ├── allwinner ├── base-files ├── devel ├── dragonst ├── firmware ├── kernel ├── ...... └── utils 5.3.7 prebuilt目錄 prebuild目錄存放預(yù)編譯交叉編譯器,目錄結(jié)構(gòu)如下。 代碼語言:javascript 復(fù)制 prebuilt/ └── gcc └── linux-x86 ├── aarch64 │?? ├── toolchain-sunxi-musl │?? └── toolchain-sunxi-glibc ├── arm │?? ├── toolchain-sunxi-arm9-glibc │?? ├── toolchain-sunxi-arm9-musl │?? ├── toolchain-sunxi-glibc │?? ├── toolchain-sunxi-musl └── host └── host-toolchain.txt 5.3.8 scripts目錄 scripts目錄用于存放一些構(gòu)建編譯相關(guān)的腳本。 代碼語言:javascript 復(fù)制 scripts/ ├── arm-magic.sh ├── brcmimage.pl ├── bundle-libraries.sh ├── checkpatch.pl ├── clang-gcc-wrapper ├── cleanfile ├── clean-package.sh ├── cleanpatch ├── ...... 5.3.9 target目錄 target目錄用于存放目標(biāo)板相關(guān)的配置以及sdk和toolchain生成的規(guī)格。 代碼語言:javascript 復(fù)制 target/ ├── allwinner ├── config.in ├── imagebuilder ├── makefile ├── sdk └── toolchain 快捷跳轉(zhuǎn)命令:cdevice。 5.3.10 toolchain目錄. toolchain目錄包含交叉工具鏈構(gòu)建配置、規(guī)則。 代碼語言:javascript 復(fù)制 toolchain/ ├── binutils ├── config.in ├── fortify-headers ├── gcc ├── gdb ├── glibc ├── info.mk ├── insight ├── kernel-headers ├── makefile ├── musl └── wrapper 5.3.11 tools目錄. tools目錄用于存放host端工具的編譯規(guī)則。 代碼語言:javascript 復(fù)制 tools/ ├── autoconf ├── automake ├── aw_tools ├── b43-tools ├── ...... 5.3.12 out目錄. out目錄用于保存編譯相關(guān)的臨時(shí)文件和最終鏡像文件,編譯后自動(dòng)生成此目錄,例如編譯方案 r328s2-perf1。 代碼語言:javascript 復(fù)制 out/ ├── r328s2-perf └── host 其中host目錄用于存放host端的工具以及一些開發(fā)相關(guān)的文件。 r328s2-perf1目錄為方案對(duì)應(yīng)的目錄。方案目錄下的結(jié)構(gòu)如下: 代碼語言:javascript 復(fù)制 out/r328s2-perf ├── boot.img ├── compile_dir ├── image ├── md5sums ├── packages ├── r328s2-perf1-boot.img ├── r328s2-perf1-uimage ├── r328s2-perf1-zimage ├── rootfs.img ├── sha256sums ├── staging_dir └── tina_r328s2-perf1_uart0.img boot.img為最終燒寫到系統(tǒng)boot分區(qū)的數(shù)據(jù),可能為boot.img格式也可能為uimage格式。 rootfs.img為最終燒寫到系統(tǒng)rootfs分區(qū)的數(shù)據(jù),該分區(qū)默認(rèn)為squashfs格式。 r328s2-perf1-zimage為內(nèi)核的zimage格式鏡像,用于進(jìn)一步生成uimage。 r328s2-perf1-uimage為內(nèi)核的uimage格式鏡像,若配置為uimage格式,則會(huì)拷貝成boot.img。 r328s2-perf1-boot.img為內(nèi)核的boot.img格式鏡像,若配置為boot.img格式,則會(huì)拷貝成boot.img compile_dir為sdk編譯host,target和toolchain的臨時(shí)文件目錄,存有各個(gè)軟件包的源碼。 staging_dir為sdk編譯過程中保存各個(gè)目錄結(jié)果的目錄。 packages目錄保存的是最終生成的ipk軟件包。 tina_r328s2-perf1_uart0.img為最終固件包(系統(tǒng)鏡像),串口信息通過串口輸出 若使用pack -d,則生成的固件包為xxx_card0.img,串口信息轉(zhuǎn)遞到tf卡座輸出。 快捷跳轉(zhuǎn)命令:cout。 5.4 sdk更新 sdk更新分為兩類:一類是以補(bǔ)丁的形式發(fā)布到一號(hào)通,發(fā)布后系統(tǒng)以郵件形式通知開發(fā)者;另一類是定期(半年或季度)的小版本迭代升級(jí),將過往的補(bǔ)丁合入到sdk中,發(fā)布后以系統(tǒng)郵件通知開發(fā)者,可基于干凈的sdk包通過repo sync命令更新。 5.5 問題反饋 allwinner提供全志客戶服務(wù)平臺(tái)(https://open.allwinnertech.com),用來登記客戶遇到的 問題以及解決狀態(tài)。方便雙方追蹤,使問題處理更加高效。后續(xù)sdk問題、技術(shù)問題、技術(shù)咨詢 等都可以提交到此系統(tǒng)上,allwinner技術(shù)服務(wù)會(huì)及時(shí)將問題進(jìn)行分發(fā)、處理和跟蹤。 注:系統(tǒng)登錄帳號(hào)需要與allwinner開通確認(rèn)。 6 tina編譯打包 6.1 概述 6.2 編譯系統(tǒng) 代碼語言:javascript 復(fù)制 (1) source build/envsetup.sh (2) lunch (3) make [-jn] (4) pack [-d] 其中, 步驟(1)建立編譯環(huán)境,導(dǎo)出編譯變量。 步驟(2)提示需要選擇你想要編譯的方案。 步驟(3)參數(shù)n為并行編譯進(jìn)程數(shù)量,依賴編譯服務(wù)器cpu核心數(shù),如 4 核pc,可"make -j4" 步驟(4)打包固件,-d參數(shù)使生成固件包串口信息轉(zhuǎn)到tf卡座輸出。 編譯完成后系統(tǒng)鏡像會(huì)打包在out/<board>/目錄下 6.3 編譯boot 命令 命令有效目錄 作用 mboot tina下任意目錄 編譯boot0和uboot mboot0 tina下任意目錄 編譯boot0 muboot tina下任意目錄 編譯uboot 6.4 編譯內(nèi)核 命令 命令有效目錄 作用 mkernel tina下任意目錄 編譯內(nèi)核 6.5 編譯arisc arisc是aw平臺(tái)對(duì)cpus代碼環(huán)境的代稱,主要功能是負(fù)責(zé)休眠,關(guān)機(jī)等底層操作。它包含 cpus運(yùn)行所需的驅(qū)動(dòng),庫及工具鏈等,編譯產(chǎn)生scp.bin,然后打包在tina鏡像中,有boot- loader在啟動(dòng)時(shí)加載到cpus域運(yùn)行。 tina中提供了如下與arisc相關(guān)的跳轉(zhuǎn)、編譯命令 命令 命令有效目錄 作用 carisc tina下任意目錄 跳轉(zhuǎn)到cpus代碼工程目錄 mkarisc tina下任意目錄 編譯cpus代碼 在tina中,編譯arisc代碼有兩種方式,如下: 第一種方式,跳轉(zhuǎn)到arisc代碼路徑下,使用make編譯 arisc代碼庫具有獨(dú)立的工具鏈和構(gòu)建體系,因此對(duì)arisc代碼的編譯,也可以cd到對(duì)應(yīng)的路徑 下,執(zhí)行make命令。但需注意,此時(shí)需要手動(dòng)將生成的scp.bin文件拷貝到sdk的bin文件 路徑下,覆蓋對(duì)應(yīng)的文件(一般路徑是tina/device/config/chips/${平臺(tái)名}/bin)。 操作如下, 代碼語言:javascript 復(fù)制 step1 使用carisc或cd命令跳轉(zhuǎn)到arisc代碼環(huán)境下,一般為tina/lichee/arisc/ar100s。 step2 生成必要的配置。在arch/configs/下,存在許多defconfig默認(rèn)配置文件,可根據(jù)axp型號(hào)選擇使用,例如make sun50iw10p1_axp803_defconfig。此操作將會(huì)在arisc根目錄生成.config。 step3 修改默認(rèn)配置,可使用make menuconfig。此操作會(huì)生成配置菜單,按需選擇配置即可,該操作會(huì)修改.config。如需重新使用默認(rèn)配置,重新執(zhí)行step2即可。 step4 使用make命令編譯 step5 將scp.bin拷貝到tina的bin目錄,即cbin可跳轉(zhuǎn)的目錄即可。如/tina/device/config/chips/r818/binstep6 若需清理工程,可使用make clean step7 如需提交defconfig配置修改,可使用make savedefconfig命令。此命令會(huì)根據(jù).config在arisc根目錄生成 defconfig。將defconfig拷貝到arch/configs/下,覆蓋對(duì)應(yīng)配置文件即可。 注意: 一般來說,arisc執(zhí)行的功能較為底層,多與休眠,關(guān)機(jī)等操作相關(guān),對(duì)穩(wěn)定性要求較高。我們不 建議客戶自己修改任何相關(guān)配置和代碼,如必須,請(qǐng)與我司聯(lián)系或執(zhí)行足夠的穩(wěn)定性測試。 第二種方式,使用mkarisc命令 如上述方法所述,tina為了解決arisc編譯后還需手動(dòng)拷貝的問題,tina提供了這個(gè)快捷命令 mkarisc。需要指出的是:目前只支持r818、mr813的arisc代碼編譯。 操作如下,較為簡單 代碼語言:javascript 復(fù)制 step1 配置tina環(huán)境,如soure build/envsetup.sh, lunch等操作。 step2 使用mkarisc編譯即可或直接編譯tina,在編譯tina時(shí),也會(huì)自動(dòng)調(diào)用mkarisc命令。 注意: 使用mkarisc命令編譯時(shí),會(huì)自動(dòng)讀取board.dts獲取axp型號(hào),然后使用對(duì)應(yīng)的默認(rèn)配置文 件編譯。如board.dts中指定使用“x-powers,axp803”時(shí),mkarsic命令會(huì)使用arisc工程環(huán) 境下的sun50iw10p1_axp803_defconfig配置文件編譯。此時(shí),若您需要修改該arisc配置, 只能先修改該配置文件后編譯,除此外不接受其他配置修改的方式。 6.6 編譯e907固件(v85x平臺(tái)異構(gòu)amp核) e907是v85x平臺(tái)amp cpu的代稱,其主要功能是提供通用算力補(bǔ)充、輔助linux實(shí)現(xiàn)快起 等。它包含e907運(yùn)行所需的驅(qū)動(dòng)、庫及工具鏈等,編譯產(chǎn)生riscv.fex,打包到tina鏡像中, 由bootloader在啟動(dòng)時(shí)加載到risc-v核上運(yùn)行。 在tina sdk中,編譯e907 riscv代碼如下: e907 riscv 代碼庫具有獨(dú)立的工具鏈和構(gòu)建體系,因此對(duì) e907 固件的編譯,也可以跳 轉(zhuǎn)到對(duì)應(yīng)的路徑下,執(zhí)行命令。但需注意,此時(shí)需要手動(dòng)將生成的 melis30.elf 文件拷貝 到 sdk 的 bin 文件路徑下,覆蓋對(duì)應(yīng)的文件(一般路徑是 device/config/chips/${平臺(tái) 名}/configs/default/riscv.fex)。 操作如下, 代碼語言:javascript 復(fù)制 step1 使用cd命令跳轉(zhuǎn)到e907代碼環(huán)境下,一般為rtos-dev/lichee/melis-v3.0/source step2 source melis-env.sh step3 lunch v853-e907-ver1-board step4 make menuconfig step5 make -j step6 如需減少存儲(chǔ)空間,可裁剪調(diào)試信息,在melis source目錄執(zhí)行:riscv64-unknown-elf-strip ekernel/melis30.elf step7 拷貝并重命名成riscv.fex替換掉tina/device/config/chips/v853/configs/default目錄下的riscv.fex cp ekernel/melis30.elf /home/xxx/tina/device/config/chips/v853/configs/default/riscv.fex step8 tina系統(tǒng)目錄執(zhí)行打包命令pack 6.7 重編應(yīng)用 請(qǐng)確保進(jìn)行過一次固件的編譯,確保sdk基礎(chǔ)已經(jīng)編譯,才能單獨(dú)重編應(yīng)用包。重編應(yīng)用包應(yīng)用場景一般為: 只修改了應(yīng)用,不想重新燒寫固件,只需要安裝應(yīng)用安裝包即可 。請(qǐng)確保在編譯前已加載tina環(huán)境: 代碼語言:javascript 復(fù)制 $ source build/envsetup.sh $ lunch 6.7.1 方法一 當(dāng)在應(yīng)用包的目錄(包括其子目錄)中,可執(zhí)行 代碼語言:javascript 復(fù)制 $ mm [-b] => b參數(shù)則先clean此應(yīng)用臨時(shí)文件再編譯 示例:假設(shè)軟件包路徑為:tina/package/utils/rwcheck,則: 代碼語言:javascript 復(fù)制 $ cd tina/package/utils/rwcheck $ mm -b 編譯出應(yīng)用安裝包保存路徑為: 代碼語言:javascript 復(fù)制 tina/out/<方案>/packages/base 6.7.2 方法二 當(dāng)在tina的根目錄,可執(zhí)行: 代碼語言:javascript 復(fù)制 $ make <應(yīng)用包的路徑>/clean,==>清空應(yīng)用包臨時(shí)文件 $ make <應(yīng)用包的路徑>/install,==>編譯軟件包 或者 $ make <應(yīng)用包的路徑>/{clean,install},==>先清空臨時(shí)文件再編譯 示例:假設(shè)軟件包的路徑為:tina/package/utils/rwcheck,則: 代碼語言:javascript 復(fù)制 $ cd tina $ make package/utils/rwcheck/{clean,install} 6.8 其他命令 命令 命令有效目錄 作用 make tina根目錄 編譯整個(gè)sdk make menuconfig tina根目錄 啟動(dòng)軟件包配置界面 make kernel_menuconfig tina根目錄 啟動(dòng)內(nèi)核配置界面 mkarisc tina下任意目錄 編譯cpus源碼,根據(jù)axp型號(hào)選擇對(duì)應(yīng)的默認(rèn)配置 printfconfig tina下任意目錄 打印當(dāng)前sdk的配置 croot tina下任意目錄 快速切換到tina根目錄 cconfigs tina下任意目錄 快速切換到方案的bsp配置目錄 cdevice tina下任意目錄 快速切換到方案配置目錄 carisc tina下任意目錄 快速切換到cpus代碼目錄 cgeneric tina下任意目錄 快速切換到方案generic目錄 cout tina下任意目錄 快速切換到方案的輸出目錄 cboot tina下任意目錄 快速切換到bootloader目錄 cgrep tina下任意目錄 在c/c++/h文件中查找字符串 minstall path/to/package/ tina根目錄 編譯并安裝軟件包 mclean path/to/package/ tina根目錄 clean軟件包 mm [-b] 軟件包目錄 編譯軟件包,-b指編譯前先clean pack tina根目錄 打包固件 m tina下任意目錄 make的快捷命令,編譯整個(gè)sdk p tina下任意目錄 pack的快捷命令,打包固件 7 tina系統(tǒng)燒寫 7.1 概述 本章節(jié)主要介紹如何將構(gòu)建完成的鏡像文件(image)燒寫并運(yùn)行在硬件設(shè)備上的流程。 sdk中的燒錄工具不再更新,后續(xù)會(huì)刪除,請(qǐng)優(yōu)先選擇從全志客戶服務(wù)平臺(tái)下載最新燒錄工具。 windows工具均集成在apst中,下載安裝apst即可,apst的工具均自帶文檔。 7.2 燒錄工具 tina提供的幾種鏡像燒寫工具介紹如表所示,用戶可以選擇合適的燒寫方式進(jìn)行燒寫。 工具 運(yùn)行系統(tǒng) 描述 phoenixsuit windows 分分區(qū)升級(jí)及整個(gè)固件升級(jí)工具 phoenixcard windows 卡固件制作工具 phoenixusbpro windows 量產(chǎn)升級(jí)工具,支持usb一拖 8 燒錄 livesuit ubuntu 固件升級(jí)工具 對(duì)于ubuntu: 64bit主機(jī)使用livesuitv306_for_linux64.zip。 32bit主機(jī)使用livesuitv306_for_linux32.zip。 具體燒錄工具和使用說明,請(qǐng)到全志客戶服務(wù)平臺(tái)下載。 7.3 進(jìn)入燒錄模式. 設(shè)備需進(jìn)入燒錄模式,以下幾種情況會(huì)進(jìn)入燒錄模式: brom無法讀取到boot0,例如新?lián)Q的flash不包含數(shù)據(jù),或者上電時(shí)短路flash阻斷通信。 在串口中按 2 進(jìn)入燒錄。即,在串口工具輸出框中,按住鍵盤的’2’,不停輸出字符’2’,上電啟動(dòng)。boot0檢測到此字符,會(huì)跳到燒錄模式。 在uboot控制臺(tái),執(zhí)行efex。 在linux控制臺(tái),執(zhí)行reboot efex。 adb可用的情況下,可使用adb shell reboot efex,或點(diǎn)擊燒錄工具上的“立即燒錄”按鈕。 當(dāng)完整配置[fel_key]下fel_key_max和fel_key_min時(shí),按下鍵值在范圍內(nèi)按鍵,之后上電。 當(dāng)板子有fel按鍵時(shí),按住fel按鍵上電。 制作特殊的啟動(dòng)卡,從卡啟動(dòng)再進(jìn)入燒錄模式。 8 tina uboot定制開發(fā) 8.1 概述 本章節(jié)簡單介紹uboot基本配置、功能裁剪、編譯打包、常用命令的使用,幫助客戶了解tina 平臺(tái)uboot框架,為boot定制開發(fā)提供基礎(chǔ)。 目前tina sdk共有三版uboot,分別是uboot-2011、uboot-2014、uboot-2018,分別在不 同硬件平臺(tái)上使用,客戶拿到sdk需要根據(jù)開發(fā)的硬件平臺(tái)核對(duì)版本信息。 8.2 代碼路徑 代碼語言:javascript 復(fù)制 tinasdk/ ├── brandy │?? ├── ... │?? ├── u-boot-2011 │?? └── u-boot-2014 ├── brandy-2.0 │?? ├── ... │?? └── u-boot-2018 8.3 uboot功能 tinasdk中,bootloader/uboot在內(nèi)核運(yùn)行之前運(yùn)行,可以初始化硬件設(shè)備、建立內(nèi)存空間映 射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適狀態(tài),為最終調(diào)用linux內(nèi)核準(zhǔn)備好正確的環(huán)境。 在tina系統(tǒng)平臺(tái)中,除了必須的引導(dǎo)系統(tǒng)啟動(dòng)功能外,uboot還提供燒寫、升級(jí)等其它功能。 引導(dǎo)內(nèi)核能從存儲(chǔ)介質(zhì)(nand/mmc/spinor)上加載內(nèi)核鏡像到dram指定位置并運(yùn)行。 量產(chǎn)&升級(jí)包括卡量產(chǎn),usb量產(chǎn),私有數(shù)據(jù)燒錄,固件升級(jí)。 電源管理包括進(jìn)入充電模式時(shí)的控制邏輯和充電時(shí)的顯示畫面。 開機(jī)提示信息開機(jī)能顯示啟動(dòng)logo圖片(bmp格式)。 fastboot功能實(shí)現(xiàn)fastboot的標(biāo)準(zhǔn)命令,能使用fastboot刷機(jī)。 8.4 uboot配置 以u(píng)boot-2018為例,各項(xiàng)功能可以通過defconfig或配置菜單menuconfig進(jìn)行開啟或關(guān)閉, 具體配置方法如下: 8.4.1 defconfig方式 8.4.1.1 defconfig配置步驟 vim /tinasdk/lichee/brandy2.0/u-boot-2018/configs/sun8iw18p1_defconfig (若是spinor方案則打開sun8iw18p1_nor_defconfig) 打開sun8iw18p1_defconfig或sun8iw18p1_nor_defconfig后,在相應(yīng)的宏定義前去掉或添加"#"即可將相應(yīng)功能開啟或關(guān)閉。 如上圖,只要將config_sunxi_nand前的#去掉即可支持nand相關(guān)功能,其他宏定義的開啟關(guān)閉也類似。 8.4.1.2 defconfig配置宏介紹. 如下圖是sun8iw18p1_defconfig/sun8iw18p1_nor_defconfig中的基本宏定義的介紹: 8.4.2 menuconfig方式 通過menuconfig方式配置的方法步驟如下: 代碼語言:javascript 復(fù)制 cd /tinasdk/lichee/brandy2.0/u-boot-2018/ make arch=arm menuconfig或make arch=arm64 menuconfig 注意:arm針對(duì) 32 位平臺(tái),arm64針對(duì) 64 位平臺(tái)。 執(zhí)行上述命令會(huì)彈出menuconfig配置菜單,如下圖所示,此時(shí)即可對(duì)各模塊功能進(jìn)行配置,配 置方法menuconfig配置菜單窗口中有說明。 8.5 uboot編譯 8.5.1 方法一 在tina目錄下即可編譯uboot。 代碼語言:javascript 復(fù)制 source build/envsetup.sh(見詳注1) lunch (見詳注2) muboot(見詳注3) 詳注: 1 加載環(huán)境變量及tina提供的命令。 2 輸入編號(hào),選擇方案。 3 編譯uboot,編譯完成后自動(dòng)更新uboot binary到tinasdk/target/allwinner/$(board)-common/bin/。 8.5.2 方法二 代碼語言:javascript 復(fù)制 source build/envsetup.sh(見詳注1) lunch (見詳注2) cboot(見詳注3) make xxx_config(見詳注4) make -j 詳注: 3 跳轉(zhuǎn)到uboot源碼目錄。 4 選擇方案配置,如果是使用norflash,運(yùn)行make xxx_nor_config。 5 執(zhí)行編譯uboot的動(dòng)作。 8.6 uboot的配置 8.6.1 sys_config配置. sys_config.fex是對(duì)不同模塊參數(shù)進(jìn)行配置的重要文件,對(duì)各模塊重要參數(shù)的更改及更新提供了 極大的方便。其文檔存放路徑: 代碼語言:javascript 復(fù)制 tinasdk/target/allwinner/$(board)/configs/sys_config.fex tinasdk/device/config/chips/$(chip)/configs/$(board)/sys_config.fex 8.6.1.1 sys_config.fex結(jié)構(gòu)介紹 sys_config.fes主要由主鍵和子鍵構(gòu)成,主鍵是某項(xiàng)功能或模塊的主標(biāo)識(shí),由[]括起,子鍵是對(duì) 該功能或模塊中各個(gè)參數(shù)的配置項(xiàng),如下圖所示,dram_para是主鍵,dram_clk、dram_type 和dram_zp是子鍵。 8.6.1.2 sys_config.fex配置實(shí)例 [platform]:平臺(tái)相關(guān)配置項(xiàng)。 例如,debug_mode =1表示開啟uboot的調(diào)試模式,開啟后會(huì)在log中打印出對(duì)應(yīng)的調(diào)試信 息。next_work=2表示燒錄完成后系統(tǒng)的下一步執(zhí)行動(dòng)作(0x1表示正常啟動(dòng)、0x2表示重啟、 0x3表示關(guān)),其他配置可以查看[platform]前的提示說明。 [target]:目標(biāo)平臺(tái)相關(guān)功能配置項(xiàng) 上圖中的可以通過配置boot_clock配置cpu的頻率大小。 [uart_para]:串口配置項(xiàng),uart_para配置項(xiàng)是uboot串口打印調(diào)試時(shí)用到的重要配置 上圖中的uart_debug_port=0表示使用的是uart0,uart_debug_tx/uart_debug_rx配置的gpio口(pa04/pa05)需要根據(jù)對(duì)應(yīng)的gpio datasheet進(jìn)行配置。 8.6.1.3 sys_config.fex解析流程 在uboot2014/2018中sys_config.fex最終會(huì)被轉(zhuǎn)化為dtb(device tree binary,linux內(nèi)核配置方式),dtb最終會(huì)被打包燒錄至flash中,啟動(dòng)過程中會(huì)將該文件加載至內(nèi)存,之前在sys_config.fex中配置的參數(shù)已轉(zhuǎn)化為dtb節(jié)點(diǎn),最終會(huì)調(diào)用fdt_getprop_32()函數(shù)對(duì)dtb中的節(jié)點(diǎn)進(jìn)行解析。 8.6.2 環(huán)境變量配置. uboot的環(huán)境變量就是一個(gè)個(gè)的鍵值對(duì),操作接口為:getenv(),setenv(),saveenv()。環(huán)境變量的形式: 代碼語言:javascript 復(fù)制 boot_normal=sunxi_flash read 40007800 boot;boota 4000780\ boot_recovery=sunxi_flash read 40007800 recovery;boota 40007800\ boot_fastboot= fastboot 8.6.2.1 環(huán)境變量作用. 可以把一些參數(shù)信息或者命令序列定義在該環(huán)境變量中。在環(huán)境變量中定義uboot命令序列, 可以把uboot各個(gè)功能模塊按順序組合在一起執(zhí)行,從而完成某個(gè)重要功能。 例如,如果執(zhí)行了上述提到的 boot_normal 環(huán)境變量對(duì)應(yīng)的命令,uboot 則會(huì)先調(diào)用 sunxi_flash命令從存儲(chǔ)介質(zhì)的boot分區(qū)上加載內(nèi)核到dram的0x40007800位置;然后調(diào) 用boota命令完成內(nèi)核的引導(dǎo)。 uboot啟動(dòng)時(shí)調(diào)用環(huán)境變量方式下如圖所示: 8.6.2.2 環(huán)境變量配置示例介紹. tinasdk中,環(huán)境變量配置文件保存在tinasdk/target/allwinner/$(board)/configs/env.cfg 文件,用戶使用的時(shí)候,可能會(huì)看到env-4.4.cfg、env-4.9.cfg等文件,env-xxx后綴數(shù)字表示在不同內(nèi)核版本上的配置。打開后其內(nèi)容示例如下, bootdelay=0,改環(huán)境變量bootdelay(即boot啟動(dòng)時(shí)log中的倒計(jì)時(shí)延遲時(shí)間)值的大小,為便于調(diào)試,bootdelay的值一般不要等于 0 ,這樣在小機(jī)上電后按下任意鍵才能進(jìn)入uboot shell命令狀態(tài)。 boot_normal=sunxi_flash read 40007800 boot;boota 4000780,設(shè)置啟動(dòng)內(nèi)核命令,即將boot分區(qū)讀到內(nèi)存0x40007800地址處,然后從內(nèi)存0x40007800地址處啟動(dòng)內(nèi)核。 setargs_nand=setenv bootargs earlyprintk=${earlyprink}… ,設(shè)置內(nèi)核相關(guān)環(huán)境變量,該變量在啟動(dòng)至內(nèi)核的log中會(huì)打印處理,即cmdline如下圖: loglevel=8,設(shè)置內(nèi)核log打印等級(jí)。 8.6.3 sys_partition.fex分區(qū)配置 分區(qū)配置文件是一個(gè)規(guī)劃磁盤分區(qū)的文件,燒錄過程會(huì)按照該分區(qū)配置文件將各分區(qū)數(shù)據(jù)燒錄至flash中。 tinasdk中,分區(qū)配置文件路徑tinasdk/target/allwinner/$(board)/configs/sys_partition.fex。有些方案可以看到sys_partition.fex、sys_partition_nor.fex兩個(gè)分區(qū)配置文件,若是打包tina非nor固件,則使用的是sys_partition_linux.fex配置文件,若是打包nor固件,則使用的是sys_partition_nor.fex。 8.6.3.1 sys_partition.fex分區(qū)配置介紹 一個(gè)分區(qū)的屬性,包含名稱、分區(qū)大小、下載文件與用戶屬性。以下是文件中所描述的一個(gè)分區(qū)的屬性: name,分區(qū)名稱由用戶自定義。當(dāng)用戶在定義一個(gè)分區(qū)的時(shí)候,可以把這里改成自己希望的字符串,但是長度不能超過 16 個(gè)字節(jié)。 size,定義該分區(qū)的大小,以扇區(qū)的單位(1扇區(qū)=512bytes,如上圖給env 分區(qū)分配了32768 個(gè)扇區(qū),即32768*512/1024/1024 = 16m),注意,為了字節(jié)對(duì)齊,這里分配的扇區(qū)大小應(yīng)當(dāng)能整除 128 。 downloadfile,下載文件的路徑和名稱??梢允褂孟鄬?duì)路徑,相對(duì)是指相對(duì)于image.cfg文件所在分區(qū)。也可以使用絕對(duì)路徑。 user_type,提供給操作系統(tǒng)使用的屬性。目前,每個(gè)操作系統(tǒng)在讀取分區(qū)的時(shí)候,會(huì)根據(jù)用戶屬性來判斷當(dāng)前分區(qū)是不是屬于自己的然后才進(jìn)行操作。這樣設(shè)計(jì)的目的是為了避免在多系統(tǒng)同時(shí)存在的時(shí)候,a操作系統(tǒng)把b操作系統(tǒng)的系統(tǒng)分區(qū)進(jìn)行了不應(yīng)該的讀寫操作,導(dǎo)致b操作系統(tǒng)無法正常工作。 更具體的說明,可參考《tinalinux存儲(chǔ)管理開發(fā)指南》。 9 tina kernel定制開發(fā) 9.1 概述 本章節(jié)簡單介紹kernel基本配置、功能裁剪、常用命令的使用,幫助客戶了解tina平臺(tái)linux 內(nèi)核,為內(nèi)核定制開發(fā)提供基礎(chǔ)。 目前tina sdk共有 4 版linux kernel,分別是linux-3.4、linux-3.10、linux-4.4、linux- 4.9,分別在不同硬件平臺(tái)上使用,客戶拿到sdk需要根據(jù)開發(fā)的硬件平臺(tái)核對(duì)內(nèi)核信息。 9.2 代碼路徑 代碼語言:javascript 復(fù)制 tinasdk/ ├── ... ├── linux-3.10 ├── linux-3.4 ├── linux-4.4 └── linux-4.9 9.3 模塊開發(fā)文檔. 詳閱bsp開發(fā)文檔,文檔目錄包括常用內(nèi)核模塊使用與開發(fā)說明。 9.4 內(nèi)核配置 客戶在定制化產(chǎn)品時(shí),通常需要更改linux內(nèi)核配置,在tinasdk中,打開內(nèi)核配置的方式如 下, 代碼語言:javascript 復(fù)制 croot make kernel_menuconfig 執(zhí)行完后,shell控制臺(tái)會(huì)跳出配置菜單。如下圖所示, 10 tina系統(tǒng)定制開發(fā) 10.1 tina procd-init與busybox-init切換. tina默認(rèn)為procd-init: 代碼語言:javascript 復(fù)制 make menuconfig進(jìn)行配置: 1.system init 選擇procd-init 2.以下一步步選中 base system ---> <*>block-mount <*>busybox................................ core utilities for embedded linux ---> init utilities ---> [ ] init 此處不選 coreutils ---> [*] head miscellaneous utilities ---> [*] strings <*> uci <*> logd 3.env.cfg修改 init=/sbin/init busybox-init自啟動(dòng)方式配置如下: 代碼語言:javascript 復(fù)制 make menuconfig進(jìn)行配置: 1.system init 選擇busy-init 2.以下一步步選中 base system ---> <*>busybox................................ core utilities for embedded linux ---> init utilities ---> [* ] init 此處選上 3.env.cfg修改 init=/init rdinit=/rdinit 10.2應(yīng)用移植 在tina linux sdk中一個(gè)軟件包目錄下通常包含如下兩個(gè)目錄和一個(gè)文件: 代碼語言:javascript 復(fù)制 package/<分類>/<軟件包名>/makefile package/<分類>/<軟件包名>/patches/ [可選] package/<分類>/<軟件包名>/files/ [可選] 其中, patches 保存補(bǔ)丁文件,在編譯前會(huì)自動(dòng)給源碼打上所有補(bǔ)丁 files 保存軟件包的源碼,在編譯時(shí)會(huì)對(duì)應(yīng)源碼覆蓋源碼中的源文件 makefile 編譯規(guī)則文件, 10.2.1 makefile范例 該makefile的功能是軟件源碼的準(zhǔn)備,編譯和安裝的過程,提供給tina linux識(shí)別和管理軟件包的接口,軟件的編譯邏輯是由軟件自身的makefile決定,理論上和該makefile(該makefile只執(zhí)行make命令和相關(guān)參數(shù))無實(shí)質(zhì)關(guān)系。 詳注: 代碼語言:javascript 復(fù)制 1.如果是開源軟件,軟件包版本建議與下載軟件包的版本一致。 2.以pkg開頭的變量主要告訴編譯系統(tǒng)去哪里下載軟件包。 3.md5sum用于校驗(yàn)下載下來的軟件包是否正確,如果正確,在編譯該軟件的時(shí)候,就會(huì)在pkg_build_dir下找到該軟件包的源碼。 4.package/<name>: <name>用來指定該package的名字,該名字會(huì)在配置系統(tǒng)中顯示。 5.使用依賴包的名字<name>來指定依賴關(guān)系,如果是擴(kuò)展包,前面添加一個(gè)”+”號(hào),如果是內(nèi)核版本依賴使用@linux_2_<minor version>。 6.如果該值為 1 ,該包將不會(huì)出現(xiàn)在配置菜單中,但會(huì)作為固定編譯,可選。 7.在開源軟件中一般用來生成makefile,其中參數(shù)可以通過configure_vars來傳遞。 8.在開源軟件中一般相當(dāng)于執(zhí)行make,其中有兩個(gè)參數(shù)可以使用:make_flags和make_vars。 9.內(nèi)置的幾個(gè)關(guān)鍵字如下: install_dir相當(dāng)于install -d m0755 install_bin相當(dāng)于install -m0755 install_data相當(dāng)于install -m0644 install_conf相當(dāng)于install -m0600 10.該makefile的所有define部分都是為該宏的參數(shù)做的定義.上層makefile通過調(diào)用此宏進(jìn)行編譯。 10.2.2 自啟動(dòng)設(shè)置 在tina linux中支持兩種格式的初始化腳本,一種是busybox式或者sysv式的初始化腳本, 一種是procd式的初始化腳本。一般我們把由初始化腳本啟動(dòng)的應(yīng)用叫做服務(wù)。 初始化腳本以shell腳本的編程語言組織,shell腳本作為基礎(chǔ)知識(shí)在此不展開說明。一般情況 下,初始化腳本源碼保存在軟件的files目錄,且后綴為“.init”,例如: 代碼語言:javascript 復(fù)制 tina/package/system/fstools/files/fstab.init 在makefile的install中把初始化腳本安裝到小機(jī)端的/etc/init.d中,例如: 代碼語言:javascript 復(fù)制 define package/block-mount/install $(install_dir) $(1)/etc/init.d/ $(install_bin) ./files/fstab.init $(1)/etc/init.d/fstab endef 10.2.2.1調(diào)用自啟動(dòng)腳本. 手動(dòng)調(diào)用方式在啟動(dòng)的時(shí)候會(huì)有太多的log,且log信息已被logd守護(hù)進(jìn)程收集,不利于我們 調(diào)試初始化腳本,此時(shí)可通過小機(jī)端的命令行手動(dòng)調(diào)用的形式來調(diào)試,例如: 代碼語言:javascript 復(fù)制 root@tinalinux: /# /etc/init.d/fstab start 10.2.2.2 sysv格式腳本 sysv式的初始化腳本保存在小機(jī)端的/etc/init.d/目錄下,實(shí)現(xiàn)開機(jī)自啟動(dòng)。下例以最小內(nèi)容的初 始化腳本作示例講解,核心是實(shí)現(xiàn)start/stop函數(shù): 代碼語言:javascript 復(fù)制 #!/bin/sh /etc/rc.common # example script # copyright (c) 2007 openwrt.org start=10 stop=15 depend=xxxx start() { #commands to launch application } stop() { #commands to kill application } 注意: start=10, 指明開機(jī)啟動(dòng)優(yōu)先級(jí)(序列) [數(shù)值越小, 越先啟動(dòng)],取值范圍0-99。 stop=15, 指明關(guān)機(jī)停止優(yōu)先級(jí)(序列) [數(shù)值越小, 越先關(guān)閉],取值范圍0-99。 depend=xxxx, 指明初始化腳本會(huì)并行執(zhí)行,通過此項(xiàng)配置確保執(zhí)行的依賴。 名稱 屬性 功能 start 必須實(shí)現(xiàn) 啟動(dòng)一個(gè)服務(wù) stop 必須實(shí)現(xiàn) 停止一個(gè)服務(wù) reload 可選實(shí)現(xiàn) 重啟一個(gè)服務(wù) enable 可選實(shí)現(xiàn) 重新加載服務(wù) disable 可選實(shí)現(xiàn) 禁用服務(wù) 在shell里面可以使用如下的命令來操作相關(guān)的服務(wù)。 代碼語言:javascript 復(fù)制 $ root@tinalinux:/# /etc/init.d/exmple restart|start|stop|reload|enable|disable 10.2.2.3 procd格式腳本 以下例的初始化腳本作示例講解,主要是實(shí)現(xiàn)函數(shù)start_service: 代碼語言:javascript 復(fù)制 #!/bin/sh /etc/rc.common use_procd=1 prog=xxxx start=10 stop=15 depend=xxxx start_service() { procd_open_instance procd_set_param command $prog -f ...... procd_close_instance } 詳細(xì)的介紹可以參考:https://wiki.openwrt.org/inbox/procd-init-scripts。 10.3應(yīng)用調(diào)試 新添加的軟件默認(rèn)配置為不使能,此時(shí)需要手動(dòng)配置使能軟件包。通過在tina的根目錄執(zhí)行 make menuconfig進(jìn)入軟件包的配置界面: 軟件包的所在路徑與軟件包的makefile中的定義有關(guān),以fstools為例,在makefile中定義 為: 代碼語言:javascript 復(fù)制 define package/fstools section:=base category:=base system depends:=+ubox +use_glibc:librt +nand_support:ubi-utils title:=openwrt filesystem tools menu:=1 endef 此時(shí),只需要在menuconfig界面中進(jìn)入basy system即可找到fstools的軟件包。 前綴符號(hào)含義: 代碼語言:javascript 復(fù)制 [*] 或<*> : 編譯進(jìn)入sdk [ ] 或< > : 不包含 支持操作: 代碼語言:javascript 復(fù)制 y或y:選擇包含 n或n:取消選擇 10.4應(yīng)用編譯 詳見重編應(yīng)用章節(jié)。 10.5應(yīng)用安裝 獲取安裝包 安裝包一般位于目錄: 代碼語言:javascript 復(fù)制 tina/out/<方案>/packages/base 安裝包命名格式為: 代碼語言:javascript 復(fù)制 <應(yīng)用名>_<應(yīng)用版本>-<應(yīng)用釋放版本>_sunxi.ipk 安裝應(yīng)用包 通過adb推送安裝包到小機(jī): 代碼語言:javascript 復(fù)制 $ adb push <安裝包路徑> <推送到小機(jī)路徑> 安裝應(yīng)用包: 代碼語言:javascript 復(fù)制 $ opkg install <安裝包路徑> 10.6分區(qū)與掛載 升級(jí)分區(qū) 分區(qū) 功能 boot分區(qū) 存內(nèi)核鏡像 rootfs分區(qū) 基礎(chǔ)系統(tǒng)鏡像分區(qū),包含/lib,/bin,/etc等 recovery分區(qū) 存放恢復(fù)系統(tǒng)鏡像,僅大容量方案有,詳見ota文檔 extend分區(qū) 存放恢復(fù)系統(tǒng)鏡像及rootfs的usr部分,僅小容量方案有,詳見ota文檔 不升級(jí)分區(qū) 分區(qū) 功能 private分區(qū) 存儲(chǔ)sn號(hào)分區(qū) misc分區(qū) 系統(tǒng)狀態(tài)、刷機(jī)狀態(tài)分區(qū) udisk分區(qū) 用戶數(shù)據(jù)分區(qū),一般掛載在/mnt/udisk overlayfs分區(qū) 存儲(chǔ)overlayfs覆蓋數(shù)據(jù) 默認(rèn)掛載點(diǎn) 分區(qū) 掛載點(diǎn) 備注 /dev/by-name/boot /boot /dev/by-name/boot-res /boot-res /dev/by-name/udisk /mnt/udisk 用戶數(shù)據(jù)分區(qū) /dev/mmcblk0或/dev/mmcblk0p1 /mnt/sdcard tf卡掛載點(diǎn) /dev/by-name/rootfs_data /overlay 存儲(chǔ)overlayfs覆蓋數(shù)據(jù)

我是如何在四年時(shí)間里,從廚師轉(zhuǎn)行為 serverless 應(yīng)用開發(fā)者:

當(dāng)時(shí),我開始在在家中制作些小點(diǎn)心賺取外快。那時(shí)候我從學(xué)校搬了出來,在搬到新住處后,我在工作的餐廳和城區(qū)的家之間往返很不便。于是我決定在餐廳做兼職,另外找一份咖啡店的工作。 因此,我給自己設(shè)下了一個(gè)任務(wù),學(xué)習(xí)有關(guān)服務(wù)器的知識(shí)以及如何針對(duì)服務(wù)器編寫代碼。我開始采用 php 構(gòu)建簡單的后端應(yīng)用,從移動(dòng)測試應(yīng)用、web 窗體和 curl 命令獲取數(shù)據(jù)。 我們不僅成功遷移了應(yīng)用,還創(chuàng)建一個(gè)框架,框架中規(guī)定了相關(guān)的步驟,便于我們以后遵循這些流程來進(jìn)行遷移。就這樣,我們建立起了一支創(chuàng)新團(tuán)隊(duì)。我們希望通過提出創(chuàng)新的想法來讓辦公室更智能。 向無服務(wù)器開發(fā)過渡我對(duì) serverless framework 一見傾心。我只需把精力集中在代碼上,就可讓應(yīng)用快速投入運(yùn)行 —— 在人們使用的同時(shí),我們可以不斷開發(fā)和實(shí)現(xiàn)自己的構(gòu)思。 我過去 5 個(gè)月一直在學(xué)習(xí) serverless framework,現(xiàn)在正計(jì)劃將 serverless framework 投入到工作中,這項(xiàng)服務(wù)可幫助客戶構(gòu)建和遷移其應(yīng)用。

真果科技賈求真:數(shù)字新經(jīng)濟(jì),金融新業(yè)態(tài)|騰訊saas加速器·ceo說:

政令中第十四條規(guī)定“中小企業(yè)以應(yīng)收賬款擔(dān)保融資的,機(jī)關(guān)、事業(yè)單位和大型企業(yè)應(yīng)當(dāng)自中小企業(yè)提出確權(quán)請(qǐng)求之日起30日內(nèi)確認(rèn)債權(quán)債務(wù)關(guān)系,支持中小企業(yè)融資”;政令中第二十一條規(guī)定“省級(jí)以上人民政府建立督查制度 綜上,我們認(rèn)為區(qū)域政府搭建政務(wù)金融科技服務(wù)平臺(tái),行政化推動(dòng)轄內(nèi)核心企業(yè)確權(quán),鏈接金融機(jī)構(gòu),為鏈屬中小微企業(yè)提供數(shù)字化融資服務(wù),構(gòu)建數(shù)字金融g2s2b業(yè)態(tài)創(chuàng)新發(fā)展模式是政府參與金融的必由之路。 面向核心企業(yè)群體中的機(jī)關(guān)、事業(yè)單位、國有企業(yè),建議積極響應(yīng)政府號(hào)召,國企擔(dān)當(dāng),去政務(wù)金融平臺(tái)實(shí)施融資確權(quán)工作。 ? 面向政府機(jī)構(gòu)、產(chǎn)業(yè)市場、金融機(jī)構(gòu),提供數(shù)字金融科技產(chǎn)品及融資運(yùn)營服務(wù)。 騰訊攜手真果科技共同助力長沙市政府、湘江國投構(gòu)建完善的區(qū)塊鏈金融產(chǎn)業(yè)生態(tài),打造全國有影響力的“一區(qū)三鏈”監(jiān)管示范基地,開啟湖南數(shù)字新經(jīng)濟(jì),產(chǎn)業(yè)金融新業(yè)態(tài)!

mysql cpu 使用率高,怎么查,怎么破:

實(shí)際上我們是不是有更好的快速定位的方法 下圖我們可以看到系統(tǒng)cpu一直在 90%, 到底什么原因造成mysql的cpu 利用率一直高怎么分析。follow me. ?

數(shù)據(jù)堂:大數(shù)據(jù)產(chǎn)業(yè)調(diào)研及分析報(bào)告(145頁):

大數(shù)據(jù)引發(fā)了全球范圍內(nèi)深刻的技術(shù)與商業(yè)變革,已經(jīng)成為全球發(fā)展的趨勢以及國家、企業(yè)間的競爭焦點(diǎn),直接關(guān)系到國家安全、社會(huì)穩(wěn)定、經(jīng)濟(jì)發(fā)展和民生幸福等諸多方面。 圖.我國大數(shù)據(jù)產(chǎn)業(yè)鏈布局(二)我國大數(shù)據(jù)源尚待激活大數(shù)據(jù)的開放和流通是政府、企業(yè)和學(xué)術(shù)界面臨的首要挑戰(zhàn),只有多源頭、跨領(lǐng)域的關(guān)聯(lián)分析才有可能實(shí)現(xiàn)數(shù)據(jù)價(jià)值的深度挖掘,能否從多源、異構(gòu)的海量數(shù)據(jù)中快速獲得有價(jià)值信息 ,將逐漸成為決定國家和企業(yè)發(fā)展水平的核心指標(biāo)。 另一方面,在政府公共服務(wù)、農(nóng)業(yè)和醫(yī)療健康領(lǐng)域的應(yīng)用案例相對(duì)缺乏,我國政府和公共服務(wù)事業(yè)單位沉淀了全國近三分之一的數(shù)據(jù)(麥肯錫),但未能與廣大傳統(tǒng)行業(yè)的需求形成對(duì)接。 我國幅員遼闊、人口眾多,交通、醫(yī)療、金融及農(nóng)業(yè)等事關(guān)國計(jì)民生的領(lǐng)域匯集了海量的人口、個(gè)體行為和環(huán)境數(shù)據(jù),通過人工智能技術(shù)的應(yīng)用可以極大帶動(dòng)政府決策、公共服務(wù)和傳統(tǒng)行業(yè)的發(fā)展,同時(shí)培育數(shù)據(jù)銀行和眾包平臺(tái)等產(chǎn)業(yè)模式的創(chuàng)新

轉(zhuǎn)載請(qǐng)注明出處,本站網(wǎng)址:http://www.opentechcloud.com/news_2391.html
相關(guān)推薦