Telnet远程登录 与 海思proc文件系统

以下内容源于朱有鹏嵌入式课程的学习与整理, 如有侵权请告知删除。

内容总结

(1)添加“ telnet远程登录 ”这种调试方式。

(2)介绍“ 海思proc文件系统 ”这种调试接口。

一、telnet远程登录

1、telnet远程登录的意义

Linux系统的用户界面就是命令行,本质上由busybox提供。busybox提供的命令行只有一个,一旦前台被占用就无法做其他操作。

解决方法有两个,一个是建立多个命令行,一个是开放其他用户界面(比如通过telnet远程登录可以开放其他用户界面)。

2、telnet远程登录的原理

(1)在板载系统中运行命令“telnetd &”,让板载系统作为telnet的server端。

(2)通过telnet的client端(在SCRT中设置)连接telnet的server端,从而构建一个用户界面。

(3)这是非常传统与典型的远程登录方式。

3、在HI3518E开发板上进行telnet远程登录

(1)首先执行“telnetd &”,其中“&”和“d”分别表示在后台运行、守护进程(或者说它是服务器)。

/mnt # which telnet
/usr/bin/telnet
/mnt # ls /usr/bin/telnet -l
lrwxrwxrwx    1 root     root   17 Nov 16  2022 /usr/bin/telnet -> ../../bin/busybox
/mnt # telnetd &
/mnt # ps
#省略部分输出
  561 root       0:00 udevd --daemon
  568 root       0:00 udevd --daemon
  750 root       0:00 -sh
  956 root       0:00 telnetd  #该进程在这里
 1047 root       0:00 [flush-mtd-unmap]
 1064 root       0:00 ps

(2)然后在SCRT上新建一个连接,配置如下。

(3)在登陆处输入账号“root”,在password处直接回车(因为没有设置密码)。

(none) login: root
Password: 
Welcome to HiLinux.
mmz_start: 0x82000000, mmz_size: 32M
insmod: can't insert 'mmz.ko': File exists
******* Error: There's something wrong, please check! *****
mount: mounting 192.168.1.141:/home/xjh/iot/hisi_development/hisi_rootfs on /mnt failed: Device or resource busy
/mnt # 

每次开启telnet服务时,就会执行一次/etc/profile文件。这文件里有挂载操作,因此提示挂载错误,因为在执行“telnetd &”命令的那个窗口挂载了,不能重复挂载。这文件里也有安装某个驱动程序的操作,因为已经执行过一次,所以这里提示不能插入mmz.ko。

我们将/etc/profile文件中只需要进行一次的操作,剪切至/etc/init.d/rcS文件中,因为rcS文件只会在开机启动时被执行一次,开启telnet服务时也不会再执行rcS文件。修改后的rcS文件如下所示。

/bin/mount -a

echo "
            _ _ _ _ _ _ _ _ _ _ _ _
            \  _  _   _  _ _ ___
            / /__/ \ |_/
           / __   /  -  _ ___
          / /  / /  / /
  _ _ _ _/ /  /  \_/  \_ ______
___________\___\__________________
"
for initscript in /etc/init.d/S[0-9][0-9]*
do
        if [ -x $initscript ] ;
        then
                echo "[RCS]: $initscript"
                $initscript
        fi
done
ifconfig lo 127.0.0.1
ifconfig eth0 192.168.1.11

mount -t vfat /dev/mmcblk0p1 /usr/mmc

cd /usr/mmc/ko
./load3518e -i -sensor ar0130 -osmem 32 -total 64
mount -t nfs -o nolock 192.168.1.141:/home/xjh/iot/hisi_development/hisi_rootfs /mnt

telnetd &

# 将“cd /mnt”这句代码在这里不生效,因为rcs文件之后某些操作还会改变目录
# 将“cd /mnt”这句代码放在/etc/profle文件中就生效

/etc/profile文件和rcS文件的执行顺序是怎样的?“cd /mnt”指令在rcS文件中不生效(当etc/profile文件中没有这个指令,在rcS文件中有这个指令时,系统完全启动后却停留在/root目录),而在etc/profile文件中生效(当rcS文件中没有这个指令,而在etc/profile文件中有这个指令时,系统完全启动后停留在/mnt目录),这说明是先执行完rcS文件再执行/etc/profile文件。

进行上述修改之后,再进行步骤(2)(3)操作时,显示如下。我特意开启了几个界面,以说明telnet远程登录可以开启多个用户界面。

二、海思proc文件系统

1、proc文件系统的原理

/mnt # cd /proc/   #proc文件系统内容
/proc # ls
1              257            418            7              cmdline        fb             kpagecount     net            sysvipc
139            262            458            964            consoles       filesystems    kpageflags     pagetypeinfo   timer_list
141            3              472            965            cpu            fs             loadavg        partchange     tty
142            315            492            969            cpuinfo        hieth          locks          partitions     umap
144            331            496            971            crypto         interrupts     mci            scsi           uptime
153            399            5              972            devices        iomem          media-mem      self           version
156            4              507            973            diskstats      ioports        meminfo        slabinfo       vmallocinfo
164            402            515            978            dma-mappings   irq            misc           softirqs       vmstat
166            407            570            buddyinfo      driver         kallsyms       modules        stat           yaffs
2              410            572            bus            dump_sb_files  key-users      mounts         swaps          zoneinfo
255            415            6              cgroups        execdomains    kmsg           mtd            sys


/proc # ls /sys/*  #sys文件系统内容
/sys/block:
mmcblk0    mtdblock1  ram0       ram10      ram12      ram14      ram2       ram4       ram6       ram8       romblock0  romblock2
mtdblock0  mtdblock2  ram1       ram11      ram13      ram15      ram3       ram5       ram7       ram9       romblock1

/sys/bus:
amba         cpu          himedia      mdio_bus     platform     sdio         spi
clocksource  hid          i2c          mmc          scsi         serio        usb

/sys/class:
bdi              fc_host          firmware         input            mmc_host         scsi_device      spidev           vc
block            fc_remote_ports  graphics         mdio_bus         mtd              scsi_disk        tty              vtconsole
bsg              fc_transport     i2c-adapter      mem              net              scsi_host        ubi
cuse             fc_vports        i2c-dev          misc             regulator        spi_master       usb_device

/sys/dev:
block  char

/sys/devices:
acodec    ai        h264e     hifb      ive       platform  rgn       uart:0    vb        vi        vpss
adec      ao        hi_mipi   himedia   jpege     pwm       sys       uart:1    venc      virtual
aenc      chnl      hi_tde    isp_dev   logmpp    rc        system    uart:2    vgs       vo

/sys/firmware:

/sys/fs:
cgroup  ext4    fuse

/sys/kernel:
fscaps         ipv4           mm             notes          slab           uevent_helper  uevent_seqnum

/sys/module:
acodec             hi3518e_aenc       hi3518e_jpege      hi3518e_vpss       mmcblk             scsi_transport_fc  usb_storage
auth_rpcgss        hi3518e_ai         hi3518e_rc         hi_media           mmz                sensor_i2c         usbcore
block              hi3518e_aio        hi3518e_region     hi_mipi            mousedev           spidev             usbhid
block2mtd          hi3518e_ao         hi3518e_sys        hid                nfs                spurious           vt
brd                hi3518e_base       hi3518e_tde        hifb               piris              sunrpc             xz_dec
dns_resolver       hi3518e_chnl       hi3518e_venc       kernel             printk             tcp_cubic          yaffs
ehci_hcd           hi3518e_h264e      hi3518e_vgs        keyboard           psmouse            ubi
fuse               hi3518e_isp        hi3518e_viu        lockd              pwm                ubifs
hi3518e_adec       hi3518e_ive        hi3518e_vou        mmc_core           scsi_mod           uinput

/sys/power:
compress_method     hb_bdev_file        pm_async            reserved_size       snapshot_buf_size   state
disk                image_size          pm_test             resume              snapshot_buf_start  wakeup_count
/proc #

(1)无组织而混乱的proc文件系统已经被有组织而规整的sys文件系统取代。

(2)proc文件系统的原理,是把内核关键的变量以文件的形式呈现到用户层,用户层通过查看这些文件从而得到内核的一些信息。这些信息是动态信息,是内核运行过程中呈现的信息。

(3)这些文件是虚拟的,它们其实是内核运行过程中某些变量的值。

(4)可以使用cat命令查看这些信息。

/proc # cd umap/
/proc/umap # ls
acodec  aenc    ao      h264e   higo    ive     logmpp  rc      sys     vb      vgs     vo
adec    ai      chnl    hifb0   isp     jpege   md      rgn     tde     venc    vi      vpss
/proc/umap # cat vi

[VIU] Version: [Hi3518EV200_MPP_V1.0.3.0 B040 Release], Build Time: [May 20 2016, 12:01:03]

VI-VPSS is online.

-----MODULE PARAM--------------------------------------------------------------
detect_err_frame  drop_err_frame  stop_int_level
         10              0              0

-----VI DEV ATTR---------------------------------------------------------------
 Dev   IntfM  WkM  ComMsk0  ComMsk1 ScanM AD0 AD1 AD2 AD3   Seq   DPath DType DRev CapX CapY  CapW  CapH

-----VI HIGH DEV ATTR---------------------------------------------------------------
 Dev  InputM  WkM  ComMsk0  ComMsk1 ScanM AD0 AD1 AD2 AD3   Seq CombM CompM ClkM  Fix FldP   DPath DType DRev CapX CapY  CapW  CapH

-----VI PHYCHN ATTR------------------------------------------------------------
 PhyChn CapX CapY  CapW  CapH  DstW  DstH CapSel Mirror Flip IntEn PixFom SrcRat DstRat   Comp

-----VI PHYCHN STATUS 1----------------------------------------------------------
 PhyChn  Dev      IntCnt  VbFail  LosInt  TopLos  BotLos BufCnt  IntT  SendT  Field  Stride

-----VI PHYCHN STATUS 2---------------------------------------------------------
 PhyChn MaxIntT   IntGapT   MaxGapT LIntCnt  ThrCnt AutoDis CasAutD  TmgErr      ccErrN    IntRat
/proc/umap #

2、海思proc文件系统调试

官方文档见链接:资源_1111

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天糊土

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值