gedit編輯器可以編譯內核嗎
1、在http://www.kernel.org/上下載最新的內核源代碼linux-2.6.33.1.tar.bz2,放在/liqiong/Linux內核 目錄下,liqiong是Linux OS的第一個用戶名。
2、進入Linux內核源碼所在的目錄(cd Linux內核),解壓該內核代碼到/usr/src下:
sudo tar -xjvf linux-2.6.33.1.tar.bz2 -C /usr/src
3、進入Linux內核源碼解壓後的目錄/usr/src/linux-2.6.33.1(cd /usr/src/linux-2.6.33.1)
4、sudo make mrproper 凈化解壓後的源代碼
5、sudo make menuconfig 對內核選項進行配置
在配置過程中會發生如下錯誤:
*** Unable to find the ncurses libraries or the
*** required header files.
*** 'make menuconfig' requires the ncurses libraries.
***
*** Install ncurses (ncurses-devel) and try again.
***
make[1]: *** [scripts/kconfig/dochecklxdialog] 錯誤 1
make: *** [menuconfig] 錯誤2
解決辦法:
(1)cd / 進入根目錄後,在終端輸入:sudo apt-get install ncurses
信息:
正在讀取軟體包列表... 完成
正在分析軟體包的依賴關系樹
正在讀取狀態信息... 完成
現在沒有可用的軟體包 ncurses,但是它被其它的軟體包引用了。
這可能意味著這個缺失的軟體包可能已被廢棄,
或者只能在其他發布源中找到
E: 軟體包 ncurses 還沒有可供安裝的候選者
(2)然後接著在終端輸入:sudo apt-get install libncurses*
(3)再cd /usr/src/linux-2.6.33.1進入內核所在目錄,再次輸入sudo make menuconfig就好了!
6、對於配置可選擇General Setup或者選擇其他的自定義選項保存後退出。
7、sudo make dep 建立模塊間的依賴信息
8、sudo make clean 刪除配置時留下的一些不用的文件
(7、8兩步可能對於一些PC沒有作用)
9、sudo make bzImage 編譯內核,內核較小時可以用make zImage
10、sudo make moles 編譯內核模塊
當然,在編譯內核時,可通過make-j<n>來加速內核的編譯,n一般等於CPU數量的兩倍。單核,n=2;雙核,n=4.即執行sudo make -j4就可以編譯了!
11、sudo make moles_install 安裝內核模塊
12、sudo make install 安裝內核
13、cd / 後在終端輸入:sudo mkinitramfs 2.6.33.1 -o /boot/initrd.img-2.6.33.1-generic
14、到此為止,構建內核完畢,第十二步把內核映象和System.map拷貝到/boot/下
#sudo cp /usr/src/linux-2.6.33.1/arch/i386/boot/bzImage /boot/vmlinuz-2.6.33.1-generic
#sudo cp System.map /boot/System.map-KERNEL_VERSION
#sudo ln -s /boot/System.map-KERNEL_VERSION /boot/System.map
15、
(1)修改grub配置文件
在終端輸入:sudo update-grub2,就會把剛才編譯的內核加入了Grub;(此時就可以重啟了,重啟後在Grub啟動項里多了Ubuntu, Linux 2.6.33.1-generic)
若還需修改(在Ubuntu10.04中沒有採用menu.lst,而是用的grub.cfg(/boot/grub/)),則修改grub.cfg就可以了,
在終端中輸入:sudo gedit /boot/grub/grub.cfg 用root賬戶進入grub.cfg並編輯
(或用sudo chmod +w /boot/grub/grub.cfg改變grub.cfg的許可權後在進行編輯)
如將Grub中的menuentry "Ubuntu, Linux 2.6.33.1-generic"{...}修改為menuentry "Ubuntu, Linux 2.6.33.1-liqiong"{...}(Linux 2.6.33.1-generic是我們剛才編譯的內核)
(2)修改default變數
在/boot/grub/grub.cfg中,設置set default="【某個數字】"(設置Grub啟動項里的默認啟動項)
在Grub啟動項里,從0數起,我的XP在第10項,所以set default="10",即XP就是默認的啟動項了。
最後重啟即可。
『貳』 在Linux下編程都是用vim的嗎
不是,因個人所好。可供選擇的編輯器很多,比如:emacs,gedit,gvim,eclipse,sublime等等。
其中,編輯器之神vim和神之編輯器emacs,是Linux平台上使用率是最高的;據說內核他爹Linus用的emacs。
gedit功能有限;gvim提供給桌面用戶的vim;eclipse從window切換到linux用戶用的多一點;sublime好像是個付費的編輯器,有免費版對於桌面用戶也是不錯的選擇
『叄』 linux編譯配置好的內核,編譯鏡像時候出現arm-linux-:命令未找到
解決方法:
1.先打開一個超級用戶許可權的shell:
命令:sudo –s
2.在當前shell下,設置環境變數:
命令:gedit /etc/profile
在文件末端加上 export PATH=$PATH:/usr/local/arm/4.4.3/bin,並保存。
3. 執行source /etc/profile 這是避免重新啟動ubuntu而又使剛剛修改的環境變數生效的方法。
4、再進入到/opt/FriendlyARM/mini2440/linux-2.6.32.2 目錄,執行make zImage(有可能加sudo),arm-linux-gcc了,可以編譯了。
『肆』 如何修改新內核linux下的grub配置
sudo
gedit
/boot/grub/grub.cfg
gedit可以換成nano,vim等看你用什麼文本編輯器了。
grub.cfg是新版grub。以前版本的是menu.list(lst??)
『伍』 linux 下可以用gcc 編譯windows可用的 exe文件嗎
根據gcc的編譯選項可以看出: 不能
由於Linux和windows是完全不兼容的, Linux上不使用文件後綴名來區分文件, 所以同樣是gcc編譯出來的文件,在Linux上可以執行, 在windows就不能了。
可以安裝Cygwin模擬Linux環境,將源代碼拷到windows下, 用Cygwin編譯出exe文件,可以在Windows上執行。
『陸』 在編譯內核時修改linux文件系統出現這樣的情況,不能保存,怎麼破
這個是linux的保護機制,一般配置文件會自動產生一個.old文件。
因為文件非常重要,所以linux的保護機制提示需要備份一個,配置出錯也能恢復。
每次操作一些文件的時候不妨 cp /xx/yyyy/aa.bbb /xx/yyyy/aa.bbb.old 後再進行操作。
這樣出錯了也能自己手動恢復回來,應該養成這樣一個良好的習慣。
編輯的話覺得vi用不慣可以用nano。gedit編輯好像會出問題,以前我配置網卡IP的時候nano,vi寫出來沒問題,gedit寫出來就有問題。這個我也就不懂了
『柒』 如何利用Linux下的文件編輯器Gedit來編寫程序,如C++等語言。
其實在Linux下用什麼文本編輯器都可以,但是我推薦使用Vi或者Vim。
因為這兩個是最流行的。而且是任何Linux中都會自帶的。
Vim是從Vi發展過來的 ,功能更加強大。
創建源代碼文件(code.c)命令:vim code.c
編寫完成後保存退出:先按ESC,然後按「:」,然後按wq保存鍵。
然後連接,編譯,gcc code.c 生成一個可執行文件,a.out
在命令行中執行./a.out就可以執行文件了。
『捌』 交叉編譯環境和內核
「redhat9的內核2.4,我也升級到2.6了。」
這樣你的系統是不穩定的,在你學習的過程中會有很多很莫名其妙的問題出現的,用的話還是用你的2.4內核吧,要不,你直接用你內核是2.6的linux發行版,比如fedora 或者ubuntu等等。
首先前提是你有arm-linux-gcc的編譯工具。這套工具不同的版本用途不大一樣,有些用來編譯內核,有些用來編譯Qt應用程序。
關於Redhat 9.0裡面建立一個交叉編譯環境的方法如下:
把你的編譯工具(以下以arm-linux-gcc-2.95.3.tgz為例)放置某目錄。
1、解壓:tar -zxvf arm-linux-gcc-2.95.3.tgz
會在當前目錄產生上述包的解壓文件,在這個目錄裡面找到bin目錄,把這個bin目錄的絕對路徑記錄下載。
2、然後添加交叉編譯工具進入系統的環境變數:
gedit /root/.bashrc
編輯/root/.bashrc文件,在最後一行加上
export PATH=$PATH:xxx
xxx是你1、步驟的bin的路徑。接著重啟或者注銷一下就可以了。
重啟完成後打開終端輸入arm-linux-gcc -v 看看有沒有輸出相關的版本信息。
註:上述操作是以root身份登錄系統的。
祝你好運!!
『玖』 ubuntu下怎麼編譯linux內核
Ubuntu 系統
1. 准備工作
切換為管理員許可權,sudo –i 輸入用戶密碼 進入root 許可權
apt-get install build-essential kernel-package libncurses5-dev libqt3-headers
build-essential (基本的編程庫(gcc, make 等)
kernel-package (Debian 系統里生成 kernel-image 的一些配置文件和工具)
libncurses5-dev (meke menuconfig 要調用的)
libqt3-headers (make xconfig 要調用的)
2. 下載特定版本的內核源代碼
3. 復制源碼linux-3.2.12.tar.bz2 到/usr/src 目錄,解壓縮
命令.假設源碼存放在/home 目錄下
cp /home/linux-3.2.12.tar.bz2 /usr/src
cd /usr/src
tar xvjf linux-3.2.12.tar.bz2
解壓後生成 linux-3.2.12 目錄
4. cd linux-3.2.12
接下來配置內核選項
make menuconfig 這一步比較復雜,內核選項很多,可以使用當前內核的配置選項,
但編譯內核的時間會比較長,因為裝系統的時候使用的配置是適應大多數系統的,非定
制選項。關於內核配置選項怎麼定製,網上很多。
5. 把正在使用系統中的內核配置文件/usr/src/linux-headers-2.6.38-13-generic/.config 拷到
/usr/src/linux-3.2.12 目錄下
cp /usr/src/ linux-headers-2.6.38-13-generic/.config /usr/src/ linux-3.2.12
執行:
cd /usr/src/ linux-3.2.12
make menuconfig
終端會彈出一個配置界面
注意主菜單最後有兩項:
load a kernel configuration…
save a kernel configuration…
先選第一項load ….,意思是,利用當前的內核配置詳單來設置將要編譯的內核,然後選save 這一項保存,最後退出配置界面
6. 開如編譯安裝新內核
執行:make mrproper (清除以前曾經編譯過的舊文件,如果是第一次編譯,可不執行)
執行:make (編譯,加-j4,必須加,雙核並行編譯,速度快很多,不過使用原先配置
選項)
然後:make install
再:make moles (編譯模塊)
再:make moles_install (安裝模塊)
最後創建initrd 文件:
mkinitramfs -o /boot/initrd.img-linux-3.2.12
7. make install 以後,系統自動更新了啟動項,可以cat /boot/grub/grub.cfg 看下.之前的啟動項不能刪除,如果編譯內核不成功,之前的啟動項又不見了,系統也就跪了
8. reboot
『拾』 Linux內核編譯出錯。
你的編譯環境有問題。
as 提示不支持某個參數,而且從上面看你應該在編譯 arm 架構的內核,但後面的提示是 as 命令,這種名字的命令(沒有架構前綴)應該是本地編譯器。我想你不太可能在 arm 上本地編譯內核吧(實際上確實可以,而且我以前玩 arm 也都傾向於 arm 上本地編譯,就是速度慢,需要用 distcc 加速,但兼容好)?
貌似是 -EL 參數 ix86 架構不支持。所以不太可能這步就是應該用本地 as 編譯。
如果不是 arm 本地編譯,那有可能這步用錯了 as 這個匯編器命令。你的台式計算機 as 是 x86 或者 amd64 的,肯定不支持 arm 特有的編譯參數和代碼。
你看看你的編譯文章吧。可能有錯,不符合現在內核編譯的規范了。或者 GCC 版本太老或者太新不支持這個參數。不排除你的交叉編譯環境有問題。
別聽那匿名胡扯的,內核源代碼根本沒有 configure 。