uboot--内核移植,再次遇到make distclean的问题

时间:2022-07-01 16:34:20

用自己移植的uboot,进行内核的移植,遇到了几个问题

1、移植ramdisk文件系统

实验一:先编译好内核,移植内核——制作ramdisk文件系统,打包后移植

实验二:initramdisk文件系统的制作

(1)、kernel自身初始化完成后,要运行的第一个用户程序,既是“init程序”

(2)、编译好的内核uImage已经包括:kernel和文件系统,内核和文件系统结合在一起(在menuconfig配置)

问题:两种移植后,在内核启动后,都没有能够进入文件系统。这就让人纳闷!!

分析:也许是上一次移植时,留下中间文件,没有用make distclean原因,导致移植失败

等待验证状态!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

2、nfs文件系统移植,无法实现开发板子共享服务器的上的文件系统

目的:实现linux和linux共享,利于驱动的调试。

实验现象:

eth0: link down

eth0: link down

IP-Config: Guessing netmask 255.255.255.0

I P-Config: Complete:

     device=eth0, addr=192.168.8.80, mask=255.255.255.0, gw=255.255.255.255,

      host=192.168.8.80, domain=, nis-domain=(none),

      bootserver=255.255.255.255, rootserver=192.168.8.90, rootpath=

Freeing init memory: 1184K

eth0: link up, 100Mbps, full-duplex, lpa 0x4DE1

/


Processing /etc/profile... Done



# ls

bin      etc      lib      mnt      sbin     tmp      var

dev      init     linuxrc  proc     sys      usr

# cd tmp/

# ls

hello.ko  hello.o  // 当把param.ko驱动模块拷贝到虚拟机的更文件系统目录下时,并没有能够,在开发板子出现该文件??

# insmod hello.ko/

# insmod hello.ko

insmod: cannot insert 'hello.ko': invalid module format// 难道安装的busybox没有支持该insmod命令????

分析:也许是前几次的内核编译后,再一次编译内核时,没有运用 make distclean清楚中间文件,(自己偷懒,怕重新完全编译,花的时间太长)导致,内核中遗留有上一次编译的信息。

解决:使用make distclean一下,然后再次重新编译内核,果真是这样子。结果如下

eth0: link down

IP-Config: Guessing netmask 255.255.255.0

IP-Config: Complete:

     device=eth0, addr=192.168.8.80, mask=255.255.255.0, gw=255.255.255.255,

     host=192.168.8.80, domain=, nis-domain=(none),

     bootserver=255.255.255.255, rootserver=192.168.8.90, rootpath=

Looking up port of RPC 100003/2 on 192.168.8.90

eth0: link up, 100Mbps, full-duplex, lpa 0x4DE1

Looking up port of RPC 100005/1 on 192.168.8.90

VFS: Mounted root (nfs filesystem) on device 0:11.// 提示nfs已经成功挂载了

Freeing init memory: 128K



-n Processing /etc/profile... 

Done



# ls

lib      mnt      var      sys      bin      sbin     init

proc     linuxrc  etc      tmp      usr      dev

# ls tmp/

param.ko

# ls

lib      mnt      var      sys      bin      sbin     init

proc     linuxrc  etc      tmp      usr      dev

# cd tmp/

# ls

param.ko   

# insmod param.ko 

insmod: cannot insert 'param.ko': invalid module format

# ls     // 在服务器上,把驱动模块hello.ko拷贝到文件系统目录下,开发板子就能够实现动态共享了(查询一下,可以看到hello.ko文件)

param.ko  hello.ko

3、当开发板子用tftp下载时,路由器过会儿就上不了网,这个问题还真的见鬼,自己还真的无法分析,需要好的网络基础知识才能够搞定它。现在暂时搁下,看看以后能否有新的认识。