[debootstrap]制作基于arm平台的debian文件系统
转自:http://www.cnblogs.com/qiaoqiao2003/p/3738552.html
转自:http://blog.csdn.net/luoqindong/article/details/42737879
debootstrap: https://wiki.debian.org/Debootstrap
multistrap: https://wiki.debian.org/Multistrap
cross-debootstrapping: https://wiki.debian.org/EmDebian/CrossDebootstrap
cdebootstrap: https://wiki.debian.org/cdebootstrap
debian系统有针对arm分支的,在arm上跑debian系统可以用apt-get安装软件,避免繁琐的编译和重复创建文件系统的工作.
本例子使用z-turn的开发板为例.
linux主机版本:
root@v: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 multibootstrap
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(http://ftp.debian.org/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 环境进行安装。
- 复制 qemu-arm-static 到刚构建的基本系统中
$ sudo cp /usr/bin/qemu-arm-static fs_debian_wheezy/usr/bin
- 用 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.收尾工作
- 切换到 qemu
$sudo chroot fs_debian_wheezy
- 设置软件源头
# 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 更新软件
- 为 root 设置密码和创建新用户
# passwd root
debian不能以root用户登陆,所以创建一个普通用户,登陆系统后再切换到root用户
# adduser qq
# passwd qq 设置用户i的密码
- 修改 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,此处依据自己的实际情况修改
- 退出 qemu 环境
# exit
6.制作完成
至此,一个基本的根文件系统就订制完了。把根文件系统拷贝到SD卡上,插到ARM板上,
设置z-turn从SD卡加载根文件系统,如果一切顺利一个debian 系统就运行起来了。
可以用apt-get 命令安装各种软件包,再也不用繁琐的交叉编译工作了。
[debootstrap]制作基于arm平台的debian文件系统的更多相关文章
- 4G通信模块在ARM平台下的应用
4G模块是连接物与物的重要载体,是终端设备接入物联网的核心部件之一.随着4G的普及,许多新兴市场对4G通信模块的需求都在日益扩大,那么在ARM平台的嵌入式设备上如何快速的应用4G模块呢? 4G通信模块 ...
- 4G 通信模块在ARM 平台下的应用
收藏 评论(0) 分享到 微博 QQ 微信 LinkedIn 4G模块是连接物与物的重要载体,是终端设备接入物联网的核心部件之一,随着4G的普及,许多新兴市场对4G通信模块的需求都在日益扩大,那么在A ...
- 基于mini2440嵌入式Linux根文件系统制作(Initramfs和nfs两种跟文件系统)
嵌入式系统由三部分构成: 1.bootoader---bootparameters---2.kernel 3.Root-filesysytem 一个内核可以挂载多个文件系统,但是有一个根文件系统所以叫 ...
- 小白自制Linux开发板 五. Debian文件系统制作,以及WIFI配置、交换分区配置
该片文章将完整记录一个Debian的最小文件系统的生成,以及自定义配置WIFI组件.网络组件和交换分区配置 本文章参考:https://whycan.com/t_4236.htmlhttp://www ...
- 【miscellaneous】【ARM-Linux开发】ARM平台基于嵌入式Linux Gstreamer 使用
1). 简介 随着ARM平台性能的日益强大和嵌入式设备的发展,对于多媒体处理如音视频播放,摄像头,流媒体处理等需求也日益增多,本文就通过几个基于嵌入式Linux下多媒体应用的示例来简单展示下使用Gst ...
- 基于Zynq平台的EtherCAT主站方案实现
作者:陈秋苑 谢晓锋 陈海焕 广州虹科电子科技有限公司 摘 要:EtherCAT 是开放的实时以太网通讯协议,由德国倍福自动化有限公司研发.EtherCAT 具有高性能.低成本.容易使用等特点,目前在 ...
- 基于ARM的车牌识别技术研究与实现
在云盘里包含了我本科毕业设计的全部资料和代码.主要涉及下面摘要中的几个部分.虽然系统无法实用,但是适合机器视觉和嵌入式方向的入门.希望能对有志从事相关方向的朋友有所帮助.本人现在在深圳从事机器视觉算法 ...
- Qt在各平台上的搭建qt-everywhere(Qt for windows7-64bit, Ubuntu 12.04-32bit, 嵌入式x86平台, 嵌入式arm平台)
下载地址:http://download.qt.io/ 当进入解压好的源码包后,使用./configure –help命令,可以获得相应帮助,前面是*号的表示默认参数. +号表示该功能要求被评估,评估 ...
- 【DSP开发】【Linux开发】基于ARM+DSP进行应用开发
针对当前应用的复杂性,SOC芯片更好能能满足应用和媒体的需求,集成众多接口,用ARM做为应用处理器进行多样化的应用开发和用户界面和接口,利用DSP进行算法加速,特别是媒体的编解码算法加速,既能够保持算 ...
随机推荐
- (转) [Flash/Flex] 用柏林噪音和滤镜制作翻腾的火焰效果----Flash AS3效应
下图展示的是通过柏林噪声和一些滤镜制作的火焰效果.这个效果是从舞台底部燃起的熊熊烈火.这个效果使用了BitmapData里的perlinNoise方法,以及ColorMatrixFilter和Disp ...
- [Node.js] Level 6. Socket.io
6.2 Setting Up socket.io Server-Side So far we've created an Express server. Now we want to start bu ...
- [ACM] ZOJ Martian Addition (20进制的两个大数相加)
Martian Addition Time Limit: 2 Seconds Memory Limit: 65536 KB In the 22nd Century, scientists ...
- crypto AES 加密 解密
1.aes加密解密说明 https://juejin.im/entry/59eea48e6fb9a0451968c25f aes是对称加密算法 md5是摘要算法,不算是加密,主要用来对信息一致性和完整 ...
- Win8多平台引用配置
之前移植过DLNA的库,这个库是C++写的,然后我们的项目是C#的.接着很郁闷的事情发生了,主项目引用一个C#的DLL,然后这个DLL引用这个C++/CX封装的库.如果有C++的源代码的话,做项目依赖 ...
- excel 如何为列添加指定内容(字符串)
excel 如何为列添加指定内容(字符串) CreateTime--2018年5月26日17:52:32 Author:Marydon 1.情景展示 D列的值需要获取B列的值并且在后面统一加上12 ...
- Kubuntu 初始配置
1.中文配置 系统设置中地区选择中国.语系使用简体中文(一開始可能仅仅有英文选项,似乎是更新后能够选择其它语言了) 安装中文字体: sudo apt-get install ttf-wqy-micro ...
- Hibernate基于注解方式的各种映射全面总结
1. 使用Hibernate Annotation来做对象关系映射 1) 添加必须包: hibernate-jpa-2.0-api-1.0.0.Final.jar 2) 在实体类中添加JPA的标准注解 ...
- PHP-WebService中Endpoint、Disco、WSDL都是做什么的?
Endpoint: http://webservice.webxml.com.cn/WebServices/WeatherWS.asmx web服务的URI地址,你访问之后,就会出现web服务的相 ...
- XHTML学习书籍
http://baike.baidu.com/view/15906.htm XHTML学习书籍 可扩展超文本置标语言(eXtensible HyperText Markup Language,XH ...