導航:首頁 > 操作系統 > linux如何移植

linux如何移植

發布時間:2022-07-06 07:02:14

linux系統下的C代碼如何往單片機上移植(那些庫文件如何處理的)

Linux移植到arm上,主要有三大部分:
1)bootload部分,也就是引導程序設計,一般都有現成的移植程序,如Uboot
2)Linux內核,通過內核裁剪和arm-linux-gcc編譯後,
3)文件系統移植
內容還是很多,三言兩語無法解釋清楚,還是找個視頻看看吧
多高深的一門技術。怎麼可能在這上面幾句話學會嘛。。找點資料看看吧

Ⅱ linux內核移植的一般步驟

#include <reg52.h>
sbit K1=P3^1;
sbit K2=P3^0;
void dealy(int k)
{
int i,j;
for(i=k;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
int a=0xff;
if(K1==0)
{
dealy(500);
if(K1==0)
{
while(!(K2==0))
{
P2=a;
a=a>>1;
dealy(1000);
if(a==0x00)
{
P2=0x00;
dealy(1000);
a=0xff;
}
}
P2=0xff;
}
}
}

Ⅲ 如何移植linux天嵌2440的開發板,有linux源碼包和EABI,是tar.bz2格式,這個是要放到linux系統下

移植包括uboot、內核、文件系統三個分面。。
linux源碼包主要是內核、eabi是一個交叉編譯工具(不懂),就是在linux平台生成2440開發板能執行的文件。
首先你要移植uboot、原後到內核,最後文件系統。一步步來吧,這裡面內容多的是!不看資料還真說不清楚。。建議先照著資料一步步做。

Ⅳ 移植linux kernel,應該怎麼做

1、獲得內核源碼:從Linux內核的官網可獲得相應的內核源碼,這里以2.6.31.1為例。

2、解壓源碼,進入目錄:
#tar xjvf linux- 2.6.31.1.tar.bz2
#cd linux-2.6.31.1

3、修改Makefile的183 行:
ARCH ?= arm <—指定系統硬體架構
CROSS_COMPILE ?= arm-linux- <—指定交叉編譯器

4、修改時鍾:
修改arch/arm/mach-s3c2440/mach-smdk2440.c 的163行
static void __init smdk2440_map_io(void)
{
s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));
s3c24xx_init_clocks(12000000); <—輸入時鍾為12MHz
s3c24xx_init_uarts(smdk2440_uartcfgs, ARRAY_SIZE(smdk2440_uartcfgs));

}
這個一定要設置對,否則會列印出亂碼。

5、修改機器碼(根據實際情況,這個要和bootloader的匹配):
修改:arch/arm/tools/mach-types的379 行:
s3c2440 ……………………… XXX <—後面那個數就是機器碼 (我用的天嵌開發板的機器碼是168)

6、配置:
#make menuconfig <—進入圖形化配置界面
在配置菜單中選擇這一項:"Load an Alternate Configuration File" ,輸入2440的默認配置文件:arch/arm/configs/s3c2410_defconfig ,這個文件就是 S3C24XX 系列開發板板級支持包(BSP)然後選擇 OK,按回車。
進入"System Type"選項單,裡面的選項保持默認在"S3C24XX Machine"選項中只配置這幾項(其他的選項取消):
S3C2410 Machine --->
[*] SMDK2410/A9M2410
S3C2440 Machine --->
[*] SMDK2440
[*] SMDK2440 with S3C2440 cpu moudle

配置完後,回到主菜單,選擇這一項"Save an Alternate Configuration File" ,輸入要保存的
配置文件名稱:.config (默認)或自己取名:TQ2440_config,退出,編譯內核: #make zImage
說明:以後移植過程中的配置、編譯,都是按這個步驟進行,但是只需要保存一次配置文件,以後就不需要再保存配置文件了,配置完後可以直接退出。
編譯完後,會在arch/arm/boot下生成zImage內核鏡像文件,可以修改該目錄下的Makefile, 在第57行下面添加:
@cp -f arch/arm/boot/zImage zImage
@echo ' Kernel: $@ is ready '

這樣執行make zImage後,就把生成的zImage拷到內核根目錄下。
如果希望在在執行make distclean時,也同時把zImage刪除,可以修改內核根目錄下Makefile 的第1247行,在後面加上:
-type f -print | xargs rm -f rm zImage
把 zImage 鏡像燒進 NandFlash 跑一下,看是否正常列印出信息,如果第一步能正常引導內核,那就開始進行。然後添加驅動。

注意,系統啟動最後可能會出現這個錯誤:
Kernel panic - not syncing: Attempted to kill init!
然後出列印出一些很亂的東西。因為用4.x.x版本的交叉編譯器使用EABI,但內核默認是不支持EABI編譯的,所以編譯出的系統會報錯,但用3. x.x版本的編譯器就不會出現這個問題。解決辦法是,配置內核支持EABI編譯:
Kernel Features --->
[*] Use the ARM EABI to compile the kernel
[*] Allow old ABI binaries to run with this kernel (EXPERIMENTA) 6

Ⅳ 如何將linux下的程序,移植到freertos中

方法/步驟

Ⅵ 如何把linux下的軟體移植到ubuntu系統下

雖然說
Linux
系統的最大優點就是兼容性好,但是有時候不同版本的
Linux
還是會有一些差別的。如果說你想把別的Linux系統版本下的軟體移植到
Ubuntu
系統下面的話,那麼最好還是對源程序做一些可擴展代碼的改進(例如:如果是使用
C
語言開發的軟體,你就可以在
C
語言源程序中增加一些條件編譯選項,具體的條件編譯選項有很多,你需要仔細斟酌),這樣你把
C
語言源程序復制到
Ubuntu
系統下面,然後可以使用不同的選項對
C
語言源程序進行編譯,這樣編譯出來的可執行程序,就可以在
Ubuntu
系統下執行了。

Ⅶ 如何手動移植linux系統到迅為4412

方法/步驟

1
首先連接好 iTOP-4412 開發板的調試串口到 pc 上,在 pc 的 windows 系統下打開串口
調試工具。開發板上電,在串口調試工具里按任意 pc 鍵盤的任意按鍵使開發板進入 uboot 命令行模式,如下圖所示:

2
然後在 uboot 輸入分區命令:「fdisk -c 0 1024 300 300」,如下圖所示:

3
上面圖片里的命令是把 emmc分區,其中的 1024 是 linux 的存儲空間,單位是 MB,也
就是 1G。如果想分配更大的空間修改這個值即可。
執行完上面的命令,如下圖所示:

END
方法/步驟2

1
然後在 uboot 命令行分別輸入下面的命令,格式化分區:
fatformat mmc 0:1
ext3format mmc 0:2
ext3format mmc 0:3
ext3format mmc 0:4
至此 EMMC的分區已經只做好了,下面我們開始製作 linux 文件系統,拷貝光碟
「linux/root_xxxxxxxx.tar.gz」(xxxxxxxx 是版本日期,)到 Ubuntu 虛擬機上,例如我這
里拷貝到了「/home/topeet/linux」目錄,如下圖所示:

2
然後使用「tar -xvf root_20140912.tar.gz」命令解壓 linux 文件系統,如下圖所示:

3
解壓完成後,輸入「ls」命令,可以看到生成了」root「文件夾

Ⅷ 如何將linux系統移植到虛擬機上

Mac版的沒用過,不過你也可以看看有沒有「文件夾共享」這個選項

1、選中該虛擬機關機-->右鍵-->設置
2、會出來兩個選項的 a、硬體 b、選項
3、點選項 --> 共享文件夾

這是windows版本的VM,你可以試試看看。

Ⅸ 什麼叫linux系統移植

一般來講Linux系統移植是把Linux從一個已經支持的硬體架構上移植到一個還未支持的硬體架構上。由於Linux最初是Linus Trovalds為x86架構寫的,因此一般Linux系統移植是把x86版本移植到別的架構上,例如arm、mips、powerPC、SPARC(近幾年主流Linux發行版都傾向於只支持x86、amd64和arm版,對其他平台的支持越來越少了)。

Ⅹ 如何移植 linux 到安卓手機

移植toolbox到普通Linux系統中
toolbox是Android中專用的busybox,從嵌入式Linux轉過來都會大大地吐槽功能簡陋。但實質上也有很多特有的很好用的功能。比如getevent命令來調試所有的輸入事件。已經靜態編譯出來了(下載地址:toolbox 靜態編譯),這里記錄一下移植過程。
原本以為會很難,所以一直放很久才開始做,最終很簡單,只需要稍加修改Android.mk就可以編譯出一個靜態鏈接的toolbox。以下diff文件就是改動信息。
diff --git a/system/core/toolbox/Android.mk b/system/core/toolbox/Android.mk
index 086ba0d..d5aef3b 100755
--- a/system/core/toolbox/Android.mk
+++ b/system/core/toolbox/Android.mk
@@ -91,6 +91,7 @@ LOCAL_SRC_FILES := \
grep/grep.c grep/fastgrep.c grep/file.c grep/queue.c grep/util.c

LOCAL_SHARED_LIBRARIES := libcutils libc libusbhost
+LOCAL_STATIC_LIBRARIES := libc libcutils

LOCAL_C_INCLUDES := bionic/libc/bionic

@@ -102,6 +103,7 @@ LOCAL_C_INCLUDES += external/libselinux/include

endif

+LOCAL_FORCE_STATIC_EXECUTABLE := true
LOCAL_MODULE := toolbox

# Including this will define $(intermediates).

然後進行編譯就自動編譯成了靜態鏈接的了。
$ file out/target/proct/xxx/system/bin/toolbox
out/target/proct/xxx/system/bin/toolbox: ELF 32-bit LSB executable, ARM, \
version 1 (SYSV), statically linked, stripped
$12341234

當然,我沒有編譯所有的CPU架構的,只是編譯了ARMv7的,所以比較低的架構或者其它CPU可能不能直接使用,那麼就自行編譯吧。
<完>

閱讀全文

與linux如何移植相關的資料

熱點內容
壓縮層計算深度 瀏覽:388
愛奇藝怎麼不能源碼輸出 瀏覽:831
小孩視力訓練app哪個好 瀏覽:828
表格上加密碼 瀏覽:199
伺服器如何調時間 瀏覽:414
安卓怎麼跟蹤對方蘋果手機位置 瀏覽:829
pptp伺服器地址怎麼設置 瀏覽:940
藍月傳奇bt源碼 瀏覽:832
丹麥丹佛斯壓縮機 瀏覽:773
statapwcorr命令 瀏覽:135
怎樣看文件夾創建程序 瀏覽:641
文明重啟伺服器什麼時候重啟 瀏覽:981
app開發哪個比較好 瀏覽:977
程序員電腦卡了 瀏覽:831
壓縮空氣系統作用 瀏覽:404
三輪車用哪個app 瀏覽:29
手游游戲端源碼 瀏覽:93
沉井腳手架計演算法 瀏覽:922
加密twf文件怎麼列印 瀏覽:252
進入recoveryadb命令 瀏覽:3