如何在机顶盒中刷入原生的Debian系统

编程入门 行业动态 更新时间:2024-10-05 23:27:39

如何在<a href=https://www.elefans.com/category/jswz/34/1738384.html style=机顶盒中刷入原生的Debian系统"/>

如何在机顶盒中刷入原生的Debian系统

Debian系统虽然在国内用得比较少,但是在国外是非常流行的Linux系统。其实Debian的用途非常广泛。只要配置过关,用户甚至可以在机顶盒中刷入Debian系统。那么如何在机顶盒中刷入原生的Debian系统呢?

操作步骤:

第一部分:

进入默认的安卓系统,通过 ttl,使用 root 账户直接挂载 nanda 分区,获取其中的 script.bin。如果你没有 ttl 线,可以先尝试用 adb 连接盒子,然后用 root 大师来获取 root 权限,之后顺序操作即可:先把盒子连接上 Wifi,然后 adb connect IPADDRESS,root。总之,就是为了获取 script.bin。

一、获取 script.bin方法:

# mkdir /sdcard/nanda

# mount -t vfat /dev/block/nanda /sdcard/nanda

# exit

# adb pull /sdcard/nanda/script.bin

二、取得 script.bin 后,如果要修改其中的节点,那么需要 sunxi-tools:

# git clone

# make

。/bin2fex script.bin script.fex

三、编辑 fex 文件,编辑后,重新生成二进制文件:

。/fex2bin script.fex script.bin

script.bin 文件是 fex 文件的二进制实现,fex 文件定义 SoC 是如何工作的,它配置 GPIO 引脚并设置 DRAM、显示(如 HDMI、VGA、分辨率)等参数。

第二部分:

1、编译 uboot

这边的编译环境为 Linux version 3.16.0-4-686-pae (debian-kernel@lists.debian) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 SMP Debian 3.16.7-ckt11-1+deb8u3 (2015-08-04),默认的编译工具为 gcc-arm-linux-gnueabihf,在“deb / jessie main”源中可以找到。

因为我这边没有也找不到盒子的 uboot 源码,我尝试用了 cubieboard2 的 uboot 源码,编译后可以正常使用。

git clone -b wip/a20

make cubieboard2 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

找一个 SD 卡,用来引导,全志盒子默认为 SD 卡引导。用 fdisk 给 SD 卡分两个区,第一个为 fat,第二个为 ext4 格式,具体不再赘述。按照我的是 sdb1、sdb2。

将编译好的 uboot 写入到 sdcard:

# dd if=spl/sunxi-spl.bin of=/dev/sdb bs=1024 seek=8

# dd if=u-boot.bin of=/dev/sdb bs=1024 seek=32

新建一个 boot.cmd 文件,输入以下内容:

setenv bootargs console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait

panic=10 ${extra}

fatload mmc 0 0x48000000 uImage

bootm 0x48000000

使用 cmd 文件来生成 scr 文件:

mkimage -C none -A arm -T script -d boot.cmd boot.scr

2、编译内核

依旧使用 cubieboard2 的内核。直接使用 cubieboard2 的内核可以启动,但是需要添加盒子的 PHY 网卡驱动。PHY 为 ICplus 芯片。如下操作:

# git clone

# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- sun7i_defconfig

# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig

进入 menuconfig 状态,添加 ICplus 网卡的支持:

# make -j$(nproc) ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage modules

# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=output modules_install

生成的内核和模块路径:

arch/arm/boot/uImage

output/lib/

制作 Debian rootfs:

# debootstrap --verbose --arch=armhf --foreign jessie debian

# cd debian

# cp /usr/bin/qemu-arm-static usr/bin/

# LC_ALL=C LANGUAGE=C LANG=C chroot 。 /debootstrap/debootstrap --second-stage

# LC_ALL=C LANGUAGE=C LANG=C chroot 。 dpkg --configure -a

chroot 并部署 rootfs:

passwd

echo “a20” 》 etc/hostname

echo “127.0.0.1 a20” 》》 etc/hostname

echo T0:2345:respawn:/sbin/getty -L ttyS0 115200 vt100 》》 etc/inittab

echo deb / jessie main contrib non-free 》 etc/apt/sources.list

echo deb / jessie/updates main contrib non-free 》》 etc/apt/sources.list

apt-get update

apt-get dist-upgrade

apt-get install openssh-server

apt-get install locales

echo “en_US.UTF-8 UTF-8” 》 etc/locale.gen

echo “zh_CN.UTF-8 UTF-8” 》》 etc/locale.gen

locale-gen

需要修改 rootfs 下的两个文件 /etc/network/interfaces 和 /etc/ssh/sshd_config,开启静态 ip 地址和支持 root 登录。

所有的制作完成了,下面拷贝文件到 SD 卡相应分区:

拷贝到 sdb1 下的文件:

uImage script.bin boot.scr

然后将 Debian 的 rootfs 文件拷贝到 sdb2,内核模块拷贝到 /lib 下。

插入 SD 卡到盒子,通电后等待片刻即可用 ssh 登录盒子了,一个完整原生的 Debian 系统跑起来了。

虽然在机顶盒中的Debian系统还不能运行大型的软件,但是让机顶盒功能变丰富还是很容易得。

更多推荐

如何在机顶盒中刷入原生的Debian系统

本文发布于:2024-02-19 19:15:59,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1765342.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:机顶盒   如何在   系统   中刷入   Debian

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!