當前位置:首頁 » 編程軟體 » linux內核編譯安裝新電腦

linux內核編譯安裝新電腦

發布時間: 2022-02-27 08:12:58

編譯基於linux內核2.6的驅動一定要在電腦上用2.6內核的操作系統嗎

RH9 ?那你的升級還不如直接去作一個 LFS 。

內核驅動是要匹配內核版本的,而且要匹配小版本,2.6.9 、2.6.11 .2.6.2x (忘了具體版本)都有介面修改。最近內核介面變化非常大,很多驅動介面變動的都要修改驅動才能支持。

如果你真的想用 RH 升級,給你的升級路線是:
升級 moles-init-tools -> 升級內核
不過這樣你的系統可能會有問題,一般用應該沒問題,但驅動編譯可能會過不去,或者就算編譯成功,測試成功,也不能保證可以在別人的機器上使用。(因為編譯驅動是和內核版本以及 gcc 版本相關的)
這樣的話,你可能需要升級 glibc -> gcc ->binutils -> glibc -> gcc (這兩個是在新環境重新編譯)-> 重新編譯內核 -> 升級或者重新編譯基礎軟體環境 -> 重新編譯全部系統。
大概全自動腳本協助的狀態下(也就是說排除操作時的時間損耗,找資料的時間損耗)。大概需要 48 小時 - 72 小時吧。機器性能特別好,也需要大概 36 小時以上,之後因為你的 Linux 環境已經升級,你所有想安裝的軟體都要自己編譯安裝。

不過注意,RH9 自帶的 gcc 是 3.x (好象是 3.2 ),現在 gcc 是 4.3 。其中加強了語法檢查,以及別的東西。glibc 也跨過多個版本(RH9 好幾年前的,真想不起來他是什麼版本了。反正非常古老),可以說現在的程序介面,已經和過去不同了。
你用 RH9 開發,現在來說應該只有你自己的機器可以運行,換到別人的機器上,那就需要把別人的機器改回 RH9 (這在新計算機上面是不可能的,不兼容很多硬體的),並且根據你的升級去升級軟體,才能使用。

當然,這里有個除非,除非你開發的驅動不是用在你當前的計算機上面,而是通過交叉編譯而運行在另外一個系統上面,這樣的話,只要你的交叉編譯環境版本正確,那就沒問題(不過我還是質疑這個交叉編譯用的 gcc 和 binutils 能否在你的機器上面編譯出來&運行。)
--------------------
RH4 是什麼?比 RH9 還老的版本?
還是 RHEL 4 ?這個也不新。

理論上在開發板上面載入是和當前系統無關的,但你需要一個能在當前系統上面運行的交叉編譯環境,用這個交叉編譯環境來編譯一個在你的目標 CPU、主板上目標內核兼容的驅動程序。

這個是嵌入式開發的基礎知識,如果你連這個都不會,暫時不要看 Linux 驅動開發,先去看看「交叉編譯程序」相關的信息。

因為 arm 上面的 CPU 指令架構與 x86 完全不同,所以這兩個內核版本不同沒有關系,只要是針對 arm 的內核&架構編寫的驅動,並且用交叉編譯器編譯為 arm 的二進制指令,就能使用。

② 我想在ubuntu系統下編譯linux內核代碼,那我要怎麼進行環境的配置,要安裝什麼呢

安裝內核代碼,拷貝.config,mole.symvers文件。

③ linux內核編譯詳細教程及開發Linux系統

已發送到[email protected]

④ linux編譯內核時,到安裝內核模塊:#make moles_install 時,過程中提示設備上沒有空間

建議裁剪內核,內核中很多驅動模塊,子系統等一般用戶都用不上,我在我自己的電腦上裁剪後編譯的內核源碼樹大小隻有700多M~

⑤ 關於Linux內核編譯,如果我已經編譯好內核,那麼下一步怎麼辦,如何用它替換我現在已經裝好的linux的內核

RH9 不要折騰了,你升級了內核也沒有意義。

⑥ 如何重新編譯linux內核

  1. 因為一般電腦安裝的系統都是Windows,而整個編譯過程都需要在Linux環境下實現,所以最好是在虛擬機里安裝Linux系統來完成這一過程。我使用的虛擬機是VMware-workstation-full-v7.1.4。

  2. 然後,我們需要下載一個較高版本的Linux系統的鏡像文件,安裝在虛擬機上,作為編譯環境。我使用的是ubuntu-11.04-desktop-i386。之所以選擇較高版本,是因為它的界面比較方便用戶操作。

  3. 然後下載一個Linux內核源代碼文件,將它保存到虛擬機上新安裝的系統中去。並解壓到/usr/src目錄。我使用的是linux-2.6.36,下載低版本的原因是,小巧輕便,易於編譯。

    解壓命令如下:

    bzip2 -d linux-2.6.36.tar.bz2

    tar -xvf linux-2.6.36.ta

  4. 修改/usr/src/linux-2.6.36/kernel/sys.c文件,在文件末尾增加一個系統調用函數。自行編寫一個簡單的程序即可,只為測試用。

  5. 修改/usr/src/linux-2.6.36/arch/x86/kernel/syscall_table_32.S,為新添加的程序配置系統調用號。

  6. 在/usr/src/linux-2.6.36/arch/x86/include/asm/unistd_32.h中配置系統調用表。

  7. 下面就是最重要的內核編譯與安裝:

    首先配置編譯信息,使其生成適合當前機器的Makefile,輸入make oldconf ig。

    接著還要輸入make menuconfig,在字元界面下進行必要的細微的修改。

    然後要經過四步編譯過程(直接輸入命令即可):

    (1)make bzImage

    將內核編譯為壓縮映像,存儲在源碼根目錄下的「System.map」文件中。

    (2)make moles

    編譯各個模塊。

    (3)sudo make moles_install

    安裝模塊

    (4)sudo make install

    安裝內核

    第(2)(3)步等待時間較長,可能需要數個小時,請耐心等待。

    無報錯的話重啟進入GRUB界面,就可以看到新編譯的內核了。

  8. 按回車鍵進入我們編譯的目標內核中,用關鍵詞搜索查看新增加的系統調用「my call」是否已在內核中:

  9. 編寫測試程序,調用新添加的系統調用:

  10. 測試成功,說明系統調用添加成功,進而說明內核編譯成功!

    以上的辦法你可以試一下,希望對你有所幫助。

⑦ linux如何編譯安裝新內核支持NTFS文件系統(

第一步: 對硬體進行設置,使其滿足要求並下載內核:

1. 新添加一塊20G的硬碟及修改內存:

⑧ Linux內核編譯並安裝後,都生成了哪些文件

你編譯源代碼的目錄刪了沒?
另外你怎麼安裝的?用的哪幾個命令?
-----------
那應該就是 /boot 裡面的文件和 /lib/moles 裡面的東西啊……
你是不是把別的軟體的 cache 當成內核一流的東西了?
比如 ccache 這個 gcc 緩存程序他會把所有編譯時的數據做緩存保存在硬碟上等下次編譯時使用。

⑨ linux內核編譯問題 vmware內編譯好內核如何在其他主機上安裝

你這水平要加油了。
1. 沒有網卡的話,可以增加個usb口的網卡呢。一個才十幾塊錢。usb口絕對有。配置好ip地址,直接傳,如scp.
2. 拷貝內核,moles, 到U盤。
然後目標機器掛載U盤。
dmesg 識別到u盤。
然後掛載u盤:mount掛載下。
然後手動安裝內核,生成initxxxx文件,修改bootloader內核優先順序。
最後 sync 然後eject彈出u盤即可。
3. 硬碟介面等傳文件。
4. 人人順風順水的回答沒有問題,簡明,是你水平太差看不懂而已。
5. 內核目錄里有個Documentation, 你多閱讀下

熱點內容
阿里雲esc伺服器系統 發布:2025-01-18 09:49:16 瀏覽:789
你們家的無線網密碼是多少 發布:2025-01-18 09:47:50 瀏覽:729
renderscriptandroid 發布:2025-01-18 09:32:18 瀏覽:992
安卓手機如何拍游戲素材 發布:2025-01-18 09:30:59 瀏覽:347
廣州日立壓縮機有限公司 發布:2025-01-18 09:15:08 瀏覽:623
伺服器兩條寬頻如何疊加網速 發布:2025-01-18 08:52:17 瀏覽:730
oracle存儲過程集合 發布:2025-01-18 08:42:39 瀏覽:884
洋蔥數學緩存 發布:2025-01-18 08:38:36 瀏覽:918
電影的文件夾都是 發布:2025-01-18 08:21:49 瀏覽:835
post提交php 發布:2025-01-18 08:21:42 瀏覽:460