导航:首页 > 操作系统 > 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如何移植相关的资料

热点内容
华为云服务器有啥软件 浏览:650
礼记正义pdf 浏览:986
CorePDF 浏览:731
python多文件调用 浏览:327
linux如何用python 浏览:186
超易学的python 浏览:159
控制面板命令行 浏览:51
为什么空气难压缩是因为斥力吗 浏览:643
郭天祥单片机实验板 浏览:601
服务器有什么危害 浏览:258
饥荒怎么开新的独立服务器 浏览:753
文件夹变成了 浏览:560
linuxpython绿色版 浏览:431
怎么下载小爱同学音箱app 浏览:554
python占位符作用 浏览:76
javajdbcpdf 浏览:543
php网页模板下载 浏览:192
python试讲课pygame 浏览:409
安居客的文件夹名称 浏览:677
家里服务器如何玩 浏览:451