導航:首頁 > 源碼編譯 > 編譯通過需要多久

編譯通過需要多久

發布時間:2023-10-29 16:00:33

編譯linux內核要多久

至於說編譯 Linux 內核需要多長時間,這個和電腦的整體性能(例如:CPU主頻、內存大小等)有很大關系。我的親身體會就是:計算機性能差的,編譯 Linux 內核需要一個多小時的都有(以前在老舊的電腦上就需要這么長的時間)。

⑵ ubuntu12.04編譯android源碼要多久

這個關鍵是要看你的電腦配置情況,以及代碼的附加情況,有的平台軟體會附加很多東西上去,編譯就比較慢了。
我們這邊使用的是四核八線程的電腦,32GB內存,
原生代碼 4.4 八線程編譯40分鍾左右,5.1,一個半小時左右,6.0的大約一個小時,以上是原生代碼編譯模擬器的時間。

高通代碼6.0編譯一般需要兩個小時左右,mtk的也是兩個小時左右,

⑶ openwrt第二次編譯需要多長時間

OpenWrt編譯環境搭建和編譯方法

一、 更新開發系統。
安裝完ubuntu 後,重新開機的時候,會有一個VMware tools 安裝的提示界面,耐心等待,等到VMware tools 安裝好後
因為更新系統和安裝一些工具包需要用到網路,所以進入ubuntu的界面後,
將ubuntu的網路設置為NAT網路連接模式(默認為NAT),
以上就緒後,更新開發系統的軟體
1、首先備份Ubuntu 10.04源列表
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup (備份下當前的源列表) 2、修改更新源
sudo gedit /etc/apt/sources.list (打開Ubuntu 11.10源列表文件) 3、使用
http://hi..com/pobenliu/blog/item/2180dc3502933c375bb5f5a5.html
網站下的一個更新源貼到sources.list文件中(「#」開頭的那一行為注釋,可以直接復制進文件中) ,使用這里的源主要是為了提高下載速度,用官方的會比較慢。
4、通知ubuntu啟用新的更新源
sudo apt-get update

二、 安裝編譯OpenWrt需要用到的軟體包:
命令如下:
sudo apt-get install g++ libncurses5-dev zlib1g-dev bison flex unzip
autoconf gawk unzip make gettext gcc binutils patch asciidoc bzip2 libz-dev libc6-dev linux-headers-2.6.32-38
注意,紅色部分的版本根據自己的內核版本來修改,可以通過uname –a 來查看。
三、 安裝svn。
由於在後面需要用到svn 來下載OpenWrt,所以需要先安裝svn。
由於使用命令 sudo apt-get install subversion來安裝的版本最新也只是
1.6.6版本,為了和windows 上的版本同步,所以需要下載安裝包,進行手工安裝。
1、先下載兩個包,
subversion-1.7.2.tar.gz
subversion-deps-1.6.1.tar.gz 2、拷貝到/home目錄下,解壓
tar -zxvf subversion-1.7.2.tar.gz
tar -zxvf subversion-deps-1.6.1.tar.gz 3、進入目錄,准備編譯安裝: cd subversion-1.7.2 執行:./configure
安裝遇到的第一個error: checking for APR... no
configure: WARNING: APR not found
The Apache Portable Runtime (APR) library cannot be found. Please install APR on this system and supply the appropriate --with-apr option to 'configure' 解決辦法: 到tar -zxvf subversion-deps-1.6.1.tar.gz 解壓的目錄下,有一個apr的文件夾,放到subversion-1.7.2下即可 cp -rf ../subversion-1.6.1/apr .
4、再重新執行./configure 命令 遇到第二個error:
checking APR version... 1.3.3
configure: Apache Portable Runtime Utility (APRUTIL) library configuration
checking for APR-util... no
configure: WARNING: APRUTIL not found
The Apache Portable Runtime Utility (APRUTIL) library cannot be found. Either install APRUTIL on this system and supply the appropriate 提示的是apache的埠沒有找到,因為此安裝並沒有與apache結合,到tar -zxvf subversion-deps-1.6.1.tar.gz 解壓的目錄下,發現有一個 APR-util,再移動到ubversion-1.7.2下
5、重新執行./configure 命令 Ok,遇到第三個error,
checking sqlite library version (via pkg-config)... no
An appropriate version of sqlite could not be found. We recommmend 3.7.6.3, but require at least 3.6.18. 錯誤有提示:解決辦法
sqlite-amalgamation-3071000.zip下載這個包,解壓,將sqlite3.c放到指定的位置: unzip sqlite-amalgamation-3070900.zip
mkdir –p subversion-1.7.2/sqlite-amalgamation cd sqlite-amalgamation-3070900
cp sqlite3.c ../subversion-1.7.2/sqlite-amalgamation/
之後重新執行./configure 見到這表示./config執行ok
checking for ctypesgen.py... none configure: creating ./config.status config.status: creating Makefile
config.status: creating tools/backup/hot-backup.py
config.status: creating tools/hook-scripts/commit-access-control.pl config.status: creating
subversion/bindings/swig/perl/native/Makefile.PL
config.status: creating subversion/svn_private_config.h.tmp config.status: executing libtool commands
config.status: executing svn_private_config.h.tmp commands
6、然後編譯安裝: make clean
make && make install
只要沒有遇到error,就是ok的, 輸入
svn –version
得到:
svn, version 1.7.2 (r1207936) compiled Feb 8 2012, 23:09:00 說明安裝成功。
四、下載OpenWrt源碼。
分兩種,一種是最新版但不是最穩定,也就是trunk版,一種是相對穩定版,backfire版。源碼下載命令分別是: 先創建文件夾:
mkdir OpenWrt_trunk cd OpenWrt_trunk Trunk版下載命令:
svn co svn://svn.openwrt.org/openwrt/trunk/
若需要backfire:
mkdir OpenWrt_backfirecd OpenWrt_backfire
Backfire下載命令:
svn co svn://svn.openwrt.org/openwrt/branches/backfire/
五、 編譯OpenWrt:
如果不是剛下載的代碼,為了保持代碼為最新狀態,應該定期運行Svn up更新代碼,什麼時候有變你是不知道的 然後是更新軟體包:
./scripts/feeds update –a ./scripts/feeds install –a
如果不更新軟體包的話,你會發現後面是看不到很多軟體包的,也就無法集成那些看不到的包了。
然後是make defconfig,再make menuconfig進入定製界面,定製自己的系統。
最後,執行make命令,然後是非常漫長的等待。
在編譯的時候,是根據你的配置,進行下載程序包的,先是把這些程序包下載到./dl目錄下,再進行解壓編譯,和安裝。如果不是為了開發某一軟體的話,建議一開始的時候不要安裝太多的軟體,一是時間太長,然後很容易出錯。要用到的軟體在編譯好後,用opkg來安裝。

⑷ ubuntu內核編譯需要多長時間

編譯自己的Ubuntu內核一般需要30-60分鍾
很多時候我們在使用Ubuntu的時候,想修改一下內核配置,然後編譯,安裝到Ubuntu中。這也是進行Ubuntu內核開發的前提。

⑸ ubuntu編譯osmocombb完要多久

ubuntu編譯GNUARM以及OsmocomBB環境方法如下,時間的話看你代碼速度啦

以下所有操作基於Ubuntu Linux下,所以基於Ubuntu、Debian等Linux版本均可使用。

一、以Root許可權進行接下來的所有操作:

$ sudo -s

二、安裝編譯osmocomBB所需的軟體包:

$ aptitude install libtool shtool autoconf git-core pkg-config make gcc

三、下載所需要的GnuARM ToolChain

基於x86架構

$ wget http://gnuarm.com/bu-2.15_gcc-3.4.3-c-c++-java_nl-1.12.0_gi-6.1.tar.bz2 網路網盤

$ tar xf bu-2.15_gcc-3.4.3-c-c++-java_nl-1.12.0_gi-6.1.tar.bz2

$ mv gnuarm-* ~/gnuarm

基於64位架構

$ wget http://www.gnuarm.com/bu-2.16.1_gcc-4.0.2-c-c++_nl-1.14.0_gi-6.4_x86-64.tar.bz2 網路網盤

$ tar xf bu-2.16.1_gcc-4.0.2-c-c++_nl-1.14.0_gi-6.4_x86-64.tar.bz2

$ mv gnuarm-* ~/gnuarm

這樣子就已經完成了關於OsmocomBB的交叉編譯環境的搭建,剩下就是最關鍵的設置環境變數

$ export PATH=~/gnuarm/bin:$PATH

建議是直接編輯~/.bashrc的內容,把上面的這個段話直接加到最後。


四、編譯libosmocore:

$ git clone git://git.osmocom.org/libosmocore.git

$ cd libosmocore/

$ autoreconf -i

$ ./configure

$ make

$ make install

$ cd ..

$ ldconfig

ldconfig命令一定不要忘記執行,否則osmocomBB編譯後運行時會出現找不到libosmocore.so.4的錯誤。


五、編譯OsmocomBB:

$ git clone git://git.osmocom.org/osmocom-bb.git

$ cd osmocom-bb

$ git checkout --track origin/luca/gsmmap

$ cd src

$ make

基本上已經完成所有的編譯操作了!Enjoy你的玩具吧!

使用OsmocomBB

首先我們需要在刷寫固件之間完成以下幾個手動操作,以便接下來的其他操作。因為摩托羅拉C118的數據連接線是用2.5mm音頻介面的,所以連接方面大家要注意的是:

連接線介面的小缺陷

紅色框住的地方可能會導致大家在誤以為介面已經完全和手機介面銜接了,但在刷機的時候沒有任何反應。所以這個部分需要大家自己去削一下的。

連接線與TTL的接法

黑/黃:GND
紅:TX
白:RX

以上的接法是針對我們RadioWar淘寶店所出售的CP2102以及FT232rl,而基於淘寶其他的產品可能會在TX和RX部分需要反接,大家要記住。有些朋友會說為什麼我們不建議PL2303,那是PL2303隻有標準的波特率,所以無法進行任何調制,在真正功能固件上使用會出現很大的問題。所以我們不建議使用PL2303

當我們處理完以上的操作之後,就在osmocomBB套件目錄下進行相關固件刷寫操作,請記住這個操作過程只是臨時性的,固件只是以RAM TO ROM的途徑下進行臨時刷寫,關機後原有的摩托羅拉系統依然會存在的。

cd ~/osmocom-bb/src/host/osmocon/

啟動osmocon刷寫所需要的固件,通常大家都是直接刷寫Layer1的固件。

./osmocon -m c123xor -p /dev/ttyUSB0 ../../target/firmware/board/compal_e88/layer1.compalram.bin

看清楚c123xor是基於C118的,非C118的手機請不要使用這個,並且記住C118的固件目錄就是compal_e88,在輸入以上命令之前,手機必須連接好連接線以及TTL,並且確保手機必須為關鍵狀態。命令輸入完成後,當前命令窗口會出現以下類似信息:

got 1 bytes from modem, data looks like: 2f /
got 1 bytes from modem, data looks like: 00 .
got 1 bytes from modem, data looks like: 1b .
got 4 bytes from modem, data looks like: f6 02 00 41 ...A
got 1 bytes from modem, data looks like: 01 .
got 1 bytes from modem, data looks like: 40 @

出現以上信息後,直接輕按手機的紅色開機鍵,只需點亮機器而不需要進入手機的系統!!!這樣子信息狀態會顯示類似以下的信息:

Received PROMPT1 from phone, responding with CMD

read_file(../../target/firmware/board/compal_e88/layer1.compalram.bin):file_size=56016,hdr_len=4,dnload_len=56023

got 1 bytes from modem, data looks like: 1b .

got 1 bytes from modem, data looks like: f6 .

got 1 bytes from modem, data looks like: 02 .

got 1 bytes from modem, data looks like: 00 .

got 1 bytes from modem, data looks like: 41 A

got 1 bytes from modem, data looks like: 02 .

got 1 bytes from modem, data looks like: 43 C

Received PROMPT2 from phone, starting download handle_write(): 4096 bytes (4096/56023)

handle_write(): 4096 bytes (8192/56023)

handle_write(): 4096 bytes (12288/56023)

handle_write(): 4096 bytes (16384/56023)

handle_write(): 4096 bytes (20480/56023)

handle_write(): 4096 bytes (24576/56023)

handle_write(): 4096 bytes (28672/56023)

handle_write(): 4096 bytes (32768/56023)

handle_write(): 4096 bytes (36864/56023)

handle_write(): 4096 bytes (40960/56023)

handle_write(): 4096 bytes (45056/56023)

handle_write(): 4096 bytes (49152/56023)

handle_write(): 4096 bytes (53248/56023)

handle_write(): 2775 bytes (56023/56023)

handle_write(): finished

got 1 bytes from modem, data looks like: 1b .

got 1 bytes from modem, data looks like: f6 .

got 1 bytes from modem, data looks like: 02 .

got 1 bytes from modem, data looks like: 00 .

got 1 bytes from modem, data looks like: 41 A

got 1 bytes from modem, data looks like: 03 .

got 1 bytes from modem, data looks like: 42 B

Received DOWNLOAD ACK from phone, your code is running now!

battery_compal_e88_init: starting up

看到以上的信息就證明你的固件刷寫操作已經成功了,下來的操作可以是掃描基站或者其他簡單而快速的方法:

掃描基站

~/cell_logger/osmocom-bb/src/host/layer23/src/misc/cell_log -O

掃描某一個基站,例如30

~/cell_logger/osmocom-bb/src/host/layer23/src/misc/ccch_scan -i 127.0.0.1 -a 30

將掃描基站的日誌保存到本地

mpcap -i lo -w ~/cell_logger/mobilelog/Cell.log

打開WireShark實時讀取相關的信息

sudo wireshark -k -i lo -f 'port 4729'

⑹ ubuntu內核編譯需要多長時間

在分析linux內核源碼的過程中,要是能夠修改內核源碼並運行修改後的內核,我想肯定是令人高興的事,哪怕第一次修改僅僅是在啟動時列印一行"Hello, Wang Jiankun!",肯定也是令我高興的。為了能成功編譯修改後的內核,今天先編譯一遍內核。
為了有一個完整的記錄,今天的起點是一台裸機。
1、在裸機上安裝一個最小的debian系統
為了能夠盡可能清晰的顯示編譯一個內核所需要的組件,在安裝系統時,僅僅安裝最小系統,然後需要什麼,就使用apt-get安裝什麼。
使用網路安裝,在安裝過程中出現Software selection界面時不要選擇任何選項,這樣安裝的系統將是最小的系統。
為了使用ssh遠程登錄,最小系統安裝完成後,要安裝ssh伺服器並且要設置靜態ip地址(debian安裝過程中是通過dhcp獲取的ip地址)。
2、安裝ssh伺服器
apt-get install ssh
3、設置靜態ip地址
修改文件/etc/network/interfaces,其中藍色部分是增加的,紅色部分是屏蔽掉的,黑色部分是沒有變化的。
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug eth0
# Wang Jiankun commented the following line
#iface eth0 inet dhcp
# Wang Jiankun added the the following lines
iface eth0 inet static
address 192.168.1.251
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
gateway 192.168.1.1
重啟系統後,修改將生效。
4、通過wget下載linux內核源碼
administrator@wangjk:~/kernel$ wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.19.tar.bz2
5、解壓文件linux-2.6.19.tar.bz2
administrator@wangjk:~/kernel$ tar jxf linux-2.6.19.tar.bz2
tar: bzip2: Cannot exec: No such file or directory
tar: Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error exit delayed from previous errors
administrator@wangjk:~/kernel$
看來是沒有bzip2這個包,那就安裝一個:
apt-get install bzip2
6、安裝debian的kernel-package軟體包
在安裝kernel-package軟體包時,最好使用命令:apt-get build-dep kernel-package,而不要使用命令:
apt-get install kernel-package,後者安裝的軟體包是前者的子集,使用後者安裝kernel-package軟體包後,執行make menuconfig命令會出現頭文件找不到的錯誤,如下所示:
administrator@wangjk:~/kernel/linux-2.6.19$ make menuconfig
HOSTCC scripts/basic/fixdep
scripts/basic/fixdep.c:105:23: error: sys/types.h: No such file or directory
scripts/basic/fixdep.c:106:22: error: sys/stat.h: No such file or directory
scripts/basic/fixdep.c:107:22: error: sys/mman.h: No such file or directory
scripts/basic/fixdep.c:108:20: error: unistd.h: No such file or directory
scripts/basic/fixdep.c:109:19: error: fcntl.h: No such file or directory
scripts/basic/fixdep.c:110:20: error: string.h: No such file or directory
scripts/basic/fixdep.c:111:20: error: stdlib.h: No such file or directory
scripts/basic/fixdep.c:112:19: error: stdio.h: No such file or directory
主要是因為libc6-dev軟體包沒有安裝。所以即使使用了apt-get install kernel-package還得使用apt-get build-dep kernel-package,不如一次使用apt-get build-dep kernel-package完成方便。
7、安裝libncurses5-dev軟體包來支持make menuconfig
通過apt-get build-dep kernel-package安裝完成kernel-package後,執行make menuconfig仍然報錯,如下所示:
administrator@wangjk:~/kernel/linux-2.6.19$ make menuconfig
HOSTCC scripts/kconfig/lxdialog/checklist.o
In file included from scripts/kconfig/lxdialog/checklist.c:24:
scripts/kconfig/lxdialog/dialog.h:32:20: error: curses.h: No such file or directory
In file included from scripts/kconfig/lxdialog/checklist.c:24:
scripts/kconfig/lxdialog/dialog.h:97: error: expected specifier-qualifier-list before 'chtype'
scripts/kconfig/lxdialog/dialog.h:187: error: expected ')' before '*' token
scripts/kconfig/lxdialog/dialog.h:193: error: expected ')' before '*' token
scripts/kconfig/lxdialog/dialog.h:195: error: expected ')' before '*' token
scripts/kconfig/lxdialog/dialog.h:196: error: expected ')' before '*' token
scripts/kconfig/lxdialog/dialog.h:197: error: expected ')' before '*' token
scripts/kconfig/lxdialog/dialog.h:198: error: expected ')' before '*' token
scripts/kconfig/lxdialog/dialog.h:200: error: expected ')' before '*' token
scripts/kconfig/lxdialog/checklist.c:31: error: expected ')' before '*' token
scripts/kconfig/lxdialog/checklist.c:59: error: expected ')' before '*' token
scripts/kconfig/lxdialog/checklist.c:95: error: expected ')' before '*' token
[省略其後部分]
原來是最小系統不支持圖形的原因,安裝libncurses5-dev後即可。
8、將系統的config文件拷貝到內核目錄下
cp /boot/config-2.6.18-6-686 ./.config
9、執行make menuconfig
雖然是將原來系統的config文件拷貝過來的,但是如果所以的配置都採用默認的配置仍然會有問題,在我的系統上在載入文件系統時會死掉,所以還是要做必要的配置,主要是將scsi和sata部分編譯進內核而不要編譯成模塊,如下所示:
Device Drivers --->
Serial ATA (prod) and Parallel ATA (experimental) drivers --->
SCSI device support --->
將藍色兩部分級聯的選項全部編譯進內核(其實沒有必要全部,但為了簡單起見,暫時這樣做)。
10、安裝fakeroot軟體包
11、編譯內核
fakeroot make-kpkg --initrd --revision=custom.1.0 kernel_image
12、安裝內核
wangjk:/home/administrator/kernel# dpkg -i linux-image-2.6.19_custom.1.0_i386.deb
Selecting previously deselected package linux-image-2.6.19.
(Reading database ... 17679 files and directories currently installed.)
Unpacking linux-image-2.6.19 (from linux-image-2.6.19_custom.1.0_i386.deb) ...
Done.
Setting up linux-image-2.6.19 (custom.1.0) ...
Running depmod.
Finding valid ramdisk creators.
Using mkinitramfs-kpkg to build the ramdisk.
Running postinst hook script /sbin/update-grub.
You shouldn't call /sbin/update-grub. Please call /usr/sbin/update-grub instead!
Searching for GRUB installation directory ... found: /boot/grub
Searching for default file ... found: /boot/grub/default
Testing for an existing GRUB menu.lst file ... found: /boot/grub/menu.lst
Searching for splash image ... none found, skipping ...
Found kernel: /boot/vmlinuz-2.6.19
Found kernel: /boot/vmlinuz-2.6.18-6-686
Updating /boot/grub/menu.lst ... done
13、重啟系統引導新內核後查看版本號
administrator@wangjk:~$ cat /proc/version
Linux version 2.6.19 (root@wangjk) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #1 SMP Thu May 7 21:52:10 CST 2009
administrator@wangjk:~$
可以看出已經是我編譯的內核了。

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/jiankun_wang/archive/2009/05/04/4147806.aspx

------------------------------------

ubuntu不帶linux內核源碼,需要自己下載安裝。
1,查看自己的內核版本
uname -r
2,查看源內的內核源碼類表
apt-cache search linux-source
3,下載安裝內核源代碼
sudo apt-get install linux-source-2.6.27 //我選的是這一個,自己看著辦吧
4,等待........

下載完成後,在/usr/src下會有一個文件名為linux-source-2.6.xx.tar.bz2的壓縮
5,解壓縮包
tar jxvf linux-source-2.6.27.tar.bz2 //看清自己的版本

解壓後會生成一個源代碼目錄/usr/src/linux-source-2.6.27
6,進入源碼目錄後,配置文件
make oldconfig
7,生成內核
make
8,瘋狂等待,大約1個多小時

9,編譯模塊
make moles
10,安裝模塊
make moles_install

大功告成!^_^
下面說一下Makefile文件

$(MAKE) -C $(KERNELDIR) M=$(PWD) moles_install #PWD當前工作目錄的變數
obj-m := hello.o
#hello.o是你要生成的驅動,以後可以自己改
KERNELDIR:=/lib/moles/2.6.27-7-generic/build
#這里別抄,寫成你自己的版本,這個目錄執行了內核源碼目錄
PWD:=$(shell pwd) #將當前工作目錄賦值該PWD
moles:
$(MAKE) -C $(KERNELDIR) M=$(PWD) moles
moles_install:

下面是一個經典的Hello,world!例子自己make一下就行了。
#include <linux/init.h>
#include <linux/mole.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk(KERN_ALERT "Hello, world!\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT"Goodbye, cruel world!\n");
}
mole_init(hello_init);
mole_exit(hello_exit);

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/unikingest/archive/2009/03/10/3977747.aspx

-----------------------------------------------------------------------------

修改的這篇文章,自己加了幾個注意點
http://blog.theosoft.net/article.asp?id=57

第一次的Linux kernel上機內容是編譯一個內核。我用的是Ubuntu,有很多地方和其它 Linux不一樣,所以就來把我的過程寫下來,以後也好有個參照
首先當然是下載內核源代碼,如果你要最新的內核,可以去ftp.kernel.org。當然,國內速度可能會很慢。如果你是教育網用戶,可以去上海交大的鏡像站下載,地址是http://ftp.sjtu.e.cn/sites/ftp.kernel.org/,缺點就是沒有最新的內核(更新需要一定的時間)。
==================================================備注
如果是就是編譯ubuntu本省自帶的內核,只需要
新立得搜索linux souce,下載帶ubuntupatch的kernel的source code。
sudo apt-get source linux-source-2.6.27
==================================================備注
我下載的是linux-2.6.19.2.tar.gz可以下到的最新版本了。下完之後當然是解壓縮。不過還不能直接編譯,因為Ubuntu的默認安裝里缺少必要的組建。打開終端,輸入一下命令:
sudo -i
apt-get install build-essential kernel-package libncurses5-dev
然後到新立得里把所有以ncurses開頭的軟體包全部裝上,這樣就可以開始編譯內核了。
先運行以下命令,復制當前內核的配置文件。
cp /boot/config-`uname -r` ./.config
然後
make menuconfig

選擇 "Load an Alternate Configuration File",再選擇你剛才拷貝過來的.config文件作為配置文件。然後確定。當結束後,你選擇退出時,會提示問你 "Do you wish to save your new kernel configuration?"選擇yes即可。
接下來就要編譯了。輸入命令:
make
你也可以將編譯任務分成2個線程來執行,只要輸入:
make -j2
編譯一般需要1~1.5小時左右,就看cpu的性能如何
編譯完成後,開始安裝:
make mole_install
make install
然後添加引導信息,不過之前還是要裝一個組件initramfs-tools,裝完以後輸入:
mkinitramfs -o /boot/initrd.img-2.X.XX /lib/moles/2.X.XX
==================================================備注
後面的參數不要忘記了,否則啟動新內核會出現錯誤:
WARNING: Couldn』t open directory /lib/moles/2.6.15.7-ubuntu1: No such file or directory
FATAL: Could not open /lib/moles/2.6.15.7-ubuntu1/moles.dep.temp for writing: No such file or directory
==================================================備注
最後打開 /boot/grub/menu.lst
在 ## ## End Default Options ## 下面添加類似下面的兩段
title Ubuntu, kernel 2.6.19.2
root (hd0,4)
kernel /vmlinuz-2.6.19.2 root=/dev/hdd6
initrd /initrd.img-2.6.19.2
savedefault
boot

title Ubuntu, kernel 2.6.19.2 (recovery mode)
root (hd0,4)
kernel /vmlinuz-2.6.19.2 root=/dev/hdd6 ro single
initrd /initrd.img-2.6.19.2
boot
注意 root和kernel欄位要模仿menu.lst下面已有的內容寫。下面是 (hd0,4),那麼你也寫(hd0,4),下面寫root=/dev/hdd6,你也寫root=/dev/hdd6,只是內核的版本號改為現在編譯的版本號。然後重新啟動計算機,在GRUB中選擇新內核啟動。如果啟動失敗,你可以重啟選擇老內核。

⑺ 哪裡可以下載Linux系統的的源代碼編譯要多久編譯安裝的比直接安裝的性能高多少

源代碼從 https://www.kernel.org 取。

編譯的時間因人而異,也因系統不同而異,除了特別熟悉的,大多數人都要用幾個小時。一個是配置的時候要閱讀很多幫助信息,這要花很多時間,另一個就是編譯本身也需要很長的時間。

編譯的性能取決於你的配置。你對自己的機器的硬體了解得准確,配置的時候把不需要的選項都去掉;你對自己的軟體目標比較明確,該要的選項都選擇進來,這樣得到的內核性能自然會好。要是上述兩條做不到,其結果可能還不如直接安裝的內核好。

⑻ 半個月可以寫出一個電腦操作系統嗎

作為一名計算機專業的同學回答這個問題:可以個錘子。理由如下:windows 7操作系統,據微軟官方給出的數據,就有超過5000萬行代碼,並且這套操作系統是微軟的平均約40人的25個研發小組歷時三年研發出來了,這還只是常規固定的研發團隊,但據微軟的數據,其實參與到這項工作中,並且是主力研發人員和支持工程師其實已經超過了2500人,研發投入超過了20億美金,要知道在windows之前已經有了windows XP和windows vista的技術積累,而且windows很多核心代碼其實並沒有推到windows vista等技術重建。

熟練的話可以半個月完成一個具備基本功能的操作系統,對於高手來說完成操作系統包含窗口功能、移植網路功能也是可能的,只要一個人。需要基本功比較扎實,我等普通程序員是做不到的,但能達到這水平的程序員即使在國內也有一些。

當然,操作系統有很多分類,俠義上廣義上有不同的定義,每個人的理解也不一樣。現代大眾理解的通用型操作系統半個月基本不可能完成,人多也沒用。

很多人覺得國內沒有完全自主的操作系統,其實是有的,只是應用生態不行,並不是技術上做不到。高校和科研機構也有很多技術積累,這里還是希望國產系統能發展起來。

作為一個工作多年的老碼農,從專業的角度來分析下這個問題,然後自然會得到答案。

首先要明確一下什麼是操作系統,從理論上來講操作系統就是能驅動計算機運行並管理相關軟硬體的一套軟體,從實際的角度來講,比較優秀的操作系統有Unix,Linux,MacOS,Windows以及Andriod等,這些都是一些大型的操作系統,除此之外還有一些嵌入式操作系統,相對來說規模會小一些。

下面讓我們分情況討論。

對於大型專業操作系統,別說半個月就是半年,想寫出類似的操作系統都是不可能的事情,原因很簡單,這些操作系統太復雜了,光是源代碼和文檔都是以G計的,這是什麼概念?要知道1G大約能保存5億個漢字的內容,所以,就是光把這些操作系統的源代碼讀一遍,可能都得數年時間,還不算是否理解,寫的話就更不可能。實際上以公開的資料看,Windows系統的開發人員超過數千人,而且平均也要三到五年才能發布一款合格的操作系統。

對於一個簡單的非專業操作系統,一般來說復雜度要低一些,開發難度相對較低,但是涉及到的基礎技術並不會比專業操作系統少,所以在專業技術足夠的情況下,還是有可能開發出來的,記得當年Linus開發出Linux的雛形也就用了幾個月時間,不過他也是在一款叫Minix系統的基礎上開發的。所以如果有一些現成的系統做參考,在此基礎上開發一套新操作系統還是有可能的,不過即使一個優秀的軟體工程師也不可能在半月之內開發完成。

對於嵌入式系統,特別是類似單片機等結構簡單,硬體單一的系統的來說,開發一套驅動該系統的嵌入式軟體還是比較簡單的,如果有一些現成的框架做支撐,幾個優秀的工程師還是有可能在半個月之內做出來的。

總之,想要在半個月內開發一套專業的操作系統,不管有多少開發人員,基本都是不可能的;而對於一些簡單的操作系統,特別是嵌入式系統,短時間內開發出來倒是有可能,至於時間的長短則取決於系統的復雜度以及對各種硬體支持的程度等。但是想半個月開發一套真正的操作系統,我認為是不可能的事!

我覺得可以,我大學有一個舍友,電腦非常厲害,有一次,我的電腦壞了,讓他來幫我看。他來了,三兩下就搞好我電腦了,然後無聊,對著我說要玩一下我的電腦,然後就定定坐在那裡敲代碼,我偷偷看過去,他敲的代碼都是0101這種的,反正我也看不懂,就先睡覺了。半夜起床,看到他還在敲,一樣是010101這種,我和他說,夜深了早點休息,他不理我,我繼續睡。第二天起來,發現他不見了,電腦室關閉的。我開電腦,感覺不對勁,從開機到進入系統,完全和之前不一樣!忽然手機有簡訊發過來,是他的,他說,昨晚我幫你重新寫了一個操作系統,你之前的操作系統太low了!

半個月在理論上是可以寫出一個電腦操作系統的。

不過從你提的這個問題就知道你對操作系統不是很了解。

目前市面上的操作系統有windos,linux,蘋果的ios系統,它們的代碼都在1億行上下,你覺得你在半個月能寫出這種代碼嗎?

此外開發一個操作系統你首先要精通匯編語言,C語言,c++這些編程開發語言,就算是你精通這些編程開發語言還不夠,你還要懂系統架構,你覺得在實際情況下你能搞定這些嗎?

當初開發dos系統的這個都花了快半年的時間才把dos系統寫出來,不過這人無論是智商還是技術都是可以碾壓別人的存在。你具備這樣的優勢嗎?

現在的windos系統是全球好幾萬人的工程師寫了差不多5年的時間才開發出來,如果是靠一個人來編寫windos系統我估計要花100年的時間,而且還是24小時不停的寫才有機會寫出來。

奉勸你一句,不要好高騖遠,先從基礎開始做起,如果你想編寫操作系統我建議去學習C++。

不知道你說的寫出一個操作系統是什麼意思。如果是在一個裸機上寫入一個操作系統,用克隆十幾分鍾就可以了。如果是內核不變,變個外形,幾天甚至幾周也是可以的。如果是從頭開始寫一個全新的操作系統,我們可以估計一下時間。win95代碼有大約1500萬行,按照一行代碼10秒鍾,一天工作16小時,大約需要2600天,現在的操作系統的代碼數量要遠遠超過win95的代碼行數

哈哈,那是不可能的,一個系統依賴的知識點太廣太深,且不說很多知識點您沒了解過,單純以您已認識的點來說,裡面要用的演算法足夠您折騰。

我肯定不用一分鍾就能寫出一個「電腦操作系統」。

可以,但是半個月可以寫出一個電腦操作系統幾乎不具備價值。

因為個人必要勞動時間大大的低於的 社會 必要勞動時間導致的結果有兩種可能:

1、獲取超額利潤

2、毫無價值

半個月可以寫出一個電腦操作系統大概率是毫無價值:

因為現代生產力僅僅包含實體性因素、還包含運籌性因素

半個月可以寫出一個電腦操作系統可能連實體性因為都達不到,還要包含運籌性因素。

再舉例,就算是滿足了實體因素,比如現在有無數的互聯網公司可以做出類似於淘寶、qq、微信的軟體,能取代淘寶、qq、微信嗎,答案是很難很難,因為還有運籌性因素這些原因,相應的還會有滲透性因素、准備性因素等,

當然矛盾是人類發展的動力和源泉。人類最高目標是共產主義,而共產主義的前提是生產力高度發展,物質極度豐富。需要像特斯拉一樣的人去推動發展生產力。

矛盾也有普通性特殊性,萬一有人實現了呢


不可能,除非你寫的是玩具操作系統。如果你不是科班出身,你弄懂操作系統估計要不少時間,然後學習編程,懂匯編才行,然後學習C語言,最後才可以寫操作系統,如此你用別人代碼抄抄改改,估計半個月可以編譯通過,也可以運行。如果你要寫自己的操作系統,先研究別人的代碼,然後重新寫,花的時間會更多。你說製作一個操作系統linux發行版用半個月就可以啊,但前提是你要熟悉各種編譯技術會使用工具,我從零開始研究gentoolinux製作發行版三個月還沒成功。表面上看起來很容易做,當你親自做了才碰上各種復雜細節和問題,讓你不勝其煩。否則國內linux發行版滿天飛才是

閱讀全文

與編譯通過需要多久相關的資料

熱點內容
安卓手機mp3壓縮工具 瀏覽:214
程序員和交易員 瀏覽:422
怎麼變字體樣式app 瀏覽:173
名字叫湯什麼的視頻app 瀏覽:207
金屬加密鍵盤聯系電話 瀏覽:333
自製解壓牛奶盒子教程 瀏覽:62
編譯高手的圖片 瀏覽:922
單片機數碼管顯示時分秒 瀏覽:780
手指解壓最簡單的方法 瀏覽:343
韓國郵箱伺服器地址 瀏覽:967
android版本介紹 瀏覽:410
pdf文件加密軟體 瀏覽:410
長沙住房app怎麼看備案 瀏覽:603
安裝加密軟體的電腦會被監控么 瀏覽:221
java微博源碼 瀏覽:569
堆排序簡單實現python 瀏覽:461
單片機引腳與鍵盤的關系 瀏覽:132
壓縮火柴盒製作 瀏覽:38
谷歌地圖android偏移 瀏覽:214
bitlocker硬碟加密空間 瀏覽:238