当前位置:首页 > 技术 > LINUX > 正文内容

【转】小白自制Linux开发板 五. Debian文件系统制作,以及WIFI配置、交换分区配置

Watrt1年前 (2025-01-06)LINUX7900

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

--no-check-gpg:这个选项会让 debootstrap 跳过对软件包仓库中 Release 文件的 GPG 签名验证。这样在执行 debootstrap 时就不会因为密钥问题而报错。

sudo debootstrap --foreign --verbose --arch=armel --no-check-gpg bookworm  rootfs http://mirrors.huaweicloud.com/debian/
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 chroot rootfs /debootstrap/debootstrap --second-stage --verbose
sudo LC_ALL=C LANGUAGE=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
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

在使用一些软件的过程中,会遇到系统崩溃,尤其是使用 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 压缩解压命令备忘

Linux 压缩解压命令备忘

01-.tar格式解包:[*******]$ tar xvf FileName.tar 打包:[*******]$ tar cvf FileName.tar DirName(注:tar是打包,不是压缩!) 02-.gz格式 解压1:[*******]$ gunzip FileName.gz 解压2:[*******]$ gzip -d FileName.gz 压 缩:[*******]$ gzip...

关于CentOS 下 httpd 修改默认的目录后 403 错误的 解决

关于CentOS 下 httpd 修改默认的目录后 403 错误的 解决

step 1 : 首先改你要设置的目录权限       chmod -R 755 /home/html          -------------->>  /home/html   是你存放你的页面的目录   这里我顺便记录下关于selinux 的命令吧    getenforce=>查看 selinux的状态&nbs...

荔枝派nano(f1c100s)的SPI-Flash系统编译创建全过程

荔枝派nano(f1c100s)的SPI-Flash系统编译创建全过程

前言本文的目标是创建一个运行在SPI-Flash上的精简系统,附带填一些前人没有提及的坑。在开始之前,请先通读官方教程的即食部分(U-Boot)、Linux编译和SPI-Flash系统的创建部分的教程,并搭建好编译工具链。以下我假设你已经按照上面的教程下载好了U-Boot和Linux内核,并且到Buildroot的官网下载好了Buildroot(但没按教程创建config文件)。SPI-Flash的分区结构以下是我这里的分区结构。你可以自由的分配后面两个分区的大小。ID  S...

Deepin Linux修复grub引导

Deepin Linux修复grub引导

环境说明:一直使用的是Win7+Deepin 15.5。后来全新安装了Win 10,需要修复grub第一步:在Windows操作系统下使用深度官方的U盘启动制作器 制作U盘第二步:开机U盘启动进入Deepin linux安装界面,待进入到安装界面选择语言时,按住Crtl+Alt+F2/F1进入Linux tty终端。并执行以下命令完成修复sudo fdisk -l/*根据查询结果确定deepin 的/目录和/boot目录所在的分区编号*/sudo mount&nbs...

buildroot编译中的问题

buildroot编译中的问题

在编译中遇到flex 报错。一直过不了。后来发现安装flex bison两个包后解决sudo apt-get install flex bison...

LINUX 使用sendmail邮件备份

LINUX 使用sendmail邮件备份

首先安装:sudo apt-get install sendmail然后在终端可以使用mail来发邮件echo "ESP32固件"|mail -s "esp32" -A "./fw.bin" -r "bak@xxx.com" xb100@qq.com注意很有可能收到的邮件在垃圾箱里面。把发件地址加到白 名单中...

荔枝派Nano 全流程指南

荔枝派Nano 全流程指南

u-boot 初体验安装交叉编译链首先需要安装交叉编译链:# 此处为获取7.2.1版本,您可获取其他版本或者通过链接直接下载 wget http://releases.linaro.org/components/toolchain/binaries/7.2-2017.11/arm-linux-gnueabi/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabi.tar.xz tar -vxJf gcc-li...

Linux没有最小只有更小----迷你Linux版本大集合

Linux没有最小只有更小----迷你Linux版本大集合

    自从去年到现在已经收集了上百种版本的Linux和Unix,至于Unix就不想说了,没有Linux的功底是很难驾驭Unix的,我在这里只把小于360M的Linux以及一些非Linux但是很像Linux的版本也发布一下,我本人喜欢安静,如果你想要这些迷你版本的Linux光盘的话,建议去官网下载就OK了。英语不行的话随时带个字典。有些没有桌面,想知道哪些没有桌面的话请自己网上查资料!下面就是绝大部分小于361M的Linux及其非Linux名单,参考时间为...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。