[Ubuntu] 移植Ubuntu16.04根文件系统到嵌入式平台
CPU:RK3288
1、通过 ubuntu cdimage 下载 ubuntu16.04 内核,以下两种方式都可以
在 windows 系统网页中下载
http://cdimage.ubuntu.com/ubuntu-base/releases/16.04/release
版本:ubuntu-base-16.04-core-armhf.tar.gz
在 linux 系统中通过指令下载
$ wget http://cdimage.ubuntu.com/ubuntu-base/releases/16.04/release/ubuntu-base-16.04-core-armhf.tar.gz
2、解压
$ mkdir linux-rootfs
$ sudo tar -xpf ubuntu-base-16.04-core-armhf.tar.gz -C linux-rootfs
3、在电脑的 ubuntu 系统中安装模拟器并拷贝到根文件系统
$ sudo apt-get install qemu-user-static
$ sudo cp /usr/bin/qemu-arm-static linux-rootfs/usr/bin/
4、拷贝本地dns文件到根文件系统
$ sudo cp -b /etc/resolv.conf linux-rootfs/etc/resolv.conf
5、打开根文件系统中的 linux-rootfs/etc/apt/sources.list 修改安装包源
$ sudo vim linux-rootfs/etc/apt/sources.list
将屏蔽的源全部打开
6、下载挂载脚本,解压并赋可执行权限,如果已经具有可执行权限,就无需在赋权限
链接:https://pan.baidu.com/s/1R3BpXwOdDd3ws6qCP8nz8w
提取码:ct1i
$ sudo chmod +x ch-mount.sh
7、挂载根文件系统
$ ./ch-mount.sh -m linux-rootfs
8、更新根文件系统
# apt-get update
# apt-get upgrade
更新时可能出现下面的问题:
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = "en_US:",
LC_ALL = (unset),
LANG = "en_US.UTF-8"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
解决办法参考:https://www.cnblogs.com/lialong1st/p/11350951.html
Current default time zone: 'Etc/UTC'
Local time is now: Wed Aug :: UTC .
Universal Time is now: Wed Aug :: UTC .
Run 'dpkg-reconfigure tzdata' if you wish to change it.
这个其实不是错误,如果需要,可以根据提示指令 dpkg-reconfigure tzdata 修改时区,根据每一步提示选择即可。
9、安装自己需要的工具包,安装过程可能报错,参考:https://www.cnblogs.com/lialong1st/p/11352979.html
# apt-get install vim git openssh-server sudo net-tools iputils-ping wireless-tools udev
# apt-get install htop rsyslog network-manager ifupdown ethtool
# apt-get install florence // 虚拟键盘,无触摸屏的建议安装
安装登录界面、显示界面,这一步特别耗时间
# apt-get install ubuntu-session xubuntu-desktop
10、选择启动界面
# update-alternatives --config x-session-manager
11、配置默认登录界面
# dpkg-reconfigure lightdm
12、配置网络
# echo auto eth0 > etc/network/interfaces.d/eth0
# echo iface eth0 inet dhcp >> etc/network/interfaces.d/eth0
# echo auto wlan0 > etc/network/interfaces.d/wlan0
# echo allow-hotplug wlan0 > etc/network/interfaces.d/wlan0
# echo iface wlan0 inet dhcp >> etc/network/interfaces.d/wlan0
13、修改文件系统主机名称
# vim /ect/hostname
14、添加一个用户 aaron
# useradd -s '/bin/bash' -m -G adm,sudo aaron
15、给用户 aaron 设置密码
# passwd aaron
16、给 root 设置密码
# passwd root
17、退出脚本
# exit
18、退出挂载根文件系统
$ ./ch-mount.sh -u linux-rootfs
19、使用 dd 指令创建镜像文件
$ dd if=/dev/zero of=linux-rootfs.img bs=1M count=
20、格式化镜像文件,并加入卷标 linuxroot
$ sudo mkfs.ext4 -F -L linuxroot linux-rootfs.img
21、挂载镜像文件,并拷贝根文件系统到镜像文件
$ mkdir mnt
$ sudo mount linux-rootfs.img mnt/
$ sudo cp -rfp linux-rootfs/* mnt/
22、退出挂载文件,
$ sudo umount mnt
23、检查镜像文件
$ sudo e2fsck -p -f linux-rootfs.img
24、瘦身,减小镜像文件大小
$ sudo resize2fs -M linux-rootfs.img
$ sudo du -sh linux-rootfs.img
[Ubuntu] 移植Ubuntu16.04根文件系统到嵌入式平台的更多相关文章
- ubuntu系统---ubuntu16.04 + virtualenv + py2.7 + tf1.5.0 + keras2.2.4 + opencv2.4.9 +Numpy1.14
ubuntu16.04 + virtualenv + py2.7 + tf1.5.0 + keras2.2.4 + opencv2.4.9 +Numpy1.14 @https://www.liaoxu ...
- Ubuntu系统---Ubuntu16.04进不了界面(登录界面循环,密码正确)(一体化安装(CUDA +NVIDIA驱动)+ cuDNN)
Ubuntu16.04进不了界面(登录界面循环,密码正确)(一体化安装(CUDA +NVIDIA驱动)+ cu ...
- [原创]在HP DL380 G7服务器上部署基于Ubuntu Server 16.04 和 VirtualBox的云平台
对于一线开发人员来说,一提到虚拟机平台,往往会让人联想到在价格昂贵的服务器上部署VMware vSphere之类软件来实现. 笔者作为一个资深码农,也是一直梦寐着在自己家中打造一个真正的家庭私有云,秒 ...
- linux 内核移植和根文件系统的制作【转载】
原文地址:http://www.cnblogs.com/hnrainll/archive/2011/06/09/2076214.html 1.1 Linux内核基础知识 在动手进行Linux内核移植之 ...
- linux 内核移植和根文件系统的制作
1.1 Linux内核基础知识 在动手进行Linux内核移植之前,非常有必要对Linux内核进行一定的了解,下面从Linux内核的版本和分类说起. 1.1.1 Linux版本 Linux内核的版本号 ...
- Linux根文件系统的制作
转载:http://www.cnblogs.com/hnrainll/archive/2011/06/09/2076655.html 1. 根文件系统 文件系统是包括在一个磁盘(包括光盘.软盘.闪盘及 ...
- tiny4412 busybox制作根文件系统rootfs nfs 挂载 ubuntu 14.04
http://blog.csdn.net/liudijiang/article/details/50555429(转) 首先得要有制作好的uboot和linux内核镜像zImage,先烧录到sd卡里, ...
- uboot通过NFS挂载ubuntu根文件系统
由于工作需要,在做app开发或系统移植时,经常需要编辑系统后重新烧写异常麻烦.通过NFS挂载根文件系统就不需要每次更改系统后再进行编译和烧写,等开发完成后一次烧写即可完成. 一.准备材料 可以根据自己 ...
- 嵌入式linux加载引导内核和根文件系统的方法
总体来说,嵌入式Linux内核和根文件的引导与PC机差不多.嵌入式linux内核和根文件系统可以存放在各种可能的存储设备中,一般情况下我 们将内核和根文件系统直接烧入到Flash中(包括NOR和NAN ...
随机推荐
- 搭建一个简单的React项目
我是使用了create-react-app来搭建的基本框架,其中的原理和vue-cli差不多的脚手架.(当然也可以自己配置项目目录,这里我偷了一下懒) npm install -g create-re ...
- hibernate saveorupdate方法只有更新有效果,保存没有效果
转自:https://blog.csdn.net/KAIXINLUOYE/article/details/72821014 单主键生成策略由native改成assigned后,问题解决.
- laravel模型关联评论
用户模型 public function show(Post $post,LogManager $log){ $post->load("comments"); //这种方式是 ...
- java相关网址汇总1
Java网站汇总 官方 框架 数据库 资源网站 视频学习网站 开发工具 其他工具 github/gitee框架项目 社区 博客/个人 官方 Sun公司网站Sun公司中文网站J2SE下载网站JavaSE ...
- Luogu P5020 货币系统
Luogu P5020 货币系统 先把$a$数组排一下序. 从最小的数开始选,显然最小这个数必须选,然后利用完全背包的思想,从$a_i$到最大值筛选一遍,将可以组成的打上标记. 在判断后面的数字时,如 ...
- PYTHON WEB开发学习路线
两年大数据广告项目测试:项目覆盖几千万用户前景还不错:只是在工作中感觉测试太无力,最近准备辞职转web开发:同时会离开成都,(/(ㄒoㄒ)/~~待了6年,要离开喜欢的城市,喜欢的女孩很难受) ps:列 ...
- 大数据之路week07--day01(HDFS学习,Java代码操作HDFS,将HDFS文件内容存入到Mysql)
一.HDFS概述 数据量越来越多,在一个操作系统管辖的范围存不下了,那么就分配到更多的操作系统管理的磁盘中,但是不方便管理和维护,因此迫切需要一种系统来管理多台机器上的文件,这就是分布式文件管理系统 ...
- 文件读写(三)利用FileStream类操作字节数组byte[]、BinaryFormatter、内存流MemoryStream
一.Stream类概述 在.NET Framework中,文件和流是有区别的.文件是存储在磁盘上的数据集,它具有名称和相应的路径.当打开一个文件并对其进行读/写时,该文件就称为流(stream).但是 ...
- Selenium常用API的使用java语言之9-模拟键盘操作
Keys()类提供了键盘上几乎所有按键的方法. 前面了解到, sendKeys()方法可以用来模拟键盘输入, 除此之 外, 我们还可以用它来输入键盘上的按键, 甚至是组合键, 如 Ctrl+A. Ct ...
- C++构造函数的default和delete
C++11中,当类中含有不能默认初始化的成员变量时,可以禁止默认构造函数的生成, myClass()=delete;//表示删除默认构造函数 myClass()=default;//表示默认存在构造函 ...