创建基于arm的debian文件系统

debian系统有针对arm分支的,在arm上跑debian系统可以用apt-get安装软件,避免繁琐的编译和重复创建文件系统的工作.

本例子使用z-turn的开发板为例.

linux主机版本:

[email protected]:i# lsb_release -a

No LSB modules are available.

Distributor ID: Debian

Description: Debian GNU/Linux 7.7 (wheezy)

Release: 7.7

Codename: wheezy

1. 安装 qemu 和 debootstrap 等工具

$ sudo apt-get install binfmt-support qemu qemu-user-static debootstrap

debootstrap ---- 一个 Debian 提供的工具,可以用来生成指定构架的文件系统

qemu ---- 用于模拟 arm 环境

2. 用 debootstrap 抽取基本系统(从 debian 源中下载)

在opt下创建文件系统目录fs_debian_wheezy

$sudo debootstrap --arch=armel --foreign wheezy fs_debian_wheezy http://cdn.debian.net/debian

arch指定了cpu架构, wheezy指定Debian系统代号,可在网上找不同的debian版本对应的代号.

上面的命令我这边要运行2次,第一次出现这样的信息:

I: Retrieving libxapian22

I: Validating libxapian22

I: Retrieving liblzma5

I: Validating liblzma5

I: Retrieving xz-utils

I: Validating xz-utils

I: Retrieving zlib1g

I: Validating zlib1g

下载的时候有些warning, 提示有些库下载不了,这个不影响.

第2次是这样的信息:

I: Extracting bsdutils...

I: Extracting libblkid1...

I: Extracting libmount1...

I: Extracting libuuid1...

I: Extracting mount...

I: Extracting util-linux...

I: Extracting liblzma5...

I: Extracting xz-utils...

I: Extracting zlib1g...

从信息上看,第一次是从网上下载,第次是将文件抽取出来,第2次之后,在fs_debian_wheezy目录下才有bin,sbin等linux文件系统目录.

3. 抽取完毕进行第二阶段

因为在宿主是 x86 架构,不能安装 arm 架构的软件。需要依靠 qemu-arm-static 来

模拟成 arm 环境进行安装。

a.复制 qemu-arm-static 到刚构建的基本系统中

$ sudo cp /usr/bin/qemu-arm-static fs_debian_wheezy/usr/bin

b.用 qemu-arm-static 来模拟 arm

$ sudo DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true LC_ALL=C LANGUAGE=C LANG=C chroot fs_debian_wheezy debootstrap/debootstrap --second-stage

该命令意思是设置一些环境变量,然后切换根目录到fs_debian_wheezy,执行目录fs_debian_wheezy/debootstrap下的命令: debootstrap --second-stage.

终端上会最后打印 I: Base system installed successfully.,说明根文件系统就定制成功了。

4. 修改文件,目录等

$sudo cd fs_debian_wheezy

$sudo echo "proc /proc proc defaults 0 0" >> etc/fstab

$sudo mkdir -p usr/share/man/man1/

如果dev/console设备节点不存在,也需要创建

$sudo mknod dev/console c 5 1

5.收尾工作

a.切换到 qemu

$sudo chroot fs_debian_wheezy

b.设置软件源头

# vi /etc/apt/source.list

deb http://cdn.debian.net/debian wheezy main contrib non-free

deb-src http://cdn.debian.net/debian wheezy main contrib non-free

# apt-get update 更新软件

c.为 root 设置密码和创建新用户

# passwd root

debian不能以root用户登陆,所以创建一个普通用户,登陆系统后再切换到root用户

# adduser qq

# passwd qq 设置用户i的密码

d.修改 inittab, 打开串口终端

# cp /usr/share/usr/share/sysvinit/inittab /etc/

# vi /etc/inittab

找到 #T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100,大约在 63 行左右

修改为 T0:23:respawn:/sbin/getty  -L ttyPS0 115200 vt100,此处依据自己的实际情况修改

e.退出 qemu 环境

# exit

6. 至此,一个基本的根文件系统就订制完了。把根文件系统拷贝到SD卡上,插到ARM板上,

设置z-turn从SD卡加载根文件系统,如果一切顺利一个debian 系统就运行起来了。

可以用apt-get 命令安装各种软件包,再也不用繁琐的交叉编译工作了。

7. debian系统下的dhcp客户端是dhcpclient,使用方法: dhcpclient eth0

时间: 2024-10-03 17:46:51

创建基于arm的debian文件系统的相关文章

在Azure New Portal上创建基于ARM的带SLB的VM

目前Azure的New Portal在国内已经上线了.本文将介绍最常见的一种场景:通过Azure的New Portal创建带有Server Load Balance的多台虚拟机. 1 创建Resource Group.Storage Account 首先点击New,再点击Sata + Storage,然后选择Storage Account: 出现提示后输入相应的参数,其中的Resource Group选择Create New: 2 创建虚拟网络 在Portal上选择New->Networking

Win10 IoT C#开发 2 - 创建基于XAML的UI程序 及 应用的三种部署方法

原文:Win10 IoT C#开发 2 - 创建基于XAML的UI程序 及 应用的三种部署方法 Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行. 上一章我们讲了Raspberry安装Win10 IoT系统及搭建Visual Studio 2015开发环境的方法(http://www.cnblogs.com/cloudtech/p/5562120.html)

基于ARM的车牌识别技术研究与实现

在云盘里包含了我本科毕业设计的全部资料和代码.主要涉及下面摘要中的几个部分.虽然系统无法实用,但是适合机器视觉和嵌入式方向的入门.希望能对有志从事相关方向的朋友有所帮助.本人现在在深圳从事机器视觉算法工程师职业.现在做人脸识别相关系统.希望能和网络上的有志之士一起在相关方向上学习和进步. 本文首先介绍了课题背景和研究现状,然后介绍了方案选择和设计过程.设计过程包括车牌识别程序设计,引导程序设计,内核驱动设计和文件系统设计.车牌识别程序设计中的车牌定位采用边缘检测和支持向量机相结合的定位算法,字符

基于mogileFS搭建分布式文件系统--海量小文件的存储利器

一.分布式文件系统    1.简介 分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连.分布式文件系统的设计基于客户机/服务器模式.一个典型的网络可能包括多个供多用户访问的服务器.另外,对等特性允许一些系统扮演客户机和服务器的双重角色.例如,用户可以"发表"一个允许其他客户机访问的目录,一旦被访问,这个目录对客户机来说就像使用本地驱动器一样. 当下我们处在一个互联网飞速发展的信息社会,在

基于ARM Cortex-A8和Android 4.x的联动报警系统视频教程

基于ARM Cortex-A8和Android 4.x的联动报警系统 (Android .A8.Linux.驱动.NDK)课程讲师:老夫子 课程分类:Android适合人群:高级课时数量:38(70节)课时更新程度:完毕用到技术:Android.A8.210.Linux.驱动.NDK.报警涉及项目:联动报警系统 联系QQ:1609173918链接:http://down.51cto.com/data/2037421 1.课程研发环境 本课程包括JAVA应用.C语言驱动.NDK(应用调用驱动)等方

基于ARM Cortex-A8和Android 4.x的联动报警系统 (Android 、A8、Linux、驱动、NDK)

· 课程讲师:老夫子 · 课程分类:Android · 适合人群:高级 · 课时数量:38(70节)课时 · 更新程度:完毕 · 服务类型:C类(普通服务类课程) · 用到技术:Android.A8.210.Linux.驱动.NDK.报警 · 涉及项目:联动报警系统 对这个课程有兴趣的可以加我qq2748165793 1.课程研发环境 本课程包括JAVA应用.C语言驱动.NDK(应用调用驱动)等方面内容,课程涉及主要工具如下: 开发工具:Eclipse.Source Insight 交叉编译工具

基于p2p的分布式文件系统p2pfs的实现构想

这篇日志最早是保存在Evernote中,后来写到了QQ邮箱的记事本里用发送给了导师,今天贴到CSDN博客上公布. 创建时间:2014年5月11日(星期天) 晚上7:25 | 分类:书签 | 天气:广州大雨-暴雨转大雨 | 字数:1930  | 发送到我的Qzone | 另存为... | 打印 | 添加到日历 一个分布式文件系统 简介 本文提出了一个基于P2P的分布式文件系统的构想.它采用蜂群思想(受<失控>启发),最大化单个节点的智能性来实现群体存储的智能性.它的优点是支持无限扩容,动态添加和

课程设计个人报告——基于ARM实验箱的捕鱼游戏的设计与实现

课程设计个人报告--基于ARM实验箱的捕鱼游戏的设计与实现 个人贡献 实验环境的搭建 代码调试 在电脑上成功运行 在ARM实验箱上成功实现 给程序增加功能(没成功) 研究程序代码撰写小组报告 一.实验环境 Eclipse软件开发环境: ARM实验箱(HonyaS5PC100): windows操作系统. 二.实践内容 Windows环境下ARM集成开发环境的搭建与使用: 安装软件到模拟器: 连接ARM实验箱与PC机: 将工程代码在ARM实验箱上实现: 给程序增加新的功能. 三.实践步骤 3.1

基于ARM处理器的反汇编器软件简单设计及实现

写在前面 2012年写的,仅供参考 反汇编的目的 缺乏某些必要的说明资料的情况下, 想获得某些软件系统的源代码.设计思想及理念, 以便复制, 改造.移植和发展: 从源码上对软件的可靠性和安全性进行验证,对那些直接与CPU 相关的目标代码进行安全性分析: 涉及的主要内容 分析ARM处理器指令的特点,以及编译以后可执行的二进制文件代码的特征: 将二进制机器代码经过指令和数据分开模块的加工处理: 分解标识出指令代码和数据代码: 然后将指令代码反汇编并加工成易于阅读的汇编指令形式的文件: 下面给出个示例