熊邁模組rootfs及啟動指令碼剖析

2021-07-23 23:56:02 字數 3732 閱讀 9225

拿到模組後,找到除錯串列埠,這是第一步。

沒有列印,無法進入linux console。不要緊,按ctrl+c,進入uboot操作介面。

設定為nfs引導:

setenv bootargs 'mem=64m console=ttyama0,115200 root=/dev/nfs rw nfsroot=192.168.8.10:/home/tftpboot/rootfs-diqi ip=192.168.8.11:192.168.8.10:192.168.8.1:255.255.255.0::eth0:off mtdparts=hi_sfc:512k(boot),5m(romfs),7424k(user),1536k(web),256k(custom),256k(logo),1280k(mtd)'

可以進去了!有列印了!

# cat /proc/mtd 

dev:    size   erasesize  name

mtd0: 00080000 00010000 "boot"

mtd1: 00500000 00010000 "romfs"

mtd2: 00740000 00010000 "user"

mtd3: 00180000 00010000 "web"

mtd4: 00040000 00010000 "custom"

mtd5: 00040000 00010000 "logo"

mtd6: 00140000 00010000 "mtd"

# mount -o mand -t cramfs /dev/mtdblock1 /mnt/mtd

# ls /mnt/mtd/

bin      etc      linuxrc  proc     share    tmp      var

boot     home     mnt      root     slv      usr

dev      lib      opt      sbin     sys      utils

# cramfs是唯讀檔案系統,無法更改rcs。但rcs中有一句:

fi顯然,這是留給客戶擴充套件準備的。

[mtd1,mtd5]都是cramfs檔案系統,mtd6即/mnt/mtd才是jffs2的可讀寫檔案系統。

//******************************===

# cat rcs 

#! /bin/sh

/etc/init.d/dnode

udevd --daemon

udevstart

mount -t cramfs /dev/mtdblock2 /usr

mount -t cramfs /dev/mtdblock3 /mnt/web

mount -t cramfs /dev/mtdblock4 /mnt/custom

mount -t cramfs /dev/mtdblock5 /mnt/logo

mount -t jffs2 /dev/mtdblock6 /mnt/mtd

mount -t ramfs  /dev/mem        /var/

mkdir -p /var/tmp

mount -t ramfs  /dev/mem2       /utils

mount -t usbfs usbfs /proc/bus/usb/

mount /usr/share/fonts /mnt/custom/data/fonts 

#openssl dgst -sign /usr/sbin/ec_key.pem -sha256 -out /mnt/mtd/licence.sign.file /mnt/mtd/tx_guid_file &

mkdir -p /mnt/mtd/config /mnt/mtd/log /mnt/mtd/config/ppp /mnt/mtd/config/json

if [ -f /mnt/mtd/config/ppp/3gdigal ]; then

chmod 777 /mnt/mtd/config/ppp/3gdigal

fi/usr/etc/loadmod

netinit

if [ -f /usr/lib/modules/extdrv/load3g.sh ];then

. /usr/lib/modules/extdrv/load3g.sh

ficp /usr/bin/upgraded /utils/ -f

/utils/upgraded &

ifconfig eth2 down

macguarder &

sysinit &

wlandaemon &

searchip &

dogtest &

route_switch &

if [ -f /mnt/mtd/config/ppp/pppoe-start ];then

pppoe_start=/mnt/mtd/config/ppp/pppoe-start

else

pppoe_start=/etc/ppp/pppoe-start

fi/usr/bin/pppd pty $pppoe_start file /etc/ppp/pppoe-options &

fimkdir /dev/net

mknod /dev/net/tun c 10 200

#vpn &

dvrhelper /lib/modules /usr/bin/sofia 127.0.0.1 9578 1 &

# # cat /proc/mtd 

dev:    size   erasesize  name

mtd0: 00080000 00010000 "boot"

mtd1: 00500000 00010000 "romfs"

mtd2: 00740000 00010000 "user"

//這個目錄就是rootfs的/usr目錄。有7m多位元組,完全可以把自己的程式放進去。

mtd3: 00180000 00010000 "web"

mtd4: 00040000 00010000 "custom"

mtd5: 00040000 00010000 "logo"

mtd6: 00140000 00010000 "mtd"

//放1 mb的程式進去,應該沒有問題。

/usr/lib/下面的libdrv.so應該就是提供netlib功能的庫。

# ls libdvr.so -l

-rwxr-xr-x    1 root     root        200148 oct 24  2016 libdvr.so

# vi modules/extdrv/load3g.sh 

#load 3g modules

if [ -f /usr/lib/modules/extdrv/usb-storage.ko ];then

insmod /usr/lib/modules/extdrv/usb-storage.ko

fiif [ -f /usr/lib/modules/extdrv/usb-storage.ko ];then

//這是個小小的bug吧?

insmod /usr/lib/modules/extdrv/usb_wwan.ko

fiif [ -f /usr/lib/modules/extdrv/usb-storage.ko ];then

//這是個小小的bug吧?哈哈!

insmod /usr/lib/modules/extdrv/option.ko

fi

ov9712雄邁模組分析

首先宣告該文章只是做技術性學習,不涉及任何利益目的!此文章以雄邁的ipg 50h10pe s型號38 38ipc模組進行分析,之前雄邁公布了它的bom清單如下 在這裡也附上業界對此的一些討論評價 關於3518e 產品那些不得不說的話題 hi3518e平台ipc模組出現 異動 有心 企業虧本賺吆喝 從...