當前位置:首頁 » 編程軟體 » 編譯ubuntu固件是啥意思

編譯ubuntu固件是啥意思

發布時間: 2022-12-07 06:49:15

㈠ 如何build自己的Ubuntu

如果單獨安裝gcc以及g++比較麻煩,幸運的是,為了能夠編譯Ubuntu的內核,Ubuntu提供了一個build-essential軟體包。
查看該軟體包的依賴關系,可以看到以下內容:
$ apt-cache depends build-essential
build-essential
|依賴: libc6-dev
依賴: libc6-dev依賴: gcc依賴: g++依賴: make依賴: dpkg-dev
也就是說,安裝了該軟體包,編譯c/c++所需要的軟體包也都會被安裝。因此如果想在Ubuntu中編譯c/c++程序,只需要安裝該軟體包就可以了。

㈡ 誰能給個Ubuntu編譯內核的詳細步驟啊,我的是Ubuntu10.04,想編譯一下更高版本的內核,網上方法試過很多了

ubuntu千萬別自己搞內核編譯,因為ubuntu系統對內核是有修改的,你自己就算編譯成功,以後系統也會出現很多問題。

㈢ 固件 是什麼意思

固件


固件(Firmware)就是寫入EROM(可擦寫只讀存儲器)或EEPROM(電可擦可編程只讀存儲器)中的程序。

固件是指設備內部保存的設備「驅動程序」,通過固件,操作系統才能按照標準的設備驅動實現特定機器的運行動作,比如光碟機、刻錄機等都有內部固件。

固件是擔任著一個系統最基礎最底層工作的軟體。而在硬體設備中,固件就是硬體設備的靈魂,因為一些硬體設備除了固件以外沒有其它軟體組成,因此固件也就決定著硬體設備的功能及性能。

㈣ 怎麼在ubuntu系統上編譯定製openwrt固件

搭建編譯環境 Ubuntu x64 12/openwrt/trunk/ trunk是openwrt的開發版,openwrt有好幾個分支,要編譯其它分支,sun://後的換為相應的地址即可。 建立openwrt文件夾是為了方便存放不同分支的代碼,如果你不需要,可以省略「mkdir openwrt」及「cd openwrt」。 如果svn的速度慢,可以使用openwrt的第三方鏡像,比如國內的openwrt中文論壇所建的鏡像。 更新feed及添加package openwrt的一些額外功能都是通過package實現的,很多個package就組成了一個feed,我們可以根據需求更新自己想要的feed的源。 例如我們需要luci的web管理界面和python的支持,那麼我們需要更新luci和packages的feed源: cd trunk ./scripts/feeds update luci packages ./scripts/feeds install luci packages 當然,我們推薦更新所有feed並添加所有package ./scripts/feeds update -a ./scripts/feeds install -a 配置及編譯 進入配置界面 make menuconfig 以後再次編譯時,要先切換到工作目錄: cd openwrt cd trunk 然後在次過程中選擇好target system和target profile,target system需要看你路由器的cpu晶元信息,target profile是你路由器的型號。接下來就可以根據自己的需求進行定製了,添加上需要的支持或去掉無用的包,按「Y」在固件中添加包按「Y」,按「N」去 掉不需要的包。 要運行OH3C,必須有python-mini(lang->python->python-mini)的支持。 如果你的路由器flash空間比較緊張,可以去掉下面的包: Kernel moles->Network Support->kmod-ppp Network->ppp 選好後就保存配置退出開始編譯了: make -j -j 後面可以跟參數,即同時進行的任務數,比如2或4,不跟參數意為不限制同時進行的任務數,會大大減少編譯的時間,特別是首次編譯。 編譯過程中可能不會下載一些東西,所以斷網可能造成編譯中斷,編譯所需時間與你的CPU及網速有很大關系,一般首次編譯在40分鍾到2小時之間不等。以後的編譯一般在30分鍾之內。

㈤ 為什麼推薦使用ubuntu編譯

推薦用Ubuntu伺服器的原因
1.
提供包多 默認Ubuntu提供的包,比CentOS多很多。不是一個數量級別。所以你想裝啥,基本不需要找。現成的。很方便。 如果是CentOS,你很多時候,需要用第三方的源,或者編譯安裝,比較費時。 iRedmail項目就比較明顯,在Ubuntu 10.04以後的版本,全部的包都是來自發行版。當然就剩下admin dashboard以外。
2.
軟體比較新 相對CentOS來說,軟體的版本更新還算是比較及時的。RedHat就顯得過於保守。不過這也和工作量有關。
3.
默認調優 很多軟體的默認設置已經得到優化,這點上比CentOS好很多
4.
商業支持 用過Redhat 訂閱,應該都知道Redhat的規矩。 相對來說Ubuntu靈活不少。你只需要購買你希望購買服務的機器。而不需要全部購買。

㈥ 菜鳥求問ubuntu安裝軟體為什麼要編譯

一般不用編譯,裝二進制包就好了。不過由於不同的CPU支持的指令集不一樣,通用的二進制文件為了兼容常見的CPU,不能利用個別CPU的一些個別功能。而自己軟體時可按自己CPU的特性編譯,能充分利用自己的CPU……不過效率差別一般不大。。。

㈦ ubuntu系統下怎麼編譯內核文件

一、下載源代碼和編譯軟體的准備
安裝有關編譯程序。安裝make ,gcc, make-kpkg,運行menuconfig等等和編譯內核相關的工具。安裝不了,請檢查/etc/apt/sources.list 文件。有關命令:代碼:$sudo apt-get install build-essential kernel-package libncurses5-dev
二、解壓源代碼注意,網上很多教程上說應該解壓到 /usr/src,純屬以訛傳訛,linux掌門人linus說解壓到任何目錄上都可以。當然,linus的說法是正確的。我放在自己的主目錄下的src目錄。如果你下載源代碼是放到自己的主目錄下或者運行上面的wget下載的,那麼運行下列命令:代碼:$ cd ~$ mkdir src && tar jfx linux-2.6.25.10.tar.bz2 -C src/現在,源代碼就在 ~/src/linux-2.6.25.10進入源代碼的目錄,准備下一步的工作。後面都在這個目錄裡面進行。代碼:$ cd ~/src/linux-2.6.25.10
三、開始編譯前的准備工作。首先,清理以前編譯時留下的臨時文件。如果是剛剛解開的包,不需要執行這步。如果是第二次或者是第n次編譯,那麼一定要執行。相關命令如下:代碼:$ sudo make mrproper網上很多教程上說把現在使用的內核的config拷貝過來參考,據實驗,是不需要的,ubuntu還有debian會自動做這步。不過這條命令倒是可以學習一下。當然你可以將以前的配置拷貝過來。命令:代碼:cp /boot/config-`uname -r` ./.config
四、開始配置內核選項。相關命令:代碼:$sudo make menuconfig配置用到的鍵只有幾個,esc退出菜單;空格改變選項狀態;游標鍵上下左右移動,回車選定。選項意義:M是編譯成可以隨時加入的模塊,*是編譯進入內核,空就是不要。配置選項非常多,具體配置可以參考金步國先生翻譯的資料:Linux 2.6.19.x 內核編譯配置選項。 請大家遵循一個原則,如果你自己使用的內核已經選用了某個選項,如果你沒用充分的理由,不要隨便改動。這樣雖然內核不那麼精簡,但是不容易出現問題。我們可以精簡的部分是硬體模塊部分,對於自己沒有的硬體要毫不猶豫的清除。如果你很執著,或者你有潔癖,你也可以一項項對過去,按照金步國先生的資料描述去選擇基本上沒有問題。
五、必須強調的幾個選項:1、
在「General setup」裡面的「Prompt for development and/or incomplete
code/drivers」金步國認為是不需要。但是如果你的硬體比較新,那幾乎是必須選的,這樣,我們才可以找到4965無線網卡,alsa聲音驅動等
等。Kernel log buffer size 我選15,雙核。如果你用ia64,要選16。Control Group support 集群支持?可以不要Choose SLAB allocator (SLUB (Unqueued Allocator)) 內存管理模式slab和slub選擇slub。
2、在「Block layer」里,假如沒有2TB的硬碟,就去掉:Support for Large Block Devices 。Support for Large Single Files 也不需要,誰有2TB的文件?
3、Processor type and features中是關於cpu的,要認真選。Symmetric multi-processing support是打開多核的開關,我的cpu是雙核的,選中。Processor family (Core 2/newer Xeon) 我的是Core 2/newer Xeon。找到自己的cpu後,把Generic x86 support選項取消。Subarchitecture Type 選(PC-compatible)Maximum number of CPUs 輸入自己的核心數目,我輸入2。SMT (Hyperthreading) scheler support說的是超線程技術,P4有支持的,我的t8100不支持,目前大部分市場上的家用cpu都不支持。High Memory Support (4GB) 1G以下選1G;我是3G,選4G;4G以上的選16G在「 Timer frequency 」里,默認是250Hz,較新的cpu都可以選擇了1000Hz,性能更好。
4、Power management options中把APM (Advanced Power Management) BIOS support關閉。現在的電腦都用acpi了。CPU Frequency scaling 是筆記本cpu節電技術Default CPUFreq governor (conservative) cpu節電模式有四個,筆記本默認選conservative比較好。ACPI Processor P-States driver 必須選,不然CPU Frequency就不能用。後面的可選自己硬體相關的,我選的是Intel Enhanced SpeedStep和 Intel Speedstep on ICH-M chipsets,其他的統統消滅。
5、Bus options的選擇:Bus options (PCI, PCMCIA, EISA, MCA, ISA)PCI support PCI Express support 現在新買的機器基本上都是PCI Express了ISA support 較新的新機器沒有ISA設備,可以去掉MCA support 去掉NatSemi SCx200 support 去掉PCI Hotplug Support Support for PCI Hotplug (EXPERIMENTAL) 如果沒有PCI熱插拔設備,去掉這里的選項可以考慮全部編譯進內核,而不是以模塊形式存在。
6、Device Drivers是重點,由於linux不但面向個人工作站,更多的是面向伺服器的應用,所以可以把自己機器上沒有的硬體全部去掉,而不用面面俱到。但是通用型的選項要慎重。比如在網卡的部分,除了我的千兆網卡 Broadcom Tigon3 support和4965無線網卡Intel Wireless WiFi 4965AGN,其餘的硬體支持統統去掉。再比如音效卡部分,我的是hd音效卡,我只是在PCI devices中,選intel hd 音效卡,再選Build IDT/Sigmatel HD-audio codec support,除此之外的硬體支持全部去掉。
音效卡還有一個細節,在ubuntu7.10裡面, 需要在/etc/modprobe.d/alsa-base後面添加options
snd-hda-intel probe_mask=1
model=3stack,這樣我的筆記本喇叭才可以發聲,不然只有外接耳機或者音箱。這次編譯以後,這個動作就不必了,但是兩個耳機插口只有一個可以用
了。再比如我的電腦中沒有agp,就可以直接把agp相關的選項全部取消。要注意的:ATA/ATAPI/MFM/RLL support Include IDE/ATA-2 DISK support 如果你的/boot是放在IDE硬碟上,那麼這里一定要選*,選M都不行。否則啟動時會出現「waiting for root file system」的提示而停滯不前。 SCSI emulation support 要用刻錄機,必須選。SCSI device support 現在都是SATA硬碟,一定要選* SCSI disk support 如果你的/boot放在SATA硬碟上,一定要選*。
SCSI CDROM support 雖然康寶刻錄機是ide介面的,但是必須把它當成scsi介面的,這是老問題了。用刻錄機,必須選。
Graphics supportSupport for frame buffer devices 選中,進入選擇 VESA VGA graphics support 選上,不然字元界面啟動會有問題,後面的顯卡選擇:由於我的顯卡是nvidia 8400gs,要自己安裝nvidia公司的驅動,所以一個都沒有選。這樣導致ubuntu開機動畫會出問題,我索性在grub中的splash字元全部刪除,把開機動畫關閉。字元界面很正常。 Console display driver support 有人開機後字元控制台錯誤,就是這部分選項沒有選,出問題了。 Framebuffer Console support 需要打開。
Bootup logo 開機圖標,會在自檢的畫面上加上個性圖標。需要在grub上添加「vga=」的選項 簡稱fuse。是必選的,如果你要用windows分區。
CD-ROM/DVD Filesystems ISO 9660 CDROM file system support 一般選*DOS/FAT/NT Filesystems VFAT (Windows-95) fs support 有FAT32分區就選*吧 NTFS file system support 有NTFS分區就選*吧 NTFS write support 如果想對 NTFS分區進行寫操作,選*必須將啟動盤的文件系統編譯進內核,默認是編譯成模塊,這樣無法啟動系統。ubuntu採用的文件系統是ext3,請把ext2,ext3相關的必要選項都編譯進入內核。
8、Virtualization這個大類是我多花幾百元買t8100的主要原因,因為t8100支持intel vt技術使linux上的虛擬機的性能大幅度提高。這里的選項我除了amd的,其他都編譯成模塊。
9、全部設置完成,最後一項是保存設置。按照我的習慣,先在上一層目錄保存一個備份,文件名類似 ../config20080630然後再保存到當起目錄,文件名 .config退出設置程序。
六、開始編譯內核。ubuntu的工具是make-kpkg,和其他的發行版相比,步驟相對簡單。相關命令:代碼:$sudo make-kpkg clean 這條命令好像不要超級許可權,很多資料上說要,不過這不是原則問題。
$ sudo make-kpkg -initrd --initrd --append-to-version=dell1400 kernel_image kernel-headers上述命令中的dell1400可以用自己喜歡的字元代替,最後的字元一定是數字.輸完上述命令回車之前,建議大家把瀏覽器還有別的運用程序都關掉,機器開始的工作比較艱苦。
我的機器大概十幾分鍾。
七、安裝內核編譯完成就是安裝工作。編譯好的內核在上一層目錄。包括linux-headers-...-_i386.deb和linux-image-...-i386.deb兩個文件,如果你不搞開發的話,只要安裝內核就可以,頭文件以後要用的時候再說。安裝相關命令:
代碼:$ cd ..$ sudo dpkg -i linux-image-(按tab鍵)文件名很長,如果不用tab自動補足是不可能的,tab鍵萬歲。安裝完成後和老內核比較一下大小代碼:
$ ls -l /boot/
八、重新啟動驗證新內核。代碼:$ sudo reboot
九、顯卡驅動如果你的顯卡和我一樣是nvidia顯卡,啟動之後往往無法正常進入x-window。即使能看到gdm登錄界面,效果也是很差的。那麼就要安裝nvidia驅動。用ctrl+alt+f1 進入字元命令行,輸入用戶名,密碼登錄。 #ps ax看看和gdm相關的進程,把這些進程全部關閉;用sudo /etc/init.d/gdm stop有可能有一個進程沒有關閉:#kill 進程號然後安裝nvidia顯卡驅動,當然驅動要先下好,到nvidia驅動所在的目錄里,運行:# sh ./NVIDIA-Linux-x86-173.14.12-pkg1.run重新啟動以後就ok。要用nvidia的驅動,每次升級內核都要這么做。
十、無線網卡相關的內核選項是Networking --->Wireless --->Generic IEEE 802.11 Networking Stack (mac80211)還有4965的驅動。4965
無線網卡驅動雖然已經編入內核,但沒有firmware無法使用。需要把原來內核的firmware拷貝到新內核對應的目錄,名字和內核一致,我的內核是
linux-image-2.6.25.10dell1400,那建的目錄名就是2.6.25.10dell1400。代碼:具體命令:$ cd /lib/firmware/$ sudo mkdir 2.6.25.10dell1400把你的老內核中的4965的firmware拷貝過來。$ sudo cp 2.6.24-16-generic/* 2.6.25.10dell1400/上面的命令和下面的命令是等價的:$ cd /lib/firmware/$ sudo cp -R 2.6.24-16-generic/ 2.6.25.10dell1400/
重新啟動系統,無線網卡就正常了。
附編譯使用的機器配置:dell vostro 1400,t8100,nvidia 8400cs顯卡,內置SigmaTel STAC9228晶元的音效卡,4965無線網卡,BCM5906M千兆網卡,3G內存,160G硬碟,combo刻錄。
編譯系統版本:ubuntu 8.04桌面版.

㈧ 【Docker】在Ubuntu容器中編譯LEDE固件

...

由於不可描述的原因,查看原文請移步到 我的個人博客-在docker容器中編譯LEDE固件 。

㈨ ubuntu 環境下怎樣編譯pixhawk px4源碼

Ubuntu環境下Pixhawk原生固件PX4的編譯
分類:無人機ubuntu代碼編譯Pixhawk
(3946) (6)
Ubuntu下Pixhawk原生固件PX4的編譯這個問題困擾了兩天時間,可能是博主腦力不夠,主要是環境搭建不起來,主要原因應該是路徑的原因,最後在大師傅的幫助下還好成功將路徑搭建好,成功編譯。

下面就跟大家分享一下環境搭建的過程。

1.操作環境

每次寫文章,環境一定要介紹的,不同的環境總會出現不同的問題

我的環境是Windows下面安裝虛擬機,虛擬機跑Ubuntu

Windows:win10 64位

虛擬機:VMware Workstation 12 Pro 12.1.0 build-3272444

Ubuntu:Ubuntu15.10

2.編譯環境搭建

(1)許可權設置

官方提示:

Warning Never ever fix permission problems by using 'sudo'. It will create more permission problems in the process and require a system reinstallation to fix them.
意思是你會遇到許可權問題,不要用sudo解決,那樣會帶來更多問題,但是我沒聽他的,我沒用,最後也是實現了

官方提供指令

[plain] view plain

然後注銷,重新登錄生效

(2)安裝

更新包列表,安裝下面編譯PX4的依賴包。PX4主要支持的系列:

NuttX based hardware: Pixhawk, Pixfalcon
Snapdragon Flight hardware: Snapdragon
Raspberry Pi hardware: Raspberry Pi 2
Host simulation: jMAVSim SITL and Gazebo SITL

注意:安裝Ninja Build System可以比make更快進行編譯。如果安裝了它就會自動選擇使用它進行編譯。

[plain] view plain
卸載模式管理器

[plain] view plain

更新包列表和安裝下面的依賴包。務必安裝指定的版本的包

[plain] view plain

上面代碼中紅色部分大家需要一高警惕,gcc-arm-none-eabi版本導致PX4/Firmware編譯錯誤,現在apt-get安裝的gcc-arm-none-eabi基本上是4.9的版本,但是這個固件需要gcc-arm-none-eabi 4.8de 版本,所以最後安裝好以後,查看你的gcc-arm-none-eabi版本,如果是4.9需要手動安裝4.8的版本,安裝gcc-arm-none-eabi 4.8的版本的方法如下:

[plain] view plain

【Warning】上面紅色的路徑一定要添加正確,不然問題很多,我第一次就輸入錯誤,結果結果開不了機了,反復輸入密碼。博主裝的是Ubuntu 64位系統,而上述arm-none-eabi是直接下載的編譯好的32位,還需要安裝一個東西
[plain] view plain
可以檢查arm-none-eabi 4.8.4是否安裝成功,輸入以下指令:

[plain] view plain
如果出現如上信息,交叉編譯環境搭建就搭建成功了
(3)代碼編譯
根據PX4中文維基官網教程。
安裝Git

[plain] view plain
下載代碼

[plain] view plain
初始化
先進入Firmware文件夾,進而進行初始化、更新子模塊操作,耐心的等待……

[plain] view plain
許可權
編譯時會遇到許可權問題,執行指令

[plain] view plain
-R 是對文件下麵包含的子文件許可權問題,* 是對所有文件的許可權問題
編譯

[plain] view plain
注意到「make」是一個字元命令編譯工具,「px4fmu-v2」是硬體版本,「default」是默認配置,所有的PX4編譯目標遵循這個規則。
最後附一張編譯成功的代碼,如果這樣你還有問題,請給我留言。

[plain] view plain
-- nuttx-px4fmu-v2-default
-- The ASM compiler identification is GNU
-- Found assembler: /opt/gcc-arm-none-eabi-4_8-2014q3/bin/arm-none-eabi-gcc
-- Found PythonInterp: /usr/bin/python (found version "2.7.10")
-- Using C++03
-- Release build type: RelWithDebInfo
-- Adding UAVCAN STM32 platform driver
-- Configuring done
-- Generating done
-- Build files have been written to: /home/lihongwei/Documents/Firmware/build_px4fmu-v2_default
#[email protected]/check_submoles.sh
PX4 CONFIG: px4fmu-v2_default
Scanning dependencies of target git_mavlink
Scanning dependencies of target git_uavcan
Scanning dependencies of target git_gencpp
Scanning dependencies of target git_genmsg
[ 0%] Generating git_init_mavlink_include_mavlink_v1.0.stamp
[ 0%] Generating git_init_src_moles_uavcan_libuavcan.stamp
[ 0%] Generating git_init_Tools_genmsg.stamp
[ 0%] Generating git_init_Tools_gencpp.stamp
[ 0%] Built target git_uavcan
[ 0%] Built target git_mavlink
[ 0%] Built target git_genmsg
[ 0%] Built target git_gencpp

熱點內容
大話2相愛一生伺服器怎麼樣 發布:2023-01-29 16:23:25 瀏覽:359
如何查閱自己的手機密碼 發布:2023-01-29 16:22:23 瀏覽:782
有伺服器搭建私人雲伺服器 發布:2023-01-29 16:22:17 瀏覽:382
c語言是系統軟體嗎 發布:2023-01-29 16:20:06 瀏覽:603
端游源碼論壇 發布:2023-01-29 16:17:11 瀏覽:953
編程員碼仔 發布:2023-01-29 16:16:19 瀏覽:734
蓬萊哪裡有賣密碼鎖 發布:2023-01-29 16:12:56 瀏覽:388
編程換行 發布:2023-01-29 16:10:23 瀏覽:417
c語言中2f 發布:2023-01-29 16:08:38 瀏覽:142
安卓手機怎麼讓軟體系統兼容 發布:2023-01-29 15:58:42 瀏覽:649