N1 是目前很受欢迎的电视盒子,主要优点就是配置高、价格便宜、可玩性多(电视盒子、KODI 播放器、下载机、NAS、软路由、小电脑等)。N1 的 CPU 使用的是 Amlogic(晶晨)S905D(四核 ARM® Cortex™-A53),配置是 2G 内存、8G eMMC、HDMI 视频接口、100M网口、2个 USB2.0 接口、支持蓝牙和 WiFi。
在前面的文章中已经详细介绍了编译 Armbian 的方法和步骤,给 N1 编译 Armbian 的运行系统就是采用这些方法来实现的。
由于 N1 没有在 Armbian 官方所支持的板子列表中,所以需要在已有的板子中选择同N1 配置一样的,通过分析可以看到 Le Potato 与 N1 的配置是一样的,可以选择这个板子来编译(也可以单独制作内核跟文件系统,这里就不介绍了)。
首先按照上一篇文章介绍的方法设置编译选项(config-example.conf):
KERNEL_ONLY=”no”
KERNEL_CONFIGURE=”yes”
CLEAN_LEVEL=”make,debs,cache”
BOARD=”lepotato”
BRANCH=”current”
RELEASE=”focal”
BUILD_MINIMAL=”no”
BUILD_DESKTOP=”no”
COMPRESS_OUTPUTIMAGE=”sha,gpg,img”
然后设置登录欢迎信息、主机名称和域名服务器地址(lepotato.conf、lib.config):
BOARD_NAME=”N1 TVBox”
HOST=”N1″
NAMESERVER=”192.168.1.1″
编译过程中如果有三个选择新的驱动相关功能代码的步骤,选择 “N”,出现内核配置窗口后退出,这样就可以顺利编译完成 Armbian(output/images/)。
编译成功的映像文件不能直接写到 U盘去引导,因为只有一个根文件系统,N1 的引导需要有引导分区和根文件系统分区,所以需要重新制作可引导的映像。
#mkdir -p work
#cd work
#mv build/output/images/xxx.img armbian.img ;注意正确的 build 目录
#mkdir -p boot
#mkdir -p rootfs
#losetup -P -f --show armbian.img ;看一下 loop 号,比如是 loop7
#mount /dev/loop7p1 /mnt
#cp /mnt/boot/config-5.6.19-meson64 boot/config-5.6.19-meson64
#cp -r /mnt/boot/dtb-5.6.19-meson64 boot/dtb
#cp /mnt/boot/initrd.img-5.6.19-meson64 boot/initrd.img-5.6.19-meson64
#cp /mnt/boot/System.map-5.6.19-meson64 boot/System.map-5.6.19-meson64
#cp /mnt/boot/uInitrd-5.6.19-meson64 boot/uInitrd
#cp /mnt/boot/vmlinuz-5.6.19-meson64 boot/zImage
#cp -r /mnt/* rootfs/
#sync
#umount /mnt
#losetup -d /dev/loop7
#cat << EOF > boot/uEnv.txt
LINUX=/zImage
INITRD=/uInitrd
# aml s9xxx
FDT=/dtb/amlogic/meson-gxl-s905d-phicomm-n1.dtb
APPEND=root=LABEL=ROOTFS rootflags=data=writeback rw console=ttyAML0,115200n8 console=tty0 no_console_suspend consoleblank=0 fsck.fix=yes fsck.repair=yes net.ifnames=0
EOF
#下载附件中的文件 s905_autoscript.tar.gz 到当前的工作目录
#tar -xzf s905_autoscript.tar.gz -C boot
#mkimage -C none -A arm -T script -d boot/s905_autoscript.cmd boot/s905_autoscript
#qemu-img create armbian-n1.img 1734M
#parted -s armbian-n1.img mklabel msdos
#parted -s armbian-n1.img mkpart primary fat32 17M 117M
#parted -s armbian-n1.img mkpart primary ext4 117M 100%
#losetup -P -f --show armbian-n1.img ;注意 loop 编号
#mkfs.vfat -n “BOOT” /dev/loop7p1 >/dev/null 2>&1
#mke2fs -F -q -t ext4 -L “ROOTFS” -m 0 /dev/loop7p2 >/dev/null 2>&1
#mkdir -p /mnt/boot /mnt/rootfs
#mount /dev/loop7p1 /mnt/boot
#mount /dev/loop7p2 /mnt/rootfs
#cp -r boot/* /mnt/boot/
#cp -r rootfs/* /mnt/rootfs/
#umount -f /mnt/boot /mnt/rootfs
#losetup -d /dev/loop7
#rm -rf boot/*
#rm -rf rootfs/*
执行上面的命令后就生成了可以在 N1 上引导并运行的 Armbian 系统映像了,然后同样地按照上一篇文章介绍的方法把这个映像文件(armbian-n1.img)写到 U 盘上就可以了。
把写好的 U 盘插到 N1 不是边上的那个 USB 接口上,再接上电源就能引导 Armbian 系统了。后面的过程就是修改 root 密码,创建一个新用户,登录系统。需要提醒一下,在使用前需要把N1 进行降级并设置成可以使用 U 盘引导,具体的操作方法和步骤,网上有很多相关的文章可以参考,这里就不介绍了。
armbian-n1-box
N1 登录后画面
另外,建议 Armbian 在 N1 上采用 U盘系统的方式来使用,不用写到 eMMC 上,这样拔掉 U盘后,N1 还可以继续当电视盒子来用,非常方便。在后续的文章中将介绍如何在 Armbian 中部署各种应用以满足不同的功能需求。
今天又在尝试,这里用的镜像文件是khadas-vim2的debian下的bullseye镜像,做了一个启动U盘,今天是没有空试了,明天来试下能不能启动,主要是这里我不知道在bullseye下的SSH如何配置才能实现远程连接,试了好几次,都是SSH没有办法连接,如果这个系统能行的话,我就把它写到EMMC里面以后就一直用这个系统了,不过我自己想来,蓝牙和WIFI都好用的可能性不大。不过这个是5.10的内核,应该是不错的了,要是蓝牙和WIFI都好用该多好呀。❤️????
总得来说是失败了。
开始的时候是自己搭建了一个交叉编译的环境,然后一步一步的进行编译,可是中间有错,我也不知道如何去排错,只能按照这个上面的用网上下载好的LEPOTATO的一个IMG文件来生成可安装的IMG镜像文件,试了一下可以开机,但蓝牙和WiFi都没有。