如何配置编译在mini2440开发板上运行的linux内核

作者&投稿:乾霭 (若有异议请与网页底部的电邮联系)
如何编译mini2440的linux内核文件~

s3c2440A处理器,arm9内核 接口齐全,文档也比较丰富.利用板载资源可以学习不少东西.完整的嵌入式wince和linux都可以开发.还可以移植其它系统,当然这方面用的就少了. 目前来看是做学习板较好的厂商.售后没接触过,因为我还没遇到什么问题需要联系售

其实不太懂你们为什么都要买一个贵的开发板去跑Linux系统才觉得学到东西,Linux系统根本不适应一个初学者去学习.可以去问问大学搞这一行的老师后者前辈,有几个对Linux系统搞的透彻的.
还是建议你们买个ARM7先去搞清楚简单的UCos 和ARM7的接口原理再说.这样便宜来得简单明了,学得快.最重要是学到原理.
用ARM7和用ARM9就好象是在WIN98和WINXP上学习如何操作WINDOWS一样,有差别吗? 原理是通用的,钱多的买ARM9-11开发,固然可以,但是学东西重点是学原理,简单实用的原理最好,一通百通.实在没有必要去疯狂搞LINUX,把那些代码看完都要你至少半年时间了,还不一定懂.

PS:
我一个朋友公司用Linux系统做PockPC,十多个人做了1年了,现在才算是基本稳定.做成的产品还因为成本高,难销出去.不知道大家准备花多少时间去弄清楚你以后可能都不会用的东西呢.还好微软没有把Wince完全开放出来,不然不知道要看死多少人.全弄明白,估计孙子都出来了.

参考:http://www.it165.net/os/html/201409/9334.html

系统ubuntu12.04(非虚拟机下)
mini2440
CPU型号: S3C2440AL-40
Nanflash型号:K9F1G08
Norflash型号:SST39VF1601
LCD: 统宝 240 x 320
$: 普通账户
#:root账户
*当shell下输入路径时可使用tab键自动补全

(一)建立交叉编译环境

1.将mini2440光盘中的linux文件夹拷贝到 /home/lianghuiyong 并改名为Linux_share
(其中两个文档为我后面添加进去的)

2.Ctrl+Alt+T打开shell
3.$ su - root (切换root权限)
4.# cd /home/lianghuiyong/Linux_share
5.解压安装arm-linux-gcc编辑器
# tar xvzf arm-linux-gcc-4.4.3.tar.gz –C / //注意:C后面有个空格
执行该命令,将把 arm-linux-gcc 安装到/usr/loca/arm/4.4.3 目录。这句来自mini2440用户手册,我发现其实是安装到 /opt/FriendlyARM/toolchain/4.4.3 目录

6.# vim /root/.bashrc
7.在最后一行添加:export PATH=$PATH:/opt/FriendlyARM/toolschain/4.4.3/bin //opt/FriendlyARM/toolschain/4.4.3/bin 为arm-linux-gcc 环境变量
:wq保存退出。
# source ~/.bashrc
8.# sudo gedit /etc/environment
games后面添加标记部分

9.# arm-linux-gcc -v //gcc后面有空格

测试hello.c(这是在安装了第二部分的linux示例程序才有examples/hello目录)
# cd /opt/FriendlyARM/mini2440/examples/hello
# arm-linux-gcc -o hello hello.c
# ./hello

(二)安装源代码及其他工具
创建工作目录(以下都为root环境下):
# mkdir -p /opt/FriendlyARM/mini2440

1>>解压安装linux内核源代码
# cd /opt/FriendlyARM/mini2440
# tar xvzf /home/lianghuiyong/Linux_share/linux-2.6.32.2-mini2440-20100106.tar.gz

2>>解压安装嵌入式图形系统qtopia源代码
# cd /opt/FriendlyARM/mini2440
# tar xvzf /home/lianghuiyong/Linux_share/x86-qtopia.tgz
# tar xvzf /home/lianghuiyong/Linux_share/arm-qtopia.tgz

3>>解压安装嵌入式图形系统 QtE-4.6.1 源代码
# cd /opt/FriendlyARM/mini2440
# tar xvzf /home/lianghuiyong/Linux_share/arm-qte-4.6.3-20100802.tar.gz

4>>解压安装busybox 源代码
# cd /opt/FriendlyARM/mini2440
# tar xvzf /home/lianghuiyong/Linux_share/busybox-1.13.3-mini2440.tgz

5>>解压安装 Linux 示例程序
# cd /opt/FriendlyARM/mini2440
# tar xvzf /home/lianghuiyong/Linux_share/examples-20100108.tgz

6>>解压安装 vboot 源代码
# cd /opt/FriendlyARM/mini2440
# tar xvzf /home/lianghuiyong/Linux_share/vboot-src-20100106.tar.gz

7>>解压安装 bootloader 源代码
# cd /opt/FriendlyARM/mini2440
# tar xvzf /home/lianghuiyong/Linux_share/bootloader.tgz

8>>解压创建目标文件系统
# cd /opt/FriendlyARM/mini2440
#tar xvzf /home/lianghuiyong/Linux_share/rootfs_qtopia_qt4-20100816.tar.gz

9>>解压安装目标文件系统映象制作工具 mkyaffs2image
# cd /opt/FriendlyARM/mini2440
# tar xvzf /home/lianghuiyong/Linux_share/mkyaffs2image.tgz –C /

10>>解压安装LogoMaker
# cd /opt/FriendlyARM/mini2440
# tar xvzf /home/lianghuiyong/Linux_share/logomaker.tgz –C /

(三)定制linux内核及制作文件系统

config_mini2440_x35 – 适用于 Sony 3.5” LCD 的内核配置文件
config_mini2440_t35 – 适用于统宝 3.5” LCD 的内核配置文件
config_mini2440_l80 – 适用于 Sharp 8” LCD(或兼容)的内核配置文件
config_mini2440_n35 – 适用于 NEC3.5” LCD 的内核配置文件
config_mini2440_h43 – 适用于 4.3” LCD 的内核配置文件
config_mini2440_a70 – 适用于群创 7” LCD 的内核配置文件
config_mini2440_vga1024x768 – 适用于 VGA 显示输出(分辨率 1024x768)模块的内核
配置文件

1.配置缺省文件config_t35 (统宝240x320)

# cd /opt/FriendlyARM/mini2440/linux-2.6.32.2
# cp config_mini2440_t35 .config
# make menuconfig
出现界面
不做更改,exit退出。这样做是为了生成相应配置(统宝240x320)的头文件。

2.编译内核

在/opt/FriendlyARM/mini2440/linux-2.6.32.2 目录下编译内核
#make zImage
编译结束后,会在 arch/arm/boot 目录下生成 linux 内核映象文件:zImage(zImage 可下载到开发板测试)

3.定制linux内核(根据用户手册来走一遍)

# cd /opt/FriendlyARM/mini2440/linux-2.6.32.2
# make menuconfig
出现配置选项:

3.1配置cpu
主菜单-->System --> Type S3C2400 Machines --> FriendlyARM Mini2440 development board
3.2配置lcd驱动
主菜单-->Device Drivers-->Graphics support-->Support for frame buffer devices-->Backlight-->LCD select-->3.5 inch 240x320 Toppoly LCD

3.3配置触摸屏
主菜单-->Device Drivers-->Input device support-->Touchscreens-->Samsung s3c24410 touchscreen input driver

3.4配置usb鼠标和键盘
主菜单-->Device Drivers-->hid devices-->USB Human interface Device

3.5 配置优盘
主菜单-->Device Drivers-->SCSI device support--> SCSI disk

3.6配置万能驱动USB摄像头
主菜单-->Device Drivers-->Multimedia devices-->Video capture adapters -->V4L USB devices-->GSPCA based webcams-->ALi USB m 5602 Camera Driver

3.7 配置CMOS摄像头驱动
主菜单-->Device Drivers-->Multimedia devices-->Video capture adapters-->OV9650 on the s3c2440 driver

3.8配置网卡驱动
主菜单-->Netwoking support-->Networking options -->选择Unix和TCP/IP

主菜单-->Device Drivers-->Network device support-->Ethernet (10 or 100Mbit)-->
选择 <*> Generic Media Independent Interface device support
<*> DM9000 support

3.9 配置USB无线网卡驱动
主菜单-->Netwoking support-->wireless-->IEEE 802.11

主菜单-->Device Drivers-->Netwoking device support-->wireless LAN-->Wireless LAN(IEEE 802.11)-->Ralink driver support-->

3.10 配置音频驱动
主菜单-->Device Drivers-->Sound card supprt-->OSS Mixer API -->ALSA for Soc audio support-->SoC Audio for the samsung S3Cxxxx Chips

3.11 配置SD/MMC卡驱动
主菜单-->Device Drivers-->MMC/SD/SDIO card-->samsung S3C SD/MMC card

3.12 配置看门狗驱动支持
主菜单-->Device Drivers-->Watchdog Timer-->s3c2440 Watchdog

3.13 配置LED驱动
主菜单-->Device Drivers-->Character devices-->LED support for Mini2440

3.14 配置按键驱动
主菜单-->Device Drivers-->Character devices-->Buttons driver

3.15 配置PWM控制蜂鸣器驱动
主菜单-->Device Drivers-->Character devices-->buzzer driver for

3.16 配置AD转换驱动
主菜单-->Device Drivers-->Character devices-->ADC driver for

3.17 配置串口驱动
主菜单-->Device Drivers-->Character devices-->Serial drivers-->samsung S3C2440/S3C2442

3.18 如何配置RTC实时时钟驱动
主菜单-->Device Drivers-->Real Time Clock-->samsung S3C series SoC RTC

3.19 配置I2C-EEPROM驱动支持
主菜单-->Device Drivers-->I2C support -->I2C Hardware Bus support-->S3C2410 I2C Driver

3.20 配置yaff2s文件系统的支持
主菜单-->Device Drivers-->MTD-->NAND Device Support -->NAND FLASH Support
主菜单-->File systems-->Miscellaneous filesystems -->YAFFS2 file system support

3.21 配置EXT2/VFAT/ NFS等文件系统
主菜单-->File systems-->Network File Systems -->root file system on NFS

为了支持FAT32 文件系统.
主菜单-->File systems-->DOS/FAT/NT Filesystems -->VFAT (windows-95) fs support

关于mini2440 linux内核裁剪到此为止,退出后有一个是否保存提示,选择保存!

3.22 制作Linux logo

本来想使用Logomaker,结果生成的图片都是无数据的,这可能和系统内一些参数有关
使用命令方式制作logo:
在图片(open_show.png)目录下
# pngtopnm open_show.png > temp.ppm
# ppmquant 224 temp.ppm >temp2.ppm
# pnmnoraw temp2.ppm > logo.ppm
将目录下生成的logo.ppm改成linux_logo_clut224.ppm,替代linux2.6.32.2/drivers/video/logo 目录下的同名文件


如何在VIVADO中编译仿真库
lib文件夹,此外在“Simulator executable path”栏设置Modelsim执行文件的路径,其他参数默认。3、设置好参数后点击“Compile”按钮开始器件库的编译。4、器件库编译结束后给出编译报告,从报告中看出0个警告和0个错误。5、打开vivado2014_lib文件夹,便可以看到已经产生了器件库。

apache的优化
我们在使用Apache作为web服务器的过程中,只有对Apache服务器进行适当的优化配置,才能让Apache发挥出更好的性能;再反过来说,如果Apache的配置非常糟糕,Apache可能无法正常为我们服务。因此,针对我们的应用需求对Apache服务器的配置进行一定的优化是必不可少的。硬件和操作系统毫无疑问,要想让Apache服务器发挥出更好的性能,...

写一个'标准'宏MIN,这个宏输入两个参数并返回较小的一个。
. 三重条件操作符的知识。这个操作符存在 C 语言中的原因是它使得编译器能产生比 if-then-else 更优化的代码,了解这个用法是很重要 的。3). 懂得在宏中小心地把参数用括号括起来 4). 我也用这个问题开始讨论宏的副作用,例 如:当你写下面的代码时会发生什么事?least = MIN(*p++, b);

如何编译 hello jni
打开工程文件“hellojni->AndroidManifest.xml”选择”Manifest分页->Manifest Extras->Uses SDK“,修改右边”Atributes for User Sdk“下的“Min SDK Version”为19, “Target SDK Version"为19, (注:19是android4.4.2版,目前最新版),保存;保存后又发现错误提示”Avoid hardcoding the debug ...

为什么必须要启动窗体或Sub Min()
那是VB在执行时用户必须给程序指定一个启动的窗口,比如form1或者是form2...要不程序就找不到启动项。假如你在程序中编译好了两个窗口,再将这两个窗口删除。程序测试运行时自然会报警。

...非法字符 '? (0xa1)在 max_min 函数中”,怎样快速修改?
原因可能是因为一些标点符号的格式不对(有全角和半角之分),C语言中的符号是要以半角形式输入才可以的,否则编译时就会报错,而这类错误往往不容易被察觉,因为在中文输入状态下,标点符号默认是全角的,而英文状态的默认才是半角形式,因此在对源程序进行注释时需要特别注意,以免造成不必要的错误。

为什么我在C程序中多定义了一个变量后,这个程序编译成功后出现运行时错...
建议: 语法:MAX(number1,number2,...),MIN(number1,number2,...)。

c语言的编译问题
不存在主函数main,任何一个程序的起始位置都是main函数。通过主函数才能调用其他功能函数。修改如下:在你写的函数下面加入以下修改 int main(){ const int arr[] = {12,2,1};int No = sizeof(arr)\/sizeof(int);\/\/获取数组个数 min_of(arr,No);return 0;} ...

如何编译 hello jni
打开工程文件“hellojni->AndroidManifest.xml”选择”Manifest分页->Manifest Extras->Uses SDK“,修改右边”Atributes for User Sdk“下的“Min SDK Version”为19, “Target SDK Version"为19, (注:19是android4.4.2版,目前最新版),保存;保存后又发现错误提示”Avoid hardcoding the debug ...

The minCompileSdk (31) specified in a dependency ...
所以我们在继承三方插件的时候多使用了诸如这样的写法 permission_handler: ^8.3.0 这种写法指定了最小插件版本,例如permission_handler ^8.3.0,在我们pub get 的时候会加载 8.3.0 ~ 9.0.0 之间的最新版本,那么如果这个最新版本更改了compileSdkVersion且超过了我们项目中的数值,在编译的时候就会产生文章最开始显示...

横山县15997119815: 如何把新驱动编译进内核 ubuntu -
颜发山花: 工具/原料 Ubuntu12.04操作系统和测试驱动程序(beep_arv.c) 方法/步骤 在介绍2种方法前,必须知道的知识点:1.关联文件Makefile:Makefile:分布在Linux内核源代码中的Makefile用于定义Linux内核的编译规则;2.管理文件Kconfig:给用户提...

横山县15997119815: mini2440(友善之臂)的板子如何下程序,我想知道下步骤,有大神能告诉我吗 -
颜发山花: 我也在用这块板子. 说下我的看法吧. 主流的s3c2440A处理器,arm9内核 接口齐全,文档也比较丰富.利用板载资源可以学习不少东西.完整的嵌入式wince和linux都可以开发.还可以移植其它系统,当然这方面用的就少了. 目前来看是做学习板较好...

横山县15997119815: 如何进入u - boot 2008.10 -
颜发山花: 1.U-BOOT 编译环境与条件. 开发环境:虚拟机 + Fedra 9.0编译环境:arm-linux-gcc 3.4.1U-boot: u-boot 2008.10.开发板:mini2440,64MB NandFlash,2M NorFlash,64M SDRAM. 2.建立自己的开发板体系 2.1 添加开发板的配置选项 打开u-boot主...

横山县15997119815: 请教mini2440开发板上如何成功移植sqlite数据库 -
颜发山花: sqlite3在mini2440上的移植 一、开发环境:Mini2440,linux_2.6.32.2内核,ubuntu10.04,arm-linux-gcc-4.3.2 在上下载sqlite源代码sqlite-3.6.22.tar.gz 二、移植步骤1.解压数据库源文件并进入解压后的目录,如下:tar -zxvf sqlite-3.6.22.tar.gz cd ...

横山县15997119815: 怎么把编译好的bin文件通过串口烧到mini2440里面(LED的裸机程序) -
颜发山花: 这个……囧……(我只是想说裸机编程任重道远,让人蛋疼菊紧),你去下个DNW吧.然后按下面的步骤来做:1、装好USB转串口的驱动;2、连接开发板和PC机;3、上电;4、在DNW的Configuration选端口(com1到com4都设置一下试试,我的USB转串口的线是com3);5、选择Serial Port->Connect,显示“COMx,ok”说明端口选择正确;6、重启(从nandflash还是norflash启动我记不清了,你都试试看);7、DNW显示BIOS就说明上面步骤都正确,按上面显示的表单选,(我用的是友善之臂的2440,我记得选的是Download&Run)就可以把指定的bin文件烧进2440里运行了.

横山县15997119815: 我有一块TQ2440的arm板子,想用keil编写程序,怎样配置keil的编译环境?自学中,请高手帮忙!!! -
颜发山花: 使用Keil开发2440还是方便的,你选择得没错.为了正确编写适合你开发板的程序,1,你首先要研究明白TQ2440开发板的原理图.要把哪些外设连接到S3C2440处理器的哪些引脚列个清单.比如按键1连接到了哪个GPIO端口...等等.2,...

横山县15997119815: 基于mini2440的spi驱动开发步骤是什么?
颜发山花: 我的建议是:第一步先熟悉SPI的时序,先在mini2440开发板上找到通用IO口,引出来的,连接到一个SPI的设备上(注意电平匹配).然后把IO口当成普通IO口操作(这个应该会吧).用模拟的SPI对设备进行操作(SPI的速率由主机控制,所以不比太过当心速度问题).第二步熟悉S3C2440:在裸机的环境下,将SPI硬件SPI跑起来.第三步开发linux下的驱动: 如果你裸机实在跑不起来,跑个普通IO口还是可以的吧.写个驱动文件,就把它当成普通IO操作.如果你裸机成功了,移植过来就OK

横山县15997119815: 最近做一个嵌入式的项目,需要把一个指纹仪放到mini2440的开发板上,需要用到指纹仪的驱动 -
颜发山花: 在LINUX系统里装个编译器比如2.95.3或3.4.1或ELDK装好了就用它编译你的源码编译好后 通过串口或USB下载到你的2440上

横山县15997119815: arm - linux 交叉编译环境的建立,希望有清楚的人解答,复制的闪人 -
颜发山花: 是这样子的,计算机linux中原有的gcc是针对通用的X86等处理器而言的,编译出来的可执行文件是只能在通用计算机上运行的,arm也是一种处理器,只不过其指令等和X86等CPU不同,所以需要有针对arm的编译器来编译源程序,才能在arm...

横山县15997119815: 买了mini2440开发板,windows下的裸机开发进行的比较顺利,现在用ubuntu进行开发,我的交叉编译环境装好 -
颜发山花: 在ubuntu下命令行输入minicom,开发板要连接串口线才行.NFS要自己配置,首先安装apt-get install nfs-kernel-server 然后vi /etc/exports 写入/nfs *(rw,sync,no_root_squash) 你必须在根目录下创建nfs文件 mkdir /nfs 作为nfs的挂载目录.最后重...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网