全志a13开发板——建立一个可以启动linux的SD卡

1  创建工具连 toolchain

# apt-get install gcc-arm-linux-gnueabihf ncurses-dev uboot-mkimage build-essential git

# Older (prior to 2013): apt-get install gcc-4.6-arm-linux-gnueabi ncurses-dev uboot-mkimage build-essential git

building bootable sd card with debian linux image for a13 olinuxino

Building Uboot

# mkdir olinuxino # cd olinuxino

# git clone -b sunxi https://github.com/linux-sunxi/u-boot-sunxi.git

# cd uboot-allwinner/

# make CROSS_COMPILE=arm-linux-gnueabihf- A13-OLinuXino_config

# make CROSS_COMPILE=arm-linux-gnueabihf-

# (Older (prior 2013): make a13_olinuxino CROSS_COMPILE=arm-linux-gnueabi

# ls u-boot.bin spl/sunxi-spl.bin

Building the Kernal

# cd ..

下载内核  这个大概700M左右  时间会有点长的

# git clone https://github.com/linux-sunxi/linux-sunxi.git

下载之后进入内核的目录

# cd linux-sunxi/

之后进行相关的配置

# make ARCH=arm a13_defconfig

# make ARCH=arm menuconfig

if you want to use GPIOs for instance they are not enabled by default and you can do this by adding:

SUN4I_GPIO_UGLY = y   inside   .config

then you can contiue with:

# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage      在这里需要注意的是标记的地方不能少
 否则编译错误

when this finish‘s you will have uImage ready and you can build the kernel modules:

# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- INSTALL_MOD_PATH=out modules

# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- INSTALL_MOD_PATH=out modules_install

Format and setup the SD-card(格式化和设置 SD-card)

首先,我们必须做出正确的卡片分区,这是用fdisk来完成。

把SD卡插入读卡器,并且进入终端,然后根据

命令:ls  /dev/sd

按匹配按键,你将会看到sd设备的列表,比如:sda sdb sdc 你首先要确定哪个设备是你的sd设备,可以拔下再插上去来进行区分。一旦你知道了哪个设备是你的sdCard 假如是sdX

命令: fdisk  -u=sectors /dev/sdX

然后做以下几个步骤

1 p

列出分区表  如果在你的SD卡中已经存在分区表partitions 你就继续第二步骤

2 d 1

去删除它们

3 n p 1

创建第一个分区表,开始2048  结束34815

4  创建第二个分区表

n p 2 enter enter

5 然后列出创建的分区表

p

如果你正确的做了每一件事情,那么你应该看到下面的信息:

Disk /dev/sdX: 2001 MB, 2001731584 bytes

42 heads, 41 sectors/track, 2270 cylinders, total 3909632 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0×00000000

Device Boot Start End Blocks Id System

/dev/sdX1 2048 34815 16384 83 Linux

/dev/sdX2 34816 3909631 1937408 83 Linux

6 把建立的分区表写入SD卡中

w

第一个分区应该是vfat  这是被全志的bootloader所能理解的

命令: mkfs .ext3 /dev/sdX1

第二个分区应该是正常的linux EXT3 FS

命令: mkfs .ext3 /dev/sdX2

根文件系统 Debian rootfs

linux内核和Uboot已经准备好,现在我们有linux根文件系统,如何构造一个是一个很长的话题,最好的就是我们有已经预建的我们可以下载的并且可以使用的。

首先退出kernel目录

命令: cd ..

接着下载debian rootfs

命令: wget http://hands.com/~lkcl/mele_debian_armhf_minimal.cpio.gz

挂载你的sd卡分区表

# mount /dev/sdX2 /mnt

# cd /mnt/

并解压rootfs (根据具体的目录而定)

# gunzip -c /home/user/olinuxino/mele_debian_armhf_minimal.cpio.gz | cpio -i where "user"     is the user name of your root user

# cd ..

# sync

# umount /mnt

此时 在你sd卡的第二分区上已经有Debian了

Write Uboot and Kernel you build

# mount /dev/sdX1 /mnt/

copy the Kernel uImage to root directory in partition 1

# cp linux-allwinner/arch/arm/boot/uImage
/mnt/.

download the script.bin from:     https://github.com/OLIMEX/OLINUXINO/blob/master/SOFTWARE/A13/script.bin

and copy it to the same directory as uImage

script.bin是一个很重要的文本文件,可以配置一些参数,比如GPIO引脚的分配,内存参数,视频分辨率等。通过改变该文件中的一些参数你可以配置你的linux,并不需要一遍又一遍的重新编译。

write the Uboot

# cd uboot-allwinner/

# dd if=spl/sunxi-spl.bin of=/dev/sdX bs=1024 seek=8

# dd if=u-boot.bin of=/dev/sdX bs=1024 seek=32

# sync

# umount /mnt

and copy the Kernel modules for partition 2 # mount /dev/sdX2 /mnt

# cd ..

# cp -a linux-allwinner/out/lib/modules/3.0.42+/ /mnt/lib/modules/.

# umount /mnt

那么现在你有一个已经准备引导debian的sd卡了

(Now you have an SD card ready to boot debian on A13-OLinuXino.)

连接USB转串口或者VGA屏幕,将SD卡插入A13-OLinuXino(-WIFI),并且上电,

你应该在终端看到Uboot和之后的内核信息。

默认的用户名字/密码是:   root/password

Software Links

Linux Sunxi to build latest Kernel yourself

U-boot to build community U-boot

Building bootable Debian SD card for A13-OLinuXino Original
step by step instructions how to make SD card image with above Kernel and U-boot

Forum postwith yet another more up to date explanation how to build SD card

时间: 2024-11-05 18:44:28

全志a13开发板——建立一个可以启动linux的SD卡的相关文章

全志a13开发资料总结

这几天由于工作的原因,开始接触全志a13芯片,本人在网上搜集了好长时间,但是网上的资料对这方面的描述是非常少的, 所以,只能靠数据手册还有官网上面的英文文档进行开发了,以下只是开发中的很少的一部分,先大致总结下,之后等玩的熟练了 ,再写一个完整版本的与大家共享. 相关资料可以在官网上面进行查询  https://www.olimex.com/wiki/A13-OLinuXino#Linux DDR3 使用的是海力士 首先下载对应的内核版本 把镜像写到SD卡中你必须解压A13_debian_34_

Arduino Tian开发板:一个功能强大的天气预报中心

每天都在出现新的连接设备. Arduino携手云平台一起加入这场战斗,于是出现了一个新的挑战者 - Arduino Tian! 使用python和经典Arduino框架,本教程将引导您将您的Arduino Tian开发板变成一个天气预报中心. 但由于Lucky扩展板有那么多传感器,所以涉及到的内容可能会更多些! 第一部分:所需的设备 ●     Arduino Tian开发板(https://store.arduino.cc/arduino-genuino/arduino-genuino-boa

(待解决)开发板刷系统(一)---破坏bootloader以及从SD卡启动

开发板上默认在板载iNand中烧入了bootloader和Android系统镜像,如果想要从SD卡来启动,就必须先破坏掉iNand中的bootloader,让其校验失败,从而选择第二启动即从SD通道2启动. 破坏板载iNand中的bootloader的方法,可以参考九鼎的文档,其中提到的在Android平台下破坏iNand的bootloader的方法如下如所示: 执行上述指令后,在执行sync命令确保数据有效.解读下上面那条指令的意思: 输入文件是/dev/zero,输出文件是/dev/bloc

Android开发调试日志工具类[支持保存到SD卡]

直接上代码: package com.example.callstatus; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; import java.net.UnknownHostException; import java.text.SimpleDateFormat; impor

全志a13开发总结

这几天因为工作的原因,開始接触全志a13芯片,本人在网上搜集了好长时间,可是网上的资料对这方面的描写叙述是很少的, 所以,仅仅能靠数据手冊还有官网上面的英文文档进行开发了,下面仅仅是开发中的非常少的一部分,先大致总结下 : 相关资料能够在官网上面进行查询  https://www.olimex.com/wiki/A13-OLinuXino#Linux DDR3 使用的是海力士 已下载相应的内核版本号 linux内核默认的路径就是 root/olimex 把镜像写到SD卡中你必须解压A13_deb

全志A33开发板的安卓控制LED-2-JNI基础

虽然您可以完全使用Java编写应用程序,但有些情况下Java本身并不能满足您的应用程序的需求.当应用程序不能完全用Java编写时,程序员使用JNI编写Java本机方法来处理这些情况.以下示例说明何时需要使用Java本机方法:标准Java类库不支持应用程序所需的与平台相关的功能.您已经有一个用另一种语言编写的库,并希望通过JNI使其可以访问Java代码.您希望在较低级别的语言(如汇编语言)中实现一小部分时间关键代码.来源:https://docs.oracle.com/javase/1.5.0/d

迅为三星Exynos 4412开发板四核Cortex-A9ARM安卓linux开发板

开发板光盘资料包含:原理图(PDF格式).底板PCB(Allegro格式).驱动程序源码.芯片和LCD数据手册.开发环境.产品使用手册. 4412开发板简介: iTOP-Exynos4412开发板采用 Exynos4412 的主芯片,具有更高的主频和更丰富外设,配置 2GB 双通道 DDR3的内存及 16GB 存储,具有稳定性强.可靠性高,能适用于对性能和处理能力有更高要求的嵌入式系统应用场合. iTOP-Exynos4412开发板内置有无线 WIFI 模块.Bluetooth.GPS.Came

linux下service+命令和直接去执行命令的区别,怎么自己建立一个service启动

启动一些程序服务的时候,有时候直接去程序的bin目录下去执行命令,有时候利用service启动. 比如启动mysql服务时,大部分喜欢执行service mysqld start.当然也可以去mysql下执行bin命令带上几个参数什么的. 那么service是啥呢?linux可以man一下,看出来就是去/etc/init.d下执行了可执行的shell脚本. service执行的服务脚本都是在/etc/init.d目录下,各个程序下脚本里执行的命令仍然是在各个bin下. 这样我们也可以在这个目录下

【Android 系统开发】 编译 Android 系统 u-boot 内核 源码 并烧写到 OK-6410A 开发板上

博客地址 : http://blog.csdn.net/shulianghan/article/details/40299813  本篇文章中用到的工具源码下载 : -- ok-6410A 附带的 Android 光盘 下载地址 : http://pan.baidu.com/share/link?shareid=3662728609&uk=2754759285 ; -- 光盘所含内容 : Android 引导 u-boot 源码, Android 内核 源码, Android 系统源码, 交叉编