该片文章将完整记录一个Debian的最小文件系统的生成,以及自定义配置WIFI组件、网络组件和交换分区配置

本文章参考:
https://whycan.com/t_4236.html
http://www.leux.cn/doc/debootstrap.html(该网站在备案中,可能暂时无法查看了)
帖子整理完成。

1. 制作Debian系统

构建debian文件系统,作为记录,最小rootfs在180MB左右。

1.1 配置构建环境

安装构建文件系统的工具,一个是用来chroot,一个是用来构建文件系统

sudo apt install qemu-user-static -y
sudo apt install debootstrap -y
mkdir rootfs

构建文件系统之前,你要知道你想要构建哪个版本的文件系统,
我从 https://www.debian.org/mirror/list.zh-cn.html 这里,
选择了我访问速度快的源,并且该源有armel。

armhf (支持硬件浮点)
armel ()

我看华为源挺快的,就用这个了mirrors.huaweicloud.com
然后就是debian的版本,我尝试一下最新的,buster

sudo debootstrap --foreign --verbose --arch=armel  buster rootfs http://mirrors.huaweicloud.com/debian/

构建完成之后,需要chroot进去修改密码等配置

cd rootfs
sudo mount --bind /dev dev/
sudo mount --bind /sys sys/
sudo mount --bind /proc proc/
sudo mount --bind /dev/pts dev/pts/
cd ..
sudo cp /usr/bin/qemu-arm-static rootfs/usr/bin/
sudo chmod +x rootfs/usr/bin/qemu-arm-static
sudo LC_ALL=C LANGUAGE=C LANG=C chroot rootfs /debootstrap/debootstrap --second-stage --verbose
sudo LC_ALL=C LANGUAGE=C LANG=C chroot rootfs

最后一条命令chroot完成,
此时可以先apt-get等给你的文件系统安装你需要的软件包

为了提高下载速度,我们首先修改源

vi /etc/apt/sources.list

改为(注意要换其他源用http方式可以访问的,要不然还得处理https的内容):

deb http://mirrors.huaweicloud.com/debian buster main

改完以后执行:

apt-get update

使源生效

安装网络相关的库

apt-get install wpasupplicant #安装WIFI配置相关的组件
apt-get install net-tools #安装网络基础组件、如使用ifconfig等
apt-get install udhcpc #当wifi连接成功后,需要用这个组件去获取IP地址 ## 其他组件
apt-get install wireless-tools
apt install sudo vim openssh-server htop
apt install pciutils usbutils acpi

1.2 配置账号

修改root登录密码的方式如下

passwd root

添加用户

groupadd <用户组>
useradd -m -g <用户组> -s /bin/bash <用户名>
passwd <用户名>

1.3 新增账号sudo配置

对于出现

<用户名> is not in the sudoers file.  This incident will be reported.

切换到超级用户:

$ su

打开/etc/sudoers文件:

# vi /etc/sudoers

修改文件内容

保存退出

修改主机名,否则将会以当前编译的系统的主机名进行设置(如:笔者为Ubuntu,相当的尴尬)

HOSTNAME=<你的主机名>
echo $HOSTNAME > /etc/hostname
echo $HOSTNAME > /proc/sys/kernel/hostname
sed -i '/localhost/s/$/\t'"$HOSTNAME"'/g' /etc/hosts

1.4 配置时区

修改系统默认时区

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

1.5 配置SSH

如果要使用SSH服务,并且允许SSH客户端以root方式登录需要进行一下设置。

vi rootfs/etc/ssh/sshd_config

添加

PermitRootLogin yes

1.6 rootfs打包

当所有的内容制作完成,就可以清理缓存,打包之后就可以替换你的文件系统了

apt-cache clean #删除安装包
exit #退出chroot
rm rootfs/usr/bin/qemu-arm-static

卸载刚在挂载的文件夹。

cd rootfs
sudo umount dev/pts/
sudo umount dev/
sudo umount sys/
sudo umount proc/
sudo umount dev/pts/

打包文件。

# cd rootfs  #进到文件系统目录,如果已经在该文件夹下,可以忽略
tar cvf ../rootfs.tar . #要注意那个. 代表当前目录

生成的rootfs.tar任意解压到文件系统即可

2. 使用wpa_supplicant连接wifi

创建配置文件

vi /etc/wpa_supplicant.conf

输入内容:

network={
ssid="我的热点"
psk="我的密码"
}

然后执行命令

wpa_supplicant -B -d -i wlan0 -c /etc/wpa_supplicant.conf

示例如下

root@dika-pc:~# wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf
Successfully initialized wpa_supplicant
rfkill: Cannot open RFKILL control device
root@dika-pc:~# [ 444.817608] wlan0: authenticate with e4:67:1e:02:33:c0
[ 444.843208] wlan0: send auth to e4:67:1e:02:33:c0 (try 1/3)
[ 444.900867] wlan0: authenticated
[ 444.935561] wlan0: associate with e4:67:1e:02:33:c0 (try 1/3)
[ 444.986874] wlan0: RX AssocResp from e4:67:1e:02:33:c0 (capab=0x411 status=0 aid=4)
[ 445.033483] wlan0: associated
[ 446.047125] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
^C

执行dhcp命名,获取IP地址

root@dika-pc:~# udhcpc -i wlan0
udhcpc: started, v1.30.1
udhcpc: sending discover
udhcpc: sending select for 172.16.1.106
udhcpc: lease of 172.16.1.106 obtained, lease time 43200
root@dika-pc:~# ping www.dika.ren
PING www.dika.ren (149.129.80.46) 56(84) bytes of data.
64 bytes from 149.129.80.46: icmp_seq=3 ttl=45 time=217 ms
64 bytes from 149.129.80.46: icmp_seq=4 ttl=45 time=417 ms
64 bytes from 149.129.80.46: icmp_seq=5 ttl=45 time=102 ms
64 bytes from 149.129.80.46: icmp_seq=6 ttl=45 time=108 ms
^C
--- www.dika.ren ping statistics ---
6 packets transmitted, 4 received, 33.3333% packet loss, time 346ms
rtt min/avg/max/mdev = 102.009/211.020/417.367/127.586 ms

3. 增加swap分区

在使用一些软件的过程中,会遇到系统崩溃,尤其是使用 apt-get install 的时候,所以需要加入swap分区,可以简单理解为虚拟内存。

使用

free

查看当前swap大小,
使用如下命令创建你想要添加swap分区的大小

dd if=/dev/zero of=/swap1 bs=1M count=512  #改成你要设置的SWAP大小,512就是512MB

设置swap分区文件

mkswap /swap1

激活swap分区

swapon /swap1

此时使用free命令就能看到创建好的swap分区,但这只是临时性的, 重启会失效,需要配置一下,下次开机时候要开swap

vi /etc/fstab

操作,在最后一行添加

/swap1 swap swap defaults 0 0

展示

开始进入Debian

使用我们自定义的pi账户登录

使用命令查看Swap分区

小白自制Linux开发板 五. Debian文件系统制作,以及WIFI配置、交换分区配置的更多相关文章

  1. 小白自制Linux开发板 二. u-boot移植

    上一篇:小白自制Linux开发板 一. 瞎抄原理图与乱画PCB  中我们做了一个小型而没用的开发板,用的是Licheepi Nano的镜像,那从本篇开始我们开始自己构建它的灵魂吧. 我们都知道,PC在 ...

  2. 小白自制Linux开发板 三. Linux内核与文件系统移植

    上一篇完成了uboot的移植,但是想要愉快的在开发板上玩耍还需要移植Linux内核和文件系统. 1.Linux内核 事实上对于F1C100S/F1C200S,Linux官方源码已经对licheepi ...

  3. 小白自制Linux开发板 四. 通过SPI使用ESP8266做无线网卡

    本文章基于 WhyCan Forum(哇酷开发者社区) https://whycan.com/t_4149.htmlhttps://whycan.com/t_5870.html整理而成. 为了尊重原作 ...

  4. 小白自制Linux开发板 一. 瞎抄原理图与乱画PCB

    因为墨云是基于高中物理水平的电路知识来学习.而且此前也就玩过树莓派.Esp8266之类的开发板,水平基础趋近于零,所以在写这个系列的时候抱着记录的心态.还望不足之处还望大佬们指正. <论语> ...

  5. 小白自制Linux开发板 八. Linux音频驱动配置

    不知不觉小白自制开发板系列已经到第八篇了,本篇要配置的是音频驱动,也算是硬件部分的最后一片了,积攒的文章也差不多全放完了,后续更新可能会放缓,还请见谅. 对于F1C200s是自带了多媒体处理功能的,所 ...

  6. 小白自制Linux开发板 十. NES游戏玩起来

    本篇基于我们制作的Debian文件系统而展开,而且我们这会玩一些高级的操作方式--用我们的小电脑进行程序编译.   所以本篇操作全部都在我们个的开发板上完成.   1. 开发环境搭建 首先安装gcc, ...

  7. 小白自制Linux开发板 番外篇 一 modprobe加载驱动问题(转载整理)

    使用modprobe加载驱动 转载地址:https://blog.csdn.net/qq_39101111/article/details/78773362 前面我们提到,modprobe并不需要指定 ...

  8. 小白自制Linux开发板 九. 修改开机Logo

    许久不见啊,今天我们继续来修改我们的系统. 通过前面的几篇文章我们已经能轻松驾驭我们的开发板了,但是现在都是追求个性化的时代,我们在开发板上打上了自己的Logo,那我们是否可以改变开机启动的Logo呢 ...

  9. 小白自制Linux开发板(第二季 V3s篇) 一. 换个核心再来一次

    1.前言 大家心心念念(个人认为)的小白自制开发板全新系列正式来了,之前我们使用全志的F1C200s芯片制作了一个小电脑,众所周知,调试很艰难,坑也很多,以至于墨云到现在还是没找到对应的补救方案,为了 ...

随机推荐

  1. 搭建私服仓库:(一)Windows安装Nuxus

    Nexus下载 官网.官网下载.百度云盘 提取码:su33 将nexus下载下来,以2.14.5的windows版本为例子(3.x暂时下载不下来,迅雷会员都不行) 下载后进行解压,得到以下目录: 其中 ...

  2. 浅谈可持久化Trie与线段树的原理以及实现(带图)

    浅谈可持久化Trie与线段树的原理以及实现 引言 当我们需要保存一个数据结构不同时间的每个版本,最朴素的方法就是每个时间都创建一个独立的数据结构,单独储存. 但是这种方法不仅每次复制新的数据结构需要时 ...

  3. OpenCV 之 透视 n 点问题

    透视 n 点问题,源自相机标定,是计算机视觉的经典问题,广泛应用在机器人定位.SLAM.AR/VR.摄影测量等领域 1  PnP 问题 1.1  定义 已知:相机的内参和畸变系数:世界坐标系中,n 个 ...

  4. 2021秋 noip 模拟赛

    9.9 T3 第负二题 \(f_i\) 的数学意义:中心在第 \(i\) 行的全 \(1\) 组成的最大正方形(对角线水平/竖直),对角线长 \(2f_i-1\). 显然 \(f_i\) 具有单调性( ...

  5. Python - 导入的位置

    导入的是什么 导入是将 Python 的一些功能函数放到当前的脚本中使用 不导入的功能无法直接在当前脚本使用(除了 python 自带的内置函数) Python 有很多第三方功能,假设想要使用,都必须 ...

  6. 全流程指导Visual Studio Code+Markdown Nice+gitee+PicGo管理自己的技术博客文章

    全流程指导Visual Studio Code+Markdown Nice+gitee+PicGo管理自己的技术博客 1.背景 我挺喜欢写博客,但每一次将博客转移到公众号或者知乎,总是需要调整格式,不 ...

  7. EcShop首页显示特定分类的精品新品热销特价等推荐商品

    EcShop首页显示特定分类的精品新品热销特价等推荐商品 很多大型的B2C商城都有特定分类专区,该分类下的[分类名称].[推荐子分类 或 推荐品牌].[大图片/推荐单品].[推荐商品].[促销商品]. ...

  8. 分布式文件系统FastDFS在CentOS7上的安装及与Springboot的整合

    1. 概述 FastDFS 是目前比较流行的分布式文件系统,可以很容易的实现横向扩展.动态扩容.灾备.高可用和负载均衡. FastDFS 的服务分为 tracker 服务 和 storage 服务,  ...

  9. 定要过python二级 第11套

    1. 2.乃至好的代码片段与解决方法,我保存在了 H:盘中python中的:H:\python\python二级好的代码片段与错误解决 3.接着第一个点,为什么print(read(f))  把f 放 ...

  10. Loj#6247-九个太阳【单位根反演】

    正题 题目链接:https://loj.ac/p/6247 题目大意 给出\(n,k\)求 \[\sum_{0\leq i\leq n,i|k}\binom{n}{i} \] 对\(998244353 ...