Oxw*_*ivi 6 wifi debian-installer
我正在使用raspi3-image-spec项目构建 Raspberry Pi 图像。由于它不是传统d-i
安装的结果,它显然既不会询问也不会使用 WiFi 信息配置 root 以在启动时连接。
因此,我想知道如何准确d-i
存储 WiFi 详细信息并使其在首次启动时自动连接。我想在我的 RPi 图像上做同样的事情,这样我就不必连接到以太网或键盘和显示器来配置它的 WiFi 连接。
我不是在问如何使用命令连接到 WiFi,我已经知道如何做到这一点。我所要问的是预配置是如何通过
d-i
.根据@kemotep 的解决方案,我不仅必须运行命令才能连接到 WiFi,还必须手动激活
dhcpd
或分配静态 IP 地址。我也知道如何使用/etc/network/interfaces
文件自动执行这些步骤,但这不是重点。我想知道的是
d-i
它是怎么做的,所以它符合常规的 Debian 安装,并且我的 WiFi 配置文件不会在更新等过程中被意外删除。
您想知道如何设置debian-installer
以预先配置您的 WiFi 设置。您提到使用此版本为 Raspberry Pi 3 创建 Debian 映像。
他们正在使用debootstrap
而不是debian-installer
在 Raspberry Pi 上安装 Debian的标准。我将提供有关如何使用这两个过程预配置 WiFi 的信息。
debian-installer
如果您想了解各个组件的debian-installer
工作原理,请通读本手册。第 6.3.1.5 节介绍了网络配置。第 3.3.4 节帮助提供有关您需要提供什么debian-installer
来设置网络的信息。
然而,所有这些都是一个手动过程,可以通过“预置”或提供debian-installer
预配置文件来自动化。
这是关于如何编辑预置文件的Debian Wiki 页面。我还包括另一个手册页,以帮助提供有关预置的其他信息。
这是一个 preseed.cfg 示例供您查看。编辑它以包括添加无线固件的步骤(d-i hw-detect/load_firmware boolean true
是这里的关键行)。
添加这些线路以preseed.cfg
在您添加用于加载固件的线路后,将无线 WPA2 网络预置到您的网络中。在此处查看有关如何加载固件的信息debian-installer
d-i netcfg/wireless_essid [string] // Name of wireless network
d-i netcfg/wireless_security_type [select] // Options are wep/open or wpa
d-i netcfg/wireless_wpa [string] // Password
Run Code Online (Sandbox Code Playgroud)
这是一个相当全面的列表,向您展示可能的netcfg
选项。preseed.cfg
如果我列出的那些没有削减它,根据需要添加更多。创建后,请preseed.cfg
使用以下步骤将其添加。
要添加 preseed 文件,您需要挂载debian.iso
并提取内容以复制到preseed.cfg
. [arch] 是指您的.iso
. 在您的情况下,最有可能是armhf
或arm64
。
udevil mount debian.iso
cp -rT /media/debian.iso/ isofiles/
chmod +w -R isofiles/install.[arch]/
gunzip isofiles/install.[arch]/initrd.gz
echo preseed.cfg | cpio -H newc -o -A -F isofiles/install.[arch]/initrd
gzip isofiles/install.386/initrd
chmod -w -R isofiles/install.[arch]/
Run Code Online (Sandbox Code Playgroud)
以下是修复 md5sum.txt 的方法:
# cd isofiles
# md5sum `find -follow -type f` > md5sum.txt
# cd ..
Run Code Online (Sandbox Code Playgroud)
以下是创建新的可引导 ISO 映像的方法:
genisoimage -r -J -b isolinux/isolinux.bin -c isolinux/boot.cat \
-no-emul-boot -boot-load-size 4 -boot-info-table \
-o preseed-debian.iso isofiles
Run Code Online (Sandbox Code Playgroud)
现在您已经创建了一个可引导的 ISO 映像,该映像将写入您的安装程序 USB 或包含您的预配置的磁盘。请务必仔细阅读Wiki 页面和手册,以帮助解决任何问题。
debootstrap
安装 Debian 的另一种方法是使用debootstrap
. 这是 Debian Wiki 的链接和手册页的另一个链接。Debootstrap
可用于从现有的 Unix 或 Linux 机器创建 Debian 安装。
使用debootstrap
只需要一个chroot
或其他磁盘/分区和网络连接即可从存储库下载包。然后,您可以chroot
进入新的 Debianrootfs
并根据需要对其进行配置,然后将其传播到您希望安装的任何设备上。这与 Arch Linux 安装过程非常相似。
但是,如果您使用来自 GitHub 的此脚本,并且您希望预先安排您的无线配置,那么您将需要编辑raspi3.yaml
和使用vmdb2
.
安装vmdb2
:( 这假设您使用的是 Debian Stretch!)
apt install kpartx parted qemu-utils qemu-user-static python3-cliapp \
python3-jinja2 python3-yaml
Run Code Online (Sandbox Code Playgroud)
请注意,
python3-cliapp
在 Stretch 中不可用,但由于它不携带任何依赖项,可以通过获取其 .deb 包并手动安装来手动安装。
接下来下载图像的副本:
git clone --recursive https://github.com/Debian/raspi3-image-spec
cd raspi3-image-spec
Run Code Online (Sandbox Code Playgroud)
现在编辑raspi3.yaml
以包括以下内容:
在- apt: install
第 68 行之后添加这些行:
- iw
Run Code Online (Sandbox Code Playgroud)
现在,在第 90 ( - shell: |
)行之后,您可以在自己的行中添加以下代码:
wpa_passphrase [WiFi SSID] [WiFI Password] > /etc/wpa_supplicant.conf
Run Code Online (Sandbox Code Playgroud)
只要wpa_supplicant
在您的映像过程中正确安装,此行应添加您的 WiFi 配置以允许您自动连接。您可能仍然需要在启动后运行这些命令,但它们也可能被添加到脚本中。
ip link set wlan0 down
ip link set wlan0 up
wpa_supplicant -B -iwlan0 -c /etc/wpa_supplicant.conf -Dwext
dhclient wlan0
Run Code Online (Sandbox Code Playgroud)
编辑完成后
raspi3.yaml
,您可以通过发出以下命令来生成图像。如果您在系统范围内使用vmdb2
:Run Code Online (Sandbox Code Playgroud)umask 022 sudo env -i LC_CTYPE=C.UTF-8 PATH="/usr/sbin:/sbin:$PATH" \ vmdb2 --output raspi3.img raspi3.yaml --log raspi3.log
或者,如果您从这个存储库中的子模块使用它
Run Code Online (Sandbox Code Playgroud)umask 022 sudo env -i LC_CTYPE=C.UTF-8 PATH="/usr/sbin:/sbin:$PATH" \ ./vmdb2/vmdb2 --output raspi3.img raspi3.yaml --log raspi3.log
之后,您应该能够将新映像安装到 SD 卡上,它将遵循您在脚本中添加的额外步骤。您可以向文件中添加任何其他步骤。
此堆栈交换帖子的OP指出,用户 GAD3R 建议的第二种方法也适用于通过命令行添加无线配置。
如果您正在使用debian-installer
,则需要预先设置您debian.iso
想要的配置。
如果您正在使用debootstrap
,则必须包括您希望在安装过程中或chroot
之后采取的任何其他步骤。
我将包括WiFi 上的Debian Wiki 页面以及操作方法页面和有关添加缺失固件的信息。可以在此处找到Raspberry Pi的无线固件
如果您对此答案有任何疑问或问题,请发表评论。我强烈建议您在尝试命令之前通读我提供的每个链接。我感谢反馈以纠正任何误解并改进我的帖子。我可以根据需要更新我的答案。
祝你好运!
归档时间: |
|
查看次数: |
6302 次 |
最近记录: |