版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/37655681
位置:Documentation/arm/README
//希望大家帮我把打问号的地方补上,还有就是帮我看一下很多翻译的错误帮我指正,谢谢大家啦!!
ARM Linux 2.4
=============
Please check ftp.arm.linux.org.uk:/pub/armlinux for latest updates.
请检查ftp站点ftp.arm.linux.org.uk:/pub/armlinux来查找最新版本。
Compilation of kernel
内核编译
---------------------
In order to compile ARM Linux, you will need a compiler capable ofgenerating ARM ELF code with GNU extensions. GCC 2.95.1 and EGCS 1.1.2 are good compilers.
为了能够编译arm linux,你需要一款能够胜任的编译器,该编译器能够生成ARM ELF文件格式。GCC 2.95.1 和 EGCS 1.1.2 是比较好的编译器。
To build ARM Linux natively, you shouldn't have to alter the ARCH = line in the top level Makefile. However, if you don't have the ARM Linux ELF tools installed as default, then you should change the CROSS_COMPILE line as detailed below.
为了能够在本地构建ARM Linux,在顶层的Makefile文件中你不能改变ARCH=这一行代码。如果你还没有安装ARM Linux ELF工具,你应该改变CROSS_COMPILE这一行,详情如下:
If you wish to cross-compile, then alter the following lines in the top level make file:
如果你希望交叉编译,改变顶层文件Makefile中下面的这些行:
ARCH = <whatever>
with
ARCH = arm
and
CROSS_COMPILE=
to
CROSS_COMPILE=<your-path-to-your-compiler-without-gcc>
eg.
CROSS_COMPILE=arm-linux-
Do a 'make config', followed by 'make Image' to build the kernel(arch/arm/boot/Image). A compressed image can be built by doing a 'make zImage' instead of 'make Image'.
使用命令'make config',之后使用命令'make Image'来构建一个内核(arch/arm/boot/Image).通过使用命令'make zImage'而不是'make Image'命令能够生成一个压缩的镜像文件。
Bug reports etc
程序缺陷提交
---------------
Please send patches to the patch system. For more information,see http://www.arm.linux.org.uk/patches/info.html Always include some explanation as to what the patch does and why it is needed.
请将补丁包发送到补丁系统中。请登陆网站http://www.arm.linux.org.uk/patches/info.html来获取更多的信息。这些补丁包中要包含一些解释信息,例如该补丁包是干什么的,为什么需要该补丁包。
=============
Please check ftp.arm.linux.org.uk:/pub/armlinux for latest updates.
请检查ftp站点ftp.arm.linux.org.uk:/pub/armlinux来查找最新版本。
Compilation of kernel
内核编译
---------------------
In order to compile ARM Linux, you will need a compiler capable ofgenerating ARM ELF code with GNU extensions. GCC 2.95.1 and EGCS 1.1.2 are good compilers.
为了能够编译arm linux,你需要一款能够胜任的编译器,该编译器能够生成ARM ELF文件格式。GCC 2.95.1 和 EGCS 1.1.2 是比较好的编译器。
To build ARM Linux natively, you shouldn't have to alter the ARCH = line in the top level Makefile. However, if you don't have the ARM Linux ELF tools installed as default, then you should change the CROSS_COMPILE line as detailed below.
为了能够在本地构建ARM Linux,在顶层的Makefile文件中你不能改变ARCH=这一行代码。如果你还没有安装ARM Linux ELF工具,你应该改变CROSS_COMPILE这一行,详情如下:
If you wish to cross-compile, then alter the following lines in the top level make file:
如果你希望交叉编译,改变顶层文件Makefile中下面的这些行:
ARCH = <whatever>
with
ARCH = arm
and
CROSS_COMPILE=
to
CROSS_COMPILE=<your-path-to-your-compiler-without-gcc>
eg.
CROSS_COMPILE=arm-linux-
Do a 'make config', followed by 'make Image' to build the kernel(arch/arm/boot/Image). A compressed image can be built by doing a 'make zImage' instead of 'make Image'.
使用命令'make config',之后使用命令'make Image'来构建一个内核(arch/arm/boot/Image).通过使用命令'make zImage'而不是'make Image'命令能够生成一个压缩的镜像文件。
Bug reports etc
程序缺陷提交
---------------
Please send patches to the patch system. For more information,see http://www.arm.linux.org.uk/patches/info.html Always include some explanation as to what the patch does and why it is needed.
请将补丁包发送到补丁系统中。请登陆网站http://www.arm.linux.org.uk/patches/info.html来获取更多的信息。这些补丁包中要包含一些解释信息,例如该补丁包是干什么的,为什么需要该补丁包。
Bug reports should be sent to linux-arm-kernel@lists.arm.linux.org.uk,or submitted through the web form at
http://www.arm.linux.org.uk/forms/solution.shtml
程序缺陷报告应该发送到linux-arm-kernel@lists.arm.linux.org.uk邮箱,通过表单来进行提交。
http://www.arm.linux.org.uk/forms/solution.shtml
When sending bug reports, please ensure that they contain all relevant information, eg. the kernel messages that were printed before/during the problem, what you were doing, etc.
当发送缺陷报告时,请确认他们包含所有的相关信息,例如,在问题发生之前或之后打印出的内核信息,你正在做什么等等。
Include files
包含的文件
-------------
Several new include directories have been created under include/asm-arm,which are there to reduce the clutter in the top-level directory. These directories, and their purpose is listed below:
在include/asm-arm文件夹下包含了很多新建的目录,那些文件在该目录下是为了降低顶层目录的混乱。
arch-* machine/platform specific header files
hardware driver-internal ARM specific data structures/definitions
mach descriptions of generic ARM to specific machine interfaces
proc-* processor dependent header files (currently only two
categories)
arch-* 机器/平台具体的头文件
hardware 内置驱动ARM具体的数据结构/定义
mach 对通用ARM的具体机器结构的描述
proc-* 处理器依赖的头文件(当前仅仅由两个类型)
Machine/Platform support
机器/平台支持
------------------------
The ARM tree contains support for a lot of different machine types. To continue supporting these differences, it has become necessary to split machine-specific parts by directory. For this, the machine category is used to select which directories and files get included (we will use $(MACHINE) to refer to the category)
ARM树包含对一些不同机器类型的支持。为了持续的支持这些不同,将机器具体的部分以不同的目录分离出来是必要的。为了实现这个目的,机器类别被用来选择哪些目录和文件被包含进来(我们通常使用$(MACHINE)来指明类别)
To this end, we now have arch/arm/mach-$(MACHINE) directories which are designed to house the non-driver files for a particular machine (eg, PCI,memory management, architecture definitions etc). For all future machines, there should be a corresponding include/asm-arm/arch-$(MACHINE) directory.
最后,arch/arm/mach-$(MACHINE)目录被设计用来存放针对一些特定机器的非驱动文件(例如,PCI,内存管理,体系结构定义等等)。对所有未来的机器,应该有一个相关的目录 include/asm-arm/arch-$(MACHINE).
Modules
模块
-------
Although modularisation is supported (and required for the FP emulator),each module on an ARM2/ARM250/ARM3 machine when is loaded will take memory up to the next 32k boundary due to the size of the pages.Therefore, modularisation on these machines really worth it?
虽然,模块化是被支持的(需要FP模拟器),但是在ARM2/ARM250/ARM3机器中的每一个模块在加载的时候都将使内存上升到下一个32k的界限上,这是由于页的大小导致的。因此,在这些机器上模块化真的工作吗?
However, ARM6 and up machines allow modules to take multiples of 4k, and as such Acorn RiscPCs and other architectures using these processors can make good use of modularisation.
然而,ARM6和更高版本的机器允许模块真用多个4K的空间,例如Acorn RiscPCs和其他使用这些处理器的提起结构能够利用好模块化。
ADFS Image files
ADFS镜像文件
----------------
You can access image files on your ADFS partitions by mounting the ADFS partition, and then using the loopback device driver. You must have losetup installed.
通过挂载ADFS分区你能够在你的ADFS分区上获取镜像文件,然后使用回环设备驱动。你一定要安装设置循环设备程序。
Please note that the PCEmulator DOS partitions have a partition table at the start, and as such, you will have to give '-o offset' to losetup.
请注意,在开始的时候PC模拟器DOS分区有一个分区表,像这样,你必须使用'-o offset'来设置循环设备。
Request to developers
对开发者的要求
---------------------
When writing device drivers which include a separate assembler file, please include it in with the C file, and not the arch/arm/lib directory. This allows the driver to be compiled as a loadable module without requiring half the code to be compiled into the kernel image.
当编写包含独立汇编文件的设备驱动程序的时候,请在C文件中包含(include)它,不是arch/arm/lib目录。这允许驱动程序被编译成可加载模块而不是要求将驱动程序编译进内核镜像中。
In general, try to avoid using assembler unless it is really necessary. It makes drivers far less easy to port to other hardware.
通常,如果不是真的有必要,要试着避免使用汇编程序。它使得驱动程序不是很容易与其他硬件相适应。
ST506 hard drives
ST506硬盘驱动器
-----------------
The ST506 hard drive controllers seem to be working fine (if a little slowly). At the moment they will only work off the controllers on an A4x0's motherboard, but for it to work off a Podule just requires someone with a podule to add the addresses for the IRQ mask and the HDC base to the source.
程序缺陷报告应该发送到linux-arm-kernel@lists.arm.linux.org.uk邮箱,通过表单来进行提交。
http://www.arm.linux.org.uk/forms/solution.shtml
When sending bug reports, please ensure that they contain all relevant information, eg. the kernel messages that were printed before/during the problem, what you were doing, etc.
当发送缺陷报告时,请确认他们包含所有的相关信息,例如,在问题发生之前或之后打印出的内核信息,你正在做什么等等。
Include files
包含的文件
-------------
Several new include directories have been created under include/asm-arm,which are there to reduce the clutter in the top-level directory. These directories, and their purpose is listed below:
在include/asm-arm文件夹下包含了很多新建的目录,那些文件在该目录下是为了降低顶层目录的混乱。
arch-* machine/platform specific header files
hardware driver-internal ARM specific data structures/definitions
mach descriptions of generic ARM to specific machine interfaces
proc-* processor dependent header files (currently only two
categories)
arch-* 机器/平台具体的头文件
hardware 内置驱动ARM具体的数据结构/定义
mach 对通用ARM的具体机器结构的描述
proc-* 处理器依赖的头文件(当前仅仅由两个类型)
Machine/Platform support
机器/平台支持
------------------------
The ARM tree contains support for a lot of different machine types. To continue supporting these differences, it has become necessary to split machine-specific parts by directory. For this, the machine category is used to select which directories and files get included (we will use $(MACHINE) to refer to the category)
ARM树包含对一些不同机器类型的支持。为了持续的支持这些不同,将机器具体的部分以不同的目录分离出来是必要的。为了实现这个目的,机器类别被用来选择哪些目录和文件被包含进来(我们通常使用$(MACHINE)来指明类别)
To this end, we now have arch/arm/mach-$(MACHINE) directories which are designed to house the non-driver files for a particular machine (eg, PCI,memory management, architecture definitions etc). For all future machines, there should be a corresponding include/asm-arm/arch-$(MACHINE) directory.
最后,arch/arm/mach-$(MACHINE)目录被设计用来存放针对一些特定机器的非驱动文件(例如,PCI,内存管理,体系结构定义等等)。对所有未来的机器,应该有一个相关的目录 include/asm-arm/arch-$(MACHINE).
Modules
模块
-------
Although modularisation is supported (and required for the FP emulator),each module on an ARM2/ARM250/ARM3 machine when is loaded will take memory up to the next 32k boundary due to the size of the pages.Therefore, modularisation on these machines really worth it?
虽然,模块化是被支持的(需要FP模拟器),但是在ARM2/ARM250/ARM3机器中的每一个模块在加载的时候都将使内存上升到下一个32k的界限上,这是由于页的大小导致的。因此,在这些机器上模块化真的工作吗?
However, ARM6 and up machines allow modules to take multiples of 4k, and as such Acorn RiscPCs and other architectures using these processors can make good use of modularisation.
然而,ARM6和更高版本的机器允许模块真用多个4K的空间,例如Acorn RiscPCs和其他使用这些处理器的提起结构能够利用好模块化。
ADFS Image files
ADFS镜像文件
----------------
You can access image files on your ADFS partitions by mounting the ADFS partition, and then using the loopback device driver. You must have losetup installed.
通过挂载ADFS分区你能够在你的ADFS分区上获取镜像文件,然后使用回环设备驱动。你一定要安装设置循环设备程序。
Please note that the PCEmulator DOS partitions have a partition table at the start, and as such, you will have to give '-o offset' to losetup.
请注意,在开始的时候PC模拟器DOS分区有一个分区表,像这样,你必须使用'-o offset'来设置循环设备。
Request to developers
对开发者的要求
---------------------
When writing device drivers which include a separate assembler file, please include it in with the C file, and not the arch/arm/lib directory. This allows the driver to be compiled as a loadable module without requiring half the code to be compiled into the kernel image.
当编写包含独立汇编文件的设备驱动程序的时候,请在C文件中包含(include)它,不是arch/arm/lib目录。这允许驱动程序被编译成可加载模块而不是要求将驱动程序编译进内核镜像中。
In general, try to avoid using assembler unless it is really necessary. It makes drivers far less easy to port to other hardware.
通常,如果不是真的有必要,要试着避免使用汇编程序。它使得驱动程序不是很容易与其他硬件相适应。
ST506 hard drives
ST506硬盘驱动器
-----------------
The ST506 hard drive controllers seem to be working fine (if a little slowly). At the moment they will only work off the controllers on an A4x0's motherboard, but for it to work off a Podule just requires someone with a podule to add the addresses for the IRQ mask and the HDC base to the source.
ST506硬盘驱动器控制器看上去工作的很好(如果有点慢的话)。现在,他们仅仅在A4x0's母板上工作该控制器.
As of 31/3/96 it works with two drives (you should get the ADFS*configure harddrive set to 2). I've got an internal 20MB and a great big external 5.25" FH 64MB drive (who could ever want more :-) ).
“???”她与两个驱动器工作(你应该将ADFS配置中的硬盘驱动器设置到2)。我已经得到了一个内部的20M和一个非常大的外部的5.25" FH 64M驱动器。(谁还会想要更多呢)
I've just got 240K/s off it (a dd with bs=128k); thats about half of what RiscOS gets; but it's a heck of a lot better than the 50K/s I was getting last week :-)
我已经获取到240K/s(一个带有 bs=128Kd的dd);那大约是RiscOS获取到的一半;但是它却惊人的要比我上周获取到的50K/s运行要好。
Known bug: Drive data errors can cause a hang; including cases where the controller has fixed the error using ECC. (Possibly ONLY in that case...hmm).
已知的缺陷:驱动数据错误可能会导致一个挂载;控制器已经使用ECC修补了这个错误(可能仅仅在那种情况下会出现错误)
1772 Floppy
1772软盘
-----------
This also seems to work OK, but hasn't been stressed much lately. It hasn't got any code for disc change detection in there at the moment which could be a bit of a problem! Suggestions on the correct way to do this are welcome.
这个也好像工作的很好,但是最近强调的不是很多。在那没有获取到任何盘改变检测代码,在那个时候可能或出现一点错误。如果您能提供一些修正这个缺陷的正确的方式,我们是非常欢迎的。
Kernel entry (head-armv.S)
内核入口(head-armv.S)
--------------------------
The initial entry into the kernel made via head-armv.S uses architecture independent code.The architecture is selected by the value of 'r1' on entry, which must be kept unique. You can register a new architecture by mailing the following details to rmk@arm.linux.org.uk Please give the mail a subject of 'Register new architecture':
进入内核最初的入口程序是经过head-armv.S使用体系结构依赖代码构建的。这个体系结构通过在入口程序中的'r1'的值进行选择,这个值必须保证独一无二。通过向rmk@arm.linux.org.uk发送邮件来注册一个新的体系结构。邮件的副标题请命名为'Register new architecture':
Name: <name of your architecture>
ArchDir: <name of include/asm-arm/arch-* directory>
Type: <MACH_TYPE_* macro name>
Description:
<description of your architecture>
Please follow this format - it is an automated system. You should receive a reply in short order.
请使用这个格式 - 这是一个自动化的系统。在很短的时间内你应该能够收到一个回复。
As of 31/3/96 it works with two drives (you should get the ADFS*configure harddrive set to 2). I've got an internal 20MB and a great big external 5.25" FH 64MB drive (who could ever want more :-) ).
“???”她与两个驱动器工作(你应该将ADFS配置中的硬盘驱动器设置到2)。我已经得到了一个内部的20M和一个非常大的外部的5.25" FH 64M驱动器。(谁还会想要更多呢)
I've just got 240K/s off it (a dd with bs=128k); thats about half of what RiscOS gets; but it's a heck of a lot better than the 50K/s I was getting last week :-)
我已经获取到240K/s(一个带有 bs=128Kd的dd);那大约是RiscOS获取到的一半;但是它却惊人的要比我上周获取到的50K/s运行要好。
Known bug: Drive data errors can cause a hang; including cases where the controller has fixed the error using ECC. (Possibly ONLY in that case...hmm).
已知的缺陷:驱动数据错误可能会导致一个挂载;控制器已经使用ECC修补了这个错误(可能仅仅在那种情况下会出现错误)
1772 Floppy
1772软盘
-----------
This also seems to work OK, but hasn't been stressed much lately. It hasn't got any code for disc change detection in there at the moment which could be a bit of a problem! Suggestions on the correct way to do this are welcome.
这个也好像工作的很好,但是最近强调的不是很多。在那没有获取到任何盘改变检测代码,在那个时候可能或出现一点错误。如果您能提供一些修正这个缺陷的正确的方式,我们是非常欢迎的。
Kernel entry (head-armv.S)
内核入口(head-armv.S)
--------------------------
The initial entry into the kernel made via head-armv.S uses architecture independent code.The architecture is selected by the value of 'r1' on entry, which must be kept unique. You can register a new architecture by mailing the following details to rmk@arm.linux.org.uk Please give the mail a subject of 'Register new architecture':
进入内核最初的入口程序是经过head-armv.S使用体系结构依赖代码构建的。这个体系结构通过在入口程序中的'r1'的值进行选择,这个值必须保证独一无二。通过向rmk@arm.linux.org.uk发送邮件来注册一个新的体系结构。邮件的副标题请命名为'Register new architecture':
Name: <name of your architecture>
ArchDir: <name of include/asm-arm/arch-* directory>
Type: <MACH_TYPE_* macro name>
Description:
<description of your architecture>
Please follow this format - it is an automated system. You should receive a reply in short order.
请使用这个格式 - 这是一个自动化的系统。在很短的时间内你应该能够收到一个回复。
---
Russell King (26/01/2001)
Russell King (26/01/2001)