[N2_NS1]64位内核及debian系统
(矿渣论坛,稍息,如要引用请注明出处,谢谢)一、几点说明1.硬件配置,恩兔N2-NS1采用海思hi3798mv200芯片,四核A53,主频1.6G,单将CPU性能,比RTD1296还强一些,内存采用ddr4 2166,1G,存储为mmc8G。hi3798支持原生sata、usb3.0和pcie2.0.但其PHY是复用的,所以恩兔引出了sata,也就不支持usb3.0了,同时该soc支持内置2个千兆mac,一个百兆phy,n2用的是千兆mac连接外置千兆PHY。2.关于原厂系统,n2原厂系统经验证已经不可用,无法绑定,所以不刷机就不能用了,原厂采用的32位linux系统,所以性能也受到一定限制。3.关于已有的小钢炮,壳大做了小钢炮固件,按说比较易用,之所以重新制作,一是小钢炮没有提供gpio操作,开机后U盘不供电(硬盘未测试),二是对于我这种有洁癖的希望做一个64位系统,自主安装软件。4.关于刷机包文件n2ns1_debian.xml,分区表文件,共有6个分区fastboot.bin uboot文件,由sdk编译而成,并替换了原厂的reg文件,reg文件是外设寄存器配置,主要是引脚复用等,同时该fastboot主体是32位,sdk设置为64位,但uboot只有32位,主要是通过在编译内核时附加atf,在引导阶段将cpu切换到64位模式。Bootargs,对用的uboot的env文件,就是引导时的命令和内核参数stock_kernel 原厂内核文件,为原厂固件提取的32位内核stock_squash原厂rootfs,并经过修改,因为原厂rootfs串口不正常,ttl看不到登录界面,原因是gettty使用了错误的串口号,已经修正,可以ttl登录,也可以直接telnet,root用户没有密码,作为恢复和装系统使用的临时系统。同时停止原厂云应用运行。hi_kernel.bin内核文件,由SDK编译而成,是64位内核,集成了dtb,同时整个内核和dtb作为atf的载荷,在boom命令执行后,由atf切换到64位模式并引导内核执行。所有gpio和led、U盘和硬盘供电的引脚已经通过逆向得到并写入dtb,开机后U盘和硬盘自动供电,电源按钮可用,led可以通过sysfs操作,实现开关led和闪烁等功能。stretch.tar.bz2debian的rootfs,由debian9生成,为什么选择debian9,而不是10和11,因为sdk内核版本为4.4.35,如果换用10或11,libc版本较高,会封装没在4.4内核的系统调用,造成启动阶段systemd提示一些syscall未找到,我有点洁癖,见不得提示错误,经过验证debian10可以正常运行,会提示syscall271未找到,debian11提示就比较多了。同时该rootfs已经继承了内核编译生成的module和header,可以在线编译新的软件和模块。 一、刷机准备1.硬件连接连接ttl和网线Ttl连接顺序,连接靠近指示灯一侧额四个孔,最右侧方孔为VCC,不要连接,从左至右(靠近方孔为右侧)依次为GND、RX、TX2.软件按设置,板端地址为192.168.1.10,所以电脑IP必须为192.168.1.X3.烧录工具配置,配置芯片为hi3798mv200,运行hiburn配置,串口选择连接板子的串口号,服务器ip选择刚才设置的电脑IP,板端ip选择192.168.1.10,传输方式选择网口选择emmc烧录,点击浏览,选择分区表XML文件,并勾选除了rootfs之外的分区,文件一栏可能需要逐个更新选择文件二、刷机1.说明,本刷机包没有直接刷入rootfs,因为太大,所以刷入一个原厂系统,直接解压debian系统。
2.保持主板断电,点击烧写,根据下侧窗口提示上电3.等待烧写完毕,即可断电,时间因该2分钟左右,因为,只有原厂系统4.将stretch.tar.bz2和bootargs2文件放入U盘根目录,机器连接网线和U盘开机
5.在路由器找到设备ip,用telnet连接用户名root,密码为空2.开启U盘供电echo 33 > /sys/class/gpio/exportecho out >/sys/class/gpio/gpio33/directionecho 1 > /sys/class/gpio/gpio33/value
此时再用blkid就能看到U盘了3.挂载U盘和emmcmount /dev/sda1 /mnt/usb14.安装debian到emmcmkfs.ext4 /dev/mmcblk0p6mkdir /tmp/mmcmount /dev/mmcblk0p6 /tmp/mmctar xvjpf /mnt/usb1/stretch.tar.bz2 -C/tmp/mmc改变启动参数,下次重启从debian启动dd if=/mnt/usb1/bootargs2 of=/dev/mmcblk0p25.重启reboot三、使用1.ssh连接,重启后即可通过ssh连接,用户名root,密码shaoxi
2.led操作可以看到8个gpio的led全部注册正常,打开 echo 255 > /sys/class/leds/green\:fn/brightness关闭echo 0 >/sys/class/leds/green\:fn/brightness
触发,如闪烁、管理mmc读写等可以通过cat命令可以看到led支持的触发方式,通过echo回写相应的字符串可以实现led的自动触发,如heartbeat代表闪烁,mmc0代表mmc0的读写触发led等等3.关于内置软件已经安装了samba、aria、nginx、php的常用软件,直接搜索debian配置即可4.关于docker,没有内置docker,但是内核编译已经启用了docker支持,主要考虑没有硬盘的情况下,4G的空间不够docker用,可自行一键安装dockerapt-get install curlcurl -fsSL https://get.docker.com| bash -s docker --mirror Aliyun
安装完成后,最好先停止docker,然后将docker的数据目录链接到硬盘某个目录下,例如安装硬盘后,通过parted分区后,挂载在/sata目录,然后把/var/lib/docker软链接至/sata/docker。
5.修改bootargs参数,已经安装了uboot-tools,并配置了bootargs分区信息,可以直接通过fw_printenv打印启动参数,通过fw_setenv设置启动参数,如图通过设置bootcmd可以改变启动debian或者恢复系统
固件:链接:https://pan.baidu.com/s/1ul98tGXqaUs5sfk0WQO3NA?pwd=ixog 提取码:ixog
前排支持大佬 前排支持大佬
前排支持大佬 谢谢分享 不支持不行。。必须支持 支持大佬,固件链接失效了,能再发一次吗? N2 ND-1 能刷机吗?
支持大佬,固件链接失效了,能再发一次吗?
页:
[1]
2