我们提供安全,免费的手游软件下载!
家里有一台机顶盒(移动魔百盒)淘汰下来了,博主想要物尽其用,看看是否能将其改造为一台Linux"开发机",量身定制系统,用作开发和测试,以及跑服务器
博主选择的是Ubuntu发行版系统,下面依次介绍机顶盒改造过程
机顶盒型号 :移动魔百盒CM201-2(CH),芯片组: hi3798mv300(hi3798mv3dmm),其他型号类似
理论上适用于以下SOC的机顶盒: Hi3798Mv100 / Hi3798Cv200 / Hi3798Mv200 / Hi3798Mv300
前者作为源码编译环境,后者需要使用到进行固件烧录的软件
(烧录也可以命令行形式甚至不需要Windows,需要参考海思官方文档,为了方便故在Windows平台下进行烧录)
故强烈推荐在Windows平台上安装WSL
博主使用的是CH340G,如图
CH340G需要驱动程序,需要去 官网下载CH341SER.EXE
若CH340驱动安装正确,进入设备管理器将会看到对应端口
源码链接:https://github.com/martixjohn/HiSTBLinuxV100R005C00SPC050
源码包含机器的引导程序、启动参数、Linux内核以及一个基本的rootfs
博主修改了部分配置以适配hi3798mv3dmm
从ubuntu官网或镜像源下载匹配机顶盒架构的Ubuntu base
新建空文件,建议至少为800M,用作环回文件(loopback)
dd if=/dev/zero of=ubuntu.img bs=400M count=1
格式化该环回文件,创建ext4文件系统
mkfs.ext4 ubuntu.img
挂载环回文件
# 创建挂载分区
mkdir -p /mnt/loopback
# 虚拟成块设备
losetup --find --show ubuntu.img
# 将块设备挂载到分区,如/dev/loop0
mount /dev/loop0 /mnt/loopback
解压Ubuntu base
tar -xzf ubuntu.base.tar.xz -C /mnt/loopback
切换根目录
建议使用arch-chroot,其中做了许多挂载等工作,无需关心额外步骤
arch-chroot /mnt/loopback
更改root密码
重要:需要修改root密码或创建新用户并指定密码 ,刷入启动后方能登录
passwd
定制你的rootfs,安装必要和非必要软件
注意Ubuntu base未预装systemd,Network Manager,需要自行安装
apt install systemd network-manager
建议安装openssh,否则只能串口作为tty交互使用
apt install ssh
连接示意图
主板接线如图,从左到右依次连接到转接板的GND, TXD, RXD,不同板子可能有所差别,可以尝试调一下TXD, RXD顺序
打开HiTool软件,选择芯片,第一次使用可能会弹出显示
可以百度搜一下自己的机顶盒背面的型号,确认芯片
点击连接管理器
配置端口,会自动识别,选择CH340的端口,波特率为115200
打开终端工具
机顶盒连接电源,并按下机顶盒电源按钮,开机
若连接无误,将会在终端显示类似于如下启动信息
其中 Reg Name 是我们需要留意的
关闭 机顶盒电源开关,并点击终端页面的 断开连接 ,防止端口占用
以ubuntu为例
sudo apt install gcc make gettext bison flex bc zlib1g-dev libncurses5-dev lzma
预先配置文件在configs目录下
cp configs/hi3798mv300/hi3798mv3dmm_hi3798mv300_cfg.mak cfg.mak
. ./env.sh
make tools
和Linux内核一样,所用的配置系统是KConfig
make menuconfig
几个比较重要的配置选项
Base->Chip Type: 选择芯片组
Base->Out DIR: 输出路径,在out目录下
Board->Boot Regfile Config List: 启动的配置文件,将第一个改为自己的机顶盒匹配的配置文件名称
该文件存放于source/boot/sysreg/xxx/*.reg
不同机顶盒的内存颗粒等硬件可能有所区别,参照 连接测试 显示的Reg Name进行选择
make build
可以开启 多核编译 ,如博主使用16核进行编译
make build -j 16
等待编译完成,输出结果放在out目录下,烧录所需的文件如图所示
加上ubuntu rootfs image之后,烧录应当准备好如下所示的文件
修改分区配置文件emmc_partitions.xml,将最后一项的SelectFile改为ubuntu镜像的文件名,Length属性改为-,表示占满存储器剩余空间
打开软件,进入HiBurn视图模式
取一根网线连接机顶盒主板和路由器,确保PC和机顶盒能互通,配置IP信息(使用 网络传输 进行烧录,原因是串口传输速率过慢)
在本地PC配置下,点击刷新获得对应的端口和PC的IP地址
在板端配置下,网关一般设置为路由器内网IP,一般路由器默认为192.168.1.1,子网掩码需要按照路由器进行配置,家用路由器默认是255.255.255.0,IP随意配置保证与路由器在同一子网,如192.168.1.200,物理地址随意设置
传输方式选择:网口
注:以上配置的目的是让机顶盒固定IP地址,以便将固件通过以太网传输到机顶盒,机顶盒会按照配置自动设置对应IP和PC建立通信
加载分区配置和固件:依次选择HiBurn->烧写EMMC->浏览(选择分区配置文件emmc_paritions.xml)
确保连接好网线,机顶盒处于关机状态
点击烧写
打开机顶盒电源开关,自动开始烧写
烧写完成,弹窗提示成功
机顶盒可能会自动重启,先关闭机顶盒开关
打开HiTool终端工具
右键Clear Terminal以清除以前的日志信息
点击连接
打开机顶盒开关,先是打印bootloader等启动信息后,直到一串绿色的OK字样显示出来,表示Ubuntu已经成功刷入!
登录Ubuntu,开始使用
以后设备每次开机都会自动引导进入Ubuntu
只需烧写最后一个分区对应的镜像即可
确保只选择该分区,再点击刷写
任何分区都可以类似地自定义,大家愉快的DIY吧!
欢迎交流,博主 GitHub: https://github.com/martixjohn/
热门资讯